Я программирую ОС на базе Linux, но я хочу "заново изобрести колесо" в этой ОС, просто как достижение. Мне сказали, что Linux можно установить на ПК без каких-либо пакетов (что, очевидно, вызывает "панику ядра"), но я не смог найти учебник. Мне просто нужно знать, как начать с пустого раздела и довести его до точки, где он может загрузиться (и загрузить файл инициализации, который я предоставлю). Я не хочу использовать какие-либо пакеты, так как я буду выполнять программу при загрузке.
2 ответа
1
Вы пробовали использовать LSF?, у вас может быть набор пакетов, которые вы можете использовать или нет:http://www.linuxfromscratch.org/lfs/
1
Предполагается, что система BIOS (не EFI) x86. Для некоторых архитектур, таких как ARM, требуются данные платформы или информация о дереве устройств.
- Сборка ядра.
- Создайте одну загрузочную файловую систему и пометьте как загрузочную.
- Установите ядро в загрузочную файловую систему.
- Установите загрузчик.
- Сконфигурируйте загрузчик для загрузки вашего ядра, без аргументов, без init {ramfs, rd}.
- Загрузочный.
- Прочтите
Documentation/initrd.txt
чтобы узнать, как создать initramfs, если вы хотите выполнить загрузку initramfs, иначе создайте новый раздел и отформатируйте его (корневая файловая система). Игнорируйте часть виртуального диска как таковую и вместо этого используйте часть изображения CPIO. - Сборка busybox, по крайней мере, с настроенной оболочкой.
- Установите busybox в initramfs или корневую файловую систему. В первом случае настройте загрузчик на использование initramfs/tell ядра Linux. Для последнего используйте symlink /bin /sh в busybox и добавьте аргумент init = /bin /sh в командную строку ядра.
- Расширьте свое воображение с помощью LFS или другого.
- Прочтите
boot(7)
если вам нужен обзор традиционного (вероятно, не того, что вы используете во многих современных дистрибутивах) процесса загрузки Linux.