OSDev
http://osdev.su/

вопрос по микроядрам.
http://osdev.su/viewtopic.php?f=6&t=952
Страница 1 из 2

Автор:  Lincor [ 19 июн 2014, 12:37 ]
Заголовок сообщения:  вопрос по микроядрам.

вот появился вопрос о микроядрах: как они грузят сервисы? ведь файловую систему тоже выносят в отдельный сервис.

Автор:  SII [ 19 июн 2014, 13:40 ]
Заголовок сообщения:  Re: вопрос по микроядрам.

Ну а как не микроядра делают то же самое? Ведь без драйверов загрузка невозможна. На самом деле первоначальная загрузка всегда осуществляется специальным загрузчиком, и от архитектуры системы зависят лишь его особенности, но не общий набор функций.

Автор:  Lincor [ 19 июн 2014, 13:53 ]
Заголовок сообщения:  Re: вопрос по микроядрам.

монолитные ядра грузят инит через драйвер ФС, который находится в нем же и, следовательно, загружен загрузчиком.
а в микроядрах сервисы вынесены в отдельные программы, соответственно, главная часть ядра должна их запустить. но как она это делает, если файловой системы нет?
или же загрузчик грузит не только основную часть, но и сервисы? была такая мысль, но тогда уж точно хз, как он это делает. GRUB так умеет?

Автор:  Lincor [ 19 июн 2014, 13:55 ]
Заголовок сообщения:  Re: вопрос по микроядрам.

Lincor писал(а):
главная часть ядра должна их запустить. но как она это делает, если файловой системы нет?

хех, т.е. получается замкнутый круг - нужно загрузить драйвер ФС из ФС, чтобы использовать ФС.

Автор:  pavia [ 19 июн 2014, 14:25 ]
Заголовок сообщения:  Re: вопрос по микроядрам.

Загрузчик грузит не 1 программу, а целый образ. В этом образу лежат все нужные файлы и сервисы. По сути для микроядра (впрочем как и для любого другого) можно сохранить "снимок" состояния и его грузить. Как правило образ просто конструируется прямо на диске, а не сохраняется.

Как было сказано в одной книге написание загрузчика, это попытка вытянуть себя из болота за волосы.

Автор:  Lincor [ 19 июн 2014, 14:42 ]
Заголовок сообщения:  Re: вопрос по микроядрам.

я так понимаю, это initrd? тогда понятно... но все равно в ядре должен быть драйвер inird, эх, не Ъ... впрочем, он занимает максимум сотню строк.

Автор:  SII [ 19 июн 2014, 15:02 ]
Заголовок сообщения:  Re: вопрос по микроядрам.

1. Система с монолитным ядром вовсе не означает, что все драйверы намертво пришиты к этому самому ядру. В Винде, например, драйверы вполне себе загружаемые и выгружаемые, поэтому технически вполне реально грузить отдельно ядро и отдельно драйверы.

2. Для быстрой загрузки можно (и нужно) сделать образ памяти уже загруженной системы со всеми необходимыми драйверами, службами и т.д. -- а для этого нет разницы, какова её архитектура.

3. Для работы на произвольном оборудовании в любом случае придётся загружать систему "врассыпную" -- драйверы по мере необходимости, исходя из того, какие устройства обнаруживаются в процессе загрузки. Так что без "умного" загрузчика не обойтись в любом случае.

Автор:  Lincor [ 19 июн 2014, 15:37 ]
Заголовок сообщения:  Re: вопрос по микроядрам.

1. это потому, что в мастдайке гибридное ядро. линукс тоже так умеет, там ядро модульное.

ну я понял, грузить дамп. повторюсь, GRUB умеет?

Автор:  Yoda [ 19 июн 2014, 16:23 ]
Заголовок сообщения:  Re: вопрос по микроядрам.

Lincor писал(а):
хех, т.е. получается замкнутый круг - нужно загрузить драйвер ФС из ФС, чтобы использовать ФС.

Нет. Встроенный в загрузчики драйвер обычно сильно упрощён. Он достаточен для того, чтобы только читать файлы, да ещё без всяких кеширований/буферизаций. А полнофункциональный драйвер грузится потом. Кроме того, загрузка обычно производится только с ограниченного набора достаточно простых ФС, а последующая работа осуществляется уже с большим набором, включающим крутые файловые системы, достаточно тяжёлые для загрузки.

Автор:  pavia [ 19 июн 2014, 20:23 ]
Заголовок сообщения:  Re: вопрос по микроядрам.

Lincor
Всё не так как вы думаете. За вас никто грузить не будет. И запускать тоже. И делать придётся самому и разбираться тоже. И лучше тянуть загрузчик или стартер в ядро. И да обычно стартер имеет вид леса или как говорят кастыли. Микрояро конечно красиво. В реальной жизни оно не работает. Для запуска надо грузить вместе с драйверами. Надо налаживать связи между компонентами системы.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/