&dDВведение в системное администрирование Unix&d@

                                (Версия 1.17. июнь 1998)



(C) Copyright Максим Евгеньевич Мошков, 1993-1998

================   КООРДИНАТЫ   ===============================

Максим Евгеньевич Мошков
        НИИ Системных Исследований РАН,
        Инф.сектор Отделения Математики Президиума РАН
            956-2155, 274-6329, 938-1902
            moshkow@ipsun.ras.ru
            http://www.ras.ru/~moshkow/
.

        &dDВВЕДЕНИЕ В СИСТЕМНОЕ АДМИНИСТРИРОВАНИЕ UNIX&d@

        &dDОГЛАВЛЕНИЕ&d@

 Оглавление                                             ()     

 Включение Unix-компьютера                              ()     
 Регистрация нового пользователя                        ()     
 Начало работы в системе                                ()     
 Несколько простейших команд Unix                       ()     

 Редактор VI для начинающих                             ()     
 Какие бывают Unix                                      ()     
 Команда find, grep                                     ()     
 Команда cpio, tar и архивирование                      ()     

 Загрузка операционой системы, процесс init             ()     
 Базовые принципы системы Unix                          ()     
 Специальные файлы                                      ()     

 Диски, файловые системы                                ()     
 Выделение разделов под Swaping                         ()     
 Инсталляция системы                                    ()     
 Пакеты: установка дополнительного софта                ()     
 Несколько сетевых команд Unix (telnet, ftp, mailx...)  ()     

 Hardware локальных сетей: Ethernet, Token ring, FDDI   ()     
 Hardware глобальных сетей                              ()     
 Маршрутизация TCP/IP      (картинка)                   ()     
 Сеть TCP/IP                                            ()     
 TCP/IP для бедных                                      ()     
 Сетевая файловая система NFS                           ()     
 NFS: конфигурирование авто-монтировщика                ()     
 Конфигурирование DNS                                   ()     
 Система телефонной пересылки файлов UUCP               ()     

 Система печати LP                                      ()     

 Графический интерфейс Unix - X Windows                 ()     

        &dDПриложения&d@

 Редактор VI                                            ()     
 Как подключить русские фонты к X Windows               ()     
 Что где лежит в SVR4                                   ()     
 Конфигурирование DNS. Пример standalone конфигурации   ()     
 Книжки про Unix                                        ()     
 Несколько управляющих команд модема                    ()     
 Конфигурирование сервера HTTPD, формат HTML            ()     
 Ремонт разрушенных файловых систем                     ()     
 Истории администратора Unix, или ГРАБЛИ                ()     
.
        &dDВключение Unix-компьютера&d@

     Включите системный дисплей или (при отсутствии такового)
консольный  терминал,  включите  питание  на  системном  блоке.
Загрузка  операционной системы начнется автоматически. Осталось
немного  подождать,  пока  загрузится  операционная  система  и
отработают  все положенные утилиты инициализации системы, и вот
на консоли появляется приглашение

Console login:

     а на всех остальных терминалах - просто:

Login:

     Введите  свой  входной  login  и  пароль. Если таковых не
существует, войдите под login'ом root -  "суперпользователь"  -
изначально он не имеет пароля.

Console login: root

        &dDSUN: Перехват загрузки в ручной режим&d@

      Процесс нормальной работы Sun SPARCstation в любой момент
времени можно перехватить и передать управление на  boot-prom.
Для этого на системной клавиатуре нажмите STOP+A. (STOP - левая
верхняя клавиша на левой дополнительной клавиатуре).   Появится
boot-prom prompt Ok:

 Ok _

     Теперь  можно  вводить команды для boot-монитора. Пожалуй,
наиболее популярными командами являются:

  go         - выйти из монитора, вернуться в нормальный режим
  help
  boot [параметры] - загрузиться
  eject      - вытолкнуть "застрявший" флоппи-диск или CD-ROM
  probe-scsi - опросить опознанные SCSI-устройства
               (после  этой  команды  возвращаться  к нормальной
               работе командой "GO" НЕЛЬЗЯ. Перезагрузитесь.)


     Если у вас "безголовый" Sun - сервер, то к нему в качестве
консоля подключается  алфавитно-цифровой  терминал.  Подключать
можно к любому последовательному порту - A или B. Sun,  заметив
отсутствие  системной  клавиатуры, опрашивает  все   порты   по
очереди  и,  обнаружив  на  одном  из  них терминал, делает его
консольным (со всеми вытекающими из этого последствиями).

     Чтобы  вызвать boot-монитор с алфавитного консоля, нажмите
на нем клавишу BREAK ( На терминале vt220 BREAK -  это  клавиша
F5).

        Выключать  алфавитно-цифровой  консоль  на  Sun-сервере
нельзя  -  при  этом  терминал  генерит  сигнал  BREAK,  и  Sun
переходит   в   останов  в  boot-мониторе.  Как  отключить  эту
интересную  особенность   безголовых   Sun-серверов,   мне   не
известно.
     На самом деле у этой проблемы существует аж три решения:
Одно из них - новый TTY-дравер "CONSULT-ZSBRK", который игнорирует BREAK.

        &dDHP 9000: Перехват загрузки в ручной режим&d@

     Процесс  нормальной  загрузки HP 9000 можно перехватить и
передать управление на boot-prom PDC (Processor Depended  code).
Для этого посмотрите на консоль в первые секунды загрузки - там
пишется клавиша, которую нужно нажать для перехвата. На рабочих
станциях  это  ESCAPE, на серверах - Ctrl-K (или Break, или еще
какая-нибудь)
      Появится PDC-prompt

BOOT-ADMIN>

     Теперь  можно  вводить команды для boot-монитора. Пожалуй,
наиболее популярными командами являются:

  help
  search           - найти загрузочные SCSI-устройства
  boot [параметры] - загрузиться
  secure on        - запрет перехвата начальной загрузки
                   (чтобы потом сделать secure off, придется
                   вынуть из компьютера диск и перезагрузиться)

     Если  у  вас  "безголовый"  сервер,  то  к нему в качестве
консоля подключается  алфавитно-цифровой  терминал.  Подключают
его к консольному порту.
.
        &dDРегистрация нового пользователя&d@

     Если  вам в руки попалась свежеустановленная машина, то на
ней  еще   не   зарегистрировано   никаких   пользователей   за
исключением     суперпользователя     "root"    -    системного
администратора. Пароля у него нет. Входите в него.
   В суперпользователя  можно превратиться. Для этого выполните
команду

    su     # Super User

   Каждый пользователь в  системе  Unix  предварительно  должен
быть  зарегистрирован.  Пользователю  полагается  иметь:  имя,
пароль,  номер  пользователя,  номер  группы,  к   которой   он
принадлежит,   домашний  каталог,  командный  интерпретатор.  У
пароля могут быть дополнительные  параметры  -  как  часто  его
можно менять, время действия и прочие секретные штучки.

Comment         Familiq Imya Otchestwo
logname         входное имя пользователя
passwd          пароль (пароль вводят дважды)
UID             User Identification Descriptor
GID             Group Identification Descriptor
$HOME           Домашний каталог
shell           Командный интерпретатор

        &dDБывают такие командные интерпретаторы&d@:

  /usr/local/bin/bash   Самый удобный
  /bin/ksh              Чуть похуже, но тоже ничего
  /usr/local/bin/tcsh   Удобный, но "неправильный" и медленный
  /bin/sh               Самый "правильный" и самый неудобный
  /bin/csh              "Неправильный" и чуть более удобный

/etc/passwd - Вся информация о пользователе хранится здесь.
/etc/shadow - Здесь хранятся закодированные пароли.
     Закодированные  пароли  могут  лежать  и  в других местах.
Зависит от вида Unix.

     В  любом  уважающем  себя  Unix имеется "головная" утилита
оператора (условно называемая sysadm) - диалоговая программа, с
менюшками   и   окошками   для  выполнения  насущных  задач  по
системному   администрированию.   В   том    числе    позволяет
регистрировать  новых  пользователей. Запускать ее может только
"суперпользователь" root. При запуске "sysadm"  может  спросить
тип  терминала,  на  котором  ему предстоит работать. Ответьте:
vt100

     Примечание.  В различных операционных системах эта утилита
может называться по-разному:

        admintool       Solaris 2
        adminsuite      Solaris 2.7
        sysadmsh        SCO UNIX 4
        scoadmin        SCO OpenServer 5
        smit, msmit     AIX
        sam             HP-UX
        control-panel   Linux RedHat
        sysadm          UnixWare, ISC, SVR4

        &dDКоманда регистрации нового пользователя&d@.

adduser                 Linux
useradd                 SunOS 4.1
vipw                    BSD/OS, FreeBSD

        &dDКак зарегистрировать нового пользователя "вручную"&d@.

1. Вставляем в /etc/passwd еще одну строчку:

moshkow:x:555:1:Maksim E. Moshkow:/home/moshkow:/bin/ksh

2. Приводим в соответствие файл /etc/shadow

 pwconv

3. Создаем пользовательский каталог

 mkdir /home/moshkow
 chown moshkow /home/moshkow

4. Задаем пароль новому пользователю

 passwd moshkow

5. Вот и все.
.
        &dDНачало работы в системе&d@

        &dDВход в себя&d@
     На экране терминала появится строка

        login:

     Введите  имя,  под  которым вы зарегистрированы в системе,
если нужно, пароль. Если Вы ошиблись при вводе  имени,  нажмите
CTRL+U, или  DEL, или  CTRL-D  (для  отмены), или несколько раз
нажмите на Return, потерпите немного и повторите ввод.
     На  экране появится приглашение командного интерпретатора.

        sunsite:~/$ _

     Чтобы  выйти  из системы, наберите команду exit или просто
нажмите Ctrl-D на пустой строчке.

        &dDПеременные окружения&d@.
     При   входе   в  систему  для  пользователя  автоматически
устанавливается   несколько   переменных    окружения.    Чтобы
посмотреть их значение, выполните команду env.

    env   # Распечатать проэкспортированные переменные окружения

LOGNAME=moshkow                  # имя пользователя
HOME=/home/moshkow               # его домашний каталог
SHELL=/bin/ksh                   # его командный интерпретатор
MAIL=/usr/mail/moshkow           # файл, в который складывается
                                 # приходящая ему почта
PS1=host1:$PWD/$                 # формат приглашения
PATH=:/usr/local/bin:/bin:/usr/bin:/usr/X11/bin:/usr/informix/bin:
           # список поиска, по которому ищутся выполнимые файлы
TERM=vt100                       # устанавливает тип терминала, на
                                 # котором работает пользователь

     Чтобы  задать  значение  переменной  окружения,  выполните
команду:

   Imya_Pereemennoj=znachenie   export Imya_Pereemennoj

например

   abc=Kalosha  export abc

просмотреть значение  переменной  можно  командой  echo в такой
форме:

   echo $abc

        &dDПользовательский профайл&d@

     Перед  входом  в  систему сперва выполняется общесистемный
профайл /etc/profile

     Затем  выполняется  пользовательский файл ".profile" (если
он есть) - в них можно  устанавливать  переменные  окружения  и
делать  установки  режимов терминала. Просмотреть установленные
переменные окружения можно командой env

##### Пример файла   .profile ##################################

       # Добавить к списку поиска каталоги с нужными программами
PATH=:$HOME/bin:$PATH:/usr/sbin:/usr/local/bin:/usr/informix/bin
       #    Разрешить редактирование командной строки в ksh
EDITOR=emacs
export PATH EDITOR
LC_CTYPE=iso_8859_1 export LC_CTYPE # русские буквы - "буквы"

        #       Характеристики терминала
        # Забой=BackSpace          СтеретьСтроку=Ctrl-U
        # ПрерватьПрограмму=Ctrl-C "Жестокое_прерывание"=Ctrl-|
stty erase "^h" echoe      kill "^u" quit "^|" intr "^c"
stty cs8 -parenb -istrip
        # 8-битные символы, noparity, не  усекать  8-й  бит
        # при вводе

case "$0" in    # В зависимости от командного интерпретатора
*ksh)                   #       В Korn Shellе
                        #       Редактироваться стрелочками
        alias __A=`echo "\020"`         # ^P = восьмеричный 020
        alias __B=`echo "\016"`         # ^N
        alias __C=`echo "\006"`         # ^F
        alias __D=`echo "\002"`         # ^B
        # В приглашение ставить текущий pwd
        PS1=$LOGNAME@`uname -n`:'$PWD/$ '            export PS1
        ;;
*bash)          # В bash'е в приглашение ставить host:pwd
        PS1='\h:\w/\$ '                              export PS1
        ulimit -Sc 0 # чтоб программы core не роняла
        ;;
*sh)    # для posix-shell и HP-UX
        PATH=$PATH:/usr/sbin
        PS1=$LOGNAME@`uname -n`:'$PWD/$ '
        HISTFILE=$HOME/.sh_history
        ENV=$HOME/.kshrc
        export PATH ENV HISTFILE PS1
# и не забыть в файл .kshrc вписать      set -o emacs
        ;;
esac
#   обратите внимание:   в некоторых местах ПРОСТАЯ кавычка _'_
#   а в других - ОБРАТНАЯ  _`_ - будьте внимательны, это важно.

        &dDКлавиши для редактирования командной строки&d@
     Если  вы  работаете  в командном интерпретаторе Korn-Shell
/bin/ksh, и у вас установлена переменная EDITOR=emacs,   то  вы
сможете  редактировать  командную  строку  с  помощью стрелок и
Ctrl-клавиш:

^P / ^N   PREVIOUS / NEXT         команда
^F / ^B   FORWARD / BACK          на позицию
^A / ^E   в НАЧАЛО / КОНЕЦ        строки
^D / ^K   Удалить СИМВОЛ / Удалить КОНЕЦ СТРОКИ
^Y        Вспомнить удаленное
^R        Поиск предыдущей команды

ESC ESC   Добить имя файла
ESC =     Распечатать похожие имена файлов
     а если командный интерпретатор bash, то обе эти команды
     сидят на клавише TAB


        &dDВыключение системы&d@

     Чтобы  начать  процесс выключения системы, следует, будучи
пользователем root и находясь в  корневом  каталоге,  выполнить
команду

    cd /
    shutdown -y -g0 -i0

     Дождитесь  полного  окончания  разгрузки  системы и только
тогда выключайте питание.

     Для перезагрузки системы выполните команду

    shutdown -y -g0 -i6

     Перезагрузить или разгрузить систему можно также и из меню
системного администратора команды sysadm.

     В  некоторых реализациях Unix (в частности, в BSD, SunOS,
Linux,  HP-UX)  команда  shutdown  использует  другие   ключи.
Попробуйте в этом случае:

   shutdown -y -h now   # для остановки
   shutdown -y -r 60    # для перезагрузки через 60 секунд
.
        &dDНесколько простейших команд Unix (курс молодого бойца)&d@

1.1. Система  Unix различает БОЛЬШИЕ и  малые буквы, и  к этому
можно привыкнуть.

1.2. Если вы уничтожили какой-нибудь файл, то никаких проблем с
его восстановлением у вас не  будет.  Потому  что  восстановить
уничтоженный файл в системе Unix НЕВОЗМОЖНО. В Unix отсутствует
команда unerase, и к этому  тоже  нужно  привыкнуть.  Вирусы  и
антивирусы  в  Unix  тоже  отсутствуют. Так что  пока хоть этой
проблемы у администратора машины не будет.

1.3.  В  имени файла директории отделяются от последующей части
символом "/". (Билл Гейтс тоже хотел, чтоб у него в  MSDOS  все
как  в  Unix было, вот и взял символ "\" - перепутал - с кем не
бывает.)
       Если  имя  начинается  со  слэша  -  значит,  это полное
маршрутное имя.
     Простое  имя файла может состоять из ЛЮБЫХ символов. Длина
простого имени не более 256 символов. Длина полного маршрутного
имени  файла  не  более 1024 символов.

1.4.   Для   задания  шаблона  имен  используются  символы  "*"
(произвольная  последовательность   символов)   и   "?"   (один
произвольный символ). Имя из одной точки "." обозначает текущую
директорию, имя из двух точек ".." - вышележащую  (родительский
каталог).

1.5.   Чтобы  запустить  программу  на  выполнение,  достаточно
набрать ее  имя  и,  если  нужно,  другие  аргументы  командной
строки. Имя программы - это маршрутное имя файла, в котором эта
программа   находится.   Аргументы   разделяются   одним    или
несколькими  пробелами и табуляторами. Ключи команды обычно (но
не всегда) выделяются знаком  "-".

     команда -ключи -ключи ...  прочие разные аргументы ...

1.6.  Если  командная  строка  кончается  знаком  &, то команда
запустится параллельно (фоном). На терминале печатается  номер,
который   получает   запущенный   процесс.   После  чего  можно
продолжать работу, не дожидаясь завершения фоновой задачи.

     команда -всякие разные аргументы ... &

1.7.    Команда    имеет   три   предопределенных   направления
ввода-вывода  -   стандартный   ввод,   стандартный   вывод   и
стандартный  протокол.  Как  правило,  команда  берет  исходные
данные  из  стандартного  ввода   и   печатает   результаты   в
стандартный  вывод. В стандартный протокол печатаются сообщения
об ошибках и диагностика. Первоначально стандартные ввод, вывод
и   протокол   назначены   на   терминал,   однако   их   можно
переназначить, используя следующие конструкции:

       команда  > имя_файла
(для стандартного вывода),

       команда  < имя_файла
(для переназначения стандартного ввода),

       команда  2> имя_файла
