Руководство FreeBSD

         

Мм (DDS: Digital Data Storage)


Ленты шириной 4мм заменяют QIC в качестве наиболее предпочтительного носителя для создания резервных копий. Эта тенденция значительно усилилась после покупки компанией Conner фирмы Archive, ведущего производителя накопителей QIC и последующего прекращения их выпуска. Накопители 4мм малы по размеру и мало шумят, но у них нет репутации носителя, обладающего надежностью приводов 8мм. Картриджи более дешевы и меньше по размеру (3 x 2 x 0.5 дюймов, 76 x 51 x 12 мм), чем 8мм-картриджи. Накопители для лент шириной 4мм, как и 8мм, имеют сравнительно малый срок службы головок, по причине использования в обоих случаях технологии спирального сканирования (helical scan).

Пропускная способность у таких накопителей начинается с цифры ~150kB/s, пиковая достигает ~500 kB/s. Ёмкость накопителей начинается с 1.3 GB и может достигать 2.0 GB. Аппаратное сжатие, имеющееся на большинстве таких накопителей, даёт увеличение ёмкости примерно вдвое. Блоки многоприводных ленточных библиотек могут иметь до 6 накопителей в одном модуле с автоматической сменой ленты. Емкость библиотек может достигать 240 GB.

Стандарт DDS-3 в настоящее время поддерживает ёмкости лент вплоть до 12 ГБ (или 24 ГБ сжатой информации).

В накопителях 4мм, как и в приводах 8мм, используется технология спирального сканирования. Все плюсы и минусы этой технологии относятся как к 4мм, так и 8мм приводам.

Не следует использовать ленты после того, как они были подвергнуты 2000 проходов, или были использованы для создания 100 полных копий.



Мм (Exabyte)


Ленты шириной 8мм являются самым распространённым типом для ленточных SCSI-накопителей; они же являются наиболее удачным выбором при выборе типа носителей для обмена лентами. Наверное, каждый сервер имеет привод Exabyte шириной 8мм и объёмом 2 ГБ. Эти приводы удобны, они работают надёжно и тихо. Картриджи дешевы и малы по размеру (4.8 x 3.3 x 0.6 дюймов; 122 x 84 x 15 мм). Одним минусом лент шириной 8мм является сравнительно малое время службы головок и лент из-за высокой скорости движения ленты вдоль головок.

Скорость передачи данных варьируется от ~250 kB/s до ~500 kB/s. Объём хранимых данных начинается с 300 МБ и может достигать 7 ГБ. Аппаратное сжатие, имеющееся практически на всех таких приводах, увеличивает емкость примерно вдвое. Эти приводы существуют как в виде отдельных модулей, так и в виде многоприводных ленточных библиотек с 6 приводами и 120 лентами в одном отсеке. Ленты сменяются автоматически модулем. Емкости библиотек достигают величин, превышающих 840 ГБ.

Модель Exabyte ``Mammoth'' поддерживает ёмкость ленты в 12 ГБ (24 ГБ со сжатием) и стоит примерно вдвое больше, чем обычный ленточный накопитель.

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



AIT


AIT - это новый формат фирмы Sony, который позволяет хранить до 50ГБ (со сжатием) информации на одной ленте. Ленты содержат микросхемы памяти, на которых размещается каталог содержимого ленты. Этот каталог может быть быстро считан накопителем для определения расположения файлов на ленте, вместо того, чтобы тратить несколько минут на поиск, как это происходит с другими форматами. Такое программное обеспечение, как SAMS:Alexandria, может управлять сорока или большим количеством ленточных библиотек AIT, связываясь непосредственно с памятью лент для вывода их содержимого, определения того, какие файлы были скопированы на какую ленту, выбора нужной ленты, её загрузки и восстановления данных с ленты.

Библиотеки с такими функциями стоят в районе $20,000, выводя их из ниши любительского рынка.



Amanda


Amanda (Advanced Maryland Network Disk Archiver) является целой клиент/серверной системой резервного копирования, а не отдельной программой. Сервер Amanda сможет осуществлять резервное копирование на единственный накопитель любого количества компьютеров, на которых имеется клиент Amanda и которые могут связываться по сети с сервером Amanda. Общей проблемой систем с большим количеством больших дисков является то, что время, требуемое для непосредственной записи данных на ленту, превышает лимит времени, выделенный на эту задачу. Amanda

решает эту проблему. Amanda может использовать ``промежуточный диск'' для резервного копирования нескольких файловых систем одновременно. Amanda создаёт ``наборы архивов'': группа лент, используемых в некоторый период времени для создания полных копий всех файловых систем, перечисленных в конфигурационном файле системы Amanda. ``Архивный набор'' содержит также создаваемый каждую ночь инкрементальные (или дифференциальные) резервные копии всех файловых систем. Восстановление повреждённой файловой системы требует наличия самой последней полной копии и инкрементальных резервных копий.

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



B.1. Книги и журналы, специализирующиеся на FreeBSD


Международные книги и журналы:

(на китайском).

FreeBSD Unleashed (перевод на китайский), опубликовано China Machine Press. ISBN 7-111-10201-0.

FreeBSD From Scratch First Edition (на китайском), опубликовано China Machine Press. ISBN 7-111-07482-3.

FreeBSD From Scratch Second Edition (на китайском), опубликовано China Machine Press. ISBN 7-111-10286-X.

FreeBSD Handbook (на китайском), опубликовано . ISBN 7-115-10541-3.

FreeBSD 3.x Internet (на китайском), опубликовано Tsinghua University Press. ISBN 7-900625-66-6.

FreeBSD & Windows (на китайском), ISBN 7-113-03845-X

FreeBSD Internet Services HOWTO (на китайском), ISBN 7-113-03423-3

FreeBSD for PC 98'ers (на японском), выпущено SHUWA System Co, LTD. ISBN 4-87966-468-5 C3055 P2900E.

FreeBSD (на японском), выпущено CUTT. ISBN 4-906391-22-2 C3055 P2400E.

(на японском), выпущено . ISBN 4-88135-473-6 P3600E.

(на японском), выпущено ASCII. ISBN 4-7561-1733-3 P3000E.

FreeBSD Handbook (японский перевод), выпущено . ISBN 4-7561-1580-2 P3800E.

FreeBSD mit Methode (на немецком), выпущено /Vertrieb Hanser, 1998. ISBN 3-932311-31-0.

(на немецком), выпущено , 2001. ISBN 3-932311-88-4.

(на немецком), выпущено , 2003. ISBN 3-936546-06-1.

(на немецком), выпущено , 2003. ISBN 3-8266-1343-0.

(на японском), выпущено Mainichi Communications Inc..

Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo (на Индонезийском языке), выпущено Elex Media Komputindo.

Книги и журналы на английском языке:

, выпущено , 2002. ISBN: 1886411743

, выпущено , 2003. ISBN: 0596005164

, выпущено , 2000. ISBN: 0201704811

, выпущено The Bit Tree Press, 2001. ISBN: 0971204500

Teach Yourself FreeBSD in 24 Hours, выпущено , 2002. ISBN: 0672324245

FreeBSD unleashed, выпущено , 2002. ISBN: 0672324563

FreeBSD: The Complete Reference, выпущено , 2003. ISBN: 0072224096



B.2. Руководства для пользователей


Computer Systems Research Group, UC Berkeley. 4.4BSD User's Reference Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-075-9

Computer Systems Research Group, UC Berkeley. 4.4BSD User's Supplementary Documents. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-076-7

UNIX in a Nutshell. O'Reilly & Associates, Inc., 1990. ISBN 093717520X

Mui, Linda. What You Need To Know When You Can't Find Your UNIX System Administrator. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-104-6

написал который доступен в Online в HTML и PS форматах.

Итальянский перевод этого документа доступен как часть FreeBSD Italian Documentation Project.

. (Японский перевод). , 1998. ISBN4-8399-0088-4 P3800E.

составил Online Путеводитель для новичков в UNIX.



B.3. Руководства для администраторов


Albitz, Paul and Liu, Cricket. DNS and BIND, 4th Ed. O'Reilly & Associates, Inc., 2001. ISBN 1-59600-158-4

Computer Systems Research Group, UC Berkeley. 4.4BSD System Manager's Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-080-5

Costales, Brian, et al. Sendmail, 2nd Ed. O'Reilly & Associates, Inc., 1997. ISBN 1-56592-222-0

Frisch, Æleen. Essential System Administration, 2nd Ed. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-127-5

Hunt, Craig. TCP/IP Network Administration, 2nd Ed. O'Reilly & Associates, Inc., 1997. ISBN 1-56592-322-7

Nemeth, Evi. UNIX System Administration Handbook. 2nd Ed. Prentice Hall, 2000. ISBN 0-13-020601-6

Stern, Hal Managing NFS and NIS

O'Reilly & Associates, Inc., 1991. ISBN 0-937175-75-7

. (Japanese translation). Mainichi Communications Inc., 1998. ISBN4-8399-0109-0 P3300E.

Dreyfus, Emmanuel. 2nd Ed. (на французском), Eyrolles, 2004. ISBN 2-212-11463-X



B.4. Руководства для программистов


Asente, Paul, Converse, Diana, and Swick, Ralph. X Window System Toolkit. Digital Press, 1998. ISBN 1-55558-178-1

Computer Systems Research Group, UC Berkeley. 4.4BSD Programmer's Reference Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-078-3

Computer Systems Research Group, UC Berkeley. 4.4BSD Programmer's Supplementary Documents. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-079-1

