Что имеет отношение операционной системе unix. Смотреть что такое "UNIX" в других словарях

Введение

Что такое Unix?

Где взять бесплатный Unix?

Каковы основные отличия Unix от других OS?

Почему Unix?

Основные понятия Unix

Файловая система

Комадный интерпретатор

Руководства - man

Введение

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

Рождение ОС Unix относится к концу 60-х годов, и эта история уже обросла "легендами", которые подчас по-разному повествуют о деталях этого события. ОС Unix родилась в исследовательском центре Bell Telephone Laboratories (Bell Labs), входящем в состав корпорации AT&T. Изначально этот инициативный проект для ЭВМ PDP-7 (впоследствии - для PDP-11) представлял собой то ли с файловую систему, то ли компьютерную игру, то ли систему подготовки текстов, то ли и то, и другое, и третье. Важно, однако, то, что с самого начала проект, превратившийся в итоге в ОС, задумывался как программная среда коллективного пользования. Автором первой версии Unix является Кен Томпсон, однако в обсуждении проекта, а впоследствии - и в его реализации принимал участие большой коллектив сотрудников (Д. Ритчи, Б. Керниган, Р. Пайк и другие). На наш взгляд, несколько счастливых обстоятельств рождения Unix определили удачу этой системы на много лет вперед.

Для большинства сотрудников того коллектива, в котором родилась ОС Unix, эта ОС была "третьей системой". Существует мнение (см., например ), что системный программист достигает высокой квалификации только при выполнении третьего своего проекта: первый проект получается еще "ученическим", во второй разработчик пытается включить все, что не получилось в первом, и в итоге он получается слишком громоздким, и только в третьем достигается необходимый баланс желаний и возможностей. Известно, что до рождения Unix коллектив Bell Labs участвовал (совместно с рядом других фирм) в разработке ОС MULTICS. Конечный продукт MULTICS (Bell Labs не принимала участия в последних стадиях разработки) носит все признаки "второй системы" и не получил широкого распространения. Следует, однако, заметить, что в этом проекте были рождены многие принципиально важные идеи и решения, и некоторые концепции, которые многие считают рожденными в Unix, на самом деле имеет своим источником проект MULTICS.

ОС Unix была системой, которая делалась "для себя и для своих друзей". Перед Unix не ставилась задача захвата рынка и конкуренции с какими-либо продуктами. Сами разработчики ОС Unix были и ее пользователями, и сами оценивали соответствие системы своим нуждам. Без давления рыночной конъюнктуры такая оценка могла быть предельно объективной.

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

В 1972-73 гг. Кен Томпсон и Деннис Ритчи написали новую версию Unix. Специально для этой цели Д. Ритчи создал язык программирования C, представлять который теперь уже нет необходимости. Более 90% программного кода Unix написано на этом языке, и язык стал неотъемлемой частью ОС. То, что основная часть ОС написана на языке высокого уровня, обеспечивает возможность ее перекомпиляции в коды любой аппаратной платформы и является обстоятельством, определившим широкое распространение Unix.

В период создания Unix антимонопольное законодательство США не давало корпорации AT&T возможности выходить на рынок программных продуктов. Поэтому ОС Unix была некоммерческой и свободно распространялась, прежде всего - в университетах. Там ее развитие продолжалось, и наиболее активно оно велось в Калифорнийском университете в г. Беркли. При этом университете была создана группа Berkeley Software Distribution, которая занималась развитием отдельной ветви ОС - BSD Unix. На протяжении всей последующей истории основная ветвь Unix и BSD Unix развивались параллельно, неоднократно взаимно обогащая друг друга.

По мере распространения ОС Unix стал все более возрастать интерес к ней коммерческих фирм, которые стали выпускать собственные коммерческие версии этой ОС. Со временем стала коммерческой и "основная" ветвь Unix от AT&T, для ее продвижения была создана дочерняя фирма Unix System Laboratory. Ветвь BSD Unix в свою очередь разветвилась на коммерческую BSD и Free BSD . Различные коммерческие и свободно распространяемые Unix-подобные системы строились на базе ядра AT&T Unix, однако в них включались и свойства, заимствуемые из BSD Unix, а также и оригинальные свойства. Несмотря на общий источник, различия между членами семейства Unix накапливались и в итоге привели к тому, что перенос приложений из одной Unix-подобной ОС в другую стал чрезвычайно затруднен. По инициативе пользователей Unix возникло движение за стандартизацию API Unix. Это движение было поддержано Международной организацией стандартов ISO и привело к возникновению стандарта POSIX (Portable Operation System Interface eXecution), который развивается и в настоящее время и является самым авторитетным стандартом для ОС. Однако, оформление спецификаций POSIX как официального стандарта - процесс довольно медленный, и он не может удовлетворять потребностей производителей программного обеспечения, что привело к возникновению альтернативных промышленных стандартов.

С переходом AT&T Unix к компании Nowell название этой ОС изменилось на Unixware, а права на торговую марку Unix перешли к консорциуму X/Open. Этот консорциум (в настоящее время - Open Group) разработал свои (более широкие, чем POSIX) спецификации системы, известные как Single Unix Specification. Недавно вышла вторая редакция этого стандарта, значительно лучше согласованная с POSIX.

Наконец, ряд фирм - производителей собственных версий Unix образовал консорциума Open Software Foundation (OSF), который выпустил собственную версию Unix - OSF/1, сделанную на базе микроядра Mach. OSF также выпустил спецификации системы OSF/1, на основе которой фирмы-члены OSF стали выпускать собственные Unix-системы. Среди таких систем: SunOS фирмы Sun Microsystems, AIX фирмы IBM, HP/UX фирмы Hewlett-Packard, DIGITAL UNIX фирмы Compaq и другие.

