ФЭНДОМ



Как получить доступ к репозиторию исходных кодов Plan9 (plan9.bell-labs.com/sources), используя Inferno?Править

Просто выполните команды:

mkdir /n/sources
mount -A net!sources.cs.bell-labs.com!9fs /n/sources

и все исходные тексты будут доступны в /n/sources

Как получить доступ к локальному диску/каталогу отличному от C:\Inferno (/usr/local/inferno)?Править

По умолчанию Inferno формирует рабочее окружение разрешая доступ только в тот каталог, куда была произведена установка. Связывание драйвера хост файловой системы '#U' с произвольным каталогом Inferno является решением.

для окружения Windows сделаем видимым диск C: и примонтируем к /n/local :

bind '#Uc:' /n/local

для среды Unix:

bind '#U*/home/username' /n/local

Примечание: Если в среде Windows вы получаете ошибку при попытке монтировании, скорее всего версия Inferno которой вы пользуетесь устарела. Попробуйте получить более свежую версию эмулятора emu этой страничке [1]. После загрузки переместите полученный emu.exe в каталог с установленной ОС C:\Inferno\Nt\386\bin\

Как сделать доступным буфер обмена хост-ОС?Править

Выполните в командной строке или поместите в файл /usr/username/namespace или в /lib/sh/profile

bind -b '#^' /chan

Под Unix в графическом режиме Inferno ведет себя странно, не откликается на клавиатуру, виснетПравить

Да и не только Inferno, как сообщает гугль. Многие пользователи обновляя библиотеки X'ов столкнулись с тем, что их приложений работавшие до той поры, стали рушиться. Выход прост - скачать заведомо рабочие библиотеки, откомпилировать и загружать их перед стартом Inferno через LD_PRELOAD. Сообщество VMWare[2] поделилось скриптом автоматизирующим этот процесс.

Ваш скрипт запуска Inferno должен выглядеть приблизительно так:

#!/bin/sh

export LD_PRELOAD=/home/username/Inferno/libX11.so
/usr/local/inferno/Linux/386/bin/emu -g1024x768 -c0 -r /usr/local/inferno

Содержимое каталога /home/username/Inferno/:

username[Inferno]$ ls -l
итого 988
-rwxr-xr-x 1 username users     136 Мар 26 08:58 startinferno.sh
lrwxrwxrwx 1 username users      15 Сен 27  2008 libX11.so -> libX11.so.6.2.0
lrwxrwxrwx 1 username users      15 Сен 27  2008 libX11.so.6 -> libX11.so.6.2.0
-rwxr-xr-x 1 username users 1000316 Сен 27  2008 libX11.so.6.2.0

Вместо подмены библиотек, можно установить переменную окружения:

 export LIBXCB_ALLOW_SLOPPY_LOCK=true

В Windows я не могу скопировать файлы, имена которых содержат пробелПравить

В Inferno для корректной обработки имен файлов с пробелами или различными символами национальных алфавитов (рунами) вы можете воспользоваться файловым сервисом trfs(4). Для этого вам надо предварительно смонтированную файловую систему, например так:

bind '#Ud:\Отчеты' /n/reports_brokennames

а затем транслировать /n/reports_brokennames в новую точку монтирования, содержащую корректные имена фалов:

trfs /n/reports_brokennames  /n/reports

Помните! Каталоги /n/reports_brokennames /n/reports должны существовать перед их использованием.

Почему в выводе ls некоторые каталоги повторяются несколько раз?Править

Это результат работы системного вызова [[sys->bind(2)]]. Прочитайте sys-intro(2) если хотите глубже разобраться в вопросе.

Где переменная PATH?Править

В Inferno не используется переменная PATH, все исполняемые модули находятся в каталоге /dis. Если вы хотите, чтобы поиск исполняемых файлов происходил и в других каталогах, просто подключите их к /dis используя команду bind:

bind -a /usr/vasya/dis /dis
Обратите внимание на то, что подкаталоги подключаемого каталога не будут видны в /dis, поэтому вам придется подключать их по отдельности

Как получить доступ к файлам удаленного сервиса из Linux?Править

Проект v9fs это реализация протокола удаленной файловой системы 9P для среды Unix. С недавних пор он официально включен в ядро Linux, так что нет необходимости в установке дополнительного программного обеспечения. На удаленной машине с установленной ОС Inferno экспортируйте файловую систему командой:

; styxlisten -A tcp!*!9fs export '#U*'

Опция -A определяет экспортирование без аутентификации. Число 564 - это номер порта (вы можете выбрать больший номер порта, если вы не привилегированный пользователь). Строка '#U*' определяет экспортирование от корня основной файловой системы. Вы можете указать произвольный каталог для экспорта, просто добавив путь к нему: '#U*'/tmp должена экспортировать только каталог /tmp. На клиентской машине вы можете теперь примонтировать удаленную файловую систему командой:

