2025-11-26

vak: (Default)
Прикольно, конечно, играть в Диггера как в юности, и мы ещё наиграемся. Но есть и более весёлые занятия на XT-шке. Вчера я провёл насыщенный вечер, выясняя шансы установить юникс на имеющемся хардвере.

Из юниксов для IBM PC XT (model 5160) существовали:Всё это я вчера опробовал, одно за другим. Все образы флопиков доступны в сети, и известно, что каждый из них кому-нибудь да удалось оживить на каком-нибудь симуляторе.

Но мне ж надо на реальном имеющемся железе. Подобрал я симулятор, воспроизводящий конфигурацию, максимально близкую к моей. Есть такой проект 86Box. Народ собрал качественную коллекцию конфигураций и образов ПЗУ компьютеров и периферии от разных производителей. Нашлась там и конфигурация, близкая к моей Generic XT clone, и видеоадаптер TVGA8900, а главное - дисковый контроллер XT-IDE. Всё это я сконфигурил и принялся ставить вышеуказанные юниксы.

С юниксами вот какая проблема. Всё упирается в обмен с жёстким диском. Создателями было задумано, чтобы чтение-запись диска делалась через системный вызов int 13h. Выполняется этот вызов биосом, находящимся в контроллере диска, и всё идёт как надо. Но юниксу неудобно ходить в биос. Юникс задуман по другому: драйвер диска находится в ядре и напрямую ходит в аппаратные регистры контроллера диска.

Все четыре упомянутые юниксы (Xenix, Venix, PC/IX и Minix) так и устроены. Они понимают только родной дисковый контроллер от IBM. А у меня XT-IDE, и в нем аппаратные регистры совсем другие. Нет шансов. Я честно попробовал загрузить каждый юникс и убедился, что установщик падает ровно на попытке работать с диском.

Однако есть свет в окошке! И это ELKS. Так называется проект, где народ поставил задачу протащить верблюда Линукс через игольное ушко. Он же Гога, он же Жора Linux-86. Я наблюдал эту странную затею с середины 90-х. Думал применить для какого-нибудь встроенного хардвера, но пользы не выходило. Однако здесь он сыграл в полный рост. Загрузился с флопика и честно встал на диск под XT-IDE. Никаких вопросов. Осталось проделать то же самое не под 86Box, а на реальном железе, и у нас будет приличный юникс, даже с подключением к интернету.

Вот пример загрузки ELKS на симуляторе Turbo XT.

vak: (Default)
Пытаюсь грузить Линукс-86 на реальной XT-шке. Что-то не так: выскакивает деление на ноль.



Сравните с успешной загрузкой на симуляторе:



Может быть дело в умершей батарейке CMOS. Поэтому с определением типа флопика возникает проблема.