Что такое UNIX: разработка, особенности и применение операционной системы

Официальное определение того, что такое Unix, лежит в плоскости зарегистрированного товарного знака The Open Group, семейства компьютерных ОС и инструментов. Чтобы применять товарную марку Unix, поставщик операционной системы должен оплатить лицензионный сбор и ежегодные роялти. Официально лицензированные ОС Unix включают Apple, Oracle, AIX, IRIX (SGI) и Hewlett-Packard.

История UNIX

Для того чтобы объяснить, что такое Unix, нужно начать с истории разработки. В шестидесятых годах General Electric и Bell Labs Массачусетского технологического института попытались разработать интерактивную систему Multics, которая позволила бы нескольким пользователям одновременно получать доступ к мэйнфрейму. Разочарованная результатом, Bell Labs ушла из проекта, но компьютерные специалисты Кен Томпсон и Деннис Ритчи решили продолжить работу, которая завершилась разработкой Unix.

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

Месяц спустя Томпсон развернул самодостаточную ОС с ассемблером, редактором и оболочкой с названием YEW-nihks, основанную на более ранней версии Multics. "Юникс" был намного меньше и представлял собой однозадачную систему.

До 1973 года он был написан на ассемблере, но четвертое издание Unix было переписано на C. Тогда это было революционным, потому что ОС считались слишком сложными для написания на языке высокого уровня. Это увеличило переносимость Unix-системы на иные вычислительные платформы. В начале 80-х годов "Юникс" получил популярность в научных кругах, после чего коммерческие стартапы, такие как Solaris Technologies и Sequent, стали применять ее в более широком масштабе.

В конце 1990-х сеть программистов совместно разработала дистрибутивы Linux и Berkeley Software Distribution (BSD), приведших к росту популярности Unix-подобных систем. Сегодня большинство современных компьютерных и мобильных устройств используют ОС "Юникс".

Современные "Юникс" и интерфейс Single UNIX Specification являются собственностью The Open Group. Последняя версия стандарта сертификации UNIX V7 стала четвертой модификацией, изданной в 2013 году.

Особенности концепций ОС

Чтобы понять, что такое Unix , нужно рассмотреть его уникальность в наборе концепций операционных систем. Главное в нем то, что он использует простой текст при хранении данных, иерархические файловые системы и определенные виды взаимодействия между процессорами (IPC).

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

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

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

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

Архитектура операционной системы UNIX

Архитектура Unix представляет собой компьютерную операционную систему, которая воплощает в себе философию Unix. Она придерживается таких стандартов, как Single UNIX Specification (SUS) или аналогичного стандарта POSIX IEEE.

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

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

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

Операционная система UNIX поддерживает следующие функции и возможности:

  1. Многозадачность и многопользовательский интерфейс.
  2. Интерфейс программирования.
  3. Использование файлов в качестве абстракций устройств и других объектов.
  4. Встроенная сеть (стандарт TCP/IP).
  5. Постоянные системные сервисные процессы, называемые "демонами" и управляемые init или inet.

Файлы и процессы

Все в UNIX - это либо файл, либо процесс. Процесс - это исполняемая программа, идентифицируемая уникальным идентификатором процесса PID. Unix-файл представляет собой набор данных. Они создаются пользователями с использованием текстовых редакторов и работающих компиляторов.

Примеры файлов:

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

Все файлы Unix сгруппированы в структуре каталогов. Файловая система организована в иерархическую структуру, похожую на перевернутое дерево. Вершина иерархии традиционно называется root, записывается как косая черта ("/").

Текстовые файлы могут отображаться на экране и редактироваться. Для UNIX доступно несколько программ для редактирования текста, наиболее заметными среди них являются vi и Emacs. Многие пользователи используют pico, простой текстовый редактор, который поставляется с почтовой программой "Pine". Например, для того чтобы просто отобразить содержимое файла, вводят "$pico", а затем имя файла, который нужно создать.

Функции редактирования в pico вызываются одновременным нажатием клавиш, например Ctrl и R.

Функция вырезания и вставки pico:

  1. Переходят к нужной строке текста и нажимают «^K». Вся строка должна исчезнуть.
  2. Переходят к концу текста и нажимают «^U». Это вставит строку текста в новое место.
  3. Написание слов в тексте выполняют с помощью «^W».
  4. Для сохранения работы без выхода вводят «^O».
  5. Для выхода вводят «^X». Если есть какие-либо неизмененные данные, пользователю будет предложено сделать это перед выходом.

