OSDev

для всех
Текущее время: 27 апр 2024, 09:06

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




Начать новую тему Ответить на тему  [ Сообщений: 15 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Обсуждение загрузчика
СообщениеДобавлено: 22 дек 2012, 19:22 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Эта тема выделена из http://osdev.ru/viewtopic.php?f=6&t=666&p=8273#p8273 по просьбе автора. SII


SII писал(а):
Вообще, неплохо бы нормальное описание NTFS на Вике сделать...
Да, неплохо бы :D Может, и сделаю, хотя относительно Вики, перефразировав чукчу, можно сказать, я не писатель, я читатель. Прежде всего буду выкладывать в этой ветке. Может, кто-нибудь другой перенесет в Вику.

Yoda писал(а):
http://sourceforge.net/projects/linux-ntfs/files/NTFS%20Documentation/0.5/
Уже есть, спасибо. Ты вроде бы это уже где-то выкладывал. Сам изучал по этим докам?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: NTFS boot loader from scratch
СообщениеДобавлено: 23 дек 2012, 13:26 
Аватара пользователя

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

Да, именно по ним. Ну ещё, конечно, изрядное количество пота и экспериментов.
Кстати, а чем тебя не устраивает мой загрузчик? Тем, что не грузит два файла? А если ты собираешься делать загрузчик общего назначения, то вероятно, нужно выработать некоторый универсальный интерфейс, пригодный для большинства применений? А если так, то чего не хватает в моём интерфейсе? А если всего хватает, то опять же, зачем нужен ещё один загрузчик?

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

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: NTFS boot loader from scratch
СообщениеДобавлено: 23 дек 2012, 16:45 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Yoda писал(а):
Кстати, а чем тебя не устраивает мой загрузчик?
Разве непонятно, чем? Не обеспечивает единообразие с моими первичными загрузчиками (не поддерживает ни один из моих интерфейсов в полном объеме, не придерживается схожего с моими загрузчиками поведения). Является сторонним ПО с закрытым кодом и с ограничивающей мои действия лицензией. Не обеспечивает моих гарантий надежности, подкрепленных собственным "потом и кровьюэкспериментами".

Цитата:
Тем, что не грузит два файла? А если ты собираешься делать загрузчик общего назначения, то вероятно, нужно выработать некоторый универсальный интерфейс, пригодный для большинства применений? А если так, то чего не хватает в моём интерфейсе? А если всего хватает, то опять же, зачем нужен ещё один загрузчик?
Я уже говорил, что для меня возможность загрузки двух файлов существенно расширяет универсальность. Кроме того, твой загрузчик не обеспечивает даже мой упрощенный интерфейс в полном объеме с загрузкой одного файла. Постоянно упаковывать файл(ы) ради обхода ограничений, описанных в двух пред. предложениях, конечно можно, но зачем? Плюс это потребует дополнительного усложнения программной установки, чтобы можно было формировать новый вид загрузочного образа в зависимости от типа ФС (кстати по-любому нужно подумать, как можно сделать максимально надежной хотя бы ограниченную запись установочных файлов в NTFS-том в процессе установки, иначе установку в NTFS-том можно будет делать только из-под виндов, что не очень хорошо). К тому же написание первичного загрузчика, как я сказал во вступительном посте, - не конечная цель.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: NTFS boot loader from scratch
СообщениеДобавлено: 23 дек 2012, 18:55 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
phantom-84 писал(а):
Разве непонятно, чем? ...

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

phantom-84 писал(а):
Является сторонним ПО с закрытым кодом

Закрытость кода совершенно не означает, что это плохой код. Мировая практика показывает, что закрытый код часто оказывается более качественным, чем открытый.

phantom-84 писал(а):
и с ограничивающей мои действия лицензией.

Согласен, это важно. Но только в том случае, если их использование приносит тебе деньги. Но давай рассудим так. Предположим, твой проект вышел на коммерческий уровень. У тебя есть две возможности: потратить кучу времени на свои загрузчики, либо оценить мой труд. Не факт, что первая альтернатива в конечном итоге окажется выгодней.

phantom-84 писал(а):
Не обеспечивает моих гарантий надежности

эмммммсс... а ты действительно уверен, что твои загрузчики будут надёжней?

phantom-84 писал(а):
Я уже говорил, что для меня возможность загрузки двух файлов существенно расширяет универсальность.

Это заблуждение.
1. Загрузка двух файлов нереализуема в полной мере в некоторых файловых системах, например, в FAT12/16, Ext2/3/4.
2. Наличие двух файлов сильно портит интерфейс, вплоть до нереальности создания универсальных спецификаций. По каким адресам грузить каждый файл? Сколько места резервировать? Как проверять переполнение? Как задавать имена? Всё это вкупе - СУЩЕСТВЕННОЕ усложнение, не дающее ничего принципиально нового, потому что...
3. ...всё, что можно хранить в двух файлах, можно хранить и в одном.
Мой совет: если хочешь нормальную более-менее универсальную загрузку, забудь про два файла.

phantom-84 писал(а):
Плюс это потребует дополнительного усложнения программной установки, чтобы можно было формировать новый вид загрузочного образа в зависимости от типа ФС

Вот этот пункт мне совершенно непонятен. Мне как раз казалось, что мои спецификации совершенно не зависят от типа файловой системы. Демо-ядро без модификации грузится с любой ФС, для которой написан соответствующий первичный загрузчик.

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

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: NTFS boot loader from scratch
СообщениеДобавлено: 23 дек 2012, 19:44 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Yoda писал(а):
Закрытость кода совершенно не означает, что это плохой код. Мировая практика показывает, что закрытый код часто оказывается более качественным, чем открытый.


Поддерживаю.

Yoda писал(а):
phantom-84 писал(а):
и с ограничивающей мои действия лицензией.

Согласен, это важно. Но только в том случае, если их использование приносит тебе деньги. Но давай рассудим так. Предположим, твой проект вышел на коммерческий уровень. У тебя есть две возможности: потратить кучу времени на свои загрузчики, либо оценить мой труд. Не факт, что первая альтернатива в конечном итоге окажется выгодней.


И, что очень важно, ИМХО -- можно сначала решить основную задачу (собственно систему сделать), а уже потом, если понадобится, делать сугубо вспомогательную.

Yoda писал(а):
phantom-84 писал(а):
Не обеспечивает моих гарантий надежности

эмммммсс... а ты действительно уверен, что твои загрузчики будут надёжней?


Лично я, если есть выбор: использовать чужое или писать своё (но не шибко сложное), обычно пишу своё, поскольку не очень-то доверяю чужому коду: слишком часто он плох, причём и у серьёзных фирм. Однако здесь, ИМХО, ситуация несколько иная: автор известен, доступен для сотрудничества и всё такое прочее. Так что, если б я делал ось для ПК, то серьёзно рассмотрел бы использование загрузчика от Йоды. Может быть, в конечном итоге и не стал бы его использовать, но не факт.

Yoda писал(а):
phantom-84 писал(а):
Я уже говорил, что для меня возможность загрузки двух файлов существенно расширяет универсальность.

Это заблуждение.


Снова соглашусь. Если уж делать возможность загрузки больше, чем одного файла, прямо в универсальном начальном загрузчике, то надо давать возможность грузить произвольное число файлов -- вот тогда это и будет универсально. Другое дело, что целесообразность этого очень сомнительна. Если у оси специфические требования к загрузке, то надо просто делать специальный загрузчик именно этой оси, а уж его грузить простым загрузчиком (грубо говоря, свой ntldr родить).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: NTFS boot loader from scratch
СообщениеДобавлено: 23 дек 2012, 22:30 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Yoda писал(а):
Не, почти всё, что ты перечислил, как раз понятно. Просто обычно в таких случаях пишут соответствующий модуль в рамках своего проекта. Совершенно не обязательно с открытыми кодами, если вся твоя операционка закрыта. Смотри, почти всё, что ты перечислил, специфично для твоей ОС. Почему ты ожидаешь поддержки и использования загрузчика для твоей ОС другими проектами?
Я уже давно ничего не ожидаю. Более того я стараюсь всячески препятствовать бесконтрольному распространению софта, в котором использованы мои (не всегда только мои) технологии. В данном случае открытость исходников вовсе не означает, что эти исходники в неизменном виде станут частью моего софта или что они могут быть использованы для загрузки стороннего софта без каких-либо ограничений. Вполне возможно, что на этапе адаптации созданного загрузчика для загрузки моего софта я перестану публиковать вносимые в него изменения, т.к. основная цель создания этой ветки форума - изучение NTFS (обмен знаниями, опытом работы, результатами экспериментов) и написание первичного загрузчика для этой ФС в общем, а не конкретно для моего софта. Или у кого-то есть сомнения в пользе этого начинания для развития OSDev'а? Конечно вполне возможно, что уже на начальном этапе я стану использовать какие-то свои наработки, но это вовсе не означает, что другие тоже обязаны их использовать и тем более спрашивать у меня, можно это делать или нельзя. Как минимум до момента реализации первоначального задания исходники будут полностью свободными (т.е. как обычно никаких обязательств с чьей-либо стороны). Потом, естественно, по большей части тоже.

Цитата:
Закрытость кода совершенно не означает, что это плохой код. Мировая практика показывает, что закрытый код часто оказывается более качественным, чем открытый.
Так кто спорит? Просто трудно оценить полностью поведение стороннего софта, не имея на руках исходников.

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

Цитата:
эмммммсс... а ты действительно уверен, что твои загрузчики будут надёжней?
Нет, но гарантировать надежность мне все равно так будет проще.

Цитата:
1. Загрузка двух файлов нереализуема в полной мере в некоторых файловых системах, например, в FAT12/16, Ext2/3/4.
Скажу, что размер кода для загрузки по крайней мере двух файлов будет не намного больше, чем одного. В крайнем случае всегда можно использовать расширитель первичного загрузчика или полностью независимый промежуточный загрузчик. Но это крайний случай, т.е. скорее исключение из правила.

Цитата:
2. Наличие двух файлов сильно портит интерфейс, вплоть до нереальности создания универсальных спецификаций. По каким адресам грузить каждый файл? Сколько места резервировать? Как проверять переполнение? Как задавать имена? Всё это вкупе - СУЩЕСТВЕННОЕ усложнение, не дающее ничего принципиально нового, потому что...
3. ...всё, что можно хранить в двух файлах, можно хранить и в одном.
Все названные ограничения вполне преодолимы. Я упаковываю два файла в один лишь при крайней необходимости или "по желанию пользователя". Постоянное упаковывание может вызвать желание хранить в дистре несколько экземпляров ядра, упакованного по отдельности вместе с каждым драйвером, или желание интегрировать в одном драйвере поддержку большего, чем это реально необходимо, количества устройств/ФС. Упакованный файл может стать препятствием для ручного переноса системы пользователем. Основные принципы загрузки были заложены очень давно, не хочу пока их нарушать.

Цитата:
Вот этот пункт мне совершенно непонятен. Мне как раз казалось, что мои спецификации совершенно не зависят от типа файловой системы. Демо-ядро без модификации грузится с любой ФС, для которой написан соответствующий первичный загрузчик.
Мои спецификации не соответствуют твоим и наоборот. Чтобы использовать твой загрузчик для NTFS, мне нужно в процессе установки (или даже заранее, чего я пока не делаю и делать не собираюсь) упаковывать загрузочные файлы в загрузочный образ нового типа (возможность объединения наших загрузочных спецификаций я в расчет не беру, т.к. это как минимум потребует переделки стартового кода ядра).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: NTFS boot loader from scratch
СообщениеДобавлено: 23 дек 2012, 23:02 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
SII писал(а):
И, что очень важно, ИМХО -- можно сначала решить основную задачу (собственно систему сделать), а уже потом, если понадобится, делать сугубо вспомогательную.
Создав эту тему, я дал стартап моим планам относительно поддержки NTFS. Далее пусть течет все своим чередом. Появление этой темы вовсе не означает, что я сейчас все брошу и реализую поддержку NTFS за неделю.

Цитата:
Лично я, если есть выбор: использовать чужое или писать своё (но не шибко сложное), обычно пишу своё, поскольку не очень-то доверяю чужому коду: слишком часто он плох, причём и у серьёзных фирм. Однако здесь, ИМХО, ситуация несколько иная: автор известен, доступен для сотрудничества и всё такое прочее. Так что, если б я делал ось для ПК, то серьёзно рассмотрел бы использование загрузчика от Йоды. Может быть, в конечном итоге и не стал бы его использовать, но не факт.
Еще раз повторю, создавая эту тему, я преследовал несколько иные цели. Если бы мне нужно было договориться с Ёдой, то я бы не стал создавать эту ветку форума и, вполне вероятно, никто из вас (кроме Ёды, естественно) об этом бы не узнал.

Цитата:
Снова соглашусь. Если уж делать возможность загрузки больше, чем одного файла, прямо в универсальном начальном загрузчике, то надо давать возможность грузить произвольное число файлов -- вот тогда это и будет универсально. Другое дело, что целесообразность этого очень сомнительна. Если у оси специфические требования к загрузке, то надо просто делать специальный загрузчик именно этой оси, а уж его грузить простым загрузчиком (грубо говоря, свой ntldr родить).
Мы что оперируем только абсолютными категориями? Слова "более/менее универсальный" для тебя не играют никакой роли? Или ты действительно не видишь никаких практических преимуществ загрузки двух файлов по сравнению с одним в плане повышения универсальности?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: NTFS boot loader from scratch
СообщениеДобавлено: 23 дек 2012, 23:13 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
phantom-84 писал(а):
Или ты действительно не видишь никаких практических преимуществ загрузки двух файлов по сравнению с одним в плане повышения универсальности?


Честно говоря, не вижу реальных преимуществ. Что же до обсуждения NTFS и прочих технических вещей -- то это всегда пожалуйста, для того форум и нужен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: NTFS boot loader from scratch
СообщениеДобавлено: 23 дек 2012, 23:32 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Цитата:
Мои спецификации не соответствуют твоим и наоборот. Чтобы использовать твой загрузчик для NTFS, мне нужно в процессе установки (или даже заранее, чего я пока не делаю и делать не собираюсь) упаковывать загрузочные файлы в загрузочный образ нового типа (возможность объединения наших загрузочных спецификаций я в расчет не беру, т.к. это как минимум потребует переделки стартового кода ядра).


Цитата:
Кстати, а чем тебя не устраивает мой загрузчик?
Разве непонятно, чем? Не обеспечивает единообразие с моими первичными загрузчиками (не поддерживает ни один из моих интерфейсов в полном объеме, не придерживается схожего с моими загрузчиками поведения). Является сторонним ПО с закрытым кодом и с ограничивающей мои действия лицензией. Не обеспечивает моих гарантий надежности, подкрепленных собственным "потом и кровьюэкспериментами".


Уже давно читаю твои мысли. И никак не врублюсь почему ты пишешь в таком пафосном тоне? Не понимаю, в чём смысл твоих фраз?


Цитата:
Я уже говорил, что для меня возможность загрузки двух файлов существенно расширяет универсальность.
Зато архитектуру превращает в кашу. Так как наличие 2-х файлов это специфическая задача. И получается что загрузчик уже привязан к ОС. Это не универсальность это именно что привязка. Почему не 3 не 4 ? А как расширить? А давайте сделаем список загружаемых файлов? А давайте ещё видео режим установим? А давайте mp3 проиграем?

Вещи это нужные. Вот только не место им в первичном загрузчике. Да и во вторичном не место(хотя как временное решение может быть). Программы должны быть лаконичными и простыми. Они должны выполнять 1 функцию, а не десяток.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: NTFS boot loader from scratch
СообщениеДобавлено: 23 дек 2012, 23:49 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
pavia писал(а):
Уже давно читаю твои мысли. И никак не врублюсь почему ты пишешь в таком пафосном тоне? Не понимаю, в чём смысл твоих фраз?
Это ты ко мне обращаешься? Если да, то о каком пафосе идет речь? Смысл каких фраз конкретно? Я в отличии от тебя не телепат, мне трудно прочитать твои мысли. Если в моих словах ты видишь лишь пафос и не понимаешь никакого смысла, зачем вообще их читать? Не читай.

Цитата:
Зато архитектуру превращает в кашу. Так как наличие 2-х файлов это специфическая задача. И получается что загрузчик уже привязан к ОС. Это не универсальность это именно что привязка. Почему не 3 не 4 ? А как расширить? А давайте сделаем список загружаемых файлов? А давайте ещё видео режим установим? А давайте mp3 проиграем?
Обычно первичный загрузчик ориентирован на конкретную ось. Или есть какие-то другие мнения по этому поводу? Насчет файлов не согласен. Со всем остальным полностью соглашусь.


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

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


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

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


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

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