LINUX.ORG.RU

Избранные сообщения cheez

MINIX-NE

 , , ,

Привет, ЛОР.

В посте полугодичной давности я рассказал о том, как я возился с монохромным монитором от МежДелМаша, подключая его к IBM PS/2. Теперь же я хочу поделиться с вами совсем-таки недавним моим успехом уже софтверного характера, впрочем всё так же занимающим своё заслуженное место в одном из разделов Специальной олимпиады, а именно, — я модифицировал древний MINIX 1.7.5 под нужды своего компьютера, дабы использовать все основные возможности железа. Но начну я своё изложение всё-таки с описания характеристик, ибо именно оно является основным лимитирующим фактором.

Итак, на фото один IBM 8530 (PS/2 Model 30 286) со следующими параметрами

  • Процессор от SIEMENS, клон Intel 80286, 16-bit
  • Память 1 Мб (разбита на 640k+384k)
  • VGA на материнке
  • PS/2 клавиатура и мышь
  • Три ISA слота (мне повезло не возиться с MCA)
  • Compact Flash XT Lite adapter rev 4.1
  • Ethernet от SMC (WD8390 совместимая карта с RJ-45 и BMC)
  • EGA видеокарта от ATI с поддержкой MDA и CGA режимов

Делловский монитор подключён к VGA из материнки, а вот с монохромным монитором пришлось повозиться, сделав переходник с MDA DB-9 на DB-15, плюс выцыганить питание с разъёма для флоппи, ибо IBM решили убрать молексы из дизайна, и запитывать диски с материнки.

Ситуация с подключением двух мониторов довольна нестандартна для конца 80х, однако именно для этой цели адресное пространство у монохромного адаптера и у цветного графического (от которого наследуется текстовый режим VGA) разные, а значит в теории можно использовать VGA+MDA. Однако обычно программы для MS-DOS на это не затачивались, и профита от такой схемы для меня не должно было быть, если бы не…

Если бы не старый MINIX. Версии вплоть до 2.0.4 позволяли в теории запустить полноценный UNIX даже на IBM PC XT с 640k RAM. Однако же найти подходящую именно для меня конфигурацию MINIX оказалось задачей трудной. Я перебрал сначала версию MINIX для MS-DOS, но 1 MB памяти для неё было явно мало (что и не удивительно, ведь MINIX для DOS создаёт виртуальный диск в RAM). В итоге я смог установить в QEMU MINIX 1.7.5 на один из разделов Compact Flash, и потом даже запустить уже на самом PS/2.

Правда, путь к первой введённой в терминале команде был тернист. Во-первых, MINIX подвешивал клавиатуру при загрузке. Причину удалось установить, загрузившись в режиме совместимости с i8086, откуда подозрения сразу пали на злосчастную линию A20, которая управляется контроллером клавиатуры в AT-клонах для совместимости с i8086. В исходном коде kernel/klib88.s A20-линия выставлялась в соответствии с мануалами, вот только оказалось, что для IBM PS/2 появился специальный контроллер для управления A20, а посему код для ядра пришлось сразу же патчить. По итогам доступная память с 640k в режиме совместимости увеличилась до установленной памяти в 1 MB, плюс защищённый режим с его плюсами (ну и минусами тоже, об этом чуть позже).

Следующим шагом было реализации возможности работать одновременно в двух виртуальных tty, используя два монитора. В коде kernel/console.c такой абстракции как монитор или экран не было, поэтому пришлось долго провозиться с возникающими гонками за внутренние переменные, однако усилия были вознаграждены, и теперь я мог например вывести на один экран какой-нибудь man, и параллельно редактировать файл на другом, переключаять по Alt-<- Alt–>.

Ещё одна из проблем оригинального MINIX — он отказывался работать с CF-XT адаптером. Одно время я был удовлетворён работой драйвера, который вызывает функции BIOS int 13h через аппаратный сброс, пока я не захотел наконец-то разобраться с сетевым драйвером (благо он как раз для WD8390 совместимых карт уже был в исходниках). При включении Ethernet в параметрах ядра загрузка зависала на моменте инициализации драйвера диска (забавно, не правда ли?) Вместо того, чтобы пофиксить баг, я решили подойти к вопросу радикально и переписать стандартный драйвер IDE контроллера, чтобы он стал поддерживать CF-XT-lite. И это было увлекательно. Главной подсказской для меня стала принципиальная схема адаптера, потому что сходу отображение адресов CF на шину не гуглилось, и оказалось, что не на все вопросы необходимо искать ответ в Интернете, тем более когда достаточно просто взглянуть глазами на схему платы. Конечно, документация к CF и исходники XTIDE BIOS мне тоже помогли. В процессе переписывания драйвера в момент, когда я наконец-то разобрался с адресами, и драйвер стал идентифицировать устройство, я умудрился несколько раз испортить корневой раздел, но спасали бэкапы и Linux, который до сих пор поддерживает старую добрую MINIX FS.

