Тут был человек по имени "Гость". Он интересовался наработками под ARM.
Поскольку "Гость" не особо отвечает, выложу здесь ссылку на документацию по A2 на ARM. Не уверен в том, как данная A2 соотносится с "A2 вообще", но информация в этом документе скорее всего интересна даже тем, кто не собирается заниматься ARM-ом.
https://gitlab.com/budden/jaos/-/blob/7 ... 2onArm.tex
В текущей версии ЯОС этого документа нет (я недавно выпилил ARM), но теперь я думаю, что, может быть, стоит пересмотреть это решение. Как минимум, для этого нужно найти любой эмулятор, на котором можно проводить тестирование. Пока что этот вопрос открыт.
ARM
Re: ARM
ARM'ов куча всяких и все они не совместимы между собой.
Как говориться на безрыбье и рак рыба.
Есть только qemu он эмулирует только систему команд без периферии и внутренней кухни. Поэтому в качестве эмулятора для ОС это очень плохой вариант. Ядро Линукс специально было заточено под qemu, чтобы была возможность использовать в качестве гостевой ОС. А по хорошему должны были наоборот qemu затачивать до Линукса.для этого нужно найти любой эмулятор, на котором можно проводить тестирование. Пока что этот вопрос открыт.
Как говориться на безрыбье и рак рыба.
Re: ARM
Ну там упоминается rPi.
Re: ARM
Там много чего упоминается А я вам говорю как там все обстоит на самом деле. Достаточно открыть исходник qemu и сравнить с документаций на туже малинку.Ну там упоминается rPi.
https://github.com/qemu/qemu/commit/e3e ... bec2ad5d32
Код контролера прерывания основан на pl190.c что не имеет ничего общего с тем что bcm2835
Не говоря о том что одна лишь документация на контроллер прерываний занимает больше 300 страниц, а тут весь код менее 200 строк!
И так по всем основным аппаратным вещам. За последние пару месяц немного исправили. Но там капля в море.
Загрузка делается при помощи хуков. Эмуляция носителя данных сделана не до конца, что-то пишется а что-то и нет.
Re: ARM
Тогда задача сводится к поиску точки в таблице MxN, где M - число версий A2, а N - число версий малины (которые нужно покупать до тех пор, пока она не заработает). Если команда A2 укажет эту точку, будет намного легче, а пока я не понимаю, имеет ли смысл браться за это дело. Т.к. впилить сборку ARM я могу, а вот протестировать - нет.
Re: ARM
Выяснилось, что под малину компилируется только ядро - 25 файлов из 1000. Т.е. там не будет графики. В окрестности обнаружил две малины - при возможности попробую залить.
700 файлов (с графикой и периферией) собирается под Zynq-7000. Как я понял - это какое-то ядро, на нём есть семейство плат, в основном они стоят весьма ощутимо. И вот дальнейший план действий не совсем ясен. Конечно, интересно бы запустить компьютер не только под ARM, но и с FPGA, где можно поиграть в ихние Active Cells. С другой, не уверен, что игра стоит свеч.
700 файлов (с графикой и периферией) собирается под Zynq-7000. Как я понял - это какое-то ядро, на нём есть семейство плат, в основном они стоят весьма ощутимо. И вот дальнейший план действий не совсем ясен. Конечно, интересно бы запустить компьютер не только под ARM, но и с FPGA, где можно поиграть в ихние Active Cells. С другой, не уверен, что игра стоит свеч.
Re: ARM
А где можно доки почитать про ЯОС именно последней версии? Как она работает и как стыкуется с BIOS/БСВВ компьютера? Какие стандартные прерывания БСВВ и/или свои драйвера периферии компьютера, ПДП/КП? Как она вообще работает? Хотя бы краткий обзор-путеводитель-справочник?
Re: ARM
Я этого не описывал (да и почти ничего не знаю), т.е. только в исходниках. Интересует вариант для x86? Начинать ознакомление, наверное, стоит с файла ЯОС.фок, в котором хотя бы написано, сборка под какую платформу из чего состоит.
Re: ARM
Например, пакет Kernel:
Структура этого файла довольно подробно описана мной вот тут:
https://gitlab.com/budden/ja-o-s/-/blob ... гураций.md
Сборка под железо x86 называется BIOS32
Код: Выделить всё
License.Text
OBEMBR.BIN # MBR
BootManagerMBR.Bin BootManagerTail.Bin # Boot manager
BootManager.Bin BootManager.Text
OBL.Bin OBL.Text # Boot loader
Setup.Text # Documentation
# Active Oberon run-time
# Runtime support for SIGNED64 and strings
I386 { I386.Builtins.Mod }
AMD64 { AMD64.Builtins.Mod }
ARM { ARM.FPE64.Mod ARM.Builtins.Mod }
I386 и COOP { CPU.Mod }
AMD64 и COOP { CPU.Mod }
RPI и COOP { RPI.CPU.Mod }
ZYNQ и COOP { Zynq.CPU.Mod }
ARM и ~COOP { ARM.Initializer.Mod }
ZYNQ и ~COOP { Zynq.ARM.Platform.Mod }
UCS32.Mod
ПереводыЭлементовКода.Mod
UCS2.Mod
# Low-level trace output
Trace.Mod
ARM и ~COOP { ARM.BootConfig.Mod }
WIN и ~COOP { Windows.Kernel32.Mod }
LINUX { Linux.Glue.Mod Linux.Unix.Mod }
# cooperative runtime system
COOP { Counters.Mod }
BIOS и I386 и COOP { I386.APIC.Mod APIC.Processors.Mod BIOS.ACPI.Mod ACPI.Timer.Mod }
UNIX и COOP { Unix.Processors.Mod Unix.Timer.Mod }
RPI и COOP { RPI.Processors.Mod RPI.Timer.Mod }
ZYNQ и COOP { Zynq.Processors.Mod Zynq.Timer.Mod }
COOP { Queues.Mod BaseTypes.Mod Activities.Mod ExclusiveBlocks.Mod Interrupts.Mod Runtime.Mod }
NATIVE и COOP { HeapManager.Mod }
BIOS и COOP { BIOS.Environment.Mod }
RPI и COOP { RPI.Environment.Mod }
ZYNQ и COOP { Zynq.Environment.Mod }
UNIX и COOP { Unix.Environment.Mod }
BIOS и I386 и ~COOP { BIOS.I386.Machine.Mod }
BIOS и AMD64 и ~COOP { BIOS.AMD64.Machine.Mod }
WIN и ~COOP { Windows.Machine.Mod }
COOP и ~ARM { Mutexes.Mod Coop.Machine.Mod }
COOP и ARM { Mutexes.Mod Coop.ARM.Machine.Mod }
UNIX и ~COOP { Unix.Machine.Mod }
ZYNQ и ~COOP { Zynq.PsUartMin.Mod Zynq.TraceDevice.Mod Zynq.PrivateWatchdog.Mod ARM.Machine.Mod }
~COOP { Heaps.Mod }
COOP { GarbageCollector.Mod Coop.Heaps.Mod }
Modules.Mod
BIOS и ~COOP { BIOS.Objects.Mod Kernel.Mod }
WIN и ~COOP { Windows.Objects.Mod Windows.Kernel.Mod }
UNIX и ~COOP { Unix.Objects.Mod Unix.Kernel.Mod }
COOP { Coop.Objects.Mod Coop.Kernel.Mod }
ARM и ~COOP { ARM.Objects.Mod ARM.Kernel.Mod }
КН
https://gitlab.com/budden/ja-o-s/-/blob ... гураций.md
Сборка под железо x86 называется BIOS32
Re: ARM
Дальше спрашивайте, хотя мои возможности довольно ограничены. Единственное, что файлы bin - это блобы, а файлы *.Text, содержат описания. Но открыть и прочитать их можно только запустив ЯОС (как приложение под Windows, к примеру, или на вирт. машине).
При том, самое смешное, что есть файлы .Asm, например, BootManager.Asm и OBL.Asm, к-рые в сборке не участвуют, т.к. они собираются NASM-ом. В общем, я не скажу, что я тут разобрался.
Дальше идут файлы .Mod - они уже написаны на ОБероне, но могут содержать и ассемблерные вставки. Например, файл BIOS.Keyboard.Mod - Это драйвер клавиатуры, а использеут он BIOS.I386.Machine.Mod , в котором изрядное количество ассемблера.
Попробуйте также позадавать вопросы в телеграм - чате, там есть люди куда как компетентнее меня в этих вопросах.
При том, самое смешное, что есть файлы .Asm, например, BootManager.Asm и OBL.Asm, к-рые в сборке не участвуют, т.к. они собираются NASM-ом. В общем, я не скажу, что я тут разобрался.
Дальше идут файлы .Mod - они уже написаны на ОБероне, но могут содержать и ассемблерные вставки. Например, файл BIOS.Keyboard.Mod - Это драйвер клавиатуры, а использеут он BIOS.I386.Machine.Mod , в котором изрядное количество ассемблера.
Попробуйте также позадавать вопросы в телеграм - чате, там есть люди куда как компетентнее меня в этих вопросах.