Операционная система юникс. Чем отличается Unix от Linux

30.10.2019 Игры

Введение

Что такое 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 есть достаточное количество средств, позволяющих программистам и совместно работать, и управлять использованием общей информации.

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

Операционную систему UNIX можно рассматривать в виде пирамиды (рис.3.6). У основания пирамиды располагается аппаратное обеспечение, состоящее из ЦП, памяти, дисков, терминалов и других устройств. На аппаратном обеспечении работает система UNIX. Ее функция заключается в управлении аппаратным обеспечением и предоставлении всем программам системных вызовов. Эти системные вызовы позволяют программам создавать процессы, файлы и прочие ресурсы и управлять ими.

Рис. 3.6. Уровни операционной системы UNIX

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

Помимо ОС и библиотеки системных вызовов, все версии UNIX содержат большое количество стандартных программ, некоторые из них описываются стандартом POSIX 1003.2, тогда как другие могут различаться в разных версиях системы. К этим программам относятся командный процессор (оболочка), компиляторы, редакторы, программы обработки текста и утилиты для работы с файлами. Именно эти программы и запускаются пользователем с терминала.

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



У многих версийсистемы UNIX имеется графический интерфейс пользователя, сходный с популярными интерфейсами, применяемыми на компьютерах Macintosh и в системе Windows. Однако многие программисты предпочитают интерфейс командной строки, называемый оболочкой . (shell). Он значительно быстрее в использовании, существенно мощнее проще расширяется и не раздражает пользователя необходимостью постоянно хвататься за мышь. Когда оболочка запускается, она инициализируется, а затем выводит на экран символ приглашения к вводу (обычно это знак доллара или процента) и ждет, когда пользователь введет командную строку.

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

1. Команды управления файлами и каталогами.

2. Фильтры.

3. Средства разработки программ, такие как текстовые редакторы и компиляторы.

4. Текстовые процессоры.

5. Системное администрирование.

6. Разное.

Стандарт POSIX 1003.2 определяет синтаксис и семантику менее 100 из этих программ, в основном относящихся к первым трем категориям. Идея стандартизации этих программ заключается в том, чтобы можно было писать оболочки, которые работали бы на всех системах UNIX. Помимо этих стандартных утилит, существует еще масса прикладных программ, таких как web-браузеры, программы просмотра изображений и т. д.

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

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

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

Файловая система в UNIX – иерархическая, с файлами и каталогами. Все диски монтируются в единое дерево каталогов, начинающееся в одном корне. Отдельные файлы могут быть связаны с любым каталогом дерева. Чтобы пользоваться файлом, его нужно сначала открыть. При этом процессу, открывающему файл, возвращается дескриптор файла, который используется затем при чтении этого файла и записи в файл (каждый вызов, создающий объект, возвращает вызывающему процессу результат, называемый дескриптором). Внутри файловая система использует три основные таблицы: таблицу дескрипторов файлов, таблицу дескрипторов открытых файлов и таблицу i-узлов. При этом таблица i-узлов является наиболее важной. В ней содержится информация, необходимая для управления файлом и позволяющая найти его блоки.

Два термина Linux и Unix очень похожи между собой и их часто путают даже опытные пользователи. Давайте все-таки разясним разницу между этими понятиями и в каких случаях их стоит применять. Начнем с истории возникновения Linux и Unix.

История Uni x началась еще в конце 1960-х годов, изначально система разрабатывалась вместе с MIT и General Electric, но потом некоторые разработчики решили сделать собственную ОС и в 1970 году она получила название Unix, далее была переписана на языке программирования Си. С того времени ОС начала распространяться как бесплатно, так и на коммерческой основе. Появлялись новые редакции и варианты, самой большой популярностью пользовалась BSD.

Linux похож своими функциями на Unix, но вполне отличается кодовой базой. Данная операционная система была сделана из двух проектов, один из которых GNU, а второй – ядро Linux. Цель такого проекта – создать систему похожую на сам Unix, но который бы не зависил от него. Другими словами, нужно было создать ОС, которая бы бесплатно распространялась и могла модифицироваться без ограничений. Linux был разработан под влиянием системы Minix, наследника Unix, но кодовая база была написана с нуля. Linux был рассчитан на использование на обычных ПК, в то время как Unix использовался на крупных фирмах. Но уже сегодня Linux прекрасно работает на большинстве платформ и интегрируется со многими инстурментами. Например, современные дистрибутивы Linux безпроблемно работают даже с файловыми системами для Windows – FAT32, NTFS. Как появился – символ Linux?

В чем суть Unix?

Данный термин может относиться к нескольким понятиям сразу:

  • самобытная ОС, на основе которой создают и развивают другие операционные системы;
  • товарный знак, который принадлежит The Open Group. Данная компания разрабатывает стандарты для операционных систем Single UNIX Specification. Системы соответствующие данным стандартам могут именоваться Unix на законных основаниях;
  • все ОС, которые зарегистрированы под именем Unix: AIX, A/UX, HP-UX, Inspur K-UX, Reliant UNIX, Solaris, IRIX, Tru64, UnixWare, z/OS и OS X.

