Що таке UNIX: розробка, особливості та застосування операційної системи

Що таке 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) і
  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.