OSDev

для всех
Текущее время: 06 май 2024, 04:29

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 79 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 8  След.
Автор Сообщение
 Заголовок сообщения: Re: Самопальные загрузчики
СообщениеДобавлено: 03 май 2012, 21:21 

Зарегистрирован: 31 окт 2011, 18:20
Сообщения: 230
Тогда несложно и текущую версию, которая работает без всяких мультибутов, бутнуть сислинуксом. Грузится счас по 8E00h.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самопальные загрузчики
СообщениеДобавлено: 03 май 2012, 21:24 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
1. Когда я придумывал порядок загрузки моей оси, GRUB'а еще не было.
2. Мне нужен реальный режим, т.к. на начальном этапе инициализации ядра активно используется сервис BIOS (даже когда ядро загружается GRUB'ом, выполняется переключение в RM и отрабатывает стандартная инициализационная процедура).
3. Использование исключительно собственного софта хотя бы как вариант.
4. Отсутствие первичных загрузчиков, в полной мере удовлетворяющих моим требованиям. Во времена, когда я писал свои первые загрузчики, образцами для подражания были загрузчики DOS/Win95, которые загружали несколько секторов и передавали им управление - меня такое не устраивало - мне нужно было загружать файлы, причем несколько.
5. Расширение возможностей существующих универсальных загрузчиков (MBR, stage 2), позволяющее сосуществовать моей системе с другими ОС на диске. Простота и удобство установки и использования загрузчиков для выбора загружаемой ОС. Когда я выкинул последний свой флопповод на помойку, сразу возникла необходимость в размещении и запуске ОС на харде. Во время активной разработки я запускаю через раз Win/Lin и мою систему, поэтому были нужны соответствующие загрузчики. Это линейка MBR-загрузчиков jumbo и alter, а также модифицированный GRUB, позволяющий его устанавливать путем копирования файлов и перезаписи загрузочной записи (Спасибо Ёде за первичный загрузчик NTFS, теперь я могу грузить модифицированный GRUB 2, а также упакованный файл с моей системой из NTFS-раздела). Кстати я недавно "по кусочкам" собрал новую версию Alter'а (появилась возможность загружать произвольный сектор диска как при обычной, так и при альтернативной загрузке - теперь к примеру можно перемещать stage 1 GRUB'а из MBR в следующий сектор диска и выполнять его загрузку лишь как один из двух возможных вариантов). Могу дать потестить эту версию хоть сейчас. Или подождите, пока я отрефакторю эту поделку и она пройдет полноценное тестирование.
6. Just for fun. Это мой любимая тема на форумах. Отчасти из-за того, что часто это единственная тема соприкосновения между осуществляемой мной разработкой и разработками других осдевщиков, по которой можно хоть сколько-нибудь серьезно общаться. Поднимать какие-либо другие темы для серьезного обсуждения особого смысла нет (в чем я уже неоднократно убедился).
7. Вспомню еще что-нибудь, напишу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самопальные загрузчики
СообщениеДобавлено: 03 май 2012, 21:40 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Bargest писал(а):
Как по мне, система должна стоять на своём разделе диска. Одна система - один раздел. Ставить десяток систем на один раздел - имхо фича бесполезная.
Bargest писал(а):
Поэтому я не хочу лишний раз накладывать на себя ограничения.
С моей точки зрения здесь явное противоречие. В случае использования Multiboot-совместимого загрузчика моя ось может сосуществовать с другими ОС/могут сосуществовать несколько экземпляров моей ос на одном разделе.
Я писал(а):
System folder name is passed in special structure stored at the end of kernel image. When Multiboot-compliant boot loader was used all required parameters are passed through Multiboot structures (system folder name can be taken from Multiboot command line).
Источник


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самопальные загрузчики
СообщениеДобавлено: 03 май 2012, 21:48 

Зарегистрирован: 22 май 2007, 15:29
Сообщения: 283
phantom-84 писал(а):
Отчасти из-за того, что часто это единственная тема соприкосновения между осуществляемой мной разработкой и разработками других осдевщиков, по которой можно хоть сколько-нибудь серьезно общаться. Поднимать какие-либо другие темы для серьезного обсуждения особого смысла нет (в чем я уже неоднократно убедился).


Ну, это вы зря :). Документация у вас на ОС доступна? Было бы интересно почитать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самопальные загрузчики
СообщениеДобавлено: 03 май 2012, 23:07 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
grindars писал(а):
Документация у вас на ОС доступна? Было бы интересно почитать.
Нет. Да и просто в готовом для публикации виде очень мало. А те спеки, которые уже приняты, не дают сколько-нибудь полной картины.

