Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Сперва были и 640 кб доступной обычной памяти,
Я плохо представляю себе процессор (особенно в то время) с неограниченными размерами адресных регистров и количеством проводов на внешней шине.
А если мы имеем 20 бит, то потеря примерно половины из них на разные ROM, I/O и прочее — вполне естественна.
EM> и жестко заданные адреса областей внешних устройств, хотя все это можно было запихать в BIOS, и возвращать конкретные адреса по запросам.
Хм, а то, что BIOS запускался с опять же
константного адреса F000:FFF0, ты уже не считаешь? Что IDT реального режима сидела по адресу 0:0?
Там местами, конечно, злоупотребляли фиксацией типа "MDA память на 0xB80000", но конфликты происходили в других местах.
Я не вижу твёрдых причин делать эти параметры переменными и требовать извлекать из какого-то справочника, если нет нескольких таких устройств (ресурсов, в общем случае). Там, где было (как компорты, в количестве от 1 до 8), BIOS таки давал такие данные по запросу.
Всегда есть какие-то постоянные параметры. Начиная с кодов команд процессора
EM> Затем в 32-разрядной винде было 2+2 Гб, которые героическими усилиями переделали в 3+1.
Эта переделка вообще потребовалась, потому что на 64 бита не успели быстро перейти. В остальном от неё проблем больше, чем пользы.
EM> В 64-разрядной винде снова 8+8 Тб. Сейчас читаю про макось — и там тоже сплошные явно определенные константы.
ЕМ>Это что-то вроде профессионального бега по граблям, или действительно есть серьезная необходимость изначально задавать эти адреса/размеры глобальными константами вместо того, чтобы определить их только внутри ядра, а всем внешним модулям (даже драйверам и системным службам) возвращать конкретные значения исключительно по запросам)?
Я не знаю, почему 8TB в винде. Но предполагаю, что это просто отражает некий порог, переход за который будет означать скачок в потреблении ресурсов, и этот скачок пока не оправдан.
Вот ещё вопрос: а то, что в автомобиле конкретные габариты и диаметр колёс, ты тоже будешь считать неоправданно зафиксированной константой?
А питающее напряжение в электросети?