(для стандартного протокола - системной диагностики).

     Пример - записать в файл содержимое текущей  директории:

        ls > infdir

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

        команда  >> имя файла
        команда 2>> имя файла

1.8. Пользователи системы Unix объединяются в  группы, и каждая
из групп обладает определенным набором прав доступа к файлам.

1.9.   Программы   могут   распознавать   значения   переменных
окружения, значения которых были заданы перед их запуском.

TERM=vt220
HOME=/home/moshkow
PATH=:/bin/:dss/rk:/home/moshkow/bin

1.8.  Выдачу  одной команды можно перенаправлять на вход другой
команды. Для этого используется "|" - конвейер.

     Пример:  посчитать  суммарный  размер  и  число строк всех
файлов в каталоге /tmp, имена  которых  начинаются  с  символов
"text" ...

    cat /tmp/text* | wc -c

# Команда cat сливает вместе все файлы вида /tmp/text*,
# wc -c -l считает количество символов и число строк во входном
# потоке.

    Или просмотреть с листанием длинную выдачу команды:

   ps -ef  |  more

Того же результата можно достичь и без конвейера таким образом:

  ps -ef > temp-file
  more temp-file
  rm temp-file

        &dD2. Некоторые наиболее употребительные команды&d@.

pwd   - получить имя текущей директории
cd    - изменить текущую директорию
ls    - распечатать информацию о файлах или директориях
cat   - слить или вывести файлы-аргументы на стандартный вывод
cp    - копировать файлы
mv    - переместить (переименовать) файлы
ln    - создать ссылку на файл
rm    - удалить файлы
rmdir - удалить директорию
mkdir - создать директорию
echo  - вывести аргументы командной строки на стандартный вывод
ps    - распечатать информацию и номера выполняемых процессов
kill  - "убить" выполняемый процес по его номеру
man   - выдать справку об использовании и ключах команды

        &dD2.1 pwd    Выдать имя текущей директории&d@.

  pwd

        &dD2.2 cd     Сменить текущую директорию&d@.

  cd [ директория]

  cd /usr/spool/lp/adm

  cd ..

Если  директория  не  указана,  вы  попадаете в свой "домашний"
каталог $HOME

        &dD2.3 ls     Распечатать каталог&d@.

Формат команды:  ls [ключи] [имена]

имена - имена файлов или директорий; для директорий
        распечатывается список входящих в нее файлов, для файлов -
        выводится его имя и дополнительная информация.
        Имена файлов сортируются по алфавиту.
        Без аргументов ls выдает содержимое текущей директории.

  ls -al  - вывод в длинном полном формате:

          число   владелец            время модификации
          линков        группа                        имя файла
          (имен)                  размер
-rwxr-xr-x   1 moshkow  sys         17 Oct 18 16:13 ../jean
drwxr-xr-x   1 moshkow  sys         12 Oct 18 16:11 ../jelly
-rwxr-xr-x   1 moshkow  sys          0 Oct 13 14:14 ../j.bu.txt
^^  ^  ^
||  |  |
||  |  +----- права всех "прочих" по отношению к файлу
||  +-------- права одной с ним группы
|+----------- права "владельца" файла
+------------ "-" - значит файл,  "d" - директория
        Права:
                r - файл доступен для чтения,
                w - файл доступен для записи,
                x - файл является выполнимым,
                - - данное право доступа отсутствует.

       -a - вывести все файлы (даже если имена начинаются с точки);
       -x - вывод в 4 колонки;
       -t - имена файлов сортируются не по алфавиту, а по
            времени  последнего изменения
       -R - рекурсивно пройти по всем подкаталогам

  ls -CF  - оглавление каталога в несколько столбиков
  ls -al  - оглавление в полном формате

        &dD2.4 cat    Слить и вывести файлы на стандартный вывод&d@.

Формат команды:  cat файл1 [файл2... ]

Cat  выводит  содержимое  перечисленных  на  стандартный вывод.
Пример:

     cat файл

распечатывает содержимое файла, а

     cat файл1 файл2 > файл3

сливает  первые  два файла и помещает результат в третий. Чтобы
добавить содержимое файла1 к файлу2, надо выполнить команду

     cat файл1 >> файл2

        &dD2.5 more, pg Просмотреть файл постранично&d@.

     more file_name ...
     pg   file_name ...
     less file_name ...

Все  эти  команды  позволяют  просматривать  файл,  листая  его
поэкранно.  Просмотром можно управлять с помощью клавиш.  Самое
удобное управление у команды "less", самое "дубовое" - у "pg"

q      - завершить просмотр
ПРОБЕЛ - показать следующую страницу
ENTER  - сдвинуться на одну строку
b      - показать предыдущую страницу
/      - поиск
h      - Help - посмотреть список всех возможных команд

more,less,pg  используют,  чтобы  посмотреть  "длинную"  выдачу
команды, ставя его конвейером "ей на хвост"

    ls -al | more   - просмотреть оглавление
    ps -e  | pg     - просмотреть список работающих процессов

        &dD2.6 cp     Копировать файлы&d@.

Формат команды:  cp файл1            файл2
                  cp файл1 [файл2 ...] каталог

Эта  команда  копирует  файл1,  ...  ,  в ФАЙЛ. Если ФАЙЛ - это
директория, то файл1 и др. копируются в нее под своими именами.
Если  ФАЙЛ  не  существовал, то он создается, если существовал,
его старое содержимое теряется.

        &dD2.7 mv     Переместить (переименовать) файлы&d@.

Формат команды:  mv файл1             файл2
                  mv файл1 [файл2 ...] каталог

