Kuo Linux skiriasi nuo UNIX ir kas yra į UNIX panaši OS? UNIX šeimos operacinių sistemų ypatybės.

Be to, kiekvienas iš jų gali atlikti daugybę skirtingų skaičiavimo procesų, kurie naudos šio konkretaus kompiuterio išteklius.

Antrasis didžiulis Unix nuopelnas yra daugiaplatformiškumas. Sistemos branduolys sukurtas taip, kad jį būtų galima lengvai pritaikyti beveik bet kokiam mikroprocesoriui.

Unix turi kitų būdingų savybių:

  • naudojant paprastus tekstinius failus konfigūruoti ir valdyti sistemą;
  • platus komunalinių paslaugų, paleistų iš komandinės eilutės, naudojimas;
  • sąveika su vartotoju per virtualų įrenginį – terminalą;
  • fizinių ir virtualių įrenginių ir kai kurių tarpprocesinio ryšio priemonių atvaizdavimas failų pavidalu;
  • vamzdynų naudojimas iš kelių programų, kurių kiekviena atlieka vieną užduotį.

Taikymas

Šiuo metu Unix sistemos yra platinamos daugiausia tarp serverių, taip pat kaip įterptosios sistemos įvairiai įrangai, įskaitant išmaniuosius telefonus. Superkompiuteriuose taip pat dominuoja „Unix“ sistemos, ypač „Linux“ yra įdiegta 100% TOP500 superkompiuterių.

Pirmosios Unix versijos buvo parašytos asamblėjos kalba ir neturėjo įmontuoto aukšto lygio kalbos kompiliatoriaus. Maždaug 1969 m. Kenas Thompsonas, padedamas Denniso Ritchie, sukūrė ir įdiegė Bee (B) kalbą, kuri buvo supaprastinta (skirta įdiegti mini kompiuteriuose) šia kalba sukurtos BCPL kalbos versija. Bi, kaip ir BCPL, buvo interpretuojama kalba. Išleistas 1972 m antrasis leidimas Unix perrašytas B. 1969-1973 metais. Bi pagrindu buvo sukurta kompiliuota kalba, vadinama C (C).

Padalinti

Svarbi Unix padalijimo priežastis buvo TCP/IP protokolų dėklo įdiegimas 1980 m. Prieš tai mašinų tarpusavio ryšys Unix sistemoje buvo tik užuomazgos – reikšmingiausias ryšio būdas buvo UUCP (failų kopijavimo iš vienos Unix sistemos į kitą priemonė, iš pradžių veikusi telefono tinklais naudojant modemus).

Tinklo programoms buvo pasiūlytos dvi programavimo sąsajos: Berkley lizdai ir TLI transporto sluoksnio sąsaja (Transport layer interface).

Berkley sockets sąsaja buvo sukurta Berklio universitete ir naudojo ten sukurtą TCP/IP protokolų krūvą. TLI sukūrė AT&T pagal OSI modelio transporto sluoksnio apibrėžimą ir pirmą kartą pasirodė System V 3 versijoje. Nors šioje versijoje buvo TLI ir srautų, iš pradžių joje nebuvo TCP/IP ar kitų tinklo protokolų diegimo, tačiau įgyvendinimus pateikė trečiosios šalys.

TCP/IP diegimas buvo oficialiai ir galutinai įtrauktas į bazinį System V 4 versijos platinimą. Tai kartu su kitais sumetimais (dažniausiai rinkodaros klausimais) lėmė galutinę demarkaciją tarp dviejų Unix šakų – BSD (Berklio universitetas) ir System V (komercinė AT&T versija). Vėliau daugelis kompanijų, licencijavusių System V iš AT&T, sukūrė savo komercinius Unix skonius, tokius kaip AIX, CLIX, HP-UX, IRIX, Solaris.

Šiuolaikinės Unix sistemos paprastai nėra grynos V ar BSD sistemos. Juose įdiegtos sistemos V ir BSD funkcijos.

Nemokamos operacinės sistemos, panašios į Unix

Šiuo metu GNU/Linux ir BSD šeimos nariai sparčiai perima rinką iš komercinių Unix sistemų ir tuo pat metu įsiskverbia į galutinių vartotojų stalinius kompiuterius ir mobiliąsias bei įterptąsias sistemas.

Patentuotos sistemos

Po AT&T padalijimo Unix prekės ženklas ir teisės į pradinį šaltinio kodą kelis kartus keitė savininkus, ypač ilgą laiką priklausė Novell.

Unix įtaka operacinių sistemų evoliucijai

„Unix“ sistemos turi didelę istorinę reikšmę, nes jos išplatino kai kurias šiandien populiarias operacinių sistemų ir programinės įrangos koncepcijas ir metodus. Be to, kuriant Unix sistemas, buvo sukurta C kalba.

Plačiai naudojama sistemų programavimui, C kalba, iš pradžių sukurta Unix kūrimui, populiarumu aplenkė Unix. C kalba buvo pirmoji „tolerantiška“ kalba, kuri nebandė programuotojui primesti programavimo stiliaus. C buvo pirmoji aukšto lygio kalba, suteikusi prieigą prie visų procesoriaus funkcijų, tokių kaip nuorodos, lentelės, bitų poslinkiai, žingsniai ir kt. Kita vertus, C kalbos laisvė lėmė buferio perpildymo klaidas. standartinės C bibliotekos funkcijos kaip gets ir scanf. Atsirado daug liūdnai pagarsėjusių pažeidžiamumų, pavyzdžiui, tas, kuris buvo išnaudotas garsiajame Morriso kirminuose.

Ankstyvieji Unix kūrėjai padėjo įdiegti modulinio programavimo ir pakartotinio naudojimo principus į inžinerinę praktiką.

„Unix“ leido palyginti nebrangiuose kompiuteriuose naudoti TCP/IP protokolus, o tai paskatino spartų interneto augimą. Tai savo ruožtu prisidėjo prie greito kelių pagrindinių Unix saugumo, architektūros ir sistemos paslaugų spragų atradimo.

Laikui bėgant pagrindiniai Unix kūrėjai sukūrė programinės įrangos kūrimo kultūros normas, kurios tapo tokios pat svarbios kaip ir pats Unix. ( )

Kai kurie žinomiausi „Unix“ tipo OS pavyzdžiai yra „macOS“, „Solaris“, BSD ir „NeXTSTEP“.

Socialinis vaidmuo IT profesionalų bendruomenėje ir istorinis vaidmuo

Originalus „Unix“ veikė dideliuose kelių vartotojų kompiuteriuose, kurie taip pat siūlė patentuotas operacines sistemas iš aparatūros gamintojo, pvz., RSX-11 ir jos palikuonių VMS. Nepaisant to, kad pagal daugybę nuomonių [ kieno?] tuometinis Unix, palyginti su šiomis operacinėmis sistemomis, turėjo trūkumų (pavyzdžiui, rimtų duomenų bazių variklių trūkumas), jis buvo: a) pigesnis, o kartais ir nemokamas mokslo įstaigoms; b) buvo perkeltas iš aparatinės įrangos į aparatinę įrangą ir sukurtas nešiojama C kalba, kuri „atskyrė“ programinės įrangos kūrimą nuo konkrečios aparatinės įrangos. Be to, vartotojo patirtis pasirodė „atsieta“ nuo įrangos ir gamintojo - asmuo, dirbęs su „Unix“ VAX, lengvai dirbo su juo 68xxx ir pan.

Tuo metu aparatūros gamintojai dažnai žiūrėjo į Unix, laikydami jį žaislu ir siūlydami savo patentuotą OS rimtam darbui – pirmiausia DBVS ir jomis pagrįstas verslo programas komercinėse struktūrose. Yra žinomų DEC pastabų dėl jos VMS. Korporacijos to klausėsi, bet ne akademinė aplinka, kuri Unix sistemoje turėjo viską už save, dažnai nereikalavo oficialaus gamintojo palaikymo, tvarkėsi savarankiškai, įvertino Unix pigumą ir nešiojamumą. Taigi „Unix“ buvo bene pirmoji operacinė sistema, nešiojama su skirtinga aparatūra.

Antrasis didelis Unix pakilimas buvo RISC procesorių pristatymas apie 1989 m. Dar prieš tai buvo vadinamieji. darbo stotys yra didelio galingumo vieno vartotojo asmeniniai kompiuteriai, turintys pakankamai atminties, standžiojo disko ir pakankamai pažangios OS (daugiafunkcinis darbas, atminties apsauga), kad galėtų dirbti su rimtomis programomis, tokiomis kaip CAD. Tarp tokių mašinų gamintojų išsiskyrė „Sun Microsystems“, išgarsėjusi jose.

Prieš atsirandant RISC procesoriams šiose stotyse dažniausiai buvo naudojamas Motorola 680x0 procesorius, toks pat kaip ir Apple kompiuteriuose (nors ir su pažangesne operacine sistema nei Apple). Apie 1989 metus rinkoje pasirodė komerciniai RISC architektūros procesorių diegimai. Logiškas daugelio kompanijų („Sun“ ir kitų) sprendimas buvo „Unix“ prijungti prie šių architektūrų, o tai iškart paskatino visos „Unix“ programinės įrangos ekosistemos perkėlimą.

Patentuotos rimtos operacinės sistemos, tokios kaip VMS, nuo šio momento pradėjo nuosmukį (net jei buvo įmanoma perkelti pačią OS į RISC, viskas buvo daug sudėtingiau su jai skirtomis programomis, kurios šiose ekosistemose dažnai buvo kuriamos asamblieryje ar patentuotomis kalbomis, pvz., BLISS), o Unix tapo galingiausių kompiuterių operacine sistema pasaulyje.

Tačiau maždaug tuo metu ekosistema pradėjo judėti link GUI Windows 3.0 pavidalu. Didžiulius GUI pranašumus, taip pat, pavyzdžiui, vieningą visų tipų spausdintuvų palaikymą įvertino ir kūrėjai, ir vartotojai. Tai labai pakenkė Unix pozicijai asmeninių kompiuterių rinkoje – tokie diegimai kaip SCO ir Interactive UNIX negalėjo susidoroti su palaikančiomis Windows programomis. Kalbant apie „Unix“ skirtą GUI, vadinamą X11 (buvo ir kitų diegimų, daug mažiau populiarių), ji negalėjo pilnai veikti įprasto vartotojo kompiuteryje dėl atminties poreikio – X11 normaliam veikimui reikalavo 16 MB, o „Windows 3.1“ su pakankamu našumu vienu metu paleiskite „Word“ ir „Excel“ 8 MB (tai tuo metu buvo standartinis kompiuterio atminties dydis). Esant didelėms atminties kainoms, tai buvo ribojantis veiksnys.

„Windows“ sėkmė paskatino vidinį „Microsoft“ projektą „Windows NT“, kuris buvo suderinamas su „Windows“ pagal API, tačiau tuo pat metu turėjo visas tas pačias rimtos OS architektūrines ypatybes kaip „Unix“ - daugiafunkcinis darbas, visapusiška atminties apsauga, kelių procesorių palaikymas. mašinos, failų leidimai ir katalogai, sistemos žurnalas. „Windows NT“ taip pat pristatė žurnalų failų sistemą NTFS, kuri tuo metu savo galimybėmis pranoko visas standartiškai su „Unix“ pristatomas failų sistemas – „Unix“ analogai tebuvo atskiri komerciniai produktai nuo „Veritas“ ir kitų.

Nors iš pradžių „Windows NT“ nebuvo populiari, dėl didelių atminties poreikių (tos pačios 16 MB) ji leido „Microsoft“ patekti į serverių sprendimų, tokių kaip DBVS, rinką. Tuo metu daugelis netikėjo „Microsoft“, tradiciškai besispecializuojančios stalinių kompiuterių programinės įrangos gamyboje, galimybe tapti įmonės programinės įrangos rinkos žaidėja, kuri jau turėjo tokius didelius pavadinimus kaip „Oracle“ ir „Sun“. Šias abejones dar labiau padidino tai, kad „Microsoft“ DBVS – SQL Server – prasidėjo kaip supaprastinta „Sybase SQL Server“ versija, licencijuota iš „Sybase“ ir 99 % suderinama visais darbo su ja aspektais.

Dešimtojo dešimtmečio antroje pusėje Microsoft pradėjo stumti Unix į įmonių serverių rinką.

Minėtų veiksnių derinys, taip pat 3D vaizdo valdiklių, kurie tapo namais nuo profesionalios įrangos, kainų žlugimas 2000-ųjų pradžioje iš esmės sužlugdė pačią darbo vietos koncepciją.

Be to, „Microsoft“ sistemas lengviau valdyti, ypač įprastais naudojimo atvejais.

Tačiau šiuo metu prasidėjo trečiasis staigus Unix kilimas.

Be to, Stallmanas ir jo bendražygiai puikiai žinojo, kad patentuoti kūrimo įrankiai nėra tinkami ne korporacinės programinės įrangos sėkmei. Todėl jie sukūrė įvairių programavimo kalbų (gcc) kompiliatorių rinkinį, kuris kartu su anksčiau sukurtomis GNU programomis (pakeičiančiomis standartines Unix komunalines paslaugas) buvo būtinas ir gana galingas programinės įrangos paketas kūrėjui.

Tuo metu „FreeBSD“ buvo rimtas „Linux“ konkurentas, tačiau „katedros“ plėtros valdymo stilius, o ne „turgus“ Linux stilius, taip pat daug daugiau techninio archajiškumo tokiais klausimais kaip kelių procesorių mašinų palaikymas ir vykdomasis failas. formatų, labai sulėtino FreeBSD kūrimą lyginant su Linux, todėl pastarasis tapo laisvosios programinės įrangos pasaulio flagmanu.

Ateityje Linux pasiekė vis daugiau aukštumų:

  • rimtų patentuotų produktų, tokių kaip „Oracle“, perkėlimas;
  • rimtas IBM susidomėjimas šia ekosistema kaip jos vertikalių sprendimų pagrindu;
  • beveik visų žinomų „Windows“ pasaulio programų analogų atsiradimas;
  • kai kurių techninės įrangos gamintojų atsisakymas iš anksto įdiegti „Windows“;
  • internetinių kompiuterių išleidimas tik su Linux;
  • naudoti kaip branduolį „Android“.

Šiuo metu „Linux“ yra pelnytai populiari serverių OS, nors ir daug mažiau populiari staliniuose kompiuteriuose.

Kai kurios Unix OS architektūrinės savybės

Unix funkcijos, išskiriančios šią šeimą iš kitų operacinių sistemų, pateiktos žemiau.

  • Failų sistema panaši į medį, varduose skiriamos didžiosios ir mažosios raidės, labai silpni vardų ir kelių ilgio apribojimai.
  • OS branduolys nepalaiko struktūrinių failų; sistemos iškvietimų lygiu failas yra baitų srautas.
  • Komandų eilutė yra paleidžiamo proceso adresų erdvėje ir nėra nuskaitoma sistemos iškvietimu iš komandų interpretatoriaus proceso (kaip atsitinka, pavyzdžiui, RSX-11).
  • „Aplinkos kintamųjų“ sąvoka.
  • Procesų paleidimas iškviečiant fork(), tai yra galimybė klonuoti esamą procesą su visa būsena.
  • stdin/stdout/stderr sąvokos.
  • I/O tik per failų aprašus.
  • Tradiciškai labai silpnas asinchroninio I/O palaikymas, palyginti su VMS ir Windows NT.
  • Komandų interpretatorius yra įprasta programa, kuri bendrauja su branduoliu įprastais sistemos iškvietimais (RSX-11 ir VMS komandų interpretatorius buvo vykdomas kaip speciali programa, ypatingu būdu patalpinta į atmintį, naudojant specialius sistemos iškvietimus, sistemos iškvietimai taip pat palaikoma, leidžianti programai pasiekti pirmines vertėjo komandas).
  • Komandinės eilutės komanda yra ne kas kita, kaip programos failo pavadinimas, nereikia specialios registracijos ir specialaus programų kūrimo kaip komandų (tai buvo įprasta praktika RSX-11, RT-11).
  • Nepriimtinas požiūris su programa, kuri užduoda vartotojui klausimus apie jos veikimo režimus, vietoj jų naudojami komandinės eilutės parametrai (VMS, RSX-11, RT-11 programos taip pat veikė su komandine eilute, bet jos nesant – buvo raginami įvesti parametrus).
  • Įrenginio vardų sritis diske /dev kataloge, kurią gali tvarkyti administratorius, skirtingai nuo Windows metodo, kai ši vardų erdvė yra branduolio atmintyje, o šios vardų srities administravimas (pavyzdžiui, leidimų nustatymas) yra labai sudėtingas dėl nuolatinės atminties trūkumas diskuose (sukuriamas kiekvieną kartą paleidžiant).
  • Platus tekstinių failų naudojimas nustatymams saugoti, o ne dvejetainių nustatymų duomenų bazė, pvz., Windows.
  • Platus teksto apdorojimo paslaugų naudojimas kasdienėms užduotims atlikti valdant scenarijus.
  • OS "reklamavimas" įkėlus branduolį, vykdant scenarijus su standartiniu komandų interpretatoriumi.
  • Platus naudojimas

