пятница, 19 июня 2009 г.

Софт. DHCP-сервер

Mechaiel Lukkien добавил в свой репозиторий начальную реализацию DHCP-сервера и обновил систему аутентификации Plan 9 (кроме UNIX-версии теперь доступна реализация на языке Limbo). Теперь Inferno можно использовать в качестве сервера для тонких клиентов, построенных на UNIX (связка ip/dhcpd + ip/tftpd + nfssrv) и Plan9 (связка ip/dhcpd + ip/tftpd + auth/authsrv9 + протокол styx/9P).

среда, 17 июня 2009 г.

Софт. Часть 3. Лабораторные работы

Каждый день, придя домой, Caerwyn B Jones усаживается за свой ПК и приступает к реализации идей, пришедших ему в голову во время рабочего дня. Это называется Лабораторной работой. Обычно она связана с исследованием того или иного компонента ОС Inferno или реализацией определенного алгоритма на Limbo или Sh. Занимаясь "Лабораторными работами" по два-три часа в день Caerwyn успел накопить багаж из 101-ой "лабы" и реализовать несколько вполне значимых проектов, среди которых:

* Дистрибутив acme-sac, включающий в себя значительно расширенную реализацию среды acme;
* Распределнная система синтеза звука и записи композиций;
* Файловая система wikifs, предназначенная для редактирования wiki-страниц (lab 30) и wiki-клиент для acme (lab 43);
* Порт irc-клиента для acme (lab 44);
* Модификация веб-браузера charon для запуска внутри acme (lab 56);
* Программа для шифровния файлов cryptfile (lab 2);
* Порт драйвера DS (/os/port/devds.b) на Limbo (lab 15);
* Графический интерфейс для карманной игровой консоли Nintendo DS (lab 87, 89);
* Порт "песочницы" vx32 в гостевую версию Inferno (lab 92);
* Производительный Limbo-модуль для работы с B-деревьями (lab 101);
* И многое другое, включая несколько клиентов для acme, систему grid-вычислений и различные эксперименты.

Кроме того, в рамках "лабораторных работ" Eric Van Hensbergen из IBM реализовал поддержку Zeroconf (lab 90).

Каждую "Лабораторную работу" Caerwyn аккуратно оформляет и публикует в своем блоге "Inferno Programmer's Notebook".

понедельник, 15 июня 2009 г.

Inferno-ex: экспериментальная ветка Inferno

Недавно Venkatesh Srinivas создал собственный форк Inferno под названием inferno-ex. Спустя полтора месяца мы уже можем оценить результаты его работы. Список отличий от inferno-os:

* Автоматизированная система сборки нативной версии ОС (os/pc/mkflp).
* Порт файловой системы для работы с wiki-страницами wikifs и wiki-клиента для acme из acme-sac (appl/cmd/wikifs, acme/wiki).
* rs (#R) - драйвер для корректирования ошибок на устройствах хранения данных (os/pc/devrs.c, libecc/).
* CFS - Journal Callbacks Cache File System - виртуальная кэширующая ФС (appl/cmd/cfs.b, appl/cmd/ncfs.b).
* Драйвера для поддержки системы виртуализации ввода-вывода KVM VirtIO, которые позволяют напрямую задействовать устройства ввода-вывода (сетевые адаптеры, устройства хранения данных) в гостевом режиме поверх Linux (os/pc/ethervirtio.c, os/pc/sdvirtio.c).
* Драйвер для видео-адаптеров Radeon, портированный из Plan 9 (os/pc/vgaradeon.c).
* 8i - софтверный интерпреторатор x86-инструкций, написанный создателем vx32 Russ Cox для Plan 9 (своего рода эмулятор x86-совместимых процессоров, каталоги 8i и lib8i).
* 9c, 9a, 9l - Си-компилятор, ассемблер и линковщик для процессоров PowerPC64 (каталоги utils/9c, utils/9a, utils/9l).
* ventisrv - файловая система, использующая систему хранения данных venti (appl/cmd/ventisrv.b, appl/cmd/vcache.b, appl/cmd/vtest.b).
* Набор скриптов для упрощения запуска inferno и dis-приложений в гостевом режиме (каталог rc).

P.S. Venkatesh Srinivas также создал новое англоязычное Inferno-wiki.

суббота, 13 июня 2009 г.

Inferno на PowerPC

В дерево исходных текстов Inferno добавлена поддержка гостевого режима в ОС Linux, работающей на процессорах семейства PowerPC (коммиты 423-427).


среда, 10 июня 2009 г.

События за две недели

Извиняюсь за долгий перерыв и представляю дайджест событий мира Inferno/Plan9 за две недели.

Inferno:
* Исправлен баг, ограничивающий длину копируемого по протоколу Styx файла двумя гигабайтами (спасибо rapidfx и powerman).
* В дерево исходных текстов Inferno добавлен Си-компилятор 6c для процессоров AMD64.
* Исправлен баг в файловой системе kfs, используемой при запуске Inferno на голом железе (native).

Acme-SAC:
* Поддержка подсветки изменений в окне adiff (сравнение текстовых файлов).
* Добавлена поддержка различных цветовых схем для acme.
* Встроенный файловый менеджер Navigator, открывающий каталоги в том же окне.
* Интегрирован код ctags-браузера для acme (поиск по функциям, ключевым словам, перменным). Также добавлен скрипт для генерации файла ctags для языка Limbo.

Plan9:
* Интегрирован переработанный код USB-стека, написанный nemo (поддержка USB2.0, USB-сканеров, мышей и т.д.).

Wiki:
* Добавлена статья "Реальное применение Inferno".
* Черновые варианты третьей и четвертой глав "Руководства программиста".
* Описана структура каталогов исходных текстов ядра ОС.
* Добавлено несколько новых советов в "ЧаВо".


P.S. Acme-SAC представляет собой форк гостевой версии Inferno, в качестве графического интерфейса которой выступает существенно доработанная версия среды Acme. Сам автор позиционирует свою разработку как мощный редактор, но на самом деле это урезанная и во многом доработанная Inferno.