Как начать с создания системы Linux с нуля?

9

Я попытался сделать операционную систему с моим собственным ядром. Это не сработало слишком хорошо. Я использую Ubuntu и скачал Linux 3.2.7 с kernel.org. Я не пытаюсь изменить ядро ​​в моей системе Ubuntu. Я хочу создать свою собственную ОС с Grub, ядром Linux, и я хочу иметь эту доморощенную ОС в типе файлов (например, iso), который я могу поставить на компакт-диск и загрузить на другом компьютере. У меня вопрос: что именно мне нужно, чтобы сделать эту ОС? Любые комментарии или учебники будут полезны.

Coder404
источник
1
Вы можете настроить grub для загрузки ядра Linux. Есть много мест, чтобы узнать, как это сделать; наиболее авторитетным из которых будет официальное руководство ( gnu.org/software/grub/manual/grub.html ). Как только ядро ​​загрузится, оно попытается запустить программу, расположенную в /sbin/init(если не указано иное). Эта программа может делать все что угодно. Есть несколько распространенных опций /sbin/init, таких как Upstart, sysvinit, systemd или просто bash. Оттуда эта программа находится под контролем. Если он когда-либо выйдет, ядро ​​рухнет, поэтому оно должно быть способно запускать другие программы.
Шон Дж. Гофф
4
На сайте linuxfromscratch.org есть много информации для создания собственного дистрибутива linux.
Даниэль Куллманн

Ответы:

15

Вот что вы ищете: http://www.linuxfromscratch.org/

tshubitz
источник
2
Я согласен, что это то, что он ДОЛЖЕН делать, и я дал ему +1. Я думаю, что он действительно хочет, это детали ребрендинга Ubuntu, так как он был перенесен с Askubuntu.
RobotHumans
Даже если вы пытаетесь сделать что-то немного другое, Linux From Scratch - это, безусловно, место для начала.
Вернон
Если ничто иное, LFS - превосходный учебный опыт.
tshubitz
@tshubitz Я посмотрел на LFS, но это не имеет смысла для меня. Это предустановленная операционная система? это руководство для создания операционной системы? Что это?
Coder404
LFS - это руководство по созданию операционной системы GNU / Linux с нуля. Эта страница с сайта LFS в значительной степени подводит итог: linuxfromscratch.org/lfs
tshubitz
4

Одним из мест для начала будет Buildroot .

Что это? Это набор скриптов / make-файлов, который позволяет вам создавать систему Linux буквально с нуля. Он сносит все соответствующие компоненты, создает кросс-компилятор на хосте. - почти все.

Он будет предназначен в основном для встраиваемой работы - как таковая, она содержит uclibc вместо Glibc и отсутствуют этапы сборки для многих компонентов, например , Gnome и некоторые десктопы - однако, если вы делаете живой компакт - диск является абсолютно блестящим. Не ограничиваясь живыми компакт-дисками, конечно. Я говорю это - он поставляется со встроенным Qt.

Последняя стабильная версия поставляется с grub 0.97, который может не соответствовать вашим требованиям.

Я упоминаю об этом, потому что, хотя Linux From Scratch великолепен тем, что рассказывает, как завершить весь процесс, он длителен, занимает много времени и требует большого терпения. Buildroot может быть адаптирован для включения всего, что вам нужно; Как опыт обучения, возможность использовать menuconfigменю стилей и получить что-то, что загружается и работает, великолепна. Вы также можете увидеть, как все это делается, прежде чем добавлять более поздние функции.

С точки зрения настройки вашего ядра, я не могу более настоятельно рекомендовать взять вашу существующую конфигурацию (обычно доступную в /boot), скопировать ее в дерево ядра, а .configзатем запустить make oldconfigи пройтись по новым параметрам. Параметры по умолчанию гарантированно работают из вашего дистрибутива; если вы начинаете абсолютно с нуля, вы вполне можете построить что-то непригодное.


источник
3

Минимум, который вам нужен, - это ядро ​​и некоторый процесс, который вы можете запустить как init, а также любые загрузчики и библиотеки, необходимые для процесса init. Вы загружаете ядро, говоря ему запустить процесс init, и оттуда зависит ваше дело.

Игнасио Васкес-Абрамс
источник