Команда  аналогична  команде  cp, но исходный файл уничтожается.
Ее основная роль - переименование файлов и  перенос  файлов  из
одной директории в другую). Пример:

    mv /dss/*/rk_*.help /dss/delo


        &dD2.8 ln     Связать файлы&d@.

Формат команды:  ln файл1 файл2
                            # создается "жесткий" линк
                  ln -s файл1 файл2
                            # создается "символический" линк

Эта  команда  создает файлу файл1 еще одно имя. В итоге файл1 и
файл2 на самом деле физически являются одним и тем  же  файлом.
Если   вы   создаете   так   называемый  "символический  линк"
(используя ключ  "-s"),  то  файл  file1  при  этом  не  обязан
существовать.  Имя "файл2" при этом все равно будет создано.

        &dD2.9 rm     Удалить файл или директорию&d@.

Формат команды:  rm [-fri]  файл ...
        -i      - просить подтверждения на каждое удаление
        -r      - рекурсивно удалить вместе с подкаталогами
        -f      - не просить подтверждения, а сразу удалять

Для удаления пустой директории можно воспользоваться командой

     rmdir директория ...

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

    rm -r директория

ВНИМАНИЕ: Ввиду того, что под шаблон ".*" подходит каталог ".."
НИКОГДА НЕ ДЕЛАЙТЕ КОМАНДЫ                # rm -r .*
(Хотя большинство unix'ов прощают подобную ошибку, но НЕ ВСЕ -
в SCO рискуете напороться)

        &dD2.10 mkdir  Создать директорию&d@.

Для создания директории применяется команда mkdir.

Формат команды:  mkdir  имя_директории ...

        &dD2.11 chmod  Изменение прав доступа к файлам&d@.

Команда chmod меняет атрибуты (права доступа) файла.
Проставить файлам право на выполнение:

    chmod u+x file1

Разрешить остальным пользователям исправлять файл

    chmod a+w file1

        &dD2.12 echo   Эхо&d@.

echo Команда выводит на стандартный вывод свои аргументы

    echo "\017"

Вывести  на  терминал  символ  Ctrl-O,  он же 017 восьмеричное.
Восстанавливает латиницу на терминалах типа vt220 и at386

        &dD2.13        Создать файл&d@.

Для создания файла можно воспользоваться следующими способами:

    touch primer   # создает пустой файл primer;
    cat > primer   # создает  файл  primer и пишет в него
                   # со стандартного ввода. Запись в файл закончится
                   # после нажатия CTRL+D.

        &dD2.14 ps     Какие программы выполняются&d@.

Сообщает  номера  процессов, которые  выполняются в системе.

    ps          - запущенные только с этого терминала
    ps -ef      - все, в "полном" формате (в SYSV Unix)
    ps -ax      - все, в "полном" формате (в BSD* и Linux)

        &dD2.15 kill   Прервать процесс&d@.

Команда  kill  посылает  указанному процессу сигнал немедленной
остановки.

Прервать процесс номер 1078 (номер можно узнать командой ps -e)

    kill -9 1078

Прервать  программу на вашем терминале, запущенную НЕ в фоновом
режиме, можно нажатием клавиши CTRL-C, или клавиши CTRL-\

        &dD2.16 man    Если вы забыли, как пользоваться командой&d@.

Как  правило,  при  запуске  команды  без аргументов она выдает
формат своего вызова.  Но  для  большинства  команд  достаточно
полную информацию вы можете получить так:

    man    имя_интересующей_вас_команды
    man -k ключевое_слово    # список команд, относящихся к ...

        &dD2.17 who    Кто работает в системе&d@.


    who           - этими командами можно узнать, кто вы такой
    who am i        и кто еще работает в системе
    finger
    last | more
    id
    man -k who   - сообщит все возможные команды, которыми можно
                   узнать, кто и что делает в системе.
.
        &dDОчень кратко о редакторе "VI"&d@

По  не  знаю  какой  уж  там  исторической  традиции  "честные"
(канонические) системы Unix не имеют в своем базовом  комплекте
ни   одного   нормального   (еще  раз  подчеркну  это  слово  -
НОРМАЛЬНОГО)   текстового    редактора.    Поэтому    системный
администратор  обязан  уметь  пользоваться тем, что ему дают. А
дают ему несравненный "Визуальный" экранный редактор  файлов  -
Редактор VI.

        &dDРедактор VI имеет три режима:&d@

1.  Командный  -  в  этом  режиме можно перемещаться по файлу и
выполнять редактирующие команды над текстом. Команды вызываются
ОБЫЧНЫМИ ЛАТИНСКИМИ БУКВАМИ.

2. Ввода текста - в этом режиме обычные латинские  буквы  будут
вставляться в текст.

3.  Режим  строчного  редактора  ED используется для управления
файлами (типа сохранить файл, зачитать файл и т.д.)

   Прочитайте предыдущий абзац еще раз. Вы еще  не  испугались?
Хорошо. Поехали. Итак:

       vi имя_файла

VI в КОМАНДНОМ РЕЖИМЕ.

ЧТОБЫ ВЫЙТИ ИЗ ФАЙЛА БЕЗ СОХРАНЕНИЯ, нажмите:
     ESC  :  q  ! Enter

чтобы выйти из файла, сохранив изменения, нажмите:
     ESC  :  w ! Enter
     ESC  :  q   Enter
выйти из файла с сохранением, одной командой:
     ESC  :  wq  Enter

        &dDдля перехода В РЕЖИМ ВВОДА нужно нажать команды типа:&d@
   "i"   вставлять здесь
   "A"   вставлять с конца строки
   "cw"  заменять текущее слово

   ESC    для ВОЗВРАТА В КОМАНДНЫЙ РЕЖИМ
   CTRL-[ для возврата в командный режим

   для перехода В РЕЖИМ УПРАВЛЕНИЯ ФАЙЛАМИ нужно нажать
   ":"  (перейти в режим редактора ED)

        &dDДвигаться по файлу можно командами:&d@
     h,j,k,l    влево, вниз, вверх, вправо
     Ctrl-F     На страницу вниз
     Ctrl-B     На страницу вверх
А если вам очень повезет, то можно будет двигаться стрелочками.
Чтобы перейти в режим везения, нужно описать  для  операционной
системы   ваш   терминал.   Этим  займемся  в  дальнейшем  (см.
"Описание терминалов, terminfo, termcap").

Подгоните курсор к нужному месту и нажмите
     i          перевод в режим ввода
вводите требуемый текст
     ESC        прекратить ввод, перейти в командный режим

Подгоните курсор к ненужному месту и нажмите
     x          удалить символ
     dd         удалить строчку

        &dDЕще парочка полезных команд:&d@

     o          вставлять с новой строки (под текущей строкой)
     a          в режим ввода ЗА курсором
     5yy        запомнить 5 строчек
Подгоните курсор к нужному месту
     p          вставить запомненные строки под курсором
     P          вставить запомненные строки НАД курсором

     J          Склеить две строки
     /Шаблон поиска Enter       - поиск
     n          Повторить поиск

На этом ознакомление с редактором VI можно считать законченным.
Того, кто считает, что VI может предоставить больше  удобств  и
команд  по  редактированию,  я  отсылаю  к  прилагаемому  здесь
справочнику-памятке "наиболее употребительные команды VI",  ну,
и,  естественно (как всегда), к документации. Остальных я отсылаю
к не менее удивительному в своем роде редактору EMACS, которым,
не смотря на это, рекомендую пользоваться впредь.






.
        &dDКакие Unix'ы бывают в природе?&d@

        &dDГенеалогическое древо&d@

     Почти  сразу после рождения Unix раскололся на две ветви -
ветвь как бы "прародительская", которой  владеет  "официальный"
хозяин   торговой   марки  Unix  -  Unix  System  Laboratory  -
фактически  ветвь  коммерческая.  И  проект  Исследовательского
института  Беркли  -  ветвь  в  основном свободных - бесплатных
Unix'ов.

              System III
              System 6

      USL <-- Раскол --> Berkeley

System 7                BSD 4.0

Unix V 3.1
Unix V 3.2    <-------  BSD 4.2
                    /   BSD 4.3
System V Release 4 / Заимствования
                  /     BSD 4.4         Конец проекта Беркли
SVR4.0          < <     ____________________________________
SVR4.1
SVR4.2

     Не  так  давно  USL  таки  окончательно  "засудила" BSD за
использование фрагментов кода с копирайтом AT&T, что в  немалой
степени  способствовало  закрытию проекта BSD. Предпоследний из
крупнейших  поставщиков  коммерческих  BSD-подобных  систем   -
Sun/SunOs  перешли  на  линию  SVR4.  Торжественно и официально
объявлено,  что   SVR4   является   единственным   наследником,
объединившим  лучшие  решения,  пришедшие  из  Unix  V  и  BSD.
Последним из могикан остается DEC: его OSF/1 для  Alpha  AXP  -
немного  искалеченный, но все же достаточно близкий к корням BSD
4.3.

        &dDUnix'ы для IBM/PC&d@

        &dDНекоммерческие или условно бесплатные&d@

BSD/OS 2.0 BSDi/386 Недорогой коммерческий. Хорошо поддерживается.
                Поддерживает бинарную совместимость с SCO Unix
386bsd          BSD 4.3 для Интелевской платформы
NetBSD          производная от 386bsd
FreeBSD 2.1     Самая качественная сеть. Дабы не связываться с
                USL, в нем полностью заново переписаны куски ядра,
                на которых стоял копирайт AT&T.
Linux 2.0.30    Самый популярный среди бесплатных Unix'ов. Число
                инсталляций оценочно между 100 тыс. и 1 млн.
                Непрерывное совершенствование силами сотен
                добровольцев довело его до  уровня довольно надежной,
                быстрой, качественной и удобной системы,
                пригодной для работы как в качестве графической
                рабочей станции, так и интернет-сервера.
                Поддерживает больше всех приложений и hardware.
                Поддерживает спецификации  iBCS, и потому может
                выполнять коммерческие приложения для SCO, в
                частности, Oracle и Informix.
                В Linux реализованы клиент и сервер Netware и Samba.
                Эмулятором MS Windows WABI пользоваться очень даже можно.

        &dDКоммерческие Unix'ы&d@

UnixWare 2.1 SVR4.2 от SCO. Совместима с Windows и Netware. До
                            сих пор не доведена до ума сеть.
                            Поддерживает мультипроцессорные PC.
                            После  того как ее у Novell перекупило
                            SCO, будущее этой системы перестало для
                            меня казаться столь уж заманчивым.

Solaris 2.5  SVR4.0  от SunSoft. Совсем как на Sun'е. В принципе,
                это должно говорить само за себя. Начиная с
                5-й версии в Solaris наконец пришел Motif.
SCO Unix 4.0    SVR3.2 Пока лидер по количеству установок среди
                всех Unix'ов для PC. Старая  надежная  отлаженная
                система.  Поддерживает достаточно много hardware.
                Поддерживает мультипроцессорные PC.
                Непомерно дорог. Морально устарел.
                Имеет проблемы с русификацией. Медленный.
ISC Unix 3.2    Надежен и компактен в работе. Морально устарел.

        &dDUnix'ы, поставляемые производителями компьютеров&d@

   Машина       Операционная система      "Оригинал"
Sun 1,2,10,...       SunOS 4.1.2             BSD 4.3
Sun 10,20,1000       SunOS 5.5               SVR4.0
IBM RS/6000          AIX                     SV 3.2
HP 9000              HP-UX 10             BSD 4.2 & SV 3.2
Sequent              Dynix                   SV 4.0
Motorola 922         SVR4/88                 SVR4.0
Беста-88             Bestix                  SV 3.1
DEC                  Ultrix                  BSD 4.2
DEC Alpha AXP        OSF/1                   BSD 4.3
SGCS Silicon Graphic IRIX 6.0

     Выбирая  платформу,  мы  автоматически  получаем с ней "ее
собственный" Unix.
     С  точки  зрения  удобства  и цельности администраторского
управления самые приятные из них - HP-UX 10.20 и AIX.
     А самый распространенный - Solaris 2.5 (естественно).
.
        &dDКоманды поиска GREP и FIND&d@.

        Команда grep/egrep

"фильтрует" строки - оставляя только "подходящие" под шаблон

    egrep шаблон  [ file ... ]

В  шаблон  могут  входить  обыкновенные символы (представляющие
сами себя),  а  также  -  спецсимволы,  выполняющие  служебные
функции шаблона: . * ^ $ [ ]

    .        - любой произвольный символ
    *        - "множитель" (предыдущий символ любое число раз)
    .*       - любая последовательность символов
    ^шаблон  - привязываем шаблон к началу строки
    шаблон$  - привязываем шаблон к концу строки
   [символы] - любой один символ из тех, что стоят в скобках


Вывести всех привелигированных пользователей:

    egrep ':0:0:' /etc/passwd

Вывести всех непривелигированных пользователей:

    egrep -v ':0:0:' /etc/passwd

Вывести  всех  пользователей,  имена  которых начинаются с букв
a,b,e,d

    cat /etc/passwd | grep "^[abed].*"

        Команда find.

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

    find   файл [ ... ]   ключи/условия/действия

        Ключи-условия команды find:

  -name "*.c" - простое имя подходит под шаблон *.c
  -type f     - брать только обыкновенные файлы
  -type d     - брать только каталоги
  -size +500  - файлы размером БОЛЬШЕ 500*512 байт
  -mtime -3   - дата модификации МЕНЬШЕ 3-х дней
  -newer  filename - дата модификации нашего файла МЕНЬШЕ, чем у
                     заданного файла filename

ВНИМАНИЕ:  Команда  find  использует  стандартные  SHELL'овские
шаблоны.  Команда  grep  использует  шаблоны  другого  формата,
называемые регулярными выражениями.

        Ключи-действия команды find

  -print      - просто распечатать маршрутное имя файла
  -exec команда над файлом {} \;

        Пример.

Напечатать имена всех обыкновенных Си-шных файлов, изменившихся
за последние 4 дня в текущем каталоге и его подкаталогах.

    find . -type f -mtime -4 -print

Уничтожить  все  файлы с окончаниями *.bu, *%, которые не меня-
лись больше месяца.

    find   / \( -name "*.bu" -o -name "*%" \) -type f    \
    -atime +30 -exec  rm  {} \;

запись "rm {} \;"  - обозначает команду Unix, которая будет вы-
полняться для всех  таких  найденных файлов. Вместо значка "{}"
будет подставляться каждый раз имя найденного файла. Естествен-
но, что таким образом мы их все и уничтожим.
.
        &dDАрхивирование. Копирование файлов на стриммер&d@

В Unix для этого можно пользоваться двумя утилитами:

tar     попроще в использовании, но не все умеет
cpio    более гибкая, чем tar, и посложнее.

        &dDКоманда  tar  (Tape Archiver)&d@.

Предназначен для создания архивов на ленте и в файлах.

Ключи: "-c" Create, "-x" eXtract, "-a" Append, "-t" оглавление

tar -cvf arhiw.tar fajl1 fajl2 katalog3 ...     - создать архив
tar -tvf /dev/rmt/ctape                вывести оглавление ленты
tar -xvf arhiw.tar katalog3/fajl4      извлечь из архива   файл
tar -xvf /dev/rmt/ctape          архив лежит на магнитной ленте
                                 извлечь с ленты все файлы
tar -avf arhiw.tar fajl5                 добавить файл к архиву

Ключи:
 "v"    Выводить список файлов в длинном формате (Verbose)
 "f"    Указывает на имя файла

        &dDКоманда CPIO.  (Copy In/Out)&d@.

Команда cpio -o берет с системного ввода список  имен и склеивает
эти файлы вместе в один архив, выталкивая  его на свой  системный
вывод.

Сбросить на ленту файлы по списку:

        -o     - (output) создавать архив.
        -H odc - Записывать в "совместимом формате" (чтобы  ар-
                 хив  можно было считать на Besta или Sun)
        -c     - Записывать в "престарелом" совместимом формате

    cat spisok | cpio -ovB -H odc > /dev/rmt/ctape1
    find katalog -print | cpio -ovc > arhiwnyj-fajl.cpio


Команда cpio -i читает с системного ввода cpio-архив и извлека-
ет из него файлы

# Просмотреть содержание стриммера.
    cpio -itB   < /dev/rmt/ctape

# Извлечь файлы со стриммера.
    cpio -idmvB  ["шаблон" ...] < /dev/rmt/ctape

        -B   Размер блока 5120 байт - стриммерный формат.
        -d   Создавать каталоги в случае необходимости.
        -v   Вывести список имен обработанных файлов.
        -m   Сохранять  прежнее время последней модификации.
        -f   Брать все файлы, кроме указанного шаблоном.
        -u   Безусловно заменять существующий файл  архивным.
        -l   Где можно, не копировать, а делать ссылки.

        &dDАрхивация со сжатием&d@.

Архиваторы tar и  cpio, в отличие от DOS-овских архиваторов, не
занимаются компрессией. Чтобы получить сжатый архив, нужно вос-
пользоваться специализированной командой compress или gzip.

Команда compress читает  свой системный ввод, а на свой систем-
ный выход  подает  "прожатые"  данные.

Команда zcat ("сжатый cat":-) читает с системного входа "пожа-
тый" файл, а на выход подает "разжатые" данные.

Создать сжатый tar-архив:

    tar -cvf - emacs-19.28 | compress > emacs-19.28.tar.Z

Прочитать оглавление сжатого tar-архива:

    zcat < emacs-19.28.tar.Z | tar -tvf -

Обратите внимание на  ключ  минус "-" на том  месте,  где в tar
нужно указывать имя  файла с архивом. Он означает "брать данные
со стандартного входа"  (или  выводить архив на стандартный вы-
ход).

GNU Zip - достаточно известный упаковщик,  имеет степень сжатия
более высокую, чем у compress, почти как у arj или  pkzip. Соз-
дать сжатый cpio архив, используя "компрессор" gzip.

    find . -print | cpio -ovcaB | gzip > arhiw.gz

Извлечь файлы из сжатого cpio-архива

    gunzip < arhiw.gz | cpio -idmv



        &dD mt - управление магнитной лентой &d@

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

Чтобы узнать, что она может делать, наберите:

    man mt

В SCO Unix программа управления лентой называется "tape"

        &dDДругие утилиты архивации&d@

В  зависимости  от  версии  Unix  могут  существовать и другие программы для
бэкапирования и создания архивов.

 backup/restore
 dump
 fbackup/frestore (HP/UX)
 pax
 . . .
.
        &dDНачальная загрузка операционной системы&d@

        &dD * Boot-процедура * &d@

        Boot,   bootstrapping   -   слова, обозначающие  сейчас
"Загрузить/пнуть, процесс начальной  загрузки", на  самом  деле
произошли  из  английской фразы "Pull itself up by its own boot
straps" (Поднять себя за шнурки собственных ботинок)

     Начинается все с Boot-prom'a - небольшой программы, которая
хранится  в   нестираемой   памяти   компьютера    и   начинает
выполняться сразу после включения.

      Естественно, boot-prom умеет делать многое: форматировать
диски, инсталлировать  операционную  систему,  запускать  тесты
hardware.  Однако главное его предназначение - найти на диске и
запустить на выполнение файл /unix - ядро операционной системы.
И  своего  собственного  разума  на  это ему обычно не хватает,
поэтому  он  в  первую  очередь  загружает  с  жесткого   диска
"загрузчика   операционной   системы",  а  уж  тот  делает  все
остальное.

        &dDSUN&d@

     Boot-prom загружает "BOOT BLOKS" - 1-ю ПРОГРАММУ НАЧАЛЬНОЙ
ЗАГРУЗКИ. "boot-bloks" расположены  в  1-15  секторах  раздела,
содержащего  корневую  файловую  систему  "/".  Обычно корневая
файловая система  располагается  на  разделе  номер  0.
     "Boot-   blocks"   можно   записать   на  корневой  раздел
загрузочного диска (обычно это внутренний диск со  SCSI-номером
3)  командой  installboot.  Для этого выполняется что-нибудь
такое:

    installboot /dev/rdsk/c0t3d0s0

     Boot-blocks  "умеет читать" формат файловой системы unix -
ufs .  Он находит на корневой файловой системе файл  "/ufsboot"
- 2-Ю ПРОГРАММУ НАЧАЛЬНОЙ ЗАГРУЗКИ - и загружает ее.

     /ufsboot находит ядро /kernel/unix и загружает его.

     Ядро   Unix   загружается   в   оперативную  память.  Затем  подключает
дополнительные загружаемые модули с драверами  устройств.  Как  только  ядро
"набирает"    достаточное    количество   драверов,   чтобы   самостоятельно
смонтировать корневую файловую систему, оно тут же это и делает, после  чего
начинает   действовать   самостоятельно,   не   используя   кода   начальных
загрузчиков.

     Перехват в boot-prompt:

  STOP+A

     Загрузка в single user:

  bo: boot -s

        &dDMotorola 922&d@.

     Boot-prom  загружает с диска ЗАГРУЗЧИК - файл /stand/boot,
Загрузчик загружает ядро /stand/unix

     Поскольку  boot-prom  не  в  состоянии  вместить  кода для
работы со стандартной unix'овской файловой системой, файлы unix
и  boot  лежат  в  отдельном  разделе  жесткого диска - разделе
/stand. На нем создана "ОЧЕНЬ  ПРОСТАЯ  ФАЙЛОВАЯ  СИСТЕМА"  bfs
(Boot  File  System),  чтобы  boot-prom'у  было полегче найти и
считать с диска загрузочные файлы.

     Перехват в boot-prompt:

После того как на консоли появится сообщение: "Idle MPU: none"
нажать клавишу ПРОБЕЛ

     Загрузка в single user:

        Во   время   начальной  загрузки  на  несколько  секунд
появляется приглашение: "Press _что-то_to enter system_maintence.
Нажать требуемую клавишу

        &dDLinux&d@.

     BIOS  загружает блок начальной загрузки активного раздела.

     Он  грузит  загрузчик  LILO (LInux LOader). Lilo загружает
файл /vmlinuz

     Параметры   начальной   загрузки   записываются   в  файле
/etc/lilo.conf После любых изменений в  этом  файле  необходимо
выполнить команду

  lilo

     Перехват в Lilo-prompt:

Left_ALT сразу после появления сообщения "Lilo ..."

     Загрузка в single user:

  Lilo: linux root=/dev/hda2 single

     Загрузка в еще более single user:

  Lilo: linux init=/bin/sh
  mount -n -o remount /dev/hda2 /
  insmod de4x5
  ifconfig eth0  195.232.171.30
  route add -net 195.232.171.0 gw 195.232.171.30
  insmod nfs

        &dDHP-UX&d@

     В ПЗУ HP 9000 проживает "PDC" - "Processor Dependent Code"
- чтоб поговорить с  ним, надо  нажать  клавишу  ESC  в  первые
секунды загрузки.

     На   загрузочном   диске   есть  Boot-раздел  формата  LIF
(линейная файловая система) В LIF-томе 4 "файла"

ISL       - "операционная" программа
HPUX      - собственно загрузчик ядра
AUTOBOOT  - текстовый  файл,  в  котором  написано имя ядра по
            умолчанию

Итак: PDS вызывает ISL командой

  bo scsi.6.0 isl

ISL загружает ядро командой

  hpux /stand/vmunix

     Перехват в PDC-prompt:

Нажать ESC в первые 10 секунд

     Загрузка в single user:

PDC> bo pri isl
ISL> hpux -is /stand/vmunix

        &dD * Процесс init * &d@

Ядро инициализирует себя и после этого  запускает процесс init.
А init - все остальные процессы,  программы, которые необходимы
для нормального функционирования операционной системы.

Все дальнейшие  действия в системе определяются этим процессом.
Все, что нужно делать init-у, определяет специальная таблица.

Процесс init всегда находится на каком-либо "УРОВНЕ ВЫПОЛНЕНИЯ".
Уровень выполнения определяет состояние и поведение всей систе-
мы. Уровень обозначается цифрой (или буквой) 0,1,2,3,4,5,6,s,S

   0        - prom монитор - Полный останов системы;
1, s, S     - single user mode. Однопользовательский режим;
   2        - многопользовательский режим без NFS-сервера;
   3        - многопользовательский режим с NFS-сервером;
   6        - перезагрузка;


        &dD * Примерный фрагмент управляющей таблицы  /etc/inittab * &d@

bchk::sysinit:/etc/bcheckrc/dev/console 2>&1
brc::sysinit:/etc/brc   > /dev/console 2>&1
is:3:initdefault:
rc:12345:wait:/etc/rc    > /dev/console 2>&1
r0:0:wait:/etc/rc0       > /dev/console 2>&1
r2:23:wait:/etc/rc2      > /dev/console 2>&1
r3:3:wait:/etc/rc3       > /dev/console 2>&1
pf:12345:powerfail:/etc/powerfail > /dev/console 2>&1
co:12345:respawn:/etc/sysmonitor  console console
t1:23:respawn:/etc/sysmonitor     tty01   9600
t2:23:off:/etc/sysmonitor         tty02   9600

        Формат таблицы:

ИМЯ:Уровни_выполнения:вид_действия:запускаемая команда

ИМЯ: - просто имя строчки - они все должны быть разными
вид_действия:

  sysinit   запустить один раз после начальной загрузки;

            на соответствующем уровне выполнения:
  wait    - запустить один раз и дожидаться, пока не окончится;
  respawn - запустить параллельно, а если окончится, перезапус-
            кать снова;
  off     - ничего не делать (просто игнорировать эту строку).


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


        Сперва init запускает процессы, которые "sysinit"

        Отработав все строки "sysinit" уровня,  init  идет  все
дальше  по  /etc/inittab  и обнаруживает строку initdefault 3 -
она заставляет его "перейти" на уровень 3.

        &dD * Run Command - стандартные RC-каталоги запуска * &d@

       Перейдя  на  уровень  выполнения  3, init и отрабатывает
первую  встретившуюся  строчку  с  уровнем  "3"  -  запускается
командный  файл  /etc/rc2  -  загляните в него. Там все просто:
/etc/rc2  берет  и  выполняет  командные  файлы  /etc/rc2.d/S*,
лежащие  в  каталоге  /etc/rc2.d.  Каждый  файл  выполняется  с
параметром "start"

       Отработав /etc/rc2, init точно таким же образом запускает
файл /etc/rc3. Вслед за этим он запускает  несколько  процессов
sysmonitor  -  по  одному  на каждый имеющийся терминал. Это те
самые  процессы,  которые  говорят  на  терминал:   "Login:   "
Пользователь, войдя  на  терминал, некоторое время работает, но
как только он  "уходит"  из  системы,  на  указанном  терминале
ничего  не остается. init тут же выполняет действие "respawn" -
перезапускает на терминал sysmonitor - и  опять  жизнерадостное
"Login: " появляется на терминале.

        &dDLinux Slackware&d@

        По умолчанию init устанавливает уровень выполнения 5.
При начальной загрузке отрабатывается файл
/etc/rc.d/rc.S

        Затем для перехода в многопользовательский режим
/etc/rc.d/rc.M
        из которого запускаются файлы
/etc/rc.d/rc.inet1  устанавливающий сетевые интерфейсы
/etc/rc.d/rc.inet2  запускающий сетевые сервисы
/etc/rc.d/rc.local  запускающий  несколько  полезных  программ и
                    демонов - например, поддержка мыши,   httpd,
                    русификация  консоля и т.п.

        &dDLinux RedHat&d@

Используется стандартная технология rc-файлов System V

RC-каталоги:
/etc/rc.d/rc[0123456].d/
/etc/rc.d/init.d/

Конфигурационные параметры для RC-команд:
/etc/sysconfig/

        &dDHP-UX 10.20&d@

Не  смотря  на  BSD-евое происхождение, используется стандартная
технология rc-файлов System V

RC-каталоги:
/sbin/rc[0123].d/
/sbin/init.d/

Конфигурационные параметры для RC-команд:
/etc/rc.defaults.d/

        &dDSVR4: SUN, Motorola&d@

Используется стандартная технология rc-файлов System V

RC-каталоги:
/etc/rc[0123456].d/
/etc/init.d/
.
        &dDUnix, базовые принципы и особенности&d@.

Все  системные  действия выполняет  ядро  операционной  системы
Unix. Ядро - обычный выполняемый файл, расположен в файле /unix
или /stand/unix или /vmunix или /vmlinuz (в зависимости от кон-
кретной реализации). Можете посмотреть размер этого  файла - не
маленький. При начальной загрузке системы ядро целиком загружа-
ется в оперативнную память и в дальнейшем резидентно находится
в ней, выполняя все необходимые работы.

        Что входит в ядро.

ДРАЙВЕРЫ УСТРОЙСТВ. И тех, которые есть, и тех, которых нет, но
могут  быть,  а  также  и  такие,  которые  никогда  вам   не
понадобятся.

УПРАВЛЯЮЩИЕ   ПОДПРОГРАММЫ:   части   кода,   ответственные  за
обеспечение  работы  пользовательских  программ  -   разделение
времени и прочих ресурсов системы.

СЛУЖЕБНЫЕ ТАБЛИЦЫ И ДАННЫЕ ЯДРА: таблицы текущих процессов, от-
крытых файлов, управляющие структуры...

СИСТЕМНЫЕ ВЫЗОВЫ. (То, что MS-DOS называется "21 прерывание",
можно  считать  некоторой   аналогией/пародией   на   системные
вызовы.)   С  точки  зрения  программиста  это  обычная си-шная
функция,  только  выполняет  она  системно-зависимые  действия,
например:   прочитать   данные  из  файла,  установить  сетевое
соединение, создать каталог, и т.д. и т.п. Все системные вызовы
( а всего их более 1500 штук ) вкомпилированы в тело ядра Unix.
Пользовательские  программы,  вызывающие  функции,   являющиеся
системными  вызовами,  на  самом деле содержат только jump'ы на
соответствующие  адреса  памяти  в  ядре.  В   пользовательскую
программу системные вызовы не влинковываются.

        Что находится в оперативной памяти.

ЯДРО ОПЕРАЦИОННОЙ СИСТЕМЫ.

БУФЕРНЫЙ КЭШ.  Часть оперативной памяти резервируется под кэши-
рование чтения и записи на диск. Любая операция  чтения с диска
приводит к тому,  что  прочитанные  блоки помещаются в буферный
кэш,  а  из него уже передаются запросившим данные  программам.
Если блок попал в кэш, то все последующие обращения к  нему бу-
дут получать образ блока из кэша, причем независимо от того -
та же самая программа обращается к блоку или  какая-либо дру-
гая. Кэшируется также и запись на диск,  опять же, разделяемая
между всеми выполняемыми программами.

ПРОЦЕССЫ. Процессом в Unix называется выполняющаяся программа.

        Средства экономии памяти. Виртуальная память.

РЕЕНТЕРАБЕЛЬНОСТЬ КОДА.  Когда  одна и та же программа(выполня-
емый файл) запущена в нескольких экземплярах,  то в оперативную
память загружается только одна копия выполняемого ассемблерного
кода на всех. Каждый  выполнямый  процесс использует один и тот
же текст программы, просто у каждого процесса имеется свой соб-
ственный указатель на текущий оператор.

РАЗДЕЛЯЕМЫЕ БИБЛИОТЕКИ. (В  Windows  есть похожее понятие DLL -
динамически подгружаемая библиотека). Некоторое количество час-
то выполняемых функций (например, printf,  да  и  много  других)
оформляется в виде специальным образом подготовленной библиоте-
ки  (SHARED  LIBRARY).  При компиляции программы,  использующей
разделяемые  библиотеки,  эти  функции не линкуются внутрь кода
программы.  Они  "выдергиваются"  из   библиотеки   на   стадии
выполнения  программы.  Этим  мы  экономим  место  на диске и в
оперативной памяти: в программах  отсутствует  код  разделяемых
функций,  а  в  оперативной  памяти  эта функция присутствует в
одном экземпляре на всех.

SWAPING. Каждый  Unix-процесс функционирует в своем собственном
32-х битном виртуальном адресном пространстве, не пересекающем-
ся с другими.  Адресное  пространство процесса может быть боль-
шим, чем физическая оперативная память. Виртуальная память под-
держивается с помощью PAGING'а - разрешения виртуальных адресов
в физические  "на  лету",  с  подкачкой  отсутствующих  страниц
памяти со swap-области на жестком диске.

На самом деле SWAPING'а как такового в Unix'е  нет, вместо него
применяется гораздо более гибкий PAGING. (swaping  - по опреде-
лению,  это  ПОЛНАЯ выгрузка программы на swap-область с  целью
освобождения места в оперативной памяти).

Область памяти, занятая программой, разделена на три части: TEXT
(выполняемые коды программы), DATA (статические данные програм-
мы), STACK (динамические данные). Когда операционка освобождает
место в  памяти за счет TEXT'а,  то она не   занимается сбросом
его на  диск. Она сразу  помечает его как   свободный. Действи-
тельно, когда потребуется загрузить TEXT обратно  в память, его
можно  будет взять из самого  выполняемого  файла с программой.
Такая экономия имеет один побочный эффект.  Файл программы, ко-
торая в  данный момент выполняется, невозможно уничтожить. Опе-
рационная система сообщит в этом  случае:  "text  file busy", и
откажется выполнять удаление.

БИТ  НАВЯЗЧИВОСТИ.  (sticky  bit). Выполняемая программа  может
иметь дополнительный атрибут. Так  называемый  "бит навязчивос-
ти". Когда такая программа заканчивает выполнение,  операционка
(по возможности) старается не занимать память,  в которой нахо-
дился текст программы. Соответственно, повторный ее запуск про-
изойдет очень быстро  - ведь программа все еще  загружена в па-
мять, ее не требуется зачитывать с диска. Нужно просто передать
на нее управление.

        &dDФайловая система Unix&d@.

Файловая система в Unix -  "деревянная",  состоит   из файлов и
каталогов. На  каждом разделе диска создается собственная неза-
висимая файловая система. Отдельные файловые системы "сцепляют-
ся"  вместе,  в единое общее дерево директорий. Такая  операция
называется "монтированием". Выглядит это примерно так:

   mount -F ufs   /dev/dsk/m197_c0d0s5 /home1
   mount -F ufs   /dev/dsk/m197_c0d0s4 /usr
   df

Получить доступ  к  файлам  "несмонтированной" файловой системы
невозможно. Порочная пракика MS-DOSа - сколько разделов, столь-
ко и "дисков" ( a: b: c: d: e: ... k: l:  m: n:) в Unix не при-
меняется. В Unix всегда есть ровно одно общее дерево каталогов,
и,  по  большому  счету, пользователям совершенно все равно, на
каком именно диске или  разделе  диска  расположены  его  файлы
/usr/spool/moshkow или /home1/moshkow/bin/mcopy ...

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

При каждой начальной загрузке Unix проверяет - корректно ли бы-
ла выключена  машина в прошлый  раз, и если нет - автоматически
запускает утилиту fsck  (File System Check) - проверку и ремонт
файловых систем..

        &dDВнутренняя структура файловой системы Unix&d@.

Раздел диска, в котором создана файловая система, разбит на три
части.

СУПЕРБЛОК. Занимает 1 Kb.
           Содержит служебную информацию:
           Тип файловой системы,
           Размер
           Начало списка свободных блоков.
           . . . что-то еще

ОБЛАСТЬ INOD-ов.  Занимает  примерно 8% общего размера раздела.
inode - Index-node  - описатель файла. Он содержит всю информа-
цию о файле, за исключением  имени  файла,  и собственно данных
файла. В inod'е хранится:

   тип файла (файл, каталог, именованный канал, специальный файл)
   кто владелец
   права(атрибуты) файла
   время модификаци/создания файла
   адреса блоков, из которых состоит файл
   что-то еще ...

ОБЛАСТЬ ДАННЫХ. В этой области расположенвИРТУАЛЬНАЯЯы блоки с данными фай-
                лов. Незанятые блоки провязаны в СПИСОК СВОБОД-
                НЫХ БЛОКОВ

Файлы бывают двух основных типов. ФАЙЛ, КАТАЛОГ.

ФАЙЛ - он и есть файл.

КАТАЛОГ - файл фиксированного формата:  состоит  из  строчек  с
именами файлов, входящих в каталог

        имя_файла1         Номер_Инода1
        имя_файла2         Номер_Инода2
           . . .

Чтобы получить доступ к файлу по имени, операционная система
 1. находит это имя в каталоге, содержащем файл,
 2. берет Номер_Инода файла,
 3. по номеру находит inod в области inod'ов,
 4. из inod'а берет адреса блоков, в которых расположены данн-
    ые файла,
 5. по адресам блоков считывает блоки из области данных.
Все.

        Формат индексного описателя файла.

Область инодов разбита на 64-х байтные структуры - inod'ы.
В inod'е хранится:

  Тип файла (файл/каталог/специальный файл/fifo/socket)
  Атрибуты (права доступа)
  Владелец файла
  Группа-владелец файла
  Времена создания, модификации, последнего доступа к файлу
  Длина файла
  Адрес 1-го блока файла
  Адрес 2-го блока файла
  ...
  Адрес 10-го блока файла
  Адрес блока косвенной адресации (блока с 256 адресами блоков)
  Адрес блока 2-й косвенной адресации
     (блока с 256 адресами блоков с адресами)
  Адрес блока 3-й косвенной адресации
     (блока с адресами блоков с адресами блоков с адресами)

Точный формат структуры файловой системы см.
man fs
.
        &dDСпециальные файлы&d@

В Unix помимо обычных файлов и каталогов существуют  еще и спе-
циальные файлы. Они используются для обозначения физических ус-
тройств компьютера. (Железок). В сущности, что  такое файл? Это
"нечто", куда можно записывать  данные  как последовательность
байтов  и  считывать их оттуда. И, значит, вполне  естественным
выглядит, например,  файл  /dev/console  - соответствующий кон-
сольному  терминалу.  Все,  что  выводится в файл /dev/console,
будет просто появляться на экране терминала. При попытке чтения
из  файла  /dev/console вы будете  получать (внимание!)  не то,
что нарисовано в данный момент на экране, а то, что вводится  с
клавиатуры. Попробуйте выполнить команды

  su
  echo Привет > /dev/console
  cat /dev/console

  Ctrl-C

Для  каждого  терминала  unix-машины существует соответствующий
ему  файл.  Обычным  терминалам  соответствуют  файлы,  которые
называются примерно так:

  /dev/contty01 или /dev/tty02 или /dev/ttyFD02 или /dev/ttyS0
  (и т.д., возможны варианты)

Псевдотерминалам (они эмулируются, когда вы входите в  систему
по сети, посредством команд типа telnet, rlogin) соответствуют
специальные файлы

  /dev/pty*, или /dev/pty/*

Команда  who,  или  who  am  i  сообщит вам, как называется ваш
собственный терминал.

Существуют специальные файлы, соответствующие жесткому диску  в
целом   (/dev/rdsk/m197_c0d0s7)     и   всем   его    разделам
(/dev/dsk/m197_c0d0s*). Если  вы  будете читать из этих файлов,
то  получите  все  байтики,  как  они лежат на жестком диске, с
нулевого цилиндра и до последнего... А  если  вы  в  этот  файл
что-нибудь  запишете,  то  получите  (потом)  богатый  опыт  по
переформатированию и разметке жесткого диска.

/dev/mem   - файл, изображающий оперативную память.

/dev/audio - если  "закатить"  в него  файл  звукового  формата
             (*.wav, *.au, ...?) - то он  будет озвучен динами-
             ком  компьютера,  а  команда cat /dev/audio  будет
             принимать все, что произносится в микрофон.  Впро-
             чем,  я  отвлекся,  у  нас ведь не PC,  не  Silicon
             Graphic и не SPARCstation.

/dev/zero  - из него можно считать сколько угодно нулевых байтов

/dev/null  - а в  него можно писать, и  читать из него - тоже, в
             неограниченных количествах и с неизменным резуль-
             татом: NULL - он и есть null. А в MSDOS его аналог
             называется    NUL.

Специальные файлы бывают двух типов:

  блочные  - запись и  чтение допускаются только блоками.  Нап-
             ример, разделы дисков с файловой системой являются
             таковыми.

  ls -al /dev/fd*
brw-rw----  1 root floppy    2,  28 Jul 18  1994 /dev/fd0H1440
brw-rw----  1 root floppy    2,  32 Jul 18  1994 /dev/fd0H2880
brw-rw----  1 root floppy    2,  12 Jul 18  1994 /dev/fd0H360


 символьные(бесструктурные, сырые, row) - можно читать и писать
           отдельными байтами. К ним относятся терминалы,  маг-
           нитные ленты, неформатированные диски и разделы дис-
           ков без файловой системы.

  ls -al /dev/tty*
crw--w--w-   1 moshkow  sys        4,   1 Jan 15 22:00 /dev/tty1
crw--w--w-   1 root     root       4,   2 Jan 15 20:37 /dev/tty2
crw--w--w-   1 root     root       4,   2 Jan 15 20:37 /dev/tty2

Различие - первая буква в листинге команды ls  -l

Понятия "размер" у специального файла не  существует. Ведь этот
файл обозначает физическое устройство.  Фактически  это ссылка
на соответствующий драйвер. Вместо длины команда ls показывает
для таких файлов  два числа: "мажорный" и "минорный" номера ус-
тройств. Будем считать для ясности, что "мажор" - это порядковый
номер драйвера устройства, а "минор" -  внутренний номер устрой-
ства в таблице обслуживающего его драйвера.

        &dDСоздание специальных файлов&d@

 Обычно  их  создавать  не  нужно  -  они все уже есть для всех
известных  настоящих   и   будущих   устройств.   Созданы   при
инсталляции системы.

 Ручное создание спецфайла

   mknod /dev/filename { c | b }  MAJOR MINOR

        &dDHP-UX: полуавтоматическое создание спецфайлов&d@

При  начальной  загрузке  в  /etc/inittab  отрабатывает  скрипт
/sbin/ioinitrc, который, обнаружив  новые  платы  и  устройства,
автоматически  запускает команду их инициализации, конфигурации
и создания необходимых для них спецфайлов.

см. документацию по командам

 ioscan
 mksf
 insf

        &dDSolaris: полуавтоматическое создание спецфайлов&d@

При загрузке выйти в boot-монитор и загрузиться с ключем -r

STOP+A

ok boot -r         - реконфигурационная загрузка

все необходимые спецфайлы для вновь подключенных устройств будут
при этом созданы автоматически.
.
        &dDДиски, ленты, файловые системы&d@.

        &dD * Какие есть SCSI устройства * &d@

        &dDMOTOROLA: Какие есть SCSI устройства&d@.

   scsiscan             - эта утилита сообщит вам,  какие  SCSI
                          устройства  подключены и как они
                          называются (SCSI-id)

       После  подключения новых устройств к компьютеру Motorola
922  он самостоятельно их распознает  при  очередной  начальной
загрузке   и  запускает  программу из каталога /sbin/auto-boot,
которая  создает  специальные   файлы,   соответствующие   этим
устройствам.



        &dDSUN:      Какие есть SCSI устройства&d@.

     На  компьютере  Sun  SPARC для определения SCSI-устройств:
Перейдите в BOOT-prom монитор (Нажмите клавиши Stop+A)  Введите
команду probe-scsi

  ok probe-scsi


     Чтобы   создать  специальные   файлы,  выполните
"reconfiguration boot": из BOOT-промпта

  ok boot -r

        &dDLINUX:    Какие есть SCSI устройства и жесткие диски&d@.

     IBM   PC/Linux  сообщает  об  опознанных  устройствах  при
начальной загрузке. Предполагается, что соответствующий  драйвер
SCSI   (if  exists)  сконфигурирован  в  ядре.  Чтобы  еще  раз
просмотреть эти сообщения, выполните команду

    dmesg

     Все специальные файлы для дисков и лент уже созданы

        &dDHP-UX&d@

Перехватить boot промпт, дать команду SEA    (search)
Или на живой машине   ioscan

        &dD * Описание геометрии диска при подключении * &d@

     Для  нормальной  работы  с  диском, возможно, (зависит  от
системы) придется позаботиться об описании геометрии диска.

     При   покупке   диска  ТРЕБУЙТЕ  с  поставщика  бумажки  с
характеристиками и геометрией диска.
     Seagate, например, все характеристики держит на
http://www.seagate.com

        &dDLinux, FreeBDS: ничего описывать не надо&d@

     Переходите к следующему разделу.

        &dDMOTOROLA: описание геометрии диска&d@


     Уже  имеющиеся описания для "фирменных" дисков расположены
в каталоге /etc/dskdefs/. Выберите описание  "похожего"  диска,
запомните  его  имя,  например,  1Gb Seagate-ST31 - "msea11200".
Подсказка: загляните в /etc/scsifmt.info

     Командой ddefs записать геометрию диска и сохранить ее под
новым  именем.  В  ответ  на  запрос  "Template"   введите  имя
описания  "похожего"  диска.  Поправьте  параметры,  которые вы
знаете, и оставьте как есть, если не знаете, зачем они.

      ddefs -n filename

Актуальные параметры: естественно, число голов, секторов...
А также (по собственной шкуре проверено):

 Root offset: 648              (т.к. VTOC занимает 648 блоков)
 Slice count: 16               (Положено 16 разделов на диске)
 Interleave:  1                (Что означает "отсутствует")
 Precomp cylinder: {последний} (Ныне прекомпенсация не используется)
 Bad spots:   100             (Резерв для замещения bad-блоков)
 Controller attribute: 850     (кто его знает, зачем, но так
 Attribute:   10                у всех остальных  дисков)
 Word attribute: 10

Выход  из  команды  ddefs  "w"  и "q" в ДОКУМЕНТАЦИИ НЕ ОПИСАН.
Подсказка по остальным командам ddefs выводится командой "help"

       В  таблице /etc/scsifmt.info добавить строчку со ссылкой
на файл с геометрией диска. В качестве  ключевых  слов  указать
то, что выводит команда scsiscan. Например, так:

scsiscan
SEAGATE  ST51080N  m187_0c0d1  ...

cat >> /etc/scsifmt.info
"SEAGATE"       "ST51080N"      filename   7    "1GB SCSI"
^D

        &dDSUN: описание геометрии диска&d@

     Чтобы   диск   опознавался   Sun'ом,   для   него   должно
существовать описание геометрии в файле /etc/format.dat

        &dD * Как называются диски и разделы на машине * &d@

     Каждое "устройство" имеет соответствующий ему "специальный
файл". От системы к системе имена эти абсолютно друг на друга не
похожи.  Одно, пожалуй, постоянно: все специальные файлы обычно
расположены в каталоге /dev или его подкаталогах.

        В SVR4 устройства собраны в отдельные каталоги:

  /dev/rdsk/*  - бесструктурные диски и разделы дисков
  /dev/dsk/*   - блочные диски и разделы дисков
  /dev/rmt/*   - стриммерные накопители на магнитной ленте
  /dev/term/*  - линии для подключения терминалов (dial-in)
  /dev/cua/*   - линии с модемным управлением (dial-out)
  /dev/pts/*   - псевдотерминальные линии

        &dDMOTOROLA: Общий формат имени:&d@
    controller_cXdYsuffix           где:
             controller - тип устройства
                X       - номер контроллера
                Y       - логический номер устройства
                suffix  - зависит  от  устройства, например:
                          номер раздела на жестком диске

        Логические диски (разделы физического SCSI диска)
        с блочной структурой на станции Motorola 922

/dev/dsk/m197_c0d0s1    SCSI контроллер m197 номер 0,
                        SCSI устройство 0
                        логический раздел (slice) 1
/dev/dsk/m328_c0d0s0    SCSI контроллер m328 номер 0,
        . . .           SCSI устройство 0
                        логический раздел (slice) 0

        Физический диск (целиком)

/dev/rdsk/m328_c0d0s7   Условное  обозначение  всего   жесткого
/dev/rdsk/m197_c0d1s7   диска, целиком

        Бесструктурные (сырые)  разделы

/dev/rdsk/m197_c0d0s1
/dev/rdsk/m197_c0d1s2

        Магнитные ленты.

/dev/rmt/ctape1             а также
/dev/rmt/m197_c0d4

        CD-ROM.

/dev/rdsk/m197_c0d6s7    - "сырой" (физический)
/dev/dsk/m197_c0d6s0     -  раздел CD-ROM с файловой системой
                            "Моторольного" формата ufs
/dev/dsk/m197_c0d6s7     -  CD-ROM со стандартной  файловой
                            системой iso9660

        &dDSUN:&d@.

        Логические разделы (блочные) на станции SPARCstation:
Диск может быть разбит на 8 логических разделов с 0 по 8.

        Общий формат имени SCSI устройства:

/dev/dsk/c0t2d0s3       Controller  0  (обычно 0)
                        Taget       2  (SCSI ID)
                        Disk        0  (LUN Logical Unit Number
                                        - обычно 0)
                        Slice       3  (Номер раздела)

        Физический диск (целиком)

/dev/rdsk/c0t3d0s2     Весь жесткий диск представляется  разде-
                       лом 2
                       Загрузочный внутренний жесткий диск SPARC-
                       station имеет 3-й SCSI номер.

        CD-ROM (целиком)

/dev/dsk/c0t6d0s2      CD обычно вешают на 6-й SCSI номер.
                       Имеет ровно один раздел - весь диск.

        Магнитные ленты.

/dev/rmt/0            1-я лента (обычно 150Мб)
/dev/rmt/1            2-я лента (обычно DAT 4Гб)

        После подключения новых устройств к Sun'у.
Нужно выполнить "reconfiguration boot". Из boot prom'a:

   ok boot -r

        &dDLinux:&d@.

     Диск может быть разбит на 4 primary раздела с 1 по 4. Один
из разделов может быть extended - тогда он может  быть   разбит
еще на 4 раздела с 5 по 8

        Физический диск (целиком)

/dev/hda        Первый IDE жесткий диск
/dev/hdb        Второй IDE жесткий диск
/dev/hdc        IDE hd (или CD) - master на втором интерфейсе
/dev/hdc        IDE hd (или CD) - slave  на втором интерфейсе
/dev/sda        Первый SCSI жесткий диск ...

/dev/sda1, /dev/sda2, ... ,8  Разделы жесткого SCSI диска
/dev/hdb1, /dev/hdb2, ... ,8  Разделы жесткого IDE диска

        CD-ROM

/dev/sbpcd,/dev/sonycd, ...
/dev/hdc  - IDE CD
          а лучше /dev/cdrom

        Магнитные ленты.

/dev/rmt1

        Дискеты.

/dev/fd0             - флоппи A:
/dev/fd1             - флоппи B:

        &dDHP-UX&d@

        Физический диск (целиком)

/dev/rdsk/c0t6d0     Весь жесткий диск (raw)
/dev/dsk/c0t6d0      Весь жесткий диск

 Жестких разделов в HP-UX нет, зато есть LVM - и в нем
логические тома

/dev/vg00/lvol12     char logical volume
/dev/vg00/rlvol12    block logical volume

        Магнитные ленты
/dev/rmt/0m          лента с перемоткой
/dev/rmt/0mn         лента без перемотки

        &dD * Как отформатировать SCSI диск * &d@.


     Форматировать  SCSI  на  низком  уровне  не  умеет ни один Unix
в мире.Форматирование обычно заключается в тестировании bad block'ов
и   нанесении   логической   разметки   диска   -   делении  его  на
логические разделы.

        &dDMOTOROLA: низкоуровневое форматирование диска &d@

     Хотите   по-простому -  воспользуйтесь  командой  scsifmt.
Применяется  она  к  БЕССТРУКТУРНОМУ  цельному  диску  (каталог
/dev/rdsk, slice номер 7). Например:

   scsifmt /dev/rdsk/m197_c0d1s7
   scsifmt /dev/rdsk/m328_c1d0s7

     ВНИМАНИЕ:  вы  уже набрали эту команду? Сосчитайте до 20 и
немного подумайте. Подумали? Теперь нажмите Ctrl-C.  Вы  нажали
ENTER  вместо Ctrl-C ? У вас есть 30 свободных минут. Можете за
это  время  ознакомиться  с  главой  "Инсталляция  Unix".  Ведь
команда  scsifmt  ничего  не  переспрашивает  и сразу начинает
форматировать указанный диск, не требуя никаких  подтверждений.

       scsifmt просто вызывает команду dinit с соответствующими
ключами,  которая  все  и  делает.  Для  более   тонких   работ
пользуйтесь dinit непосредственно.

 Инициализация диска(низкоуровневое форматирование, тестирование
бад-блоков, загрузочная запись) делается командой dinit.

dinit [-f] [-q] [-b]   filename   /dev/rdsk/m187_c0d1s7
      -X 9  debug-level
      -f    переформатировать
      -q    "быстрый" формат
      -b    сделать диск загрузочным
      -v {0-4} write тест

man dinit    сообщить все остальные подробности

        &dDSUN:&d@

     Физическое форматирование диска на SunOS не делают. Считается,
что диск должны отформатировать  на  заводе.  Можно  посмотреть
информацию о диске.

     prtvtoc /dev/rdsk/c0t0d0s2

        &dDHP-UX&d@

     Физическое форматирование

format /dev/rdsk/c0t6d0

        &dD * Разметка диска на разделы. Partition Table * &d@

        &dDLinux: fdisk&d@

     Раметка  partiotion table в Linux делается командой fdisk.
Это диалоговая утилита  -  без  особых  изысков,  все  делается
просто.

     fdisk /dev/hda   # или /dev/sdb ...

     mke2fs /dev/hda1
     # создает файловую систему типа ext2 на первом разделе

     Распечатать таблицу разделов:

     fdisk -p /dev/hda   # или /dev/sdb ...


        &dDSUN: Разметка форматированного диска на разделы&d@

     Чтобы   диск   опознавался   Sun'ом,   для   него   должно
существовать описание в файле /etc/format.dat

     Из-под  СуперПользователя  запустите  команду format, и в
диалоговом режиме сможете проинициализировать и  протестировать
диск и разбить его на разделы.

     format

Boot-монитор при загрузке операционной системы ищет на корневом
разделе boot-блок. Он записывается командой installboot или dd

     installboot /dev/rdsk/c0t3d0s0
     dd if=/usr/lib/fs/ufs/bootblk bs=1k skip=1 of=/dev/dsk/c0t3d0s0

        &dDSUN: Создание файловой системы&d@.

     newfs /dev/dsk/c0t0d0s7

        SUN: виды файловых систем.

     ufs        Unix File System
                основной тип файловых систем для жестких дисков
     hsfs       High Sierra, ISO 9660, Rock Rige Extension
                файловая система на CD-ROM'ах
     pcfs       MS-DOS FAT для дискет 3"

     nfs        Network File System
                наиболее популярная сетевая файловая система
     rfs        Remote File System
                тяжелое наследие System V - еще одна сетевая FS

     tmpfs      для хранения Временной Файловой системы используется
                свободное место swap-области
     lofs       Loop Back FS
                фактически mount -F nfs localhost:/ /mnt

     procfs     Process FS - "для каждого процесса имеется файл"
     fifofs     FIFO FS
     fdfs       File Descriptors FS
     namefs

        &dDMOTOROLA: Разметка форматированного диска на разделы&d@.

     Производится  Disk Slice Editorom dse. На диске может быть
до 15 slice'ов (разделов). Они нумеруются числами от 0 до 6, от
8  до  f.  Номер  7  зарезервирован, чтобы обозначать весь диск
целиком.

  dse   имя_бесструктурного_диска       #       например:
  dse /dev/rdsk/m197_c0d0s7

DSE имеет экранный интерфейс, схожий с редактором VI
        Команды:

   :q!     выйти без внесения изменений в таблицу разделов
   :wq     сохранить изменения и выйти
 h,j,k,l   команды перемещения по экрану (это если у вас не ра-
           ботают стрелочки)
   C       создать раздел на свободном месте
   dw      стереть поле
   dd      уничтожить раздел
   cw      изменить значение поля

ВНИМАНИЕ:  самый  первый раздел должен начинаться с блока номер
648 (или больше), поскольку на диске  должно  оставаться  место
для хранения разметки диска VTOC (Volume Table Of Contents).

     На   создаваемом  разделе  должна  быть  создана  файловая
система. В SVR4/88 используются 3 разных типа - ufs,  s5,  bfs.
Выбирайте "UFS".

        Motorola: виды файловых систем.

     ufs        Unix File System
                основной тип файловых систем для жестких дисков
     s5         System V. Устарелый тип файловой системы, исполь-
                зовался в старых версиях SV 3.1. Более медленная,
                но занимает меньше места под служебную информацию
     bfs        Boot File System для каталога /stand
		Служебная "очень простая" файловая система. В ней
                лежат файлы начальной загрузки boot и unix
     cdfs       CD File System
                Стандартная для CD ROM'ов разметка ISO 9660

     После   переразметки   диска  dse  автоматически  запустит
команду mkfs со всеми необходимыми параметрами -  для  создания
чистых  файловых  систем  на  новых  разделах,  поэтому  пункт,
относящийся к команде mkfs, имеет скорее академический интерес.

       Реально  dse только ГОТОВИТ описание VTOC, а прописывает
ее на диск команда fmthard. Параметры у нее  непростые,  именно
она  применяется при инсталляции системы.

 fmthard -S file_with_vtoc_description /dev/rmt/m187_c0d1s7

     Для  обычных  же  юзеров  к  ней  написан пользовательский
интерфейс dse.

     Распечатать таблицу разделов:

prtvtoc /dev/rdsk/m187_c0d0s7

        &dD * Какого типа у нас файловые системы * &d@

        &dDMOTOROLA: Какого типа у нас файловые системы&d@

  fstyp имя_дискового_раздела

     Рекомендуемый  тип  для неспециализированных (т.е. не тех,
которые /stand,  /boot  и  некоторые  другие)  файловых  систем
стандартный  Unix'овский  "ufs" - Unix File System. Это быстрая
файловая система BSD-подобного типа с  символическими  линками,
длинными  именами  файлов  (до  256  байт), изменяемым размером
блока,  "размазанной"  таблицей   inod'ов   (описатели   файлов
расположены группами, которые равномерно распределены по диску)

        &dDmkfs - создает пустую файловую систему&d@.

# создаем файловую систему типа s5 на 4-ом разделе диска,  раз-
# мером 200 Мб !!! Размер указывается в 512-байтных блоках

  mkfs -F s5   /dev/rdsk/m328_c2d0s4  400000


# создаем файловую систему типа ufs  на 5-ом разделе диска

  mkfs -F ufs  -o bsize=4096,nsect=36,ntrack=9,free=1 \
  /dev/rdsk/m328_c2d0s5

        &dDLinux: создание файловой системы&d@

 mke2fs /dev/hda9

        &dDHP-UX: создание файловой системы&d@

 newfs -F hfs /dev/rvol12

        &dDHP-UX: JFS vs HFS&d@

HP-UX использует два формата файловых систем:
 HFS  (High  Perfomance)  - AKA старая добрая ufs,
 и новомодная JFS (Journal) AKA Verytas vxfs

     0.  vxfs - это не файловая система, а база данных с журналом транзакций
и откаткой.  Любая  операция  записи  в  файловую  систему  содержит  только
завершенные  транзакции, поэтому fs на диске _всегда_ находится в корректном
состоянии. В лог пишется "протокол намерений", и его можно использовать  для
откатки.

&dDПлюсы:&d@
     1.   vxfs   использует   физический   журнал   для  записи
критической метаинформации на диск. Это гарантирует эффективное
восстанавление   fs.   Большая   сохранность  позволяет  дольше
кэшировать данные. Очень заметен  выигрыш  по  скорости  "close
file"  -  закрытие  файла  НЕ  форсирует sync inod'а на диск, в
отличие от ufs.
     2.  vxfs  применяет  кластерную  адресацию  последовательных
блоков - выигрыш в адресации блоков и скорости доступа к большим
файлам.
     3. inod в vxfs-е имеет длину 256 байт (а не 128), и короткие (<=96байт)
директории или симлинки хранятся прямо в inod'е
     4.  Директории  vxfs  проиндексированы - следовательно, повышена скорость
поиска файла по имени.
     5.  По  необходимости  vxfs  умеет создавать дополнительные области
inod'ов, и вообще - место в vxfs распределяется по мере заполнения.

Написать подробнее про транзакции.

&dDМинусы:&d@

     1. Служебные структуры vxfs занимают больше места на диске
     2. Загрузчик ядра не умеет читать формат vxfs, поэтому
каталог /stand обязан быть HFS'ным

&dDПлюсы для Live JFS (AKA OnLine VxFS) Only:&d@
     Это  расширение стандартной vxfs, коммерческий продукт, поставляемый за
отдельные  деньги,   после   его   установки   стандартная   vxfs   получает
дополнительные возможности:
     6. Увеличение размера fs без отмонтирования.
     7. Уменьшение размера fs (а-ля speed disk) без отмонтирования.
     8.   Snapshot   (заморозка)   fs.  По  команде  возникает  параллельное
дерево-копия раздела - "остановленное" на момент подачи команды. Реализация:
использует  дополнительно  раздел  диска  для сохранения изменяемых блоков с
данными. При обращении к "замороженным" данным блоки, еще  не  измененные  -
считываются  из  оригинальной файловой системы, если же менялись, то оригинал
берется с сохраненной на отдельный раздел копии.

 Примеры, на которых vxfs дает заметный (в 2-4 раза) выигрыш
  cd /hfs  ;  time tar xf /tmp/big.tar
  cd /vxfs ;  time tar xf /tmp/big.tar

  time cat bigfile bigfile bigfile bigfile bigfile > /vxfs/big
  time cat bigfile bigfile bigfile bigfile bigfile > /hfs/big

     Вывод:  в  некоторых операциях vxfs быстрее, в остальных -
не медленнее, устойчивее к  выключению  питания,  но  несколько
больше съедает дискового пространства.
     HFS  имеет  смысл  на  статических  "readonly"  каталогах,
например /usr - скорость чтения одинакова, а hfs компактнее.

        &dDLinux. Запись директории на вритабле CDROM&d@

 mkisofs -R -o image directory
 затем записать образ на cd-r командой  cdrecord


        &dD * Монтирование файловых систем * &d@.

Чтобы  сделать  "видимыми"  файлы, лежащие на дисковом разделе,
Unix использует  команду  mount.  Mount  "подцепляет"  файловую
систему  к общему дереву файлов. При монтировании нужно указать
"точку монтажа" - каталог, к которому "подцепляется" наша новая
файловая система. Например:

    mount -F ufs   /dev/dsk/m197_c0d0s8    /home1

Чтобы посмотреть, какие файловые системы у нас смонтированы,
выполните команду

    df

Чтобы наши файловые системы монтировались, а swap области акти-
визировались  автоматически  при  каждой  загрузке,  необходимо
вставить соответствующие  строки  в  файл  /etc/vfstab . Формат
строчек можно посмотреть в этом же файле.

        &dDMOTOROLA: Монтирование CD-ROM&d@.

Если на CDROM'е  записана файловая система формата "ufs" - т.е.
это  "родной",  моторольный cdrom, то монтировать его нужно  по
тем же правилам, что и обычный жесткий диск, только "read only"

  mount -F ufs -r  /dev/dsk/m197_c0d6s0    /cdrom

Если же это обычный "game'овый" диск для MSDOS'а, а точнее, CDROM
стандартного формата iso9660, то монтировать его надо так:

  mount -F cdfs -o ro  /dev/dsk/m197_c0d6s7    /cdrom

(использование ключей  -r и  -o ro  - равнозначно)

        &dDОтмонтирование файловых систем&d@.

  umount /home1

        &dD * Изменение параметров fs * &d@

Sun:          tunefs
Linux:        tune2fs
HP-UX:        fsadm

        &dD * Bad-блоки * &d@.

     Симптомы  достаточно  красноречивы:  заметные задержки при
доступе к диску  (из-за  retrying'a),  и  на  консоль  сыплются
страшные  сообщения "Bad media", "Read failure"... "при доступе
к блоку такому-то".
     Запишите номера bad-блоков - их можно "подлечить".

        &dDФирменные операционки: лечится, но с трудом-с&d@

     Современные  SCSI  адаптеры  сами заменяют bad-блоки. Если
засекли бад-блоцк, пропишите по нему (или  файлу  с  ним)  нули,
адаптер  заодно и пропишет, и подменит, и навсегда спрячет его,
и он больше не покажется.

        &dDMotorola: Bad-блоки&d@

       Рекомендую  ознакомиться  с документацией - раздел "Bad
blocks" в Томе "Disks and Tapes Managment"

  см. также man по   ddefs, mvme328, scsi1x7, dinit, ...

     Надеюсь  при описании геометрии диска командой ddefs вы не
поскупились  указать  число  "Bad spots" больше нуля. Замещение
бад-блоков выполняется все той же командой dinit

dinit -n dskdeffilename /dev/rdsk/m187_c0d107
      -n             номера bad-блоков вводятся с клавиатуры

dinit -t bad-list dskdeffilename /dev/rdsk/m187_c0d107
      -t bad-list    файл со списком bad-блоков

     Как протестировать диск на бад-блоки? У dinit есть ключ
      -v 1   - verify with pattern

        &dDLinux: Bad-блоки&d@

     Linux'овский  fsck  с  ключом  "-c"  умеет  сам находить и
лечить от bad-блоков (они собираются в отдельный "bad"  inode)

      # -y yes на все вопросы,  -f force checking, -c bad-blocks
      e2fsck -c -y -f /dev/hda3

        &dD * Диагностика оборудования * &d@

        &dDMOTOROLA: Утилита тестирования оборудования GOLD&d@

     Для  тестирования  и  диагностики оборудования станции
Motorola 922  можно  воспользоваться  утилитой  gold.  Она  имеет
систему меню, очень похожую на систему меню утилиты sysadm.

        &dDSUN:  Утилита тестирования оборудования sundiag&d@

     Sundiag   -   многофункциональная   утилита   тестирования
оборудования на Sun

        &dDUnix для PC&d@

     Да  чего  там  выпендриваться.  Грузитесь  в  MSDOS  и там
тестируйте железо всем, чем пожелаете.













.
        &dDВыделение разделов под swap&d@

     Под  swap  область  рекомендуется выделять не более одного
раздела (предпочтительнее самого  первого)  на  каждом  жестком
диске.

       Под  swap  рекомендуется выделять 1*RAM - 2*RAM места, а
если на машине активно используется X-Windows, то 3*RAM.

     В  случае срочной необходимости под swap можно выделить и
обычный  файл.  Создайте  файл  большого   размера,   а   затем
подключите его под swapping. Пример: выделяем 20 Mb-овый файл

  dd if=/dev/zero of=/var/swapfile bs=1k count=20480

     Чтоб swap подключался автоматически при начальной загрузке,
надо вписать строку в /etc/fstab - что-нибудь типа:

---------------------------------------------------------------
# device     mountpoint  type  flags
/dev/hdb2     none       swap   sw
---------------------------------------------------------------

        &dDMOTOROLA: swap&d@

     После выделения раздела под swap его надо активизировать:

  swap -a /dev/rdsk/m328_c2d0s0 0 0  # подключаем раздел

  swap -a /var/swapfile 0 40960      # подключаем файл
  # Внимание  - здесь длина указывается в 512-байтных блоках

        &dDLinux: swap&d@

# размечаем партицию,
# устанавливаем ей partition ID == 82 "Linux-swap"

  fdisk /dev/hda

# Swap-файл для Linux _ОБЯЗАН_ лежать в каталоге /dev/

  dd if=/dev/zero of=/dev/swapfile bs=1k count=40000

# После выделения раздела или файла под swap его надо прописать:

  mkswap /dev/hda2 40000 ; sync # размер в килобайтах

  swapon /dev/hda2       # подключаем swap-раздел

  free                   # смотрим

  swapoff /dev/swapfile  # отключаем swap-файл

Для постоянного включения добавить строчку
в /etc/fstab :
---------------------------------------------------------------
/dev/hdb2       none  swap   sw
---------------------------------------------------------------

        &dDHP-UX 10.20: swap&d@

     Душка HP-UX  позволяет все запросто сделать менюшками SAM.

     Специфика: swap в файловой системе называется экзотическим
словом "File system swap",  организуется  в  виде  каталога  и
хватает  не  все  сразу,  как  имеет место с swap-файлом, а "по
требованию", чем экономит место на диске.

     В HP-UX отключить на лету swap-область нельзя - отключение
swap форсирует перезагрузку компьютера

Primary-swap указывается в конфигурации ядра, остальные в файле
/etc/fstab

  swapon                # подключаем

  swapinfo              # смотрим

        &dDSUN (Solaris и SunOS)&d@

   swap -l              # листинг
   swap -s              # листинг

   mkfile 40m swap-file # создать свапфайл в 40 Мб

   swap -a swap-file    #  активизировать его.

Для постоянного включения добавить строчку
в /etc/vfstab:

/swap/file    -   -   swap  -   no   -




.
        &dDИнсталляция операционной системы&d@

       Для  инсталляции  операционной системы на Unix-компьютер
используются загрузочные дискеты, загрузочные магнитные  ленты,
а также CD-ROM'ы.
      С дистрибутивного носителя загружается минимальная версия
операционной системы  Unix,  и  под  управлением  этого  Unix-а
запускается   программа   инсталляции,   которая   извлекает  и
устанавливает с носителя пакеты.

        &dDMotorola 922. Загрузка с магнитной ленты&d@

       Вставить  ленту  с  дистрибутивом Unix SVR4/88. Включить
питание. После  того,  как  на  консольном  терминале  появится
сообщение

"Idle MPU: none"

нажать на клавишу "ПРОБЕЛ"
Появится меню из нескольких пунктов.

Выбираем  "3" (System debugger) , ENTER
В  ответ  на  приглашение  197-Diag> вводим "bo 0 40" ENTER (0:
загрузить с 0-го SCSI контроллера, 40 -  магнитная  лента,  4-й
scsi-номер) и ждем 5 минут.

197-Diag> bo 0 40

     Boot-prom   организует   в  оперативной  памяти  RAM-диск,
считывает на него с магнитной ленты  начальные  8  Mb  -  образ
файловой   системы,   загружает   ядро   операционной  системы,
монтирует RAM-диск  в  качестве  корневой  файловой  системы  и
запускает  с  него  программу  инсталляции,  управляемую  меню.
Дальше надо ответить на некоторое  количество  вопросов,  после
чего  программа  приступит  к установке пакетов Unix'а, которые
размещены на ленте вслед  за  образом  загрузочного  RAM-диска.
Собственно  извлечение  файлов  с ленты занимает 20-40 минут, в
зависимости  от  того,  сколько  и  какие  пакеты   вы   решили
устанавливать.

     Первым  вопросом  система  спросит,  какой у вас терминал.
Ответьте, что у него 24 строки  и  он  имеет  позиционирование
курсора в стиле vt100 или unknown

   Программа инсталляции имеет три основных  режима:

 1. Full install
 2. upgrade
 3. Maintance mode

       Вторым  своим  вопросом  программа инсталляции предложит
выбрать один из них.

INSTALL   -   предусматривает   полную  установку  операционной
системы.  Все  файловые   системы   на   диске   будут   заново
переразмечены  -  и, следовательно, ВСЕ ФАЙЛЫ, которые до этого
существовали на диске, БУДУТ СТЕРТЫ.

UPGRADE  - обновление "старинной" (образца 1988 года и древнее)
системы до  современной  версии.  Старые  данные  при  этом  не
уничтожаются.(За исключением тех, естественно, которые включены
в новоустанавливаемые пакеты).  Нас  этот  режим  не  касается,
поскольку  у  нас  и  так  новая  система  установлена с самого
начала.

MAINTANCE     MODE    -    однопользовательский    shell    для
суперпользователя.   Подготовленный    администратор    сможет,
загрузившись с  ленты, вручную заняться ремонтом  и устранением
неисправностей в операционной системе, которые ему  не  удалось
бы  отремонтировать, загрузись он с диска. (И вообще, не всегда
же удается загрузиться с диска).
     По  выходе  из  maintance shell'а (клавиша Ctrl-D) нажмите
Ctrl-C,    чтоб    гарантировать   перезапуск   инсталляционной
процедуры.
     Если  вы  инсталлитесь  на  диск  неизвестной  породы, вам
придется перед запуском 1. Install уйти в Maintance моду  и  по
стандартной схеме сделать описание этого диска.

        &dDБеста-88. Загрузка с магнитной ленты.&d@

Вставить мастер-ленту Unix'а. Включить  питание.  На консольном
терминале появится сообщение:

boot:

Вводим "t:unix" ENTER (Загрузить unix с магнитной ленты)

boot: t:unix

RAM-диск у Bestix'а занимает  1000  Кб, вслед за ним расположен
архив формата  cpio с дистрибутивом операционной системы. Оста-
ется ответить на несколько вопросов  и  затем  ждать минут 20,
пока все содержимое ленты будет извлечено на диск.

        &dDSun SPARCstation. Загрузка с CD-ROM.&d@

Вставить  CD-ROM.  Включить  питание.  Подождать,  пока станция
"разогреется". Нажать STOP+A. (STOP - левая верхняя клавиша  на
левой дополнительной клавиатуре). Появится boot-rom prompt Ok:

вводим "boot cdrom". Если SPARC старой модели - SS1, SS1+, SS2,
придется вводить "boot sd(0,6,2)"

Ok boot sd(0,6,2)

Если  приглашение имеет другой вид: "> " (??), то вместо "boot"
надо набрать "b"

> b sd(0,6,2)

После загрузки Unix запустите команду "suninstall",  которая  и
проведет инсталляцию.

# suninstall

        &dDLinux Slackware. Загрузка с дискет&d@

     В  Linux'е  для  инсталляции  нужно  иметь две загрузочные
дискеты: BOOT (с нее загружаются, на  ней  находится  ядро),  и
ROOT   (на   ней   находится  минимальная  файловая  система  с
программой инсталляции).  Образы  этих  дискет  в  сжатом  виде
хранятся  в  файлах boot*/*.gz и root*/*.gz соответственно. Вам
нужно выбрать по одному файлу из  каждого  множества  (например
boot12/net.gz   и  root144/color144.gz)  и  изготовить  из  них
дискеты. Программа GZIP.EXE -D ИЛИ  GUNZIP.EXE  "разожмет"  эти
файлы,  а  RAWRITE.EXE  "зальет"  их  на дискеты. Сами пакеты с
дистрибутивом Linux могут лежать на DOS-партиции инсталлируемой
машины,  на  NFS-сервере,  на дискетах, на CD-ROM, на магнитной
ленте.

Загрузитесь  с  boot-дискеты,  в  ответ  на prompt "Lilo boot:"
введите соответствующий параметр и  Enter,  подождите  немного.

ВНИМАНИЕ:   Если  ваша  машина  с  Ethernet'ной  картой  ne2000
"зависает" при попытке загрузить  ядро,  повторите  загрузку  с
дополнительными параметрами, примерно такими:

  Lilo boot: ether=10,0x320,eth0

Вставьте  ROOT  дискету, нажмите Enter. Когда появится "Console
login:" залогиньтесь как root и запустите:


 # fdisk /dev/hda
 # setup

        &dDLinux RedHat. Загрузка с дискеты&d@

     В Linux версии RedHat одна загрузочная дискета. Грузимся с
нее - а дальше все делаем по менюшкам. Дистрибутив может лежать
на локальном диске, NFS, FTP, SMB-сервере.

        &dDHP-UX 10.20. Загрузка с CD-ROM&d@

     Перехватываем   начальную   загрузку  клавишей  ESC  и  из
PDC-промта даем команду "нащупать cdrom"

BOOT-ADMIN> search scsi

....
   scsi.2.0     ... CDROM ....

     Из выдачи вылавливаем "scsi ID CD" и грузим его

BOOT-ADMIN> boot scsi.2.0

     Дальше действовать по обстановке, отвечая на возникающие в
менюшках вопросы.

        &dDHP-UX 10.20. Инсталляция по сети&d@

&dDГотовим сервер&d@

1. Установить с Install диска пакет "Network cold install utils"

1a.  (Если надо инсталлить C-200 и старше) Установить с Install
диска пакет-patch ACE/PHCO-10751 "Enabling network install for ... C-200"

2. В файл /etc/instl_boottab вписать несколько _незанятых_ адресов

3. Подмонтировать Install CD и зарегистрировать его как Depot

   mount /dev/dsk/c0t2d0 /cdrom
   /usr/sbin/swreg    -l depot /cdrom

4. Не забыть по окончании работ разрегистрировать Depot

   /usr/sbin/swreg -u -l depot /cdrom

&dDНа станции&d@

Перехватить PDC-boot промпт (ESC или Break в первые 10 сек)

PDC> search lan install

Некоторые  станции  могут  ничего не обнаружить, но все равно -
тогда втемную дается команда

PDC> boot lan.10.188.101.14.3.52 install

где 10.188.101.14 - IP адрес сервера,
а что такое 3.52 - не знает никто
.
        &dDПакеты: установка дополнительного софта&d@

        &dD * Как устанавливать пакеты в Solaris 2.5 * &d@

        &dDАдминистрирование программного обеспечения&d@


       Этот  вопрос  очень  важен  для  поддержки  и обновления
программного  обеспечения.  Для  этой   цели   в   ОС   Solaris
предусмотрен  специальный  механизм,  поддерживаемый  с помощью
утилит  "pkgadd"  и  "pkgrm",  соответственно   добавляющих   и
удаляющих   пакеты   из   системы.   Чтобы  эти  утилиты  могли
оперировать  с  пакетами,  они  должны  быть   представлены   в
соответствующем  виде,  или формате. К сожалению, далеко не все
программные  продукты  доступны  непосредственно   в   формате,
пригодном  для  "pkgadd". Подавляющее большинство продуктов для
Unix, доступных  через  Internet,  находятся  в  виде  исходных
текстов,  которые  надо  откомпилировать и скопировать в нужные
места. Это имеет место, т.к. ОС Unix установлена на  машинах  с
различными типами процессоров и различной архитектурой.

Original is here

        &dDРучная установка&d@

                         Глава подготовлена Сергеем Богомоловым

Здесь  описана  только  установка  пакета  для себя (standalone
sysтем), если вам нужно установить пакет в режиме
server/dataless/diskless - читайте другие книжки (делать это надо
только с большой тоски).


1. Станьте суперпользователем
2. введите:
	/usr/sbin/pkgadd -d имя_директории_где_лежит_пакет имя_пакета

    например:
        /usr/sbin/pkgadd -d /cdrom/solaris_2_5/s0/Solaris_2.5 SUNWpkgA

    можно установить несколько пакетов сразу (укажите их имена через пробелы).

Имя пакета можно узнать из инструкции или с помощью команды:
         /usr/sbin/pkginfo -d имя_директории_где_лежит_пакет

Внимание: Solaris не очень хорошо отслеживает взаимозависимость между
     пакетами, так что вы сами должны позаботиться о порядке установки.
Многие пакеты любят задавать всякие вопросы во время установки (куда
      все это поместить, весь ли пакет установить и т.д.), так что
      будьте готовы. Например, при установке тома AnswerBook спрашивается,
      что копировать на жесткий диск: описание или весь том.
      Если вы копируете только описание, то исходный CD-ROM должен
      быть установлен каждый раз, когда вы запускаете AnswerBook, иначе
      ненайденный том будет помечен как "неживой" и его придется
      восстанавливать. Кстати, тома разбросаны по 7 дискам!!!

-----------------------------------------------------------------

        &dDПроверка установки пакета.&d@

/usr/sbin/pkgchk <имя_пакета>

-----------------------------------------------------------------

        &dDПолучение информации о пакете:&d@

/usr/bin/pkginfo -l <имя_пакета>

например:
   pkginfo -l SUNWcar

   PKGINST:  SUNWcar
      NAME:  Core Architecture, (Root)
  CATEGORY:  system
      ARCH:  sparc.sun4m
   VERSION:  11.5.1,REV=94.07.15.22.10
   BASEDIR:  /
    VENDOR:  Sun Microsystems, Inc.
      DESC:  Core Architecture, (Root)
    PSTAMP:  fourstar940718191413
  INSTDATE:  Aug 16 1995 03:39
   HOTLINE:  Please contact your local service provider
    STATUS:  completely installed
     FILES:     51 installed pathnames
                16 shared pathnames
                 7 directories
                29 executables
              3794 blocks used (approx)

---------------------------------------------------------------

        &dDУдаление пакета:&d@

    /usr/sbin/pkgrm <имя_пакета>

---------------------------------------------------------------

        &dDРабота с пакетами в графическом интерфейсе&d@

 (swmtool для 2.4 или admintool для 2.5)
не надо устанавливать AnswerBook с их помощью.

                       SWMTOOL

запуск:

1. станьте суперпользователем
2. перейдите в графический режим, если вы еще не перешли в него
3. введите:
   /usr/sbin/swmtool &

 На экране возникает новое окно, программа долго-долго собирает
информацию об уже инсталлированных пакетах, затем  переходит  в
режим    установки    (режим    INSTALL/REMOVE    переключается
соответствующими кнопочками) и, скорее всего, сообщает вам, что
"устройство  не  готово, поменяйте установки (property)" Дело в
том, что swmtool  по  умолчанию  считает,  что  устанавливаемый
пакет  лежит  на  CD-ROM  и  менеджер  томов выключен. Если это
действительно так, то вставьте CD-ROM перед  запуском  swmtool.
Иначе  нажмите кнопку Props... (установки), возникает бланк, на
странице (категории) Source  Media  которого  вам  надо  задать
устройство или директорию, где лежит пакет.

 Например,  меняем  Media  Type на Mounted Directory, Directory
Name устанавливаем в  /cdrom/cdrom0  (установка  с  CD-ROM  при
включенном  менеджере  томов)  и  нажимаем кнопку Apply. Если в
указанной вами директории есть пакеты,  то  их  описания  будут
перечислены   в   главном  окне  swmtool.  Для  каждого  пакета
указывается: иконка (один ящик  -  простой  пакет  -  на  такую
иконку  можно жать два раза, и появляется подробное описание, 3
ящика - составной пакет - на такую иконку можно жать два раза, и
она   раскрывается   в  список  внутренних  пакетов  -  уровень
вложенности не ограничен), описание пакета и его предполагаемый
размер.  Выбираете  необходимые  вам  пакеты и нажимаете кнопку
Begin  Installation  (начать  установку).  Далее  весь   диалог
происходит в а/ц режиме как при установке pkgadd. Кстати, бланк
установок имеет большое количество  кнопочек,  менюшек  и  пр.:
есть с чем поиграться...

 Для  того,  чтобы  удалить  пакет,  нажимаете  кнопку  Remove,
выбираете  пакет  (пакеты),  который  вы  хотите  удалить,   и
нажимаете кнопку Begin Removal.

        &dDИзготовление собственного пакета&d@

Чтобы  легче  администрировать  этот разрозненный набор файлов, получающийся
после  компиляции,  их   можно   привести   к   формату   утилиты   "pkgadd"
самостоятельно.  Легче  всего этот вопрос рассмотреть на конкретном примере.
Пусть у нас есть пакет, состоящий из 3х программ: "MyProg.bin", "Myprog.lib"
и  "MyProg.man",  которые  должны  храниться  в  каталогах "/usr/local/bin",
"/usr/local/lib" и "/usr/local/man" соответственно.  Чтобы  сделать  из  них
пакет, надо проделать следующие простые шаги:

     а)  Создадим  директорию, где  будут  храниться  исходные
данные для утилиты "pkgmk", которая и делает собственно  пакет.
Пусть в нашем примере это будет директория "~/tmp/MyPackage".

     б)  Создадим  под  ним  систему  директорий,  где  должны
располагаться файлы пакета, и затем скопируем эти файлы на свои
места.  Т.о.  в  результате  у  нас  должны  получиться  файлы:

~/tmp/MyPackage/bin/MyProg.bin, ~/tmp/MyPackage/lib/MyProg.lib
и ~/tmp/MyPackage/man/MyProg.man

     в)  Затем  надо создать файлы "pkginfo" и "prototype". Они
должны выглядеть примерно так (более  подробную  информацию  об
этих  файлах вы можете получить, набрав команды

    man -s4 pkginfo
    man -s4 prototype

Файл "prototype":

!PROJDIR=/usr/local
1 i pkginfo=pkginfo
1 d none bin 0755 root other
1 f none bin/MyProg.bin 0644 root other
1 d none lib 0755 poul insects
1 f none lib/MyProg.lib 0644 root other
1 d none man 0755 poul insects
1 f none man/MyProg.man 0644 root other


Файл "pkginfo":

PKG=MyProg
NAME=MyPackage
ARCH=sparc
VERSION=Version 1.0
CATEGORY=application
VENDOR=Pavel K. Klodin
EMAIL=webmaster@reksoft.ru
PSTAMP=Pstamp
BASEDIR=/usr/local
CLASSES=none


     г)  После  того,  как  файлы  сделаны,  выполним следующие
команды:

cd ~/tmp/MyPackage
pkgmk -o -d /tmp -r .


     После  этого  в директории "/tmp" будет создан пакет "MyPackage" в виде
структуры файлов  и  директорий.  С  ним  уже  можно  оперировать  утилитой
"pkgadd".   д)   Теперь,  наконец,  выполним  команды  (предварительно  став
суперпользователем с помощью команды "su -"):

cd /tmp
pkgadd -d .


     ПРИМЕЧАНИЕ:   Следует   помнить,  что  пакеты  могут  быть
представлены в двух равноправных формах:

    в виде структуры директорий (как уже было рассмотрено выше);
    в виде так называемых "потоковых пакетов" (stream packages).

     Они  представляют  собой  простой  файл,  как если бы были
записаны  на  стриммерной   кассете   или   каком-либо   другом
последовательном  устройстве  (отсюда,  возможно,  и название).
Обращаться с ними следует так же, как и с "обычными" пакетами  в
виде  структуры  директорий  и  файлов.  Эти  2  формы взаимно
преобразуются командой "pkgtrans".

              Советом поделился Павел Клодин

        &dDSummary of pkg commands:&d@

	    pkginfo {pkg}   - test for presents of package.
	    pkgadd -d /cdrom/Solaris_2.3 <pkg ...>
			    - add missing packages
	    pkgrm {pkg ...} - remove packages.
	    pkgchk -q {pkg} - test for existance of package
	    pkgchk {options} [pkg] - check installed packages for
	    integrity.

    Let's say your Solaris2 workstation is called "sol" and the
    4.1.x server is called "bertha" and you want the printer name
    to be "printer" (imaginative, eh?).

    sol# lpsystem -t bsd bertha             # says bertha is a bsd system
    sol# lpadmin -p printer -s bertha       # creates "printer" on "sol"
					    # to be printed on "bertha"
    sol# accept printer                     # allow queuing
    sol# enable printer                     # allow printing
    sol# lpstat -t                          # check the status

    sol# lpadmin -d printer       # default

    To get transparent mode, try this:

    lpadmin -I any -p printer

        &dD * Пакеты в Linux RedHat * &d@

Поставить пакет

    rpm -i filesystem-1.2-1.i386.rpm

Удалить пакет

    rpm --erase filesystem-1.2-1

Список всех пакетов

    rpm -qa

Список файлов, входящих в неустановленный пакет:

    rpm2cpio < packetname-1.2-1.i386.rpm | cpio -it

 rpm2cpio  <  packetname-1.2-1.i386.rpm  | cpio -it rpm2cpio < packetн
name-1.2-1.i386.rpm | cpio -it
    rpm2cpio < packetname-1.2-1.i386.rpm | cpio -it

Список файлов, входящих в установленный пакет:

    rpm -l   nfs-server-2.2beta16-5

Апдейты к RedHat лежат здесь. Обязательно ставить security updates
 ftp://ftp.funet.fi/pub/Linux/mirrors/redhat/redhat/redhat-4.2/updates/i386/

Установка апдейта
    rpm -Uvh samba-1.9.18p7-0.i386.rpm

        &dD * Пакеты в HP-UX 10.20 * &d@

Пакеты в HP-UX ставятся через подменюшку SAM.

Список всех пакетов

    swlist -l product
.
        &dDНесколько сетевых команд Unix&d@

        &dD1. ping&d@.   Прозвонить удаленую машину.

Проверяет, откликается ли указанная машина по сети:

  ping host.name

Включить непрерывную "прозвонку" (с интервалом в 1 сек.):

  ping -s host.name

Прервать  "прозвонку"  - Сtrl-С .


        &dD2. finger&d@. Кто работает в системе.

Формат использования:

  finger [-l]   пользователь@сетевое.имя.компьютера

Кто работает на машине по имени ipsun.ras.ru :

  finger @ipsun.ras.ru

Как поживает пользователь Мошков на этой машине:

  finger -l moshkow@ipsun.ras.ru

        &dD3. talk&d@.   Вызвать пользователя на разговор

  talk  moshkow           или
  talk moshkow@fedfond -  вызвать  указанного  пользователя  на
                          указанной машине на разговор.

У этого пользователя на экране появится приглашение поговорить:

  Message from Talk_Daemon@ipsun at 23:29 ...
  talk: connection requested by ivanov@server.fedfond.msk.su
  talk: respond with:  talk  ivanov@server.fedfond.msk.su

И если он наберет ответную команду

  talk ivanov@server.fedfond.msk.su

То вы сможете поговорить  друг  с другом. Окончание разговора -
Ctrl-C

        &dD4. mailx&d@.  Послать кому нибудь электронную почту.

/* в Linux надо использовать не mailx, а просто маил */

  mailx  username@host.name