UNIX® istorija prasideda 1969 m. Dauguma šiuolaikinių UNIX sistemų yra komercinės originalių UNIX platinimų versijos. Sun Solaris, Hewlett-Packard HP-UX, IBM AIX® yra geriausi UNIX atstovai, kurie taip pat turi savo unikalius elementus ir savo esminius sprendimus. Pavyzdžiui, „Sun Solaris“ yra UNIX, tačiau joje taip pat yra daug įrankių ir plėtinių, sukurtų specialiai „Sun“ darbo stotims ir serveriams.

Linux® buvo sukurta siekiant suteikti nemokamą alternatyvą komercinėms UNIX aplinkoms. Jo istorija siekia 1991 ar net 1983 metus, kai buvo sukurtas GNU projektas, kurio pirminis tikslas buvo suteikti nemokamą UNIX alternatyvą. Linux veikia daug daugiau platformų, pvz., Intel®/AMD x86. Dauguma UNIX operacinių sistemų gali veikti tik vienoje platformoje.

Linux ir UNIX turi bendras istorines šaknis, tačiau yra ir didelių skirtumų. Daugelis įrankių, paslaugų ir nemokamų programų, standartiškai pateikiamų su Linux, iš pradžių buvo sumanytos kaip nemokamos UNIX programų alternatyvos. „Linux“ dažnai palaiko daugybę parinkčių ir programų, pasiskolinęs geriausias arba populiariausias UNIX funkcijas.

Administratoriui ar kūrėjui, įpratusiam dirbti su Linux, UNIX sistema gali atrodyti nelabai patogi. Kita vertus, UNIX tipo operacinės sistemos pagrindas (įrankiai, failų sistema, API) yra gana standartizuotas. Tačiau kai kurios sistemos detalės gali turėti reikšmingų skirtumų. Šie skirtumai bus aptarti vėliau straipsnyje.

Techniniai skirtumai

Komercinių UNIX paskirstymų kūrėjai savo operacinei sistemai naudoja tam tikrą klientų ir serverių platformų rinkinį. Jie puikiai supranta, kokias programas reikia palaikyti ir optimizuoti. UNIX gamintojai daro viską, kad užtikrintų skirtingų versijų suderinamumą. Be to, jie paskelbė savo OS standartus.

Kita vertus, GNU/Linux kūrimas nėra orientuotas į platformą ar klientą, o GNU/Linux kūrėjai turi skirtingą išsilavinimą ir perspektyvas. „Linux“ bendruomenėje nėra griežto standartinio įrankių ar aplinkos rinkinio. Siekiant išspręsti šią problemą, buvo pradėtas įgyvendinti Linux standartų bazės (LSB) projektas, tačiau jis nepasirodė toks efektyvus, kaip norėtume.

Šis standartizacijos trūkumas sukelia didelių Linux nenuoseklumų. Kai kuriems kūrėjams galimybė naudoti geriausias kitas operacines sistemas yra privalumas, tačiau UNIX elementus kopijuoti į Linux ne visada patogu, pavyzdžiui, kai įrenginių pavadinimus Linux viduje galima paimti iš AIX, o failų sistemos įrankiai yra HP- Orientuotas į UX. Tokio pobūdžio nesuderinamumo pasitaiko ir tarp skirtingų Linux platinimų. Pavyzdžiui, „Gentoo“ ir „RedHat“ įdiegia skirtingus atnaujinimo metodus.

Palyginimui, kiekviename naujame UNIX sistemos leidime pateikiamas gerai dokumentuotas naujų UNIX funkcijų ir pakeitimų aprašymas. Komandos, įrankiai ir kiti elementai retai keičiasi, o dažnai tie patys programų komandų eilutės argumentai išlieka tie patys daugelyje tos programinės įrangos versijų. Kai įvyksta reikšmingų šių elementų pakeitimų, komercinių UNIX sistemų pardavėjai dažnai pateikia paketą, reikalingą suderinamumui su ankstesnėmis įrankio versijomis užtikrinti.

Šis suderinamumas reiškia, kad komunalines paslaugas ir programas galima naudoti naujose operacinių sistemų versijose nepatikrinus ar nekeičiant jų šaltinio kodo. Todėl perėjimas prie naujos UNIX versijos, kuri paprastai neturi esminių skirtumų nuo senosios versijos, vartotojams ar administratoriams yra daug mažiau pastangų nei perėjimas iš vieno Linux platinimo į kitą.

Aparatinės įrangos architektūra

Dauguma komercinių UNIX versijų yra sukurtos vienai arba nedaugeliui aparatinės įrangos architektūrų. HP-UX veikia tik PA-RISC ir Itanium platformose, Solaris – SPARC ir x86, o AIX – tik POWER procesoriams.

Dėl šių apribojimų UNIX pardavėjai gali gana laisvai keisti savo kodą šioms architektūroms ir pasinaudoti bet kokiais jų architektūros pranašumais. Kadangi jie taip gerai žino palaikomus įrenginius, jų tvarkyklės veikia geriau ir jiems nereikia taikytis su kompiuteriams būdingais BIOS apribojimais.

Kita vertus, „Linux“ istoriškai buvo sukurta maksimaliam suderinamumui. „Linux“ galima naudoti įvairiose architektūrose, o įvesties / išvesties įrenginių ir kitų periferinių įrenginių, kuriuos galima naudoti su OS, skaičius yra beveik neribotas. Kūrėjai negali iš anksto žinoti, kokia konkreti aparatinė įranga bus įdiegta kompiuteryje, ir dažnai negali užtikrinti, kad ji bus veiksmingai naudojama. Vienas iš pavyzdžių yra atminties valdymas Linux sistemoje. Anksčiau „Linux“ naudojo segmentinės atminties modelį, iš pradžių sukurtą x86. Dabar jis pritaikytas naudoti puslapių atmintį, tačiau vis tiek išlaiko tam tikrus segmentuotos atminties reikalavimus, todėl kyla problemų, jei architektūra nepalaiko segmentuotos atminties. Tai nėra UNIX pardavėjų problema. Jie tiksliai žino, kokia aparatinė įranga veiks jų UNIX.

Branduolys

Branduolys yra operacinės sistemos širdis. Komercinių UNIX platinimų branduolio šaltinio kodas yra jų kūrėjų nuosavybė ir nėra platinamas už įmonės ribų. Visiškai priešinga situacija su Linux. Branduolių ir tvarkyklių kompiliavimo ir pataisymo procedūros yra gana skirtingos. Linux ir kitoms atvirojo kodo operacinėms sistemoms pataisa gali būti išleista kaip šaltinio kodas, o galutinis vartotojas gali jį įdiegti, išbandyti ir net modifikuoti. Šios pataisos paprastai nėra taip kruopščiai tikrinamos kaip pataisos iš komercinių UNIX OS pardavėjų. Kadangi nėra viso sąrašo programų ir aplinkų, kurias reikia išbandyti, kad jos tinkamai veiktų sistemoje „Linux“, todėl „Linux“ kūrėjai priklauso nuo galutinių vartotojų ir kitų kūrėjų, kad gautų klaidas.

Komercinio UNIX platinimo tiekėjai išleidžia branduolius tik kaip vykdomąjį kodą. Kai kurie leidimai yra monolitiniai, o kiti leidžia atnaujinti tik tam tikrą branduolio modulį. Bet bet kuriuo atveju šis leidimas pateikiamas tik vykdomojo kodo pavidalu. Jei reikia atnaujinti, administratorius turi palaukti, kol gamintojas išleis pataisą dvejetainiu formatu, tačiau jį gali paguosti tai, kad gamintojas atidžiai patikrins, ar pataisa yra suderinama atgal.

Visos komercinės UNIX versijos tam tikru laipsniu išsivystė į modulinį branduolį. Tvarkyklės ir konkrečios OS funkcijos yra prieinamos kaip atskiri komponentai ir, jei reikia, gali būti įkeliamos arba išimamos iš branduolio. Tačiau atvira modulinė Linux architektūra yra daug lankstesnė. Tačiau Linux lankstumas ir pritaikomumas reiškia nuolatinius pokyčius. „Linux“ šaltinio kodas nuolat keičiasi, o pagal kūrėjo užgaidą API gali keistis. Kai modulis arba tvarkyklė yra parašyti komercinei UNIX versijai, jis veiks daug ilgiau nei ta pati tvarkyklė, skirta Linux.

Failų sistemos palaikymas

Viena iš priežasčių, kodėl Linux tapo tokia galinga OS, yra platus jos suderinamumas su kitomis operacinėmis sistemomis. Viena iš akivaizdžiausių savybių yra galimų failų sistemų gausa. Dauguma komercinių UNIX versijų palaiko du arba tris failų sistemų tipus. Tačiau „Linux“ palaiko daugumą šiuolaikinių failų sistemų. rodo, kurias failų sistemas palaiko UNIX. Bet kurią iš šių failų sistemų galima prijungti prie Linux, nors ne visos šios failų sistemos visiškai palaiko duomenų skaitymą ir rašymą.

1 lentelė. Failų sistemos, kurios yra standartinės UNIX

Dauguma komercinių UNIX versijų palaiko žurnalų failų sistemas. Pavyzdžiui, HP-UX naudoja hfs kaip standartinę failų sistemą, tačiau ji taip pat palaiko žurnalinę vxfs failų sistemą. „Solaris“ palaiko ufs ir zfs. Žurnalų registravimo failų sistema yra esminis bet kurios įmonės serverio aplinkos komponentas. „Linux“ sistemoje žurnalinių failų sistemų palaikymas buvo pristatytas vėlai, tačiau dabar yra keletas variantų: nuo komercinių failų sistemų klonų (xfs, jfs) iki specifinių „Linux“ failų sistemų (ext3, reiserfs).

Kitos failų sistemos funkcijos apima kvotų palaikymą, failų prieigos kontrolės sąrašus, dubliavimą, sistemos momentines nuotraukas ir dydžio keitimą. Juos viena ar kita forma palaiko Linux failų sistemos. Daugelis šių funkcijų nėra standartinės „Linux“. Kai kurios funkcijos gali veikti vienoje failų sistemoje, o kitoms reikės kitos failų sistemos. Kai kurios iš šių funkcijų tiesiog nepasiekiamos tam tikrose Linux failų sistemose, o kitoms reikia papildomai įdiegti įrankius, pvz., tam tikrą LVM versiją arba disko masyvų palaikymą (programinės įrangos reido paketą). Istoriškai programavimo sąsajų ir standartinių įrankių suderinamumas Linux sistemoje buvo sudėtingas, todėl daugelis failų sistemų šias funkcijas įgyvendina skirtingai.

Kadangi komercinės UNIX sistemos palaiko ribotą skaičių failų sistemų, jų darbo su jomis įrankiai ir būdai yra labiau standartizuoti. Pavyzdžiui, kadangi „Irix“ palaiko tik vieną pagrindinę failų sistemą, buvo tik vienas būdas nustatyti prieigos kontrolės sąrašus. Tai daug patogiau galutiniam vartotojui ir tolesniam šios OS palaikymui.

Programos prieinamumas

Dauguma pagrindinių programų yra vienodos tiek UNIX, tiek Linux. Pavyzdžiui, komandos cp , ls , vi ir cc yra UNIX ir Linux sistemose ir yra labai panašios, jei ne visiškai identiškos. Šių įrankių Linux versijos yra pagrįstos šių įrankių GNU versijomis, o šių įrankių UNIX versijos yra pagrįstos tradiciniais UNIX įrankiais. Šie UNIX įrankiai turi ilgą istoriją ir retai keičiasi.

Tačiau tai nereiškia, kad komercinės UNIX versijos negali būti naudojamos su GNU įrankiais. Tiesą sakant, daugelis komercinių UNIX OS pardavėjų į savo platinimą įtraukia daug GNU įrankių arba siūlo juos kaip nemokamus priedus. GNU įrankiai nėra tik standartiniai įrankiai. Kai kurios iš šių nemokamų paslaugų neturi komercinių atitikmenų (emacs arba Perl). Daugelis gamintojų iš anksto įdiegia šias programas ir jos automatiškai įdiegiamos kartu su sistema arba pasiekiamos kaip pasirenkama funkcija.

Nemokamos ir atvirojo kodo programos beveik visada yra integruotos į visus Linux platinimus. Yra daug nemokamos programinės įrangos, skirtos „Linux“, ir daugelis šių programų buvo perkeltos į komercines UNIX operacinės sistemos versijas.

Komercinės ir (arba) uždarojo kodo programos (CAD, finansinės programos, grafinis redaktorius) gali neturėti analogų Linux. Nors kai kurie pardavėjai išleidžia savo programų versijas, skirtas Linux, dauguma pardavėjų neskuba to daryti, kol nepadidės Linux populiarumas tarp vartotojų.

Kita vertus, komercinės UNIX versijos istoriškai palaikė daugybę įmonės lygio programų, tokių kaip Oracle arba SAP. „Linux“ labai pralaimi, nes sunku sertifikuoti dideles programas, o komercinės UNIX versijos beveik nesikeičia nuo leidimo iki išleidimo. Linux gali labai pasikeisti ne tik su kiekvienu nauju platinimu, bet kartais tarp to paties platinimo leidimų. Todėl programinės įrangos gamintojui labai sunku tiksliai suprasti, kokioje aplinkoje bus naudojama jų programa.

Sistemos administravimas

Nors kai kuriuose Linux platinimuose yra standartinis sistemos administravimo įrankių rinkinys, pvz., SUSE YaST, bendro Linux sistemos administravimo įrankių standarto nėra. Galimi tekstiniai failai ir komandų eilutės įrankiai, tačiau kartais jų naudojimas gali būti nepatogus. Kiekviena komercinė versija UNIX turi savo sistemos valdymo sąsają.Naudodami šią sąsają galite valdyti ir keisti sistemos elementus. Toliau pateikiamas HP-UX sistemos administravimo tvarkyklės pavyzdys.

Šiame SAM yra šie moduliai:

  • Tvarkyti naudotojai arba grupės.
  • Branduolio parinktys, kurias galima keisti.
  • Tinklo konfigūracija.
  • Diskų nustatymas ir inicijavimas.
  • X serverio konfigūracija.

Šio paslaugų paketo kokybė yra puiki, o paslaugų paketas puikiai veikia su tekstiniais failais. Nėra šio įrankio analogo, skirto Linux. Net YaST SUSE neturi tų pačių funkcijų.

Kitas UNIX ir Linux aspektas, kuris, atrodo, keičiasi su beveik kiekviena OS versija, yra sistemos inicijavimo scenarijų vieta. Laimei, /sbin/init ir /etc/inittab yra standartiniai katalogai. Tačiau sistemos paleisties scenarijai yra skirtinguose kataloguose. rodomos vietos, kuriose saugomi įvairių UNIX ir Linux platinimų sistemos inicijavimo scenarijai.

