Какво е unix: дизайн, характеристики и приложения на операционната система

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

История на UNIX

История на UNIX

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

Томпсън и Ричи ръководеха екип от изследователи, които разработиха йерархична файлова система, интерпретатор на команден ред, някои малки помощни програми и концепциите за процеси и файлове с устройства.

Месец по-късно Томпсън внедрява самостоятелна операционна система с асемблер, редактор и шел, наречена YEW-nihks, базирана на по-ранна версия на Multics. "Unix" беше много по-малка и представляваше система с една задача.

До 1973 г. той е написан на асемблер, но четвъртото издание на Unix е пренаписано на C. По онова време това е било революционно, тъй като операционните системи са били смятани за твърде сложни, за да бъдат написани на език от високо ниво. Това увеличи преносимостта на системата Unix към други компютърни платформи. В началото на 80-те години "Unix" набира популярност в академичните среди, след което стартиращи търговски компании като Solaris Technologies и Sequent започват да го прилагат в по-голям мащаб.

В края на 90-те години на ХХ век мрежа от програмисти работи заедно за разработването на Linux и Berkeley Software Distribution (BSD), което води до нарастващата популярност на Unix-подобните системи. Днес повечето съвременни компютърни и мобилни устройства използват OS "Unix".

Съвременни "Unix" и интерфейсът на единната спецификация на UNIX са собственост на The Open Group. Последната версия на стандарта за сертифициране на UNIX V7 е четвъртата модификация, издадена през 2013 г.

Характеристики на концепциите за ОС

Характеристики на концепциите за ОС

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

Потребителите на Unix могат да свързват софтуерни инструменти и малки програми чрез интерпретатор на команден ред. Това е програма на потребителско ниво. Разработчиците могат да напишат свой собствен шел и да добавят нови команди, без да променят самия шел, тъй като той използва същия език за интерактивни команди, както и скриптове.

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

Unix популяризира йерархична файлова система с произволно вложени поддиректории. Преди това операционните системи можеха да разделят устройство за съхранение само на фиксиран брой нива.

Разработчиците на тази система заслужават признание за въвеждането на модулност и повторна използваемост в практиките за разработване на софтуер и за стимулирането на движението за софтуерни инструменти. Те създадоха и набор от културни правила за разработване на софтуер и разработиха философията на Unix, която оказа влияние върху ИТ общността.

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

Операционна структура на UNIX

Архитектурата Unix е компютърна операционна система, която въплъщава философията на Unix. Той се придържа към стандарти като Единната спецификация на UNIX (SUS) или подобни POSIX IEEE стандарт.

Подробното разглеждане на това какво представлява UNIX в семейството на операционните системи започва с обяснение на структурната структура, която се състои от три части: ядро, обвивка и програми.

Някои основни характеристики на концепцията за архитектура Unix използват централизирано ядро на операционната система, което контролира операциите на системата и процесите. Целият неосновен софтуер е организиран в отделни процеси, управлявани от ядрото, което е центърът на операционната система, разпределя времето и паметта на програмите на Unix, обработва съхранението на файлове в отговор на системните повиквания.

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

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

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

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

Всичко в UNIX е или файл, или процес. Процесът е изпълнима програма, идентифицирана с уникален идентификатор на процеса - PID. Файлът на Unix е колекция от данни. Те се създават от потребителите с помощта на текстови редактори и работни компилатори.

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

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

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

Текстовите файлове могат да се показват и редактират. За 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"-подобен софтуер, но терминът се отнася за операционна система, която се държи като Unix. Това може да се отнася до неговия безплатен и отворен код. Някои разработчици на софтуер твърдят, че има три вида. Генетично подобни системи са свързани с оригиналната база на Bell Labs, по-късно AT&T, като например BSD, по който изследователи от Калифорнийския университет са работили в края на 70-те и началото на 80-те години на миналия век.