Subject: Тема письма
Текст сообщения
   . . .
Окончание текста сообщения



Чтобы окончить ввод текста письма, в пустой строке нажмите
Ctrl-D. Или поставьте точку "." в начале строки и нажмите ENTER.

  Если письмо уже готово и находится в  файле  let.txt, то отп-
равить его можно так:

mailx -s "Проверка почты" semen@server.fedfond.spb.su < let.txt

        &dD5. mailx&d@.  Прочитать пришедшую на мой адрес почту.

mailx,  запущенный  без аргументов, переходит в командный режим
чтения поступившей почты.  В  этом  режиме  можно  пользоваться
такими командами:

        ?              - выдать help по всем доступным командам
        h 12           - заголовки писем начиная с 12-го номера
        6              - читать 6-ое письмо
        d              - уничтожить текущее письмо
        s fajl         - сохранить письмо в файле "fajl"
        r              - ответить на письмо

для настроек программы mailx используется файл .mailrc, который
должен  лежать  в  домашнем  каталоге   пользователя.   В   нем
желательно иметь строчки такого примерно содержания:

########### вставьте эти строки в свой файл   .mailrc    !!!!
set crt=22
set record='/home/moshkow/Mail.sended'
##############################################################
# чтобы длинные письма "листались" постранично командой more ;
# сохранять  копии всех отправленных  писем
# в файле /home/moshkow/Mail.sended ;

