Загрузка первого байта первого сектора

Тема в разделе "WASM.OS.DEVEL", создана пользователем Antoniosis, 7 авг 2010.

  1. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    А вот GRUB, Lilo и т.п. не парятся по поводу дефрагментации. Они работают по принципу "Сам дурак!" Хотя конечно это большой минус в используемом ими механизме загрузки. Я такое практикую только на CD/DVD и только, пока окончательно не перейду на загрузчик, работающий с файлами в обычном понимании этого слова.
     
  2. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Не.... типа, нуна - делай сам. У мню все руки не догребут подправить BS для SysLinux, делов в принципе на час...
     
  3. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    HPA те в руки. Я в последнем проекте так и сделал.
    Один полный целиндр + хвост. А с HPA место сколько хочешь.
     
  4. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    почитаю про HPA. я токого еще не видел)
     
  5. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    В любом ATA/ATAPI стандарте. Брать на T13.ORG. Лучше 7й. (У мню T13/1532D на бумажке.)
     
  6. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    посмотрел. и прешол к выводу что не все биосы ей пользуются.
    интересно конечно туда засунуть свой загрузчик, но не факт что на другой машине, где биос не выполнит set address max, его не сотрут.
     
  7. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Вообще интересно, что "простой" MBR-загрузчик будет искать по конкретному адресу? Первый сектор первичного загрузчика? Так он его может загрузить и обычным способом. А если этот первый сектор разместить не на своем обычном месте, всегда ли находящийся в нем код первичного загрузчика сможет сориентироваться, как ему действовать в подобной ситуации. Это уже и правда будет похоже на загрузку stage 2 в GRUB'е. Мой вариант с "миниобразом" работает примерно также, только с некоторыми несущественными лично для меня ограничениями:
    - требует отдельной записи в таблице разделов;
    - в общем не предназначен для "вшивания" внутрь другого раздела (за исключением расширенного, если для его загрузки используется поддерживающий такую возможность загрузчик), хотя в виде "грязного хака" такое может прокатить, если загрузчик передаст ds:si и подтверждающую сигнатуру.

    Т.к. используется совершенно левый тип раздела (собственно как и "ФС" на разделе), то он не будет доступен/виден пользователю из-под других ОС (для примитивной защиты от пользователя также можно поэкспериментировать с типом 27h). В самом образе нет информации о его местоположении - его можно записать в любое место диска без редактирования. Это тот единственный случай, когда я использую ds:si в "первичном загрузчике". А если вдруг понадобится записать образ на чистый диск, то нужно сначала записать "primitive MBR", а сразу после сам образ.
     
  8. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Биосы его вообще не обязаны использовать, и я еще не видел биосов, которые бы его использовали, за исключением бучных. А новые бучные, обычно используют более другую технологию. Что-то у мню сложилось стойкое подозрение, что ты не понял, для чего это вообще придумано.

    Я именно эту фишку использовал в последнем писюковом проекте, для с скрытия раздела от любопытных/кривых/шаловливех ручек.

    Phantom_84 Самое прикольное, что у мню это работало, причем совершенно без описываемых тобой танцев с бубном.
     
  9. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    MisHel64, я не знаю, как и что именно у тебя работало. Сначала ты говорил, что у тебя есть (тебе нужен?) образ, который не нужно модифицировать при установке на диск. Потом ты говорил, что ты в первом секторе образа хранишь его местоположение на диске как 10-байтовое значение. В первом случае без моих танцев не обойтись, если делать по-нормальному, а не путем повторного анализа MBR и т.п. Во втором не обойтись без модификации образа при его размещении/перемещении на диске.
     
  10. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Phantom_84 Ты свалил в кучу пробные версии, поиски решений, и конечный результат. А а так же предыдущие работы и наработки.

    Образ, а точнее та часть, что зависела от меня, создана, сдана, сейчас в стадии альфа тестирования. Если ты о последнем заказе. Анализа MBR я не провожу. Код не модифицирую. Он напрямую сливается на жесткий диск без всякой модификации. И даже не расшифровывается. При этом код абсолютно точно знает и свое место положение и положение "раздела" с данными. Единственное условие, что раздел с данными находится в конце диска. Размер раздела с данными не фиксирован. И никаких "маркерных" и "информационных" секторов я то же не завожу.

    "10-байтовое значение" я использовал в первой линейке своей системы восстановления. Во второй отказался за ненадобностью. В третьей вообще пересилил систему в облако. MBR не анализируется на этапе загрузки ни в одной линейке.
     
  11. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    вообще это придумали для биоса, покрайне мере в документе который читал я были описаны именно алгоритмы и поля на диск которыми пользуется биос. а так использовать можно и самому. только главное не затереть чужие данные,для этого там есть сигнатура BEER (0xBEEF)
     
  12. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Ну мы видно разные книжки читаем....
    Единственное, что сильно бесит, что когда дорабатывали и ввели парольный локинг, реализовали это через не то место. Вот во флешках как реализовано, мне нравится, там по уму сделали.
     
  13. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    я читал ata/atapi-8 и это
     
  14. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
     
  15. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Завтра выложу Alter 2 Extra Edition с ожиданием при опросе клавиатуры. Как показали многочисленные испытания, даже очень небольшой задержки вполне достаточно для нормального улавливания нажатия на клавишу, т.к. начинать удерживание можно заранее даже в том случае, когда BIOS не фиксирует нажатие до того момента, пока не передаст управление загрузчику. В качестве дефолтной пока выбрана задержка порядка 0,5 сек. Она позволяет улавливать нажатие даже в том случае, когда пользователь (с хорошей реакцией ))) ) начинает удерживать клавишу уже после получения управления загрузчиком.

    Пока выкладываю код, осуществляющий задержку:
    Код (Text):
    1.     mov ax,[46Ch]
    2.     mov [di],ax
    3.         ...
    4.     aam 10h
    5. check:
    6.     test ax,[417h]
    7.     jnz short alt
    8.     hlt
    9.     mov bp,[46Ch]
    10.     sub bp,[di]
    11.     cmp bp,9
    12.     jb short check
    13. @@:
    14.     cmp [si+PTREC.state],ch
    15.     jl short @f
    16.     add si,16
    17.     inc dh
    18.     loop @b
    19.     int 18h
    Любые конструктивные замечания приветствуются!
     
  16. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Alter 2 Extra Edition - добавлена задержка для ожидания нажатия на клавишу.