Я попытался сделать операционную систему с моим собственным ядром. Это не сработало слишком хорошо. Я использую Ubuntu и скачал Linux 3.2.7 с kernel.org. Я не пытаюсь изменить ядро в моей системе Ubuntu. Я хочу создать свою собственную ОС с Grub, ядром Linux, и я хочу иметь эту доморощенную ОС в типе файлов (например, iso), который я могу поставить на компакт-диск и загрузить на другом компьютере. У меня вопрос: что именно мне нужно, чтобы сделать эту ОС? Любые комментарии или учебники будут полезны.
9
/sbin/init
(если не указано иное). Эта программа может делать все что угодно. Есть несколько распространенных опций/sbin/init
, таких как Upstart, sysvinit, systemd или просто bash. Оттуда эта программа находится под контролем. Если он когда-либо выйдет, ядро рухнет, поэтому оно должно быть способно запускать другие программы.Ответы:
Вот что вы ищете: http://www.linuxfromscratch.org/
источник
Одним из мест для начала будет Buildroot .
Что это? Это набор скриптов / make-файлов, который позволяет вам создавать систему Linux буквально с нуля. Он сносит все соответствующие компоненты, создает кросс-компилятор на хосте. - почти все.
Он будет предназначен в основном для встраиваемой работы - как таковая, она содержит uclibc вместо Glibc и отсутствуют этапы сборки для многих компонентов, например , Gnome и некоторые десктопы - однако, если вы делаете живой компакт - диск является абсолютно блестящим. Не ограничиваясь живыми компакт-дисками, конечно. Я говорю это - он поставляется со встроенным Qt.
Последняя стабильная версия поставляется с grub 0.97, который может не соответствовать вашим требованиям.
Я упоминаю об этом, потому что, хотя Linux From Scratch великолепен тем, что рассказывает, как завершить весь процесс, он длителен, занимает много времени и требует большого терпения. Buildroot может быть адаптирован для включения всего, что вам нужно; Как опыт обучения, возможность использовать
menuconfig
меню стилей и получить что-то, что загружается и работает, великолепна. Вы также можете увидеть, как все это делается, прежде чем добавлять более поздние функции.С точки зрения настройки вашего ядра, я не могу более настоятельно рекомендовать взять вашу существующую конфигурацию (обычно доступную в
/boot
), скопировать ее в дерево ядра, а.config
затем запуститьmake oldconfig
и пройтись по новым параметрам. Параметры по умолчанию гарантированно работают из вашего дистрибутива; если вы начинаете абсолютно с нуля, вы вполне можете построить что-то непригодное.источник
Минимум, который вам нужен, - это ядро и некоторый процесс, который вы можете запустить как init, а также любые загрузчики и библиотеки, необходимые для процесса init. Вы загружаете ядро, говоря ему запустить процесс init, и оттуда зависит ваше дело.
источник