Поначалу Unix-системы этих фирм в большей степени базировались на BSD Unix, но сейчас большая часть современных промышленных Unix-систем строятся на базе использовании (по лицензии) ядра AT&T Unix System V Release 4 (S5R4), хотя наследуют и некоторые свойства BSD Unix. Мы не берем на себя ответственность сравнивать коммерческие Unix-системы, так как периодически появляющиеся в печати сравнения такого рода зачастую представляют совершенно противоположные результаты.

Компания Nowell продала Unix компании Santa Crouse Operations, которая выпускала собственный Unix-продукт - SCO Open Server. SCO Open Server базировался на более ранней версии ядра (System V Release 3), но был великолепно отлажен и отличался высокой стабильностью. Фирма Santa Crouse Operations интегрировала свой продукт с AT&T Unix и выпустила Open Unix 8 , однако затем продала Unix фирме Caldera, которая и является владельцем "классической" ОС Unix сегодня (в конце 2001 г).

Фирма Sun Microsystems начала свое представительство в мире Unix системой SunOS, созданной на основе ядра BSD. Однако впоследствии заменила ее системой Solaris на основе S5R4 . В настоящее время распространяется версия 8 этой ОС (существует также v.9-бета). Solaris работает на платформе SPARC (RISC-процессоры, изготовляемые по спецификациям Sun) и Intel-Pentium.

Фирма Hewlett-Packard предлагает ОС HP-UX. v.11 на платформе PA-RISC . HP-UX базируется на S5R4, но содержит много свойств, "выдающих" ее происхождение от BSD Unix. Конечно же, HP-UX будет доступна и на платформе Intel-Itanium.

Фирма IBM выступает с ОС AIX, последняя на сегодняшний день версия - 5L (о ней еще пойдет речь впереди) . IBM не объявляла "родословную" AIX, это в основном оригинальная разработка, но первые версии носили признаки происхождения от FreeBSD Unix. Сейчас, однако, AIX больше похожа на S5R4. Первоначально ОС AIX была доступна и на платформе Intel-Pentium, но впоследствии (в соответствии с общей политикой IBM) перестала поддерживаться на этой платформе. В настоящее время AIX работает на серверах IBM RS/6000 и в других вычислительных платформах на базе процессоров PowerPC (в том числе и на суперкомпьютерах IBM).

ОС DIGITAL UNIX фирмы DEC была единственной промышленной реализаций системы OSF/1. ОС DIGITAL UNIX работала на RISC-серверах Alpha фирмы DEC. Когда в 1998 г. фирма DEC была поглощена фирмой Compaq, в фирму Compaq перешли и серверы Alpha, и DIGITAL UNIX. Фирма Compaq имеет намерение восстановить присутствие на рынке серверов Alpha и в связи с этим интенсивно развивает и ОС для них. Нынешнее название этой ОС - Tru64 Unix (текущая версия - 5.1A), она продолжает базироваться на ядре OSF/1 и несет в себе много признаков BSD Unix .

Несмотря на то, что большинство коммерческих Unix-систем базируется на одном ядре и удовлетворяет требованиям POSIX, каждая из них имеет собственный диалект API, и различия между диалектами накапливаются. Это приводит к тому, что перенос промышленных приложений с одной Unix-системы на другую затрудняется и требует, как минимум, перекомпиляции, а часто - и корректировки исходного кода. Попытка преодолеть "разброд" и сделать единую для всех ОС Unix была предпринята в 1998 г. альянсом фирм SCO, IBM и Sequent. Эти фирмы объединились в проекте Monterey с целью создания единой ОС на базе Unixware, владельцем которой в то время была SCO, IBM AIX и ОС DYNIX фирмы Sequent. (Фирма Sequent занимает лидирующие позиции в производстве ЭВМ архитектуры NUMA - несимметричной многопроцессорной - и DYNIX - это Unix для таких ЭВМ). ОС Monterey должна была работать на 32-разрядной платформе Intel-Pentium, 64-разрядной платформе PowerPC и на новой 64-разрядной платформе Intel-Itanium. О поддержке проекта заявили почти все лидеры производства аппаратных средств и промежуточного программного обеспечения. Даже фирмы, имеющие собственные клоны Unix (кроме Sun Microsystems), объявили, что на платформах Intel они будут поддерживать только Monterey. Работа над проектом продвигалась, по-видимому, успешно. ОС Monterey была в числе первых, доказавших свою работоспособность на Intel-Itanium (наряду с Windows NT и Linux) и единственной, которая при этом не прибегала к эмуляции 32-разрядной архитектуры Intel-Pentium. Однако в финальной стадии проекта произошло фатальное событие: SCO продала свое Unix-отделение. Еще раньше фирма Sequent вошла в состав IBM. "Наследником" всех свойств ОС Monterey стала ОС IBM AIX v.5L. Однако, не совсем всех. Платформа Intel-Pentium не является для IBM стратегическим направлением, и на этой платформе ОС AIX недоступна. А поскольку другие лидеры компьютерной индустрии не разделяют (или не вполне разделяют) такую позицию IBM, идея общей ОС Unix так и не реализовалась.

UNIX (не стоит путать с определением «UNIX-подобная операционная система») - семейство операционных систем (Mac OS X, GNU/Linux).
Первая система была разработана в 1969 в Bell Laboratories, бывшей американской корпорации.

Отличительные особенности UNIX:

  1. Простое конфигурирование системы путем использования простых, обычно текстовых, файлов.
  2. Широкое использование командной строки.
  3. Использование конвейеров.
В наше время UNIX используют в основном на серверах, и как систему для оборудования.
Нельзя не отметить огромную историческую важность UNIX систем. В настоящее время они признаны одними из самых исторически важных ОС. В ходе разработки UNIX систем был создан язык Си.

