НАИМЕНОВАНИЕ

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>







Вебсайт kalambus.com - читай полезные советы для дома в удобном формате. . Строительство домов из бруса . Всё о сварке