В чем суть Linux?

  • это Unix подобная операционная система, которая ведет себя как Unix, но не использует его код;
  • не имеет сертификата Unix, но по функциональности имеет множество сходств;
  • реализирует много принципов работы Unix.

Чем похожи Linux и Unix?

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

Основные отличия между Linux и Unix?

Linux – ОС с открытым исходным кодом, распространяется бесплатно, Unix – только ее производные находятся в свободном доступе. Linux можно назвать своеобразным клоном Unix, который не использует его код. Linux изначально разрабатывался для домашних ПК, а Unix для больших корпораций. Правда, на сегодня Linux поддерживает больше платформ чем Unix и является более популярным среди пользователей. И, конечно же, Linux поддерживает больше типов файловых систем чем Unix. Операционные системы на базе LINUX. ?

Часто данные понятия путают из-за того, что они могут по-разному трактоваться и обозначать разные вещи. Если учитывать все факторы, то ОС Unix менее универсальна, потому что каждый дистрибутив адаптирован к только определенному количеству платформ и файловых систем, в отличии от Linux, которая в данном плане намного универсальней.

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

Как итог данной статьи можно привести вот такую последовательность UNIX → UNIX-подобная ОС → Linux , которая во многом обясняет последовательность и зависимость обеих операционных систем.

Основные отличия Linux и BSD.

Компания Hyper Host™ желает Вам успешной и продуктивной работы с Linux и UNIX!

9171 раз(а) 7 Сегодня просмотрено раз(а)

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

Каджый файл в древовидной структуре расположен в определенном хранилище файлов – каталоге , каждый каталог, в свою очередь, также расположен в некотором каталоге. Таким образом, по принципу вложения элементов файловой системы (файлов и каталогов) друг в друга строится дерево, вершинами которого являются непустые каталоги, а листьями – файлы или пустые каталоги. Корень такого дерева имеет название корневой каталог и обозначается каким-либо специальным символом или группой символов (например, «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

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

    UNIX зародился в лаборатории Bell Labs фирмы AT&T более 20 лет назад.

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

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

    ОС UNIX имеет следующие основные характеристики:

    Переносимость;

    - вытесняющая многозадачность на основе процессов, работающих в изолированных адресных пространствах в виртуальной памяти;

    Поддержка одновременной работы многих пользователей;

    Поддержка асинхронных процессов;

    Иерархическая файловая система;

    Поддержка независимых от устройств операций ввода-вывода (через специальные файлы устройств);

    Стандартный интерфейс для программ (программные каналы, IPC) и пользователей (командный интерпретатор, не входящий в ядро ОС);

    Встроенные средства учета использования системы.

    Архитектура ОС UNIX - многоуровневая. На нижнем уровне работает ядро операционной системы. Функции ядра (управление процессами, памятью, обработка прерываний и т.д.) доступны через интерфейс системных вызовов , образующих второй уровень. Системные вызовы обеспечивают программный интерфейс для доступа к процедурам ядра. На следующем уровне работают командные интерпретаторы , команды и утилиты системного администрирования, коммуникационные драйверы и протоколы , - все то, что обычно относят к системному программному обеспечению . Внешний уровень образуют прикладные программы пользователя, сетевые и другие коммуникационные службы, СУБД и утилиты.

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

    Логическая файловая система в ОС UNIX (или просто файловая система ) - это иерархически организованная структура всех каталогов и файлов в системе, начинающаяся с корневого каталога. Файловая система UNIX обеспечивает унифицированный интерфейс доступа к данным, расположенным на различных носителях, и к периферийным устройствам. Логическая файловая система может состоять из одной или нескольких физических файловых (под)систем , являющихся разделами физических носителей (дисков, CD-ROM или дискет).


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

    Иерархическая структура файловой системы UNIX упрощает ориентацию в ней. Каждый каталог, начиная с корневого (/ ), в свою очередь, содержит файлы и подкаталоги .

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

    В UNIX существует несколько типов файлов, различающихся по функциональному назначению:

    Обычный файл - наиболее общий тип файлов, содержащий данные в некотором формате. Для операционной системы такие файлы представляют собой просто последовательность байтов. К этим файлам относятся текстовые файлы, двоичные данные и выполняемые программы.

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

    Специальный файл устройства - Обеспечивает доступ к физическим устройствам. Доступ к устройствам осуществляется путем открытия, чтения и записи в специальный файл устройства.

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

    Сокет- позволяют представить в виде файла сетевое соединение.

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

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

    Имеется много типов физических файловых систем, например FAT16 и NTFS, с разной структурой. Более того, имеется множество типов физических файловых систем UNIX (ufs , s5fs , ext2 , vxfs , jfs , ffs и т.д.).