Зачем это вообще нужно? GRUB для любителей, которые не хотят париться с первичным опросом оборудования через BIOS и инициализацией защищенного режима. У вас это все есть. Если хотите загружаться с различных носителей, просто посмотрите исходники GRAB'а. Если хотите выбирать ядро для загрузки, то сделайте связку "первичный загрузчик - простой вторичный загрузчик". RAM-диск используется не только из-за быстрой скорости работы, но и для того, чтобы можно было загрузиться и работать с тем носителем, с которым ось не может работать напрямую. Кстати, GRUB работает именно так - он все указанные файлы грузит в память, используя функции BIOS, чтобы потом к ним можно было обратиться из PM, не переключаясь обратно в RM - это полнейший идиотизм, а не пресловутая универсальность. При необходимости построение такого RAM-диска можно осуществить и своими силами, но уже без каких-либо "левых" спецификаций и навязанной излишней функциональности.Hack_phoenix wrote:Как я понимаю, нужно будет после получения управления сразу установить свои GDT и IDT, стек и прочее, а потом bluescreen переписывать, уже под защищенный режим, ибо прерывания BIOS там не заюзать... Хотя, есть возможность уйти в реальный режим после получения управления, а затем перейти в него своими средствами... Это проще...
Хочу по тихой грусти рабить ядро на несколько модулей..
Phantom-84
На счет "для любиелей" (мы кстати тоже все любители )))) и "просто посмотрите исходники" ты немного не прав. GRUB используется для многих систем, это очень удобно. Его научились использовать совместно с несколькими системами (с тем же Windows) это очень важно. Им занимается отдельная команда людей, и нам не надо греть голову по поводу будующих и текущих проблем совместимости с другими системами.
В Kolibri реализована поддержка v86, и сделан с целью использования функций BIOS в PM (изначально для работы с дисками, но когда он только появился diamon говорил что спокойно использовал для переключения видео режимов). Так что использовать BIOS в PM УЖЕ возможно. Что ещё надо?
На счет "для любиелей" (мы кстати тоже все любители )))) и "просто посмотрите исходники" ты немного не прав. GRUB используется для многих систем, это очень удобно. Его научились использовать совместно с несколькими системами (с тем же Windows) это очень важно. Им занимается отдельная команда людей, и нам не надо греть голову по поводу будующих и текущих проблем совместимости с другими системами.
В Kolibri реализована поддержка v86, и сделан с целью использования функций BIOS в PM (изначально для работы с дисками, но когда он только появился diamon говорил что спокойно использовал для переключения видео режимов). Так что использовать BIOS в PM УЖЕ возможно. Что ещё надо?
Phantom-84
Зачем же вечно возиться со своим уникальным велосипедом ? Уже наигрались. Нынешний загрузчик реально сдерживает развитие системы. Что касается РАМ-диска то пихать туда весть образ тоже нет смысла. Его можно собирать из загруженных GRUB-ом модулей на этапе настройки ядра. Будет не FAT12 а RAMFS с доступом только на чтение (можно и на запись). Наконец если очень хочется загрузить kolibri.img то GRUB сделает это и с флешки и с CD и с сжатого NTFS.
Зачем же вечно возиться со своим уникальным велосипедом ? Уже наигрались. Нынешний загрузчик реально сдерживает развитие системы. Что касается РАМ-диска то пихать туда весть образ тоже нет смысла. Его можно собирать из загруженных GRUB-ом модулей на этапе настройки ядра. Будет не FAT12 а RAMFS с доступом только на чтение (можно и на запись). Наконец если очень хочется загрузить kolibri.img то GRUB сделает это и с флешки и с CD и с сжатого NTFS.
Да, разобраться в исходниках GRUB'а не так уж и просто, но только в том случае, если толком не знаешь, что ищешь. GRUB используется в тех системах, в которых до этого использовались уж слишком кривые загрузчики. Нужно десять раз подумать, прежде чем принимать Multiboot Specification. GRUB, как впрочем и NTLDR, можно использовать просто для выбора загрузочного раздела. Для выбора ядра в пределах одного раздела, как я уже говорил, лучше использовать свой вторичный загрузчик - не нужно менять формат файла ядра. Кстати, можно и не писать вторичный загрузчик, а просто для каждой версии ядра завести отдельный файл с образом загрузочного сектора и прописать в нем отличное от других имя файла ядра, после чего выполнять выбор с помощью все того же NTLDR. Мне в принципе все равно, просто я не вижу никакой необходимости для Kolibri подстраиваться под Multiboot Spec. и использовать для загрузки GRUB. Выбор необходимого ядра можно выполнять и по-другому, грузить дополнительные модули ядра не нужно, а если бы даже и было нужно, то они бы все равно размещались на RAM-диске.
Serge, дело ваше. Согласен, что грузить весь образ, тем более довольно специфического формата, тоже не самый лучший вариант.
Phantom-84
GRUB используют в системах потому что это удобно. Не надо тратить время на всю эту возню с загрузкой и можно сосредоточиться на ядре. Менять формат файла ядра тоже нет особой необходимости. GRUB грузит что угодно лишь бы заголовок был. Другое дело что надо вносить изменения в само ядро, но для Колибри это обычное состояние.
GRUB используют в системах потому что это удобно. Не надо тратить время на всю эту возню с загрузкой и можно сосредоточиться на ядре. Менять формат файла ядра тоже нет особой необходимости. GRUB грузит что угодно лишь бы заголовок был. Другое дело что надо вносить изменения в само ядро, но для Колибри это обычное состояние.
Я никуда не потерялся, работа идет. Только все очень медленно - я еще на этапе поглощения документации... Времени очень мало...
Hack_phoenix
Если есть вопросы пиши мне в личку. Я делал загрузку через GRUB с начальной инициализацией.
Если есть вопросы пиши мне в личку. Я делал загрузку через GRUB с начальной инициализацией.
Понял. Будет чуть больше времени - свяжусь. Работа, мать ее.
Who is online
Users browsing this forum: No registered users and 0 guests