Варианты UNIX по годам

UNIX-подобная ОС
UNIX-подобная ОС (иногда используют сокращение *nix) - система, образованная под влиянием UNIX.

Слово UNIX используется как знак соответствия и как торговая марка.

Консорциум The Open Group обладает торговой маркой «UNIX», но наиболее известен как сертифицирующий орган для торговой марки UNIX. Недавно на The Open Group был пролит свет в связи с публикацией спецификации «Single UNIX Specification», стандартов которым должна удовлетворять ОС чтобы гордо называться Unix.

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

Linux
Linux - общее название UNIX-пободных операционных систем, которые разработаны в рамках проекта GNU (проект по разработке СПО). Linux работает на огромном множестве архитектур процессора, начиная от ARM заканчивая Intel x86.

Наиболее известными и распространенными дистрибутивами являются Arch Linux, CentOS, Debian. Также существует много «отечественных», российских дистрибутивов - ALT Linux, ASPLinux и другие.

Возникает довольно много споров об именовании GNU/Linux.
Сторонники «open source» используют термин «Linux», а сторонники «free software» - «GNU/Linux». Я предпочитаю первый вариант. Иногда для удобства представления термина GNU/Linux используют написания «GNU+Linux», «GNU-Linux», «GNU Linux».

В отличие от коммерческих систем (MS Windows, Mac OS X) Linux не имеет географического центра разработки и определенной организации, которая владела бы системой. Сама система и программы для нее - результат работы огромных сообществ, тысяч проектов. Присоединиться к проекту или создать свой может каждый!

Вывод
Таким образом у нас поучилась цепочка: UNIX -> UNIX-подобная ОС -> Linux.

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

Теги: unix, linux, nix, линукс, юникс

), третье (GNU/Linux) и многие последующие места.

UNIX-системы имеют большую историческую важность, поскольку благодаря им распространились некоторые популярные сегодня концепции и подходы в области ОС и программного обеспечения . Также, в ходе разработки Unix-систем был создан язык Си .

Среди примеров известных UNIX-подобных операционных систем: BSD , Solaris , Linux , Android , MeeGo , NeXTSTEP , Mac OS X , Apple iOS .

История

Предшественники

Первые версии UNIX были написаны на ассемблере и не имели встроенного компилятора с языком высокого уровня . Примерно в 1969 году Кен Томпсон при содействии Денниса Ритчи разработал и реализовал язык Би (B), представлявший собой упрощённый (для реализации на миникомпьютерах) вариант разработанного в языка BCPL . Би, как и BCPL, был интерпретируемым языком. В 1972 году была выпущена вторая редакция UNIX, переписанная на языке Би. В 1969-1973 годах на основе Би был разработан компилируемый язык, получивший название Си (C).

Раскол

Важной причиной раскола UNIX стала реализация в 1980 году стека протоколов TCP/IP . До этого межмашинное взаимодействие в UNIX пребывало в зачаточном состоянии - наиболее существенным способом связи был UUCP (средство копирования файлов из одной UNIX-системы в другую, изначально работавшее по телефонным сетям с помощью модемов).

Было предложено два интерфейса программирования сетевых приложений: Berkley sockets (сокет Беркли) и интерфейс транспортного уровня TLI (англ. Transport Layer Interface ).

Интерфейс Berkley sockets был разработан в университете Беркли и использовал стек протоколов TCP/IP , разработанный там же. TLI был создан AT&T в соответствии с определением транспортного уровня модели OSI и впервые появился в системе System V версии 3. Хотя эта версия содержала TLI и потоки, первоначально в ней не было реализации TCP/IP или других сетевых протоколов, но подобные реализации предоставлялись сторонними фирмами.

Реализация TCP/IP официально и окончательно была включена в базовую поставку System V версии 4. Это, как и другие соображения (по большей части, рыночные), вызвало окончательное размежевание между двумя ветвями UNIX - BSD (университета Беркли) и System V (коммерческая версия от AT&T). Впоследствии, многие компании, лицензировав System V у AT&T, разработали собственные коммерческие разновидности UNIX, такие как AIX , CLIX, HP-UX , IRIX , Solaris .

Современные реализации UNIX, как правило, не являются системами V или BSD в чистом виде. Они реализуют возможности как System V, так и BSD.

Свободные UNIX-подобные операционные системы

В настоящий момент GNU/Linux и представители семейства BSD быстро отвоёвывают рынок у коммерческих UNIX-систем и одновременно проникают как на настольные компьютеры конечных пользователей, так и на мобильные и встраиваемые системы.

Проприетарные системы

Влияние UNIX на эволюцию операционных систем

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

Широко используемый в системном программировании язык Си , созданный изначально для разработки UNIX, превзошёл UNIX по популярности. Язык Си был первым «веротерпимым» языком, который не пытался навязать программисту тот или иной стиль программирования. Си был первым высокоуровневым языком, предоставляющим доступ ко всем возможностям процессора , таким как ссылки , таблицы , битовые сдвиги , инкременты и т. п. С другой стороны, свобода языка Си приводила к ошибкам переполнения буфера в таких функциях стандартной библиотеки Си, как gets и scanf. Результатом стали многие печально известные уязвимости, например, та, что эксплуатировалась в знаменитом черве Морриса .

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

UNIX предоставлял возможность использования протоколов TCP/IP на сравнительно недорогих компьютерах, что привело к быстрому росту Интернета . Это, в свою очередь, способствовало быстрому обнаружению нескольких крупных уязвимостей в системе безопасности, архитектуре и системных утилитах UNIX.

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

Социальная роль в сообществе ИТ-профессионалов и историческая роль