Я писал(а):
Спасибо Ёде за первичный загрузчик NTFS, теперь я могу грузить модифицированный GRUB 2
Все-таки нет - не хватает номера загрузочного раздела в качестве параметра. Yoda, когда я говорил про это на буржуйском форуме, я был прав. Ось грузится, т.к. при загрузке с NTFS-раздела я использую встроенный в драйвер образ RAM-диска (не требующий дозагрузки с физического загрузочного устройства), при этом не требуется знать номер загрузочного раздела (перед передачей управления ядру я его обнуляю, но мог бы даже и этого не делать). Патчить файл не хочется (иначе все озвученные мной преимущества пропадут), лучше пропатчивать первичный загрузчик.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самопальные загрузчики
СообщениеДобавлено: 04 май 2012, 01:19 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Если наряду с явно упомянутым Станиславом подразумеваюсь и я, то отвечу.
1. Мультибут спецификации на сегодняшний день поддерживаются только кривыми GNUсными продуктами. Эти спецификации не являются промышленными стандартами ни де факто, ни де юре (хотя налицо попытка сделать стандартом де юре). Тем не менее, моё ядро поддерживает мультибут. Гнусность GNUсных продуктов заключается в том, что вместо установки системы в два клика я должен: а) найти и скачать исходники (по ходу дела замечу, что такова политика партии, т.е. лицензии ГНУ, распространять всё в исходниках, хотя они мне нафиг не нужны); б) разобраться в их компиляции; в) громко выматериться и пойти разбираться в том, что мне лучше установить, MinGW или CygWin; г) ещё раз громко выматериться, потому что надо потратить день на то, чтобы изучить конфигурации компиляции, чтобы получить под моей любимой Windows рабочий продукт; д) после компиляции понять, что эта ботва предназначена для установки из под Линукс, ещё потратить кучу времени на изучение процедуры установки загрузчика; е) уже заработав изрядное красноглазие, потратить ещё ночь на изучение конфигураций загрузки и командной строки GRUB. Если после этого я слышу хвалебные речи в адрес мультибута, у меня возникает желание разбить цветочный горшок о головы создателей этих загрузчиков.
2. Мультибут загрузчики являются крупными, самостоятельными и не подконтрольными моему проекту продуктами и распространяются под своей лицензией. Это накладывает некоторые ограничения на разрабатываемую ОС.
3. Мультибут загрузчики весьма избыточны и тяжеловесны. Мне не нужен продукт, всего лишь предназначенный для загрузки ОС, который сам по себе больше и сложней ОС, которую он грузит.
4. Мультибут загрузчики сами же в полной мере не соответствуют этой спецификации. То одно не поддерживается, то другое.
По рассматриваемым причинам, все эти мультибуты, извините, не годятся не только для школьников и домохозяек, но даже и для более-менее рядовых пользователей. Теперь вопрос: а что имеем в остатке?? А НИЧЕГО! Ровным счётом ничего приличного и универсального. Если окинуть взглядом историю, то выяснится, что мультибутами пользуются только многочисленные клоны *никс, а все остальные мало-мальски распространённые ОС так или иначе решают вопрос загрузки с нуля, т.е. с загрузочного сектора. ОК, говорим мы, - пойдём, посмотрим, наверняка должно быть достаточно, если не готовых продуктов, то хотя бы заготовок, с которых можно было бы состряпать что-то приличное. И что? И опять НИЧЕГО. Все эти обрубки, демо-коды и тьюториалы действительно изобилуют ошибками, как справедливо сказано в первом посте, сделаны вразнобой, не поддерживают никакой универсальности и сами никак не поддерживаются.
Если я в этих условиях пытаюсь сделать простой, удобный, тщательно отлаженный в самых разных условиях, унифицированный набор первичных загрузчиков, чтобы тем самым закрыть эту нишу, то мне кажется, что я делаю полезную работу. В любом случае, мой комплект имеет некоторые совершенно уникальные свойства, которых нет ни в одном другом наборе.
Переформулирую по другому. Именно по той причине, что вокруг море глючных самопальных первичных загрузчиков и НИ ОДНОГО нормального комплекта, именно поэтому я и пытаюсь восполнить этот пробел. И мне кажется, что я не очень далёк от поставленной цели.
По поводу риска убийства ФС. Замечу, что первичный загрузчик (загрузочный сектор) является штатным свойством любой без исключения нормальной файловой системы. Таким образом, если нет грубых ошибок в установочном ПО, то нет и никакого риска потери данных. Самый большой риск - утрата загрузки другой установленной ОС, однако современные ОС имеют средства восстановления загрузочных секторов. В любом случае, запись загрузочного сектора не более рискована, чем установка того же GRUB. Давайте вспомним времена ДОС. Утилита sys.exe - почти прямой эквивалент моей утилиты boot.exe. Однако, никто не говорит про потерю данных и зловредность ДОСовского бут-сектора, хотя он даже более убогий чем многие из исходников разбросанных по инету. Так что давайте не будем напрасно преувеличивать риск.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самопальные загрузчики
СообщениеДобавлено: 04 май 2012, 01:21 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
phantom-84 писал(а):
Все-таки нет - не хватает номера загрузочного раздела в качестве параметра. Yoda, когда я говорил про это на буржуйском форуме, я был прав.