У pico нет многих расширенных функций, которые есть у других редакторов, таких как vi и Emacs, но он прост в использовании и, безусловно, подходит для редактирования небольших файлов.

Unix-подобные системы

К ним относятся операционные системы, ведущие себя как системы Unix и предоставляющие аналогичные утилиты, но не лицензированные The Open Group. Обычно они называются Unix-подобными. Это различные дистрибутивы Linux. Например, Red Hat Enterprise Linux, Ubuntu и CentOS и несколько потомков операционной системы семейства Unix - Berkeley Software Distribution.

Нет четкого определения "Юникс"-подобного ПО, но термин относится к ОС, которая ведет себя как Unix. Это может относиться к его свободному и открытому исходному коду. Некоторые разработчики ПО утверждают, что существует три типа. Генетически подобные системы связаны с оригинальной базой Bell Labs, позднее AT&T, например, с BSD, над которыми работали исследователи из Калифорнийского университета в конце 70-х и начале 80-х годов.

Товарные бренды и фирменные подобные системы соответствуют Единой спецификации "Юникс". Функциональные системы, например, Unix, Linux и Minix, ведут себя примерно так, как указано в спецификации. Например, у них должна быть программа, управляющая сеансами входа в систему и командной строки.

Запатентованные операционные системы "Юникс" и подобные варианты работают на широком спектре цифровых архитектур и обычно используются на веб-серверах, мэйнфреймах и суперкомпьютерах. В последние годы смартфоны, планшеты и персональные компьютеры под управлением версий или вариантов Unix становятся все более популярными.

Ключевые компоненты

Собственные системы Unix и их варианты характеризуются несколькими основными компонентами:

  1. Ядро - является главной программой управления операционной системой, которая управляет памятью, системными вызовами и другими низкоуровневыми функциями, общими для большинства программ, и предоставляет драйверы для управления оборудованием.
  2. Shell-оболочка - это интерактивная программа, которая обеспечивает интерфейс между пользователем и ядром. Оболочка интерпретирует команды, введенные пользователем или предоставленные сценарием оболочки, и передает их ядру для выполнения. Оболочки, доступные для использования в Unix и подобных операционных системах, включают sh (оболочку Bourne), bash (оболочку Bourne-again), csh (оболочку C), tcsh (оболочку TENEX C), ksh (оболочку Korn) и zsh (оболочку Z).
  3. Файловая система использует иерархическую структуру каталогов с корневым каталогом ("/") вверху. Файловая система монтируется из корневого каталога каждой системы в/N, где домашний каталог каждого пользователя находится в /N/u/, а файлы, связанные с программным обеспечением, - в/N/soft. Чтобы определить, какие файловые системы смонтированы в Unix или Unix-подобной системе, используют mount-команду. Большинство включают в себя инструменты и библиотеки для написания, компиляции и отладки программ на C, C ++ и Fortran.
  4. Команды Unix и Unix-подобных систем включают в себя большое ядро стандартных утилит для редактирования текста, написания, компиляции и управления программами, обработки, манипулирования пользовательской средой и получения информации о системе и ее пользователях. Команды позволяют аргументам, известным как опции, изменять свое поведение по умолчанию. Пользователи вписывают данные в командную строку, а затем оболочка выполняет интерпретацию и передачу их ядру для выполнения.

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

Назначение аргументов оболочки

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

В следующем примере: $ ls -l myfile«ls» - это имя команды, а «-l» и «myfile» - аргументы. «-l» - это опция, которая изменяет поведение команды «ls». Не все команды требуют параметров или аргументов. У многих есть интеллектуальные значения по умолчанию, когда ничего не указано.

Оболочка Unix-system поставляется в двух основных вариантах: оболочка Bourne, sh и оболочка C, csh. Другие популярные оболочки получены из них, например, ksh, bash, tcsh. Каждая оболочка использует определенный символ или строку символов, чтобы запросить у пользователя команды, что называется приглашением оболочки по умолчанию для bash, символ $. Если не указано иное, они будут одинаково хорошо работать с большинством других оболочек.

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

Основные команды UNIX

