[Старое железо] Настройка сети на Minix 2
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Эта статья будет если не последней в нашем импровизированном цикле, то во всяком случае у меня не скоро накопится материал на следующую. Речь пойдёт сначала об IP-сети на 286 под Minix, её настройке и тех возможностях, которые у нас с ней откроются. А потом я порассуждаю немного о перспективах использования систем, подобных той, которую мы построили, в современном мире.ПодготовкаЧтобы что-то настраивать, необходимо сначала выбрать текстовый редактор. Из более-менее известных редакторов в Minix есть elvis − клон того самого, который пищит и всё портит. Если же вы, как и я, не любите выходить из программы кнопкой “Reset”, то вам подойдёт mined. Только придётся держать под рукой его мануал.Компиляция ядраСначала отредактируем параметры ядра:
$ mined /usr/include/minix/config.h
Чтобы заработала сеть, нужно собрать её драйвер. Заменим строчку
#define ENABLE_DP8390 0 /* enable DP8390 ethernet driver */
на
#define ENABLE_DP8390 1 /* enable DP8390 ethernet driver */
Также рекомендуется добавить псевдотерминалов. Заменим строчку
#define NR_PTYS 0 /* # pseudo terminals (0 to 64) */
на
#define NR_PTYS 8 /* # pseudo terminals (0 to 64) */
Сохраним файл и приступим к компиляции.
# cd /usr/src/tools
# make hdboot
На моей машине процесс занимает примерно 15 минут.В результате новое ядро будет собрано и скопировано в каталог /minix. Если файл прежнего ядра назывался 2.0.4, то наше, только что собранное, будет установлено как /minix/2.0.4r0.Монитор загрузки (Minix boot monitor) по умолчанию настроен на использование самого нового ядра. Чтобы протестировать его, введём halt, а затем boot. На этом этапе никаких видимых изменений в загрузке системы быть не должно.Если всё-таки что-то пошло не так, можно переключится обратно на старое ядро. Для этого достаточно нажать “Esc” перед загрузкой ОС, чтобы вызвать приглашение монитора загрузки, и ввести в нём команды:
c0d0p0> image=/minix/2.0.4
c0d0p0> boot
Чтобы снова начать использовать последнее собранное ядро:
c0d0p0> unset image
c0d0p0> boot
В любом случае, собрать ядро с драйвером сети − это ещё не всё. Убедившись, что загрузка происходит нормально, мы можем перейти к следующим шагам.Создание файла конфигурации сетиФайл /etc/inet.conf изначально содержит что-то вроде
psip0;
Это − конфигурация loopback-сети внутри нашего хоста, которая доступна без всяких сетевых адаптеров и кабелей. Заменим это на настройку реальной сети:
eth0 DP8390 0 { default; };
psip1;
Сохраним изменения.Настройка запуска демонов и параметров сетевого адаптераСнова войдём в монитор загрузки с помощью команды halt.
c0d0p0> servers=inet
c0d0p0> DPETH0=300:10
c0d0p0> save
c0d0p0> boot
Строчка DPETH0=300:10 задаёт параметры ethernet-адаптера: базовый адрес ввода/вывода и прерывание. Помните нашего старого друга?
NE2000-совместимые адаптеры обычно позволяют выбирать порты и прерывание в довольно широком диапазоне. На более старых адаптерах выбор делался с помощью перемычек. Мне «повезло»: на моём адаптере этот выбор делается при помощи специальной утилиты и сохраняется в NVRAM. На языке маркетинга это называлось “Plug and Play”.Если у нас нет ни утилиты, ни компьютера, чтобы эту утилиту запустить, остаётся только определять последние установленные параметры путём перебора, рассчитывая на то, что все остальные настройки верны.РезультатНо вот тернии преодолены, и наш ретрокомпьютер получает настройки сети по DHCP. Теперь мы можем передавать на него файлы по FTP и запускать команды через Telnet. Перед этим нужно установить пароль командой passwd, так как вход по сети без пароля невозможен.
При работе dhcpd на экране периодически появляется сообщение dhcpd: /dev/udp0: Invalid argument. Видимо, DHCP-сервер посылает нашему хосту такой запрос, которого он не понимает в силу своей ветхости. Но на работу сети в целом это не влияет.Обзор Minix 2 с позиции современного пользователяКогда вау-эффект от знакомства с экзотической системой и гордость от участия в сохранении исторического объекта проходят, начинаешь поневоле представлять примерные сценарии использования ретрокомпьютера в современной жизни. Пожалуй, на нём можно готовить документы в TeX или Markdown (если визуализировать результаты на принтере), или работать с почтой (без HTML, но это даже к лучшему), или чатиться в сети (по-олдскульному, через talk), или превратить в ПЛК для морганияуправления лампочками, или…Чего же не хватает построенной нами системе до того, чтобы быть юзабельной сегодня? Софта? Тогда что мешает нам собрать этот софт?Прежде всего, стандартным компилятором в Minix 2 является Amsterdam Compiler Kit − исторически первый набор компиляторов, ориентированный на использование с несколькими языками программирования и на нескольких целевых платформах (что сейчас называется “retargetable”). В Minix 3 он был заменён на Clang (LLVM). ACK поддерживается до сих пор, но выглядит он сегодня, наверное, довольно архаично. И я не уверен, что все его доработки за последние годы возможно портировать в Minix 2.Программы для Minix используют модель памяти с близкими ссылками, аналогичную той, которую DOS-разработчики называют малой (Small). Не всякий современный софт можно втиснуть в рамки 64K+64K. А чтобы использовать другие модели памяти, нужно доработать не только ядро и стандартную библиотеку (например, предусмотреть разные варианты alloc() и free()), но и тулчейн, то есть ACK. Возможно, проще будет перейти на другой компилятор, но тут нужно учитывать, что ни Clang, ни GCC не умеют генерировать код для защищённого режима 286.Ещё одно серьёзное ограничение Minix − отсутствие разделяемых библиотек − было устранено в версии 3. Как сообщили разработчики, размер каталогов /bin и /usr/bin при этом уменьшился в 10 раз. Правда, одновременно с этим поменялся и формат исполняемого файла: на смену a.out пришёл ELF. Но в других системах разделяемые библиотеки в формате a.out вполне себе существовали, так что и это ограничение принципиально преодолимо.Логгинг в Minix практически отсутствует. Вызовы логгера обычно очень загромождают код и снижают читаемость, так что я понимаю причину такого положения дел. Но на практике с этим нельзя так просто смириться.Что касается сети, то главное, что бросается в глаза современному пользователю − отсутствие протоколов, использующих шифрование, например, SSH или HTTPS. OpenSSL был в своё время перенесён на 32-битный Minix 2, но даже самые быстрые 286 явно не обладают достаточной вычислительной мощностью для таких алгоритмов. Тут дело исправит разве что аппаратный криптографический акселератор.Продолжение следует?Когда у меня выдастся свободное время, я попробую пособирать в Minix какой-нибудь сторонний софт, а также почитать исходники и прицениться к обозначенным проблемам. Если будет что написать, то появлюсь с очередной статьёй. Ну, а если пропаду, то не взыщите. А пока у меня всё. Спасибо за внимание!Полезные ссылки
===========
Источник:
habr.com
===========
Похожие новости:
- [Научно-популярное, Старое железо, Космонавтика] На МКС отключилась дублирующая система кондиционирования воздуха (СКВ-2)
- [Компьютерное железо, Старое железо, Настольные компьютеры] Железячники умирают. Опыт работы в сфере ремонта техники
- [Старое железо] Сборка PC AT-совместимого компьютера с процессором 80286
- [Научно-популярное, Старое железо, Космонавтика] На МКС приостановили поиск второго места утечки воздуха в модуле «Звезда»
- [Ненормальное программирование, Assembler, Старое железо] Архитектура и программирование микрокалькулятора HP-41
- [Разработка игр, Старое железо, Игры и игровые приставки] Xbox: как создавалась американская империя видеоигр (перевод)
- [Старое железо, Звук] Sony MZ-RH1 — последний минидисковый рекордер
- [C, Разработка под Linux] Давайте напишем Linux терминал
- [Программирование, Читальный зал, История IT, Софт, Старое железо] Программистское везение
- [Дизайн, Старое железо, DIY или Сделай сам] Хабра-календарь на 2021 год
Теги для поиска: #_staroe_zhelezo (Старое железо), #_retrocomputers, #_retrokompjuting (ретрокомпьютинг), #_286, #_minix, #_posix, #_igor_tonet (игорь тонет), #_staroe_zhelezo (
Старое железо
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 01:41
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Эта статья будет если не последней в нашем импровизированном цикле, то во всяком случае у меня не скоро накопится материал на следующую. Речь пойдёт сначала об IP-сети на 286 под Minix, её настройке и тех возможностях, которые у нас с ней откроются. А потом я порассуждаю немного о перспективах использования систем, подобных той, которую мы построили, в современном мире.ПодготовкаЧтобы что-то настраивать, необходимо сначала выбрать текстовый редактор. Из более-менее известных редакторов в Minix есть elvis − клон того самого, который пищит и всё портит. Если же вы, как и я, не любите выходить из программы кнопкой “Reset”, то вам подойдёт mined. Только придётся держать под рукой его мануал.Компиляция ядраСначала отредактируем параметры ядра: $ mined /usr/include/minix/config.h
#define ENABLE_DP8390 0 /* enable DP8390 ethernet driver */
#define ENABLE_DP8390 1 /* enable DP8390 ethernet driver */
#define NR_PTYS 0 /* # pseudo terminals (0 to 64) */
#define NR_PTYS 8 /* # pseudo terminals (0 to 64) */
# cd /usr/src/tools
# make hdboot c0d0p0> image=/minix/2.0.4
c0d0p0> boot c0d0p0> unset image
c0d0p0> boot psip0;
eth0 DP8390 0 { default; };
psip1; c0d0p0> servers=inet
c0d0p0> DPETH0=300:10 c0d0p0> save c0d0p0> boot NE2000-совместимые адаптеры обычно позволяют выбирать порты и прерывание в довольно широком диапазоне. На более старых адаптерах выбор делался с помощью перемычек. Мне «повезло»: на моём адаптере этот выбор делается при помощи специальной утилиты и сохраняется в NVRAM. На языке маркетинга это называлось “Plug and Play”.Если у нас нет ни утилиты, ни компьютера, чтобы эту утилиту запустить, остаётся только определять последние установленные параметры путём перебора, рассчитывая на то, что все остальные настройки верны.РезультатНо вот тернии преодолены, и наш ретрокомпьютер получает настройки сети по DHCP. Теперь мы можем передавать на него файлы по FTP и запускать команды через Telnet. Перед этим нужно установить пароль командой passwd, так как вход по сети без пароля невозможен. При работе dhcpd на экране периодически появляется сообщение dhcpd: /dev/udp0: Invalid argument. Видимо, DHCP-сервер посылает нашему хосту такой запрос, которого он не понимает в силу своей ветхости. Но на работу сети в целом это не влияет.Обзор Minix 2 с позиции современного пользователяКогда вау-эффект от знакомства с экзотической системой и гордость от участия в сохранении исторического объекта проходят, начинаешь поневоле представлять примерные сценарии использования ретрокомпьютера в современной жизни. Пожалуй, на нём можно готовить документы в TeX или Markdown (если визуализировать результаты на принтере), или работать с почтой (без HTML, но это даже к лучшему), или чатиться в сети (по-олдскульному, через talk), или превратить в ПЛК для морганияуправления лампочками, или…Чего же не хватает построенной нами системе до того, чтобы быть юзабельной сегодня? Софта? Тогда что мешает нам собрать этот софт?Прежде всего, стандартным компилятором в Minix 2 является Amsterdam Compiler Kit − исторически первый набор компиляторов, ориентированный на использование с несколькими языками программирования и на нескольких целевых платформах (что сейчас называется “retargetable”). В Minix 3 он был заменён на Clang (LLVM). ACK поддерживается до сих пор, но выглядит он сегодня, наверное, довольно архаично. И я не уверен, что все его доработки за последние годы возможно портировать в Minix 2.Программы для Minix используют модель памяти с близкими ссылками, аналогичную той, которую DOS-разработчики называют малой (Small). Не всякий современный софт можно втиснуть в рамки 64K+64K. А чтобы использовать другие модели памяти, нужно доработать не только ядро и стандартную библиотеку (например, предусмотреть разные варианты alloc() и free()), но и тулчейн, то есть ACK. Возможно, проще будет перейти на другой компилятор, но тут нужно учитывать, что ни Clang, ни GCC не умеют генерировать код для защищённого режима 286.Ещё одно серьёзное ограничение Minix − отсутствие разделяемых библиотек − было устранено в версии 3. Как сообщили разработчики, размер каталогов /bin и /usr/bin при этом уменьшился в 10 раз. Правда, одновременно с этим поменялся и формат исполняемого файла: на смену a.out пришёл ELF. Но в других системах разделяемые библиотеки в формате a.out вполне себе существовали, так что и это ограничение принципиально преодолимо.Логгинг в Minix практически отсутствует. Вызовы логгера обычно очень загромождают код и снижают читаемость, так что я понимаю причину такого положения дел. Но на практике с этим нельзя так просто смириться.Что касается сети, то главное, что бросается в глаза современному пользователю − отсутствие протоколов, использующих шифрование, например, SSH или HTTPS. OpenSSL был в своё время перенесён на 32-битный Minix 2, но даже самые быстрые 286 явно не обладают достаточной вычислительной мощностью для таких алгоритмов. Тут дело исправит разве что аппаратный криптографический акселератор.Продолжение следует?Когда у меня выдастся свободное время, я попробую пособирать в Minix какой-нибудь сторонний софт, а также почитать исходники и прицениться к обозначенным проблемам. Если будет что написать, то появлюсь с очередной статьёй. Ну, а если пропаду, то не взыщите. А пока у меня всё. Спасибо за внимание!Полезные ссылки =========== Источник: habr.com =========== Похожие новости:
Старое железо ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 01:41
Часовой пояс: UTC + 5