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

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

2-01-2019, 13:02
207
Офіційне визначення того, що таке 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) або аналогічного стандарту IEEE POSIX. Детальний розгляд того, що таке UNIX в сімействі операційних систем, починається з пояснення конструкційної структури, що складається з трьох частин: ядра, оболонки і програм. Деякі ключові особливості концепції архітектури Unix використовують ядро централізованої операційної системи, яка управляє діями системи і процесів. Всі неядерна програмне забезпечення організовано в окремі процеси, керовані ядром, яке є центром операційної системи, виділяє Unix час і пам'ять програм, обробляє сховище файлів у відповідь на системні виклики.
Unix-системи мають переважну багатозадачність - кілька процесів можуть виконуватися одночасно або протягом невеликих тимчасових інтервалів і майже одночасно, а будь-який процес може бути перерваний ядром і виведений з його виконання. Файли зберігаються на диску в ієрархічній файловій системі, з одним верхнім розташуванням по всій системі (root, або "/"), з файлами, каталогами і підкаталогами. За деякими винятками, пристрою і деякі типи зв'язку між процесами управляються і відображаються як файли або псевдофайлы в ієрархії файлової системи. Операційна система UNIX підтримує наступні функції і можливості: Багатозадачність і багатокористувацький інтерфейс. Інтерфейс програмування. Використання файлів в якості абстракцій пристроїв та інших об'єктів. Вбудована мережа (стандарт TCP/IP). Постійні системні сервісні процеси, звані "демонами" і керовані init або inet.

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

Все в UNIX - це файл, або процес. Процес - це виконувана програма, що ідентифікується унікальним ідентифікатором PID процесу. Unix-файл являє собою набір даних. Вони створюються користувачами з використанням текстових редакторів і працюють компіляторів. Приклади файлів: документ (звіт, реферат тощо); текст програми написаний на якій-небудь мові програмування високого рівня; інструкції, зрозумілі безпосередньо для машини і незрозумілі для пересічного користувача, наприклад, набір двійкових цифр; каталог, що містить інформацію про його вміст, який може бути сумішшю інших каталогів (підкаталогів) і звичайних файлів. Всі Unix файли організовані у структурі каталогів. Файлова система організована в ієрархічну структуру, схожу на перевернуте дерево. Вершина ієрархії традиційно називається root, записується як коса риса ("/").