2 lentelė. Įvairių UNIX versijų sistemos inicijavimo scenarijų vieta
HP-UX/sbin/init.d
AIX/etc/rc.d/init.d
Irix/etc/init.d
Solaris/etc/init.d
raudona KEPURĖ/etc/rc.d/init.d
SUSE/etc/rc.d/init.d
Debian/etc/init.d
Slackware/etc/rc.d

Dėl daugybės „Linux“ paskirstymų ir beveik begalinio galimų programų skaičiaus (atsižvelgiant į tai, kad yra daug šios programos versijų) šiai OS, „Linux“ programų valdymas tampa sudėtinga užduotimi. Tinkamo įrankio pasirinkimas priklauso nuo to, su kuriuo platinimu dirbate. Dar daugiau nepatogumų kyla dėl to, kad kai kurie platinimai naudoja Redhat Package Manager (RPM) failo formatą, o jų programos yra nesuderinamos. Šis padalijimas suteikia daugybę galimybių dirbti su paketais ir ne visada aišku, kuri sistema naudojama konkrečioje aplinkoje.

Kita vertus, komerciniuose UNIX platinimuose yra standartinių paketų tvarkyklių. Nors yra skirtingų programų versijų ir specifinių formatų skirtingoms UNIX versijoms, programų valdymo aplinka yra ta pati. Pavyzdžiui, „Solaris“ nuo pat savo veiklos pradžios naudojo tuos pačius programų paketų valdymo įrankius. Greičiausiai Solaris programinės įrangos paketų identifikavimo, pridėjimo ar pašalinimo priemonės išliks nepakitusios.

Komercinių UNIX platinimų gamintojai taip pat tiekia aparatinę įrangą, kuriai skirta jų OS, kad galėtų į savo operacinę sistemą įtraukti naujus įrenginius, o tai padaryti Linux sistemoje yra daug sunkiau. Pavyzdžiui, į naujausios versijos„Linux“ bandė įdiegti karštojo keitimo komponentų palaikymą (su skirtinga sėkme). Komercinės UNIX versijos šią galimybę turi jau daugelį metų. Be to, komercinėse UNIX versijose aparatinės įrangos stebėjimas yra geresnis nei Linux. Gamintojai gali įrašyti tvarkykles ir įdėti jas į savo operacinę sistemą, kuri stebės sistemos būklę, pvz., ECC atminties klaidas, maitinimo nustatymus ar bet kurį kitą aparatinės įrangos komponentą. Tokio „Linux“ palaikymo tikimasi tik tolimoje ateityje.

Komercinėms UNIX sistemoms skirta aparatinė įranga taip pat turi pažangesnes įkrovos parinktis. Prieš paleidžiant operacinę sistemą, yra daug parinkčių, kaip tinkinti jos įkrovimą, patikrinti sistemos būklę arba koreguoti aparatūros nustatymus. Standartinio kompiuterio BIOS turi keletą šių parinkčių, jei tokių yra.

Palaikymas

Vienas iš svarbiausių Linux ir UNIX skirtumų yra kaina. Komercinių UNIX sistemų pardavėjai už savo UNIX taikė didelę kainą, nors ją galima naudoti tik su jų aparatinės įrangos platformomis. Kita vertus, „Linux“ platinimai yra palyginti nebrangūs, jei visai nemokami.

Kai perkate komercinę UNIX versiją, pardavėjai paprastai teikia techninę pagalbą. Daugumos Linux vartotojų OS gamintojas nepalaiko. Jie gali gauti palaikymą tik el. paštu, forumuose ir įvairiose „Linux“ vartotojų bendruomenėse. Tačiau šios grupės skirtos ne tik „Linux“ vartotojams. Daugelis komercinių UNIX šeimos operacinių sistemų administratorių dalyvauja šiose atvirose palaikymo grupėse, kad galėtų tiek teikti pagalbą, tiek, jei reikia, ja naudotis. Daugeliui žmonių tokios savipagalbos grupės atrodo net naudingesnės nei OS gamintojo siūloma palaikymo sistema.

Išvada

UNIX ir Linux pagrindai yra labai panašūs. Vartotojui ar sistemos administratoriui perėjimas iš Linux į UNIX sukels nepatogumų darbui, tačiau apskritai perėjimas bus neskausmingas. Net jei failų sistemos ir branduoliai skiriasi ir reikia šiek tiek laiko priprasti, įrankiai ir API išlieka tie patys. Dažniausiai šie skirtumai nėra reikšmingesni už skirtumus tarp pagrindinių UNIX versijų. Visos UNIX ir Linux atšakos palaipsniui vystosi ir šiek tiek skirsis viena nuo kitos, tačiau dėl UNIX koncepcijų brandos OS pagrindai labai nepasikeis.

Įvadas

Kas yra Unix?

Kur gauti nemokamą „Unix“?

Kokie yra pagrindiniai Unix ir kitų OS skirtumai?

Kodėl Unix?

Pagrindinės Unix sąvokos

Failų sistema

komandų vertėjas

Vadovai – vyr

Įvadas

Rašyti apie Unix operacinę sistemą labai sunku. Pirma, dėl to, kad apie šią sistemą daug parašyta. Antra, todėl, kad Unix idėjos ir sprendimai turėjo ir turi didžiulę įtaką visų šiuolaikinių operacinių sistemų kūrimui, o daugelis šių idėjų jau aprašytos šioje knygoje. Trečia, kadangi „Unix“ yra ne viena operacinė sistema, o visa sistemų šeima, ir ne visada įmanoma „sekti“ jų santykius tarpusavyje, o apibūdinti visų į šią šeimą įtrauktų operacinių sistemų tiesiog neįmanoma. . Tačiau jokiu būdu nepretenduodami į išsamumą, pabandysime trumpai apžvelgti „Unix“ pasaulį tose jo srityse, kurios mums atrodo įdomios mūsų mokymo programos tikslais.

Unix operacinės sistemos gimimas siekia 60-ųjų pabaigą, o ši istorija jau įgijo „legendų“, kurios kartais įvairiai pasakoja apie šio įvykio detales. Unix operacinė sistema gimė Bell Telephone Laboratories (Bell Labs) tyrimų centre, kuris yra AT&T korporacijos dalis. Iš pradžių šis iniciatyvinis projektas kompiuteriui PDP-7 (vėliau - PDP-11) buvo arba failų sistema, arba kompiuterinis žaidimas, arba teksto rengimo sistema, arba abu. Tačiau svarbu, kad nuo pat pradžių projektas, kuris galiausiai virto OS, buvo sumanytas kaip kolektyvinio naudojimo programinės įrangos aplinka. Pirmosios Unix versijos autorius yra Kenas Thompsonas, tačiau projekto aptarime, o vėliau ir jo įgyvendinime dalyvavo didelė darbuotojų komanda (D. Ritchie, B. Kernigan, R. Pike ir kiti). . Mūsų nuomone, kelios laimingos Unix gimimo aplinkybės nulėmė šios sistemos sėkmę daugelį metų.

Daugumai žmonių komandos, kurioje gimė Unix OS, ši OS buvo „trečioji sistema“. Egzistuoja nuomonė (žr., pvz.), kad sistemos programuotojas aukštą kvalifikaciją pasiekia tik baigdamas trečią projektą: pirmasis projektas vis dar yra „studentas“, antrasis kūrėjas stengiasi įtraukti viską, kas nepasisekė pirmame, o dėl to tai pasirodo pernelyg sudėtinga, ir tik trečiajame pasiekiama reikiama norų ir galimybių pusiausvyra. Yra žinoma, kad prieš gimstant Unix, Bell Labs komanda dalyvavo (kartu su daugybe kitų firmų) kuriant MULTICS OS. Galutinis MULTICS produktas (Bell Labs nedalyvavo paskutiniuose kūrimo etapuose) turi visus „antrosios sistemos“ požymius ir nėra plačiai naudojamas. Tačiau reikia pažymėti, kad šiame projekte gimė daug iš esmės svarbių idėjų ir sprendimų, o kai kurios koncepcijos, kurias daugelis laiko gimusiomis Unix, iš tikrųjų kilo iš MULTICS projekto.

„Unix“ operacinė sistema buvo sukurta „sau ir mano draugams“. „Unix“ nebuvo nustatytas užimti rinką ir konkuruoti su jokiu produktu. Jos vartotojais buvo ir patys Unix operacinės sistemos kūrėjai, kurie patys vertino sistemos tinkamumą savo poreikiams. Be rinkos sąlygų spaudimo toks vertinimas galėtų būti itin objektyvus.

Unix buvo sistema, kurią programuotojai sukūrė programuotojams. Tai nulėmė sistemos eleganciją ir konceptualią harmoniją – viena vertus, ir, kita vertus, poreikį suprasti sistemą Unix vartotojui ir profesinės atsakomybės jausmą programuotojui, kuriančio programinę įrangą Unix. Ir jokie vėlesni bandymai sukurti „Unix for Dummies“ nepadėjo Unix OS atsikratyti šios dorybės.

1972-73 metais Kenas Thompsonas ir Dennisas Ritchie parašė naują Unix versiją. Specialiai šiam tikslui D. Ritchie sukūrė C programavimo kalbą, kuri dabar nebereikalinga. Daugiau nei 90% Unix kodo yra parašyta šia kalba, o kalba tapo neatsiejama OS dalimi. Tai, kad pagrindinė OS dalis yra parašyta aukšto lygio kalba, leidžia perkompiliuoti ją į bet kurios aparatinės įrangos platformos kodus ir yra aplinkybė, nulėmusi platų Unix naudojimą.

„Unix“ įkūrimo metu JAV antimonopoliniai įstatymai neleido AT&T patekti į programinės įrangos rinką. Todėl Unix operacinė sistema buvo nekomercinė ir laisvai platinama pirmiausia universitetuose. Ten jo plėtra tęsėsi, o aktyviausiai ji buvo vykdoma Kalifornijos universitete Berklyje. Šiame universitete buvo sukurta Berkeley Software Distribution grupė, kuri užsiėmė atskiros OS šakos – BSD Unix – kūrimu. Per vėlesnę istoriją pagrindiniai Unix ir BSD Unix vystėsi lygiagrečiai, ne kartą praturtindami vienas kitą.

Išplitus operacinei sistemai Unix, ja vis labiau susidomėjo komercinės firmos, kurios pradėjo leisti savo komercines šios operacinės sistemos versijas. Laikui bėgant „pagrindinė“ Unix šaka iš AT&T tapo komercine, o jai reklamuoti buvo sukurta dukterinė Unix System Laboratory įmonė. BSD Unix filialas pavirto į komercinį BSD ir nemokamą BSD. Įvairios komercinės ir nemokamos į Unix panašios sistemos buvo sukurtos ant AT&T Unix branduolio, tačiau įtrauktos iš BSD Unix pasiskolintos funkcijos ir originalios funkcijos. Nepaisant bendro šaltinio, Unix šeimos narių skirtumai susikaupė ir galiausiai labai apsunkino programų perkėlimą iš vienos Unix tipo OS į kitą. Unix vartotojų iniciatyva buvo pradėtas judėjimas standartizuoti Unix API. Šį judėjimą palaikė Tarptautinė standartų organizacija ISO ir dėl to atsirado POSIX (Portable Operation System Interface eXecution) standartas, kuris vis dar kuriamas ir yra autoritetingiausias OS standartas. Tačiau POSIX specifikacijų pavertimas oficialiu standartu yra gana lėtas procesas ir neatitinka programinės įrangos pardavėjų poreikių, todėl atsirado alternatyvių pramonės standartų.

Perėjus AT&T Unix į Nowell, šios operacinės sistemos pavadinimas pasikeitė į Unixware, o teisės į Unix prekės ženklą perleistos konsorciumui X / Open. Šis konsorciumas (dabar Open Group) sukūrė savo (platesnę nei POSIX) sistemos specifikaciją, žinomą kaip Single Unix specifikacija. Neseniai buvo išleistas antrasis šio standarto leidimas, daug geriau suderintas su POSIX.

Galiausiai, keletas firmų, gaminančių savo Unix versijas, sudarė Open Software Foundation (OSF) konsorciumą, kuris išleido savo Unix versiją OSF/1, pagrįstą Mach mikrobranduoliu. OSF taip pat išleido OSF/1 sistemos specifikacijas, kurios buvo pagrindas OSF įmonėms narėms išleisti savo Unix sistemas. Šios sistemos apima Sun Microsystems SunOS, IBM AIX, Hewlett-Packard HP/UX, Compaq DIGITAL UNIX ir kt.

Iš pradžių šių firmų Unix sistemos daugiausia buvo pagrįstos BSD Unix, tačiau dabar dauguma šiuolaikinių pramoninių Unix sistemų yra sukurtos naudojant (pagal licenciją) AT&T Unix System V Release 4 (S5R4) branduolį, nors jos taip pat paveldi kai kurias BSD Unix savybes. . Mes neprisiimame atsakomybės už komercinių Unix sistemų palyginimą, nes tokio pobūdžio palyginimai, kurie periodiškai pasirodo spaudoje, dažnai duoda visiškai priešingus rezultatus.

Nowell pardavė Unix įmonei Santa Crouse Operations, kuri pagamino savo Unix produktą SCO Open Server. SCO Open Server buvo pagrįsta ankstesne branduolio versija (System V Release 3), tačiau buvo puikiai derinama ir labai stabili. „Santa Crouse Operations“ integravo savo produktą su „AT&T Unix“ ir išleido „Open Unix 8“, bet vėliau pardavė „Unix“ Caldera, „klasikinio“ Unix savininkui šiandien (2001 m. pabaigoje).

Sun Microsystems pradėjo savo pristatymą į Unix pasaulį su SunOS, pagrįstu BSD branduoliu. Tačiau vėliau jį pakeitė „Solaris“ sistema, pagrįsta S5R4. Šiuo metu platinama 8 šios OS versija (taip pat yra v.9-beta). „Solaris“ veikia SPARC platformoje (RISC procesoriai pagaminti pagal „Sun“ specifikacijas) ir „Intel-Pentium“.

„Hewlett-Packard“ siūlo HP-UX OS. v.11 PA-RISC platformoje. HP-UX yra pagrįstas S5R4, tačiau jame yra daug funkcijų, kurios atskleidžia jo kilmę iš BSD Unix. Žinoma, HP-UX bus galima įsigyti ir Intel-Itanium platformoje.

IBM išleidžia AIX OS, naujausia versija iki šiol yra 5L (tai bus aptarta vėliau). IBM nepaskelbė AIX „kilmės“, dažniausiai tai yra originali plėtra, tačiau pirmosios versijos turėjo „FreeBSD Unix“ kilmės ženklus. Tačiau dabar AIX labiau primena S5R4. AIX iš pradžių buvo prieinama „Intel-Pentium“ platformoje, bet vėliau (pagal bendrą IBM politiką) toje platformoje nebepalaikoma. Šiuo metu AIX veikia IBM RS/6000 serveriuose ir kitose PowerPC pagrįstose skaičiavimo platformose (įskaitant IBM superkompiuterius).

DEC DIGITAL UNIX buvo vienintelis komercinis OSF/1 diegimas. DIGITAL UNIX OS veikė DEC Alpha RISC serveriuose. Kai 1998 m. DEC perėmė Compaq, Compaq įsigijo ir Alpha, ir DIGITAL UNIX serverius. „Compaq“ ketina atkurti savo buvimą „Alpha“ serverių rinkoje ir šiuo atžvilgiu intensyviai kuria jiems skirtą OS. Dabartinis šios OS pavadinimas yra Tru64 Unix (dabartinė versija yra 5.1A), ji ir toliau yra pagrįsta OSF/1 branduoliu ir turi daug BSD Unix funkcijų.

