Загрузчик ЯОС

Только технические вопросы по ЯОС и MINOS. Терминология и прочее - в других форумах.
Ответить
Атлет
Сообщения: 3
Зарегистрирован: 28.05.22 17:20

Загрузчик ЯОС

Сообщение Атлет » 02.07.22 12:31

Всем привет! Можете подсказать, где находится загрузчик ЯОС в исходном коде?

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Загрузчик ЯОС

Сообщение БудДен » 02.07.22 15:13

Спасибо за хороший вопрос, но у него нет хорошего ответа. Я не занимался загрузкой x86 уже несколько месяцев, всё позабыл. Ключи для того, чтобы восстановить знания:

* Нужно изучать порядок сборки (см. https://tvoygit.ru/budden/ja-o-s/src/br ... -запуск.md). Рекомендую USB версию, а не CD.
Скрипт сборки для USB - тут: https://tvoygit.ru/budden/ja-o-s/src/br ... 32USB.Tool

В частности, вот эти строчки

Код: Выделить всё

PCAAMD64.Assemble OBLUnreal.Asm ~
PartitionsLib.SetBootLoaderFile OBLUnreal.Bin ~
PCAAMD64.Assemble BootManager.Asm ~
BootManager.Split BootManager.Bin ~
Собирают и задают начальный загрузчик (он находится в https://tvoygit.ru/budden/ja-o-s/src/br ... Unreal.Asm, написан на ассемблере).

Дальше загружается собственно ядро, которое линкуется вот этой командой:

Код: Выделить всё

Linker.Link --path=../NewBios32USB/ --displacement=100000H --fileName=../NewBios32USB/USB.Bin
	Kernel Traps
	UsbHubDriver UsbEhci UsbEhciPCI UsbStorageBoot
	DiskVolumes DiskFS Loader BootConsole ~


* Когда чинил загрузку с CD, писал "поток сознания" - вот он.

https://вече.программирование-по-русски ... ?f=5&t=499

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Загрузчик ЯОС

Сообщение БудДен » 02.07.22 15:19

В частности, тут есть команды для отладки в связке gdb+qemu

https://вече.программирование-по-русски ... t=10#p3496

Там ещё есть какой-то волшебный скрипт для gdb из интернета, чтобы можно было отлаживаться в real mode или в unreal mode.
Я брал его либо отсюда, https://github.com/mhugo/gdb_init_real_mode, либо из каких-то форков. Вряд ли он уцелел после аварии у меня.

Есть также видео с аналогичным процессом для Raspberry Pi - там сразу загружается ядро (kernel7.img)

https://zen.yandex.ru/video/watch/62a79 ... 692a14250c

Никакого загрузчика в этом варианте нет. Для Zybo всё гораздо сложнее, там есть 2-3 загрузчка, но здесь я некомпетентен.
Это делал Алексей Морозов, он и знает, как там что устроено. Я всего лишь выпросил у него, чтобы он адаптировал сборку, чтобы она работала на моей Zybo Z7-10. Процесс там гораздо сложнее и не думаю, что с него стоит начинать.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Загрузчик ЯОС

Сообщение БудДен » 02.07.22 16:39

Если останутся какие-то вопросы - задавайте, попробуем вместе разобраться.

Атлет
Сообщения: 3
Зарегистрирован: 28.05.22 17:20

Re: Загрузчик ЯОС

Сообщение Атлет » 04.07.22 08:36

Спасибо, буду разбираться!

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Загрузчик ЯОС

Сообщение БудДен » 04.07.22 09:26

Если интересно, есть пара задач:

* запустить обычную ARM версию для Raspberry Pi - этому посвящена ветка https://tvoygit.ru/budden/ja-o-s/commits/branch/RPi2-3 и здесь рядом тема на форуме. У нас есть работающая "кооперативная" версия для Raspberry Pi и работающая "обычная" версия для Zybo Z7-10, вот из них и пытаюсь скомбинировать работающую под RPi. Есть определённое продвижение, но до успеха пока далеко. В эти дни продолжил этим заниматься после большого перерыва. Кооперативная версия - это отдельный вариант A2 с кооперативным планировщиком, но, как говорят знатоки, она не вполне доделана. Для сокращения фронта работ нужно иметь одну версию, а не две, пооэтому берём "обычную" (на вытесняющей многозадачности) как более доведённую до ума. Разные ARM железки могут сильно отличаться друг от друга, Zynq сильно отличается от RPi (но RPi проще). Стратегия состоит в упрощении версии Zynq до уровня RPi, подглядывая и забирая куски из работающей кооперативной версии. Сейчас есть эмулятор, но потом понадобится физическая Raspberry Pi 2 Model B, коло 3 тыр на авито.

* запустить обычную x86 версию на Эльбрусе. Почему она не запустилась - я не знаю. Нужен доступ к физической машине и квалификация. Доступ к физической машине можно оформить только на юрлицо, но её можно взять в аренду, порядка 10 тыр в месяц ЕМНИП.

Ответить