OSDev

для всех
Текущее время: 05 июл 2025, 10:48

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




Начать новую тему Ответить на тему  [ Сообщений: 353 ]  На страницу Пред.  1 ... 13, 14, 15, 16, 17, 18, 19 ... 36  След.
Автор Сообщение
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 03 ноя 2012, 21:10 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
Yoda писал(а):
Он не может грузить файлы в нижнюю память (первые 640к).
Не хочу рассказывать, как GRUB 2 (по крайней мере до последних версий 1.99, 2.00) загружает файлы в базовую память, чтобы не пугать. Я надеюсь, твое ядро настроено на загрузку Multiboot-совместимым загрузчиком выше первого мега.

Цитата:
Всё правильно (см выделение) :D. У меня просто нет вторичных загрузчиков.
Ну, можешь считать выложенную мной демку своим первым вторичным загрузчиком :) В тему MB-точки входа я так вцепился по той причине, чтобы действовать в дальнейшем согласованно, если я стану эту тему развивать. Например, ты сделаешь свой вариант и добавишь MB-точку входа, а мой вариант останется без нее, или наоборот. Чтобы у юзеров было меньше головной боли. Кстати подобные демки могут изменить отношение скептиков к твоему пакету. В будущем можно будет сделать каталог демок. При необходимости я могу сконвертировать еще несколько своих демок в твой формат.

Цитата:
Обязательно! Как я уже говорил, полноценная поддержка груба стоит в самых ближайших планах.
ОК, пиши, когда эти планы начнут реализовываться.

Цитата:
Я писал, что первую версию сделал двухсекторной, а затем, когда увидел, что можно вписаться в один сектор (и таким образом, поддержать форматы, где только два зарезервированный сектора - сам бут и FSInfo), отказался от двухсекторности.
Насчет возможности существования таких форматов я уже где-то высказывался. Может такое где-то и практикуется, но это не есть тренд. Ситуация примерно такая. Backup-бутсектор должен обязательно присутствовать и иметь номер 6. Т.е. загрузчик можно смело делать вообще состоящим из 6 секторов (включая FSInfo).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 03 ноя 2012, 22:27 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 976
Откуда: Дагоба
Вышла версия 3.0.

В новой версии:
  • Добавлена поддержка Linux (утилита boot в формате ELF32);
  • Добавлена загрузка с гибридных систем MBR+FAT;
  • Добавлена загрузка с файловых систем Ext2/3;
  • База загрузки перенесена с адреса 600h на 500h;
  • Устранён ряд мелких ошибок;
    FAT12/16:
    • Устранена ошибка загрузки больших файлов.
    boot.exe:
    • Полностью реорганизована внутренняя структура;
    • Добавлена возможность изменения флага активности без записи загрузочного кода;
    • Добавлена возможность удаления флага активности со всех разделов;
    • Добавлена возможность раздельной записи загрузочного кода MBR и VBR;
    • Обеспечена надёжная запись загрузочного кода в разделы, смонтированные системой;
    • В листинг добавлен подробный вывод структуры разделов с флагами и признаками;
    • Улучшено распознавание файловых систем и структуры разделов.

Заходим, скачиваем, пробуем.
http://goncharov.pp.ru/ru/osboot.htm

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

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 03 ноя 2012, 23:45 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 976
Откуда: Дагоба
phantom-84 писал(а):
Не хочу рассказывать, как GRUB 2 (по крайней мере до последних версий 1.99, 2.00) загружает файлы в базовую память, чтобы не пугать.

А я бы послушал :).

phantom-84 писал(а):
Я надеюсь, твое ядро настроено на загрузку Multiboot-совместимым загрузчиком выше первого мега.

Неа, - именно в первый мег. Но я не пользуюсь никакими сервисами, сразу выхожу из защищённого режима и сам всё переинициализирую. Пока с проблемами не сталкивался.

phantom-84 писал(а):
В тему MB-точки входа я так вцепился по той причине, чтобы действовать в дальнейшем согласованно, если я стану эту тему развивать. Например, ты сделаешь свой вариант и добавишь MB-точку входа, а мой вариант останется без нее, или наоборот.

Я не планировал добавлять поддержку мультибута, как я уже сказал, - это задача вторичных загрузчиков.
Вообще говоря, я бы рассматривал нынешнее положение дел, как стадию активных изысканий, всё ещё десять раз успеет поменяться, поэтому не стоит думать, что мы друг другу помешаем.

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

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