Оболочка tcsh имеет определенные функции, помогающие пользователю вводить команды. Для завершения имени файла вводят часть имени команды, файла или каталога. После нажатия клавиши [ Tab ] оболочка tcsh автоматически завершит оставшуюся часть имени. Если она обнаружит более одного имени, начинающегося с введенных пользователем букв, она издаст звуковой сигнал, предложив ввести еще несколько букв, прежде чем снова нажимать клавишу табуляции. Оболочка хранит список команд, которые ввели. Если нужно повторить команду, используют клавиши курсора для прокрутки вверх и вниз по списку или вводят историю для списка предыдущих команд.

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

  1. ls:список файлов.
  2. ls –l: выводит список файлов в длинном формате.
  3. cd ..: переход в каталог выше текущего.
  4. cp filename1 filename2: копирует файл, имя файла.
  5. chmod: изменение прав на чтение, запись и выполнение для файлов;
  6. mkdir: создает каталог.

Приложение Terminal

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

Терминал - это программа с возможностью запускать другие программы вместо выполнения самих вычислений. Самый популярный терминал Unix называется Bash - от Bourne Again Shell, потому что он происходит от предыдущей версии, написанной Стивеном Борном. Bash является терминалом по умолчанию в большинстве современных реализаций Unix и в большинстве пакетов, которые предоставляют инструменты, аналогичные Unix для Windows. Использование bash или любого другого терминала иногда удобнее программировать.

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

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

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

Создание новых каталогов

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

Например, чтобы создать два новых каталога, прописывают: $ mkdir test test2.Теперь, чтобы удалить второй каталог, который только что создан: $ rmdir test2. При этом rmdir удалит только пустые каталоги. Если каталог содержит файлы, пользователь должен сначала удалить их перед использованием rmdir. Кроме того, он может рекурсивно удалить каталог и его содержимое, используя соответствующую опцию с командой rm.

Если нужно скопировать некоторые существующие файлы из другой части файловой системы в тестовый каталог, то используют команду cp.

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

  • $ cd test;
  • $ pwd ;
  • /home/ххххх/test.

Теперь можно скопировать некоторые файлы в тестовую директорию с помощью cp:

  • $ cp/etc/motd.$ cp/etc/hosts;
  • $ cp/etc/group.$ ls.

Три приведенные выше команды cp копируют существующие файлы из каталога «/etc» в текущий каталог (сопровождается символом «.»). Теперь удаляют файл с помощью команды rm:

  • $ rm group ;
  • $ ls ;
  • hosts motd.

Далее перемещают один из файлов, используя mv:

  • $ mv motd ;
  • $ ls.

Поскольку cp, mv и rm могут уничтожать данные, они предлагают интерактивную опцию, которая запрашивает пользователя перед продолжением. Это вызывается с опцией -i. Обычно системный администратор настраивает учетную запись для использования этой опции по умолчанию.

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

Преимущества лидера ОС в Интернете

Ни один тип операционной системы не может предложить универсальные ответы на все пользовательские требования. Речь идет о выборе и принятии обоснованных решений. Тем не менее Unix имеет столько преимуществ, что по праву стал самой востребованной операционной системой.

Общие преимущества ОС Unix:

  1. Более гибок и может быть установлен на многих типах компьютеров, включая мэйнфреймы, суперкомпьютеры и микрокомпьютеры.
  2. Стабилен и не выходит из строя так часто, как Win, поэтому требует меньшего администрирования и обслуживания.
  3. Имеет больше встроенных функций безопасности и разрешений, чем Win.
  4. Обладает гораздо большей вычислительной мощностью, чем Win.
  5. Является лидером в обслуживании Интернета. Около 90% интернет-пользователей используют Unix-операционные системы, работающие на Apache - наиболее широко используемом в мире веб-сервере, который является бесплатным.
  6. Обновления программного обеспечения от Microsoft часто требуют, чтобы пользователь приобрел новое аппаратное обеспечение или необходимое программное обеспечение. Это не так с Unix.
  7. В основном бесплатные или недорогие операционные системы семейства Unix с открытым исходным кодом, такие как Linux и BSD, с их гибкостью и управлением, оказываются очень привлекательными для начинающих мастеров компьютеров.
  8. Многие из самых умных программистов разрабатывают современное программное обеспечение бесплатно для быстро растущего «движения с открытым исходным кодом».
  9. Unix также вдохновляет новые подходы к разработке программного обеспечения, такие как решение проблем путем объединения более простых инструментов вместо создания больших монолитных прикладных программ.

В последнее время у Unix наблюдается снижение использования, главным образом из-за перехода с платформ RISC на альтернативы с базой x86, которые могут выполнять множество рабочих нагрузок Unix с более высокой производительностью при меньших затратах. Эксперты прогнозируют, что многие организации будут продолжать использовать Unix для критически важных сред, но уменьшат свою зависимость от системы из-за стратегий модернизации и консолидации ИТ.

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

Комментарии