Harbison, Samuel P. and Steele, Guy L. Jr. C: A Reference Manual. 4rd ed. Prentice Hall, 1995. ISBN 0-13-326224-3

Kernighan, Brian and Dennis M. Ritchie. The C Programming Language.. PTR Prentice Hall, 1988. ISBN 0-13-110362-9

Lehey, Greg. Porting UNIX Software. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-126-7

Plauger, P. J. The Standard C Library. Prentice Hall, 1992. ISBN 0-13-131509-9

Spinellis, Diomidis. . Addison-Wesley, 2003. ISBN 0-201-79940-5

Stevens, W. Richard. Advanced Programming in the UNIX Environment. Reading, Mass. : Addison-Wesley, 1992. ISBN 0-201-56317-7

Stevens, W. Richard. UNIX Network Programming. 2nd Ed, PTR Prentice Hall, 1998. ISBN 0-13-490012-X

Wells, Bill. ``Writing Serial Drivers for UNIX''. Dr. Dobb's Journal. 19(15), December 1994. pp68-71, 97-99.



B.5. Внутренности операционной системы


Andleigh, Prabhat K. UNIX System Architecture. Prentice-Hall, Inc., 1990. ISBN 0-13-949843-5

Jolitz, William. ``Porting UNIX to the 386''. Dr. Dobb's Journal. January 1991-July 1992.

Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and John Quarterman The Design and Implementation of the 4.3BSD UNIX Operating System. Reading, Mass. : Addison-Wesley, 1989. ISBN 0-201-06196-1

Leffler, Samuel J., Marshall Kirk McKusick, The Design and Implementation of the 4.3BSD UNIX Operating System: Answer Book. Reading, Mass. : Addison-Wesley, 1991. ISBN 0-201-54629-9

McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and John Quarterman. The Design and Implementation of the 4.4BSD Operating System. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-54979-4

(глава 2 этой книги доступна онлайн как часть Проекта документирования FreeBSD, и глава 9 доступна .)

Marshall Kirk McKusick, George V. Neville-NeilThe Design and Implementation of the FreeBSD UNIX Operating System. Boston, Mass. : Addison-Wesley, 2004. ISBN 0-201-70245-2

Stevens, W. Richard. TCP/IP Illustrated, Volume 1: The Protocols. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63346-9

Schimmel, Curt. Unix Systems for Modern Architectures. Reading, Mass. : Addison-Wesley, 1994. ISBN 0-201-63338-8

Stevens, W. Richard. TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP and the UNIX Domain Protocols. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63495-3

Vahalia, Uresh. UNIX Internals -- The New Frontiers. Prentice Hall, 1996. ISBN 0-13-101908-2

Wright, Gary R. and W. Richard Stevens. TCP/IP Illustrated, Volume 2: The Implementation. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-X



B.6. Безопасность


Cheswick, William R. and Steven M. Bellovin. Firewalls and Internet Security: Repelling the Wily Hacker. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-63357-4

Garfinkel, Simson and Gene Spafford. Practical UNIX & Internet Security. 2nd Ed. O'Reilly & Associates, Inc., 1996. ISBN 1-56592-148-8

Garfinkel, Simson. PGP Pretty Good Privacy O'Reilly & Associates, Inc., 1995. ISBN 1-56592-098-8



B.7. Оборудование


Anderson, Don and Tom Shanley. Pentium Processor System Architecture. 2nd Ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40992-5

Ferraro, Richard F. Programmer's Guide to the EGA, VGA, and Super VGA Cards. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-62490-7

Intel Corporation publishes documentation on their CPUs, chipsets and standards on their , usually as PDF files.

Shanley, Tom. 80486 System Architecture. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40994-1

Shanley, Tom. ISA System Architecture. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40996-8

Shanley, Tom. PCI System Architecture. 4th ed. Reading, Mass. : Addison-Wesley, 1999. ISBN 0-201-30974-2

Van Gilluwe, Frank. The Undocumented PC, 2nd Ed. Reading, Mass: Addison-Wesley Pub. Co., 1996. ISBN 0-201-47950-8

Messmer, Hans-Peter. The Indispensable PC Hardware Book, 4th Ed. Reading, Mass: Addison-Wesley Pub. Co., 2002. ISBN 0-201-59616-4



B.8. История UNIX®


Lion, John Lion's Commentary on UNIX, 6th Ed. With Source Code. ITP Media Group, 1996. ISBN 1573980137

Raymond, Eric S. The New Hacker's Dictionary, 3rd edition. MIT Press, 1996. ISBN 0-262-68092-0. Also known as the

Salus, Peter H. A quarter century of UNIX. Addison-Wesley Publishing Company, Inc., 1994. ISBN 0-201-54777-5

Simon Garfinkel, Daniel Weise, Steven Strassmann. The UNIX-HATERS Handbook. IDG Books Worldwide, Inc., 1994. ISBN 1-56884-203-1

Don Libes, Sandy Ressler Life with UNIX -- special edition. Prentice-Hall, Inc., 1989. ISBN 0-13-536657-7

The BSD family tree. http://www.FreeBSD.org/cgi/cvsweb.cgi/src/share/misc/bsd-family-tree

или на современном компьютере FreeBSD.

The BSD Release Announcements collection. 1997.

Networked Computer Science Technical Reports Library.

Old BSD releases from the Computer Systems Research group (CSRG). : The 4CD set covers all BSD versions from 1BSD to 4.4BSD and 4.4BSD-Lite2 (but not 2.11BSD, unfortunately). As well, the last disk holds the final sources plus the SCCS files.



B.9. Прочие издания


The C/C++ Users Journal. R&D Publications Inc. ISSN 1075-2838

Sys Admin -- The Journal for UNIX System Administrators Miller Freeman, Inc., ISSN 1061-2688

freeX -- Das Magazin für Linux - BSD - UNIX (на немецком) Computer- und Literaturverlag GmbH, ISSN 1436-7033



Бинарные форматы


Для понимания почему FreeBSD использует формат elf(5), вам потребуется сначала немного узнать о трех ``доминирующих'' исполняемых форматах для UNIX®:

Старейший и ``классический'' объектный формат UNIX. Он использует короткий и компактный заголовок с магическим числом в начале, которое часто используется для описания формата (смотрите a.out(5) с более подробной информацией). Он содержит три загружаемых сегмента: .text, .data и .bss плюс таблицу символов и таблицу строк.

COFF

Объектный формат SVR3. Заголовок включает таблицу разделов, так что могут быть сегменты кроме .text, .data и .bss.

Наследник формата COFF, поддерживающий множественные сегменты и 32-битные или 64-битные значения. Одно важное замечание: ELF был разработан в предположении что есть только по одному ABI на одну архитектуру. Это предположение совершенно не верно, и не только в мире коммерческих SYSV (в котором есть как минимум три ABI: SVR4, Solaris, SCO).

FreeBSD пытается обойти эту проблему, в частности предоставляя утилиту для оглавления известного исполняемого файла ELF информацией об ABI с которым он совместим. Обратитесь к странице справочника brandelf(1) за более подробной информацией.

FreeBSD имеет произошла из ``классического'' лагеря и использовала формат a.out(5), технологию опробованную и проверенную на многих поколениях релизов BSD, до начала ветки 3.X. Хотя собирать и запускать родные бинарные файлы ELF (и ядро) в системе FreeBSD можно было несколько раньше, FreeBSD вначале сопротивлялась ``проталкиванию'' ELF как формата по умолчанию. Почему? Когда лагерь Linux производил болезненный переход к ELF, у него не было большого преимущества перед исполняемым форматом a.out, из-за негибкого, основанного на таблице переходов механизма разделяемых библиотек, что делало создание разделяемых библиотек очень трудным для поставщиков и разработчиков. Когда доступные инструменты ELF предоставили решение проблемы разделяемых библиотек, и появилась некоторая перспектива, цена перехода была признана допустимой и он был сделан.
Механизм разделяемых библиотек FreeBSD близок по стилю к механизму разделяемых библиотек SunOS™ от Sun, и поэтому очень прост в использовании.

Итак, почему так много разных форматов?

Давно, в темном далеком прошлом, оборудование было простым. Это простое оборудование поддерживало простые, маленькие системы. a.out был совершенно адекватен задаче представления бинарных файлов на таких простых системах (PDP-11). Люди, портировавшие UNIX с этих простых систем, оставили a.out формат потому, что он был достаточен для ранних портов UNIX на архитектуры подобные Motorola 68k, VAXen, etc.

Затем какой-то смышленый инженер по оборудованию решил что если он сможет заставить программы исполнять некоторые трюки, то сможет несколько упростить дизайн и заставить ядро CPU работать быстрее. Хотя это было сделано с новым типом оборудования (известного сейчас как RISC), формат a.out не подходил для него, и было разработано множество форматов чтобы получить лучшую производительность на таком оборудовании по сравнению с той, которую мог предоставить простой формат a.out. Были изобретены форматы COFF, ECOFF

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

Кроме того, размеры программ стали огромны, а диски (и оперативная память) остались относительно малы, поэтому появилась концепция разделяемых библиотек. Система VM также стала более сложной. Хотя все эти усовершенствования были выполнены с форматом a.out, его полезность все больше и больше уменьшалась с каждым нововведением. К тому же потребовалась динамическая загрузка во время выполнения, или выгрузка частей программы после выполнения стартового кода для экономии памяти или места на диске. Языки усложнялись и потребовался автоматический вызов кода перед главной программой. Множество изменений было внесено в формат a.out