phantom-84 писал(а):
Backup-бутсектор должен обязательно присутствовать и иметь номер 6. Т.е. загрузчик можно смело делать вообще состоящим из 6 секторов (включая FSInfo).

Вообще говоря, наличие резервной копии в шестом секторе - не обязательное требование, а всего лишь рекомендуемое. В тех же FAT12/16, например, тоже легко можно зарезервировать 7 секторов и поместить в шестой резервную копию, однако, это не особо распространённая практика. Вот цитата из оф. доки Мелкософт:
Microsoft писал(а):
BPB_BkBootSec...
If non-zero, indicates the sector number in the reserved area of the volume of a copy of the boot record. Usually 6. No value other than 6 is recommended.

Так что описанный мной формат - совершенно легальное со всех точек зрения (и проверенное!) явление.

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

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 04 ноя 2012, 01:55 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
Yoda писал(а):
  • Добавлена загрузка с файловых систем Ext2/3;
О круто! Сначала NTFS, теперь EXT2/3! Я не тороплюсь это делать, т.к. смысла особого в этот нет. Вот если бы ты мне написал дрова для соответствующих ФС (хотя бы read only), было бы совсем другое дело. Интересно узнать, сколько это могло бы стоить.

Вообще тебе уже реально нужно задумываться о директ-загрузке "твоего ядра" из MBR, т.к. есть поддержка большинства популярных ФС для харда. Можно и бутменеджер организовать (с предоставлением выбора запускать оригинальный загрузчик раздела или твой загрузчик для этого раздела), если все "модули" собрать вместе и реализовать возможность выбора загрузочного раздела.

Цитата:
  • База загрузки перенесена с адреса 600h на 500h;
Я до сих пор в шоке пребываю:
Цитата:
Sorry, the original package sys-grubldr-1.0.zip was removed because a file format used in Modified GRUB for OS Boot Tools had been deprecated by the author of OS Boot Tools!
Если это будет продолжаться, то можно сразу начинать писать позиционно независимый код! Хотя где гарантия, что ты потом максимальный размер загружаемого файла не изменишь или еще что-нибудь :?:

Цитата:
  • Устранён ряд мелких ошибок;
    FAT12/16:
    • Устранена ошибка загрузки больших файлов.
Лично мне эта ошибка не показалась мелкой :roll:

Цитата:
А я бы послушал :).

Неа, - именно в первый мег. Но я не пользуюсь никакими сервисами, сразу выхожу из защищённого режима и сам всё переинициализирую. Пока с проблемами не сталкивался.
Каков максимальный размер твоего файла ядра? GRUB 2 не контролирует размер загружаемого в базовую память образа (примерно так, как это когда-то делали твои загрузчики) и часто сам бьет то, что загрузил.

Цитата:
Вообще говоря, наличие резервной копии в шестом секторе - не обязательное требование, а всего лишь рекомендуемое. В тех же FAT12/16, например, тоже легко можно зарезервировать 7 секторов и поместить в шестой резервную копию, однако, это не особо распространённая практика. Вот цитата из оф. доки Мелкософт:
Microsoft писал(а):
BPB_BkBootSec...
If non-zero, indicates the sector number in the reserved area of the volume of a copy of the boot record. Usually 6. No value other than 6 is recommended.

Так что описанный мной формат - совершенно легальное со всех точек зрения (и проверенное!) явление.
Ага, всего лишь рекомендуемое! Это завуалированное признание собственной тупости. Они сначала завели это поле (изменяемое), а потом сообразили, что нет особого смысла его читать из битого бутсектора, чтобы загрузить не битый. Ну, и написали, что в качестве значения "рекомендуется" 6, потому что не могли написать, что это обязательно, т.к. в этом случае нахрена его вообще тогда нужно было заводить. В NTFS такой глупости нет. Кстати по этой причине в гибридной разметке я переношу Backup-бутсектор (точнее Backup Boot Record), а не меняю линк, как для FSInfo.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 04 ноя 2012, 14:58 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 976
Откуда: Дагоба
phantom-84 писал(а):
Сначала NTFS, теперь EXT2/3! Я не тороплюсь это делать, т.к. смысла особого в этот нет.

Как раз есть смысл, т.к. в первую очередь охватываются самые распространнные системы, а на Ext2/3 можно в дальнейшем грузить груб. Т.е. будет работать полноценная загрузка Линуксов без установки загрузчиков.

phantom-84 писал(а):
Вот если бы ты мне написал дрова для соответствующих ФС (хотя бы read only), было бы совсем другое дело.

Для read only доступа можно взять из исходников груба.