mount -t 9p 10.10.1.2 /mnt/9

Как вызвать "родную" команду на удаленной машине? Править

Команда os(1) в гостевом варианте Inferno запускает приложения родной операционной системы. Например, если в качестве родной системы выступает Linux/Unix наберите: os uname. Вы увидите вывод от команды uname основной операционной системы. Мы можем вызывать эти родные команды на разных машинах:

На удаленной машине

Эта машина будет выполнять родную программу. Предположим что на ней запущена SunOS.

  1. Возьмите простую программу для удаленной машины. Хорошим примером будет простой шелл-скрипт. Создадим файл и назовем его dateloop.sh со следующим содержанием:
#!/bin/bash

for i in 1 2 3 4 5 6 7 8 9 10; do
    echo "Hello from `uname`, `date`"
    sleep 1
done
  1. Дадим файлу права на исполнение (chmod a+x dateloop.sh). Проверим, что программа работает правильно (вы должны увидеть 10 строчек, выводящихся по одной за секунду, каждая из который выглядит следующим образом: Hello from SunOS, Tue Apr 20 09:34:07 BST 2004).
  2. Запустите Inferno и наберите команду svc/net для запуска сетевых сервисов.
  3. Запустите "bind -a '#C' /". Эта команда свяжет командную строку основной ОС с каталогом /cmd (наберите lc / и вы должны увидеть, что появился каталог /cmd ).
  4. Запустите os /full/path/to/dateloop.sh. Проверьте что вы получили такой же вывод что и раньше.

На локальной машине

Предположим что на этой машине запущен Linux.

  1. Запустите Inferno и стартуйте сетевые сервисы командой svc/net.
  2. Выполните "bind -a '#C' /".
  3. Запустите os uname. Удостоверьтесь, что получили ожидаемый результат (строка "Linux").
  4. Теперь примонтируем полностью удаленную файловую систему. Выполните mount machine.somewhere.com /n/remote.

Это эквивалентно запуску mount tcp!machine.somewhere.com!styx /n/remote, где styx это это псевдоним номера порта, на котором будет обслуживаться все пространство имен (по умолчанию это порт 6666: смотри /lib/ndb/inferno). Этот слушающий процесс запускается при старте сетевых сервисов командой svc/net (вам может понадобится аутентифицировать это соединение. За подробностями обращайтесь к страницам руководства man bind(1), svc).

  1. Убедитесь, что монтирование прошло успешно: lc /n/remote. Вы должны увидеть все удаленное пространство имен.
  2. Смонтируем удаленный каталог /cmd к нашему существующему каталогу: bind -b /n/remote/cmd /cmd. Обратите внимание на использование флага -b, а не -a. Это важно (смотрите страницу справочного руководства по команде bind).
  3. Запустите os /full/path/to/dateloop.sh снова. Вы должны увидеть вывод команды dateloop.sh удаленной машины как и раньше.

Вы можете следовать этим шагам для запуска любого родного процесса на удаленной машине. Помните, что вы должны указать полный путь к исполняемым файлам на удаленной машине, если он не установлен в переменной $PATH основной ОС.


Могу ли я удаленно работать на машине с запущенной ОС Inferno? Править

  • 1. Способ доставшийся в наследство от Plan 9 (подсмотрено в документе "EineUbersichtuber das Betriebssystem Inferno" Susanne Wenger). Монтируем ресурсы удаленной машины, и связываем локальные клавиатуру, дисплей и мышь. (Не работает в 4-й редакции)
mount 182.1.1.3 /n/remote
bind /n/remote/dev/keyboard /dev/keboard
bind /n/remote/dev/draw /dev/draw
bind /n/remote/dev/pointer /dev/pointer
  • 2. Способ подключиться штатными средствами
wm/dmview remoteserver

При таком способе, на удаленной машине должен быть запущен сервер wm/dmwm. Во время подключения на экране удаленной машины появится запрос о принятии или отклонении подключения.

  • 3. Использование аналога drawterm

Способ предложенный Caerwyn B Jones в ветке drawterm equivalent in inferno

% mount {wmexport} /mnt/wm
% cpu tcp!board
; wmimport -w /n/client/mnt/wm wm/wm&

Чуть более развернутое объяснение от Roger Peppé в ветке Inferno as network window system

И наконец, на странице проекта inferno-os прикреплены два файла cpug и rcmdg реализующие идею

cpug wm/wm
# получим рабочее окружение wm/wm запущенное на remoteserver
# будем управлять его ресурсами, как если бы мы находились непосредственно там

Активация терминала Inferno на телефоне Philips IS2630 Править

Наберите на клавиатуре:

314159265359##**

Появится окно с четырьмя пунктами:

  1. OutOfBox и сброс
  2. Вызвать Inferno Shell
  3. Прочитать данные с Flash Config
  4. Вернуться

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на ФЭНДОМЕ

Случайная вики