Первоначальные UNIX работали на крупных многопользовательских компьютерах, к которым также предлагались и проприетарные ОС от производителя оборудования, такие как RSX-11 и ее потомок VMS . Невзирая на то, что по ряду мнений тогдашний UNIX имел недостатки по сравнению с данными ОС (например, отсутствие серьёзных движков баз данных), он был а) дешевле, а иногда и бесплатен для академических учреждений б) был портируем с оборудования на оборудование, и разработан на портируемом языке Си, что «отвязывало» разработку программ от конкретной аппаратуры. Кроме того, «отвязанным» от аппаратуры и производителя оказался и опыт пользователя - человек, работавший с UNIX на VAX, легко работал с ней же и на 68xxx, и так далее.

Производители аппаратуры в то время часто прохладно относились к UNIX, считая ее игрушечной, и предлагая свою проприетарную ОС для серьёзной работы - в первую очередь СУБД и основанных на них бизнес-приложений в коммерческих структурах. Известны комментарии по этому поводу от DEC по поводу ее VMS . К этому прислушивались корпорации, но не академическая среда, которая имела все для себя необходимое в UNIX, зачастую не требовала официальной поддержки от производителя, справляясь своими силами, и ценила дешевизну и переносимость UNIX.

Таким образом, UNIX была едва ли не первой переносимой на разную аппаратуру ОС.

Вторым резким взлетом UNIX было появление RISC -процессоров около 1989 года. Еще до того существовали т. н. workstations - персональные однопользовательские компьютеры большой мощности, имеющие достаточный объем памяти, жесткого диска и достаточно развитую ОС (многозадачность, защита памяти) для работы с серьёзными приложениями, такими, как CADы. Среди производителей таких машин выделялась компания Sun Microsystems , сделавшая себе на них имя.

До появления RISC-процессоров в этих станциях обычно использовался процессор Motorola 68xxx, тот же, что и в компьютерах фирмы Apple (хотя и под более развитой операционной системой, чем у Apple).

Около 1989 года на рынке появились коммерческие реализации процессоров RISC -архитектуры. Логичным решением ряда компаний (Sun и других) был перенос UNIX на эти архитектуры, что немедленно повлекло за собой и перенос всей экосистемы ПО для UNIX.

Проприетарные серьёзные ОС, такие как VMS , начали свой закат именно с этого момента (даже если и удалось перенести на RISC саму ОС, все было намного сложнее с приложениями под нее, которые в этих экосистемах зачастую разрабатывались на ассемблере или же на проприетарных языках типа BLISS), и UNIX стал ОС для самых мощных компьютеров в мире.

Однако в это время экосистема PC начала переходить на GUI в лице Windows 3.0. Огромные преимущества GUI, а также, например, унифицированная поддержка всех типов принтеров, были оценены и разработчиками, и пользователями. Это сильно подорвало позиции UNIX на рынке - реализации такие, как SCO и Interactive UNIX, не справлялись с поддержкой Windows-приложений. Что же касается GUI для UNIX, называемого X11 (были и иные реализации, много менее популярные), то он не мог полноценно работать на обычной пользовательской PC ввиду требований к памяти - для нормальной работы X11 требовалось 16 МБ, в то время как Windows 3.1 с достаточной производительностью исполняла и Word, и Excel одновременно в 8 МБ (это стало стандартным размером памяти PC в то время). При высоких ценах на память это было лимитирующим фактором.

Успех Windows дал импульс внутреннему проекту Microsoft под названием Windows NT, которая была совместима с Windows по API, но при этом имела все те же архитектурные особенности серьёзной ОС, что и UNIX - многозадачность, полноценную защиту памяти, поддержку многопроцессорных машин, права доступа к файлам и директориям, системный журнал. Также Windows NT представила журнальную файловую систему NTFS, которая по возможностям на тот момент превышала все стандартно поставляемые с UNIX файловые системы - аналоги под UNIX были только отдельными коммерческими продуктами от Veritas и других.

Хотя Windows NT и не была популярна первоначально из-за высоких требований к памяти (те же 16 МБ), она позволила Microsoft выйти на рынок решений для серверов, например, СУБД. Многие в то время не верили в возможность Microsoft, традиционно специализирующейся на настольном ПО, быть игроком на рынке ПО масштаба предприятия, где уже были свои громкие имена, такие как Oracle и Sun. К этому сомнению добавлялся тот факт, что СУБД Microsoft - SQL Server - начинался как упрощенная версия Sybase SQL Server, лицензированная у Sybase и на 99 % совместимая по всем аспектам работы с ним.

Во второй половине 1990-х годов Microsoft начал теснить UNIX и на рынке корпоративных серверов.

Совокупность вышеперечисленных факторов, а также огромное падение цены на 3D-видеопроцессоры, ставшими из профессионального оборудования домашним, по сути убила само понятие workstation к началу 2000-ных годов.

Кроме того, системы Microsoft проще в управлении, особенно в типовых сценариях использования.

Но в данный момент начался третий резкий взлет UNIX.

Кроме того, Столлман и его товарищи, прекрасно понимая, что для успеха не завязанного на корпорации программного обеспечения необходимы не проприетарные средства разработки, разработал набор компиляторов для различных языков программирования (gcc), что вместе с разработанными ранее утилитами GNU (замена стандартных утилит UNIX) составило необходимый и достаточно мощный пакет программ для разработчика.

Для создания полностью свободного UNIX не хватало по сути только ядра ОС. И оно было разработано финским студентом Линусом Торвалдсом. Ядро было разработано «с нуля» и не является с точки зрения исходного кода деривативом ни BSD, ни System V (хотя концепты таки заимствовались, например, Linux имел функции namei и bread), однако по ряду нюансов (системные вызовы, богатая /proc, отсутствие sysctk) - больше тяготеет к последней.

  • 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.

