Inferno OS Wiki
Исследовать
Заглавная
Все страницы
Сообщество
Интерактивные карты
Блоги участников
Статьи
Недавно отредактированные
Inferno-owen Overview
Inferno-Programmers Guide Chapter 03
Безопасность в Plan 9
Plan9port Запуск rio
Ссылки
Inferno OS Wiki
Plan9Tutorial
Plan9
Plan9
Безопасность в Plan 9
Plan 9 от Bell Labs
Использование пространства имен в Plan 9
Сетевая организация в Plan 9
Прикладная поддержка новой архитектуры в Plan 9
Лексические имена файлов в Plan 9 или правильная точка-точка
Man
Sh(1)
Fs(1)
Dmvm(1)
Zeros(1)
Cpu(1)
Gettar(1)
Runas(1)
Сообщество
Последние записи в блоге
Справка
FANDOM
Игры
Кино
ТВ
Вики
Исследуйте вики
Вики Сообщества
Создать вики
Нет учётной записи?
Регистрация
Войти
Войти
Регистрация
Inferno OS Wiki
150
страниц
Исследовать
Заглавная
Все страницы
Сообщество
Интерактивные карты
Блоги участников
Статьи
Недавно отредактированные
Inferno-owen Overview
Inferno-Programmers Guide Chapter 03
Безопасность в Plan 9
Plan9port Запуск rio
Ссылки
Inferno OS Wiki
Plan9Tutorial
Plan9
Plan9
Безопасность в Plan 9
Plan 9 от Bell Labs
Использование пространства имен в Plan 9
Сетевая организация в Plan 9
Прикладная поддержка новой архитектуры в Plan 9
Лексические имена файлов в Plan 9 или правильная точка-точка
Man
Sh(1)
Fs(1)
Dmvm(1)
Zeros(1)
Cpu(1)
Gettar(1)
Runas(1)
Сообщество
Последние записи в блоге
Справка
Редактирование:
Загрузочный каталог
Вернуться на страницу
Править
Править код
История
Обсуждение (0)
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
<p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">В середине декабря 2002 года в систему была добавлена новая характеристика, заменяющая устаревший файл загрузки #//boot на загрузочный каталог и, взамен двоичного файла, требующего компиляции, появился сценарий.</p> <p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">В конфигурационном файле ядра появился новый раздел под названием «bootdir», который содержит список файлов, заменяющих #//boot. В каталоге #/больше нет двоичных файлов.</p> <p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">Типичный раздел bootdir выглядит примерно вот так:</p> bootdir bootpcdisk.out boot /386/bin/ip/ipconfig /386/bin/auth/factotum /386/bin/disk/kfs /386/bin/cfs <p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">который сообщает, что каталог /boot содержит четыре файла: boot, ipconfig, factotum, kfs и cfs, скопированные из указанных источников.</p> <p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">Все ядра имеют специальный файл boot$CONF.out, указывающий на загрузочные файлы в /boot.</p> <p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">Теперь, когда все находится в /boot, для всех ядер был изменен initcode; /boot/boot изменен для выполнения /boot/ipconfig (взамен /ipconfig), и т.п. Наконец, изменениям подвергся auth_getkey, теперь для работы с любым типом ядра он сперва выполняет поиск /factotum, а затем /boot/factotum.</p> <p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">Загрузочный файл /386/bin/ip/ipconfig переключается на _386_bin_ip_ipconfig.root.s, а затем _386_bin_ip_ipconfig.root.8. Немного уродливое имя, ноmk нормально обрабатывает его. Одно неудачное последствие большого имени — это то, что _386_bin_auth_factotum.root.s является слишком длинным для соединения с текущими файловыми серверами. Вы конечно можете использовать сервер lnfs для работы, но я бы не стал. Для устранения зависимости от''[http://web.archive.org/web/20050218073312/http://plan9.bell-labs.com/magic/man2html/4/lnfs lnfs]''[http://web.archive.org/web/20050218073312/http://plan9.bell-labs.com/magic/man2html/4/lnfs (4)] при постройке ядер в файл portmkfile было добавлено новое правило, которое копирует factotum и ipconfig в factotum.hack и ipconfig.hack. После этого раздел bootdir выглядит примерно так:</p> bootdir bootpcdisk.out boot ipconfig.hack ipconfig factotum.hack factotum /386/bin/disk/kfs /386/bin/cfs <p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">грустно (!), но проблема устраняется при использовании именно длинных имен файлов.</p> <p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">Pc initcode также был изменен, поскольку до этого он обычно делал:</p> exec("/boot", ["boot", 0]); <p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">на ассемблере (pc/initcode.s), сейчас он делает:</p> open("#c/cons", OREAD); open("#c/cons", OWRITE); open("#c/cons", OWRITE); bind("#c", "/dev", MAFTER); bind("#ec", "/env", MAFTER); bind("#e", "/env", MCREATE|MAFTER); bind("#s", "/srv", MREPL|MCREATE); execl("/boot/boot", "/boot/boot", 0); <p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">на С (port/initcode.c). Указатель устанавливает достаточное пространство имен, когда /boot/boot может быть сценарием оболочки. В конечном счете другие архитектуры также должны изменятся.</p> <p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">Другим примером является ядро под названием pcext, построенное мною однажды ночью. Оно использует rx и trampoline для соединения через шлюз машины Plan 9 к корневому файловому серверу. В нем используется такой bootdir:</p> bootdir bootext boot /386/bin/rc /rc/lib/rcmain /386/bin/bind /386/bin/cat /386/bin/cp /386/bin/echo /386/bin/mount /386/bin/sleep factotum.hack factotum /386/bin/ip/ipconfig /386/bin/cfs /386/bin/aux/srvthru <p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">(также не требует lnfs для постройки).</p> <p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">Srvthru — очевидная в этих случаях программа: она подключается к rx, производит аутентификацию, запускает trampoline на настоящем файловом сервере, а затем подключает cfs к соединению.</p> <p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">Указателем является сценарий оболочки bootext, существенно упрощающий работу:</p> #!/boot/rc -m /boot/rcmain cd /boot cp '#r/rtc' '#c/time' bind -a /boot /bin bind -a '#I' /net bind -a '#l0' /net bind -a '#S' /dev bind '#p' /proc bind '#d' /fd bind -a /boot / ipconfig echo 'authdom=cs.bell-labs.com auth=204.178.31.3' >>/net/ndb factotum -sfactotum -u -a 204.178.31.3 cargs=() if(~ $#cfs 1 && ! ~ $cfs off) cargs=(-c $cfs) srvthru $cargs tcp!204.178.31.2!17009 il!emelie!9fs boot emelie mount -c /srv/boot /root bind -ac /root / bind -c /root/mnt /mnt mount -a '#s/factotum' /mnt rootdir=/root rootspec='' /386/init -t /boot/rc -m/boot/rcmain -i # in case init fails <p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">Он заботится обо всем, что традиционно делает /boot, используя srvthru как путь установки /srv/boot (а также /srv/emelie).</p> <p style="color:rgb(0,0,0);font-family:'TimesNewRoman';font-size:medium;font-weight:normal;line-height:normal;">[http://web.archive.org/web/20050218073312/http://ask.km.ru/copyright.html Copyright] © 2003 Перевод Андрей С. Кухар. Последняя модификация 22.08.2003</p> [[Категория:Plan9]]
Описание изменений:
Обратите внимание, что все правки на Inferno OS Wiki публикуются по лицензии CC-BY-SA
Отменить
Справка по редактированию
(в новом окне)
Follow on IG
TikTok
Join Fan Lab