← All posts tagged Plan9

Elemir
? Windows Plan9 Есть ли костыли для винды, открывающие окно процесса на месте окна терминала, и возвращающие терминал назад после завершения процесса?
Например запускаешь gvim, он открывается на месте консоли, ты в нём правишь что нужно, закрываешь, консоль возвращается на место. Да, как в plan9.
Elemir
FreeBSD Plan9 Вы таки не поверите, но в FreeBSD от простого пользователя работает rfork с RFCNAMEG. Для полной возможности эмулировать plan9 фре не хватает разве что реализации 9p.
Elemir
Plan9 acme тестдрайв Играюсь я тут в VmWare с plan9. Решил поиспользовать его с приличной мышью и попытаться проникнуться acme. И так, первые результаты:
1. Весьма забавная wm над /dev/draw, намного менее гибкая чем rio. Непонятно почему она не сделана как скрипт на rio. Не хватает кейбиндингов для разных комманд
2. Приятный и относительно удобный режим файлового менеджера. Спамит окнами (при открытии диры распахивает новое окно), кейбиндингов тоже не хватает
3. Невнятный режим терминала. Что-то пишете, нужно выделить это, а потом нажать среднюю кнопку мыши, он распахнёт окно с результатами. Умеет передавать диру из файломенеждера как параметр комманде
4. Невнятный режим редактирования буфера. Блокнот от m$ завидует этому редактору, настолько оный аскетичный. Хочется цветов, и костылей для организации автоиндента и комплешона
5. Милейшая файловая система для доступа ко всему этому. Позволяет накастовывать разнообразные (встроенные, расчитанные на acme) комманды на буферы. Жаль, что нельзя накастовывать на них awk
Поиграюсь ещё, подумаю и напишу как я бы всё это сделал
Elemir
Plan9 XNU system_programming Многие знают, что XNU — гибридное ядро, часть людей даже догадывается как именно. Поверх милого олдфажному BSD'шнику Mach'а накручена эмуляция ядра BSD (о так же сделано и в MkLinux), и что намного более важно интерфейсы драйверов тоже поверх Mach, а не как в MkLinux. Опытный глаз заметит, что MINIX3 устроен похожим образом. К чему же я веду этот разговор? К тому, что вендорных дравйеров для XNU ничуть не меньше, чем для Linux, а сделать на нём smth like Glendix на порядок проще (и получится намного более элегантнее — достаточно выпилить BSD часть и заместить её plan9'ой)
Elemir
Linux fail Plan9 p9p Сегодня попытался посмотреть как у $subj(2) обстоят дела с нормальной работой в режиме plan9.
До этого я его использовал только как замену coreutils + another GNU tools. Решил начать с малого — собрать довольно
милый plan9 jabber client — jacc. Не смотря на наличие в сырцах mkfile.pla9port jacc не собрался. Для меня это было удивительно — я решил, что скорее всего, у меня руки растут не из того места и p9p встал криво. Ошибка была довольно не замысловата
и банальна — он не видел lib9'ого stat'а, а дорывался до glibc'ого. Пытаясь понять в чём проблема я стал рыться в
заголовчнике libc.h. Вот что я там нашёл:
/* not implemented
extern int fauth(int, char*);
extern int fstat(int, uchar*, int);
extern int fwstat(int, uchar*, int);
extern int fversion(int, int, char*, int);
extern int mount(int, int, char*, int, char*);
extern int unmount(char*, char*);
*/
+ Много-много чего с пометкой 'give up'... Это ужаснуло меня. Например, без реализованного mount'а никакого серьёзного profit'а от реализиции libdraw на POSIX+X нет. Без stat'а тоже как-то тяжеловато... Может прав был тов. @L29Ah, когда говорил,
что надо пилить Glendix?
Elemir
ToDo Plan9 Что-то код не пишется, поэтому написал TODO :3
1. Написать комманду, которая отображает hitmenu
2. Выдрать нафиг из rio стандартное управление мышью
3. Реализовать его скриптово, оборачивая /dev/mouse и используя hitmenu
4. Изменить работу raw mode'а /dev/cons'а — добавить информацию о нажатии на modkey'и, ctrl'ы и caps lock
5. Реализовать tile wm rscript, оборачивая /dev/cons
6. Запилить возможность смены цветов в rio. Надоело смотреть на это 16'битное чудо
7. to be continued
Elemir
Plan9 Всё пытаюсь сделать шорткаты в rio. Узнал, что /dev/cons даже в сыром режиме ничего не знает про alt и mod4, а капслок считает копией ctrl'а...
Elemir
Plan9 Благодаря каналу #plan9 и товарищу anth_x узнал о интересной комманде plan9 — pipefile. Она позволяет применить на любой потоковый файл фильтр. Таким образом перед запуском rio можно обернуть /dev/cons — тем самым добавив keyboard shortcut
Elemir
Plan9 rio В структуре ФС rio многое удивляет. Во-первых удивило то, что примонтировать её не создав окна, я не могу. Т.е что получается, что я не могу создать фоновую программу, контролирующую расположение окон? Бред. Во-вторых примонтированная система в своём корне содержит следующий набор файлов — cons, consctl, kbdin, mouse, screen, snarf, text, wctl, window, winid, winname и директорию wsys. Все файлы, кроме kbdin работают с разнообразными параметрами текущего окна, файл же kbdin настолько специфичен, что работать с ним может только единственная программа на экземпляр rio. Во вторых wsys содержит директории, совпадающие по названиям с $wid и содержащие всё тот же список файлов. Во-первых отсюда становится понятно, почему программа без окна не может работать с ФС rio — тупо не понятно, что сувать в корень, во-вторых очевидно, что таким образом нету файла, содержащего информацию о самом экземпляре DS. Почему? Непонятно. Вот я сижу и думаю, как это перепиливать? И если я это сделаю, то не получу ли очередной Plan B? Осмысленно ли это?
Elemir
Plan9 unix-way критика Буквально на днях Элемир поставил plan 9 на нетбук bare metal. Общее впечатление хорошее, система устроена довольно чётко и красиво. На данном этапе возникает ощущение, что превратить его в систему, на которую можно поставить наклейку "Elemir thinks it's usable". До этого я себя так чувствовал только в FreeBsd (почему не в {Open,Net}BSD отдельный разговор) и то оно было намного менее яркое. Понятное дело, что в бочонке меда есть своя ложка дегтя. Демонстрировать я её буду придераясь к конкретным частям системы.
* acme — самый популярный редактор для plan 9. По сути своей тот же emacs только с 9p и без лиспцов. Никаком боком не вписывается в общую философию нового UNIX, что он тут делает — непонятно. Решение — выпилить из стандартной поставки
* sam — другой известный редактор для нашей няшечки. Тут всё намного сложнее. С одной стороны редактор имеет неплохое устройство, но с другой стороны — многое было сделано не адекватно. Сам редактор можно было сделать консольным, output которого бы распределялся между samterm'ами
* rio — оконный менеджер plan 9, одна из самых сложных программ этой системы. Как водится в его проектировании был допущен ряд недочётов. С эдной стороны OS позиционирует себя как наследника UNIX, с другой в rio нельзя прикрутить управление в клавиатуры без правки исходников. Моей целью в этом направлении является включение возможности управлять shortcut'ами, задавать функции rc, выполняемые при разных событиях и на основе этого создать тайлинг-скрипт
* rc — тут всё сделано хорошо и без излишеств. Простой скриптовый язык. Надо только заметить, что системе сильно не хватает чего-то в духе rlwrap, с которым можно было бы запускать шелл
В заключении надо сказать, что я буду рад всякой моральной и физической поддержке моих начинаний