чтобы все это появилось и в основном работало некоторое время. Настал момент, когда a.out не смог решить все эти проблемы без чрезмерного увеличения размера и сложности.


В то время как ELF решил многие из этих проблем, перевод этого формата с системы на систему болезненен. Поэтому формату ELF пришлось подождать пока не стало более болезненным оставаться с a.out чем перейти на ELF.

Тем временем, инструменты разработки, от которых произошли инструменты разработки FreeBSD (особенно ассемблер и загрузчик) развивались в двух параллельных направлениях. Направление FreeBSD добавило разделяемые библиотеки и устранило некоторые ошибки. Люди из GNU, написавшие эти программы, переписали их и добавили простую поддержку сборки кросскомпиляторов, подключения различных форматов в будущем и так далее. Многим требовалось собрать кросскомпиляторы для FreeBSD, и это не удалось, поскольку устаревшие исходные тексты FreeBSD для as и ld

не подходили для этой задачи. Новый набор инструментов GNU (binutils) поддерживает кросскомпилирование, ELF, разделяемые библиотеки, C++, расширения и т.д. В дополнение, многие поставщики выпустили программы в формате ELF и они хорошо подходят для запуска в FreeBSD.

ELF более выразителен чем a.out позволяет базовой системе быть более гибкой. ELF лучше поддерживается, и предоставляет поддержку кросскомпиляторов, что важно для многих людей. ELF

может быть немного медленнее чем a.out, но замерить это сложно. Есть также множество деталей, отличающихся для этих двух форматов, в том как они отображают страницы, обрабатывают начальный код, и т.д. В этом нет ничего очень важного, но они различаются. В настоящее время поддержка a.out убрана из ядра GENERIC, и со временем будет убрана из ядра как только потребность в запуске старых программ a.out останется в прошлом.


Благодарности


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

Несколько компаний поддерживали разработку этого документа, оплачивая авторам их труд, оплачивая публикацию и т.д. В частности, BSDi (в последствии приобретённая компанией Wind River Systems) оплачивала труд по улучшению этой книги участникам Проекта Документации FreeBSD, что в итоге сделало возможным выпуск первой печатной версии в марте 2000 года (ISBN 1-57176-241-8). Впоследствии компания Wind River Systems оплатила работу нескольких авторов по улучшению генерации книги в удобном для печати виде и добавлению нескольких глав. Кульминация этой работы являла собой публикацию второй печатной версии в ноябре 2001 года (ISBN 1-57176-303-1). В 2003-2004 годах заплатила нескольким контрибьюторам за улучшение Handbook при подготовке к третьей редакции.



Целевая аудитория


Люди, которые используют FreeBSD с недавнего времени, найдут, что первая часть этой книги проводит читателя через процесс установки FreeBSD и кратко освещает идеи и традиции, на которых базируется UNIX®. Работа с этой частью требует несколько большего, чем просто желание исследовать - необходима возможность принимать к сведению новые идеи.

Вторая, много большая часть Руководства, является всеобъемлющим справочником о всех темах, которые могут интересовать администраторов FreeBSD. Некоторые из глав этой части могут рекомендовать вам предварительное чтение других документов, о чём упоминается в кратком обзоре в начале каждой главы.

Список рекомендуемой дополнительной литературы вы можете найти здесь: Прил. B.



Cpio


является оригинальной программой UNIX для обмена файлами на магнитных носителях. В утилите cpio имеются опции (кроме всего прочего), позволяющие выполнять изменение порядка следования байтов, поддерживающие различные форматы архивов и выполняющие перенаправление данных другим программам. Последняя возможность делает cpio прекрасным выбором для целей установки. cpio не знает о том, как работать с каталогами, список файлов должен даваться через stdin.

cpio не поддерживает создание резервных копий по сети. Вы можете воспользоваться перенаправлением вывода и программой rsh

для посылки данных на удалённый накопитель.

# for f in directory_list; do

find $f >> backup.list

done

# cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device"

Где directory_list это список директорий, c которых Вы хотите создать резервные копии, user@host это комбинация пользователь/хост которая описывает того кто занимается резервированием, и backup_device это устройство куда копии должны быть записаны (например, /dev/nsa0).



Даемоны, сигналы, уничтожение процессов


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

Мы называем эти программы даемонами. Даемоны это персонажи греческой мифологии; хорошие или плохие, они были спутниками человека и, вообще говоря, выполняли полезную работу для людей. Почти как веб- и почтовые серверы выполняют полезную работу сегодня. Это причина, по которой талисманом BSD долгое время является веселый даемон в тапочках и с вилами.

Есть соглашение, по которому имя программы, которая обычно запускается как даемон, заканчивается на ``d''. BIND это Berkeley Internet Name Daemon (выполняемая программа называется named), программа веб сервера Apache называется httpd, даемон очереди печати это lpd и так далее. Это соглашение, а не жесткое правило; например, главный почтовый даемон для Sendmail

называется sendmail, а не maild, как вы могли бы предположить.

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

В некоторых случаях FreeBSD тоже посылает сигналы приложениям.
Если приложение плохо написано и пробует обратиться к области памяти, к которой оно не должно обращаться, FreeBSD посылает процессу сигнал нарушение сегментации (SIGSEGV). Если приложение использует системный вызов alarm(3), чтобы получить уведомление по истечении определенного периода времени, будет отправлен сигнал Alarm (SIGALRM) и т.д.

Два сигнала могут быть использованы для завершения процесса, SIGTERM и SIGKILL. SIGTERM это корректный способ завершить процесс; процесс может поймать сигнал, определить, что его хотят завершить, закрыть любые файлы, которые он мог открыть, и закончить то, что он делал в момент перед закрытием. В некоторых случаях процесс может даже игнорировать SIGTERM, если выполняет задачу, которая не может быть прервана.

SIGKILL не может быть проигнорирован процессом. Этот сигнал говорит ``Меня не волнует что ты делаешь -- остановись немедленно''. Если вы посылаете процессу SIGKILL, FreeBSD сразу же остановит этот процесс[1].

Другие сигналы, которые возможно вам понадобятся, SIGHUP, SIGUSR1, и SIGUSR2. Это сигналы общего назначения, различные приложения могут по-разному реагировать на них.

Предположим, что вы изменили файл конфигурации веб сервера -- теперь нужно указать ему перечитать конфигурацию. Можно остановить и запустить httpd, но это приведет к кратковременной остановке сервера, которая может быть нежелательна. Большинство даемонов написаны так, чтобы при получении сигнала SIGHUP перечитывать файлы конфигурации. Поэтому вместо уничтожения и запуска httpd можно послать сигнал SIGHUP. Поскольку нет стандартного способа реагирования на этот сигнал, различные даемоны будут вести себя по разному; прочитайте документацию на даемон по этому вопросу.

Сигналы посылаются с помощью команды kill(1), как показано в этом примере.

Отправка сигнала процессу

Этот пример показывает как послать сигнал inetd(8). Файл конфигурации inetd /etc/inetd.conf, inetd перечитает этот файл, если ему отправить сигнал SIGHUP.

Нужно определить PID процесса, которому вы хотите отправить сигнал.


Сделайте это с помощью и grep(1). Команда grep(1) используется для поиска по заданной строке в выходном потоке. Эта команда запускается под обычным пользователем, а под root, поэтому ps(1) должна быть запущена с параметром ax.

% ps -ax | grep inetd

198 ?? IWs 0:00.00 inetd -wW

Итак, PID 198. В некоторых случаях в выводе команды может также появиться grep inetd. Это из-за способа, которым ps(1) получает список запущенных процессов.

Используйте для отправки сигнала. Поскольку inetd(8) запускается из под root, нужно сначала использовать su(1) для получения прав root.

% su

Password:

# /bin/kill -s HUP 198

Как и большинство команд UNIX®, kill(1) ничего не выведет, если отработает нормально. Если вы посылаете сигнал процессу, которым не владеете, на экране появится ``kill: PID: Operation not permitted''. При неправильно набранном PID вы или отправите сигнал другому процессу, что может привести к неприятностям, или, если повезет, сигнал будет отправлен на PID, который в данный момент не используется -- на экране появится ``kill: PID: No such process''.

Зачем использовать /bin/kill?: Во многих оболочках команда kill встроена; таким образом, оболочка вместо вызова /bin/kill сама посылает сигнал. Это может быть очень полезно, но в разных оболочках имя сигнала указывается по-разному. Чем пытаться выучить их все, гораздо проще использовать /bin/kill ...

непосредственно.

Отправка других сигналов очень похожа, просто замените TERM

или KILL в командной строке на имя другого сигнала.

Важно: Уничтожение процессов наугад может быть плохой идеей. В частности, init(8), чей PID 1, имеет особое значение. Выполнение /bin/kill -s KILL 1 -- быстрый способ перегрузить систему. Всегда

дважды проверяйте параметры запуска kill(1) перед тем, как нажать Enter.


DEVFS (DEVice File System)


Device filesystem, или DEVFS, предоставляет доступ к пространству устройств ядра через общую файловую систему. Вместо создания и модификации файлов устройств, DEVFS создает специальную файловую систему.

Обращайтесь к

devfs(5) за дополнительной информацией.

В FreeBSD 5.0 и выше DEVFS используется по умолчанию.



DLT


