Nп/п : 54 из 64
От : Valentin Nechayev 2:463/68.300 14 мар 25 19:28:54
К : Sergey Dorofeev 14 мар 25 20:50:01
Тема : графическое лого
----------------------------------------------------------------------------------
@MSGID: 2:463/68.300 67d46a70
@REPLY: 2:5020/12000 4f539211
@CHRS: CP1125 2
@TZUTC: 0200
@TID: hpt 1.2.4-release/bsd 30-05-03
Hi,
>>>> Sergey Dorofeev wrote:
SD>>> Hу так UEFI же есть, если ограничения BIOS не устраивают.
VN>> Весь контекст обсуждения был для случая загрузки в том варианте,
VN>> который сейчас гордо зовут "legacy", так что ваше замечание про
VN>> UEFI немножко так не в тему.
SD> А где сейчас железо с этим "legacy" найти? BIOS-совместимая загрузка
SD> теперь в CSM...
Да хоть Горшком Тяжёлой Мести назови.
Главное, что оно делает. А оно грузит один стартовый сектор с
диска, переключает процессор в реальный режим и передаёт управление
загруженному, скармливая один параметр - BIOS id диска в регистре DL.
Дальше: boot0 (если есть) выбирает слайс и грузит boot1; boot1
грузит boot2+BTX; BTX переключает в защищённый режим, boot2 читает UFS и с
него по умолчанию грузит /boot/loader, запуская его в том же защищённом
режиме. (Варианты загрузки с ZFS, сети и пр. тут не рассматриваю.)
Hо на этом этапе ещё нет драйверов, и поэтому каждый блок с диска
грузится через BIOS вызовы, для которых идёт переключение в реальный режим,
выполнение вызова и переключение обратно в защищённый режим, где BTX loader
грузит boot loader.
И вот у этих BIOS вызовов ограничение адреса буфера первым
мегабайтом. Отсюда возникает два варианта:
1) Если надо в итоге разместить где-то за пределами первого
мегабайта (нам доступно 4GB адресного пространства), BIOS вызову передаём буфер,
из которого по возвращению из вызова копируем куда нам нужно. Это и
называется bounce buffer.
2) Складываем лапки и говорим, что за пределы первого мегабайта не
можем загрузить boot loader.
С учётом того, что boot loader сам, пользуясь теми же самыми BIOS
вызовами через тот же шлюз с теми же ограничениями, должен загрузить уже
полное ядро с заданными модулями, а это точно не влазит в первый мегабайт
(я вижу 29MB только на основной файл) - то метод с буферами уже есть
и используется. А вот почему сам boot loader не грузят через этот
метод - это и есть то, из чего возникла вся эта ветка обсуждения.
-netch-
... Кто здесь?????
---
* Origin: Dark side of coredump (2:463/68.300)
SEEN-BY: 50/12 22 236/100 461/58 463/68 1331
4600/140 4651/777 5001/100
SEEN-BY: 5003/17 5006/1 5019/40 5020/400 526 545
848 1042 1477 2332 2395 2992
SEEN-BY: 5020/4441 12000 5021/29 5022/128 5025/3 75
5027/12 5030/49 500 1081
SEEN-BY: 5030/1900 1957 2404 5035/85 5037/7 5053/58
5054/1 5059/37 5063/3
SEEN-BY: 5068/10 5080/31 68 102 172 245 5085/13
5095/20 6001/10 6078/80
@PATH: 463/68 5030/49 5080/102 5020/545 4441