Текстові файли можуть відображатися на екрані і редагуватися. Для UNIX доступно кілька програм для редагування тексту, найбільш помітними серед них є vi та Emacs. Багато користувачів використовують pico, простий текстовий редактор, який поставляється з поштовою програмою "Pine". Наприклад, для того щоб просто відобразити вміст файлу, вводять "$pico", а потім ім'я файлу, який потрібно створити.
Функції редагування pico викликаються одночасним натисканням клавіш, наприклад, Ctrl і R. Функція вирізування і вставки pico: Переходять до потрібної рядку тексту і натискають «^K». Вся рядок повинна зникнути. Переходять до кінця тексту і натискають «^U». Це вставить рядок тексту нове місце. Написання слів в тексті виконують за допомогою «^W». Для збереження роботи без виходу вводять «^O». Для виходу вводять «^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 і їх варіанти характеризуються декількома основними компонентами: Ядро - є головною програмою управління операційною системою, яка управляє пам'яттю, системними викликами та іншими низькорівневими функціями, загальними для більшості програм, і надає драйвери для управління обладнанням. Shell-оболонка - це інтерактивна програма, яка забезпечує інтерфейс між користувачем і ядром. Оболонка інтерпретує команди, введені користувачем або надані сценарієм оболонки, і передає їх ядра для виконання. Оболонки, доступні для використання у Unix-подібних операційних системах, що містять sh (оболонку Bourne), bash (оболонку Bourne-again), csh (оболонку C), tcsh (оболонку TENEX C), ksh (оболонку Korn) і zsh (оболонку Z). Файлова система використовує ієрархічну структуру каталогів з кореневим каталогом ("/") вгорі. Файлова система монтується з кореневого каталогу кожної системи в/N, де домашній каталог для кожного користувача знаходиться в /N/u/, а файли, пов'язані з програмним забезпеченням, у/N/soft. Щоб визначити, які змонтовані файлові системи Unix або Unix-подібній системі, використовують mount-команду. Більшість включають в себе інструменти та бібліотеки для написання, компіляції та відлагодження програм на C, C ++ та Fortran. Команди 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 включають таке: ls:список файлів. ls –l: виводить список файлів в довгому форматі. cd : перехід в каталог вище поточного. cp filename1 filename2: копіює файл, ім'я файла. chmod: зміна прав на читання, запис і виконання файлів; 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: Більш гнучкий і може бути встановлений на багатьох типах комп'ютерів, включаючи мейнфрейми, суперкомп'ютери та мікрокомп'ютери. Стабільний і не виходить з ладу так часто, як Win, тому вимагає меншого адміністрування і обслуговування. Має більше вбудованих функцій безпеки і дозволів, ніж Win. Володіє набагато більшою обчислювальною потужністю, ніж Win. Є лідером в обслуговуванні Інтернету. Близько 90% інтернет-користувачів використовують Unix-операційні системи, що працюють на Apache - найбільш широко використовується в світі веб-сервері, який є безкоштовним. Оновлення програмного забезпечення від Microsoft часто вимагають, щоб користувач придбав нове апаратне забезпечення або необхідне програмне забезпечення. Це не так з Unix. В основному безкоштовні або недорогі операційні системи сімейства Unix з відкритим вихідним кодом, такі як Linux і BSD, з їх гнучкістю і управлінням, виявляються дуже привабливими для початківців майстрів комп'ютерів. Багато з найрозумніших програмістів розробляють сучасне програмне забезпечення безкоштовно для швидко зростаючого руху з відкритим вихідним кодом». Unix також надихає нові підходи до розробки програмного забезпечення, такі як рішення проблем шляхом об'єднання більш простих інструментів замість створення великих монолітних прикладних програм. Останнім часом у Unix спостерігається зниження використання, головним чином із-за переходу з платформ RISC на альтернативи з базою x86 які можуть виконувати безліч робочих навантажень Unix з більш високою продуктивністю при менших витратах. Експерти прогнозують, що багато які організації будуть продовжувати використовувати Unix для критично важливих середовищ, але зменшать свою залежність від системи через стратегій модернізації і консолідації ІТ. Тим не менш Unix, як і раніше, є найкращою системою для багатьох випадків використання, таких як програмне забезпечення додатків для вертикального масштабування і функції безпеки, про що свідчать численні відгуки про Unix. Очікується, що в майбутньому продажу серверів впадуть, але програми у фінансовій, урядової і телекомунікаційній сферах будуть продовжувати стимулювати використання Unix.
Цікаво по темі
Команди Unix: перелік, особливості використання, частота застосування
Команди Unix: перелік, особливості використання, частота застосування
Користувачам не варто турбуватися, якщо команди Unix спочатку здаються заклинаннями або таємничими елементами, а вся система UNIX недоступною.
Регулярні вирази Notepad: опис, заміна та приклади
Регулярні вирази Notepad: опис, заміна та приклади
Регулярний вираз Notepad - теорія формальної мови, послідовність символів, що визначають шаблон пошуку. Зазвичай цей шаблон потім використовується
Як використовувати Putty: команди і корисні функції
Як використовувати Putty: команди і корисні функції
У цьому матеріалі ми познайомимося з PuTTY, безкоштовним клієнтом терміналу для Windows, який дозволяє віддалено керувати серверами на базі Linux по
Кен Томпсон – розробник операційної системи UNIX та мови C
Кен Томпсон – розробник операційної системи UNIX та мови C
Кен Томпсон – програміст від бога. Головне, що він вже зробив у житті – створення ОС UNIX та мови програмування C. За ці роботи він отримав чимало