http://npc-news.ru/

UNIX (Юникс), краткая информация об операционной системе UNIX

UNIX (произносится юникс) — семейство переносимых, многозадачных и многопользовательскихоперационных систем.

Первая система UNIX была разработана в 1969 году в подразделении Bell Labs компании AT&T. С тех пор было создано большое количество различных UNIX-систем. Юридически лишь некоторые из них имеют полное право называться «UNIX»; остальные же, хотя и используют сходные концепции и технологии, объединяются термином «UNIX-подобные» (англ. Unix-like). Для краткости в данной статье под UNIX-системами подразумеваются как истинные UNIX, так и UNIX-подобные ОС.

Некоторые отличительные признаки UNIX-систем включают в себя:

§ использование простых текстовых файлов для настройки и управления системой;

§ широкое применение утилит, запускаемых в командной строке;

§ взаимодействие с пользователем посредством виртуального устройства — терминала;

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

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

В настоящее время UNIX-системы используются в основном на серверах, а также как встроенные системы для различного оборудования. На рынке ОС для рабочих станций и домашнего применения лидером является Microsoft Windows, UNIX занимает только второе (Mac OS X), третье (GNU/Linux) и многие последующие места.

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

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

Некоторые архитектурные особенности ОС UNIX

Особенности UNIX, отличающие данное семейство от других ОС приведены ниже.

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

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

§ Командная строка находится в адресном пространстве запускаемого процесса, а не извлекается системным вызовом из процесса интерпретатора команд (как это происходит, например, в RSX-11).

§ Понятие «переменных окружения».

§ Запуск процессов вызовом fork(), то есть возможность клонирования текущего процесса со всем состоянием.

§ Понятия stdin/stdout/stderr.

§ Ввод/вывод только через дескрипторы файлов.

§ Традиционно крайне слабая поддержка асинхронного ввода/вывода, по сравнению с VMS и Windows NT.

§ Интерпретатор команд есть обыкновенное приложение, общающееся с ядром обыкновенными системными вызовами (в RSX-11 и VMS интерпретатор команд выполнялся как специальное приложение, специальным образом размещенное в памяти, пользующееся специальными системными вызовами, поддерживались также системные вызовы, дающие возможность приложению обращаться к своему родительскому интерпретатору команд).

§ Команда командной строки есть не более чем имя файла программы, не требуется специальная регистрация и специальная разработка программ как команд (что являлось обычной практикой в RSX-11, RT-11).

§ Не принят подход с программой, задающей пользователю вопросы о режимах своей работы, вместо этого используются параметры командной строки (в VMS, RSX-11, RT-11программы работали также с командной строкой, но при её отсутствии выдавали запрос на ввод параметров).

§ Пространство имён устройств на диске в каталоге /dev, поддающееся управлению администратором, в отличие от подхода Windows, где это пространство имен размещается в памяти ядра, и администрирование этого пространства (например, задание прав доступа) крайне затруднено из-за отсутствия его постоянного хранения на дисках (строится каждый раз при загрузке).

§ Широкое использование текстовых файлов для хранения настроек, в отличие от двоичной базы данных настроек, как, например, в Windows.

§ Широкое использование утилит обработки текста для выполнения повседневных задач под управлением скриптов.

§ «Раскрутка» ОС после загрузки ядра путём исполнения скриптов стандартным интерпретатором команд.

§ Широкое использование именованных каналов (pipe).

§ Все процессы, кроме init, равны между собой, не бывает «специальных процессов».

§ Адресное пространство делится на глобальное для всех процессов ядро и на локальную для процесса части, нет «групповой» части адресного пространства, как в VMS и Windows NT, как и возможности загрузки туда кода и его исполнения там.

§ Использование двух уровней привилегий процессора вместо четырёх в VMS.

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

§ Отсутствие APC и аналогов, то есть произвольных (а не жестко перечисленных в стандартном множестве) сигналов, не доставляемых до явного пожелания процесса их получить (Windows, VMS).

§ Концепция сигнала уникальна для UNIX, и крайне сложна в переносе на другие ОС, такие как Windows


Добавить комментарий

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>