UNIX

Матеріал з Вікіпедії — вільної енциклопедії.

UNIX® (Unix, Юнікс) — це операційна система, яка спочатку розроблялася протягом 1960-х1970-х років групою співробітників підрозділу Bell Labs корпорації AT&T, яка включала Кена Томпсона, Денніса Рітчі та Дугласа МакІлроя. Натепер існує безліч різних UNIX-систем, які, в свою чергу, об'єднуються в родини. В їх розробці в різний час брали участь AT&T, деякі комерційні фірми, а також некомерційні організації.

Зміст

[ред.] Історія

[ред.] Попередники

У 1957 році Bell Labs розпочала створення операційної системи для власних потреб Під керівництвом Віктора Висоцького (росіянина за походженням) була створена система BESYS. Після цього він керував проектом Multics, а потім став головою інформаційного підрозділу Bell Labs.

У 1964 році з'явились комп'ютери третього покоління, для яких можливості BESYS вже не підходили. Висоцький та його колеги прийняли рішення не розробляти нову власну операційну систему, а підключитися до сумісного проекту General Electric та Массачусетського технологічного інститута Multics. Вагому підтримку проекту надав телекомунікаційний велетень AT&T, але у 1969 році він вийшов з проекту, оскільки він не приносив жодних фінансових вигід.

[ред.] Перші UNIX

Першочергово UNIX була розроблена у кінці 1960-х років співробітниками Bell Labs, у першу чергу Кеном Томпсоном, Деннісом Рітчі та Дугласом МакІлроем.

У 1969 році Кен Томпсон, намагаючись реалізувати ідеї, що були покладені в основу MULTICS, але на більш скромному аппаратному забезпеченні (DEC PDP-7), написав першу версію нової операційної системи, а Брайан Керніган вигадав для неї назву — UNICS (UNIplexed Information and Computing System) — у противагу MULTICS (MULTIplexed Information and Computing Service). Пізніше ця назва скоротилась до UNIX. У 1970 р. вийшла версія для PDP-11, найбільш успішного сімейства мікрокомп'ютерів 1970-тихСССР воно відомо як СМ ЕВМ).

У 1973 р. було прийняте рішення переписати ядро системи на щойно створеній мові Сі. UNIX став першою операційною системою, майже повністю написаною на мові програмування високого рівня, що суттєво спростило портування системи на інші архітектури. 15 жовтня на черговому сімпозіумі ACM була представлена четверта версія UNIX. Незабаром з'явилася UNIX Version 5, з 1974 року розпочалося розповсюдження безкоштовно серед університетів та академічних закладів.