Nors dauguma komercinių Unix sistemų yra pagrįstos vienu branduoliu ir atitinka POSIX reikalavimus, kiekviena turi savo API dialektą, o skirtumai tarp tarmių yra kumuliaciniai. Tai lemia tai, kad pramoninių programų perkėlimas iš vienos Unix sistemos į kitą yra sudėtingas ir reikalauja bent jau perkompiliavimo, o dažnai ir šaltinio kodo pataisymo. SCO, IBM ir Sequent aljansas 1998 m. bandė įveikti „painiojimą“ ir sukurti vieną „Unix“ operacinę sistemą visiems. Šios įmonės susijungė į Monterey projektą, kad sukurtų vieną OS, pagrįstą Unixware, tuo metu priklausiusiam SCO, IBM AIX ir Sequent's DYNIX OS. (Sequent yra NUMA kompiuterių – asimetrinio daugiaprocesoriaus – gamybos lyderis, o DYNIX yra Unix tokiems kompiuteriams). Monterey OS turėjo veikti 32 bitų Intel-Pentium platformoje, 64 bitų PowerPC platformoje ir naujoje 64 bitų Intel-Itanium platformoje. Beveik visi techninės ir tarpinės įrangos pramonės lyderiai pareiškė palaikantys projektą. Net įmonės, turinčios savo Unix klonus (išskyrus Sun Microsystems), paskelbė, kad palaikys Monterey tik Intel platformose. Atrodė, kad darbas su projektu vyksta gerai. Monterey OS buvo viena iš pirmųjų, įrodančių savo našumą naudojant „Intel-Itanium“ (kartu su „Windows NT“ ir „Linux“) ir vienintelė, kuri nemėgino 32 bitų „Intel-Pentium“ architektūros. Tačiau paskutiniame projekto etape įvyko lemtingas įvykis: SCO pardavė Unix padalinį. Dar anksčiau Sequent tapo IBM dalimi. Visų Monterey OS funkcijų „įpėdinis“ yra IBM AIX v.5L OS. Tačiau ne visi. „Intel-Pentium“ platforma nėra strateginis IBM dėmesys, o AIX toje platformoje nėra. Ir kadangi kiti kompiuterių pramonės lyderiai nepripažįsta (arba visiškai nesidalija) IBM pozicijos, bendros Unix operacinės sistemos idėja niekada nebuvo įgyvendinta.

Jei neseniai pradėjote mokytis Linux ir jaustis patogiai šioje didžiulėje visatoje, tikriausiai dažnai esate susidūrę su terminu Unix. Skamba labai panašiai kaip „Linux“, bet ką tai reiškia? Tikriausiai jums įdomu, kuo skiriasi „Unix“ ir „Linux“. Atsakymas į šį klausimą priklauso nuo to, ką jūs suprantate šiais žodžiais. Juk kiekvieną iš jų galima interpretuoti įvairiai. Šiame straipsnyje apžvelgsime supaprastintą „Linux“ ir „Unix“ istoriją, kad padėtume suprasti, kas jie yra ir kaip jie yra susiję. Kaip visada, komentaruose galite užduoti klausimų ar pridėti daugiau informacijos.

„Unix“ savo istoriją pradėjo septintojo dešimtmečio pabaigoje ir aštuntojo dešimtmečio pradžioje „AT&T Bell Labs“ Jungtinėse Amerikos Valstijose. Kartu su MIT ir „General Electric“ „Bell Labs“ pradėjo kurti naują operacinę sistemą. Kai kurie tyrinėtojai buvo nepatenkinti šios operacinės sistemos kūrimu. Jie atsitraukė nuo darbo prie pagrindinio projekto ir pradėjo kurti savo OS. 1970 metais ši sistema buvo pavadinta Unix, o po dvejų metų ji buvo visiškai perrašyta C programavimo kalba.

Tai leido platinti ir perkelti į Unix įvairių įrenginių ir kompiuterines platformas.

„Unix“ ir toliau tobulėjant, AT&T pradėjo licencijuoti jį naudoti universitetuose ir komerciniais tikslais. Tai reiškė, kad ne visi galėjo, kaip dabar, laisvai keisti ir platinti Unix operacinės sistemos kodą. Netrukus pradėjo pasirodyti daug Unix operacinės sistemos leidimų ir variantų, skirtų įvairioms problemoms spręsti. Garsiausias iš jų buvo BSD.

„Linux“ yra panašus į „Unix“ funkcijomis ir funkcijomis, bet ne kodo baze. Ši operacinė sistema buvo surinkta iš dviejų projektų. Pirmasis yra GNU projektas, kurį sukūrė Richardas Stallmanas 1983 m., Antrasis yra Linux branduolys, kurį parašė Linusas Torvaldsas 1991 m.

GNU projekto tikslas buvo sukurti sistemą, panašią į Unix, bet nuo jos nepriklausomą. Kitaip tariant, operacinė sistema, kurioje nėra Unix kodo, kurį būtų galima laisvai platinti ir modifikuoti be apribojimų, pavyzdžiui, nemokama programinė įranga. Kadangi nemokamas Linux branduolys negalėjo veikti savarankiškai, GNU projektas susijungė su Linux branduoliu ir gimė Linux operacinė sistema.

Linux buvo sukurtas veikiant Minix sistemai, Unix palikuoniui, tačiau visas kodas buvo parašytas nuo nulio. Skirtingai nuo Unix, kuris buvo naudojamas įvairių įmonių serveriuose ir dideliuose kompiuteriuose, Linux buvo sukurtas naudoti namų kompiuteris su paprastesne aparatūra.

Šiandien Linux veikia daugiau platformų nei bet kuri kita operacinė sistema, įskaitant serverius, įterptąsias sistemas, mikrokompiuterius, modemus ir net mobiliuosius telefonus. Dabar bus išsamiau aptartas skirtumas tarp „Linux“ ir „Unix“.

Kas yra Unix

Terminas Unix gali reikšti tokias sąvokas:

  • Originali operacinė sistema, sukurta AT&T Bell Labs, iš kurios kuriamos kitos operacinės sistemos.
  • Prekės ženklas, parašytas didžiosiomis raidėmis. UNIX priklauso „The Open Group“, kuri sukūrė „Single UNIX Specification“ – operacinių sistemų standartų rinkinį. Tik tas sistemas, kurios atitinka standartus, galima teisėtai vadinti UNIX. Sertifikavimas nėra nemokamas ir reikalauja, kad kūrėjai susimokėtų už šio prekės ženklo naudojimą.
  • Visos operacinės sistemos yra užregistruotos Unix pavadinimu. Nes jie atitinka minėtus standartus. Tai AIX, A/UX, HP-UX, Inspur K-UX, Reliant UNIX, Solaris, IRIX, Tru64, UnixWare, z/OS ir OS X – taip, net ir tie, kurie veikia Apple kompiuteriuose.

Kas yra Linux

Terminas Linux reiškia tik branduolį. Operacinė sistema nebūtų pilna be darbalaukio aplinkos ir programų. Kadangi dauguma programų buvo sukurtos ir dabar kuriamos pagal GNU projektą, visas operacinės sistemos pavadinimas yra GNU/Linux.

Daugelis žmonių dabar vartoja terminą „Linux“, norėdami nurodyti visus platinimus, pagrįstus „Linux“ branduoliu. Šiuo metu naujausia Linux branduolio versija yra 4.4, kuriama 4.5 versija. Branduolio leidimų pernumeravimas iš 3.x į 4.x įvyko ne taip seniai.

Linux yra į Unix panaši operacinė sistema, kuri veikia kaip Unix, tačiau joje nėra kodo. „Unix“ tipo operacinės sistemos dažnai vadinamos Un*x, *NIX ir *N?X arba net Unixoid. Linux neturi Unix sertifikato, o GNU reiškia GNU, o ne Unix, todėl Mac OS X šiuo atžvilgiu yra labiau Unix nei Linux. Nepaisant to, Linux branduolys ir GNU Linux operacinė sistema yra labai panašūs į Unix savo funkcionalumu, įgyvendindami daugumą Unix filosofijos principų. Tai žmonėms skaitomas kodas, kuriame sistemos konfigūracija saugoma atskiruose tekstiniuose failuose ir naudojant nedidelius komandinės eilutės įrankius, grafinį apvalkalą ir seansų tvarkyklę.

Svarbu pažymėti, kad ne visos Unix tipo sistemos gavo UNIX sertifikatą. Tam tikrame kontekste visos operacinės sistemos, pagrįstos UNIX ar jo idėjomis, vadinamos UNIX tipo, nesvarbu, ar jos turi UNIX sertifikatą, ar ne. Be to, jie gali būti komerciniai ir nemokami.

Tikiuosi, kad dabar tapo aiškiau, kuo Unix skiriasi nuo Linux. Bet eikime dar toliau ir apibendrinkime.

Pagrindiniai skirtumai

  • „Linux“ yra nemokama ir atvirojo kodo operacinė sistema, tačiau originali „Unix“ – ne, išskyrus kai kuriuos jos darinius.
  • Linux yra originalaus Unix klonas, tačiau jame nėra jo kodo.
  • Pagrindinis skirtumas tarp unix ir linux yra tas, kad Linux yra tik branduolys, o Unix buvo ir yra visavertė operacinė sistema.
  • Linux buvo sukurtas asmeniniams kompiuteriams. „Unix“ daugiausia orientuota į dideles darbo vietas ir serverius.
  • Šiandien Linux palaiko daugiau platformų nei Unix.
  • „Linux“ palaiko daugiau tipų failų sistemų nei „Unix“.

Kaip matote, painiava dažniausiai kyla dėl to, kad linux vs unix gali reikšti visiškai skirtingus dalykus. Kad ir kokia būtų prasmė, faktas lieka faktu, kad Unix atsirado pirmiausia, o Linux – vėliau. Linux gimė iš programinės įrangos laisvės ir perkeliamumo troškimo, įkvėpto Unix metodo. Galima drąsiai teigti, kad visi esame skolingi laisvosios programinės įrangos judėjimui, nes be jo pasaulis būtų daug prastesnis.

RUSIJOS ŠVIETIMO IR MOKSLO MINISTERIJA

FEDERACIJA

FEDERALINĖ ŠVIETIMO AGENTŪRA

VALSTYBINĖ UGDYMO ĮSTAIGA

AUKŠTESIS PROFESINIS IŠSILAVINIMAS

Taganrogo valstybinis radijo inžinerijos universitetas

„Informatikos“ disciplina

"UNIX operacinė sistema"

Užbaigė: Orda-Žigulina D.V., gr. E-25

Patikrinta: Vishnevetsky V.Yu.

Taganrogas 2006 m


Įvadas

Kas yra Unix 3

Kur nemokamai gauti unix 7

Pagrindinė dalis. (Unix aprašymas)

1. Pagrindinės Unix 8 sąvokos

2. Failų sistema 9

2.1 Failų tipai 9

3. Komandų vertėjas 11

4. UNIX 12 branduolys

4.1 Bendra tradicinio UNIX branduolio struktūra 13

4.2 Pagrindinės branduolio funkcijos 14

4.3 Sąveikos su branduoliu principai 15

4.4 Pertraukimų valdymo principai 17

5. I/O valdymas 18

5.1 Sistemos įvesties/išvesties buferio principai 19

5. 2 Sistema reikalauja įvesties / išvesties valdymo 21

6. Tvarkyklių sąsajos ir įvesties taškai 23

6.1 Blokuoti tvarkykles 23

6.2 Simbolių tvarkyklės 24

6. 3 srauto tvarkyklės 25

7. Komandos ir priemonės 25

7. 1 Komandos organizavimas UNIX OS 26

7.2 I/O peradresavimas ir vamzdynas 26

7. 3 Integruotos, bibliotekos ir vartotojo komandos 26

7.4 Programavimas komandų kalba 27

8. GUI įrankiai 27

8.1 Vartotojų ID ir vartotojų grupės 30

8.2 Failų apsauga 32

8.3 Perspektyvios operacinės sistemos, palaikančios UNIX OS aplinką 33

Išvada

Pagrindiniai Unix ir kitos OS 36 skirtumai

Unix 37 programos


Įvadas

Kas yra Unix

Terminas Unix ir ne visai lygiavertis UNIX vartojami su skirtingomis reikšmėmis. Pradėkime nuo antrojo termino, kaip paprastesnio. Trumpai tariant, UNIX (tokia forma) yra registruotas prekės ženklas, iš pradžių priklausęs AT&T korporacijai, kuri bėgant metams pasikeitė savininkais ir dabar yra organizacijos, vadinamos Open Group, nuosavybė. Teisė naudoti pavadinimą UNIX įgyjama savotišku „utėlių patikrinimu“ – išlaikant atitikties tam tikros etaloninės OS (Single Unix Standard – kuris šiuo atveju gali būti išverstas kaip vienas Unix standartas) specifikacijų testus. Ši procedūra yra ne tik sudėtinga, bet ir labai brangi, todėl iš dabartinių operacinės sistemos buvo atliktos tik kelios, ir visos jos yra patentuotos, tai yra, yra tam tikrų korporacijų nuosavybė.

Tarp korporacijų, užsitarnavusių teisę į UNIX pavadinimą, tada kūrėjai / bandytojai ir savininkų kraują (tiksliau, dolerį), galime įvardyti:

Saulė su savo SunOS (pasauliui geriau žinoma kaip Solaris);

IBM, kuri sukūrė AIX sistemą;

„Hewlett-Packard“ yra HP-UX sistemos savininkas;

IRIX yra SGI operacinė sistema.

Be to, tinkamas UNIX pavadinimas taikomas sistemoms:

DEC sukurtas „True64 Unix“, kurį likvidavus atiteko „Compaq“, o dabar kartu su pastaruoju tapo tos pačios „Hewlett-Packard“ nuosavybe;

UnixWare priklauso SCO (Caldera ir Santa Cruz Operation susijungimo produktas).

Kadangi visos šios sistemos yra patentuotos, jos parduodamos už didelius pinigus (net pagal Amerikos standartus). Tačiau tai nėra pagrindinė kliūtis paties UNIX plitimui, nes jų bendras bruožas yra jų susiejimas su tam tikromis techninės įrangos platformomis: AIX veikia IBM serveriuose ir darbo stotyse su Power procesoriais, HP-UX – su savo HP-PA (Precision Architecture). ) mašinos , IRIX - SGI grafinėse stotyse, turinčiose MIPS procesorius, True64 Unix - skirtas Alpha procesoriams (deja, miręs Bose) Tik UnixWare yra orientuotas į "demokratinę" PC platformą, o "Solaris" yra dviejų architektūrų versijose - savo, Sparc, ir vis tiek tas pats PC, kuris, tiesa, nelabai prisidėjo prie jų paplitimo – dėl gana silpno naujų kompiuterių periferinių įrenginių palaikymo.

Taigi UNIX pirmiausia yra teisinė sąvoka. Tačiau terminas „Unix“ turi technologinį aiškinimą. Tai įprastas pavadinimas, kurį IT pramonė naudoja visai operacinių sistemų šeimai, kilusiam iš „originalios“ UNIX įmonės AT&T arba atkuriančios jos funkcijas „nuo nulio“, įskaitant nemokamas operacines sistemas, tokias kaip „Linux“, „FreeBSD“ ir kitų BSD, niekada nebuvo patvirtinta, kad ji atitiktų vieną Unix standartą. Štai kodėl jie dažnai vadinami „Unix“ tipo.

Taip pat plačiai vartojamas artimas savo prasme terminas „su POSIX suderinamos sistemos“, jungiantis operacinių sistemų šeimą, atitinkančią to paties pavadinimo standartų rinkinį. Patys POSIX (nešiojamosios operacinės sistemos sąsaja, pagrįsta uniX) standartai buvo sukurti remiantis Unix sistemose priimta praktika, todėl pastarosios pagal apibrėžimą yra suderinamos su POSIX. Tačiau tai nėra visiškai sinonimai: suderinamumą su POSIX standartais tvirtina operacinės sistemos, kurios yra tik netiesiogiai susijusios su Unix (QNX, Syllable) arba visai nesusijusios (iki Windows NT/2000/XP).

Norėdami išsiaiškinti UNIX, Unix ir POSIX santykių klausimą, turime šiek tiek pasigilinti į istoriją. Tiesą sakant, šio klausimo istorija yra išsamiai aptarta atitinkamame knygos „Nemokamas Unix: Linux, FreeBSD ir kiti“ (netrukus pasirodys BHV-Petersburg) skyriuje ir straipsniuose apie Linux ir BSD sistemų istoriją.