alias max    moshkow@ipsun.ac.msk.su
alias kafedra petrov smirnov@nic.com lapin@sovim.mit.edu

#  почтовые алиасы - можно задать синонимы для длинных почтовых
# адресов или  группы  адресов,  и  использовать  эти  синонимы
# вместо адреса при отправке почты

Если  вы  хотите завести себе благозвучное имя для адреса своей
электронной почты, вставьте в файл /etc/aliases примерно  такие
строчки:

Maksim.Moshkow: moshkow
moshkov:        moshkow

        и выполните команду

    newaliases

И теперь мне можно отправлять письма по таким адресам:

        moshkow@moshkow.ru
        moshkov@moshkow.ru
        Maksim.Moshkow@moshkow.ru

     Если  вы  хотите переадресовывать все пришедшие вам письма
на другой адрес, создайте файл $HOME/.forward и впишите в него

новый@емаил.адрес

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

\yourlogin, newadres@email.adres


Если используется Linux, то можно пользоваться системой procmail
Чтобы  письма  присланные вам по списку рассылки складывались в
отдельный folder, поместите в свой $HOME/.procmailrc :
###############################################################
####### Удаляем дублированние писем (с одинаковым message-id)
:0 Wh: msgid.lock
| formail -D 8192 msgid.cache