phantom-84 писал(а):
Интересно узнать, сколько это могло бы стоить.

А что, ты готов платить? У тебя коммерческий проект?

phantom-84 писал(а):
Цитата:
  • База загрузки перенесена с адреса 600h на 500h;
Я до сих пор в шоке пребываю:
Цитата:
Sorry, the original package sys-grubldr-1.0.zip was removed because a file format used in Modified GRUB for OS Boot Tools had been deprecated by the author of OS Boot Tools!
Если это будет продолжаться, то можно сразу начинать писать позиционно независимый код! Хотя где гарантия, что ты потом максимальный размер загружаемого файла не изменишь или еще что-нибудь :?:

Я же говорю, пока спецификации не стоит считать жёстко заданными, проект всё ещё находится в стадии исследования. В любом случае, спецификации ещё изменятся, хотя бы в свете передачи номера раздела в DH.
Что касается базы загрузки. 600h изначально было выбрано, как минимальное безопасное значение, в голове осела эта цифра ещё с допотопных времён. Однако, в свете того, что сейчас времена другие, я понял, что минимальная безопасная база - 500h. Того же мнения придерживается и международный ОсДев. Область памяти 500h-5FFh была задействована в оригинальных PC-XT для переменных ROM-BASIC при наличии этой микросхемы ROM-BASIC. Однако, на практике я даже XT не встречал с бейсиком. С другой стороны, понизить базу загрузки проще, чем повысить, как для ядра, так и для загрузчика. Загрузчику останется больше места на стеке и в ядре драгоценная базовая память пропадать не будет. Я полагаю, база загрузки больше меняться не будет.
Размер файла... надеюсь, тоже не будет меняться, но если он и изменится, это не будет критичным изменением.
Что касается sys-grubldr-1.0.zip, то мне он вполне полезен для экспериментов, т.к. мне сменить базу загрузки для всего комплекта - это поменять единственную циферку в одном файле :).

phantom-84 писал(а):
Цитата:
  • Устранён ряд мелких ошибок;
    FAT12/16:
    • Устранена ошибка загрузки больших файлов.
Лично мне эта ошибка не показалась мелкой :roll:

Это два разных пункта. Конечно, ошибка FAT12/16 серьёзная. Она появилась в 2.01, как результат правок с загрузкой выше 2 терабайт. К мелким ошибкам относятся, например, исправления синтаксиса или устранение жалоб GCC/VC с максимально включёнными замечаниями, о которых отдельно писать как-то несолидно.

phantom-84 писал(а):
Каков максимальный размер твоего файла ядра? GRUB 2 не контролирует размер загружаемого в базовую память образа

Я не буду делать файл ядра больше 620к именно, чтобы не наступать на потенциальные грабли.

phantom-84 писал(а):
и часто сам бьет то, что загрузил.

А вот это уже серьёзно. Если это можно зафиксировать, то обязательно надо отправить баг-репорт.

phantom-84 писал(а):
Кстати по этой причине в гибридной разметке я переношу Backup-бутсектор (точнее Backup Boot Record), а не меняю линк, как для FSInfo.

Ну это вопрос параметров ФС, а не загрузочного кода. Я не трогаю те параметры, которые не касаются загрузки.
Кстати, по поводу гибридной разметки я пришёл к выводу, что единственно правильным будет сохранение гибридности. Поэтому поддержал её, благо это несложно.

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

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 04 ноя 2012, 15:58 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Цитата:
Я не буду делать файл ядра больше 620к именно, чтобы не наступать на потенциальные грабли.

640 КБ базовая память
- 64 КБ куча
- 16 КБ стек
- 4-32 КБ переменные БИОСа и первичного загрузчика.

итого я бы больше 428 КБ не грузил


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 04 ноя 2012, 16:24 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
Yoda писал(а):
Как раз есть смысл, т.к. в первую очередь охватываются самые распространнные системы, а на Ext2/3 можно в дальнейшем грузить груб. Т.е. будет работать полноценная загрузка Линуксов без установки загрузчиков.
Я имел в виду мою ось, а не загрузчики. Вообще, да, для вторичных загрузчиков будет полезно, только мой родной вторичный загрузчик все равно эти ФС пока не поддерживает.

Цитата:
Для read only доступа можно взять из исходников груба.
Не, я так не делаю. А если разбираться, то наверное проще сразу самому написать.

phantom-84 писал(а):
А что, ты готов платить? У тебя коммерческий проект?
Проект пока не коммерческий. Но чтобы он в перспективе мог стать коммерческим, в него нужно вкладывать деньги.

