Опубликован: 01.07.2008 | Доступ: свободный | Студентов: 2109 / 298 | Оценка: 3.78 / 3.77 | Длительность: 11:57:00
Лекция 2:

Какие Unix'ы бывают в природе?

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Аннотация: В данной лекции описано генеалогическое древо, Unix-ы для IBM/IP: некоммерческие и условно бесплатные, коммерческие, поставляемые производителями компьютеров. Описаны команды поиска grep и find, tar, cpio. Описано копирование файлов на стример, архивация со сжатием. Приведены примеры
Ключевые слова: Unix, ветвь, system, BSD, web-фрагменты , SUN, SVR4, остов, DEC, OSF/1, alpha, OS-9, SCO Unix, netbsd, freebsd, сеть, ядро, Linux, инсталляция, рабочая станция, Интернет, web-сервера, web-приложение, hardware-specific, IBC, SCO, Oracle, Informix, X-клиент, NetWare, Windows, WABI, A/PC, solaris, операционная система, HP-UX, IBM, RS, AIX, SGC, silicon, Graphics, спецсимвол, функция, find, рекурсивный обход, имя файла, ключ, команда, %TYPE, e-size, байт, filename, файл, регулярное выражение, print, маршрутное имя, exec, Си, текущий каталог, подкаталог, запись, утилита, create, extract, append, список, Архиватор, DOS, compression, выход, CAT, вывод, GNU, ZIP, ARJ, PKZIP, tape, поддержка, координаты, мышь, обработка событий, слежение, COM-порт, EGA, контроллер, пиксел, VGA, SVGA, XGA, монитор, программа, l-r-типа, прямоугольник, шрифт, X-протокол, window system, прикладная программа, интерфейс, терминал, процессор, оперативная память, terminate, универсальность, graphics application, programming, interface, программирование, TCP, IP, .NET, подключ, графическая подсистема, ресурс, память, диск, macs/s, сетевой адрес, MSK, компьютер, toolkit, widget, gadget, xterm, open-ended, активная, плата, motif, IMHO, XFree86, переменные окружения

Генеалогическое древо

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

System III
System 6

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

System 7 BSD 4.0

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

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

Unix'ы для IBM/PC

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

BSD/OS 2.0 BSDi/386 Недорогой коммерческий. Хорошо поддерживается. Поддерживает бинарную совместимость с SCO Unix

386bsd BSD 4.3 для "Интеловской" платформы

NetBSD производная от 386bsd

FreeBSD 4.10 Самая качественная сеть. Дабы не связываться с USL, в нем полностью заново переписаны куски ядра, на которых стоял копирайт AT&T.

Linux 2.6.13 Самый популярный среди бесплатных Unix'ов. Число инсталляций оценочно - десятки миллионов. Непрерывное совершенствование силами сотен добровольцев довело его до уровня довольно надежной, быстрой, качественной и удобной системы, пригодной для работы как в качестве графической рабочей станции, так и интернет-сервера. Поддерживает больше всех приложений и hardware. Поддерживает спецификации iBCS, и потому может выполнять коммерческие приложения для SCO, в частности, Oracle и Informix. В Linux реализованы клиент и сервер Netware и Samba. Эмулятор MS Windows WABI - работоспособен.

Коммерческие Unix'ы

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

Solaris 2.10 SVR4.0 от SunSoft. Совсем как на Sun'е. В принципе, это должно говорить само за себя.

SCO Unix 4.0 SVR3.2 когда-то был лидером по количеству установок среди всех Unix'ов для PC. Старая надежная отлаженная система. Поддерживает достаточно много hardware. Поддерживает мультипроцессорные PC. Непомерно дорог. Морально устарел. Имеет проблемы с русификацией. Медленный.

ISC Unix 3.2 Надежен и компактен в работе. Морально устарел.

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

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

Выбирая платформу, мы автоматически получаем с ней "ее собственный" Unix.

С точки зрения удобства и цельности администраторского управления самые приятные из них - HP-UX 11.11 и AIX.

А самые распространенные -

Linux 2.6 и FreeBSD 4.10 - среди некоммерческих

Solaris 2.10 и HP-UX/11 - среди коммерческих

Команды поиска GREP и FIND

Команда grep/egrep

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

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

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

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

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

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

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

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

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

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

Команда find

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

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

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

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

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

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

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

Пример.

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

find . -type f -mtime -4 -print

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

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

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

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Дмитрий Баласюк
Дмитрий Баласюк
Россия, Таганрог, Таганрогский радиотехнический институт, 1991
Олег Мовчан
Олег Мовчан
Россия, Кемерово