unixhelp
страница №2
...ыполняющаяся программа.Средства экономии памяти. Виртуальная память.
РЕЕНТЕРАБЕЛЬНОСТЬ КОДА. Когда одна и та же программа(выполня-
емый файл) запущена в нескольких экземплярах, то в оперативную
память загружается только одна копия выполняемого ассемблерного
кода на всех. Каждый выполнямый процесс использует один и тот
же текст программы, просто у каждого процесса имеется свой соб-
ственный указатель на текущий оператор.
РАЗДЕЛЯЕМЫЕ БИБЛИОТЕКИ. (В 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, например, все характеристики держит на
&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 установлена на машинах с
различными типами процессоров и различной архитектурой.
&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).
Они представляют собой простой файл, как если бы были
записаны на стриммерной кассете или каком-либо другом
последовательном устройстве (отсюда, ...