####### Mail-листы сбрасываем в отдельный фолдер
:0
* ^(Sender|To|CC): .*(ezh@cdru.com|ezh@ezhe.com|banners@list.techno.ru)
nsmail/ezh

####### Перенаправить тело письма (без заголовка) на программу
:0 b
* Subject: .*uuencoded
| uudecode

####### Если  письмо  небольшого  размера  и  не касается mailing-листа
####### "zhurnal@sharat.co.il" то копию пересылать на мой домашний email.
#######$HOME/.procmailrc :
:0 c
* < 10000
* !^To: .*zhurnal
! moshkow@home.moshkow.ru

####### Посылаем подтверждение о получении писем больше 30Кб
:0 h c
* > 30000
* !^From: CityCat
* !^From: .*linux
* !^FROM_DAEMON
* !^Subject: BOOK614
* !^X-Loop: moshkow@moshkow.ru
| ( egrep -v  '^From moshkow|^Return-Path: moshkow' | formail -r -A"Precedence: junk" -A"X-Loop: moshkow@moshkow.ru" ; echo "Thanks, I have got your mail.") | $SENDMAIL -t
###############################################################

        &dD6. telnet&d@. Залогиниться на удаленную машину.

  telnet host.name

Команда telnet позволяет вам залогиниться на удаленную машину,
и работать на ней, как-будто вы сидите за терминалом, подклю-
ченным непосредственно к ней.