Формат DLT обладает самой высокой скоростью передачи данных среди всех перечисленных здесь накопителей. Лента шириной 1/2" (12.5мм) помещена в один картридж с катушкой (4 x 4 x 1 дюймов; 100 x 100 x 25 мм). Вдоль одной из сторон картриджа расположена сдвигающаяся крышечка. Механизм накопителя открывает эту крышку, чтобы вытащить конец ленты. На этом конце имеется овальное отверстие, которое используется для ``захвата'' ленты. Принимающая катушка размещена внутри накопителя. Все другие типы картриджей, перечисленные здесь (за исключением 9-дорожечных лент), имеют как подающий, так и принимающий барабаны внутри самого картриджа.

Скорость передачи данных равна примерно 1.5 MB/s, что в три раза больше скорости передачи данных для накопителей 4мм, 8мм или QIC. Ёмкость картриджей варьируется от 10 ГБ до 20 ГБ для одного накопителя. Приводы могут компоноваться как многоленточные роботизированные, так и многоленточные, многоприводные библиотеки лент, вмещающие от 5 до 900 лент и от 1 до 20 приводов, что даёт ёмкость хранилища от 50 ГБ до 9 ТБ.

Формат DLT Type IV поддерживает емкость до 70 ГБ со сжатием.

Данные на ленту записываются в виде дорожек, параллельных направлению движения (точно также, как и для лент QIC). Одновременно записываются две дорожки. Срок жизни головок чтения/записи сравнительно велик; как только лента перестает двигаться, одновременно прекращается трение между головками и лентой.



До того, как случится катастрофа


Вам нужно выполнить всего лишь четыре шага для того, чтобы быть готовым к любому сбою.

Во-первых, распечатайте разметку диска для всех ваших дисков (к примеру, disklabel da0 | lpr), таблицу файловых систем (/etc/fstab) и все сообщения, выводимые при загрузке, каждого по два экземпляра.

Во-вторых, определите, все ли устройства присутствуют на загрузочной и аварийной дискетах (boot.flp и fixit.flp). Самым простым способом проверки является перезагрузка вашей машины с загрузочной дискетой, вставленной в дисковод и последующая проверка сообщений при загрузке. Если все имеющиеся у вас устройства здесь будут перечислены и будут работоспособны, перейдите к третьему шагу.

В противном случае вам необходимо будет создать две особым образом сформированные загрузочные дискеты, на которых помещено ядро, могущее смонтировать все ваши диски и получить доступ к вашему стримеру. На этих дискетах должны быть: fdisk, disklabel, newfs, mount и какая-либо используемая вами программа резервного копирования. Эти программы должны быть скомпонованы статически. Если вы используете dump, то на дискете должна присутствовать и программа restore.

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

В-четвертых, проверяйте работу дискет (либо boot.flp и fixit.flp, либо двух дискет, которые вы сделали при выполнении второго шага) и лент с резервными копиями. Ведите журнал выполняемых действий. Храните эти записи вместе с загрузочной дискетой, распечатками и лентами. Вы просто обезумеете при восстановлении данных, если окажется, что записи могли бы избежать разрушения ваших резервных копий (Каким образом? Вместо команды tar xvf /dev/sa0

вы могли случайно набрать tar cvf /dev/sa0 и тем самым перезаписать вашу резервную копию).

Для дополнительной страховки, каждый раз создавайте загрузочные дискеты и две резервные копии на ленте. Храните одну из копий в каком-то удаленном месте и НЕ в том же здании, где находится ваш офис.
Достаточно большое количество компаний во Всемирном Торговом Центре изучило это на своей шкуре. Это удаленное хранилище должно быть физически отделено на большое расстояние от ваших компьютеров и дисковых устройств.



Пример 16-3. Скрипт для создания загрузочной дискеты

#!/bin/sh # # create a restore floppy # # format the floppy # PATH=/bin:/sbin:/usr/sbin:/usr/bin

fdformat -q fd0 if [ $? -ne 0 ] then echo "Bad floppy, please use a new one" exit 1 fi

# place boot blocks on the floppy # disklabel -w -B /dev/fd0c fd1440

# # newfs the one and only partition # newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/fd0a

# # mount the new floppy # mount /dev/fd0a /mnt

# # create required directories # mkdir /mnt/dev mkdir /mnt/bin mkdir /mnt/sbin mkdir /mnt/etc mkdir /mnt/root mkdir /mnt/mnt # for the root partition mkdir /mnt/tmp mkdir /mnt/var

# # populate the directories # if [ ! -x /sys/compile/MINI/kernel ] then cat /mnt/sbin/init gzip -c -best /sbin/fsck > /mnt/sbin/fsck gzip -c -best /sbin/mount > /mnt/sbin/mount gzip -c -best /sbin/halt > /mnt/sbin/halt gzip -c -best /sbin/restore > /mnt/sbin/restore

gzip -c -best /bin/sh > /mnt/bin/sh gzip -c -best /bin/sync > /mnt/bin/sync

cp /root/.profile /mnt/root

cp -f /dev/MAKEDEV /mnt/dev chmod 755 /mnt/dev/MAKEDEV

chmod 500 /mnt/sbin/init chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt chmod 555 /mnt/bin/sh /mnt/bin/sync chmod 6555 /mnt/sbin/restore

# # create the devices nodes # cd /mnt/dev ./MAKEDEV std ./MAKEDEV da0 ./MAKEDEV da1 ./MAKEDEV da2 ./MAKEDEV sa0 ./MAKEDEV pty0 cd /

# # create minimum filesystem table # cat > /mnt/etc/fstab /mnt/etc/passwd /mnt/etc/master.passwd


Договоренности, используемые в этой книге


Для того чтобы обеспечить целостность и простоту чтения текста в данной книге мы применяем некоторые договорённости.



Dump и Restore


Для UNIX® традиционными программами резервного копирования являются dump и restore. Они работают с приводом как с набором дисковых блоков, которые расположены ниже понятий файлов, связей и каталогов, создаваемых файловыми системами. Программа dump выполняет резервное копирование всей файловой системы, располагающейся на устройстве. Невозможно выполнить резервное копирование части файловой системы или дерева каталогов, которые располагаются более чем в одной файловой системе. Утилита dump не записывает на ленту файлы и каталоги, она записывает блоки данных, из которых строятся файлы и каталоги.

Замечание: Если вы используете программу dump для работы с корневым каталогом, при этом не будет выполняться резервное копирование /home, /usr и многих других каталогов, так как они обычно являются точками монтирования других файловых систем или символическими ссылками на эти файловые системы.

В программе dump имеются некоторые неудобства, оставшиеся от её ранних дней в составе Version 6 операционной системы AT&T UNIX (примерно 1975). Параметры, используемые по умолчанию, подходят для 9-дорожечных лент (6250 bpi), но не для современных носителей с высокой плотностью записи информации (до 62,182 ftpi). Для использования ёмкостей нынешних накопителей на магнитной ленте эти параметры могут быть заданы в командной строке.

При помощи rdump и rrestore возможно резервное копирование данных по сети на накопитель, подключенный к другому компьютеру. Обе программы используют в работе rcmd(3) и ruserok(3) для доступа к накопителю на магнитной ленте на удалённом компьютере. Поэтому пользователь, выполняющий резервное копирование, должен быть указан в файле .rhosts на удалённом компьютере. Аргументы для rdump и rrestore должны подходить для использования на другом компьютере. При выполнении копирования по команде rdump на компьютере с FreeBSD на накопитель Exabyte, подключенный к машине Sun по имени komodo, используйте такую команду:

# /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1

Будьте осторожны: есть проблемы с обеспечением безопасности при аутентификации посредством .rhosts. Внимательно рассмотрите вашу ситуацию.

Программы dump и restore можно использовать в более защищённом режиме посредством ssh.

Пример 16-1. Использование dump через ssh

# /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \ targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz

Либо воспользуйтесь встроенной в dump возможностью, задав переменную окружения RSH:

Пример 16-2. Использование dump при работе через ssh с заданием RSH

# RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0



Файлы GNU Info


FreeBSD поставляется с многочисленными приложениями и утилитами от Фонда Свободного Программного Обеспечения, Free Software Foundation (FSF). В дополнение к страницам справочника, с этими программами поставляется обширная гипертекстовая документация в виде так называемых info файлов, которые могут быть просмотрены с помощью команды info, или, если установлен emacs, в info режиме этого редактора.

Чтобы воспользоваться командой info(1), просто наберите в командной строке:

% info

Вызвать на экран краткое введение можно набрав h. Краткий список команд можно получить набрав ?.



Флаги загрузки ядра


Вот наиболее часто используемые флаги загрузки:

-a

во время инициализации ядра запрашивать устройство для его монтирования в качестве корневой файловой системы.

-C

загрузка с компакт-диска.

-c

запустить UserConfig для конфигурации ядра во время загрузки

-s

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

-v

во время запуска ядра выводить более подробную информацию

Замечание: Есть и другие флаги загрузки, обратитесь к странице справочника по для выяснения подробной информации по ним.



Init: инициализация управления процессами


После того, как ядро завершит загрузку, оно передает управление пользовательскому процессу , который расположен в файле /sbin/init или в файле, маршрут к которому указан в переменной init_path загрузчика.



Использование новой ленты первый раз


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

sa0(ncr1:4:0): NOT READY asc:4,1 sa0(ncr1:4:0): Logical unit is in process of becoming ready

На ленте отсутствует идентификационный блок (блок номер 0). Со времен принятия стандарта QIC-525 все накопители формата QIC записывают на ленту идентификационный блок (Identifier Block). Здесь имеется два решения:

По команде mt fsf 1 ленточный накопитель записывает идентификационный блок на ленту.

Воспользуйтесь кнопкой на передней панели для выброса ленты.

Вставьте ленту повторно и по команде dump сбросьте данные на ленту.

