Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия | |||
uzix:uzix [2023-12-01 23:38] GreyWolf [Ссылки] |
uzix:uzix [2023-12-01 23:42] (текущий) GreyWolf |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== UZIX ====== | + | ~~HIDEPAGE:search;sitemap~~ |
- | + | ~~REDIRECT>msx:uzix:~~ | |
- | {{:uzix:uzix-white.jpg|}} | + | |
- | + | ||
- | FIXME | + | |
- | + | ||
- | + | ||
- | UZIX — это реализация UNIX для компьютеров MSX (Unix Implementation for MSX). Она основана на [[uzi:uzi|UZI]], разработанной Дугласом Брауном, и была портирована на MS-DOS / MSX Аркадием Щекочихиным и Адриано да Кунья (Adriano C. R. da Cunha). UZIX может быть запущена на PC (из MS-DOS) или на MSX2/2+/TurboR. Исходный код в основном написан на Си, и транслировался с помощью Turbo-C (ПК) и Hitech C (MSX). | + | |
- | + | ||
- | ===== История ===== | + | |
- | + | ||
- | MS-DOS версия разрабатывалась Аркадием, практически самостоятельно, с 1997 по 2001. Адриано, в свою очередь, почти целиком ответственен за портирование на MSX. В версии 1 система занимала в ОЗУ менее 30Кб (а точнее, 25.8Кб). Это, наверное, самая компактная реализация [[wp>Version_7_Unix|7th Edition]], какую только возможно найти. | + | |
- | + | ||
- | Для UZIX было создано и портировано много подсистем и приложений, таких как стэк TCP/IP, клиенты telnet, ftp, irc, демоны telnetd и httpd, и даже графический Web-браузер [[msxorg>news/software/en/fudebrowser-11|FudeBrowZer]], разработанный Рикардо Битенкуром ([[https://sites.google.com/site/ricbitmsx/home|Ricardo Bittencourt]]). | + | |
- | + | ||
- | В 2002 году вышла версия UZIX 2. Это был большой шаг вперед по сравнению с первой версией. Основным отличием стало большее ядро, позволяющее включить в него больше функций, и, в то же самое время, большее пространство ОЗУ, доступное для прикладного кода — что открыло возможности для запуска более крупных приложений. В этой версии UZIX получил и множество других улучшений: в частности, графическую систему (не X11), модульное ядро (с возможностью горячей загрузки и выгрузки модулей ядра), была также предпринята попытка создать собственные средства разработки - [[https://sourceforge.net/projects/foca/|FOCA]] - компилятор Си (не завершен), ассемблер Z80, оптимизатор. Разработкой FOCA занимались Фелипе Берго (Felipe Bergo) и Адриано Кунья. Последней версией UZIX стала 2.1alfa от 24/09/2003. Последняя правка в файлы UZIX вносилась 18/03/2005, после чего разработка, очевидно, прервалась. | + | |
- | ===== Архитектура ОС ===== | + | |
- | === Архитектура UZIX 1, за небольшим отличием — в целом, идентична UZI: === | + | |
- | + | ||
- | Поскольку на компьютерах 8080 семейства нет стандартного механизма менеджмента памяти (MMU), //многопроцессность// достигается методом «total swapping» (полного своппинга). Но, в отличие от UZI, для "total swapping" используется не жесткий диск, а память маппера. На PC — для этого используется "расширенная память". В обоих случаях, UZIX доступно 64Кб адресного пространства (всё адресное пространство Z80 или один полный сегмент на PC). Собственно UZIX располагается в верхних 32Кб памяти, а работающий в данный момент процесс занимает нижние 32Кб. UZIX не может обойтись без некоторых дополнительных устройств. Во-первых, должен присутствовать, в том или ином виде, таймер или часы, которые могут обеспечить периодическое прерывание. Также, дополнительно используются часы реального времени (RTC) для получения времени для временных меток файлов, и т.п. TTY-драйвер опрашивает клавиатуру в цикле ожидания — а не предполагает работу от прерываний, как в UZI. | + | |
- | + | ||
- | Существует специальная "лайт-версия" UZIX для MSX1, работающая в режиме 40 символов в строке, и эмулирующая недостающий RTC для своих нужд. Но, в виду отсутствия в MSX1 штатного RAM-маппера, она использует [[msxorg>wiki/ACVS_II_MegaRAM|бразильский MegaRAM]], что замедляет работу системы, по-сравнению с MSX2. Скачать её можно [[http://uzix.sourceforge.net/uzix1.0/index.php?page=down&lang=us|здесь]]. | + | |
- | + | ||
- | === Архитектура UZIX 2 существенно отличается от предыдущей версии: === | + | |
- | + | ||
- | Операционная система, аналогично, использует маппер MSX2/2+/TR для "total swapping". Но само ядро UZIX занимает все 64Кб памяти, разделенное на две части — 48Кб для выгружаемой части ядра, и 16Кб для невыгружаемой (резидентной). Резидентная часть является интерфейсом между userland-программами и остальным ядром. Во время системных вызовов или прерываний, выгружаемая часть ядра свопится так же, как любой другой процесс. Приложения занимают в ОЗУ, как минимум, 16Кб, а максимум — 48Кб (в зависимости от их размера). UZIX 2 поддерживает до 4096Кб памяти. Максимальное количество процессов 31. | + | |
- | + | ||
- | ==== Возможности: ==== | + | |
- | * UZIX работает на любой MSX ([[msx:msx_2|MSX2]], [[msx:msx_2_plus|MSX2+]], TR а также в эмуляторах); | + | |
- | * Полнофункциональная многозадачная среда; | + | |
- | * Полнофункциональное многопользовательское окружение; | + | |
- | * Стабильная файловая система, почти без багов; | + | |
- | * Чрезвычайно стабильное ядро, шелл и окружение; | + | |
- | * Поддержка модулей (модульность используется пока только для TCP/IP стэка); | + | |
- | * Поддержка жестких дисков ([[msxorg>wiki/ESE_MegaSCSI|ESE MegaSCSI]], [[msx:sunrise-ide_maxiol:sunrise-ide_maxiol|Sunrise IDE]] и [[msx:beer_ide:beer_ide|Beer IDE 202]]((Смотри [[#uzix1|Примечание 1]])) ); | + | |
- | + | ||
- | Попробовать UZIX 2 можно в эмуляторе [[+tab|wmsx>?P=RAM1024&DISK=/_media/uzix/uzix_bootflp.dsk|WebMSX]]. Логин — root без пароля. | + | |
- | + | ||
- | === Примечания: === | + | |
- | + | ||
- | - Если Вы захотите запустить UZIX 2 на реальном железе, то нужно учитывать, что он не заработает на MSX без маппера ОЗУ, и заработает крайне ограничено на машинах с ОЗУ 128Кб (а это такие модели, как Yamaha YIS-805/128R и Yamaha YIS-503IIIR) — запустится shell, но, при попытке запуска чего-либо, будет выдаваться сообщение о невозможности порождения нового процесса (fork failed). Для нормальной работы требуется, как минимум, 256Кб. Тут выручить может [[msx:carnivore2:carnivore2|Carnivore]], либо другое расширение памяти. | + | |
- | - Некоторые DiskROM-ы не очень хорошо работают с UZIX. DiskROM для MSX Turbo-R также в этом замечен, и проблема связана с остановкой дискеты. Если дисковод прекращает вращение, то следующее обращение к нему выдаст ошибку 'not ready' после длительного таймаута. Эта проблема решается установкой соответствующей галочки в 'Advanced settings' в инсталляторе UZIX, либо нажатием пробела во время загрузки ZILO. | + | |
- | - Работа UZIX была протестирована только на контроллерах ESE MegaSCSI и Sunrise IDE; Контроллеры Novaxis SCSI выдают ошибку при попытке доступа к диску; UZIX, в принципе, должен работать и на других устройствах (Bert, Gouda, и т.д.), но может потребоваться некоторая тонкая настройка. | + | |
- | - Инсталляция на Sunrise IDE с [[msx:nextor:nextor|NEXTOR]] kernel, к сожалению, невозможна. Для этого необходимо будет прошить {{ :msx:sunrise-ide_maxiol:sunrise_ide_v2.50.bin |оригинальный ROM Sunrise}} (или, если речь об эмуляторе, прописать его в [[msx:sunrise-ide_maxiol:sunrise-ide_maxiol#openmsx|настройках]]). Образ HDD с установленным UZIX 2.1 для использования с оригинальной прошивкой Sunrise можно {{ :uzix:uzix_toolchain.dsk |скачать тут}}. Там используется старый [[msxorg>wiki/Sunrise_ATA-IDE_%2B_RS232C#How_to_use_FAT16_partition|'MSX-style']] формат таблицы разделов, отличающийся от MS-DOS partition table, так как установщик UZIX не работает с DOS Partition Table. | + | |
- | - Инсталляция на Beer IDE возможна, но затруднена. Поэтому для работы с BEER 202 предлагается готовый загрузочный {{ :uzix:uzix0.2.1_beer.dsk|образ}} с установленным UZIX. Используется MS-DOS MBR, стандартная Partition Table. | + | |
- | + | ||
- | {{anchor:uzix1}} __//Примечание 1//__ \\ | + | |
- | Разработчиком поддержка изначально не заявлялась, но в 2022 году была [[https://msx.org/forum/msx-talk/software-and-gaming/msx-cpm-booting-sunrise-cf-ata-ide#comment-434297|случайно обнаружена]] де-факто, и полностью подтверждена тестами на эмуляторе и реальном железе. | + | |
- | {{anchor:beeride}} | + | |
- | ===== Beer IDE ===== | + | |
- | Есть тонкости при инсталляции. В частности, UZIX видит разделы жесткого диска BEER IDE как ''/dev/fd*'' | + | |
- | + | ||
- | ====== Ссылки ====== | + | |
- | + | ||
- | http://uzix.sourceforge.net/ | + | |
- | + | ||
- | https://github.com/marioaugustorama/uzix-kernel | + | |
- | + | ||
- | [[http://uzix.sourceforge.net/images/uzix-white.jpg|Логотип]] | + | |
- | + | ||
- | {{tag>MSX OS Z80}} | + |