НАИМЕНОВАНИЕ
boot -
От включения до логина
ОПИСАНИЕ
При включении, компьютер читает
первый сектор загрузочного
устройства
в память и передает ему управление. Этот
загрузочный
код загружает /boot/boot,
Minix 3 Загрузочный Монтор. Монитор
загружает бинарники ядра из /boot/image,
или новый файл в
/boot/image если это
директория.
Теперь система Minix 3
запущена, различные задачи инициализируют
себя и управление переходит к последней
из них - init.
Init это родительский
процес для всех процесов Minix 3, он
отвечает
за запуск процесса логина на каждом
терминале, но
сначала он запускает
/etc/rc.
/etc/rc проверяет состояние
системы и запускает демоны. В
начале
устанавливает карту клавиатурных
раскладок в /et/keymap
если она присутствует,
потом вызывает readclock(8) для установки
времени системы по аппаратным часам.
Далее проверяются
файловые системы
если необходимо и монтируется /usr.
Теперь система готова к
многопользовательскому запуску, /etc/rc
вызывает /usr/etc/rc который очищает /tmp,
/usr/tmp и сбрасывает
цикличные логфайлы
созданные /usr/etc/daily, запускает update(8)
и
cron(8) демоны, и инициализирует сетевые
сервисы. /etc/rc в
конце запускает
/usr/local/etc.
Init читает /etc/ttytab и зфпускает
getty(8) для всех доступных
терминалов,
разрешая пользователям логиниться на
них.
ОПЦИИ
bootopts=-s
Значение
переменной загрузчика bootopts передается
в
/etc/rc. Если оно содержит -s, то система
будет запущена
в режиме одного
пользователя. (Заметим, что как правило,
используется boot -s вместо установки
bootops)
bootopts=-a
Этот флаг сообщает
что /etc/fstab должен быть проигнорирован.
Система спросит какое устройство
должно быть использовано
как /usr. Это
также может быть использовано когда
корневое устройство не прописано в
/etc/fstab.
bootopts=-f
Принудительный
запуск проверки файловой системы, даже
если система
была завершена корректно.
(Выполняйте это почаще чтобы быть
уверенным
в состоянии файловой
системы.)
servers=program[,program...]
Имена
специальных серверов которые должны
быть запущены
в /usr/etc/rc. Установленный
параметр servers=inet
запустит TCP/IP сервер.
ЗАГРУЗОЧНОЕ ОКРУЖЕНИЕ
Многие
параметры драйверов в ядре контролируются
установками
в окуружении загрузчика
передаваемыми в /etc/rc, такими как
например
bootopts. Значения этих параметров, как
правило
разделены двоеточием или
запятой. DPETH0 = 300:10 говорит
сетевому
драйверу DP использовать 0x300 порт
ввода/вывода и
10й запрос прерывания,
и дуфолтовый адрес в памяти (0xD0000,
значение может быть опущено) для
первого ethernet адаптера.
(Заметим что
IRQ 2 перенаправляется на IRQ 9 на AT и PS/2,
так что используйте 9 если устройство
переключено на 2)
Переменные которые
определены для загрузочного монитора
и
ядра описаны в minitor(8).
Variables that
are special to both the monitor and the ker-
nel are described in
monitor(8). В этом разделе перечислены
дополнительные переменные:
cn =
at | bios | esdi | xt | aha1540 | dosfile | fatfile
Указывает
драйвер который будет использоваться
в качестве
контроллера n, например
IBM/AT (класический AT или IDE),
BIOS (любой
диск), ESDI (из PS/2), IBM/XT, Adaptec 154x,
MINIX 3 под
DOS "файл как диск", файловая система
FAT
"файл как диск". По умолчанию
используется AT bus system,
биос на PS/2 и
XTs, и DOS файл когда запущено под DOS.
Большинство драйверов присутствуют
в ядре из дистрибутива,
но возможно
потребуется изменить /usr/include/minix/config.h.
Для этого смотрите controller(4). (XT всегда
должны
использовать драйвер BIOS а не
XT, потому что вызовы BIOS
проще. XT драйвер
может использоваться на машинах со
старыми
контроллерами.)
DPETHn = on |
off
Включает или отключает сетевую
карту. Драйвер по умолчанию
использует
"sink" режим для всех плат. Режим
"sink"
позволяет использовать
драйвер без установки сетевой платы.
Драйвер будет использовать /dev/null для
этого устройства.
Т.е ничего передаваться
не будет. Если плата будет включена,
то
драйвер будет использовать ее для
передачи пакетов.
Если плата будет
отключена, то ему это не удастся.
DPETHn
= I/O-addr:irq:mem_addr:mem_size (WD80x3)
DPETHn = I/O-addr:irq:0
(NE2000)
DPETHn = I/O-addr:irq:flags (3c503)
Устанавливает
адреса портов ввода/вывода, прерывания
адреса памяти, размер памяти, или
флаги n сетевой карты
и включает ее.
По умолчанию она сконфигурена как
280:3:D0000 и 300:5:C8000 с размером памяти
установленным
в 2000, 4000, или 8000 в
зависимости от типа платы. Для
Western
Digital карт, IRQ должно быть таким какое
поддерживает карта, но адрес памяти
может задаваться
в драйвере. SMC EtherEZ
и WD8013 имеют только 8к памяти.
Это
запутывает драйвер, так что вам нужно
четко определить
размер памяти как
2000. Адрес и размер памяти не имеют
значения для плат Novell Ethernet, но адрес
может быть
прамо установлен в 0 дабы
указать что используется именно
Novell
Ethernet плата. Для 3Com 3c503 третий параметр
флаг, в нижнем разряде указывающий
что встроеный трансивер
должен быть
использован если 0 (простой ethernet), или
что необходимо использовать внешний
тнасивер на AUI порту
если установлено
1. IRQ устанавливается програмно и должен
быть 2 (XT), 3, 4, 5, Или 9 (AT). Адрес памяти
устанавливается
на плате джамперами.
Драйвер не поддерживает I/O режим
для
3c503. (Обратите внимание на небольшие
различия
между типами плат. Для
8003/8013 и NE1000/NE2000 IRQ
фиксировано и меняется
адрес памяти, для 3c503 наоборот,
фдрес
фиксирован а меняется прерывание, но
оно не должно
быть указанным
(беспорядочным)).
DPETHn_EA = e0:e1:e2:e3:e4:e5
Устанавливает аддрес платы номер n.
Как правило аддрес
берется у сетевой
платы, и эта опция используется лишь
в
исключительных случаях.
AHA0 =
I/O-addr:bus-on:bus-off:tr-speed
Настраивает Adaptec
154xA SCSI host адаптер на использование
переданного адреса порта ввода/вывода,
Bus-on времени (decimal),
Bus-off времени (decimal)
и скорости передаи (hex).
По умолчанию
это 330:15:1:00. По умолчанию скорость
передачи равна 5.0 Mb/s (code 00) игнорируя
установки
джамперов.
aha1540-dn =
sleep-time:target,lun
Програмирует SCSI диск n на
переданную цель и логически
номер
раздела. target и lun для tape или другого SCSI
устройства могут быть изменены в
aha1540-dn переменной.
Так для tape устройства
c0t7 может быть установлена target
4, lun 1
как aha1540-d7=:4,1. (sleep-time пресутсвует
но
игнорируется для совместимости с
Minix-vmd.)
dosfile-dn = file
Сообщает драйверу
виртуального диска DOS n что необходимо
использовать для диска переданый
файл. file это имя DOS
файла который должен
быть доступен загрузочному монитору.
fatfile-dn = driver:minor:file
Сообщает драйверу
виртуального диска FAT n что необходимо
использовать для диска переданый
файл. Параметр driver
это имя драйвера,
а minor номер раздела где файл должен
быть
обнаружен. Смотрите controller(4) чтобы
определить
имена и номера. Аргумент
file Это путь к файлу от корневого
устройства. Имя драйвера также должно
быть привязано к
переменной cn чтобы
драйвер виртуального диска FAT мог
его
найти. Удобный способ определить номер
раздела, запустить
ls -l на устройстве
где находиться файл. Для примера, самая
распространненая ситуация, когда
файл находиться на
первом разделе
первого диска на ATA (IDE) контроллере:
c0
= fatfile
c1 = at
fatfile-d0 = at:1:/minix/minix.mnx
TZ
= GMT0
Определяет временную зону в
которой работают аппаратные
чаы.
Readclock использует это для корректировки
времени
системы. Временные зоны
системы определяются в /etc/profile.
Эта
переменная загрузчика обычно не
установлена, лишь не многие
UNIX которые
не заботятся о времени Windows и не хотят
менять его
на летнее и зимнее, используют
эту опцию. (Установите
время Windows во
временную зону Casablanca для примера.)
НАСТРОЙКА TCP/IP
Для
использования TCP/IP вы должны запустить
inet сервер,
и если вы работаете автономно,
вы должны включить сетевой
драйвер.
Смотрите переменные загрузчика servers и
DPETHn.
Драйвер поддерживает следующие
сетевые карты: Western Digital
8003, Western Digital
8013, SMC Elite Ultra 16, Novell
NE1000 and NE2000, 3Com
Etherlink II (3c503). Многие новые
модели
WD8013, теперь под маркой SMC, также могут
успешно
работать. Многие PCI платы
совместимые с NE2000 и использующие
чипсет
Realtek 80 также поддерживаются. Убедитесь
что это
10 мегабитная карта и она имеет
маркировку на чипсете "RTL 8029".
Вероятно, вы можете использовать
TCP/IP в одной из трех ситуаций:
Автономно,
без подключения к сети.
В маленькой
сети без "больших" узлов.
Вы
подключены к большой сети с адресными
и именными серверами.
В каждой из
ситуаций вам понадобиться разный набор
конфигурационных
файлов.
Автономно
Все что вам нужно это имя и IP адрес.
Предположим что имя равно
"flotsam"
а IP адрес 192.168.0.1 из диапазона частной
сети,
тогда вот что будет в /etc/hosts:
192.168.0.1 flotsam
А это в /etc/dhcp.conf:
host 192.168.0.0/24 {};
interface ip0 flotsam;
Маленькая сеть
Сеть требует
наличия сетевого драйвера. Вы можете
включить один
в <minix/config.h> и вы
должны сообщить inet какой драйвер
будет
использован, сделать это можно в
/etc/inet.conf например так:
eth0 DP8390 0 {
default; };
Второе слово (DP8390) должно
быть именем сетевого драйвера который
вы включаете. Вы можете просмотреть
драйвер в резултатах ps ax.
Смотрите
также inet(8).
В маленьких сетях может
неиспользоваться DHCP сервер. Поэтому
вам необходимо определить сетевой
адрес для вашей машины и
имена всех
узлов сети. Предположим, ваша машина
будет называться
"flotsam", а
какой-нибудь другой узел в сети "jetsam",
а
сеть будет использоваться
192.168.0.0/24. Тогда файл /etc/hosts
будет
выглядеть так:
192.168.0.1 flotsam
192.168.0.2
jetsam
И /etc/dhcp.conf так:
host 192.168.0.0/24
{};
client 0:1:1b:a:68:ce flotsam;
Используйте
hostaddr -e чтобы посмотреть какой адрес
у
вашей сетевой карты. (Адрес приведен
для примера.)
Узел должен содержать
в /etc/hosts имена всех узлов вашей
небольшой
сети. В DHCP конфигурации необходимо
только имя
самой системы, но может
быть полезно внести и некоторые
имена
узлов.
Если одна из машин включена
постоянно, вы можете настроить
на ней
DHCP сервер. Тогда другим машинам не
потрубуются
косты и DHCP файлы. Если
"flotsam" является сервером, то
его
/etc/dhcp.conf выглядит так:
host 192.168.0.0/24 {
DNSserver flotsam;
};
client 0:1:1b:a:68:ce flotsam {
option server; };
client 0:0:c0:3a:12:10 jetsam;
Большая
сеть
В сетях с централизованым
администрированием, Ip адрес и имена
узлов раздаются через DHCP сервер. Вам
не нужно никаких конфигурационных
файлов. Если вы хатите большего от
своей машины, например
чтобы она
работала маршрутизатором, смотрите
inet(8) для
получения дополнительной
информации.
Упрощенные инструменты
настройки
Демоны dhcpd и nonamed часть
комплекса небольших программ,
которые
пытаются автоматически получить
информацию о своем
сетевом окружени.
Но как неудивительно, есть другие утилиты
позволяющие провести эту настройку
вручную. Демон dhcp например
может быть
заменен:
ifconfig -h host-IP-address -n netmask
add_route -g gateway-IP-address
для установки
IP адреса и сетевой маски машины. Заметьте,
что
вы можете делать так только если
необходимо установить статический
ip
адрес. Удалите /usr/adm/dhcp.cache если демон
DHCP был перед
этим запущен.
Демон
имен, nonamed, может быть заменен на запись
в
/etc/resolv.conf которая определяет внешний
сервер имен:
nameserver nameserver-IP-address
ifconfig и add_route вызовы можно поместить
в файл /etc/rc.net.
Проверте /usr/etc/rc чтобы
посмотреть как /etc/rc.net может быть
использован вместо стандартных
демонов. Обратите внимание что
/etc/rc.net
подключается, значит вы можете использовать
некоторые
переменные и функци
используемые в /usr/etc/rc. Эти изменения
отменят автоматическую конфигурацию
TCP/IP. Убедитесь, что все
Ip адреса введены
верно, и адрес вашей машины уникальный.
(Ошибочный адрес главного сервера
будет заставлять все остальные машины
видеть вашу машину, и может заставлять
пользователей видеть вашу машину)
ФАЙЛЫ
/boot MINIX 3 Загрузочный
Монитор.
/minix Образ ядра, либо
директория содержащая оный.
/etc/rc
Базовая система инициализации.
/usr/etc/rc Завершающая система
инициализации.
/etc/rc.net Специальная
сетевая инициализация.
/usr/local/etc/rc
Локальная инициализация.
/etc/hosts
Преобразование имен в ip адреса.
/etc/dhcp.conf Сетевая инициализация.
/etc/resolv.conf Настройка преобразования
имен.
СМОТРИТЕ ТАКЖЕ
monitor(8),
init(8), inet(8), loadkeys(8), readclock(8),
fsck(1), fstab(5),
update(8), cron(8), ttytab(5), getty(8),
hostaddr(1),
ifconfig(8), dhcpd(8), nonamed(8), tcpd(8),
hosts(5), ethers(5),
resolv.conf(5), inet(8).
ДИАГНОСТИКА
Проверка Файловых Систем.
Если
система упала, то будет вызван fsck для
корневой
файловой системы и /usr. Это
делается для исправления
корневой
файловой системы при перезагрузке.
Готово имя устройства для монтирования
как /usr: /dev/
Если имя устройство на
котором находиться /usr не
определено
в /etc/fstab вы можете воспользоваться
опцией -a. И определить устройство,
например fd0.
Не удается получить IP
адрес после 10 секунд.
TCP/IP неверно
сконфигурирован. Демон DHCP может не
работать
потому что адрес машины
неизвестен DHCP серверу,
настройка DHCP
неверная, или DHCP сервер недоступен.
Сообщите об этом вашему Сетевому
Администратору или
настройте dhcp.conf
и хостфайл.
1.2.3.4 login:
Если вы видете
IP адрес перед приглашением логина, то
системе неудалось перевести адрес в
имя. ПОмочь может
разговор с вашим
системным администратором или настройка
хостфайла
ПРИМЕЧАНИЕ
10.0.0.0/8,
172.16.0.0/12, и 192.168.0.0/16 сети могут быть
использованы для частных сетей. (Они
также называются CIDR
и состоят из ip
адреса компьютера и номера сети. Так
172.16.0.0/12
включает все адреса с 172.16.0.0
по 172.31.255.255.) RFC-1597
расскажет чем хороши
частные сети, а RFC-1627 чем они плохи.
ОШИБКИ
Возможны бесрочные
зависания, если адрес портов ввода/вывода
или
прерывание неверные. Драйвер
может сообщать об адресах и прерываниях,
но это не означает что все что он
сообщает правда, просто он может
быть
настроен таким образом. Очень сложно
автоматически определять
оборудование,
и Minix 3 даже не пытается это делать.
АВТОР
Kees J. Bot <kjb@cs.vu.nl>
Перевод Андрей Л. Унгер <cobaltsys@nm.ru>