Программа dump выдаст ``DUMP: End of tape detected'', а на консоли будет выведено: ``HARDWARE FAILURE info:280 asc:80,96''.

перемотайте ленту такой командой: mt rewind.

Последующие операции с лентой будут успешными.



Итак, как же сделать резервную копию данных на дискетах?


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

Для копирования всех файлов в текущем каталоге и подкаталогах выполните следующее (работая как пользователь root):

# tar Mcvf /dev/fd0 *

Когда первая дискета окажется полностью заполненной, программа tar(1) выдаст запрос на следующий том (так как работа утилиты tar(1) не зависит от носителя, она имеет дело с томами; здесь это означает дискету).

Prepare volume #2 for /dev/fd0 and hit return:

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



Изменения по сравнению со второй редакцией


Третья редакция является кульминацией более чем двух лет работы отдельных членов проекта документации FreeBSD. Вот основные изменения в новой редакции:

, Настройка и оптимизация, была расширена новой информацией о ACPI управлении питанием и ресурсами, системной утилите cron и дополнительных параметрах оптимизации ядра.

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

, Принудительный контроль доступа (MAC), новая глава этой редакции. Она описывает, что такое MAC и как этот механизм может быть использован для защиты системы FreeBSD.

, Устройства хранения, была расширена новой информацией о устройствах хранения USB, образах файловой системы, квотах файловой системы, файловых системах в файлах и в сети, зашифрованных дисковых разделах.

, Vinum, новая глава этой редакции. В ней описано как использовать Vinum, менеджер логических томов, который предоставляет независимые от устройств логические диски и программные уровни RAID-0, RAID-1 и RAID-5.

К , PPP и SLIP, был добавлен раздел о решении проблем.

, Электронная почта, была расширена новой информацией об использовании альтернативных транспортных агентов, SMTP аутентификации, UUCP, fetchmail, procmail, и другими разделами повышенной сложности.

, Сетевые серверы, появилась в этой редакции. Эта главы включает информацию о установке Apache HTTP Server, FTPd, и настройке Samba сервера для клиентов Microsoft Windows. Некоторые разделы были перемещены сюда из Гл. 24, Сложные вопросы работы в сети.

, Сложные вопросы работы в сети, была расширена новой информацией об использовании устройств Bluetooth в FreeBSD, настройке беспроводных сетей, и сетях Asynchronous Transfer Mode (ATM).

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

Множество эстетических улучшений были внесены в таблицы и иллюстрации этой книги.



Изменения во второй редакции


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

Был добавлен полный указатель тем.

Все ASCII-иллюстрации были заменены на графические.

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

Содержимое было логически реорганизовано на три части: ``В Начале'', ``Системное администрирование'' и ``Приложения''.

(``Установка FreeBSD'') был полностью переписан, добавлено большое количество снимков экрана, чтобы облегчить понимание текста для новых пользователей.

(``Основы UNIX'') был расширен и содержит дополнительную информацию о процессах, даемонах и сигналах.

(``Установка приложений: порты и пакеты'') был расширен и содержит дополнительную информации об управлении бинарными пакетами.

(``X Window System'') был полностью переписан и обращает больше внимания на современные технологии для рабочего стола, такие, как KDE и GNOME на XFree86™ 4.X.

(``Процесс загрузки FreeBSD'') был расширен.

(``Устройства хранения'') был составлен из того, что раньше было двумя различными разделами ``Диски'' и ``Резервное копирование''. Нам кажется, что данные темы будут легче и исчерпывающе описаны как один раздел. Была добавлена секция о программном и аппаратном RAID.

(``Последовательные коммуникации'') был полностью реорганизован и актуализирован для FreeBSD 4.X/5.X.

(``PPP и SLIP'') был существенно обновлён.

Было добавлено множество новых секций в (``Сложные вопросы работы в сети'').

(``Электронная почта'') был расширен, теперь он включает больше информации о настройке sendmail.

(``Работа с приложениями, написанными для Linux®'') был дополнен включением информации об установке Oracle® и SAP®R/3®.

Следующие новые темы были рассмотрены в этой, второй, редакции:

Настройка и оптимизация ().

Мультимедиа ()




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

Они располагаются в загрузочном секторе загрузочного слайса, то есть там, где boot0 или любая другая программа из MBR ожидает найти программу, которую следует запустить для продолжение процесса загрузки. Файлы в каталоге /boot являются копиями реальных файлов, которые хранятся вне файловой системы FreeBSD.

boot1 очень прост, так как он тоже может иметь размер, не превышающий 512 байт, и знает достаточно о метке диска FreeBSD, хранящей информацию о слайсе, для того, чтобы найти и запустить boot2.

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

Так как устроен гораздо более сложно, и дает удобный и простой способ настройки процесса загрузки, boot2 обычно запускает его, однако раньше его задачей был запуск непосредственно самого ядра.



Пример 12-2. Образец экрана boot2

>> FreeBSD/i386 BOOT Default: 0:ad(0,a)/kernel boot:

Если вам когда-либо понадобится заменить установленные boot1

и boot2, то используйте утилиту disklabel(8):

# disklabel -B diskslice

Здесь diskslice являются диском и слайсом, с которых вы загружаетесь, такие, как ad0s1 в случае первого слайса на первом диске IDE.

Режим Dangerously Dedicated: Если вы используете только имя диска, к примеру, ad0, в команде disklabel(8) вы создадите диск в режиме эксклюзивного использования, без слайсов. Это, скорее всего, вовсе н то, что вы хотите сделать, так что дважды проверьте параметры команды disklabel(8), прежде, чем нажать Return.


Как восстановить данные из моих резервных копий?


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

# tar Mxvf /dev/fd0

Есть два подхода к восстановлению только нужных вам файлов. В первом вы можете начать с первой дискеты и выдать такую команду:

# tar Mxvf /dev/fd0 filename

Программа будет выдавать запрос на подачу последующих дискет до тех пор, пока не найдет требуемый файл.

Как альтернатива, если вы знаете, на какой дискете расположен файл, то вы можете просто подать ее и дать ту же самую команду, что и выше. Заметьте, что если первый файл на дискете является продолжением предыдущего, то tar(1) выдаст предупреждение о том, что не может его восстановить, хотя вы этого и не просили делать!



Какая программа резервного копирования самая лучшая?


Точка. Elizabeth D. Zwicky протестировала все программы резервного копирования, обсуждаемые здесь. Беспроигрышным вариантом для сохранения всех ваших данных и особенностей файловых систем UNIX является dump. Элизабет создала файловые системы, содержащие большое количество необычных элементов (и некоторых не так уж необычных) и тестировала каждую из программ, выполняя резервное копирование и последующее восстановление этих файловых систем. В число необычных элементов входили: файлы с дырами, файлы с дырами и блоком пустого места, файлы с необычными символами в их именах, нечитаемые и незаписываемые файлы, устройства, меняющие свой размер во время резервного копирования, файлы, создаваемые и удаляемые во время копирования и тому подобное. Она представила результаты на конференции LISA V в октябре 1991 года. Посмотрите ссылку на сайте .



Краткий обзор


В этой главе мы попытаемcя раскрыть основные принципы и команды операционной системы FreeBSD. Большая часть нижеизложенного материала в более или менее равной степени применима к любой UNIX®-подобной операционной системе. Если вы уверены, что не найдете здесь ничего нового для себя, можете смело пропустить эту главу. Если же вы новичок, мы настоятельно рекомендуем внимательно прочесть это главу.

Прочитав эту главу, вы узнаете:

Как использовать ``виртуальные консоли'' FreeBSD.

Как работают права доступа на файлы в UNIX.

Иерархия каталогов FreeBSD.

Организация дисков FreeBSD.

Как монтировать и размонтировать файловые системы.

Что такое процессы, даемоны и сигналы.

Что такое командная оболочка (или интерпретатор команд) и как настроить личное рабочее окружение.

Как пользоваться стандартными текстовыми редакторами.

Что такое устройства и файлы устройств.

Какие бинарные форматы используются в FreeBSD.

Как пользоваться справочным руководством для получения дополнительной информации.




MBR для FreeBSD находится в /boot/boot0. Это копия MBR, так как настоящая MBR должна располагаться в специальном месте диска, вне области FreeBSD.

boot0 очень прост, так как программа в MBR может иметь размер, не превышающий 512 байт. Если вы установили MBR FreeBSD и несколько операционных систем на ваш жесткий диск, то во время загрузки вы увидите нечто похожее на следующее:



Пример 12-1. Образец экрана boot0

F1 DOS F2 FreeBSD F3 Linux F4 ?? F5 Drive 1

Default: F2

Известно, что другие операционные системы, в частности, Windows®95, записывают поверх существующей MBR свою собственную. Если так случилось в вашем случае, или же вы хотите заменить существующую MBR на MBR от FreeBSD, то воспользуйтесь следующей командой:

# fdisk -B -b /boot/boot0 device

Здесь device является устройством, с которого вы загружаетесь, таким, как ad0 в случае первого диска IDE, ad2 в случае первого диска IDE на втором контроллере IDE, da0 для первого диска SCSI и так далее.

Однако если вы используете Linux и предпочитаете, чтобы процесс загрузки управлялся через LILO, вы можете отредактировать файл /etc/lilo.conf для FreeBSD или выбрать Leave The Master Boot Record Untouched в процессе установки FreeBSD. Если вы установили менеджер загрузки FreeBSD, то вы можете снова загрузить Linux и изменить конфигурационный файл /etc/lilo.conf для LILO, добавив следующий параметр:

other=/dev/hdXY table=/dev/hdb loader=/boot/chain.b label=FreeBSD

который позволит загружать FreeBSD и Linux посредством LILO. В нашем примере мы используем XY для обозначения номера диска и раздела. Если вы используете диск SCSI, то вам может потребоваться заменить /dev/hdXY на что-то типа /dev/sdXY, где снова используется обозначение XY. Строка loader=/boot/chain.b может быть опущена, если обе операционные системы располагаются на одном и том же диске. Вы можете теперь запустить /sbin/lilo -v для того, чтобы ваши изменения были восприняты системой, что должно быть подтверждено сообщениями на экране.


Многопользовательский режим


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



Можно ли использовать дискеты для создания резервных копий моих данных?


На самом деле дискеты не подходят для создания резервных копий, потому что:

Носитель ненадёжен, особенно если речь идет о больших сроках хранения.

Создание резервных копий и восстановление данных происходит очень медленно.

Дискеты имеют весьма ограниченную емкость (дни, когда весь винчестер копировался на десяток или около того дискет, давно прошли).

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

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



Можно ли резервные копии подвергнуть компрессии?


К сожалению, при создании многотомных архивов не позволяет использовать опцию -z. Вы конечно же, можете скомпрессировать все файлы утилитой gzip(1), программой gzip(1) скопировать их на дискеты, а затем распаковать файлы снова утилитой gunzip(1)!



Настройка ресурсов (rc)


Система настройки ресурсов считывает настройки, применяемые по умолчанию, из файла /etc/defaults/rc.conf, а настройки, специфичные для конкретной системы, из /etc/rc.conf, после чего осуществляется монтирование файловых систем, перечисленных в файле /etc/fstab, запуск сетевых служб, различных системных даемонов и, наконец, выполнение скриптов запуска дополнительно установленных пакетов.

Страница справочника по rc(8) является хорошим источником информации о системе настройки ресурсов. так же, как и самостоятельное изучение скриптов.



Не делать ничего


``Не делать ничего'' - это не программа для компьютера, и в то же время это наиболее широко используемая стратегия резервного копирования. Здесь нет никаких первоначальных затрат. Здесь нет расписания, которому нужно следовать. Просто скажите нет. Если что-то случится с вашими данными, улыбнитесь и забудьте о них!

Если ваше время и данные практически ничего не стоят, то ``не делать ничего'' является самой подходящей программой для вашего компьютера. Но будьте осторожны, POSIX является весьма полезным инструментом, и через полгода вы можете обнаружить, что у вас есть набор файлов, представляющих для вас определенную ценность.

``Ничего не делать'' является правильным методом резервного копирования для /usr/obj и других деревьев каталогов, которые могут быть в точности перегенерированы вашим компьютером. Примером являются файлы, представляющие страницы этого Руководства в форматах HTML или PostScript®. Они генерируются из входных файлов в формате SGML. Создавать резервные копии файлов в форматах HTML и PostScript не нужно. Исходные файлы в формате SGML копируются регулярно.



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


В этот режим можно перейти во время , при ручной загрузке с параметром -s или заданием переменной boot_single для программы loader.

Этот режим может быть также вызван запуском программы shutdown(8) без параметров перезагрузки (-r) или останова (-h) из многопользовательского режима.

Если режим доступа к системной консоли console установлен в файле /etc/ttys в insecure, то система выведет запрос на ввод пароля пользователя root перед переходом в однопользовательский режим.

Пример 12-3. Незащищённая консоль в /etc/ttys

# name getty type status comments # # Если консоль помечена как "insecure", то init будет запрашивать пароль # пользователя root при переходе в однопользовательский режим. console none unknown off insecure

Замечание: Обозначение консоли как insecure

означает, что вы считаете физический доступ к консоли незащищённым, и хотите, чтобы только тот, кто знает пароль пользователя root, мог воспользоваться однопользовательским режимом, но это не значит, что вы хотите работать с консолью небезопасным способом. Таким образом, если вы хотите добиться защищённости, указывайте insecure, а не secure.



и загрузки операционной системы называется


Процесс включения компьютера и загрузки операционной системы называется ``процессом первоначальной загрузки'', или просто ``загрузкой''. Процесс загрузки FreeBSD предоставляет большие возможности по гибкой настройке того, что происходит при запуске системы, позволяя вам выбирать из различных операционных систем, установленных на одном и том же компьютере, или даже из различных версий той же самой операционной системы или установленного ядра.
Эта глава подробно описывает параметры, которые вы можете изменить для настройки процесса загрузки FreeBSD. Под этим подразумевается все, что происходит до начала работы ядра FreeBSD, обнаружения устройств и запуска init(8). Если вы не совсем уверены, то это происходит, когда выводимый текст меняет цвет с ярко-белого на серый.
После чтения этой главы вы будете знать:
Из каких частей состоит система начальной загрузки FreeBSD, и как эти части взаимодействуют.
Параметры, которые вы можете передать компонентам начальной загрузки FreeBSD для управления этим процессом.
Основы работы
device.hints(5)

Только для x86: Эта глава описывает процесс загрузки FreeBSD только для систем на основе архитектуры Intel x86.

Основы технологии резервного копирования


Тремя основными программами резервного копирования являются dump(8), tar(1) и cpio(1).



Pax


является ответом IEEE/POSIX® на утилиты tar и cpio. В течение многих лет различные версии программ tar и cpio получались не совсем совместимыми. Так что вместо того, чтобы попытаться полностью их стандартизировать, POSIX создал новую утилиту для работы с архивами. pax пытается читать и писать различные форматы cpio и tar, и, кроме того, свои собственные новые форматы. Набор команд этой утилиты больше напоминает cpio, чем tar.



Пользовательский ввод


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

Ctrl+Alt+Del

Это будет означать, что пользователь должен нажать клавиши Ctrl, Alt и Del одновременно.

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

Ctrl+X, Ctrl+S

Это будет означать, что пользователь должен нажать Ctrl и X одновременно, после чего одновременно нажать Ctrl и S.



После сбоя


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

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

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

Если вы используете дискеты boot.flp и fixit.flp, читайте дальше. Вставьте дискету boot.flp в первый дисковод и загрузите компьютер. На экран будет выведено оригинальное меню установки. Выберите пункт Fixit--Repair mode with CDROM or floppy. После вывода приглашения вставьте fixit.flp. restore и другие нужные вам программы находятся в /mnt2/stand.

Восстановите по отдельности каждую файловую систему.

Попробуйте выполнить команду mount (например, mount /dev/da0a /mnt) по отношению к корневому разделу вашего первого диска. Если метка диска была испорчена, то воспользуйтесь командой disklabel для переразбиения на разделы и разметки диска так, чтобы получившаяся метка совпала с той, которая вами была распечатана и сохранена. Для повторного создания файловых систем используйте утилиту newfs. Повторно смонтируйте корневой раздел дискеты в режиме чтения-записи (mount -u -o rw /mnt). Воспользуйтесь вашей программой резервного копирования и резервными копиями на лентах для восстановления данных для этой файловой системы (например. restore vrf /dev/sa0). Размонтируйте файловую систему (например, umount /mnt). Повторите эту процедуру для каждой файловой системы, которая была повреждена.

Как только ваша система заработает, сделайте резервную копию на новые ленты. Что бы ни вызвало сбой или потерю данных, это может случиться снова. Ещё один час, потраченный в этот момент, может спасти вас от неприятностей в будущем.



есть несколько действий, которые не



[1]
Не совсем верно -- есть несколько действий, которые не могут быть прерваны. Например, если процесс пытается прочитать файл на другом компьютере в сети, и другой компьютер по какой-то причине не отвечает (был выключен, или в сети произошла ошибка), процесс находится в так называемом ``непрерываемом состоянии''. В конце концов время ожидания закончится, обычно это происходит через две минуты. Как только время закончится, процесс будет уничтожен.

Пока не указано противного, эти


Примеры, которые начинаются с E:\> обозначают команды MS-DOS®. Пока не указано противного, эти команды могут вводиться из окна ``Сеанс MS-DOS'' в современных системах Microsoft®Windows®.
E:\> tools\fdimage floppies\kern.flp A:
Примеры, которые начинаются с # обозначают команды, которые должны быть запущены с правами суперпользователя в FreeBSD. Вы можете войти в систему как пользователь root для того, чтобы ввести эти команды или войти в систему обычным пользователем и использовать su(1) для того, чтобы получить привилегии суперпользователя.
# dd if=kern.flp of=/dev/fd0
Примеры, начинающиеся с % указывают, что команда должна быть исполнена с правами обычного пользователя. Пока не указано противного, используется синтаксис C-shell для установки переменных окружения и других команд.
% top

Примеры использования загрузчика


Вот несколько примеров практического использования загрузчика:

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

boot -s

Для выгрузки обычных ядра и модулей, а потом просто загрузить ваше старое (или другое) ядро:

unload

load kernel.old

Вы можете использовать kernel.GENERIC для обозначения стандартного ядра, поставляемого на установочном диске, или kernel.old для обращения к ранее установленному ядру (после того, как, например, вы обновили или отконфигурировали новое ядро).

Замечание: Для загрузки ваших обычных модулей с другим ядром используйте такие команды:

unload

set kernel="kernel.old"

boot-conf

Для загрузки скрипта конфигурации ядра (автоматизированный скрипт, который выполняет то, что вы обычно делаете в конфигураторе ядра во время загрузки):

load -t userconfig_script /boot/kernel.conf



Проблема загрузки