Как итог: старый MINIX прекрасно себя чувствует на старой же машине с 16-bit разрядностью и 1 MB памяти, при этом позволяет выходить во внешний мир с помощью telnet и ftp и поддерживает мультизадачность. Сейчас я ковыряюсь с httpd сервером, который уже скомпилировался и запускается, но пока возвращает только 403 и 404 (причём делает это он секунд за пять, если не медленнее). Остались ещё мелкие недочёты по типу не работающего SIGTERM по Ctrl-C и мигающего сразу в двух экранах курсора (это сбивает с толку, потому что не знаешь, на какой экран сейчас перенаправлен ввод). Из глобального хочется сделать frame buffer хотя бы для VGA, а то и для обоих мониторов (попробовать видеокарту ATI в режиме Hercules). Другая возможная ветка развития — создание дистрибутива для старых компов и эмуляторов типа даже pcjs.org, чтобы у энтузиастов была возможность попробовать настоящий UNIX на своём ретро железе.

P.S. Да, чуть не забыл. На фото на левом мониторе telnet на какую-то из BBSок, на правом — стандартные UNIX команды и вывод кусочка ядра на экран.

luke
()

Рабочее место ретро-геймера

 микроша, пэвм,

На фотографии мирно уживаются разные поколения компьютеров:

  • ПЭВМ Микроша (производство СССР). Процессор КР580ВМ80А, частота 1,8МГц, ОЗУ 32Кб.
  • Ноутбук HP Pro Book 450 G0 (производство КНР). Процессор Intel i7-3632QM, частота 2,2Ггц, ОЗУ 8Гб.


Про ноутбук особо рассказывать нечего, кроме того, что в нем установлен Debian Linux 9 Stable, на экране виден LXDE с Midnigth Commander, в котором открыт Ansible-проект. А про Микрошу можно много чего написать.

ПЭВМ Микроша сломалась 28 лет назад и скромно лежала на полке в дальнем углу. Наконец, я нашел человека с хабра-ником ZEvS_Poisk, который выразил готовность помочь, и Микроша снова в строю! Произошло это после публикации на Хабаре ностальжи-стайл статьи «Мой компьютер Микроша».

Программы в Микрошу загружаются с Android-смартфона через приложение RKM Tape Player. Это гораздо удобнее, чем с магнитофона, потому что не нужно «вслепую» мотать кассету до начала старта программы. Да и магнитофона-то, в рабочем состоянии, у меня нет. Однако, товарищ ZEvS_Poisk сейчас разрабатывает специальное устройство расширения, чтобы Микроша могла работать с SD-карточкой. Тогда загрузка программ будет практически мгновенной.

На своем сайте я разместил подробную статью о том, как восстанавливался компьютер Микроша, как подключена периферия, какие проблемы возникали и как решались:

ПЭВМ Микроша заработала спустя 28 лет!

Согласитесь, этот компьютер имеет весьма достойный дизайн, и выглядит очень неплохо! Но так было не всегда. Я заморочился, и нашел раритетные фотографии вариантов компьютера Микроша в процессе его производства. Видно, что дизайнерская мысль не стояла на месте, и итоговый вариант корпуса компьютера получился просто прелестным.

В общем, теперь у меня есть рабочий компьютер из 80-х.

Привет всем ретро-геймерам и прочим олдскульщикам!

Xintrea
()

нерабочее место

 ,

Но работа кипит.

Ubuntu 16.04, thinkpad x1 carbon (5th gen).

Это трибьют.

tazhate
()

Ламповый Zipit Z2

 

Если никто не делает ламповых снимков, приходится их делать самому.

murmur
()

Релиз oVirt 4.0

 

Группа Open Source

Сегодня произошел релиз свободной системы управления виртуализацией oVirt 4.0.

Новые возможности и улучшения:

  • улучшен интерфейс портала администрирования;
  • повышена производительность миграции на лету;
  • добавлена поддержка управления Atomic OS и исполняемых в ней контейнеров;
  • oVirt node — минимальный образ ОС с oVirt;
  • обновлены API и RubySDK.

>>> Подробности (ovirt.org)

CaveRat
()

Кобейн опять загрустил

после того, как увидел галерею.

zezic
()