Обязательно решим этот вопрос. Просто любая работа требует времени и сил. Но всё, что реально необходимо, всё будет.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самопальные загрузчики
СообщениеДобавлено: 04 май 2012, 06:16 
Аватара пользователя

Зарегистрирован: 06 мар 2012, 20:05
Сообщения: 130
Откуда: Санкт-Петербург
Yoda, вот вы совсем не правы по поводу гнусностей :) grub4dos распространяется в виде пачки exe, загрузочный сектор устанавливается в 3 клика, ещё 4 - на копирование вторичного загрузчика в корень. Автоматизировать процесс, собственно, никто не мешает, но это уже вопросы к тому, кто разрабатывает установщик вашей ОСи.

В остальном я мог бы и согласиться, но тут всплывает ещё один нюанс: на компьютере человека, который будет использовать вашу ОС, скорее всего УЖЕ есть какая-либо операционка. И будет некрасиво, если для установки ещё одной потребуется снести основную. Так что так или иначе придётся подстраиваться под то, что есть на компе юзера.

Я сейчас ковыряю NTLDR с целью создать промежуточный загрузчик между ним и моей multiboot-совместимой осью. Хотя груб тут опять же радует - его можно довольно легко прикрутить как к NTLDR от WinXP, так и к BootMgr от Vista+

P.S. Откуда у людей столько ненависти к СПО?

_________________
We are back with a hard even better than before [D-Block & S-Te-Fan – Evolutionz {Ran-D remix}]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самопальные загрузчики
СообщениеДобавлено: 04 май 2012, 10:37 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
DJ PhoeniX писал(а):
Yoda, вот вы совсем не правы по поводу гнусностей :) grub4dos распространяется в виде пачки exe, загрузочный сектор устанавливается в 3 клика, ещё 4 - на копирование вторичного загрузчика в корень.

Ключевой момент - grub4DOS. Т.е. чтобы запустить GRUB, нужно прикрутить к нему (к загрузчику!) ещё один загрузчик в виде полноценной операционной системы (DOS). И это вместо того, чтобы записать загрузочный сектор!

DJ PhoeniX писал(а):
Автоматизировать процесс, собственно, никто не мешает, но это уже вопросы к тому, кто разрабатывает установщик вашей ОСи.

Если я автоматизирую процесс, то ведь не так важно, какой именно загрузчик будет использован. Главное, чтобы работал.

DJ PhoeniX писал(а):
на компьютере человека, который будет использовать вашу ОС, скорее всего УЖЕ есть какая-либо операционка. И будет некрасиво, если для установки ещё одной потребуется снести основную.

Вообще-то не принято разнородные ОС ставить на один раздел. А при установке на разные диски или разделы вопрос загрузки вполне решаем. Например, сейчас легко можно сделать загрузочный компакт-диск.

DJ PhoeniX писал(а):
P.S. Откуда у людей столько ненависти к СПО?

Вообще-то у меня нет никакой ненависти к Свободному ПО. Надо заметить, что мои загрузчики также свободны. Но есть некоторые претензии к лицензии GNU. Например, обязательство распространять исходники приводит к отсутствию канонических бинарников, что существенно затрудняет их использование и часто замыкает сферу их использования на такие же GNUсные продукты.

PS.
Загрузка в два клика с Windows-диска без убиения оной вполне решаема и стоит у меня в планах ToDo.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самопальные загрузчики
СообщениеДобавлено: 04 май 2012, 11:03 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
В мое время просто не было нормального загрузчика. Да и сейчас сомневаюсь что есть.
Претензии к загрузчикам были во всём.
1) Грузили bin или ELF. Либо просто сектор с диска. А мне нужен был EXE-MZ и EXE-PE из определённой директории.
2) Грузили сразу в защищенный режим, а настройку мне надо было делать в 16 Битном реальном.
3) кривые спецификации в том числе и мультибута. Большинство параметров было не определено.
4) Свободный доступ к первому мегабайту.

GRUB весил 30 МБайт. Когда как вся операционка должна помещаться на 1-10 мбайт.

Во вторых свой загрузчик как мне казалось хорошая возможность потренироваться в написании драйвера ФС.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 79 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 8  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB