Yoda писал(а):
Не, почти всё, что ты перечислил, как раз понятно. Просто обычно в таких случаях пишут соответствующий модуль в рамках своего проекта. Совершенно не обязательно с открытыми кодами, если вся твоя операционка закрыта. Смотри, почти всё, что ты перечислил, специфично для твоей ОС. Почему ты ожидаешь поддержки и использования загрузчика для твоей ОС другими проектами?
Я уже давно ничего не ожидаю. Более того я стараюсь всячески препятствовать бесконтрольному распространению софта, в котором использованы мои (не всегда только мои) технологии. В данном случае открытость исходников вовсе не означает, что эти исходники в неизменном виде станут частью моего софта или что они могут быть использованы для загрузки стороннего софта без каких-либо ограничений. Вполне возможно, что на этапе адаптации созданного загрузчика для загрузки моего софта я перестану публиковать вносимые в него изменения, т.к. основная цель создания этой ветки форума - изучение NTFS (обмен знаниями, опытом работы, результатами экспериментов) и написание первичного загрузчика для этой ФС в общем, а не конкретно для моего софта. Или у кого-то есть сомнения в пользе этого начинания для развития OSDev'а? Конечно вполне возможно, что уже на начальном этапе я стану использовать какие-то свои наработки, но это вовсе не означает, что другие тоже обязаны их использовать и тем более спрашивать у меня, можно это делать или нельзя. Как минимум до момента реализации первоначального задания исходники будут полностью свободными (т.е. как обычно никаких обязательств с чьей-либо стороны). Потом, естественно, по большей части тоже.
Цитата:
Закрытость кода совершенно не означает, что это плохой код. Мировая практика показывает, что закрытый код часто оказывается более качественным, чем открытый.
Так кто спорит? Просто трудно оценить полностью поведение стороннего софта, не имея на руках исходников.
Цитата:
Согласен, это важно. Но только в том случае, если их использование приносит тебе деньги. Но давай рассудим так. Предположим, твой проект вышел на коммерческий уровень. У тебя есть две возможности: потратить кучу времени на свои загрузчики, либо оценить мой труд. Не факт, что первая альтернатива в конечном итоге окажется выгодней.
Обрекать себя на долговые повинности по таким мелочам, как загрузчики, а также тащить в разработки, в которых я принимаю участие, сторонний софт без веских на то оснований противоречит моим принципам.
Цитата:
эмммммсс... а ты действительно уверен, что твои загрузчики будут надёжней?
Нет, но гарантировать надежность мне все равно так будет проще.
Цитата:
1. Загрузка двух файлов нереализуема в полной мере в некоторых файловых системах, например, в FAT12/16, Ext2/3/4.
Скажу, что размер кода для загрузки по крайней мере двух файлов будет не намного больше, чем одного. В крайнем случае всегда можно использовать расширитель первичного загрузчика или полностью независимый промежуточный загрузчик. Но это крайний случай, т.е. скорее исключение из правила.
Цитата:
2. Наличие двух файлов сильно портит интерфейс, вплоть до нереальности создания универсальных спецификаций. По каким адресам грузить каждый файл? Сколько места резервировать? Как проверять переполнение? Как задавать имена? Всё это вкупе - СУЩЕСТВЕННОЕ усложнение, не дающее ничего принципиально нового, потому что...
3. ...всё, что можно хранить в двух файлах, можно хранить и в одном.
Все названные ограничения вполне преодолимы. Я упаковываю два файла в один лишь при крайней необходимости или "по желанию пользователя". Постоянное упаковывание может вызвать желание хранить в дистре несколько экземпляров ядра, упакованного по отдельности вместе с каждым драйвером, или желание интегрировать в одном драйвере поддержку большего, чем это реально необходимо, количества устройств/ФС. Упакованный файл может стать препятствием для ручного переноса системы пользователем. Основные принципы загрузки были заложены очень давно, не хочу пока их нарушать.
Цитата:
Вот этот пункт мне совершенно непонятен. Мне как раз казалось, что мои спецификации совершенно не зависят от типа файловой системы. Демо-ядро без модификации грузится с любой ФС, для которой написан соответствующий первичный загрузчик.
Мои спецификации не соответствуют твоим и наоборот. Чтобы использовать твой загрузчик для NTFS, мне нужно в процессе установки (или даже заранее, чего я пока не делаю и делать не собираюсь) упаковывать загрузочные файлы в загрузочный образ нового типа (возможность объединения наших загрузочных спецификаций я в расчет не беру, т.к. это как минимум потребует переделки стартового кода ядра).