В целях совместимости несколько создателей UNIX-систем предложили использовать ELF - формат систем SVR4 для двоичных и объектных файлов . Единый формат полностью обеспечивает соответствие двоичных файлов в рамках одной компьютерной архитектуры.

Структура каталогов некоторых систем, в частности, GNU/Linux , определена в стандарте Filesystem Hierarchy Standard . Однако, во многих отношениях этот тип стандарта является спорным, и он, даже внутри сообщества GNU/Linux, далеко не универсален.

Стандартные команды ОС UNIX

  • Создание и навигация по файлам и каталогам: touch , , , , , , pwd , , mkdir , rmdir , find , ;
  • Просмотр и редактирование файлов: more , less , , ex, , emacs ;
  • Обработка текста: echo , cat , grep , sort , uniq , sed , awk , tee , head , tail , cut , , split , printf ;
  • Сравнение файлов: comm , cmp , diff , patch ;
  • Разнообразные утилиты командного интерпретатора: yes , test , xargs , expr ;
  • Системное администрирование: chmod , chown , , , , who , , mount , umount ;
  • Коммуникации: mail , telnet, ftp , finger, rsh, ssh;
  • Командные оболочки : , bash , csh , ksh , tcsh , zsh ;
  • Работа с исходным кодом и объектным кодом: cc, gcc , ld, , yacc , bison , lex , flex , ar, ranlib, make ;
  • Сжатие и архивация: compress, uncompress, gzip , gunzip , tar
  • Работа с двоичными файлами: , strings

Ниже приведён список 60 команд из раздела 1 первой версии UNIX:

  • b, bas , bcd, boot
  • cat , chdir , check, chmod , chown , cmp ,
  • date , db, dbppt, , , dsw, dtf,
  • mail , mesg , mkdir , mkfs, mount ,
  • rew, rkd, rkf, rkl, , rmdir , roff

Примечания

См. также

Что такое Unix (для начинающих)


Дмитрий Ю. Карпов


О чем это я?


Этот опус не претендует на полноту описания. Более того, в целях упрощения сознательно опущены некоторые подробности. Сначала цикл задумывался как FAQ (ЧаВо - часто задаваемые вопросы), но видимо получится "Курс молодого бойца" или "Сержантская школа".

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

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

Этот файл еще долго будет находиться в состоянии "under construction". :-)

Что такое Unix?


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

Какие бывают Unix"ы и на каких машинах они запускаются?


Этот список не претендует на полноту, ибо кроме перечисленных есть еще множество менее распространенных Unix"ов и Unix-подобных систем, не говоря уже о древних Unix"ах для устаревших машин.

Условно можно выделить семейства System V и Berkeley. System V (читается "System Five") имеет несколько вариантов, последний по моим сведениям System V Release 4. Университет Berkeley славен не только разработкой BSD, но и большинства протоколов Internet. Впрочем, многие Unix"ы сочетают свойства обеих систем.