„Unix“ operacinę sistemą (tiksliau, pirmąją jos versiją) kūrė „Bell Labs“ (AT & T padalinio) darbuotojai 1969–1971 m. Pirmieji jo autoriai – Kenas Thompsonas ir Dennisas Ritchie – tai darė tik savo tikslams, ypač tam, kad galėtų smagiai praleisti laiką su savo mėgstamu StarTravel žaidimu. Ir dėl daugelio teisinių priežasčių pati įmonė negalėjo jo naudoti kaip komercinio produkto. Tačiau praktinis Unix pritaikymas buvo rastas gana greitai. Pirma, jis buvo naudojamas Bell Labs rengiant įvairius techninius (įskaitant patentinius) dokumentus. Antra, UUCP (Unix to Unix Copy Program) ryšio sistema buvo pagrįsta Unix.

Kita sritis, kurioje Unix buvo naudojamas praėjusio amžiaus 70-aisiais ir 80-ųjų pradžioje, pasirodė gana neįprasta. Būtent šaltiniuose jis buvo išplatintas tarp mokslo institucijų, dirbančių kompiuterių mokslo srityje. Tokios sklaidos tikslas (ji nebuvo visiškai nemokama dabartine prasme, o iš tikrųjų pasirodė labai liberali) buvo: švietimas ir moksliniai tyrimai minėtoje žinių srityje.

Garsiausia yra BSD Unix sistema, sukurta Berklio universitete, Kalifornijoje. Kuris, palaipsniui išsivaduodamas iš patentuoto originalaus Unix kodo, galiausiai po dramatiškų pakilimų ir nuosmukių (išsamiai aprašyta čia) davė pradžią modernioms nemokamoms BSD sistemoms – FreeBSD, NetBSD ir kt.

Vienas iš svarbiausių universiteto įsilaužėlių darbo rezultatų buvo (1983 m.) TCP / IP protokolo palaikymo įdiegimas Unix, kuris buvo pagrįstas tuometiniu ARPANET tinklu (ir kuris tapo šiuolaikinio interneto pagrindu). Tai buvo būtina Unix dominavimo visose su pasauliniu tinklu susijusiose srityse sąlyga. Ir tai pasirodė esąs kitas praktinis šios operacinių sistemų šeimos pritaikymas – tuo metu jau nebereikėjo kalbėti apie vieną Unix. Nes ji, kaip minėta anksčiau, atskyrė dvi savo šakas – kilusią iš originalaus UNIX (laikui bėgant ji gavo System V pavadinimą) ir Berklio kilmės sistemą. Kita vertus, V sistema sudarė tų įvairių patentuotų UNIX, kurie iš tikrųjų turėjo teisinę teisę reikalauti šio pavadinimo, pagrindą.

Paskutinė aplinkybė – kadaise buvusios vienos OS išsišakojimas į kelias linijas, kurios pamažu praranda suderinamumą – susikirto su vienu iš kertinių Unix ideologijos akmenų: sistemos perkeliamumu tarp skirtingų platformų, o programos – iš vienos Unix sistemos į kitas. Kas atgaivino įvairių standartų organizacijų veiklą, kuri galiausiai baigėsi jau anksčiau paminėto POSIX standartų rinkinio sukūrimu.

Būtent POSIX standartais rėmėsi Linusas Torvaldsas, kurdamas „nuo nulio“ (ty nenaudodamas jau egzistuojančio kodo) savo operacinę sistemą – „Linux“. O ji, greitai ir sėkmingai įvaldžiusi tradicines Unix sistemų taikymo sritis (programinės įrangos kūrimas, komunikacijos, internetas), ilgainiui joms atvėrė naują – bendros paskirties darbastalio vartotojų platformas. Dėl to jis išpopuliarėjo tarp žmonių – populiarumas pranoksta visas kitas kombinuotas Unix sistemas, tiek patentuotas, tiek nemokamas.

Toliau kalbėsime apie darbą su Unix sistemomis plačiąja to žodžio prasme, neatsižvelgdami į jokius prekių ženklus ir kitus teisinius nesklandumus. Nors pagrindiniai su darbo metodais susiję pavyzdžiai bus paimti iš nemokamų jų diegimų srities – Linux, kiek mažiau – FreeBSD, o dar mažiau – iš kitų BSD sistemų.

Kur gauti nemokamą „Unix“?

FreeBSD duomenų bazė – www.freebsd.org;

Galite apsilankyti www.sco.com


Pagrindinė dalis. (Unix aprašymas)

1. Pagrindinės Unix sąvokos

„Unix“ yra pagrįsta dviem pagrindinėmis sąvokomis: „procesas“ ir „failas“. Procesai yra dinaminė sistemos pusė, jie yra subjektai; ir failai – statiniai, tai yra procesų objektai. Beveik visa sąsaja tarp procesų, sąveikaujančių su branduoliu ir tarpusavyje, atrodo kaip failų rašymas / skaitymas. Nors reikia pridėti signalų, bendros atminties ir semaforų.

Apytiksliai procesus galima suskirstyti į du tipus – užduotis ir demonus. Užduotis – tai procesas, kuris atlieka savo darbą, stengdamasis ją kuo greičiau užbaigti ir užbaigti. Demonas laukia įvykių, kuriuos jam reikia apdoroti, apdoroja įvykusius įvykius ir vėl laukia; dažniausiai baigiasi kito proceso tvarka, dažniausiai jį nužudo vartotojas duodamas komandą „nužudyti proceso_numeris“. Šia prasme paaiškėja, kad interaktyvi užduotis, kuri apdoroja vartotojo įvestį, labiau primena demoną nei užduotį.

2. Failų sistema

Senuosiuose Unix "s pavadinimui buvo priskirta 14 raidžių, naujuose šis apribojimas buvo pašalintas. Be failo pavadinimo, kataloge yra jo inode identifikatorius - sveikasis skaičius, kuris nustato bloko, kuriame įrašomi failo atributai Tarp jų: ​​vartotojo numeris – failo savininkas; numerių grupės Nuorodų į failą skaičius (žr. toliau) Sukūrimo data ir laikas, paskutinis modifikavimas ir paskutinė prieiga prie failo Prieigos atributai Prieigos atributuose yra failas tipą (žr. toliau), paleidžiant pakeisti atributus (žr. toliau) ir leidimus prie jo savininkui, klasės draugui ir kitiems skaityti, rašyti ir vykdyti. Teisę ištrinti failą lemia teisė rašyti į viršutinį. katalogas.

Kiekvienas failas (bet ne katalogas) gali būti žinomas keliais pavadinimais, tačiau jie turi būti tame pačiame skaidinyje. Visos nuorodos į failą yra vienodos; failas ištrinamas, kai pašalinama paskutinė nuoroda į failą. Jei failas atidarytas (skaitymui ir/ar rašymui), nuorodų į jį skaičius padidėja dar vienu; Štai kaip daugelis programų, kurios atidaro laikinąjį failą, iš karto jį ištrina, kad sugedus operacinei sistemai uždarius proceso atidarytus failus, šis laikinasis failas būtų ištrintas operacinės sistemos.

Yra dar viena įdomi failų sistemos savybė: jei po failo sukūrimo į jį buvo rašoma ne iš eilės, o dideliais intervalais, tai šiems intervalams vietos diske neskiriama. Taigi bendras failų kiekis skaidinyje gali būti didesnis nei skaidinio tūris, o ištrynus tokį failą, atlaisvinama mažiau vietos nei jos dydis.

2.1 Failų tipai

Failai yra šių tipų:

įprastos tiesioginės prieigos failas;

katalogas (failas, kuriame yra kitų failų pavadinimai ir identifikatoriai);

simbolinė nuoroda (eilutė su kito failo pavadinimu);

blokuoti įtaisą (diskas arba magnetinė juosta);

nuoseklusis įrenginys (gnybtai, nuoseklieji ir lygiagrečiai prievadai; diskai ir juostos taip pat turi nuosekliojo įrenginio sąsają)

pavadintas kanalas.

Specialūs failai, skirti dirbti su įrenginiais, paprastai yra „/dev“ kataloge. Štai keletas iš jų (FreeBSD nominacijoje):

tty* - terminalai, įskaitant: ttyv - virtualioji konsolė;

ttyd – DialIn terminalas (dažniausiai nuoseklusis prievadas);

cuaa – DialOut linija

ttyp - tinklo pseudoterminalas;

tty – terminalas, su kuriuo susieta užduotis;

wd* – kietieji diskai ir jų poskyriai, įskaitant: wd – kietasis diskas;

wds - šio disko skaidinys (čia vadinamas "slice");

wds - skaidinio skyrius;

fd - diskelis;

rwd*, rfd* – tas pats kaip wd* ir fd*, bet su nuoseklia prieiga;

Kartais reikalaujama, kad vartotojo paleista programa turėtų ne ją paleidusio vartotojo teises, o kažkokias kitas. Šiuo atveju keitimo teisių atributas nustatomas į vartotojo – programos savininko – teises. (Kaip pavyzdį pateiksiu programą, kuri nuskaito failą su klausimais ir atsakymais ir pagal tai, ką perskaitė, testuoja studentą, kuris paleido šią programą. Programa turi turėti teisę skaityti failą su atsakymais, tačiau mokinys kuris jį paleido, neturėtų.) Pavyzdžiui, veikia programa passwd, su kuria vartotojas gali pakeisti slaptažodį. Vartotojas gali paleisti passwd programą, ji gali keisti sistemos duomenų bazę, bet vartotojas negali.

Skirtingai nuo DOS, kur visas failo pavadinimas yra „diskas: kelio pavadinimas“ ir RISC-OS, kuris yra „-filesystem-drive:$.path.name“ (kuris paprastai turi savo privalumų), „Unix“ naudoja skaidrų žymėjimą forma „/ kelias/vardas“. Šaknis matuojamas iš skaidinio, iš kurio buvo įkeltas Unix branduolys. Jei reikia naudoti kitą skaidinį (o įkrovos skaidinyje paprastai yra tik tai, ko reikia paleisti), naudojama komanda `mount /dev/partitionfile dir`. Tuo pačiu metu failai ir pakatalogiai, kurie anksčiau buvo šiame kataloge, tampa nepasiekiami tol, kol skaidinys nebus atjungtas (natūralu, kad visi įprasti žmonės skaidiniams prijungti naudoja tuščius katalogus). Tik prižiūrėtojas turi teisę montuoti ir numontuoti.

Paleidžiant kiekvieną procesą gali būti atidaryti trys failai, kuriuos jis žino kaip standartinį įvesties stdin deskriptoriuje 0; standartinis išvesties stdout deskriptoriuje 1; ir standartinė išvestis stderr ant deskriptoriaus 2. Prisijungus, kai vartotojas įveda vartotojo vardą ir slaptažodį ir paleidžiamas apvalkalas, visi trys nukreipiami į /dev/tty; vėliau bet kuris iš jų gali būti nukreiptas į bet kurį failą.

3. Komandų vertėjas

„Unix“ beveik visada pateikiama su dviem apvalkalais: sh (apvalkalas) ir csh (panašus į C apvalkalas). Be jų, dar yra bash (Bourne), ksh (Korn) ir kt. Nesileidžiant į detales, pateikiame bendruosius principus:

Visos komandos, išskyrus esamo katalogo keitimą, aplinkos kintamųjų (aplinkos) nustatymą ir struktūrinio programavimo teiginius yra išorinės programos. Šios programos paprastai yra /bin ir /usr/bin kataloguose. Sistemos administravimo programos – /sbin ir /usr/sbin kataloguose.

Komanda susideda iš paleistinos programos pavadinimo ir argumentų. Argumentai nuo komandos pavadinimo ir vienas nuo kito atskiriami tarpais ir skirtukais. Kai kuriuos specialiuosius simbolius interpretuoja pats apvalkalas. Specialieji simboliai yra " " ` ! $ ^ * ? | & ; (kas dar?).

Toje pačioje komandų eilutėje galite duoti kelias komandas. Komandos gali būti suskirstytos; (nuoseklus komandos vykdymas), & (asinchroninis vienalaikis komandų vykdymas), | (sinchroninis vykdymas, pirmosios komandos stdout bus tiekiamas antrosios komandos stdin).

Taip pat galite naudoti standartinę įvestį iš failo, kaip vieną iš argumentų įtraukdami „file“ (failas bus nulinis) arba „>>file“ (įrašas bus įrašytas į failo pabaigą).

Jei jums reikia informacijos apie kurią nors komandą, išduokite komandą „man komandos_pavadinimas“. Tai bus rodoma ekrane per programą „daugiau“ – pažiūrėkite, kaip tai valdyti „Unix“ su komanda „man more“.

4. UNIX branduolys

Kaip ir bet kuri kita kelių vartotojų operacinė sistema, apsauganti vartotojus vienas nuo kito ir sistemos duomenis nuo bet kurio neprivilegijuoto vartotojo, UNIX turi saugų branduolį, kuris valdo kompiuterio išteklius ir teikia vartotojams pagrindinį paslaugų rinkinį.

Šiuolaikinių UNIX operacinės sistemos versijų patogumas ir efektyvumas nereiškia, kad visa sistema, įskaitant branduolį, yra suprojektuota ir struktūrizuota geriausiu įmanomu būdu. UNIX operacinė sistema vystėsi bėgant metams (tai pirmoji operacinė sistema istorijoje, kuri ir toliau populiarėja sulaukus tokio brandaus amžiaus – daugiau nei 25 metus). Natūralu, kad sistemos galimybės augo ir, kaip dažnai nutinka didelėse sistemose, kokybiniai UNIX OS struktūros patobulinimai neatsiliko nuo jos galimybių augimo.

Dėl to daugumos šiuolaikinių komercinių UNIX operacinės sistemos versijų branduolys yra didelis, ne itin geros struktūros monolitas. Dėl šios priežasties programavimas UNIX branduolio lygiu ir toliau yra menas (išskyrus nusistovėjusią ir suprantamą išorinių įrenginių tvarkyklių kūrimo technologiją). Šis UNIX branduolio organizacijoje nepatenkinamas gamybos trūkumas daugelio netenkina. Iš čia ir kyla noras visiškai atkurti UNIX OS aplinką su visiškai kitokia sistemos organizacija.

Dėl didžiausio paplitimo dažnai kalbama apie UNIX System V branduolį (jį galima laikyti tradiciniu).

4.1 Bendra tradicinio UNIX branduolio struktūra

Vienas iš pagrindinių UNIX OS pasiekimų yra tai, kad sistema pasižymi dideliu mobilumu. Šios kokybės reikšmė yra ta, kad visą operacinę sistemą, įskaitant jos branduolį, gana lengva perkelti į skirtingas aparatinės įrangos platformas. Visos sistemos dalys, išskyrus branduolį, yra visiškai nepriklausomos nuo mašinos. Šie komponentai yra tvarkingai parašyti C kalba, o norint juos perkelti į naują platformą (bent jau 32 bitų kompiuterių klasėje), reikia tik perkompiliuoti. pirminis kodasį tikslinius kompiuterio kodus.

Žinoma, didžiausios problemos yra susijusios su sistemos branduoliu, kuris visiškai paslepia naudojamo kompiuterio specifiką, tačiau pats priklauso nuo šios specifikos. Dėl apgalvoto nuo mašinos priklausomo ir nuo mašinos nepriklausomo branduolio komponentų atskyrimo (matyt, operacinių sistemų kūrėjų požiūriu tai yra aukščiausias tradicinio UNIX OS branduolio kūrėjų pasiekimas), buvo įmanoma pasiekti, kad pagrindinė branduolio dalis nepriklausytų nuo tikslinės platformos architektūrinių ypatybių, būtų visiškai parašyta C kalba ir tereikia perkompiliuoti, kad ją būtų galima perkelti į naują platformą.

Tačiau palyginti nedidelė branduolio dalis priklauso nuo mašinos ir yra parašyta C ir tikslinio procesoriaus surinkimo kalbos mišiniu. Perkeliant sistemą į naują platformą, ši branduolio dalis turi būti perrašyta naudojant asamblėjos kalbą ir atsižvelgiant į specifines tikslinės aparatinės įrangos ypatybes. Nuo mašinos priklausomos branduolio dalys yra gerai atskirtos nuo pagrindinės nuo mašinos nepriklausomos dalies, o gerai suprantant kiekvieno nuo mašinos priklausančio komponento paskirtį, konkrečios mašinos dalies perrašymas dažniausiai yra techninė užduotis (nors tam reikia daug programavimo įgūdžiai).

Įrenginiams būdingą tradicinio UNIX branduolio dalį sudaro šie komponentai:

sistemos skatinimas ir inicijavimas žemu lygiu (kol kas tai priklauso nuo aparatinės įrangos savybių);

pirminis vidinių ir išorinių pertraukimų apdorojimas;

atminties valdymas (dalyje, susijusioje su virtualios atminties techninės įrangos palaikymo ypatybėmis);

proceso konteksto perjungimas tarp vartotojo ir branduolio režimų;

tikslinės platformos konkrečias įrenginių tvarkyklių dalis.

4.2 Pagrindinės branduolio funkcijos

Pagrindinės UNIX OS branduolio funkcijos yra šios:

a) Sistemos inicijavimas – paleidimo ir paleidimo funkcija. Branduolys suteikia įkrovos įrankį, kuris įkelia visą branduolį į kompiuterio atmintį ir paleidžia branduolį.

b) Procesų ir gijų valdymas – esamų procesų ir gijų („procesų“, veikiančių bendroje virtualioje atmintyje) kūrimo, užbaigimo ir stebėjimo funkcija. Kadangi UNIX yra kelių procesų operacinė sistema, branduolys numato procesoriaus laiko (arba kelių procesorių sistemose procesorių) ir kitų kompiuterio išteklių pasidalijimą tarp vykdomų procesų, kad atrodytų, jog procesai iš tikrųjų veikia lygiagrečiai.

c) Atminties valdymas yra funkcija, skirta praktiškai neribotai virtualiajai procesų atminčiai priskirti kompiuterio fizinę RAM, kurios dydis yra ribotas. Atitinkamas branduolio komponentas leidžia bendrai naudoti tas pačias RAM sritis keliuose procesuose, naudojant išorinę atmintį.

(d) Failų valdymas – funkcija, įgyvendinanti failų sistemos abstrakciją – katalogų ir failų hierarchijas. UNIX failų sistemos palaiko kelių tipų failus. Kai kuriuose failuose gali būti ASCII duomenų, kiti atitiks išorinius įrenginius. Failų sistema saugo objektų failus, vykdomuosius failus ir pan. Failai dažniausiai saugomi išoriniuose saugojimo įrenginiuose; prieiga prie jų suteikiama branduolio pagalba. UNIX pasaulyje yra keletas failų sistemų organizavimo tipų. Šiuolaikinės UNIX operacinės sistemos versijos vienu metu palaiko daugumą failų sistemų tipų.

e) Ryšio priemonės – funkcija, suteikianti galimybę keistis duomenimis tarp tame pačiame kompiuteryje veikiančių procesų (IPC – Inter-Process Communications), tarp procesų, veikiančių skirtinguose vietinio ar plataus duomenų tinklo mazguose, taip pat tarp procesų. ir išorinių įrenginių tvarkyklės.

(f) Programavimo sąsaja – funkcija, suteikianti prieigą prie branduolio galimybių iš vartotojo procesų pusės, remiantis sistemos iškvietimų mechanizmu, išdėstyta funkcijų bibliotekos pavidalu.

4.3 Sąveikos su šerdimi principai

Bet kurioje operacinėje sistemoje palaikomas tam tikras mechanizmas, leidžiantis vartotojo programoms pasiekti OS branduolio paslaugas. Žymiausio sovietinio kompiuterio BESM-6 operacinėse sistemose atitinkamos ryšio su branduoliu priemonės buvo vadinamos ekstrakodais, IBM operacinėse sistemose – sistemos makrokomandomis ir pan. UNIX sistemoje šios priemonės vadinamos sistemos skambučiais.

Pavadinimas nekeičia reikšmės, ty, norint pasiekti OS branduolio funkcijas, naudojamos procesoriaus „specialios komandos“, jas vykdant įvyksta specialus vidinis procesoriaus pertraukimas, perkeliant jį į branduolio režimą ( dauguma šiuolaikinių OS tokio tipo pertraukimas vadinamas spąstais - spąstais). Apdorojant tokius pertraukimus (iššifravimą), OS branduolys atpažįsta, kad pertraukimas iš tikrųjų yra vartotojo programos užklausa branduoliui atlikti tam tikrus veiksmus, pasirenka iškvietimo parametrus ir jį apdoroja, o tada atlieka „grįžimą iš pertraukimo“. “, atnaujinant įprastą vartotojo programos vykdymą.

Akivaizdu, kad specifiniai vartotojo programos inicijuotų vidinių pertraukimų didinimo mechanizmai skiriasi skirtingose ​​aparatinės įrangos architektūrose. Kadangi UNIX OS siekia sukurti aplinką, kurioje vartotojų programos gali būti visiškai mobilios, reikėjo papildomo sluoksnio, kad paslėptų konkretaus vidinių pertraukimų didinimo mechanizmo specifiką. Šį mechanizmą užtikrina vadinamoji sistemos skambučių biblioteka.

Vartotojui sistemos skambučių biblioteka yra įprasta iš anksto įdiegtų C programavimo sistemos funkcijų biblioteka. Kai programuojate C, bet kurios funkcijos iš sistemos skambučių bibliotekos naudojimas nesiskiria nuo bet kurios savosios arba bibliotekos C funkcijos. Tačiau bet kurioje konkrečios sistemos skambučių bibliotekos funkcijoje yra kodas, kuris paprastai yra būdingas konkrečiai aparatinės įrangos platformai.

4.4 Pertraukimų valdymo principai

Žinoma, operacinių sistemų naudojamas vidinių ir išorinių pertraukimų apdorojimo mechanizmas daugiausia priklauso nuo to, kokią techninės įrangos palaikymą pertraukimams valdyti teikia konkreti aparatinės įrangos platforma. Laimei, iki šiol (ir jau ilgą laiką) pagrindiniai kompiuterių gamintojai de facto susitarė dėl pagrindinių pertraukimo mechanizmų.

Kalbant ne itin tiksliai ir konkrečiai, šiandien priimto mechanizmo esmė ta, kad kiekvienas galimas procesoriaus pertraukimas (ar tai būtų vidinis ar išorinis pertraukimas) atitinka kokį nors fiksuotą fizinės RAM adresą. Tuo metu, kai procesoriui leidžiama pertraukti dėl vidinio ar išorinio pertraukimo užklausos, įvyksta aparatinės įrangos valdymo perdavimas į fizinį RAM elementą su atitinkamu adresu – paprastai šio langelio adresas vadinamas „pertraukimu“. vektorius“ (paprastai užklausos dėl vidinio pertraukimo, t. y. tiesiogiai iš procesoriaus gaunamos užklausos patenkinamos iš karto).

Operacinės sistemos reikalas yra įdėti į atitinkamas RAM langelius programos kodą, kuris užtikrina pradinį pertraukimo apdorojimą ir inicijuoja visą apdorojimą.

Iš esmės UNIX operacinė sistema laikosi bendro požiūrio. Pertraukimo vektoriuje, atitinkančiame išorinį pertraukimą, t.y. pertraukti iš kokio nors išorinio įrenginio, yra komandos, kurios nustato procesoriaus vykdymo lygį (paleidimo lygis nustato, į kuriuos išorinius pertraukimus procesorius turi reaguoti nedelsiant) ir pereina į pilną pertraukų tvarkyklę atitinkamoje įrenginio tvarkyklėje. Vidiniam pertraukimui (pavyzdžiui, vartotojo programos inicijuotam pertraukimui, kai pagrindinėje atmintyje trūksta reikiamo virtualiosios atminties puslapio, kai vartotojo programoje įvyksta išimtis ir pan.) arba laikmačio pertraukimui, pertraukimo vektorius turi. šuolis į atitinkamą UNIX branduolio programą.

5. I/O valdymas

Tradiciškai UNIX OS išskiria tris I/O organizavimo tipus ir atitinkamai tris tvarkyklių tipus. Blokas I/O daugiausia skirtas darbui su katalogais ir įprastais failų sistemos failais, kurie pagrindiniame lygyje turi blokų struktūrą. Vartotojo lygiu dabar galima dirbti su failais tiesiogiai susiejant juos su virtualios atminties segmentais. Ši galimybė laikoma aukščiausiu bloko I/O lygiu. Žemesniame lygyje bloko I/O palaiko blokų tvarkyklės. Bloko įvestis/išvestis taip pat palaikoma naudojant sistemos buferį.

Simbolių įvestis/išvestis naudojama tiesioginiams (be buferio) mainams tarp vartotojo adresų erdvės ir atitinkamo įrenginio. Branduolio palaikymas, bendras visoms simbolių tvarkyklėms, yra duomenų perdavimo tarp vartotojo ir branduolio adresų erdvių funkcijos.

Galiausiai, srauto įvestis / išvestis yra panaši į simbolių įvestį / išvestį, tačiau dėl galimybės į srautą įtraukti tarpinius apdorojimo modulius jis turi daug daugiau lankstumo.

5.1 Sistemos įvesties/išvesties buferio principai

Tradicinis būdas sumažinti pridėtines išlaidas, kai keičiamasi su išoriniais atminties įrenginiais, turinčiais blokų struktūrą, yra blokinis įvesties / išvesties buferis. Tai reiškia, kad bet koks išorinės atminties įrenginio blokas pirmiausia nuskaitomas į tam tikrą pagrindinės atminties srities buferį, UNIX OS vadinamą sistemos talpykla, ir iš ten visiškai arba iš dalies (priklausomai nuo mainų tipo) nukopijuojamas į atitinkamą vartotojo erdvę.

Tradicinio buferio mechanizmo organizavimo principai yra, pirma, kad bloko turinio kopija saugoma sistemos buferyje tol, kol prireiks ją pakeisti dėl buferių trūkumo (naudojamas LRU algoritmo variantas organizuoti pakeitimo politiką). Antra, rašant bet kurį išorinio atminties įrenginio bloką, faktiškai atliekamas tik talpyklos buferio atnaujinimas (arba formavimas ir užpildymas). Faktinis keitimasis su įrenginiu vyksta arba išskleidžiant buferį, nes jo turinys pakeičiamas, arba išleidžiant specialų sinchronizavimo (arba fsync) sistemos iškvietimą, palaikomą specialiai atnaujintų talpyklos buferių priverstiniam perkėlimui į išorinę atmintį.

Ši tradicinė buferio schema susidūrė su virtualios atminties valdymo įrankiais, sukurtais šiuolaikinėse UNIX OS versijose, ir ypač su failų susiejimo su virtualiosios atminties segmentais mechanizmu. Todėl System V Release 4 pristatė naują buferio schemą, kuri šiuo metu naudojama lygiagrečiai su senąja schema.

Naujos schemos esmė yra ta, kad branduolio lygyje iš tikrųjų atkuriamas failų susiejimo su virtualios atminties segmentais mechanizmas. Pirma, atminkite, kad UNIX branduolys iš tikrųjų veikia savo virtualioje atmintyje. Ši atmintis turi sudėtingesnę, bet iš esmės tokią pačią struktūrą kaip ir vartotojo virtualioji atmintis. Kitaip tariant, branduolio virtualioji atmintis yra segmentinio puslapio ir kartu su virtualia vartotojo procesų atmintimi palaikoma bendru virtualios atminties valdymo posistemiu. Antra, iš to išplaukia, kad beveik bet kokią funkciją, kurią branduolys teikia vartotojams, kai kurie branduolio komponentai gali suteikti kitiems branduolio komponentams. Visų pirma, tai taip pat taikoma galimybei susieti failus su virtualios atminties segmentais.

Naujoji UNIX branduolio buferio schema daugiausia pagrįsta tuo, kad jūs negalite padaryti beveik nieko ypatingo, kad organizuotumėte buferį. Kai vienas iš vartotojo procesų atidaro failą, kuris iki tol nebuvo atidarytas, branduolys suformuoja naują segmentą ir atidaromą failą sujungia su šiuo segmentu. Po to (neatsižvelgiant į tai, ar vartotojo procesas veiks su failu tradiciniu režimu, naudodamas skaitymo ir rašymo sistemos iškvietimus, ar prijungs failą prie jo virtualios atminties segmento), branduolio lygiu bus atliktas darbas su branduolio segmentu. prie kurių failas pridedamas branduolių lygiu. Pagrindinė naujojo požiūrio idėja yra panaikinti atotrūkį tarp virtualios atminties valdymo ir visos sistemos buferio (tai turėjo būti padaryta seniai, nes akivaizdu, kad pagrindinį buferį operacinėje sistemoje turėtų atlikti virtualios atminties valdymo komponentas).

Kodėl neatsisakius senojo buferio mechanizmo? Reikalas tas, kad naujoji schema daro prielaidą, kad išorinės atminties objekto viduje yra tam tikras nuolatinis adresavimas (tarp susietų ir susietų objektų turi būti izomorfizmas). Tačiau, tvarkant failų sistemas, UNIX OS gana sunku skirti išorinę atmintį, o tai ypač pasakytina apie i-nodes. Todėl kai kurie išorinės atminties blokai turi būti laikomi izoliuotais ir jiems naudingiau naudoti senąją buferio schemą (nors rytojaus UNIX versijose gali būti visiškai pereita prie vieningos naujos schemos).

5. 2 Sistema reikalauja I/O valdymo

Kad pasiektų (ty, kad būtų galima atlikti vėlesnes įvesties/išvesties operacijas) bet kokio tipo failą (įskaitant specialius failus), vartotojo procesas pirmiausia turi prisijungti prie failo naudodamas vieną iš atvirų, creat, dup arba vamzdžių sistemos iškvietimų. .

Atviro (kelio pavadinimas, režimas) sistemos iškvietimo veiksmų seka yra tokia:

analizuojamas įvesties parametrų (daugiausia susijusių su failų prieigos režimo vėliavėlėmis) nuoseklumas;

paskirstykite arba suraskite vietą failo deskriptoriui sistemos proceso duomenų srityje (u-sritis);

visos sistemos srityje esama erdvė yra skirta arba išdėstyta, kad tilptų sistemos failo deskriptorius (failo struktūra);

failų sistemos archyve ieškoma objekto pavadinimu „kelio pavadinimas“ ir sugeneruojamas arba randamas failų sistemos lygio failo deskriptorius (vnode UNIX V System 4 sąlygomis);

vnode yra susietas su anksčiau suformuota failo struktūra.

Atviri ir sukurti sistemos iškvietimai yra (beveik) funkciškai lygiaverčiai. Bet koks esamas failas gali būti atidarytas naudojant creat sistemos iškvietimą, o bet koks naujas failas gali būti sukurtas naudojant atvirą sistemos iškvietimą. Tačiau kalbant apie creat sistemos iškvietimą, svarbu pabrėžti, kad natūraliai naudojant (kuriant failą) šis sistemos iškvietimas sukuria naują įrašą atitinkamame kataloge (pagal nurodytą kelio pavadinimą), taip pat sukuria ir tinkamai inicijuoja naują i-mazgą.

Galiausiai dup sistemos iškvietimas (dublikatas - kopija) veda prie naujo jau atidaryto failo aprašo formavimo. Šis UNIX specifinis sistemos iškvietimas yra skirtas tik įvesties / išvesties peradresavimui.) Jo vykdymas susideda iš naujo atviro failo deskriptoriaus generavimo vartotojo proceso sistemos erdvėje u-regione, kuriame yra naujai suformuotas failo deskriptorius (sveikasis skaičius), bet nurodantis jau esamą visos sistemos failo struktūrą ir turinčius tuos pačius atitinkančius ženklus ir vėliavėles. atidaryti pavyzdinį failą.

Kiti svarbūs sistemos iškvietimai yra skaitymo ir rašymo sistemos skambučiai. Skaitymo sistemos iškvietimas vykdomas taip:

nurodyto failo aprašas yra visos sistemos failų lentelėje ir nustatoma, ar teisėta prieiga iš duoto proceso prie nurodyto failo nurodytu režimu;

tam tikrą (trumpą) laiką šio failo vnode yra nustatytas sinchronizacijos užraktas (kritiniais skaitymo operacijos momentais deskriptoriaus turinys neturėtų keistis);

tikrasis nuskaitymas atliekamas naudojant seną arba naują buferio mechanizmą, po kurio duomenys nukopijuojami, kad būtų prieinami vartotojo adresų erdvėje.

Rašymo operacija veikia taip pat, tačiau keičia buferio telkinio buferio turinį.

Uždarius sistemos iškvietimą vairuotojas nutraukia ryšį su atitinkamu naudotojo procesu ir (jei įrenginys uždarytas paskutinis) nustato visos sistemos vėliavėlę „Vairuotojas laisvas“.

Galiausiai, specialiems failams palaikomas kitas „specialus“ ioctl sistemos iškvietimas. Tai vienintelis sistemos iškvietimas, skirtas specialiems failams, o ne kitų tipų failams. Tiesą sakant, ioctl sistemos iškvietimas leidžia savavališkai išplėsti bet kurios tvarkyklės sąsają. Ioctl parametrai apima opcode ir žymeklį į tam tikrą vartotojo proceso atminties sritį. Visą operacijos kodo ir susijusių specifinių parametrų interpretavimą tvarko tvarkyklė.

Žinoma, kadangi tvarkyklės pirmiausia skirtos valdyti išorinius įrenginius, tvarkyklės kode turi būti atitinkamos priemonės, skirtos įrenginio pertraukimams valdyti. Skambutis į atskirą pertraukimų tvarkyklę tvarkyklėje gaunamas iš operacinės sistemos branduolio. Panašiai vairuotojas gali paskelbti „laikainio laiko“ įvestį, kurią branduolys pasiekia, kai baigiasi anksčiau vairuotojo nurodytas laikas (toks laiko valdymas būtinas valdant mažiau išmaniuosius įrenginius).

Bendra tvarkyklių sąsajos organizavimo schema parodyta 3.5 pav. Kaip rodo šis paveikslas, sąsajų ir visos sistemos valdymo požiūriu yra dviejų tipų tvarkyklės - simbolių ir blokų. Vidinės organizavimo požiūriu išsiskiria dar vienas vairuotojų tipas – srauto tvarkyklės. Tačiau išorinės sąsajos požiūriu srauto tvarkyklės nesiskiria nuo simbolių tvarkyklių.

6. Tvarkyklių sąsajos ir įvesties taškai

6.1 Blokuoti tvarkykles

Blokų tvarkyklės yra skirtos aptarnauti išorinius įrenginius su blokine struktūra (magnetiniais diskais, juostelėmis ir kt.) ir skiriasi nuo kitų tuo, kad yra kuriamos ir vykdomos naudojant sistemos buferį. Kitaip tariant, tokios tvarkyklės visada veikia per sistemos buferio telkinį. Kaip matote 3.5 pav., bet kokia skaitymo ar rašymo prieiga prie bloko tvarkyklės visada yra apdorojama, ty bandoma rasti norimo bloko kopiją buferio telkinyje.

Jei reikiamo bloko kopijos nėra buferio telkinyje arba jei dėl kokių nors priežasčių reikia pakeisti kurio nors atnaujinto buferio turinį, UNIX branduolys iškviečia atitinkamo bloko tvarkyklės strategijos procedūrą. Strategija suteikia standartinę sąsają tarp branduolio ir tvarkyklės. Naudojant bibliotekos paprogrames, skirtas tvarkyklių rašymui, strategijos procedūra gali organizuoti mainų su įrenginiu eiles, pavyzdžiui, siekiant optimizuoti magnetinių galvučių judėjimą diske. Visi mainai, kuriuos atlieka bloko tvarkyklė, atliekami su buferine atmintimi. Reikiamos informacijos perrašymą į atitinkamo vartotojo proceso atmintį atlieka branduolio programos, valdančios buferius

6.2 Simbolių tvarkyklės

Simbolių tvarkyklės pirmiausia skirtos aptarnauti įrenginius, kurie keičiami po simbolius arba kintamo ilgio simbolių eilutėmis. Tipiškas simbolių įrenginio pavyzdys yra paprastas spausdintuvas, kuris priima vieną simbolį per vieną mainą.

Simbolių tvarkyklės nenaudoja sistemos buferio. Jie tiesiogiai kopijuoja duomenis iš vartotojo proceso atminties, kai atlieka rašymo operacijas, arba į vartotojo proceso atmintį, kai atlieka skaitymo operacijas, naudodami savo buferius.

Reikėtų pažymėti, kad blokiniam įrenginiui galima pateikti simbolių sąsają. Šiuo atveju bloko tvarkyklė naudoja papildomas strategijos procedūros ypatybes, leidžiančias keistis nenaudojant sistemos buferio. Tvarkyklei, turinčiai ir blokų, ir simbolių sąsajas, failų sistemoje sukuriami du specialūs failai – blokas ir simbolis. Su kiekvienu skambučiu vairuotojas gauna informaciją apie režimą, kuriuo jis naudojamas.

6. 3 srauto tvarkyklės

Pagrindinis srautų mechanizmo tikslas yra padidinti tvarkyklių, turinčių sudėtingą vidinę logiką, moduliškumo ir lankstumo lygį (tai labiausiai taikoma tvarkyklėms, diegiančioms pažangius tinklo protokolus). Tokių tvarkyklių specifika yra ta, kad dauguma programos kodo nepriklauso nuo aparatūros įrenginio savybių. Be to, dažnai naudinga įvairiai derinti programos kodo dalis.

Visa tai paskatino tvarkyklių, kurios yra dvikryptis apdorojimo modulių vamzdynas, srautinio perdavimo architektūrą. Konvejerio pradžioje (arčiausiai vartotojo proceso) yra srauto antraštė, kuri pirmoji gauna vartotojo inicijuotus skambučius. Dujotiekio gale (arčiausiai įrenginio) yra įprasta įrenginio tvarkyklė. Tarpoje gali būti savavališkas apdorojimo modulių skaičius, kurių kiekvienas yra suprojektuotas pagal reikiamą srautinio perdavimo sąsają.

7. Komandos ir paslaugos

Interaktyviai dirbdami UNIX OS aplinkoje, jie naudoja įvairias programas arba išorines apvalkalo kalbos komandas. Daugelis šių paslaugų yra tokios pat sudėtingos programos kaip ir pats apvalkalas (beje, pati apvalkalo kalba yra viena iš paslaugų, kurias galite iškviesti iš komandinės eilutės).

7. 1 Komandos organizavimas UNIX OS

Norint sukurti naują komandą, tereikia laikytis C programavimo taisyklių. Kiekviena gerai suformuota C programa pradeda vykdyti nuo pagrindinės funkcijos. Ši „pusiau sistemos“ funkcija turi standartinę sąsają, kuri yra pagrindas organizuoti komandas, kurias galima iškviesti apvalkalo aplinkoje. Išorines komandas vykdo apvalkalo interpretatorius, naudodamas šakutės sistemos iškvietimus ir vieną iš exec parinkčių. „Exec“ sistemos iškvietimo parametrai apima teksto eilučių rinkinį. Šis teksto eilučių rinkinys perduodamas kaip pagrindinės vykdomos programos funkcijos įvestis.

Tiksliau, pagrindinė funkcija užima du parametrus - argc (teksto eilučių, kurias reikia perduoti, skaičius) ir argv (rodyklė į teksto eilutes rodyklių masyvą). Programa, teigianti, kad ją naudoja kaip apvalkalo komandą, turi turėti tiksliai apibrėžtą išorinė sąsaja(parametrai dažniausiai įvedami iš terminalo) ir turi valdyti bei teisingai išanalizuoti įvesties parametrus.

Be to, kad atitiktų apvalkalo stilių, tokia programa pati neturėtų nepaisyti failų, atitinkančių standartinę įvestį, standartinę išvestį ir standartinę klaidą. Tada komanda gali būti peradresuota įvesties / išvesties įprastu būdu ir gali būti įtraukta į konvejerius.

7.2 I/O peradresavimas ir vamzdynas

Kaip matote iš paskutinio ankstesnės pastraipos sakinio, jums nereikia daryti nieko ypatingo, kad įjungtumėte įvesties / išvesties peradresavimą ir konvejerines programas programuodami instrukcijas. Pakanka tiesiog palikti nepaliestus tris pradinius failų deskriptorius ir teisingai dirbti su šiais failais, ty išvesti į failą su deskriptoriumi stdout, įvesti duomenis iš stdin failo ir išspausdinti klaidų pranešimus į stderror failą.

7. 3 Integruotos, bibliotekos ir vartotojo komandos

Integruotos komandos yra apvalkalo programos kodo dalis. Jos veikia kaip vertėjo paprogramės ir negali būti pakeistos ar iš naujo apibrėžtos. Integruotų komandų sintaksė ir semantika apibrėžiami atitinkama komandų kalba.

Bibliotekos komandos yra sistemos programinės įrangos dalis. Tai vykdomųjų programų (paslaugų) rinkinys, tiekiamas kartu su operacine sistema. Dauguma šių programų (pvz., vi, emacs, grep, find, make ir kt.) yra itin naudingos praktikoje, tačiau jų aptarimas nepatenka į šio kurso sritį (yra atskiros storos knygos).

Vartotojo komanda yra bet kokia vykdomoji programa, organizuota pagal nustatytus reikalavimus. Taigi bet kuris UNIX OS vartotojas gali neribotą laiką išplėsti savo komandų kalbos išorinių komandų repertuarą (pavyzdžiui, galite parašyti savo komandų interpretatorių).

7.4 Komandų kalbos programavimas

Bet kuris iš minėtų apvalkalo kalbos variantų iš esmės gali būti naudojamas kaip programavimo kalba. Tarp UNIX vartotojų yra daug žmonių, kurie ant apvalkalo rašo gana rimtas programas. Programavimui geriau naudoti programavimo kalbas (C, C++, Pascal ir kt.), o ne komandų kalbas.


8. GUI įrankiai

Nors daugelis profesionalių UNIX programuotojų šiandien mieliau naudojasi tradicinėmis linijinėmis sąveikos su sistema priemones, plačiai paplitęs santykinai nebrangių, didelės raiškos spalvotų grafinių terminalų naudojimas lėmė tai, kad visos šiuolaikinės UNIX OS versijos palaiko grafinį vartotoją. sąsajos su sistema. , o vartotojams suteikiami įrankiai, skirti kurti grafines sąsajas su jų kuriamomis programomis. Galutinio vartotojo požiūriu grafinės sąsajos įrankiai, palaikomi skirtingose ​​UNIX OS versijose ir kitose sistemose (pavyzdžiui, MS Windows ar Windows NT), yra maždaug vienodo stiliaus.

Pirma, visais atvejais palaikomas kelių langų veikimo režimas su terminalo ekranu. Bet kuriuo metu vartotojas gali sukurti naują langą ir susieti jį su norima programa, kuri su šiuo langu dirba kaip su atskiru terminalu. Langus galima perkelti, keisti dydį, laikinai uždaryti ir pan.

Antra, visose šiuolaikinėse grafinės sąsajos versijose palaikomas pelės valdymas. UNIX atveju dažnai paaiškėja, kad įprasta terminalo klaviatūra naudojama tik pereinant prie tradicinės linijos sąsajos (nors dažniausiai bent viename terminalo lange veikia vienas iš apvalkalo šeimos apvalkalų).

Trečia, toks „pelytės“ darbo stiliaus sklaida įmanomas naudojant sąsajos įrankius, paremtus piktogramomis (piktogramomis) ir meniu. Dažniausiai tam tikrame lange veikianti programa paragina vartotoją pasirinkti funkciją, kurią ji turi atlikti, lange parodydama simbolinių galimų funkcijų vaizdų (piktogramų) rinkinį arba pasiūlydama kelių lygių meniu. . Bet kokiu atveju tolesniam pasirinkimui pakanka pele valdyti atitinkamo lango žymeklį.

Galiausiai šiuolaikinės grafinės sąsajos yra „patogios vartotojui“, suteikiančios galimybę iš karto gauti interaktyvią pagalbą bet kokiai progai. (Galbūt tiksliau būtų sakyti, kad geras GUI programavimo stilius iš tikrųjų pateikia tokias užuominas.)

Išvardinus visas šias bendrąsias šiuolaikinių GUI įrankių savybes, gali kilti natūralus klausimas: jeigu grafinių sąsajų srityje yra toks vienodumas, kuo ypatingos grafinės sąsajos UNIX aplinkoje? Atsakymas pakankamai paprastas. Taip, galutinis vartotojas iš tikrųjų bet kurioje šiuolaikinėje sistemoje naudoja maždaug tuos pačius sąsajos funkcijų rinkinius, tačiau skirtingose ​​sistemose šios funkcijos pasiekiamos skirtingais būdais. Kaip įprasta, UNIX pranašumas yra standartizuotų technologijų prieinamumas, leidžiantis kurti mobiliąsias programas su grafinėmis sąsajomis.

8. Apsaugos principai

Kadangi UNIX OS nuo pat įkūrimo buvo sumanyta kaip kelių vartotojų operacinė sistema, joje visada buvo aktuali įvairių vartotojų prieigos prie failų sistemos failų leidimo problema. Prieigos leidimas reiškia sistemos veiksmus, kurie leidžia arba užkerta kelią tam tikram vartotojui prieiti prie tam tikro failo, atsižvelgiant į vartotojo prieigos teises ir failui nustatytus prieigos apribojimus. Prieigos autorizavimo schema, naudojama UNIX OS, yra tokia paprasta ir patogi bei tuo pačiu tokia galinga, kad tapo de facto šiuolaikinių operacinių sistemų (kurios nepretenduoja į sistemas su kelių lygių apsauga) standartu.

8.1 Vartotojų ID ir vartotojų grupės

Kiekvienas UNIX veikiantis procesas yra susietas su tikru vartotojo ID, efektyviu vartotojo ID ir išsaugotu vartotojo ID. Visi šie identifikatoriai nustatomi naudojant setuid sistemos iškvietimą, kuris gali būti vykdomas tik supervartotojo režimu. Panašiai kiekvienas procesas turi tris su juo susietus vartotojų grupės ID – tikrąjį grupės ID, galiojantį grupės ID ir išsaugotą grupės ID. Šiuos identifikatorius nustato privilegijuotas setgid sistemos iškvietimas.

Kai vartotojas prisijungia prie sistemos, prisijungimo programa patikrina, ar vartotojas yra prisijungęs ir žino teisingą slaptažodį (jei jis nustatytas), sukuria naują procesą ir jame paleidžia šiam vartotojui reikalingą apvalkalą. Tačiau prieš tai darydami prisijungimas nustato vartotojo ir grupės ID naujai sukurtam procesui, naudodamas /etc/passwd ir /etc/group failuose saugomą informaciją. Kai vartotojo ir grupės ID susiejami su procesu, tam procesui taikomi prieigos prie failų apribojimai. Procesas gali pasiekti failą arba jį vykdyti (jei faile yra vykdomoji programa) tik tuo atveju, jei tai leidžia failo prieigos apribojimai. Su procesu susieti identifikatoriai perduodami jo kuriamiems procesams, laikantis tų pačių apribojimų. Tačiau kai kuriais atvejais procesas gali pakeisti savo leidimus naudodamas setuid ir setgid sistemos iškvietimus, o kartais sistema gali pakeisti proceso leidimus automatiškai.

Apsvarstykite, pavyzdžiui, tokią situaciją. Failo /etc/passwd negali įrašyti niekas, išskyrus supervartotoją (supervartotojas gali rašyti į bet kurį failą). Šiame faile, be kita ko, yra vartotojo slaptažodžiai ir kiekvienas vartotojas gali pakeisti savo slaptažodį. Yra speciali programa/bin/passwd, kuris pakeičia slaptažodžius. Tačiau vartotojas negali to padaryti net su šia programa, nes /etc/passwd failas negali būti rašomas. UNIX sistemoje ši problema išspręsta taip. Vykdomajame faile gali būti nurodyta, kad jį paleidžiant turi būti nustatyti vartotojo ir (arba) grupės identifikatoriai. Jei vartotojas prašo vykdyti tokią programą (naudodamas exec sistemos iškvietimą), atitinkamo proceso vartotojo ID nustatomas į vykdomosios programos savininko ID ir (arba) to savininko grupės ID. Visų pirma, kai paleista /bin/passwd programa, procesas turės root ID ir programa galės rašyti į /etc/passwd failą.

Tiek vartotojo ID, tiek grupės ID tikrasis ID yra tikrasis ID, o galiojantis ID yra dabartinės vykdymo ID. Jei dabartinis vartotojo ID sutampa su supervartotoju, tada tą ID ir grupės ID galima iš naujo nustatyti į bet kokią reikšmę naudojant setuid ir setgid sistemos iškvietimus. Jei dabartinis vartotojo ID skiriasi nuo supervartotojo ID, tada, vykdant sistemos iškvietimus setuid ir setgid, dabartinis ID pakeičiamas tikruoju ID (atitinkamai naudotojo arba grupės).

8.2 Failų apsauga

Kaip įprasta kelių vartotojų operacinėje sistemoje, UNIX palaiko vienodą prieigos prie failų ir failų sistemos katalogų valdymo mechanizmą. Bet kuris procesas gali pasiekti tam tikrą failą tada ir tik tada, kai su failu aprašytos prieigos teisės atitinka šio proceso galimybes.

Failų apsauga nuo neteisėtos prieigos UNIX sistemoje pagrįsta trimis faktais. Pirma, su bet kokiu procesu, kuris sukuria failą (arba katalogą), sistemoje yra susietas tam tikras unikalus vartotojo identifikatorius (UID - vartotojo identifikatorius), kuris gali būti toliau interpretuojamas kaip naujai sukurto failo savininko identifikatorius. Antra, kiekvienas procesas, bandantis pasiekti failą, turi porą su juo susietų identifikatorių, dabartinio vartotojo ir grupės identifikatorius. Trečia, kiekvienas failas unikaliai atitinka jo aprašą – i-node.

Bet kuris failų sistemoje naudojamas i-mazgas visada unikaliai atitinka vieną ir tik vieną failą. I mazge yra gana daug įvairios informacijos (didžioji jos dalis vartotojams pasiekiama per stat ir fstat sistemos iškvietimus), o tarp šios informacijos yra dalis, leidžianti failų sistemai įvertinti tam tikro proceso prieigos teises. į nurodytą failą reikiamu režimu.

Bendrieji apsaugos principai yra vienodi visiems esamiems sistemos variantams: „i-node“ informacija apima dabartinio failo savininko UID ir GID (iš karto po failo sukūrimo jo dabartinio savininko identifikatoriai nustatomi į atitinkamą dabartinį kūrimo proceso identifikatorių, bet vėliau jį gali pakeisti chown ir chgrp sistemos iškvietimai). Be to, failo i-mazge yra skalė, nurodanti, ką vartotojas – jo savininkas gali daryti su failu, ką naudotojai, priklausantys tai pačiai vartotojų grupei kaip savininkas, ir ką kiti gali daryti su failu. failų naudotojai. Smulkios įgyvendinimo detalės įvairiose sistemos versijose skiriasi.

8.3 Būsimos operacinės sistemos, palaikančios UNIX OS aplinką

Mikrobranduolis yra mažiausia pagrindinė operacinės sistemos dalis, naudojama kaip modulinių ir nešiojamų plėtinių pagrindas. Atrodo, kad dauguma naujos kartos operacinių sistemų turės mikrobranduolius. Tačiau yra daug skirtingų nuomonių apie tai, kaip turėtų būti organizuojamos operacinės sistemos paslaugos mikrobranduolių atžvilgiu: kaip suprojektuoti įrenginių tvarkykles, kad jos būtų kuo efektyvesnės, tačiau tvarkyklės funkcijos būtų kuo nepriklausomos nuo aparatinės įrangos; ar ne branduolio operacijos turi būti atliekamos branduolio ar vartotojo erdvėje; ar verta pasilikti esamų posistemių programas (pvz. UNIX), ar geriau viską išmesti ir pradėti nuo nulio.

Mikrobranduolio koncepciją plačiai pradėjo naudoti „Next“, kurios operacinėje sistemoje buvo naudojamas „Mach“ mikrobranduolys. Mažas privilegijuotas šios operacinės sistemos branduolys, aplink kurį posistemiai veikė vartotojo režimu, teoriškai turėjo suteikti precedento neturintį sistemos lankstumą ir moduliškumą. Tačiau praktiškai šį pranašumą šiek tiek sumažino monolitinio serverio, kuriame įdiegta UNIX BSD 4.3 operacinė sistema, buvimas, kurį Next pasirinko apvynioti Mach mikrobranduoliu. Tačiau pasitikėjimas Mach leido į sistemą įtraukti pranešimų siuntimo įrankius ir daugybę objektinių paslaugų funkcijų, kurių pagrindu buvo galima sukurti elegantišką galutinio vartotojo sąsają su grafiniais tinklo konfigūravimo, sistemos administravimo įrankiais. ir programinės įrangos kūrimas.

Kita mikrobranduolių operacinė sistema buvo Microsoft Windows NT, kur pagrindinis mikrobranduolių privalumas buvo ne tik moduliškumas, bet ir perkeliamumas. (Atkreipkite dėmesį, kad nėra bendro sutarimo, ar NT iš tikrųjų turėtų būti laikoma mikrobranduolių operacine sistema.) NT buvo sukurta naudoti vieno ir kelių procesorių sistemose, pagrįstose Intel procesoriai, Mips ir Alfa (ir tos, kurios ateina po jų). Kadangi programos, parašytos DOS, Windows, OS/2 ir Posix suderinamoms sistemoms, turėjo veikti NT, Microsoft naudojo būdingą mikrobranduolių metodo moduliškumą, kad sukurtų bendrą NT sistemą, kuri nemėgdžiotų jokios esamos operacinės sistemos. Kiekviena operacinė sistema yra emuliuojama kaip atskiras modulis arba posistemis.

Visai neseniai apie mikrobranduolių operacinių sistemų architektūras paskelbė Novell/USL, Open Software Foundation (OSF), IBM, Apple ir kt. Vienas pagrindinių NT konkurentų mikrobranduolių operacinių sistemų srityje yra Mach 3.0, Carnegie Mellon universitete sukurta sistema, kurią ir IBM, ir OSF įsipareigojo komercializuoti. (Next šiuo metu naudoja Mach 2.5 kaip NextStep pagrindą, bet taip pat atidžiai žiūri į Mach 3.0.) Kitas konkurentas yra Chorus Systems Chorus 3.0 mikrobranduolys, kurį USL pasirinko kaip pagrindą naujiems UNIX operacinės sistemos diegimams. Kai kurie mikrobranduoliai bus naudojami „Sun“ SpringOS, į objektą orientuotoje „Solaris“ įpėdinėje (jei, žinoma, „Sun“ užbaigs SpringOS). Pastebima akivaizdi tendencija pereiti nuo monolitinių prie mikrobranduolių sistemų (šis procesas nėra paprastas: IBM žengė žingsnį atgal ir atsisakė perėjimo prie mikrobranduolių technologijos). Beje, tai visai ne naujiena „QNX Software Systems“ ir „Unisys“, kurie jau keletą metų išleidžia sėkmingas mikrobranduolių operacines sistemas. QNX OS yra paklausi realaus laiko rinkoje, o Unisys CTOS yra populiari bankininkystėje. Abi sistemos sėkmingai naudoja mikrobranduolių operacinėms sistemoms būdingą moduliškumą.


Išvada

Pagrindiniai Unix ir kitų OS skirtumai

„Unix“ susideda iš branduolio su įtrauktomis tvarkyklėmis ir programomis (ne branduolio programomis). Jei reikia pakeisti konfigūraciją (pridėti įrenginį, pakeisti prievadą ar pertraukti), tada branduolys yra atkuriamas (perjungiamas) iš objektų modulių arba (pavyzdžiui, FreeBSD) iš šaltinių. Tai nėra visiškai tiesa. Kai kuriuos parametrus galima pataisyti nepermontuojant. Taip pat yra įkeliamų branduolio modulių.

Priešingai nei Unix, sistemoje Windows (jei nenurodyta, kuri, tada turime omenyje 3.11, 95 ir NT) ir OS / 2, įkeliant, jie iš tikrųjų susieja tvarkykles kelyje. Tuo pačiu metu kompaktiškumas surinktas branduolys ir pakartotinis bendro kodo naudojimas yra eilės tvarka mažesnis nei Be to, jei sistemos konfigūracija nepakitusi, Unix branduolį galima įrašyti į ROM ir paleisti _not_booted_ į RAM be pertvarkymo (reikia pakeisti tik pradinę BIOS) Kodo kompaktiškumas yra ypač svarbus, nes branduolys ir tvarkyklės niekada nepalieka fizinės atminties, nekeičiama į diską.

„Unix“ yra pati kelių platformų OS. WindowsNT bando tai imituoti, tačiau kol kas tai nepasisekė – atsisakius MIPS ir POWER-PC, W "NT liko tik dviejose platformose - tradicinėje i * 86 ir DEC Alpha. Programų perkeliamumas iš vienos Unix versijos Netinkamai parašyta programa , kurioje neatsižvelgiama į „Unix“ diegimo skirtumus, daromos nepagrįstos prielaidos, pvz., „sveikasis skaičius turi užimti keturis baitus“, gali prireikti didelių pertvarkymų, tačiau tai vis tiek daug lengviau nei perkelti iš Pavyzdžiui, OS/2 į NT.

Unix programos

Unix naudojamas ir kaip serveris, ir kaip darbo stotis. Serverio nominacijoje su juo konkuruoja MS WindowsNT, Novell Netware, IBM OS/2 Warp Connect, DEC VMS ir mainframe operacinės sistemos. Kiekviena sistema turi savo taikymo sritį, kurioje ji yra geresnė už kitas.

WindowsNT skirta administratoriams, kurie renkasi patogią sąsają, o ne išteklių taupymą ir didelį našumą.

Netware – tinklams, kuriuose reikalingos didelio našumo failų ir spausdintuvų paslaugos, o kitos paslaugos nėra tokios svarbios. Pagrindinis trūkumas yra tai, kad sunku paleisti programas Netware serveryje.

OS / 2 tinka ten, kur reikia „lengvo“ programų serverio. Jis reikalauja mažiau išteklių nei NT, yra lankstesnis valdymas (nors gali būti sunkiau nustatyti), o daugiafunkcinis darbas yra labai geras. Prieigos teisių autorizavimas ir diferencijavimas nėra įgyvendinamas OS lygmeniu, o tai daugiau nei atsiperka įdiegus programų serverių lygmeniu. (Tačiau dažnai tą patį daro kitos OS). Daugelis FIDOnet ir BBS stočių yra pagrįstos OS/2.

VMS yra galingas, jokiu būdu ne prastesnis už Unix (ir daugeliu atžvilgių pranašesnis už jį) taikomųjų programų serverį, tačiau skirtas tik DEC VAX ir Alpha platformoms.

Pagrindiniai kompiuteriai – aptarnauti labai didelį vartotojų skaičių (keleto tūkstančių). Tačiau šių vartotojų darbas paprastai organizuojamas ne kliento ir serverio sąveikos, o pagrindinio kompiuterio ir terminalo sąveikos forma. Šios poros terminalas veikiau yra ne klientas, o serveris (Internet World, N3, 1996). Pagrindinių kompiuterių privalumai – didesnis saugumas ir atsparumas gedimams, o trūkumai – šias savybes atitinkanti kaina.

„Unix“ tinka kvalifikuotam (ar norinčiam būti) administratoriui, nes reikalauja žinoti joje vykstančių procesų veikimo principus. Tikras daugiafunkcinis darbas ir kietosios atminties dalijimasis užtikrina aukštą sistemos patikimumą, nors Unix failų ir spausdinimo paslaugų našumas yra prastesnis nei Netware.

Lankstumas suteikiant naudotojo prieigos teises prie failų, palyginti su WindowsNT, apsunkina _failų_sistemos_ lygio grupės prieigą prie duomenų (tiksliau, prie failų) organizavimą, o tai, mano nuomone, atsveria diegimo paprastumas, o tai reiškia mažiau techninės įrangos. reikalavimus. Tačiau tokios programos kaip SQL serveris pačios išsprendžia grupės prieigos prie duomenų problemą, todėl galimybė konkrečiam vartotojui uždrausti prieigą prie _failo_, kurios Unix sistemoje nėra, mano nuomone, yra aiškiai perteklinė.

Beveik visi protokolai, kuriais grindžiamas internetas, buvo sukurti naudojant Unix, ypač TCP / IP protokolų rinkinys buvo išrastas Berklio universitete.

„Unix“ saugumas, kai jis tinkamai administruojamas (o kai ne?), jokiu būdu nėra prastesnis nei „Novell“, nei „WindowsNT“.

Svarbi Unix savybė, priartinanti jį prie pagrindinių kompiuterių, yra daugiafunkcis terminalas, daugelis vartotojų gali vienu metu paleisti programas tame pačiame Unix kompiuteryje. Jei jums nereikia naudoti grafikos, galite išsiversti su pigiais teksto terminalais (specializuotais arba pigiais kompiuteriais), prijungtais lėtomis linijomis. Čia su juo konkuruoja tik VMS. Grafiniai X terminalai taip pat gali būti naudojami, kai tame pačiame ekrane yra skirtingose ​​mašinose veikiančių procesų langai.

Darbo stočių nominacijoje Unix konkuruoja su MS Windows*, IBM OS/2, Macintosh ir Acorn RISC-OS.

Windows – tiems, kurie vertina suderinamumą, o ne efektyvumą; tiems, kurie yra pasirengę pirkti daug atminties, vietos diske ir megahercų; mėgstantiems nesigilinti į esmę, spauskite lange esančius mygtukus. Tiesa, anksčiau ar vėliau vis tiek teks išstudijuoti sistemos ir protokolų principus, bet tada jau bus per vėlu – pasirinkimas padarytas. Svarbus „Windows“ pranašumas taip pat turi būti pripažintas kaip galimybė pavogti daugybę programinės įrangos.

OS/2 – OS/2 gerbėjams. :-) Nors, remiantis kai kuriomis ataskaitomis, OS / 2 geriau nei kiti sąveikauja su pagrindiniais kompiuteriais ir IBM tinklais.

Macintosh – grafikos, leidybos ir muzikos kūriniams, taip pat tiems, kurie mėgsta aiškią, gražią sąsają ir nenori (negali) suprasti sistemos detalių.

RISC-OS, įdiegta ROM, leidžia negaišti laiko diegiant operacinę sistemą ir atkuriant ją po gedimų. Be to, beveik visos programos pagal jį naudoja išteklius labai ekonomiškai, todėl jų nereikia keisti ir veikia labai greitai.

„Unix“ veikia tiek asmeniniuose kompiuteriuose, tiek galingose ​​darbo vietose su RISC procesoriais, „Unix“ parašytos tikrai galingos CAD sistemos ir geografinės informacijos sistemos. Pasak kai kurių autorių, „Unix“ mastelio keitimas dėl daugiaplatforminio pobūdžio yra daug didesnis už bet kurią kitą operacinę sistemą.


Bibliografija

1. Vadovėlis Kuznecova S.D. "UNIX operacinė sistema" 2003;

2. Poliakovas A.D. "UNIX 5th Edition x86, arba nepamirškite istorijos";

3. Karpovas D.Yu. "UNIX" 2005;

4. Fedorčukas A.V. „Unix Mastery“, 2006 m

5. Svetainės medžiaga http://www.citforum.ru/operating_systems/1-16;

RUSIJOS FEDERACIJOS ŠVIETIMO IR MOKSLO MINISTERIJA FEDERALINĖ ŠVIETIMO AGENTŪRA VALSTYBINĖ AUKŠTOJO PROFESINIO MOKYMO ĮSTAIGA
mob_info