Первые разработчики UNIX способствовали
внедрению принципов модульного
программирования и повторного использования в инженерную практику.
UNIX предоставлял возможность использования
протоколов TCP/IP
на сравнительно недорогих компьютерах,
что привело к быстрому росту Интернета.
Это, в свою очередь, способствовало быстрому
обнаружению нескольких крупных уязвимостей
в системе безопасности, архитектуре и
системных утилитах UNIX.
Со временем
ведущие разработчики UNIX разработали
культурные нормы разработки программного
обеспечения, которые стали столь
же важны, как и сам UNIX.
Стандарты.
Большое количество разных вариантов
системы UNIX привело к необходимости
стандартизовать её средства, чтобы
упростить переносимость приложений
и избавить пользователя от
необходимости изучать особенности
каждой разновидности UNIX.
С этой целью ещё в 1980
была создана пользовательская группа /usr/group.
Самые первые стандарты были разработаны
в 1984—1985 гг.
Одним из самых первых стандартов
стала спецификация System V Interface Definition
(SVID), выпущенная UNIX System Laboratories (USL) одновременно
с UNIX
System V Release 4.
Этот документ, однако, не стал официальным.
Наряду с версиями UNIX System V
существовало направление UNIX BSD.
Для того, чтобы обеспечить совместимость System V
и BSD, были созданы рабочие
группы POSIX (Portable Operating
System Interface for UNIX). Существует много
стандартов POSIX, однако наиболее известным
является стандарт POSIX
1003.1-1988, определяющий программный интерфейс
приложений
(API, Application Programming Interface). Он используется
не только в UNIX, но и в других операционных
системах.В 1990 он был принят институтом IEEE
как IEEE 1003.1-1990, а позднее — ISO/IEC 9945.
В настоящее время наиболее
важными являются следующие стандарты:
- POSIX 1003.2-1992,
определяющий поведение утилит, в том
числе командного интерпретатора;
- POSIX 1003.1b-1993,
дополняющий POSIX 1003.1-1988, — определяет поддержку
систем реального времени;
- POSIX 1003.1c-1995,
дополняющий POSIX 1003.1-1988, — определяет нити
(threads), известные также как pthreads.
Все стандарты POSIX объединены
в документе IEEE 1003.
В начале 1990-х годов The Open Group
предложила другой, похожий на POSIX стандарт — Common API Specification, или Spec 1170. Стандарт
приобрёл большую популярность, чем POSIX,
поскольку был доступен бесплатно, в то
время как IEEE требовало немалую плату
за доступ к своему стандарту.
В 1998
году были начаты
работы по объединению данных стандартов.
Благодаря этому в настоящее время данные
стандарты почти идентичны. Совместный
стандарт называется Single UNIX Specification Version
3 и доступен бесплатно в интернете.[4]
В целях совместимости, несколько
создателей UNIX-систем предложили
использовать ELF —
формат систем SVR4 для двоичных и объектных файлов.
Единый формат полностью обеспечивает
соответствие двоичных файлов в рамках
одной компьютерной архитектуры.
Структура каталогов некоторых
систем, в частности, GNU/Linux,
определена в стандарте Filesystem Hierarchy Standard. Однако, во многих отношениях
этот тип стандарта является спорным,
и он, даже внутри сообщества GNU/Linux, далеко
не универсален.
Стандартные
команды ОС UNIX.
- Создание
и навигация по файлам и каталогам: ls, mv, rm, cp, ln, cd, pwd, mkdir, rmdir, find, du, df;
- Просмотр
и редактирование файлов: touch, more, less, ed, ex, vi, emacs;
- Обработка
текста: echo, cat, grep, sort, uniq, sed, awk, tee, head, tail, cut, tr, split, printf;
- Сравнение
файлов: comm, cmp, diff, patch;
- Разнообразные
утилиты командного интерпретатора: yes, test, xargs, expr;
- Системное
администрирование: chmod, chown, ps, su, w, who, df, mount, umount;
- Коммуникации: mail, telnet, ftp, finger, ssh;
- Командные оболочки: sh, bash, csh, ksh, tcsh, zsh;
- Работа с
исходным кодом и объектным кодом: cc, gcc, ld, nm, yacc, bison, lex, flex, ar, ranlib, make;
- Сжатие и
архивация: compress, uncompress, gzip, gunzip, tar
- Работа с
двоичными файлами: od, strings
Ниже приведён список 60 команд
из раздела 1 первой версии UNIX:
- ar, as
- b, bas, bcd, boot
- cat, chdir, check, chmod, chown, cmp, cp
- date, db, dbppt, dc, df, dsw, dtf, du
- ed
- find, for, form
- hup
- lbppt, ld, ln, ls
- mail, mesg, mkdir, mkfs, mount, mv
- nm
- od
- pr
- rew, rkd, rkf, rkl, rm, rmdir, roff
- sdate, sh, stat, strip, su, sum
- tap, tm, tty, type
- un
- wc, who, write
3
Сети Петри.
Сети Петри — математический аппарат для моделирования динамических дискретных
систем. Впервые описаны Карлом Петри в 1962 году.
Сеть Петри представляет собой двудольный ориентированный
граф, состоящий
из вершин двух типов — позиций и переходов,
соединённых между собой дугами. Вершины
одного типа не могут быть соединены непосредственно.
В позициях могут размещаться метки (маркеры),
способные перемещаться по сети.
Событием называют срабатывание перехода,
при котором метки из входных позиций
этого перехода перемещаются в выходные
позиции. События происходят мгновенно,
либо разновременно, при выполнении некоторых
условий.
Виды сетей
Петри.
Некоторые виды сетей Петри:
- Временная
сеть Петри — переходы обладают весом,
определяющим продолжительность срабатывания
(задержку).
- Стохастическая
сеть Петри — задержки являются случайными
величинами.
- Функциональная
сеть Петри — задержки определяются как
функции некоторых аргументов, например,
количества меток в каких-либо позициях,
состояния некоторых переходов.
- Цветная сеть
Петри — метки могут быть различных типов,
обозначаемых цветами, тип метки может
быть использован как аргумент в функциональных
сетях.
- Ингибиторная
сеть Петри — возможны ингибиторные дуги,
запрещающие срабатывания перехода, если
во входной позиции, связанной с переходом
ингибиторной дугой, находится метка.
- Иерархическая
сеть — содержит не мгновенные переходы,
в которые вложены другие, возможно, также
иерархические, сети. Срабатывание такого
перехода характеризует выполнение полного
жизненного цикла вложенной сети.
- WF-сети
Анализ сетей
Петри.
Основными свойствами сети Петри являются:
- ограниченность —
число меток в любой позиции сети не может
превысить некоторого значения K;
- безопасность —
частный случай ограниченности, K=1;
- сохраняемость —
постоянство загрузки ресурсов,
постоянна. Где Ni — число
маркеров в i-той позиции, Ai —
весовой коэффициент;
- достижимость —
возможность перехода сети из одного заданного
состояния (характеризуемого распределением
меток) в другое;
- живость —
возможность срабатывания любого перехода
при функционировании моделируемого объекта.
В основе исследования перечисленных
свойств лежит анализ достижимости.
Литература.
- Робачевкий
А. М., Немнюгин С. А., Стесик О. Л. Операционная
система UNIX. — 2-е изд. — СПб.: БХВ-Петербург, 2010. — 656 с. — ISBN 978-5-94157-538-1 УДК 681.3.06 ББК 32.973.26-018.2
- Роберт Шимонски
Освой самостоятельно Unix. 10 минут на урок
= Sams Teach Yourself Unix in 10 Minutes. — М.: «Вильямс»,
2006. — С. 272. — ISBN
0-672-32764-3
- Эрик C. Реймонд
Искусство программирования для Unix = Art
of Unix Programming. — М.: «Вильямс»,
2005. — С. 544. — ISBN
0-13-142901-9
- Роббинс А.
Unix. Справочник. Пер. с англ. 4-е издание..
— "КУДИЦ-ПРЕСС", 2007. — С. 864. — ISBN 5-91136-031-4
- http://www.flickr.com/photos/7699742@N05/