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

Офіційне визначення того, що таке Unix, лежить у площині зареєстрованої торгової марки The Open Group, сімейства КОМП`ЮТЕРНИХ ОС та інструментів. Щоб застосовувати товарну марку Unix, постачальник операційної системи повинен сплатити ліцензійний збір і щорічні роялті. Офіційно ліцензовані ОС Unix включають Apple, Oracle, AIX, IRIX (SGI) та Hewlett-Packard.

Історія UNIX

Історія 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 являє собою комп`ютерну операційну систему, яка втілює в собі філософію 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

Функції редагування в pico викликаються одночасним натисканням клавіш, наприклад Ctrl і R.

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

  1. Переходять до потрібного рядка тексту і натискають»^K". Весь рядок повинен зникнути.
  2. Переходять до кінця тексту і натискають»^U". Це вставить рядок тексту в нове місце.
  3. Написання слів у тексті виконують за допомогою»^W".
  4. Для збереження роботи без виходу вводять»^O".
  5. Для виходу вводять»^X". Якщо є будь-які незмінені дані, користувачеві буде запропоновано зробити це перед виходом.

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

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

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

Основні команди 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.

Статті на тему