Unix – это семейство переносимых, многопользовательских и многозадачных операционных систем. Базируются на идеях проекта под названием AT&T Unix. Разработано еще в 1970-х годах.
Такие системы обладают модульным дизайном. В нем каждая операция будет выполняться при помощи отдельной утилиты. Взаимодействие базируется на единой файловой системе. Для работы с приложениями пользователю придется использовать командную строку.
Концепции, заложенные в основе Unix, сильно повлияли на развитие нынешних операционных систем для ПК и ноутбуков. Сегодня они признаны наиболее важными среди всех остальных: как для пользователей и администраторов, так и для истории.
Данная статья расскажет о том, какие существуют Unix ОС. Предстоит выяснить их особенности функционирования и взаимодействия с клиентами. Предложенная информация поможет не только разобраться с упомянутым типом систем, но и выбрать конкретный ее вариант.
Историческая справка
В 60-х годах General Electric вместе с Bell Labs из технологического института в Массачусетсе занималась разработкой Multics. Донный проект должен был стать интерактивной системой с многопоточной и многопользовательской поддержкой. Идея не задалась – Кен Томпсон и Деннис Ритчи продолжили трудиться над Multics, а вот Bell Labs ушли из-за неоправданных надежд. Подобная разработка завершилась появлением Unix.
Кен и Деннис были руководителями команды исследователей, занятых разработкой:
- иерархической файловой системы;
- интерпретатора командной строки;
- небольших служебных программ;
- концепций процессов, а также файлов различных устройств.
Через месяц постоянной работы Томпсон развернул ОС с ассемблером, редактором и оболочкой под именем YEW-nihks. Последняя базировалась на ранних наработках Multics. Unix оказался более компактным. Он представил систему однозадачного типа.
Unix изначально был создан на Assembler. Это продолжалось до 1973 года. Тогда появилось его четвертое издание – на C. Изменение стало одним из революционных, ведь Юникс-системы казались слишком сложными для написания на языках высокого уровня.
В начале 80-х Unix стал активно распространяться, особенно в научной сфере. В 1990-х были разработаны дистрибутивы двух операционных систем, благодаря которым Unix стал особо популярен у «обычных» пользователей.
Сейчас большинство современных ОС и мобильных платформ работают под управлением Unix. Такие операционные системы принадлежат компании Open Group. Первая версия стандарта спецификации Unix V7 послужила четвертой модификацией, созданной в 2013 году.
Концепции
Рассматриваемые ОС используют простой тест при хранении данных, а также иерархические файловые системы и конкретные типы взаимодействия между процессорами устройства (IPC).
Пользователи смогут связать здесь инструменты и небольшое программное обеспечение. Делается это при помощи интерпретатора командной строки. Так называется программа пользовательского уровня. Ее аналог есть в Windows – служба CMD.
Разработчики смогут написать собственную оболочку, а затем добавить новые команды без ее изменения. Связано это с тем, что Юникс использует один и тот же язык как для сценариев, так и для интерактивных команд.
Концепции являются достаточно влиятельными. На то существуют различные причины:
- ОС рассматривают все типы файлов в виде простых байтовых массивов. Последние формируют упрощенную файловую модель.
- Использование при работе иерархической файловой системы с произвольно вложенными подкаталогами. До появления таких ОС компьютеры умели делить память устройства на разделы исключительно с фиксированным количеством уровней.
- Наличие модульности и возможности многократного использования.
Unix сформировали некий набор культурных правил для разработки программного обеспечения. Такие системы имеют собственную философию, которая пользуется спросом у современных программистов.
Архитектура
Архитектура UNIX является многоуровневой. На нижнем уровне (он расположен над оборудованием) функционирует ядро системы. Его функции будут доступны при помощи интерфейса системных вызовов. Он формирует второй уровень. Далее будут работать командные интерпретаторы, а также утилиты и команды системного администрирования. Сюда же можно отнести протоколы, драйверы коммуникационного характера – то, что обычно относится к непосредственному программному обеспечению. Внешний уровень будет образовываться из прикладных программ пользователей, а также сетевых и иных коммуникационных служб, утилит и СУБД.
Unix поддерживает следующие возможности:
- многозадачность;
- собственный интерфейс разработки;
- применение файлов в качестве абстракций;
- многопользовательский интерфейс;
- встроенная сеть со стандартом TCP/IP.
Также в Юникс присутствуют постоянные системные процессы. Они носят название «демонов» (daemons). Управляются при помощи init или inet.
О файлах и процессах
В системах Unix все является или файлом, или процессом. Процесс – исполняемая программа, которая идентифицируется при помощи уникального идентификатора процессора PID. Файл здесь представлен некий набором информации в электронном виде. Он создается пользователями при помощи успешно функционирующих компиляторов, а также всевозможных текстовых редакторов.
Все файлы в рассматриваемых системах группируются через структуру каталогов. Файловая система складывает собственную иерархию, которая чем-то напоминает перевернутое дерево. Вершина по традиции носит название root. Записывается в качестве косой черты – слеша.
Текстовые файлы в oc могут быть отображены на дисплее, их можно редактировать. Для систем на базе Unix характерно использование нескольких программ для работы с текстом. В качестве наиболее популярных применяются:
- vim;
- pico;
- Emacs.
Второй вариант является примитивным. Он предоставлен пользователям вместе со встроенным почтовым сервисом Pine.
Основные элементы
ОС на базе Unix обладают следующими ключевыми компонентами:
- Ядро. Это главная программа, отвечающая за управление ОС. Она манипулирует памятью, системными вызовами, а также иными функциями низкого уровня. Предоставляет драйверы для взаимодействия и управления различным оборудованием.
- Shell-оболочка. Представляет собой интерактивную программу, обеспечивающую интерфейс между ядром и пользователями. Она интерпретирует команды, введенные клиентом или предоставленные сценариями оболочки, после чего передает их ядру для дальнейшей обработки.
- Файловая система. Она использует иерархическую структуру с корневым каталогом, расположенным в самом верху. Для определения смонтированных файловых систем в Unix и Unix-подобной системе, используется mount-команда.
- Команды. Они включают в себя крупное ядро стандартных утилит для редактирования текста, формирования, манипулирования и компиляции приложений. При помощи команд тут удается работать с пользовательской средой, получать сведения об ОС, а также ее клиентах. После отправки вписанного алгоритма происходит его интерпретация и передача ядру для реализации.
В Юникс пользователи могут работать через командную строку, за счет которой удается добиться максимального контроля и гибкости. Менее опытные клиенты обращаются к помощи встроенного удобного графического интерфейса.
Ядро и вызовы
Ключевыми функциями ядра в Unix (оно может быть монолитным или модульным) относят:
- управление памятью;
- обработку прерываний;
- синхронизацию процессов;
- управление дисками и буферизацию информации;
- низкоуровневую поддержку устройств при помощи драйверов;
- планирование и переключение процессов.
Системные вызовы отвечают за обеспечение:
- сопоставление пользовательских действий с запросами драйверов для тех или иных устройств;
- создание и прекращение процессов;
- доступ к файлам, а также дискам на компьютере;
- поддержку терминальных функций;
- реализацию ввода-вывода.
Системные вызовы преобразовывают процесс, функционирующий в пользовательском режиме, в защищенный. Он будет работать в режиме ядра. Такой подход позволяет процессу вызывать защищенные процедуры ядра для выполнения системных функций.
Подобные вызовы отвечают за обеспечение программного интерфейса, необходимого для доступа к процедурам ядра. С их помощью гарантируется управление памятью, пространством на дисках, а также периферийными устройствами. В ОС вызовы будут оформляться в качестве библиотеки времени выполнения. Многие из них доступны при помощи командного интерпретатора.
Процессы ядра и пользователя
Пользовательские процессы:
- будут защищены от других пользовательских процессов;
- не обладают доступом к процедурам ядра, исключение – через системные вызовы;
- не способны непосредственно работать с пространством памяти ядра.
Пространство ядра – это область памяти, в которой процессы ядра реализуют его службы. Любой процесс, выполняемый в пространстве ядра, относится к работающему в его режиме.
Пространство ядра – это привилегированная область. Пользователь сможет получить к ней доступ только при помощи интерфейса системных вызовов.
Назначение аргументов оболочки
Пользователи взаимодействуют с Unix при помощи специальной программы – оболочки. Она запрашивает команды и передает их ОС для дальнейшей обработки после непосредственного ввода. Оболочки включают в себя имя команды, а также аргументы.
Некоторые аргументы, получившие название опций, вводятся при помощи символа «-». Они корректируют поведение команды.
Оболочка поставляется в двух вариантов:
- Bourne, sh;
- C, sh.
Каждая оболочка использует определенный символ или их строки для запроса у пользователя команд. Этот процесс носит название приглашения по умолчанию для bash
Unix поддерживают несколько пользователей одновременно. Это означает что для работы с системной клиент должен сначала идентифицировать себя. Соответствующая операция называется входом в систему. Когда клиент подключается к компьютеру, у него запрашивают логин (имя-идентификатор) и пароль.
Терминал
Для управления Unix-системами в основном используется командная строка. Она реализована в так называемом терминале. Это программное обеспечение обрабатывает запрос, поданный клиентом, а затем выводит ему результат. Промежуточное звено между компьютером и пользователем. Иногда называется оболочкой. Связано это с тем, что терминал охватывает операционную систему based on Unix, чтобы скрыть некоторые ее особенности (сложности функционирования) и сделать взаимодействие более простым.
Терминал – программа, поддерживающая возможность запуска других приложений вместо выполнения различных вычислений. Наиболее популярный терминал Unix – это Bash. Он поставляется в большинстве реализацию Юникс по умолчанию. Предусматривает богатый ассортимент инструментов для пользовательской работы. Они напоминают ПО из Windows.
Команды будут короткими – всего в несколько символов, но их имена бывает на так просто понять. Выводом являются текстовые строки, а не визуальные объекты. Терминалы способны объединять имеющиеся инструменты в крупные и мощные контейнеры, помогающие работать с крупными объемами информации автоматизировано.
Автоматизация терминала:
- делает работу пользователя наиболее продуктивной;
- способствует повышению производительности различных операций;
- позволяет повторять одни и те же операции при помощи нескольких элементарных команд.
При помощи терминала часто обеспечивается управление удаленными компьютерами и суперкомпьютерами. Знакомство с данным ПО обязательно для использования узкоспециализированных инструментов и ресурсов, включая высокопроизводительные вычислительные системы.
Unix-подобные системы
Unix-подобная операционная система – это понятие, которое до сих пор не имеет четкого определения. Термин включает в себя множество ОС. Это означает, в данную категорию вносят системы, которые ведут себя как Unix. Они также предоставляют клиентам аналогичные утилиты, не обязательно лицензированные The Open Group.
Unix подобные ОС могут иметь как открытый исходный код, так и нет. Некоторые делят системы на базе Юникс на несколько категорий:
- основанные на оригинальной базе Bell Labs и AT&T;
- соответствующие единой спецификации;
- запатентованные варианты – для веб-серверов и мобильных устройств.
Далее будут представлены ОС base on Unix. Они наиболее популярны среди современных пользователей.
Linux
Это общее название Юникс-систем, базирующихся на одноименном ядре. Здесь поддерживается реализация:
- многозадачности;
- многопользовательского режима;
- управления устройствами и памятью;
- выполнения различных программ и приложений.
Linux – это специальное программное обеспечение, управляющее всеми аппаратными ресурсами, которые связаны со стационарными компьютерами и ноутбуками. Обладает множеством дистрибутивов – Mint, PuppyRUS, Ubuntu и так далее.
Используется для серверного программирования, в мобильных устройствах, а также в суперкомпьютерах и игровых консолях. Linux широко распространена в искусственном интеллекте. Это означает, что на ее базе создаются «умные» гаджеты.
BSD
Это программное обеспечение Berkeley, которое послужило производной Unix. Первая разработка появилась в 1977 году. Разработка этого ПО прекратилось в 1995. Сейчас оригинальной BSD нет, зато полно потомков. Они развиваются в качестве проектов с открытыми исходными кодами.
Наиболее популярным является FreeBSD. Это операционная система общего назначения. Она полностью функциональна, в то время как Linux – это просто ядро. Включает в себя:
- драйверы;
- ядро;
- документацию;
- утилиты.
FreeBSD не имеет графического интерфейса по умолчанию. Данная проблема исправляется при помощи одной из наиболее популярных сред – Xfce, KDE, GNOME.
Также есть NetBSD. Он обладает большей ориентированностью на чистый дизайн и простоту переносимости между архитектурами. Работает практически на любом устройстве. Используется для крупномасштабных серверов, а также встроенных систем.
Solaris
Еще один неплохой вариант, разработанный в 1983 году. SunOS создали для того, чтобы обеспечить рабочую станцию и сервер, а не персональный рабочий стол. До 1992 года данные системы были образованы на базе BSD, после – начали использовать более современную Unix. Получившийся продукт получил название Oracle Solaris.
Изначально проект был закрытым. В 2005 году появилась кодовая база по лицензии, одобренной Open Source Initiative. Она опирается на Solaris 10 и называется OpenSolaris.
OS X
Современные Mac разработаны на базе Unix. До MacOS 9 операционные системы Apple формировались только собственными силами компании. В 2001 году все изменилось. Это значит, что появился совершенно новый продукт – MacOS X. В 2012 году он получил название OS X.
Это итоговая версия для iOS. Данная система поддерживается мобильными устройствами от Apple. Предоставляет не только командную строку, но и весьма дружелюбный пользовательский интерфейс. Может быть несколько непривычна пользователям Windows, но на современном рынке весьма распространена.
Теперь понятно, какие ОС относятся к Unix. Пользоваться можно любой из них. Непревзойденный лидер – это семейство Linux.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!