воскресенье, 10 июня 2012 г.

Plan 9 (Inferno) на Ubuntu 11.10

Linux amiga 3.0.0-17-generic-pae i686

Единственное Ubuntu-зависимое место - подготовка среды.

# apt-get install subversion build-essential 
# apt-get install libx11-dev libxext-dev x11proto-xext-dev
Версия в SVN протухшая (2009 г). Google просто хранит старые репозитории, может себе позволить. На оф.сайте версия посвежей - это уже 2010 г. Но мы будем ставить актуальную версию Inferno и это значит что необходимо установить актуальную систему контроля версий - Mercurial:
# sudo apt-get install mercurial
Получаем содержимое и задаём системные переменные.
$ cd ~
$ hg clone https://inferno-os.googlecode.com/hg/ inferno
$ cd inferno

$ export INFERNO_ROOT=/home/$USER/inferno
$ export EMUROOT=/home/$USER/inferno
Приводим mkconfig к виду:
ROOT=/home/$USER/inferno
TKSTYLE=std
SYSHOST=Linux
SYSTARG=Linux
OBJTYPE=386
OBJDIR=Linux/386
<$ROOT/mkfiles/mkhost-Linux
<$ROOT/mkfiles/mkfile-Linux-386
Добавляем в файле mkfiles/mkfile-Linux-386 опцию -fno-omit-frame-pointer в конце CFLAGS. Если опцию не указывать, то при попытке запуска emu мы получим Segmentation fault (на всех ядрах Linux > 2.6). После этого собираем.
$ ./makemk.sh
$ mk nuke
$ mk install clean
Создаём исполняемый файл inferno со следующим содержимым:
EMUROOT="$HOME/inferno"
RES="800x600"
COMMAND="wm/wm"

$EMUROOT/Linux/386/bin/emu -r$EMUROOT -g$RES $COMMAND
Причём если переменную COMMAND в этом файле закомментировать, то мы попадём в консоль Sh с приглашением вида ";". Команд ls, lc, cd, cat, ps, kill и man на первое время хватает. Выход из консоли по exit.

Теперь необходимо создать папку пользователя для Inferno с таким же именем, что и у нашего пользователя Linux.
$ mkdir usr/$USER
$ cp -Rf usr/inferno/lib usr/$USER/lib
Всё, стартуем.
$ ./inferno
Ниже скриншоты официальной версии 2010 г, но актуальная 2012 г выглядит также. Не во внешности дело.

Комментариев нет:

Отправить комментарий