Включение компьютера и запуск операционной системы приводят к интересной дилемме. По определению до запуска операционной системы компьютер не умеет ничего. В том числе и не знает, как запускать программы с диска. Так что компьютер не может запустить программу с диска без операционной системы, но программы операционной системы находятся на диске, но как запустить операционную систему?

Эта проблема имеет параллели с одной проблемой из книги Приключения барона Мюнхаузена. Герой провалился в болото, и вытащил сам себя, ухватив за волосы и потянув. В эпоху начала компьютеризации термин начальная загрузка применялся к механизму, используемому для загрузки операционной системы, и затем был сокращен до просто ``загрузки''.

На оборудовании архитектуры x86 за загрузку операционной системы отвечает BIOS (Basic Input/Output System). Для этого BIOS ищет на жестком диске MBR (Master Boot Record), которая должна располагаться в определенном месте на диске. BIOS может загрузить и запустить MBR, и предполагается, что MBR может взять на себя остальную работу, связанную с загрузкой операционной системой.

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

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

Оставшаяся часть системы начальной загрузки FreeBSD разделяется на три этапа. Первый этап запускается из MBR, и он знает достаточно для перевода компьютера в особое состояние и загрузки второго этапа. Второй этап может делать несколько больше до запуска третьего этапа. Третий этап заканчивает работу по загрузке операционной системы. Работа разделена на эти три этапа, потому что стандарты ПК ограничивают размеры программ, которые могут быть запущены на первом и втором этапах. Последовательное выполнение работ позволяет FreeBSD получить более гибкий загрузчик.

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



Процесс автоматической перезагрузки


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



Процесс остановки системы


Во время контролируемого процесса остановки системы через утилиту shutdown(8) программа будет пытаться запустить скрипт /etc/rc.shutdown, после чего будет посылать всем процессам сигнал TERM, а затем и KILL тем процессам, которые ещё не завершили свою работу.

Для выключения машины с FreeBSD на аппаратных платформах и системах, которые поддерживают управление электропитанием, просто воспользуйтесь командой shutdown -p now для немедленного отключения электропитания. Чтобы просто перезагрузить систему FreeBSD, воспользуйтесь командой shutdown -r now. Для запуска команды shutdown(8) вам необходимо быть пользователем root или членом группы operator. Кроме того, можно также воспользоваться командами halt(8) и reboot(8), пожалуйста, обратитесь к соответствующим страницам справки и справочной странице по команде shutdown(8) для получения дополнительной информации.

Замечание: Для управления электропитанием требуется наличие поддержки acpi(4) в ядре или в виде загруженного модуля при использовании FreeBSD 5.X, а для FreeBSD 4.X необходима поддержка apm(4).



Процесс работы загрузчика


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

Затем загрузчик читает файл /boot/loader.rc, который по умолчанию использует файл /boot/defaults/loader.conf, устанавливающий подходящие значения по умолчанию для переменных и читает файл /boot/loader.conf для изменения в этих переменных. Затем с этими переменными работает loader.rc, загружающий выбранные модули и ядро.

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



Процессы


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

У каждого процесса есть уникальный номер, называемый process ID, или PID, и, как и у файлов, у каждого процесса есть владелец и группа. Информация о владельце и группе процесса используется для определения того, какие файлы и устройства могут быть открыты процессом с учетом прав на файлы, о которых говорилось ранее. Также у большинства процессов есть родительский процесс. Например, при запуске команд из оболочки, оболочка является процессом и любая запущенная команда также является процессом. Для каждого запущенного таким путем процесса оболочка будет являться родительским процессом. Исключением из этого правила является специальный процесс, называемый init(8). init всегда первый процесс, его PID всегда 1. init запускается автоматически ядром во время загрузки FreeBSD.

Две команды очень полезны для просмотра работающих в системе процессов, это ps(1) и top(1). Команда ps используется для получения списка запущенных процессов и может показать их PID, сколько памяти они используют, команду которой они были запущены и т.д. Команда top показывает запущенные процессы и обновляет экран каждые несколько секунд, что позволяет наблюдать за работой компьютера в реальном времени.

По умолчанию, ps показывает только принадлежащие вам процессы. Например:

% ps

PID TT STAT TIME COMMAND 298 p0 Ss 0:01.10 tcsh 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14) 37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14) 48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/ navigator-linux-4.77.bi 48730 p0 IW 0:00.00 (dns helper) (navigator-linux-) 72210 p0 R+ 0:00.00 ps 390 p1 Is 0:01.14 tcsh 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y 6688 p3 IWs 0:00.00 tcsh 10735 p4 IWs 0:00.00 tcsh 20256 p5 IWs 0:00.00 tcsh 262 v0 IWs 0:00.00 -tcsh (tcsh) 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish


Как вы можете видеть в данном примере, вывод ps(1) организован в несколько колонок. Идентификатор процесса PID обсуждался ранее. PID назначаются с 1 до 99999 и опять с начала, если последнее число будет превышено. Колонка TT показывает терминал (tty), на котором запущена программа (можете пока забыть про это). STAT

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

У есть множество различных опций, влияющих на выводимую информацию. Один из наиболее полезных наборов опций это auxww. a позволяет показать информацию о всех запущенных процессах, а не только тех, которыми вы владеете. u показывает имя пользователя, владеющего процессом, и информацию об используемой памяти. x показывает информацию о процессах-даемонах и ww указывает ps(1) показать всю командную строку, вместо обрезания ее, когда она станет слишком длинной, чтобы уместиться на экран.

Вывод похож на только что описанный. Обычно он выглядит так:

% top

last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10 47 processes: 1 running, 46 sleeping CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free Swap: 256M Total, 38M Used, 217M Free, 15% Inuse

PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm 48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt ...



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

Ниже идут несколько колонок, содержащих похожую на вывод ps(1) информацию. Как и раньше, это PID, время процессора, командная строка. top(1) показывает также величину занятой процессом памяти. Это значение разбито на две колонки, одна для общего объема, а другая для резидентного -- общий объем показывает сколько всего памяти нужно приложению, а резидентный показывает количество памяти, используемой в данный момент. Из этого примера видно, что Netscape® требует почти 30 MB памяти, но в данный момент использует только 9 MB.

автоматически обновляет экран каждые две секунды; это значение можно изменить опцией s.


QIC


Ленты и накопители формата QIC-150, наверное, являются наиболее распространенным типом носителей. Приводы лент формата QIC являются самыми дешёвыми ``серьёзными'' накопителями для резервного копирования. Минусом является стоимость носителей. Ленты формата QIC по сравнению с лентами шириной 8мм или 4мм являются дорогими, превосходя их по стоимости хранения одного гигабайта в пять раз. Однако если вам будут достаточно половины ленты, QIC может оказаться правильным выбором. QIC является самым распространенным типом привода. Каждый сайт имеет привод QIC какой-либо емкости. QIC имеет большое количество плотностей на физически похожих (иногда даже идентичных) лентах. Приводы QIC работают вовсе не тихо. Эти накопители громко осуществляют поиск перед тем, как начать запись данных и достаточно шумны в процессе чтения, записи или поиска. Ленты QIC имеют размеры (6 x 4 x 0.7 дюймов; 15.2 x 10.2 x 1.7 мм).

Скорость обмена данными лежит в границах от ~150kB/s до ~500 kB/s. Ёмкость накопителей варьируется от 40 МБ до 15 ГБ. Аппаратное сжатие присутствует во многих современных накопителях QIC. Приводы QIC устанавливаются менее часто; они вытесняются накопителями DAT.

На ленту данные записываются в виде дорожек. Дорожки располагаются в длину вдоль всей ленты. Количество дорожек, и, в свою очередь, их ширина, меняется вместе с емкостью ленты. Большинство, если не все современные накопители обеспечивают обратную совместимость по крайней мере для чтения (однако зачастую и для режима записи). Формат QIC имеет хорошую репутацию в области надежности хранения данных (механика устроена проще и более надежна, чем в случае накопителей, построенных по технологии спирального сканирования).

Ленты не следует больше использовать после создания 5,000 резервных копий.



Системный справочник (man)


Пожалуй, самым полным руководством по FreeBSD является системный справочник (man). Практически каждое приложение или утилита имеют соответствующую страницу (часто не одну), описывающую тот или иной аспект работы программы, всевозможные опции и настройки. Для просмотра этих страниц существует команда man:

% man command

Здесь command - это команда, о которой вы хотите получить информацию. Например, чтобы узнать побольше о команде ls, наберите:

% man ls

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

Пользовательские команды.

Системные вызовы и коды ошибок.

Функции стандартных библиотек.

Драйверы устройств.

Форматы файлов.

Развлечения и игры.

Дополнительная информация.

Команды системного администрирования.

Для разработчиков ядра.

В некоторых случаях (не так уж редко), страницы, относящиеся к одной и той же команде, находятся в различных секциях справочника. Например, есть команда cdmod и системный вызов chmod(). В этом случае, необходимо явно указать man секцию, в которой нужно искать соответствующую страницу:

% man 1 chmod

Эта команда выведет справку об утилите chmod. По традиции, конкретная секция справочника указывается в скобках после команды, например, chmod(1) относится к утилите chmod, а chmod(2) - к соответствующему системному вызову.

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

программы man:

% man -k mail

Вы получите список команд, имеющих слово ``mail'' в своих описаниях. Это эквивалентно использованию команды apropos.

Или например, вы видите список файлов в каталоге /usr/bin, при этом не имея ни малейшего представления о том, какие функции выполняет каждый их них? Просто наберите:

% cd /usr/bin

% man -f *