Марковите и марковите Unix-подобни системи са в съответствие с унифицираната спецификация "Unix ". Функционалните системи като Unix, Linux и Minix се държат приблизително както е посочено. Например те трябва да разполагат с програма, която управлява сесиите за влизане в системата и командния ред.

Патентовани операционни системи "Unix" и други подобни варианти работят на широк спектър от цифрови архитектури и обикновено се използват на уеб сървъри, мейнфреймове и суперкомпютри. През последните години смартфоните, таблетите и персонални компютри работещите версии или варианти на Unix стават все по-популярни.

Основни компоненти

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

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

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

Присвояване на аргументи на обвивката

Потребителят взаимодейства с UNIX чрез специална програма, наречена shell, която изисква команди и ги предава на операционната система, за да ги изпълни след въвеждането им. Те се състоят от две части: името на командата и аргументите. Някои аргументи, наречени опции, обикновено въведени с "-", променят поведението на командата по определен начин, докато други аргументи определят обекти, например имена на файлове, компютри, потребители.

В следния пример: $ ls -l myfile "ls" е името на командата, а "-l" и "myfile" са аргументите. "-l" е опция, която променя поведението на командата "ls". Не всички команди изискват параметри или аргументи. Много от тях имат интелигентни настройки по подразбиране, когато не е зададено нищо.

Обвивките на Unix-системата се предлагат в два основни варианта: обвивката на Bourne, sh, и обвивката на C, csh. Други популярни черупки са производни на тези, например ksh, bash, tcsh. Всеки шел използва определен символ или низ от символи, за да поиска от потребителя команда, която се нарича подкана на шела по подразбиране, за bash - символът $. Освен ако не е посочено друго, те ще работят еднакво добре с повечето други черупки.

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

Основни команди на UNIX

Основни команди на UNIX

Обвивката tcsh има някои функции, които помагат на потребителя да въведе. За да завършите име на файл, въведете част от името на командата, файла или директорията. След като натиснете клавиша [ Tab ], обвивката tcsh автоматично ще попълни останалата част от името. Ако открие повече от едно име, започващо с въведените от потребителя букви, той ще издаде звуков сигнал, като ще поиска още букви, преди да натисне отново клавиша tab. Обвивката съхранява списък на въведените команди. Ако трябва да повторите дадена команда, използвайте бутона курсора към превъртане нагоре и надолу в списъка или въвеждане на история за списък с предишни команди.

Примерите за основни команди на UNIX включват

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

Приложението Terminal

Това е изпълнение на приложението, когато потребителят изпраща команди директно към компютъра, който връща резултата директно на потребителя. За тази цел има междинна програма, известна като терминал или команден ред. Това, което потребителят пише, се изпраща на терминала, който изчислява кои команди да изпълни и дава командата за изпълнение. На английски език терминалът се нарича shell, тъй като покрива операционната система, за да скрие някои от сложните ѝ елементи и да улесни взаимодействието с нея.

Терминалът е програма, която може да стартира други програми, вместо да извършва самите изчисления. Най-популярният терминал на 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/xxxxx/test.

Вече е възможно да копирате някои файлове в тестовата директория с помощта на cp:

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

Трите команди cp по-горе копират съществуващи файлове от директорията "/etc" в текущата директория (последвани от "."). Сега изтрийте файла, като използвате командата rm:

  • $ rm group ;
  • $ ls ;
  • хостове motd.

След това те преместват един от файловете с помощта на mv:

  • $ mv motd ;
  • $ ls.

Тъй като cp, mv и rm могат да унищожат данни, те предлагат интерактивна опция, която пита потребителя, преди да продължи. Това се извиква с опцията -i. Обикновено системен администратор конфигурира акаунта да използва тази опция по подразбиране.

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

Предимства на водещата операционна система в интернет

Предимствата на лидера на OS

Нито един тип операционна система не може да предложи универсални отговори на всички изисквания на потребителите. Това е въпрос на избор и вземане на информирани решения. Въпреки това 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.

Статии по темата