Цитата:
Я же говорю, пока спецификации не стоит считать жёстко заданными, проект всё ещё находится в стадии исследования. В любом случае, спецификации ещё изменятся, хотя бы в свете передачи номера раздела в DH.
Ну, ради такого изменения я готов терпеть :)

Цитата:
Что касается базы загрузки. 600h изначально было выбрано, как минимальное безопасное значение, в голове осела эта цифра ещё с допотопных времён. Однако, в свете того, что сейчас времена другие, я понял, что минимальная безопасная база - 500h. Того же мнения придерживается и международный ОсДев. Область памяти 500h-5FFh была задействована в оригинальных PC-XT для переменных ROM-BASIC при наличии этой микросхемы ROM-BASIC. Однако, на практике я даже XT не встречал с бейсиком. С другой стороны, понизить базу загрузки проще, чем повысить, как для ядра, так и для загрузчика. Загрузчику останется больше места на стеке и в ядре драгоценная базовая память пропадать не будет. Я полагаю, база загрузки больше меняться не будет.
Я всегда говорил, что можно смело использовать базовую память, начиная с адреса 500h. Там могут быть другие заморочки типа требования кратности базы размеру сектора, чтобы при последовательной загрузке секторов напрямую в конечный буфер не пересекать 64-килобайтные границы - невыполнение этого требования может быть критично для флоппиков (у меня кстати опять не пошел твой загрузчик для FAT12 на образе флоппика в боксе; зависания на этот раз нет, а выводится сообщение об ошибке; при этом мой древний загрузчик для флоппика, который я написал, еще учась в школе, работает нормально). В целом для меня это нововведение больше положительное. Теперь перед адресом 8000h всю доступную память занимает начало образа файла в памяти - отпадают все сомнения по поводу размещения первоначального стека - теперь уже с полной уверенностью продолжаю использовать для этой цели дамп в файле под адресом 8000h. Хотя некоторых, возможно, будет напрягать, что ты не оставил хотя бы немного свободной и гарантированно присутствующей на начальном этапе памяти для переменных.

Цитата:
Размер файла... надеюсь, тоже не будет меняться, но если он и изменится, это не будет критичным изменением.
Если он изменится в меньшую сторону, то для меня это может быть критично. Для запуска оси я набиваю образ под завязку.

Цитата:
Что касается sys-grubldr-1.0.zip, то мне он вполне полезен для экспериментов, т.к. мне сменить базу загрузки для всего комплекта - это поменять единственную циферку в одном файле :)
Можешь этого не делать: http://juneos.narod.ru/files/sys-3.0-grubldr-1.0-compact.zip (новый формат, основа та же).

Цитата:
Это два разных пункта. Конечно, ошибка FAT12/16 серьёзная.
Загрузчик для FAT12 опять не пошел (см. выше), загрузчик для CDFS запускает "grub.sys" нормально, загрузчик для NTFS проверить еще не успел, другие не пробовал.

Цитата:
Я не буду делать файл ядра больше 620к именно, чтобы не наступать на потенциальные грабли.
Размечтался. Он и 420 Кб может побить в базовой памяти.

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


Последний раз редактировалось phantom-84 04 ноя 2012, 16:27, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 04 ноя 2012, 16:26 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1449
Yoda писал(а):
phantom-84 писал(а):
Каков максимальный размер твоего файла ядра? GRUB 2 не контролирует размер загружаемого в базовую память образа

Я не буду делать файл ядра больше 620к именно, чтобы не наступать на потенциальные грабли.


А вот контролировать, ИМХО, надо всегда: мало ли что. И, естественно, не полагаться на наличие определённого объёма памяти, а спрашивать у БИОСа.


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

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
1) Такой вопрос как вы передаёте номер загрузочного диска из первичного загрузчика во вторичный?
2) И как можно отличить что загружено вашем загрузчиком а не к примеру досом или другим загрузчиком?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Boot Tools
СообщениеДобавлено: 04 ноя 2012, 18:16 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
1) Все написано в спеках. Номер передается в регистре DL.

2) DOS не умеет загружать мое ядро, т.к. не знает его формата. А вообще если какой-то софт сможет выполнять такую загрузку, я возражать не стану. Только пусть предоставляет корректные входные параметры (в соответствии со спекой). Насколько я знаю, из стороннего софта сейчас мое ядро умеют загружать только Multiboot-совместимые загрузчики (лично я пользуюсь только GRUB'ом и mboot'ом из syslinux'а) - используется спец. точка входа защищенного режима.


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

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


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

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


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

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