или

% cd /usr/bin

% whatis *

что фактически одно и то же.



Скрипт MAKEDEV


В системах без DEVFS (это относится ко всем версиям FreeBSD ниже 5.0), файлы устройств создаются с помощью MAKEDEV(8), как показано ниже:

# cd /dev

# sh MAKEDEV ad1

В этом примере создается соответствующий файл устройства для вторичного IDE диска.



Создание файлов устройств


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



Создание и использование архивных копий на магнитной ленте


К наиболее часто используемым носителям на магнитной ленте следует отнести ленты шириной 4мм и 8мм, а также типа QIC, мини-картриджи и DLT.



Структура этой книги


Эта книга разбита на пять частей. В первой части, В начале, рассматривается установка и основные навыки использования FreeBSD. Предполагается, что читатель освоит эти разделы последовательно, возможно пропуская разделы, в которых обсуждаются уже знакомые для него темы. Вторая часть, Общие задачи, рассказывает о некоторых наиболее часто используемых возможностях FreeBSD. Этот раздел и все последующие могут быть прочитаны не по порядку. Каждая глава начинается с краткого обзора, который описывает, о чём говорится в ней и что читатель должен будет знать для прочтения этой главы. Это сделано для того, чтобы случайно встретивший этот материал читатель мог найти разделы, которые его интересуют. В третьей части, Системное администрирование, рассмотрены вопросы администрирования. В четвертой части, Сетевые коммуникации, охвачены темы, связанные с серверами и сетью. Пятая часть содержит приложения и справочную информацию.

, Введение

Знакомит пользователя с FreeBSD. Рассказывает об истории проекта FreeBSD, его задачах и модели разработки.

, Установка

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

, Основы UNIX

Рассказывает об основных командах и функциональности операционной системы FreeBSD. Если вы знакомы с Linux или другой UNIX-подобной операционной системой, возможно, вы можете пропустить эту главу.

, Установка приложений: порты и пакеты

Рассказывает о процессе установки программного обеспечения сторонних производителей с использованием ``Коллекции Портов FreeBSD'' и стандартных бинарных пакетов.

, The X Window System

Описывает X Window System вообще и использование XFree86 под управлением FreeBSD в частности. Также описывает популярные окружения рабочего стола, такие как KDE и GNOME.

, Прикладные программы

Перечисляет некоторые популярные приложения для рабочей станции, такие как веб-браузеры и офисные пакеты и описывает процесс их установки на FreeBSD.


, Мультимедиа

Показывает, как настроить поддержку воспроизведения звука и видео на вашей системе. Также описывает некоторые примеры приложений для воспроизведения звука и видео.

, Настройка ядра FreeBSD

Объясняет почему вам может понадобиться перенастроить ядро и детально описывает процесс настройки, сборки и установки нового ядра.

, Печать

Рассказывает об управлении принтерами в FreeBSD, включая информацию об титульных страницах, учёте использования принтеров и первоначальной настройке.

, Работа с приложениями, написанными для Linux

Описывает возможности Linux-совместимости в FreeBSD. Также предоставляет детальные инструкции по установке для многих популярных приложений для Linux, таких как: Oracle, SAP R/3 и Mathematica®.

, Настройка и оптимизация

Описывает всевозможные параметры настройки FreeBSD, которые может использовать системный администратор для оптимальной настройки системы. Также описывает различные конфигурационные файлы, используемые в FreeBSD и расположение этих файлов на диске.

, Процесс загрузки

Рассказывает о процессе загрузки FreeBSD и объясняет, как управлять этим процессом при помощи различных настроек.

, Пользователи и основы управления учётными записями

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

, Безопасность

Описывает множество различных утилит, которые помогут вам поддерживать FreeBSD в безопасном, надёжном состоянии, включая Kerberos, IPsec, OpenSSH и межсетевые экраны.

, Принудительный контроль доступа (MAC)

Описывает что такое принудительный контроль доступа (Mandatory Access Control, MAC) и как этот механизм может быть использован для защиты системы FreeBSD.

, Устройства хранения

Описывает как управлять накопителями информации и файловыми системами в FreeBSD, включая физические диски, массивы RAID, оптические и ленточные носители, диски в оперативной памяти и сетевые файловые системы.



, Vinum

Рассказывает как использовать Vinum, менеджер логических разделов, при помощи которого можно создавать и использовать независимые от устройств хранения логические диски и программно реализовывать RAID-0, RAID-1 и RAID-5.

, Локализация

Описывает использование FreeBSD на языках, отличных от английского. Рассказывает о локализации на уровне системы и отдельных приложений.

, На переднем крае разработок

Объясняет различия между FreeBSD-STABLE, FreeBSD-CURRENT и FreeBSD-RELEASE. Рассказывает, кому из пользователей будет полезно отслеживать версию системы в разработке и вкратце описывает этот процесс.

, Последовательные коммуникации

Объясняет как подключать терминалы и модемы к вашей FreeBSD как в серверном, так и в клиентском режиме.

, PPP и SLIP

Описывает использование PPP, SLIP или PPP через Ethernet для соединения с удалёнными системами при помощи FreeBSD.

, Электронная почта

Объясняет использование различных компонентов почтового сервера и более углублённо рассматривает простые вопросы конфигурации для наиболее популярного программного обеспечения почтовых серверов: sendmail.

, Сетевые серверы

Предоставляет детальные инструкции и примеры файлов настройки для использования компьютера с FreeBSD в качестве файлового сервера (NFS), сервера доменных имен (DNS), сервера сетевой информационной системы (NIS), или сервера точного времени (ntpd).

, Сложные вопросы работы в сети

Рассматривает множество вопросов работы с сетью, включая совместный доступ компьютеров в вашей локальной сети к Internet, расширенные вопросы маршрутизации, беспроводные соединения, bluetooth, ATM, IPv6 и многое другое.

, Получение FreeBSD

Перечисляет различные источники, из которых можно получить FreeBSD на CDROM или DVD, равно как и различные сайты в Internet, с которых можно скачать и установить FreeBSD.

, Библиография

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

, Ресурсы в Internet

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

, Ключи PGP

Содержит ключи PGP некоторых разработчиков FreeBSD.


Tar


Утилита также восходит корнями к Version 6 системы AT&T UNIX (около 1975). tar

работает с файловой системой; tar записывает на ленту файлы и каталоги. tar поддерживает не полный набор опций, имеющихся в cpio(1), однако он не требует необычного перенаправления в командной строке, которое используется в утилите cpio.

В большинстве версий tar создание резервных копий по сети не поддерживается. Версия GNU утилиты tar, которая используется во FreeBSD, поддерживает удалённые устройства в том же самом синтаксисе, что и rdump. Чтобы скопировать данные на накопитель Exabyte, подключенный к машине Sun по имени komodo, используйте такую команду:

# /usr/bin/tar cf komodo:/dev/nsa8 . 2>&1

В случае использования версий без поддержки удалённых устройств, вы можете воспользоваться перенаправлением вывода и командой rsh для посылки данных на удалённый ленточный накопитель.

# tar cf - . | rsh hostname dd of=tape-device obs=20b

Если вы беспокоитесь о безопасности создания резервных копий по сети, то вместо rsh вам нужно использовать ssh.



Типографические договорённости


Наклонный шрифт

Наклонный шрифт используется для имен файлов, адресов в Internet (URL), выделенного текста и первого применения технических терминов.

Моноширинный шрифт

Моноширинных шрифт используется для сообщений об ошибках, команд, имен пользователей, названий групп, названий устройств, переменных и фрагментов кода.

Полужирный шрифт

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



Третий этап, /boot/loader


Передача управления загрузчику является последним, третьим этапом в процессе начальной загрузки, а сам загрузчик находится в файловой системе, обычно как /boot/loader.

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



Устройства и файлы устройств


Термин ``устройство'' используется в основном по отношению к аппаратному обеспечению системы, такому как диски, принтеры, графические адаптеры, устройства ввода текста. При загрузке FreeBSD главным образом выводит на экран информацию об обнаруженных устройствах. Вы можете найти эти сообщения в файле /var/run/dmesg.boot.

Например, acd0 это первый диск IDE CDROM, а kbd0 -- клавиатура.

В UNIX® доступ к большинству этих устройств можно получить через специальные файлы устройств, расположенные в каталоге /dev.



Встроенные команды загрузчика


Далее следуют наиболее часто используемые команды загрузчика. Полное описание всех имеющихся команд можно найти на странице справки о команде loader(8).

autoboot секунды

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

boot [-параметры] [имя ядра]

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

boot-conf

Повторно провести тот же самый процесс автоматической настройки модулей на основе переменных, что был произведен при загрузке. Это имеет смысл, если до этого вы выполнили команду unload, изменили некоторые переменные, например, наиболее часто меняемую kernel.

help [тема]

Вывод сообщений подсказки из файла /boot/loader.help. Если в качестве темы указано слово index, то выводится список имеющихся тем.

include имя файла ...

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

load [-t тип] имя файла

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

ls [-l] [маршрут]

Выводит список файлов по указанному маршруту или в корневом каталоге, если маршрут не был указан. Если указан параметр -l, будут выводиться и размеры файлов.

lsdev [-v]

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

lsmod [-v]

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

more имя файла

Вывод указанного файла с паузой при выводе каждой строки LINES.

reboot

Выполнить немедленную перезагрузку машины.

set переменная, set переменная=значение

Задает значения переменных окружения загрузчика.

unload

Удаление из памяти всех загруженных модулей.



Взаимодействие с ядром во время загрузки


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