Отправляет email-рассылки с помощью сервиса Sendsay

Новости Пруля

  Все выпуски  

Новости Пруля от 28 мая 2003 года Р.Х.


Информационный Канал Subscribe.Ru


Новости от Пруля


---------------------------------------------------------------------

The Z Review reported a rumor that British comedian Rowan Atkinson
(Mr. Bean) is being considered to play Lord Voldemort in a proposed
fourth Harry Potter film, Harry Potter and the Goblet of Fire.

---------------------------------------------------------------------

Топографические карты Украины 1:100 000

http://www.lib.berkeley.edu/EART/x-ussr/ukraine.html

---------------------------------------------------------------------

О boot секторах и Master Boot Record

Разработку своей операционной системы Proolix
(http://prool.kharkov.org/proolix) я забросил (приостановил)
очень давно (последняя версия датирована 2000 годом), так как процесс
перестал приносить мне fun (удовольствие). Однако иногда (очень редко)
приходят вопросы про эту ОС и я старательно отвечаю на них, а копию
ответа присовокупляю к документации на Пруликс (ведь если спрашивают,
значит этот вопрос не затронут к доке, а вообще говоря, моя докумиентация
(как, впрочем и сама ОС) ниже всякой критики ;)

Вчера получено письмо следующего содержания:

ss> Привет Сергей!

ss> У меня есть исходник бутлоадера, как мне его с помощью Турбо
SS> Ассемблера откомпилировать
ss> в бинарний файл и, что важнее, записать на дискету в бут сектор ???

Вот копия моего ответа:

[начало ответа]

Во-первых, тебе желателен полный пакет OS Proolix, который можно
скачать с адреса http://prool.kharkov.org/proolix
Файл называется slime?.zip или .arj
Размер архива 450 К, если это много, я могу прислать тебе
только нужные файлы.

Там посмотри в каталог src\boot - там полно примеров бут-секторов, в
частности

boots.asm - текущий бут-сектор Пруликса

Компилировать его так (см. файл makefile):

tasm /i..\..\..\proc /q /t /w2 /ml /z /m3 /l boots
tlink /c/t/d/m/s/x boots,boots.bin

Переносить в бут-сектор дискеты так:

bp -d0 -i boots.bin

bp - этой мой boot-процессор, написанный на С. Его исходник - bp.c

Обрати внимание, что в бут-секторе есть таблица параметров дискеты
(диска) и ее затирать или менять нельзя, диск может глюкнуть. Именно
поэтому у бут-процессора bp есть параметр -i ("инсталляция") при
котором он пришет откомпилированный бут-сектор на дискету, но не
меняет таблицу параметров. А при использовании параметра -r
бут-процессор пишет тупо, полностью переписывая бут сектор.

Кроме того у бут-процессора bp есть очень опасный параметр -d
("device" - устройство). Посмотри внимательно в help, который выдает bp
без параметров.
- - - -d0 означает работу с дискетой A:,
- - - -d1 с дискетой B:
а, например, -d2 запишет в бут-сектор
первого раздела винта (и может запороть тебе весь винт!)

(Кстати, -d3 - это не второй раздел винта! Там все сложнее в связи с
наличием такого явления как extended partition. Некоторые данные по
этому поводу можно выкопать из программы bp, которая при запуске без
параметров выводит структуру разделов винта в том виде, как она ее видит.
Обычно первая строка вывода - это primary partition (значение -d2
для bp),
вторая - заголовок extended partition (-d3),
третья - первый раздел внутри ext. part. (-d4),
четвертая - второй заголовок ext. part (-d5)
пятая - второй раздел ext. part (-d6)
и так далее)

Я много забыл (очень давно занимался Пруликсом), но когда-то я
устанавливал Пруликс на раздел винта, делал его загружаемым и при
включении компьютера вначале запускался бут-менеджер Пруликса и дальше
я выбирал, что загружать: Proolix или Windows. Играться с винтом надо
очень осторожно и учти, Пруликс умеет работать только с FAT-12 и
FAT-16 (а также немного с VFAT), а с FAT-32/NTFS/HPFS - нет и если у
тебя на винте установлены эти системы, могут быть глюки.

И еще, программа, записываемая в бут-сектор ограничена размером
сектора (512 байт или даже 510) и много в нее не запишешь. Именно
поэтому загузка многих ОС происходит в несколько этапов. Так,
бут-сектор MSDOS загружает несколько (не помню сколько) секторов файла
io.sys и передает им управление, а этот вторичный загрузчик уже
работает дальше. В Пруликсе сделано аналогично: бут-сектор загружает
бут-менеджер (файл /boot, исходники см. в каталоге src\bm), а
бут-менеджер уже работает дальше и загружает ядро (файл /kernel,
исходники в src\kernel)

В общем, как видишь, Пруликс и используемые в нем методы - это
каменный век. ОС будущего для программистов прошлого ;)

Кстати, если ты используешь UNIX (например, Linux или Free BSD), там
все проще и с дискетами можно работать командой dd или вообще прямым
копированием на устройство

cp boots.bin /dev/fda

но это опасно и нужно точно знать, что и как делать, иначе рискуешь запороть
дискету или винт

[конец ответа]

---------------------------------------------------------------------

Пруль, prool@itl.net.ua,
WWW http://prool.kharkov.org/
ICQ 9701628
SMS prool@sms.umc.com.ua
Phone +380 (572) 206-574

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное