Вышла (http://lynxline.com/inferno-rpi-0-4-release/) новая версия операционной системы Inferno OS (http://lynxline.com/projects/labs-portintg-inferno-os-to-ras.../) для одноплатного компьютера Raspberry Pi. Выпуск примечателен значительным увеличением производительности после устранения ошибки в планировщике задач и оптимизацией загрузки, которая теперь занимает около 1 секунды.
Напомним, что ОС Inferno была создана в Bell Labs по заказу компании Lucent и увидела свет в 1995 году. Она основана на коде операционной системы Plan 9 и дополнена виртуальной машиной Dis, приложения для которой написаны на языке Limbo, предке языка Go. В основе Inferno лежит идея об использовании файлов для представления всех ресусов операционной системы, начиная от устройств и заканчивая окнами графического интерфейса и буфером обмена. Обрабатывать запросы доступа к таким файлам может не только ядро ОС, но и обычные приложения, а для передачи запросов используется сетевой протокол 9P. Благодаря этому любой ресурс операционной системы можно экспортировать на удаленную машину. ОС доступна для множества архитектур, а также может работать в среде Linux, *BSD, OS X, Solaris, Windows и других ОС. Подробнее об Inferno на русском можно узнать в Inferno Wiki (http://inferno.execbit.ru).
URL: http://lynxline.com/inferno-rpi-0-4-release/
Новость: http://www.opennet.me/opennews/art.shtml?num=43474
Ух ты, загрузка за одну секунду на raspberry!
Ну чем это не система мечты? :)
К тому же основа - Plan 9. Ваще конхвэтка!
новость крайне занимательная, но есть ли у инферны задачи?
Конечно есть, почитайте замечательные статьи powerman: http://powerman.name/doc/Inferno/
Спасибо за очень интересную ссылку.
Я студента одного своего сподвиг опробовать в рамках курсовой работы - он был доволен как слон, особенно бесшовным переносом задач между компьютерами. И это избалованный виндой пользователь.
Даже вики их не читал, но почему-то упорно кажется, что если некий механизм позволяет что-то бесшовно запускать на других ПК и в то же время через него же идёт работа на локальной системе, это будет работать медленно на локальной системе и совсем безобразно на удаленной.Неспроста жж всякие rdp/vnc придумывали монструозные (и то нюансов много).
> Неспроста жж всякие rdp/vnc придумывали монструозныеИ рдипи и виэнси абсолютно не монструозны. Рекомендую заглянуть в код, к примеру, rdesktop.
pactree freerdp|wc -l
363pactree rdesktop|wc -l
171
У меня не взлетела сразу. Жаль :-(
ARM 700 MHz id 410fb767 firmware: rev 1393004686, mem: 496
Inferno OS Fourth Edition (20151010) Vita Nuova
Ported to Raspberry Pi (BCM2835) by LynxLineStarting init0()
Initial Dis: "/osinit.dis"
[Init] Broken: "sys: trap: fault pc-040769e4"Raspberry Pi, модель B. Буду разбираться, штука-то интересная.
Я пока модель B с 512MB не тестировал.
Можно попробывать покрутить gpu_mem в config.txt
Поставить побольше 32 или 64.
> Я пока модель B с 512MB не тестировал.А какие тестировали? Если что, могу погонять что-нибудь на своей для пользы дела.
> Можно попробывать покрутить gpu_mem в config.txt
> Поставить побольше 32 или 64.Спасибо, попробую.
>> Я пока модель B с 512MB не тестировал.
> А какие тестировали? Если что, могу погонять что-нибудь на своей для пользы
> дела.Я гоняю ее на еще самой старой rpi 256mb.
Скоро думаю дойдут руки и до zero попробывать.
"ПопробЫвыть"?
> Я пока модель B с 512MB не тестировал.
> Можно попробывать покрутить gpu_mem в config.txt
> Поставить побольше 32 или 64.С 32 похожая ошибка + вывод содержимого регистров
С 64 система загрузилась. Виден рабочий стол. Можно запускать программы. Но всё тормозит просто инфернально :-) Acme зависает при запуске. Man'ом пользоваться нереально. При попытке увеличить размер любого окна посреди экрана появляются разнообразные сообщения об ошибках, а окно теряет отзывчивость. Не нашёл, как штатным образом выключить систему. Лажают клавиатура и мышь. Местный WM - отдельная тема.
Но в целом радует! Необычно, свежо, есть что поизучать. Концепция системы интересна, а интерфейс - дело наживное. Загрузка за секунду (и это в графику, и это на тормозной машине) - действительно так, моё почтение!
Я догадываюсь в чем дело, в mmu гуляла константа DRAMSIZE в 256 мб так что mmu инициализирует только 256 мб.Графика вся через framebuffer. Тормозить будет обязательно, чтобы не тормозило надо добираться к videocore.
Также память разделена жестко на heaps. Есть imageheap в котором вся графика. Он заканчивается - окна не ресайзятся.
> Загрузка за секунду (и это в графику, и это на тормозной машине) - действительно так, моё почтение!Был уверен, что будет как с systemd на линуксе (мотивировка которого, если не ошибаюсь, была изначально: моментальная загрузка, т.к. он очень умно зависимости распределяет). Т.е. первый попробовавший отпишится, что никакая ни одна, а ... Вот это да! Так это правда! Раз за инферно. А "чистый" Plan 9 на распи [1] пробовали? Эх, жаль, образ от 29 марта 2015. Не очень стар, но подозрительно насчёт продолжения развития.
[1] http://plan9.bell-labs.com/sources/contrib/miller/9pi.img.gz
> Вот это да! Так это правда! Раз за инферно. А "чистый"
> Plan 9 на распи [1] пробовали? Эх, жаль, образ от 29
> марта 2015. Не очень стар, но подозрительно насчёт продолжения развития.
> [1] http://plan9.bell-labs.com/sources/contrib/miller/9pi.img.gzПопробовал. Работает. Грузится секунд 20, не считая ручного ввода даты. Тормозов не заметил, всё шустро. Никаких глюков, виденных под Инферно, не наблюдаю. Правда интерфейс сильно на любителя. Чем-то напоминает ОС Оберон, с которой я немного работал студентом лет 15 назад и уже основательно подзабыл. В общем, ничего полезного сделать пока не смог, надо разбираться.
Спасибо за новость. Что лично меня интересует касательно Plan9/Inferno@raspi, так это производительность GPIO. Позволяет ли ядро получить действительно прямой доступ без каких-либо обёрток? Чтобы, например, использовать как радио-транслятор (~ 100 МГц) и логический анализатор (~ 25-40 МГц)?
> Спасибо за новость. Что лично меня интересует касательно Plan9/Inferno@raspi, так это производительность
> GPIO. Позволяет ли ядро получить действительно прямой доступ без каких-либо обёрток?
> Чтобы, например, использовать как радио-транслятор (~ 100 МГц) и логический анализатор
> (~ 25-40 МГц)?Есть сомнения, 100МГц это всего семь тактов cpu на один такт, 25МГц на gpio это уже 28 тактов cpu, логика с выводом или вводом в gpio разве уложится в 28 арм команд?
> Есть сомнения, 100МГц это всего семь тактов cpu на один такт,У людей как-то получилось [1] декодировать mp3 и выводить через специальный pwm gpio, т.е. это скорее трюк (в плане "МГцов"), поэтому я выделил его отдельно. Вопрос был, не будет ли ядро мешать: ведь и так сложно.
> 25МГц на gpio это уже 28 тактов cpu, логика с выводом или вводом в gpio разве уложится в 28 арм команд?
У людей получается. Например, [2], 22 MHz [3] с кодом [4] (а с RPi 2 вообще 41 MHz [5]). По-моему, ядро должно предоставлять прямой доступ к памяти, куда и замапены gpio. Сколько останется для полезной обработки, это уже второй вопрос. Понятно, что это будет урезанный анализатор. Но когда нужно не получить полный дамп, а просто бысло слушать, и выводить только редкие данные (только интересующее событие), то, вроде как должно помочь.
[1] http://www.icrobotics.co.uk/wiki/index.php/Turning_the_Raspb...
[2] http://d-fence.sytes.net/raspberry-pis-gpio-speed/
[3] http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-.../
[4] https://github.com/jokkebk/rpi-gpio-benchmark
[5] http://codeandlife.com/2015/03/25/raspberry-pi-2-vs-1-gpio-b.../
Я посмотрел [1]. Да, там просто gpio 4 соединяется напрямую с системным таймером 100МГц. А уже код делает FM модуляцию меняя настройки этого системного таймера. Для звука его надо менять скажем всего 20КГц.Я игрался раньше с таймерами я ядром. То что я видел - ядро успевает сделать все свои дела и за 10 мкс. (По умолчанию portclock срабатывает с мин 100 мкс и макс 10 милисек). Так что возможно модулировать и до 100КГц без провалов от ядра.
Что сейчас может помешать - графика в инферно сейчас на уровне ядра а так как графика через framebuffer то она тормозит. Так что если есть желание вкрутить FM радио в inferno ядро, то делать это без графики :).