У команды telnet есть "горячий ключ" "Ctrl-]" , который перево-
дит  telnet в командный режим. В этом режиме можно менять пара-
метры работы telnet'а. Выход из командного режима - ENTER.
Среди полезных команд назову так же "exit" и "help"

        &dD7. ftp&d@.    File Trasfer Protocol. Пересылка файлов.

Что делать, если нужно "перетащить  файл"  с  чужой  машины  на
свою  (или  наоборот), а NFS между ними не запущен? Используйте
программу ftp. Это простенькая команда, позволяющая  пересылать
файлы между машинами по протоколу TCP/IP.

    ftp host.name

User name (moshkow): ivanov
Passwd:

        Удаленная  машина  спросит у вас ваше входное имя и па-
роль (под которыми вы зарегистрированы  НА  УДАЛЕННОЙ  машине).
Если  вы на ней не зарегистрированы, попробуйте указать входное
имя "anonymous", а в качестве пароля - свой email-адрес.

После этого ftp переходит в командный режим. В этом  режиме  вы
можете "перемещаться" по каталогам удаленной машины, по катало-
гам своей машины, просматривать их оглавление, и забирать файлы
оттуда к себе, или класть их от себя - туда.

ftp> help       - говорит само за себя
ftp> quit       - завершить работу
ftp> bin        - установить режим пересылки бинарных файлов
                  (настоятельно рекомендую)

ftp> cd katalog - перемещаться по "тамошним" каталогам
ftp> ls         - выдать "тамошнее" оглавление

ftp> lcd katalog - перемещаться по "здешним" каталогам
ftp> !dir       - выдать "здешнее" оглавление
ftp> !ls -al    - выдать "здешнее" оглавление

ftp> get  file-tam  [ file-name-zdes ]  - взять файл оттуда
ftp> put  file-zdes [ file-name-tam ]   - положить файл туда


        &dDКак послать письмо вручную&d@

&dDtelnet localhost 25&d@
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 t30.systud.msk.su ESMTP Sendmail 8.8.5/8.8.5; Thu, 14 May 1998 18:01:21 +0400
vrfy ryba@aquarium.ru
expn ryba@aquarium.ru
&dDhelo whitehouse.gov&d@
250 t30.systud.msk.su Hello localhost [127.0.0.1], pleased to meet you
&dDmail from: god@heavens.com&d@
250 god@heavens.com... Sender ok
&dDrcpt to: moshkow@ipsun.ras.ru&d@
250 moshkow@ipsun.ras.ru... Recipient ok
&dDdata&d@
354 Enter mail, end with "." on a line by itself
&dDSubject: Time to pray!

This the time to pray caoming along!

God

.&d@
250 SAA01324 Message accepted for delivery
&dDquit&d@
.
        &dDЛокальная сеть: Ethernet, Token ring, FDDI&d@

        &dDEthernet&d@

Carrier   Sense  Multiple  Access  Collision  Detect  (CSMA/CD)
Контроль  несущей  с  множественным  доступом   и   разрешением
коллизий.

Стандарт  Ethernet/2  и  IEEE  802.3 похожи, но имеют различный
формат фрейма


&dDEthernet'ов существует 3 типа:&d@

10baseT         Неэкранированная витая пара, разъем RJ45
Twisted pair    (Длинна одной пары до 100м).
                В любой цепочке должно быть не более 4-х хабов.

10base5         Толстый  Ethernet. Желтый 2см кабель, 15 пиновый AUI
Thick ethernet  коннектор у hosta. "Краб" - для подключения к основному
                кабелю. На концах - N-терминаторы.(L<= 500м)

10base2         Тонкий Ethernet с коаксиальным 50-омным кабелем
Thin ethernet   и BNC коннекторами.
                Официальная длина кабеля 185 m (<=300m)
                30 хостов на одном сегменте

+-----+
|Host o------------------.                     "Звезда"
+-----+                   \
                           \  ___
+-----+                     \o   | Hub
|Host o----------------------o   |             10-base-T
+-----+                      o___|
                           /
+-----+                   /
|Host o------------------'
+-----+

+-----+         +-----+         +-----+        "Общая шина"
|Host |         |Host |         |Host |
+--+--+         +--+--+         +--+--+        Thin
 z-+---------------+---------------+-z

+-----+         +-----+         +-----+
|Host |         |Host |         |Host |
+--ш--+         +--ш--+         +--ш--+        Толстый ethernet
   n               n               n    ^
   n               n               n    |до 50м
 "краб"            n               n    v
n==M===============M===============M=======n

        &dDToken ring&d@

Стандарт  Token  ring  разработан  для сетей IBM, и практически
совпадает с IEEE 802.5

Аппаратно  -  звезда  (8  шт)  на витой shielded или unshielded
паре, подключенная к  MultiStationAccessUnit  (MSAU)  Несколько
MSAU  можно  соединять  друг  с другом, они при этом организуют
логическое общее кольцо.

Логически  -  кольцо по которому идет маркер-тележка. Принявший
маркер с сообщением считывает если оно ему, может положить свое
если  маркер "пуст", ищ в любом случает передает маркер дальше.
Пройдя круг маркер уничтожается станцией,  его  запустившей,  и
запускается  новый. Допустим ровно один маркер. Маркер везет не
более одного пакета  с  данными.  Назначается  станция-Monitor,
которая  следит,  чтоб маркеры не шли второй круг, если станция
его породившая не смогла его удалить.

        &dDFDDI&d@