До 1975 року вийшла UNIX Version 6, відома за широко розповсюдженими коментарями Джона Лайонса (Lions' Commentary on UNIX 6th Edition, with Source Code, [1], [2]). До 1978 р. система використовувалася більш ніж на 600 машинах, перш за все, у університетах. Версія 7 було останньою єдиною версією UNIX. Саме у версії 7 з'явився близький до сучасного інтерпретатор командного рядка Bourne shell.

[ред.] Розкол

На початку 1980-тих компанія AT&T, якій належали Bell Labs, зрозуміла цінність UNIX та почала створення коммерційної версії UNIX. Ця версія, яка поступила у продаж у 1982 році, отримала назву UNIX System III та базувалася на сьомій версії системи. Трохи раніше Білл Джой з університету Берклі створив власний дистрибутив, який базувався на UNIX Version 7. Цей дистрибутив отримав назву BSD (англ. Berkeley Software Distribution).

Поворотнім моментом у історії UNIX стала реалізация у 1980 р. стека протоколів TCP/IP. До цього міжмашинна взаємодія в UNIX перебувала у пребывало в зародковому стані - найбільш суттєвим способом зв'язку був UUCP (засіб копіювання файлів з одної UNIX-системи у іншу, яке спочатку працювало через телефонні мережі за допомогою модемів).

Було запропоновано два інтерфейси програмування мережевих програм: Berkley sockets та інтерфейс транспортного рівня TLI (англ. Transport Layer Interface). Інтерфейс Berkley sockets був розроблений в університеті Берклі та використовував стек протоколів TCP/IP, розроблений у цьому ж університеті. TLI був створений AT&T у відповідності з визначенням транспортного рівня моделі OSI та врерше з'явився у системі System V версії 3. Хоч ця версія містила TLI та потоки, першочергово у ній не було реалізації TCP/IP та інших мережевих протоколів, але подібні реалізації пропонувались сторонніми фірмами. Реалізація TCP/IP офіційно та остаточно була включена у базову поставку System V версии 4. Це, також як і інші міркування (більшою частиню ринкові), призвело до остаточного розмежування між двома гілками UNIX — BSD (університету Берклі) та System V (комерційна версія від AT&T). Потім багато компаній, ліцензував System V у AT&T, розробили власні комерційні різновиди UNIX, такі, як AIX, HP-UX, IRIX, Solaris.

[ред.] Вільні UNIX-подібні операційні системи

У 1983 році Річард Столлмен оголосив о створенні проекта GNU — спроби створити вільної UNIX-подібної операційної системи з нуля, без використання оригінального вихідного коду. Більша частина програмного забезпечення, розробленого в рамках даного проекту - такого, як GNU toolchain, Glibc (стандартна бібліотека мови Сі) та Coreutils — відіграють ключову роль у інших вільних операційних системах. Однак, роботи з створення заміни для ядра UNIX, необхідного для повного виконання задач GNU, відбувались дуже повільно. На теперішній час GNU Hurd — спроба створити сучасне ядро на основі мікроядерної архітектури Mach — все ще далека від щавершення.

У 1991 році, коли Лінус Торвальдс опублікував ядро Linux та залучив помічників, використання інструментів, розроблених у рамках проекта GNU, було было очевидним вибором. Об'єднавшись з ядром Linux, програмне забеспечення GNU стало основою для UNIX-подібної операційної системи, відомою як GNU/Linux (частіш за все її називають просто Linux). Дистрибутиви цієї системи (такі як Red Hat та Debian), які включають ядро, утиліти GNU та додаткове програмне забеспечення стали популярними серед аматорів, так і серед представників бізнесу.

У результаті регулювання юридичної справи, відкритою UNIX Systems Laboratories проти університету Берклі та Berkeley Software Design Inc., було встановлено, що університет може розповсюджувати BSD UNIX, в тому числі і безкоштовно. Після цього були відновлені експерименти, пов'язані з BSD-версією UNIX. Незабаром розробка дистрибутива BSD була продовжена у декількох напрямах одночасно, що призвело до пояаи проектів, відомих як FreeBSD, NetBSD, OpenBSD, TrustedBSD та DragonFlyBSD.

На теперішній час Linux та представники сімейства BSD швидко відбыстро відвойовують ринок у комерційних UNIX-систем та одночасно проникають як на персональні коvп'ютери кінцевих користувачів, так і на мобільні вмонтовані системи. Одним з свідчень даного успіху служить той факт, що фірма Apple шукала основу своєї операційної системи, вона вибрала NEXTSTEP — операційну систему з вільно розповсюджуваємим ядром, розробленою фірмою NeXT та перейменованою у Darwin після придбання фірмою Apple. Ця система відноситься до сімейства BSD та основана на ядрі Mach. Застосування Darwin BSD UNIX у Mac OS X робить його однією з найбільш широко використовуваних версій UNIX.

[ред.] Стандарти

До тих пір, доки панувало вузьке трактування ОС UNIX (тобто доки ОС UNIX не була комерційним продуктом), не було потреби в стандартизації засобів цієї ОС. Небагаточисельні висококваліфіковані користувачі ОС UNIX самі могли розібратися в особливостях і відмінах версії системи, якою вони користуюсться, та обрати ту підмножину її засобів, яке забеспечувало переносимість програми.

Однак, з вихідом ОС UNIX на комерційний ринок, перехідом до широкого трактування системи та суттєвим збільшенням числа користувачів різних її варіантів, стало необхідним ввести можливість виробництво побудованих на основі ОС UNIX операційних систем, які були б дійсно сімвсними. Для цього необхідна стандартизація (інтрефейсів) засобів операційнгої системи на різних рівнях. Така робота триває вже біля 10 років, ще не завершена и наврядчи колись буде завершена у вигляді кінцевого набору стандартів де-юре. Однак, навіть отримані результати дозволяють виробникам забеспечити користувачів різних апаратних платформ операційними системами, достатньо зручними для користування і дозволяють розробляти мобільні прикладні системи, які можуть виконуватись на комп'ютерах, що мають операційні системи з аналогічними властивостями.

[ред.] System V Interface Definition (SVID)

Одним з найбільш ранніх стандартів де-факто ОС UNIX є виданий UNIX System Laboratories (USL) разом із виданням версії ОС UNIX System V Release 4 документ System V Interface Definition (SVID). Якщо згадати історію, то властники оригінальних вихідних текстів ОС UNIX була компанія AT&T Bell Laboratories (саме працівники цієї компанії розробили на початку 1970-х найпопулярніший перший мобільный варіант ОС UNIX). У 1980-ті роки копманія AT&T створила компанію USL, до якої були передані права на вихідні тексти і торгову марку ОС UNIX. USL видала системи з System V R.4.0 до System V R.4.2, після чого в кінці 1993 р. була поглинена компаніею Novell, яка стала властником вихідних текстів ОС UNIX (під впливом суспільства торгова марка "UNIX" була передана до компанії X/Open).

[ред.] Діяльність комітетів POSIX

Слід згадати, що поряд із версіями ОС UNIX, що розвивалися в компанії AT&T (потім в USL, далі в Novell...), історично існував ще напрямок BSD (Berkeley Standard Distribution), який підтримувала невелика всесвітньо відома група з університета м. Берклі (шт. Каліфорнія). В свій час (наприкінці 1970-х) університет отримав від AT&T вихідні тексти 16-разрядної ОС UNIX, на базі якої була вироблена 32-разрядна система, яка спочатку використовувалася на комп'ютерах сімейства VAX, а потім була перенесена на багато інших апаратних платформ. В результаті набори системних викликів UNIX AT&T і BSD вже помітно відрізнялися.

Хоча більшість комерційних реалізацій UNIX базувалось на System V, UNIX BSD завжди був популярним в університетах, і суспільство потребувало означення деякого интерфейсу, який би був по суті об'єднанням засобів AT&T та BSD. Ця робота була почата Асоціацією професійних програмістів Відкритих систем UniForum, а потім продовжена в спеціально створених робочих групах POSIX (Portable Operating System Interface). В робочих групах POSIX розробляються багато відкритих систем, але найбільш відомим і авторитетним є прийнятий ISO по представленню IEEE стандарт POSIX 1003.1, в якому визначені мінімальні потрібні засоби операційної системи.

[ред.] Діяльність X/Open

Міжнародна організація X/Open, яка виконує багато робот, які пов'язані з пропагандою та аналізом використання відкритих систем, крім того, збирає і ситематизує де-юре і де-факто стандарти, що мають промислове значення, в X/Open Common Application Environment (CAE). Спеціфікації інтерфейсів засобів, що входять в CAE, публікуються в багатотомному документі X/Open Portability Guide (XPG).

[ред.] Стандарт ANSI C

Дуже важливим в Світі UNIX є прийнятий спочатку ANSI, а потім і ISO міжнародний стандарт мови програмування Сі. Справа в тому, що в цьому стандарті специфікована не тільки мова Сі, але й бібліотеки, необхідні в кожній стандартній реалізації. Оскільки з самого свого появлення мова Сі і відповідні системи програмування були пов'язані з ОС UNIX, тоді склад стандартних бібліотек достатньо вірно відповідає стандартному середовищу ОС UNIX.

[ред.] Інші стандарти

Існує інший різновид стандартів де-факто, які розповсюджуються на деякий клас апаратних архітектур. Прикладом такого стандарта може бути документ, прийнятий міжнародною організацією SPARC International документ SPARC Complience Definition, який вкладає в себе машинно-залежні уточнення до машинно-незалежних специфікацій інтерфейсів. Аналогичний документ розроблялся організацією 88/Open, яка пов'язана з RISC-процесорами фірми Motorola.

Серед інших індустріальних де-факто стандартів для сучасних варіантів ОС UNIX найбільш важливі фактичний стандарт выконної системи, який підтримує X Cosortium, у складі якого знаходиться лабораторія Масачусетського технологічного інституту (MTІ), який є розробником системи X, а також спецификації інтерфейсів інструментального засобу разробки графічних інтерфейсів OSF/Motif, які були розроблені в Open Software Foundation (OSF).

Крім того, помітимо, що в OSF розроблен документ OSF Application Environment Specification (AES), який скалдає в собі специфікації інтерфейсів ОС OSF/1, який є власною реалізацією OSF ОС UNIX на базі нової мікроядерної технології. AES є розширенням SVID, POSIX 1003.1 та XPG.


[ред.] Файлова система Unix

Файлова структура Unix характерізується наступним:

  • Чіткою побудовою
  • Звернення до данних файлу без протиріч
  • Захистом данних файлу

Цей стандарт вважає, що операційна система, що буде працювати з СПФС узгодженою файловою системою, підтримує ці базові риси надійності, які є в більшості файлових систем Unix. Зауважимо, що цей стандарт не намагається узгоджуватися кожним можливим аспектом з усіма конкретними реалізаціями Unix систем. Проте, багато аспектів цього стандарту базується на ідеях, що є в Unix та інших Unix подібних системах.

Це - після уважного розгляду інших факторів, включає:

  • Традиційна та добре сприйнята практика в Unix подібних системах.
  • Впровадження побудов інших файлових структур
  • Застосовні стандарти

Можливо визначити дві незалежні категорії файлів: загальні (shareable) на противагу приватним (unshareable) та змінні на противагу постійним.

Загальні данні це ті, що можуть бути спільними для декількох головних машин; приватні - мають бути специфічними для кожного головного комп'ютера. Наприклад, домашні каталоги користувачів - загальні данні, але файли контролю пристроїв - ні.

Постійні файли - двійкові, бібліотеки, документація та все інше, що має змінюватися тільки керуючим системою; змінні - все, що може бути змінено без втручання керуючого системою.

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

Скрізь в цьому документі та в усіх добре спланованих файлових системах, знання цих базових принципів допоможе побудувати структуру та надасть їй додаткової логічності.

Різниця між загальними та приватними данними потребує деяких пояснень:

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

Особливість "загальності" може бути використана для спрощення підтримки, наприклад:

  • Розділ /usr (або його частини) монтується (тільки на читання) через мережу (використовуючи NFS).
  • Розділ /usr (або його частини) монтується з носія, що може тільки читатися. CD-ROM з однією копією, що розповсюджується між багатьма користувачами через пошту або іншими засобами може бути змонтований як файлова система тільки на читання, що узагальнюється з іншими файловими системами узгодженими з СПФС яким небудь типом "мережи".

Властивості "постійний" та "змінний" справляють на файлову систему вплив головним чином двома шляхами:

  • Оскільки / містить як змінні так і постійні данні, його доводиться монтувати на читання та запис.
  • Оскільки, звичайно /usr містить як змінні так і постійні данні та буває потрібно монтувати його тільки для читання (див. вище), треба мати метод монтувати /usr тільки на читання. Це робиться через створення структури /var, що монтується на читання та запис (або як частина іншого розділу, що дозволяє читання та запис як /), перебираючи на себе значну частину функціональності /usr розділу.

[ред.] Канонічні команди Unix

  • Створення та навігація по файлам та каталогам: ls, cd, pwd, mkdir, rm rmdir, cp, find;
  • Перегляд та редагування файлів: touch, more, ed, vi, emacs, ex;
  • Обробка текста: echo, cat, grep, sort, uniq, sed, awk, tail, tee, head, cut, tr, split, printf;
  • Порівняння файлів: comm, cmp, diff, patch;
  • Різноманітні утіліти командного інтерпретатора: yes, test, xargs;
  • Системне адміністрування: chmod, chown, ps, su, w, who;
  • Коммунікації: mail, telnet, ftp, finger, ssh
  • Командні оболонки: sh, bash, csh, ksh, tcsh.

Нижче приведено список 60 команд з розділу 1 першої версії UNIX:

ar, as, b, bas, bcd, boot, cat, chdir, check, chmod, chown, cmp, cp, date, db, dbppt, dc, df, dsw, dtf, du, ed, find, for, form, hup, lbppt, ld, ln, ls, mail, mesg, mkdir, mkfs, mount, mv, nm, od, pr, rew, rkd, rkf, rkl, rm, rmdir, roff, sdate, sh, stat, strip, su, sum, tap, tm, tty, type, un, wc, who, write.

[ред.] Див. також


Комп'ютер Це незавершена стаття про комп'ютери.
Ви можете допомогти проекту, виправивши або дописавши її.