Где взять бесплатный Unix?


  • Семейство BSD: FreeBSD , NetBSD , OpenBSD .
  • Семейство Linux : RedHat , SlackWare , Debian , Caldera ,
  • SCO и Solaris доступны бесплатно для некоммерческого использования (в основном - для учебных заведений).

    Каковы основные отличия Unix от других OS?


    Unix состоит из ядра с включенными в него драйверами и из утилит (внешних по отношению к ядру программ). Если надо изменить конфигурацию (добавить устройство, изменить порт или прерывание), то ядро пересобирают (перелинковывают) из обьектных модулей или (напр., во FreeBSD) из исходников. /* Это не совсем верно. Некоторые параметры можно поправить без пересборки. Существуют также loadable kernel modules. */

    В противоположность Unix"у Windows (если не уточняется, какая, то имеются в виду 3.11, 95 и NT) и OS/2 при загрузке фактически на ходу прилинковывают драйверы. При этом компактность собранного ядра и повторное использование общего кода на порядок ниже, чем у Unix. Кроме того, при неизменной конфигурации системы ядро Unix без переделки (потребуется изменить только стартовую часть BIOS) может быть записан в ПЗУ и выполняться _не_загружаясь_ в ОЗУ. Компактность кода особенно важна, т.к. ядро и драйверы никогда не покидают физическую оперативную память, не свопятся на диск.

    Unix - самая многоплатформенная OS. WindowsNT пытается подражать ему, но пока это плохо удается - после отказа от MIPS и POWER-PC, W"NT остались всего на двух платформы - традиционная i*86 и DEC Alpha. Разумеется, переносимость программ с одной версии Unix на другую ограничена. Неаккуратно написанная программа, не учитывающая различий в реализациях Unix, делающая необоснованные предположения типа "переменная integer должна занимать четыре байта", может потребовать серьезной переделки. Но все равно это на много порядков легче, чем например пернести с OS/2 на NT.

    Почему Unix?


    Unix используется как в качестве как сервера, так и рабочей станции. В номинации серверов с ним конкурируют MS WindowsNT, Novell Netware, IBM OS/2 Warp Connect, DEC VMS и операционные системы мэйнфреймов. Каждая система имеет свою область применения, в которой она лучше других.

  • WindowsNT - для администраторов, которые предпочитают привычный интерфейс экономному расходованию ресурсов и высокой производительности.
  • Netware - для сетей, где нужна высокая производительность файлового и принтерного сервиса и не столь важны остальные сервисы. Главный недостаток - на сервере Netware трудно запускать приложения.
  • OS/2 хороша там, где нужен "легкий" сервер приложений. Ресурсов требует меньше чем NT, в управлении гибче (хотя в настройке может и сложнее), а многозадачность очень хорошая. Авторизация и разграничение прав доступа не реализованы на уровне ОС, что с лихвой окупается реализацией на уровне приложений-серверов. (Впрочем, зачастую остальные OS делают то же самое). Многие станции FIDOnet и BBS сделаны на базе OS/2.
  • VMS - мощный, ничем не уступающий Unix"ам (а во многом и превосходящий его) сервер приложений, но только для платформ VAX и Alpha фирмы DEC.
  • Мэйнфреймы - для обслуживания очень большого количества пользователей (порядка нескольких тысяч). Но работа этих пользователей как правило организована в виде не клиент-серверного взаимодействия, а в виде хост-терминального. Терминал же в этой паре скорее не клиент, а сервер (Мир Internet, N3 за 1996-й год). К преимуществам мэйнфреймов надо отнести более высокую защищенность и устойчивость к сбоям, а к недостаткам - соответствующую этим качествам цену.

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

    Недостаточная гибкость предоставления прав доступа пользователей к файлам по сравнению с WindowsNT затрудняет организацию _на_уровне_файловой_системы_ группового доступа к данным (точнее, к файлам), что на мой взгляд компенсируется простотой реализации, а значит меньшими требованиями к аппаратуре. Впрочем, такие приложения, как SQL-сервер решают проблему группового доступа к данным своими силами, так что отсутствующая в Unix возможность запретить доступ к _файлу_ конкретному пользователю на мой взгляд является явно избыточной.

    Практически все протоколы, на которых основан Internet, были разработаны под Unix, в частности стек протоколов TCP/IP придуман в университете Berkeley.

    Защищенность Unix при правильном администрировании (а когда это не так?) ни в чем не уступает ни Novell, ни WindowsNT.

    Важным свойством Unix, которое приближает его к мэйнфреймам, является его многотерминальность, много пользователей могут одновременно запускать программы на одной Unix-машине. Если не требуется использовать графику, можно обойтись дешевыми текстовыми терминалами (специализированными или на базе дешевых PC), подключенными по медленным линиям. В этом с ним конкурирует только VMS. Можно использовать и графические X-терминалы, когда на одном экране присутствуют окна процессов, выполняющихся на разных машинах.

    В номинации рабочих станций с Unix конкурируют MS Windows*, IBM OS/2, Macintosh и Acorn RISC-OS.

  • Windows - для тех, кто ценит совместимость больше эффективности; для тех, кто готов купить большое количество памяти, дискового пространства и мегагерц; для тех, кто любит не вникая в суть, щелкать мышкой по кнопочкам в окошке. Правда, рано или поздно все равно придется изучить принципы работы системы и протоколов, но тогда уже будет поздно - выбор сделан. Немаловажным преимуществом Windows надо признать также возможность украсть кучу программного обеспечения.
  • OS/2 - для любителей OS/2. :-) Хотя по некоторым сведениям OS/2 лучше других взаимодействует с мэйнфреймами и сетями IBM.
  • Macintosh - для графических, издательских и музыкальных работ, а также для тех, кто любит понятный, красивый интерфейс и не хочет (не может) разбираться в подробностях функционирования системы.
  • RISC-OS, прошитая в ПЗУ, позволяет не тратить время на инсталляцию операционной системы и восстановление ее после сбоев. Кроме того, практически все программы под ней очень экономно расходуют ресурсы, благодаря чему не нуждаются в свопинге и работают очень быстро.

    Unix функционирует как на PC, так и на мощных рабочих станциях с RISC-процессорами, под Unix написаны действительно мощные САПР и геоинформационные системы. Своей масштабируемостью Unix из-за его многоплатформенности на порядок превосходит любую другую операционную систему из известных мне.

    Основные понятия Unix


    Unix базируется на двух основных понятиях: "процесс" и "файл". Процессы являют собой динамическую сторону системы, это субьекты; а файлы - статическую, это обьекты действия процессов. Почти весь интерфейс взаимодействия процессов с ядром и друг с другом выглядит как запись/чтение файлов. /* Хотя надо добавить такие вещи, как сигналы, разделяемая память и семафоры. */

    Процессы нельзя путать с программами - одна программа (как правило с различными данными) может выполняться в разных процессах. Процессы можно весьма условно разделить на два типа - задачи и демоны. Задача - это процесс, который выполняет свою работу, стремясь побыстрее закончить ее и завершиться. Демон ждет событий, которые он должен обработать, обрабатывает произошедшие события и снова ждет; завершается он как правило по приказу другого процесса, чаще всего его убивает пользователь, дав команду "kill номер_процесса". /* В этом смысле получается, что интерактивная задача, обрабатывающая ввод пользователя, скорее похожа на демона, чем на задачу. :-) */

    Файловая система


    В старых Unix"ах отводилось 14 букв на имя, в новых это ограничение снято. В директории кроме имени файла находится его идентефикатор inode - целое число, определяющее номер блока, в котором записаны атрибуты файла. Среди них: номер пользователя - хозяина файла; номер группы; количество ссылок на файл (см.далее) даты и время создания, последней модификации и последнего обращения к файлу; атрибуты доступа. Атрибуты доступа содержат тип файла (см.далее), атрибуты смены прав при запуске (см.далее) и права доступа к нему для хозяина, одногрупника и остальных на чтение, запись и выполнение. Право на стирание файла определяется правом записи в вышележащую директорию.

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

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

    Файлы бывают следующих типов:

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

    Специальные файлы, предназначенные для работы с устройствами, как правило, сосредоточены в директории " /dev ". Вот некоторые из них (в номинации FreeBSD):

    • tty* - терминалы, в т.ч.:
      • ttyv - виртуальная консоль;
      • ttyd - DialIn терминал (обычно последовательный порт);
      • cuaa - DialOut линия
      • ttyp - сетевой псевдо-терминал;
      • tty - терминал, с которым ассоциирована задача;
    • wd* - жесткие диски и их подразделы, в т.ч.:
      • wd - жесткий диск;
      • wds - партиция этого диска (именуемая здесь "slice");
      • wds - раздел партиции;
    • fd - floppy-диск;
    • rwd*, rfd* - то же самое, что wd* и fd*, но с последовательным доступом;

    Иногда требуется, чтобы программа, запущенная пользователем, имела не права запустившего ее пользователя, а какие-то другие. В этом случае устанавливается атрибут смены прав на права пользователя - хозяина программы. (В качестве примера приведу программу, которая читает файл с вопросами и ответами и на основании прочитанного тестирует запустившего эту программу студента. Программа должна иметь право читать файл с ответами, а запустивший ее студент - нет.) Так, например, работает программа passwd, с помощью которой юзер может изсменить свой пароль. Юзер может запустить программу passwd, она может произвести изменения в системной базе данных - а пользователь не может.

    В отличие от DOS, в котором полное имя файла выглядит как "диск:\путь\имя", и RISC-OS, в которой оно выглядит "-файловая_система-диск:$.путь.имя" (что вообще говоря имеет свои преимущества), Unix использует прозрачную нотацию в виде "/путь/имя". Корень отсчитывается от раздела, с которого было загружено ядро Unix. Если мы собираемся использовать другой раздел (а на загрузочном разделе как правило находится только самое необходимое для загрузки), используется команда `mount /dev/файл_раздела директория`. При этом файлы и поддиректории, ранее находившиеся в этой директории, становятся недоступными, пока не раздел не будет размонтирован (естественно, все нормальные люди используют для монтирования разделов пустые директории). Производить монтирование и размонтирование имеет право только супервизор.

    При запуске каждый процесс может расчитывать, что для него уже открыты три файла, которые ему известны как стандартный ввод stdin по дескриптору 0; стандартный вывод stdout по дескриптору 1; и стандартный вывод stderr по дескриптору 2. При регистрации в системе, когда пользователь вводит имя и пароль, а ему запускается shell, все трое направлены на /dev/tty; позже любой из них может быть перенаправлен в любой файл.

    Комадный интерпретатор


    В Unix практически всегда входят два командных интерпретатора - sh (shell) и csh (C-подобный shell). Кроме них еще бывают bash (Bourne), ksh (Korn), и другие. Не вдаваясь в подробности, приведу общие принципы:

    Все команды, кроме изменения текущей директории, установки переменных окружения (environment) и операторов структурного программирования - внешние программы. Программы эти как правило располагаются в каталогах /bin и /usr/bin. Программы системного администрирования - в каталогах /sbin и /usr/sbin.

    Команда состоит из имени запускаемой программы и аргументов. Аргументы отделяются от имени команды и друг от друга пробелаим и табуляциями. Некоторые спецсимволы интерпретируются самим shell"ом. Спецсимволами являются " " ` \ ! $ ^ * ? | & ; (еще какие?).

    В одной командной строке можно дать несколько команд. Команды могут быть разделены; (последовательное выполнение команд), & (асинхронное одновременное выполнение команд), | (синхронное выполнение, стандартный вывод stdout первой команды будет подан на стандартный ввод stdin второй).

    Кроме того, можно брать стандартный ввод из файла, включив в качестве одного из аргументов "<файл" (без кавычек); можно направить стандартный вывод в файл, используя ">файл" (файл будет обнулен) или ">>файл" (запись будет произведена в конец файла). Сама программа не получит этого аргумента; чтобы узнать, что ввод или вывод переназначены, программа должна сама предпринять некоторые весьма нетривиальные телодвижения.

    Руководства - man


    Если надо получить информацию по какой-либо команде, дайте команду "man имя_команды". На экран это будет выдаваться через программу "more" - посмотрите, как с ней управляться на вашем Unix"е командой `man more`.

    Дополнительная документация

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

    Каджый файл в древовидной структуре расположен в определенном хранилище файлов – каталоге , каждый каталог, в свою очередь, также расположен в некотором каталоге. Таким образом, по принципу вложения элементов файловой системы (файлов и каталогов) друг в друга строится дерево, вершинами которого являются непустые каталоги, а листьями – файлы или пустые каталоги. Корень такого дерева имеет название корневой каталог и обозначается каким-либо специальным символом или группой символов (например, «C: » в операционной системе Windows). Каждому файлу соответствует некоторое имя , отпределяющее его расположение в дереве файловой системы. Полное имя файла состоит из имен всех вершин дерева файловой системы, через которые можно пройти от корня до данного файла (каталога), записывая их слева-направо и разделяя специальными символами-разделителями.

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

    Файлы и каталоги идентифицируются не по именам, а по индексным узлам (i-node) – индексам в общем массиве файлов для данной файловой системе. В этом массиве хранится информация об используемых блоках данных на носителе, а также – длина файла, владелец файла, права доступа и другая служебная информация под общим названием «метаданные о файле ». Логические же связки типа «имя–i-node » – есть ни что иное как содержимое каталогов.

    Таким образом, каждый файл характеризуется одним i-node, но может быть связан с несколькими именами – в UNIX это называют жёсткими ссылками (см. Рисунок 1.22, «Пример жесткой ссылки»). При этом, удаление файла происходит тогда, когда удаляется последняя жёсткая ссылка на этот файл.

    Важной особенностью таких файловых систем является то, что имена файлов зависят от регистра, другими словами файлы test.txt и TEST.txt отличаются (т.е. являются разными строками в файле директории).

    В определенных (фиксированных для данной файловой системы) блоках физического носителя данных находится т.н. суперблок . Суперблок – это наиболее ответственная область файловой системы, содержащая информацию для работы файловой системы в целом, а также – для ёе идентификации. В суперблоке находится «магическое число » – идентификатор файловой системы, отличающий её от других файловых систем, список свободных блоков, список свободных i-node"ов и некоторая другая служебная информация.

  • Помимо каталогов и обычных файлов для хранения информации, ФС может содержать следующие виды файлов:

    Специальный файл устройства

    Обеспечивает доступ к физическому устройству. При создании такого устройства указывается тип устройства (блочное или символьное), старший номер – индекс драйвера в таблице драйверов операционной системы и младший номер – параметр, передаваемый драйверу, поддерживающему несколько устройств, для уточнения о каком «подустройстве » идет речь (например, о каком из нескольких IDE-устройств или COM-портов).

    Именованный канал Символическая ссылка

    Особый тип файла, содержимое которого – не данные, а имя какого-либо другого файла (см. Рисунок 1.23, «Пример символической ссылки» . Для пользователя такой файл неотличим от того, на который он ссылается.

    Символическая ссылка имеет ряд преимуществ по сравнению с жёсткой ссылкой: она может использоваться для связи файлов в разных файловых системах (ведь номера индексных узлов уникальны только в рамках одной файловой системы), а также более прозрачно удаление файлов – ссылка может удаляться совершенно независимо от отсновного файла.

    Сокет
  • Такие файловые системы наследуют особенности оригинального UNIX. К ним можно отнести, например: s5 (используемая в версиях UNIX System V), ufs (BSD UNIX), ext2, ext3, reiserfs (Linux), qnxfs (QNX). Все эти файловые системы различаются форматами внутренних структур, но совместимы с точки зрения основных концепций.

    Дерево каталогов

    Рассмотрение второго значения термина ФС приводит нас к уже обозначенной ранее совокупности процедур, осуществляющих доступ к файлам на различных носителях. Особенностью операционных систем семейства UNIX является существование единого дерева файловой системы для любого количества носителей данных с одинаковыми или разными типами файловых систем на них. Это достигается путем монтирования – временной подстановкой вместо каталога одной файловой системы дерева другой файловой системы, вследствие чего система имеет не несколько деревьев никак не связанных друг с другом, а одно большое разветвленное дерево с единым корневым каталогом.

    Файловая подсистема операционной системы UNIX имеет имеет уникальную систему обработки запросов к файлам – переключатель файловых систем или виртуальная файловая система (VFS ). VFS предоставляет пользователю стандартный набор функций (интерфейс) для работы с файлами, вне зависимости от места их расположения и принадлежности к разным файловым системам.

    В мире стандартов UNIX определено, что корневой каталог единого дерева файловой системы должен иметь имя / , как и символ-разделитель при формировании полного имени файла. Тогда полное имя файла может быть, например, /usr/share/doc/bzip2/README . Задача VFS – по полному имени файла найти его местоположение в дереве файловой системы, определить её тип в этом месте дерева и «переключить », т.е. передать файл на дальнейшую обработку драйверу конктретной файловой системы. Такой подход позволяет использовать практически неограниченое количество различных файловых систем на одном компьютере под управлением одной операционной системы, а пользователь даже не будет знать, что файлы физически находятся на разных носителях информации.

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

    Рисунок 1.24. Стандартные каталоги в файловой системе UNIX

    Приведем краткое описание основных каталогов системы, формально описываемых специальным стандартом на иерархию файловой системы (Filesystem Hierarchy Standart). Все каталоги можно разделить на две группы: для статической (редко меняющейся) информации – /bin , /usr и динамической (часто меняющейся) информации – /var , /tmp . Исходя из этого администраторы могут разместить каждый из этих каталогов на собственном носителе, обладающем соответствующими характеристиками.

    Корневой каталог

    Корневой каталог / является основой любой ФС UNIX. Все остальные каталоги и файлы располагаются в рамках струтуры (дерева), порождённой корневым каталогом, независимо от их физического местонахождения.

    /bin

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

    /boot

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

    /dev

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

    /etc

    В этом каталоге находятся системные конфигурационные файлы. В качестве примеров можно привести файлы /etc/fstab , содержащий список монтируемых файловых систем, и /etc/resolv.conf , который задаёт правила составления локальных DNS-запросов. Среди наиболее важных файлов – скрипты инифиализации и деинициализации системы. В системах, наследующих особенности UNIX System V, для них отведены каталоги с /etc/rc0.d по /etc/rc6.d и общий для всех файл описания – /etc/inittab .

    /home (необязательно)

    Директория содержит домашние директории пользователей. Её существование в корневом каталоге не обязательно и её содержимое зависит от особенностей конкретной UNIX-подобной операционной системы.

    /lib

    Каталог для статических и динамических библиотек, необходимых для запуска программ, находящихся в директориях /bin и /sbin .

    /mnt

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

    /root (необязательно)

    Директория содержит домашюю директорию суперпользователя. Её существование в корневом каталоге не обязательно.

    /sbin

    В этом каталоге находятся команды и утилиты для системного администратора. Примерами таких команд являются: route , halt , init и т.п.. Для аналогичных целей применяются директории /usr/sbin и /usr/local/sbin .

    /usr

    Эта директория повторяет структуру корневой директории – содержит каталоги /usr/bin , /usr/lib , /usr/sbin , служащие для аналогичных целей.

    Каталог /usr/include содержит заголовочные файлы языка C для всевозможные библиотек, расположенных в системе.

    Каталог /usr/local является следующим уровнем повторения корневого каталога и служит для хранения программ, установленных администратором в дополнение к стандартной поставке операционной системы.

    Каталог /usr/share хранит неизменяющиеся данные для установленных программ. Особый интерес представляет каталог /usr/share/doc , в который добавляется документация ко всем установленным программам.

    /var , /tmp

    Используются для хранения временных данных процессов – системных и пользовательских соответственно.