ФЭНДОМ


ВведениеПравить

Процедура установки Inferno делится на два этапа: получение исходных текстов и их последующая сборка. Причем дерево исходных текстов можно получить двумя способами:

  1. Скачать срез исходных текстов с сайта vitnuova.com.
  2. Получить исходные тексты посредствам системы контроля версий Mercurial

Получение исходных текстов с сайта vitnuova.comПравить

Откройте страницу http://www.vitanuova.com/inferno/downloads.html в браузере, скачайте архив, содержащий последнюю версию среза исходных текстов Inferno (на момент написания это inferno-20090630.tgz), распакуйте архив в каталог /home/пользователь/inferno и установите переменную окружения EMUROOT:

$ EMUROOT="/home/$USER/inferno"

Получение исходных текстов из репозитория MercurialПравить

Предполагается что мы имеем дело с проектом inferno-os (аналогичная операция может быть проведена и для acme-sac и т.п.). На вашем компьютере должна быть установлена система управления версиями Mercurial.

Создайте каталог, который будет хранить копию дерева исходных текстов проекта:

$ export EMUROOT=/home/username/inferno-os-read-only
$ mkdir $EMUROOT

Запустите процедуру синхронизации:

$ hg clone https://inferno-os.googlecode.com/hg/ $EMUROOT

Сборка Править

Вы можете собрать Inferno как в качестве приложения, работающего внутри уже установленной операционной системы, так и в качестве независимой операционной системы. Второй вариант напрямую зависит от первого, поэтому сборку Inferno-приложения придется выполнить в любом случае.

Сборка для UNIX Править

Отконфигурируем систему сборки:

$ cd $EMUROOT
$ vim mkconfig

Заменяем строку 'ROOT=/usr/inferno' на 'ROOT=/home/ваш_логин/inferno', строку 'SYSHOST=Plan9' на 'SYSHOST=FreeBSD' или 'SYSHOST=Linux' в зависти от вашей ОС, указываем в опции OBJTYPE архитектуру процессора нашей машины или машины, для которой производится сборка (для x86-совместимых значением опции будет 386). Комментируем строку 'OBJTYPE=$objtype'.

Компилируем утилиту mk, необходимую для сборки ОС:

$ ./makemk.sh

И включаем место ее расположения в пути поиска коммандного интерпритатора:

$ PATH="$EMUROOT/`uname`/386/bin:$PATH"

Наконец, собираем Inferno:

$ mk install clean

Inferno готова к работе. Осталось создать специальный скрипт, который облегчит ее запуск:

$ mkdir ~/bin
$ vi ~/bin/inferno

Помещаем в файл следующие строки:

#!/bin/sh
OS=`uname`
ARCH="386"
EMUROOT="/home/${USER}/inferno"
RES="800x600"
COLCHAN="r8g8b8a8"
COMMAND="wm/wm"
$EMUROOT/${OS}/${ARCH}/bin/emu -r${EMUROOT} -g${RES} -C${COLCHAN} $COMMAND

Даем скрипту права на исполнение и помещаем каталог ~/bin в пути поиска:

$ chmod +x ~/bin/inferno
$ echo 'export PATH="~/bin:$PATH"' >> ~/.profile

Все, теперь можете запустить Inferno:

$ inferno

Если Вы не хотите, чтобы Inferno загружалась в режиме командной строки, просто закомментируйте строку 'COMMAND="wm/wm"'.

Сборка для NT Править

Установка инструментов для сборки Править

1. Установите Visual C++ 2005 Express Edition. Ее можно найти здесь:

http://www.microsoft.com/express/2005/download/default.aspx

2. Установите Windows Server 2003 Platform SDK.

Только небольшая часть компонентов платформы необходима для сборки Inferno. Проверено, что необходимы только следующие компоненты, все остальное можно пропустить:

  1. Microsoft Windows Core SDK без 64-битных компонентов, 64-битного окружения сборки, документации и примеров
  2. Microsoft Windows Installer SDK без 64-битного окружения сборки, документации и примеров

3. Добвьте установленные каталоги в переменные окружения.

3.1. Добавьте следующие строки в переменную Path:

C:\Inferno\Nt\386\bin
C:\Program Files\Microsoft Visual Studio 8\VC\bin
C:\Program Files\Microsoft Visual Studio 8\Common7\IDE
C:\Program Files\Microsoft Platform SDK\Bin

3.2. Создайте переменную окружения Include и поместите в нее следующую строку:

C:\Program Files\Microsoft Platform SDK\Include

3.3. Создайте переменную окружения Lib и добавьте в нее следующие каталоги:

C:\Program Files\Microsoft Visual Studio 8\VC\lib
C:\Program Files\Microsoft Platform SDK\Lib
Сборка Inferno Править

Отредактируйте конфигурационные файлы Inferno

mkconfig:

ROOT=C:/Inferno
SYSHOST=Nt
OBJTYPE=386
#OBJTYPE=$objtype

mkfiles/mkfile-Nt-386:

LDFLAGS= $LDEBUG -nologo -incremental:no -map -force:multiple

emu/Nt/emu:

# eia

emu/Nt/mkfile:

CONFLIST=emu

В файле /emu/Nt/os.c закомментируйте функцию time().

// Что дальше то? :)

Сборка в качестве операционной системы Править

Оригинал: http://umdrive.memphis.edu/blstuart/htdocs/inf_nat_inst.html

На текущий момент поддерживаются следующие аппаратные платформы:

  • x86
  • MIPS
  • ARM/StrongARM/Thumb
  • Power PC
  • SPARC

Результатом нашей работы будет образ флоппи-диска. Этот образ можно будет записать на флоппи-диск с которой будет загружаться ПК. Или же он может быть использован как загрузочный файл El Torito для загрузочного CDROM.

Эти образы (флоппи- или компакт диска) могут быть также запущены на любом из эмуляторов ПК. Я обычно использую для запуска qemu.

Редактирование конфигурационного файла Inferno Править

Установите правильные значения переменных в своем файле mkconfig расположенном в корневом каталоге Inferno. Особое внимание обратите на переменные ROOT, SYSHOST, and OBJTYPE.

Сборка Tool Chain Править

Если вы работаете в Windows, у вас уже есть toolchain расположенный в C:\Inferno\Nt\386\bin. Для других операционных систем (Linux, FreeBSD, Plan9) вам потребуется выполнить "mk install" в корневом каталоге Inferno. Убедитесь что переменная окружения PATH содержит ваш каталог с где расположены бинарные файлы Inferno.

export PATH=/usr/local/inferno/`uname`/386/bin:$PATH

Настройка ядра и установка кода начальной загрузки Править

Не беспокойтесь, вы не установите код начальной загрузки на вашу машину. Мы просто соберем его и поместим в условленное место чтобы позже им воспользоваться.

1. В os/boot/pc дереве каталогов Inferno, задайте команду "mk pbs.install 9load.install" в командной строке вашей ОС.
2. Отредактируйте os/pc/pc для задания параметров ядра. Простейший/минимальный набор изменений дает что-то, что вы сможете увидеть в работе:
1. Поменяйте wminit на shell в разделе init.
2. Установите переменную consoleprint из раздела code' в 1.
3. Добавьте файлы /dis/lib/arg.dis и /dis/lib/filepat.dis в раздел root.
4. Создайте файл в os/pc назвав его plan9.ini. Если вы собираетесь загружатья непосредственно с флоппи-диска, вы должны включить строку: "bootfile=fd0!ipc.gz". Если вы собираетесь сделать загрузочный CD-диск, строка должна быть "bootfile=sdD0!cdboot!ipc.gz". Это предполагает что ваш CD является мастером на втором канале IDE-контроллера, который вероятно является наиболее частой конфигурацией.

Сборка образа флоппи-диска Править

1. Выполните команду "mk" в каталоге os/pc в командной строке вашей ОС.
2. Выполните команду "gzip ipc" в каталоге os/pc в командной строке Inferno.
3. Выполните следующую команду в каталоге os/pc из командной строки Inferno:
disk/format -b /Inferno/386/pbs -df disk /Inferno/386/9load plan9.ini ipc.gz 

Результатом будет файл названный "disk" который будет содержать образ для записи на флоппи-диск или на загрузочный CDROM.

TODO: описать процесс создания CD