OSDev
http://osdev.su/

GRUB 2 и собственная ФС
http://osdev.su/viewtopic.php?f=5&t=3668
Страница 1 из 1

Автор:  Sebt [ 28 мар 2019, 16:12 ]
Заголовок сообщения:  GRUB 2 и собственная ФС

Здравствуйте,

Слабо знаком с grub 2. На уровне написания grub config'а познакомился с ним. Сейчас в качестве костыля, если это можно так назвать, создаю два раздела, первый в ext2 на котором и установил grub 2 и положил ядро. Второй уже с собственной ФС.
Я смог частично решить проблему. Я просто указал физическое расположение ядра на диске и загрузил его. Но все же, grub при этом остается на своем разделе с ext2. И вот тут я уже не понимаю, как я бы мог установить его из моей Ubuntu на собственную ФС. Я так понимаю без переписывания самого загрузчика не обойтись? Или все же лучше уж и свой загрузчик пилить?

Примечание. GRUB я использую для трех вещей: для загрузки ядра, для установки видео режима и для определения ОЗУ. И все кроме как определения ОЗУ знаю как решить прямо сейчас. Просто ранее не интересовался этим, так как GRUB все делал. :D

Заранее спасибо за помощь.

Автор:  Yoda [ 29 мар 2019, 14:06 ]
Заголовок сообщения:  Re: GRUB 2 и собственная ФС

Собственная ФС — имеется ввиду, что не EXT2, FATxx и прочие, а совершенно новый формат?
В этом случае вам без своего загрузчика никак не обойтись.

Автор:  Sebt [ 29 мар 2019, 18:24 ]
Заголовок сообщения:  Re: GRUB 2 и собственная ФС

Да, это и имел ввиду. Жаль :( Спасибо за ответ.

Автор:  SII [ 29 мар 2019, 20:12 ]
Заголовок сообщения:  Re: GRUB 2 и собственная ФС

А зачем своя ФС понадобилась? Как по мне, если и делать свою, то лишь тогда, когда ОС в целом работает, есть нормальная драйверная модель и т.д., и новая ФС -- лишь одна из возможных.

Автор:  Sebt [ 30 мар 2019, 09:51 ]
Заголовок сообщения:  Re: GRUB 2 и собственная ФС

Да, конечно же вы правы. Просто собственная ФС, стала для меня дипломной работой.

Автор:  pavia [ 30 мар 2019, 11:48 ]
Заголовок сообщения:  Re: GRUB 2 и собственная ФС

Sebt
Раз диплом файловая система - значит загрузчик вам не нужен. Все манипуляция можно проводить в существующей ОС.

Для примера можно рассмотреть FatFS. Это библиотека, которая берёт на себя работу с файловой системой и не только на микроконтроллерах.

Для загрузки ОС с собственной файловой системы нужно добавить модуль в GRUB.

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

Достаточно определить 2 колбека которые позволят считать 1 сектор и записать 1 сектор.
Ещё потребуется библиотека для синхронизации процессов. На первых порах хватить 1 мьютекса построенного на спинлоке.


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

Автор:  Sebt [ 30 мар 2019, 14:55 ]
Заголовок сообщения:  Re: GRUB 2 и собственная ФС

pavia писал(а):
Sebt
Раз диплом файловая система - значит загрузчик вам не нужен. Все манипуляция можно проводить в существующей ОС.

Полностью согласен. Тема чисто теоретическая и с большим забегом наперед. Поэтому в "Теоретические" и поместил.

Автор:  pavia [ 30 мар 2019, 21:36 ]
Заголовок сообщения:  Re: GRUB 2 и собственная ФС

... тоrда Я, задыхаясь. схватил себя за волосы
и рванул... И мы взлетели над осокой!
Г. Горин, к.ф. "Tот самый Мюнхаузин"


Загрузка ОС аналогично попытке вытащить себя за волосы из болота. В IoT устройствах и микроконтролерах есть флешка. Аппаратно она отображается на АП-устройства.

Изначально они были маленькие. И разместить полноценную поддержку ОС проблематично. Тоже самое и в компьютерах. Но время идёт. Сейчас БИОС вернее UEFI поддерживает полноценную работу с FAT.

В IoT обычно есть загрузчик uboot который позволяет загрузить Linux. Но быль в том что ФС-проектировались изначально так что-бы примитивный загрузчик мог с них загрузить 1 файл. Что FAT что EXT построены на принципе эволюции. Вам достаточно научится только читать файлы.

1 Файл это образ ОС. Он состоит из ядра и RAM-FS (в терминах Линукса VFS). У линукса образ ещё и жатый но это излишние сложности.

На первой дорожке у вас есть 63 Кб для загрузки образа ОС. А вот RAM-FS уже лежит полноценный драйвер. Но это излишние сложности. Проще написать монолитное ядро.

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