Аппаратно  -  двойное  оптоволоконное  кольцо. В базовом режиме
одно  из  кольец  не  используется.  В  кольце  есть  некоторое
количество   Dual   Attachment   станций.  Если  такая  станция
замечает, что прошедший сквозь нее пакет не вернулся  по  кругу
(кольцо порвано), она автоматически активизирует второе кольцо.
(То же должна сделать DAS на другой стороне от обрыва)

   ___0 DAS      ___0 DAS
  /___o         /___|
 //   \\       //
||     |* --> ||      *
||     o|     ||     o*
 \\___/o DAS   \\___/| DAS
  \___/         \___/

Логически  -  как и Token ring. Маркер может везти пакеты сразу
от  нескольких  станций.  Функции   Monitor'а   выполняют   все
участники кольца.

        &dDРаспай Unshielded twisted pair&d@.

1 оранж    Tx+      | +-1---8-+ |      Rx+  3
2 ОРАНЖ    Tx-      | |       | |      Rx-  6
3 зелен    Rx+      |  |_____|  |      Tx+  1
4 СИНИЙ             |           |
5 синий	            |           |
6 ЗЕЛЕН    Rx-      |___________|      Tx-  2
7 корич            (провод на нас)
8 КОРИЧ
-----------------------------------------------------------------
Для соединения двух адаптеров напрямую, без HUB'а (point-to-point)
используется "перевернутый" провод. Tx+<-->Rx+, Tx-<-->Rx-,...

Многие  современные  ethernet-контроллеры  имеют автоматическое
определение кабеля, и  их  можно  вязать  напрямую  стандартным
"прямым" кабелем - не переворачивая.
.
        &dDГлобальная сеть: хардваре и порты&d@

      DTE                          DCE

(station, router) ** ------ ** (modem) <==== провайдерский линк

        &dDФизические интерфейсы подключения:&d@

EIA/TIA-232
EIA/TIA-449
V.24
V.35
X.21
G.703
EIA.530
HSSI

        &dDЛогические протоколы WAN подключения:&d@

Data link encapsulation для синхронных линий:

&dDDedicated WAN&d@
SDLC        - Synchronous Data Link Control
HDLC        - High-level Data Link Control
LAPB        - Link Access Procedure Balanced
PPP         - Point-to-Point Protocol

&dDSwitched WAN&d@
Frame Relay - упрощеная версия HDLC фрейминга
X.25
ISDN
.
        &dDМаршрутизация TCP/IP&d@

                                           Сеть      "Office"
  +--------+         +--------+            Network   195.1.2.0
  |        |         |        |            Netmask   255.255.255.0
  +--------+         +--------+            Broadcast 195.1.2.255
     | 195.1.2.3         | 195.1.2.10
 ----+-------------------+--------------------------+-------------
          |195.1.2.1                                | 195.1.2.2
  +--------+                                     +--------+
|-|GatewayD|                                     |GatewayO|
| +--------+                                     +--------+
| 198.8.2.1                                     SLIP : 122.5.6.9
|              Сеть      "Developers"                :
| +-------+    Network   198.8.2.0                   :
|-|       |    Netmask   255.255.255.0             Modem
| +-------+    Broadcast 198.8.2.255               . . .
| 198.8.2.2
|                                                  Modem
| +-------+                                        . . .
|-|       |                                          :
| +-------+                                      SLIP: 122.5.6.10
| 198.8.2.3                                     +--------+
                                                |GatewayF|
                                       122.5.6.3+----+---+
   --------------------------------------------------+--------
     | 122.5.6.1         | 122.5.6.2       Сеть      "Filial"
  +--------+         +--------+            Network   122.5.6.0
  |        |         |        |            Netmask   255.255.255.192
  +--------+         +--------+            Broadcast 122.5.6.63

           Статические таблицы маршрутизации

Обычный Host        IP       198.8.2.2
сети "Developers"   Net:     198.8.2.0 -- 198.8.2.255
198.8.2.0           Default: 198.8.2.1

Мост "GatewayD"     ifconfig eth0 198.8.2.1
                    ifconfig eth1 195.1.2.1
                        route add net 198.8.2.0 198.8.2.1  0
                        route add net 195.1.2.0 195.1.2.1  0
                        route add       default 195.1.2.2  1

Мост "GatewayO"     ifconfig eth0 195.1.2.2
                    ifconfig sl0 122.5.6.9 pointopoint 122.5.6.10
                        route add net 195.1.2.0 195.1.2.2  0
                        route add net 198.8.2.0 195.1.2.1  1
                        route add      default 122.5.6.10  1

Обычный Host        IP       195.1.2.3
сети "Office"       Net:     195.1.2.0 -- 195.1.2.255
195.1.2.0           Default: 195.1.2.2
                        route add net 198.8.2.0 195.1.2.1  1
.
        &dDСеть TCP/IP&d@

Протокол  TCP/IP (Transmission Control Protocol/Internet Proto-
col) является  базовым   транспортным   сетевым   протоколом  в
UNIX'е. В заголовке TCP/IP пакета указывается:

IP-адрес отправителя
IP-адрес получателя
Номер порта      (Фактически - номер прикладной программы,
                 которой этот пакет предназначен)

TCP/IP-ишные пакеты имеют интересную особенность:  они способны
"добраться" до  адресата,  пройдя  сквозь разнородные локальные
сети, используя разнообразные физические носители. "Маршрутиза-
цию" IP-пакета  (переброску  его в требуемую сеть) осуществляют
"на добровольных началах" компьютеры, входящие в TCP/IP сеть.

        &dDВсемирная сеть Internet&d@.

Все компютеры мира, поддерживающие протокол TCP/IP и каким-либо
образом  подключенные  друг  к   другу,   образуют   глобальную
всемирную  сеть  TCP/IP  "Internet".  Темпы  роста  "Internet":
100000 IP-адресов в месяц. В настоящий момент (конец 1994 года)
к Internet'у подключено около:

      20,000  сетей
   4,000,000  компьютеров
  35,000,000  пользователей

        &dD1. IP-адрес&d@.

Каждая машина в мире имеет свой уникальный IP-адрес.

IP-адрес - 32-битное число, которое принято записывать в сме-
шанном 16-рично-десятичном формате, в виде 4 чисел, разделенных
точками. Например:

  193.124.148.73
  128.8.2.1

Каждое десятичное число здесь представляет на  самом  деле  два
шестнадцатеричных  разряда.  Может  принимать  значения от 0 до
255. Допустима также шестнадцатеричная запись:

  c1.7c.94.49  или 0xC17C9449
  80.08.02.01  или 0x80080201

В условиях корректно сконфигуренной локальной сети, и при усло-
вии  подключения ее  к всемирной сети Internet, протокол TCP/IP
позволяет вашей сетевой программе работать с ЛЮБЫМ  компьютером
в мире, как если бы он находился в вашей локальной сети.

Уникальность IP-адресов  поддерживается  просто.  Они  выдаются
централизованно.  Контора,  которая этим занимается, называется
NIC - Network Informational Center. Европейское  отделение  NIC
расположено  в  Амстердаме.  Она  ВЫДАЕТ IP-адреса. В адрес NIC
нужно послать форму-запрос установленного образца, и через  не-
которое  время  вам  пришлют "пачку" IP-адресов, выделенных для
вашей сети. E-mail адрес, по которому нужно послать запрос:

  hostmaster@sri-nic.net

Московский узел, раздающий IP-адреса, а так же домены *.ru
доступен по адресу

  РосНИИРОС         xSU/RU NetworkInformationalCenter
  ncc@ripn.net      или      ncc@ussr.eu.net
  www.ripn.net/nic/ripn-docs/

        &dDIP-сеть, подсеть.&d@

IP-сеть -  "пачка"  из  2**n  IP-адресов,  ИДУЩИХ ПОДРЯД. Самый
младший - резервируется. Этот адрес называется адресом IP-сети.
Например 128.8.0.0, или 193.125.149.64 . Адрес сети использует-
ся, когда требуется  указать  всю сеть целиком, например, когда
задается маршрутизация до этой сети.

Маска сети - фактически размер сети, задает число адресов в се-
ти. Задается либо количеством битов в маске сети (например 8бит
- 256 адресов, 6 бит - 64 адреса), либо битовой маской вида

   b'111...11100...00'
         число^^   ^^ битов

которую тоже принято записывать  в  десятично-побайтной записи,
например:

  255.255.255.192 - маска на 64 адреса
  255.255.255.0   - маска на 256 адресов
  255.255.0.0     - маска на 64Kb адресов

Broadcast  адрес  сети   - самый старший адрес в сети. Резерви-
руется для передачи сообщений типа "все-всем-всем" (в сети).

  128.8.255.255

Сети делятся на классы:

Класс A.    "Огромные" сети.
        Адреса этих сетей лежат в промежутке: 1 - 126.
        Маска сети: 255.0.0.0
        Содержит до 16387064 адресов (256*256*256).
        Адреса хостов в этих сетях вида: 125.*.*.*

Класс B.  "Средние" сети.

        Адреса этих сетей лежат в промежутке: 128.0 - 191.255
        Маска сети: 255.255.0.0
        Содержит до 64516 адресов (256*256).
        Адреса хостов в этих сетях вида: 136.12.*.*

Класс C.  "Маленькие" сети.

        Адреса сетей лежат в интервале: 192.0.0 - 255.254.255
        Маска сети: 255.255.255.0
        Содержит 254 адреса.
        Адреса хостов в этих сетях вида: 195.136.12.*

Класс D. "Multicast-сети" (групповая адресация) (в стадии разработки)
        Адреса сетей лежат в интервале: 224-239

Класс E. "Экспериментальные"            240-250

Адреса 0, 127, 255 - специальные и для обычных IP не используется

        &dD2.1. Private Address Space&d@

     Если   ваша   сеть   будет  использоваться  только  внутри
организации, и машины не будут иметь непосредственного выхода в
интернет, то адреса для нее можно брать "с потолка".

В документе RFC 1597 "Address Allocation for Private Internets"
March 1994:

The  Internet  Assigned Numbers Authority (IANA) зарезервировал
три блока IP адресов для использования во внутренних сетях:

        10.0.0.0        -   10.255.255.255     Класс A
        172.16.0.0      -   172.31.255.255     Класс B
        192.168.0.0     -   192.168.255.255    Класс C

Роутеры  большинства  ISP  эти  адреса  не  маршрутизируют, что
добавляет им(адресам) безопасности.

        &dD2. Объявляем IP-адрес на наш ethernet'ный контроллер&d@.

Конфигурация сети на UNIX-машине обычно делается  автоматически
при начальной загрузке. Вкратце ее можно описать так:

Определение трех однотипных карт в Linux (1*ISA, 2*PnP):

/etc/conf.modules
alias eth0 ne
alias eth1 ne
alias eth2 ne

options ne io=0x220,irq=5

Объявляем,   что   наш  IP-адрес  198.8.2.1  и  он  поднят   на
ethernet'ную карту по имени elx70 . В случае  Motorol'ы так на-
зывается ethernet, торчащий из главной системной  платы - платы
с процессором.

   ifconfig  e1x70  198.8.2.1  up

Объявляем, что наш второй контроллер  с  именем  m3760  (нижняя
плата) имеет IP-адрес 198.8.3.1

   ifconfig  m3760  198.8.3.1  up

        &dD3. Маршрутизация локальной сети&d@.

Объявляем, что машины с адресами вида 198.8.2.* *=1,...,254 си-
дят на нашем верхнем локальном сегменте  ethernet, и разговари-
вать с ними надо напрямую, через верхний ethernet, соответству-
ющий нашему адресу 198.8.2.1 - т.е. - elx70. А с машинами, име-
ющими адреса вида 198.8.3.* - через нижний ethernet - с адресом
198.8.3.1

   route add  net  198.8.2.0  198.8.2.1 netmask 255.255.255.0 0
   route add  net  198.8.3.0  198.8.3.1 netmask 255.255.255.0 0

Сетевые пакеты для IP-адресов, которые не лежат в нашей локаль-
ной сети, переправлять на машину с  сетевым адресом 198.8.2.107
- а  уж она сама будет разбираться,  что с  ними делать, и  как
доставить их до конкретных адресатов.

   route add default      198.8.2.107  1

Последний аргумент команды route - метрика.  Ее можно интерпре-
тировать как "расстояние" до "того" gateway'я, или "сколько пе-
ресадок между  gateway'ями придется сделать IP-пакету по дороге
туда. Поскольку IP-адреса 198.8.2.1  и  198.8.3.1 соответствуют
нашим собственный платам ethernet, то и метрика (расстояние) до
них 0. 198.8.2.107 - другая машина - "расстояние до нее" 1.

Смотрим, что у нас получилось

  netstat -rn             # распечатать таблицу маршрутизации

  ping -s fedfond         # "прозвонить" узлы сети
  ping -s fedfond-gate
  ping -s 198.8.2.107

  netstat  -i        # статистика о работе сетевых интерфейсов

Настала пора объяснить, что такое lo0 и localhost.  Это так на-
зываемый Loop-back  интерфейс.  Он  имитирует сетевой интерфейс
локально, не выходя за границы нашего компьютера. Loop-back ин-
терфейсу  соответствует   зарезервированный  за  ним   IP-адрес
127.0.0.1

        &dD4.&d@ Конфигурирование TCP/IP на Мотороле 922.

Придумайте  сетевое имя вашего компьютера. Пусть вы решили, что
ваш компьютер  должен  называться  fedfond,  и  иметь  IP-adres
198.8.2.1  .  Однако  не  забывайте,  что у Моторолы ДВА etherн
net-контроллера, и КАЖДЫЙ из них ДОЛЖЕН иметь  свой  УНИКАЛЬНЫЙ
IP-адрес.  Мы  решаем,  что  второй  наш  ethernet  будет иметь
IP-адрес 198.8.3.1, ну и этому адресу  можно  назначить  вполне
человеческое  имя,  например  "fedfond-gate".

ВНИМАНИЕ:  если  вы  внимательно  рассмотрите  содержание файла
/etc/inet/rc.inet, особенно строку вида

    /usr/sbin/ifconfig e1x70 `uname -n`-gate $net_mask up

то  поймете,  что  второй  ethernet  должен  называться  именно
fedfond-gate , и никак иначе.

Итак, чтобы установить сетевое имя и IP-адреса нашего host'а

1. командой  sysadm  установите  "nodename" . ВНИМАНИЕ:  именно
nodename (имя узла) а не systemname (имя операционной системы)

2.  В файл /etc/hosts вставьте строчки, привязывающие IP-адреса
к имени fedfond и, ВНИМАНИЕ!, fedfond-gate

198.8.2.1    fedfond
198.8.3.1    fedfond-gate

3. Перезагрузитесь.


        &dDКонфигурирование 2-го ethernet в Linux&d@

Первый-то ethernet конфигурится с раздачи - сложность появится,
когда   мы   захотим   увидеть   второй.   Например   можно   в
/etc/rc.d/rc.local поставить такие команды:

# подгрузка дравера с дековским чипом 2140
insmod /lib/modules/2.0.18/de4x5.o io=0
# выделение IP # статический роутинг на вторую сетку
ifconfig eth1  10.232.172.1
route add -net 10.232.172.0 gw 10.232.172.1 netmask 255.255.255.0

Если   дравер   2-го   ethernet'а   вкомпилирован  в  ядро,  то
активизировать его можно так: в файл /etc/lilo.conf вписать

append="ether=0,0,eth0 ether=0,0,eth1"    # если сработает autoprobe
# в случае явного задания параметров карт
append="ether=10,0x300,0xe800,eth0 ether=12,0x280,eth1"

Включить роутинг:

echo 1 > /proc/sys/net/ipv4/ip_forward

        &dDКак узнать hardware адрес ethernet'ной карты&d@

Если   машины   нормально   сконфигурированы   для  TCP/IP,  то
достаточно попинговать их явно или по броадкасту, затем arp -a

    ping [-s] 123.456.789.255
    arp -a

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

Linux: Адрес печатается при загрузке ядра.
       Если карта сконфигурирована, то адрес сообщает команда
       ifconfig

Sun:   Адрес печатается boot-монитором при старте
       Hardware адрес ethernet'а на Sun можно произвольно менять
       находясь в boot-мониторе, или командой ifconfig
       подробности см. в Sun NVRAM & hostid FAQ

HP-UX: Адрес можно узнать командой lanscan. На рабочих станциях
       адрес можно узнать еще и из boot-монитора PDC.

        &dD5. Прикладные интерфейсы&d@.

Чтобы  писать программы, работающие с сетью, программист должен
пользоваться каким-либо набором системных вызовов и функций. От
BSD-Unix'а  в  жизнь  вошел получивший большую популярность API
Berkеlеy-sockets. AT&T System V породила TLI  (Transport  Level
Interface) - построенный на технологии "потоков" (streams).

SVR4   поддерживает   и   то,   и   другое.  Поддержку  сокетов
обеспечивает демон inetd (Internet Super Server), поддержку TLI
обеспечивает демон listen (Network Listener).

        &dD6.&d@ Конфигурация TLI

Демон listen  управляется  специальной  базой данных, в которую
необходимо вписать  IP-адрес  нашего host'а. Делается это "один
раз в жизни". IP-адрес задается в  хитрой шестнадцатеричной за-
писи.

Итак, если наши IP-адреса 198.8.2.1 и  198.8.3.1, их шестнадца-
теричная запись C6080201, C6080301 , то мы должны единовременно
в