Shtëpi Këshilla të dobishme Si funksionon një webcam. Tema 3.5 Struktura dhe parimi i funksionimit të kamerave të internetit. Karakteristikat dhe funksionet shtesë të kamerës së internetit

Si funksionon një webcam. Tema 3.5 Struktura dhe parimi i funksionimit të kamerave të internetit. Karakteristikat dhe funksionet shtesë të kamerës së internetit

UNIX ka një histori të gjatë dhe interesante. Duke u nisur si një projekt joserioz dhe gati "lodër" i studiuesve të rinj, UNIX është kthyer në një industri shumë milionëshe, duke përfshirë në orbitën e saj universitete, korporata shumëkombëshe, qeveri dhe organizata ndërkombëtare të standardeve.

UNIX filloi në Bell Labs të AT&T më shumë se 20 vjet më parë. Në atë kohë, Bell Labs po zhvillonte një sistem të ndarjes së kohës me shumë përdorues, MULTICS (Shërbimi i Informacionit dhe Kompjuterit të Shumëfishtë), me MIT dhe General Electric, por ky sistem dështoi, pjesërisht për shkak të qëllimeve tepër ambicioze që nuk korrespondonin me nivelin e kompjuterët e asaj kohe, dhe pjesërisht për shkak të faktit se ai u zhvillua në PL/1, dhe kompajleri PL/1 u vonua dhe nuk performoi mirë pas paraqitjes së tij të vonuar. Prandaj, Bell Labs refuzoi fare të marrë pjesë në projektin MULTICS, gjë që bëri të mundur që një nga studiuesit e tij, Ken Thompson, të bënte punë kërkimore drejt përmirësimit të mjedisit operativ të Bell Labs. Thompson, së bashku me punonjësin e Bell Labs, Denis Ritchie dhe disa të tjerë, po zhvillonin një sistem të ri skedarësh, shumë prej veçorive të të cilit vinin nga MULTICS. Për të testuar sistemin e ri të skedarëve, Thompson shkroi bërthamën e OS dhe disa programe për kompjuterin GE-645, i cili përdorte sistemin e ndarjes së kohës me shumë programe GECOS. Ken Thompson kishte një lojë që shkroi gjatë punës në MULTICS të quajtur "Space Travel". Ai e përdori atë në një kompjuter GE-645, por nuk funksionoi shumë mirë tek ai për shkak të efikasitetit të dobët të ndarjes së kohës. Përveç kësaj, koha e makinës së GE-645 ishte shumë e shtrenjtë. Si rezultat, Thompson dhe Ritchie vendosën ta portojnë lojën në një makinë DEC PDP-7 të ulur boshe në qoshe, e cila ka 4,096 fjalë 18-bitësh, një makinë shkrimi dhe një ekran të mirë grafik. Por PDP-7 kishte softuer të dobët dhe pasi mbaroi transferimin e lojës, Thompson vendosi të zbatonte në PDP-7 sistemin e skedarëve që ai kishte punuar në GE-645. Pikërisht nga kjo punë doli versioni i parë i UNIX-it, megjithëse në atë kohë nuk kishte asnjë emër. Por ai tashmë përfshinte sistemin tipik të skedarëve të bazuar në inode UNIX, kishte një nënsistem të menaxhimit të procesit dhe kujtesës dhe lejonte dy përdorues të punonin në modalitetin e ndarjes së kohës. Sistemi është shkruar në asembler. Emri UNIX (Uniplex Information and Computing Services) iu dha nga një punonjës tjetër i Bell Labs, Brian Kernighan, i cili fillimisht e quajti atë UNICS, duke theksuar dallimin e tij nga MULTICS me shumë përdorues. Së shpejti UNICS filloi të quhej UNIX.

Përdoruesit e parë të UNIX ishin punonjësit e departamentit të patentave të Bell Labs, të cilët e gjetën atë një mjedis të përshtatshëm për krijimin e teksteve.

Fati i UNIX-it u ndikua shumë nga regjistrimi i tij në gjuhë nivel të lartë C, i zhvilluar nga Denis Ritchie posaçërisht për këtë qëllim. Kjo ndodhi në vitin 1973, kohë në të cilën UNIX kishte 25 instalime dhe një grup i veçantë mbështetës UNIX u krijua në Bell Labs.

UNIX është përdorur gjerësisht që nga viti 1974, pas përshkrimit të këtij sistemi nga Thompson dhe Ritchie në revistën kompjuterike CACM. UNIX u miratua gjerësisht nga universitetet, pasi furnizohej pa pagesë me kodet burimore C. Përdorimi i gjerë i përpiluesve efikasë C e bëri UNIX-in unik në atë kohë si një sistem operativ për shkak të transportueshmërisë së tij në kompjuterë të ndryshëm. Universitetet kanë dhënë një kontribut të rëndësishëm në përmirësimin e UNIX dhe popullarizimin e mëtejshëm të tij. Një hap tjetër drejt fitimit të njohjes për UNIX si një mjedis i standardizuar ishte zhvillimi i bibliotekës stdio I/O nga Denis Ritchie. Duke përdorur këtë bibliotekë për përpiluesin C, programet UNIX janë bërë shumë të lëvizshme.

Oriz. 5.1. Historia e zhvillimit të UNIX

Përdorimi i gjerë i UNIX ka shkaktuar problemin e papajtueshmërisë midis shumë versioneve të tij. Natyrisht, është shumë zhgënjyese për përdoruesin që një paketë e blerë për një version të UNIX refuzon të punojë në një version tjetër të UNIX. Periodikisht janë bërë dhe po bëhen përpjekje për standardizimin e UNIX-it, por deri më tani ato kanë pasur sukses të kufizuar. Procesi i konvergjencës së versioneve të ndryshme të UNIX dhe divergjenca e tyre është ciklik. Përballë një kërcënimi të ri nga një sistem tjetër operativ, shitës të ndryshëm UNIX konvergojnë produktet e tyre, por më pas konkurrenca i detyron ata të bëjnë përmirësime origjinale dhe versionet ndryshojnë përsëri. Ekziston edhe një anë pozitive e këtij procesi - shfaqja e ideve dhe mjeteve të reja që përmirësojnë si UNIX-in ashtu edhe shumë sisteme të tjera operative që kanë adoptuar shumë gjëra të dobishme prej tij gjatë viteve të gjata të ekzistencës së tij.

Figura 5.1 tregon një pamje të thjeshtuar të zhvillimit të UNIX, e cila merr parasysh vazhdimësinë e versioneve të ndryshme dhe ndikimin e standardeve të miratuara mbi to. Dy linja shumë të papajtueshme të versioneve UNIX janë në përdorim të gjerë: linja AT&T-UNIX System V dhe linja Berkeley-BSD e universitetit. Shumë kompani kanë zhvilluar dhe mirëmbajtur versionet e tyre të UNIX bazuar në këto versione: SunOS dhe Solaris të Sun Microsystems, UX të Hewlett-Packard, XENIX të Microsoft, AIX të IBM, UnixWare të Novell (tani i shitur SCO) dhe lista vazhdon.

Standardet si SVID i AT&T, POSIX i IEEE dhe XPG4 i konsorciumit X/Open kanë pasur ndikimin më të madh në unifikimin e versioneve UNIX. Këto standarde përcaktojnë kërkesat për një ndërfaqe ndërmjet aplikacioneve dhe sistemit operativ për të mundësuar që aplikacionet të ekzekutohen me sukses në versione të ndryshme të UNIX.

Pavarësisht nga versioni, veçoritë e zakonshme për UNIX janë:

  • modaliteti me shumë përdorues me mjete për mbrojtjen e të dhënave nga aksesi i paautorizuar,
  • zbatimi i përpunimit me shumë programe në modalitetin e ndarjes së kohës, bazuar në përdorimin e algoritmeve parandaluese të multitasking,
  • përdorimi i memories virtuale dhe mekanizmat e shkëmbimit për të rritur nivelin e multiprogramimit,
  • unifikimi i operacioneve I/O bazuar në përdorimin e zgjeruar të konceptit të "skedarit",
  • një sistem skedari hierarkik që formon një pemë të vetme drejtorie, pavarësisht nga numri i pajisjeve fizike të përdorura për të vendosur skedarë,
  • transportueshmëria e sistemit duke shkruar pjesën kryesore të tij në C,
  • mjete të ndryshme të ndërveprimit ndërmjet proceseve, duke përfshirë përmes rrjetit,
  • memoria e diskut për të reduktuar kohën mesatare të hyrjes në skedar.

UNIX System V Release 4 është një version komercial i papërfunduar i sistemit operativ. kodeve të tij u mungojnë shumë nga shërbimet e sistemit të nevojshëm për funksionimin e suksesshëm të OS, të tilla si shërbimet e administrimit ose një menaxher GUI. Versioni SVR4 është më shumë një zbatim standard i kodit të kernelit, duke përfshirë zgjidhjet më të njohura dhe më efikase nga versione të ndryshme të kernelit UNIX, si sistemi i skedarëve virtualë VFS, skedarët e hartuar me memorie, etj. Kodi SVR4 (i modifikuar pjesërisht) formoi bazën e shumë versioneve moderne komerciale të UNIX, si HP-UX, Solaris, AIX, e kështu me radhë.

Sistemi operativ UNIX, paraardhësi i shumë sistemeve operative moderne si Linux, Android, Mac OS X dhe shumë të tjerë, u krijua brenda mureve të qendrës kërkimore Bell Labs, një divizion i AT&T. Në përgjithësi, Bell Labs është një terren i vërtetë mbarështues për shkencëtarët që kanë bërë zbulime që ndryshuan fjalë për fjalë teknologjinë. Për shembull, ishte në Bell Labs që shkencëtarët si William Shockley, John Bardeen dhe Walter Brattain punuan, të cilët krijuan për herë të parë transistorin bipolar në 1947. Mund të themi se lazeri u shpik në Bell Labs, megjithëse deri në atë kohë maserët ishin krijuar tashmë. Claude Shannon, themeluesi i teorisë së informacionit, ka punuar gjithashtu në Bell Labs. Aty punuan krijuesit e gjuhës C Ken Thompson dhe Denis Ritchie (do t'i kujtojmë më vonë), si dhe autori i C ++ - Bjarne Stroustrup.

Rrugës për në UNIX

Para se të flasim për vetë UNIX-in, le të kujtojmë ato sisteme operative që u krijuan para tij, dhe të cilat në masë të madhe përcaktuan se çfarë është UNIX, dhe përmes tij, shumë sisteme të tjera operative moderne.

Zhvillimi i UNIX nuk ishte puna e parë në fushën e sistemeve operative të ndërmarra në Bell Labs. Në vitin 1957, laboratori filloi të zhvillonte një sistem operativ, i cili u quajt BESYS (shkurt për Bell Operating System). Menaxheri i projektit ishte Viktor Vysotsky, djali i një astronomi rus që emigroi në Amerikë. BESYS ishte një projekt i brendshëm që nuk u lëshua si produkt komercial i përfunduar, megjithëse BESYS u shpërnda për të gjithë në shirita magnetikë. Ky sistem është krijuar për të funksionuar në kompjuterët e serisë IBM 704 - 709x (IBM 7090, 7094). Do të doja t'i quaja këto gjëra si fjala paradiluviane e kompjuterit, por, për të mos prerë veshin, do të vazhdojmë t'i quajmë kompjuterë në fund të fundit.

IBM 704

Para së gjithash, BESYS ishte menduar për ekzekutimin në grup të një numri të madh programesh, domethënë në atë mënyrë kur jepet një listë programesh dhe ekzekutimi i tyre planifikohet në atë mënyrë që të zënë burimet maksimale të mundshme në mënyrë që kompjuteri nuk qëndron boshe. Në të njëjtën kohë, BESYS kishte tashmë bazat e një sistemi operativ për ndarjen e kohës - që është, në thelb, ajo që tani quhet multitasking. Kur u shfaqën sisteme të plota të ndarjes së kohës, kjo mundësi u përdor në mënyrë që disa njerëz të mund të punonin me një kompjuter në të njëjtën kohë, secili nga terminali i tyre.

Në vitin 1964, Bell Labs përditësoi kompjuterët, si rezultat i të cilit BESYS nuk mund të lëshohej më në kompjuterë të rinj nga IBM, dhe atëherë nuk bëhej fjalë për ndër-platformë. Kompjuterët në atë kohë furnizoheshin nga IBM pa sisteme operative. Zhvilluesit e Bell Labs mund të fillojnë të shkruajnë sistemi i ri operativ, por ata vepruan ndryshe - ata iu bashkuan zhvillimit të sistemit operativ Multics.

Projekti Multics (shkurt për Shërbimin e Informacionit dhe Kompjuterit të Shumëfishtë) u propozua nga profesori i MIT Jack Dennis. Ai, së bashku me studentët e tij në 1963, zhvilloi një specifikim për një sistem të ri operativ dhe arriti të interesonte përfaqësuesit e kompanisë General Electric në projekt. Si rezultat, Bell Labs iu bashkua MIT dhe General Electric në zhvillimin e një sistemi të ri operativ.

Dhe idetë e projektit ishin shumë ambicioze. Së pari, duhej të ishte një sistem operativ me ndarje me kohë të plotë. Së dyti, Multics nuk u shkrua në asembler, por në një nga gjuhët e para të nivelit të lartë - PL / 1, e cila u zhvillua në 1964. Së treti, Multics mund të funksionojë në kompjuterë me shumë procesorë. I njëjti sistem operativ kishte një sistem skedari hierarkik, emrat e skedarëve mund të përmbanin çdo karakter dhe të ishin mjaft të gjatë, dhe lidhjet simbolike me drejtoritë jepeshin gjithashtu në sistemin e skedarëve.

Fatkeqësisht, puna në Multics u zvarrit për një kohë të gjatë, programuesit e Bell Labs nuk pritën për lëshimin e këtij produkti dhe në prill 1969 u larguan nga projekti. Dhe lëshimi u zhvillua tashmë në tetor të të njëjtit vit, por, thonë ata, versioni i parë ishte jashtëzakonisht i ngarkuar, dhe për një vit tjetër zhvilluesit e mbetur rregulluan gabimet që përdoruesit u raportuan atyre, megjithëse një vit më vonë Multics ishte tashmë një më shumë sistem i besueshëm.

Multics ka qenë në zhvillim për një kohë mjaft të gjatë, lëshimi i fundit ishte në 1992, dhe ishte versioni 12.5, megjithëse kjo është një histori krejtësisht e ndryshme, por Multics pati një ndikim të madh në të ardhmen e UNIX.

Lindja e UNIX

UNIX u shfaq pothuajse rastësisht dhe fajin e kishte loja kompjuterike "Space Travel", një lojë fluturuese në hapësirë ​​e shkruar nga Ken Thompson. Ishte viti i largët 1969, loja Space Travel u projektua fillimisht për të njëjtin sistem operativ Multics, dhe pasi Bell Labs iu ndërpre aksesi në versionet e reja të Multics, Ken e rishkruan lojën në Fortran dhe e transferoi atë në sistemin operativ GECOS, që erdhi me kompjuterin GE-635. Por këtu hynë dy probleme. Së pari, ky kompjuter nuk kishte një sistem ekrani shumë të mirë dhe, së dyti, ishte e shtrenjtë për të luajtur në këtë kompjuter - diçka rreth 50-75 dollarë në orë.

Por një ditë, Ken Thompson gjeti një kompjuter DEC PDP-7 që përdorej rrallë dhe mund të ishte i përshtatshëm për të drejtuar Space Travel, plus që kishte një procesor video më të mirë.

Transferimi i lojës në PDP-7 nuk ishte i lehtë, në fakt, kërkonte shkrimin e një sistemi të ri operativ për ta ekzekutuar atë. Ky nuk ishte rasti, në të cilin programuesit nuk do të shkojnë për hir të lodrës së tyre të preferuar. Kështu lindi UNIX, ose më saktë Unics. Emri i sugjeruar nga Brian Kernighan është i shkurtër për I papjekur Sistemi Informativ dhe Kompjuterik. Më lejoni t'ju kujtoj se emri Multics vjen nga fjalët të shumëfishta Shërbimi i Informacionit dhe Kompjuterit, pra, Unics ishte disi kundër Multics për sa i përket thjeshtësisë. Në të vërtetë, Multics tashmë ishte nën sulm për kompleksitetin e tij. Për krahasim, versionet e para të kernelit Unics zinin vetëm 12 kB RAM kundrejt 135 kB për Multics.

Ken Thompson

Këtë herë, zhvilluesit nuk eksperimentuan (ende) me gjuhë të nivelit të lartë dhe versioni i parë i Unics u shkrua në assembler. Vetë Thompson, Denis Ritchie, mori pjesë në zhvillimin e Unics, më vonë Douglas McIlroy, Joey Ossanna dhe Rad Kennedy u bashkuan me ta. Në fillim, Kernighan, i cili propozoi emrin e OS, ofroi vetëm mbështetje morale.

Pak më vonë, në vitin 1970, kur u implementua multitasking, sistemi operativ u riemërua UNIX dhe nuk konsiderohej më si shkurtim. Është ky vit që konsiderohet si viti zyrtar i lindjes së UNIX-it dhe është nga 1 janari 1970 që llogaritet koha e sistemit (numri i sekondave duke filluar nga kjo datë). E njëjta datë quhet më patetikisht - fillimi i epokës UNIX (në anglisht - UNIX Epoch). E mbani mend, të gjithë ishim të trembur nga problemi i vitit 2000? Pra, një problem i ngjashëm na pret në vitin 2038, kur numrat e plotë 32-bit, të cilët shpesh përdoren për të përcaktuar datën, nuk do të mjaftojnë për të përfaqësuar kohën dhe koha me datën do të bëhet negative. Unë do të doja të besoja se deri në këtë kohë i gjithë softveri jetik do të përdorë variabla 64-bit për këtë qëllim në mënyrë që ta shtyjë këtë datë të tmerrshme me 292 milion vjet të tjera, dhe më pas do të dalim me diçka. 🙂

Deri në vitin 1971, UNIX ishte tashmë një sistem operativ i plotë, dhe Bell Labs madje vendosi për vete markën tregtare UNIX. Në të njëjtin vit, UNIX u rishkrua për të ekzekutuar në kompjuterin më të fuqishëm PDP-11, dhe pikërisht në këtë vit u lëshua versioni i parë zyrtar i UNIX (i quajtur edhe Botimi i Parë).

Paralelisht me zhvillimin e Unics / UNIX, Ken Thompson dhe Denis Ritchie, duke filluar nga viti 1969, zhvilluan një gjuhë të re B (B), e cila bazohej në gjuhën BCPL, e cila, nga ana tjetër, mund të konsiderohet si një pasardhës i Algolit. -60 gjuhë. Ritchie propozoi rishkrimin e UNIX në B, i cili ishte portativ, megjithëse i interpretuar, pas së cilës ai vazhdoi ta modifikonte këtë gjuhë për nevoja të reja. Në vitin 1972, doli Edicioni i Dytë i UNIX, i cili u shkrua pothuajse tërësisht në B, duke lënë një modul mjaft të vogël prej rreth 1000 rreshtash në asembler, kështu që transferimi i UNIX-it në kompjuterë të tjerë tani ishte relativisht i lehtë. Kështu u bë UNIX i lëvizshëm.

Ken Thompson dhe Dennis Ritchie

Gjuha B më pas evoluoi së bashku me UNIX derisa lindi gjuhën C, një nga gjuhët më të njohura të programimit, e cila tani keqpërdoret gjerësisht ose vlerësohet si një ideal. Në vitin 1973, botimi i tretë i UNIX doli me një përpilues të integruar për gjuhën C, dhe duke filluar nga versioni i 5-të, i cili lindi në 1974, besohet se UNIX u rishkrua plotësisht në C. Nga rruga, ai ishte në UNIX në vitin 1973 që një koncept i tillë u shfaq si tuba (pipe).

Duke filluar nga 1974-1975, UNIX filloi të përhapet jashtë Bell Labs. Thompson dhe Ritchie publikojnë një përshkrim të UNIX në Communications of ACM, dhe AT&T ofron UNIX institucionet arsimore si mjet mësimor. Në vitin 1976, mund të themi se UNIX-i i parë u transferua në një sistem tjetër - në kompjuterin Interdata 8/32. Për më tepër, në vitin 1975, u lëshua versioni i 6-të i UNIX, duke filluar me të cilin u shfaqën zbatime të ndryshme të këtij sistemi operativ.

Sistemi operativ UNIX ishte aq i suksesshëm sa që duke filluar nga fundi i viteve 70, zhvilluesit e tjerë filluan të bënin sisteme të ngjashme. Le të kalojmë tani nga UNIX origjinal në klonet e tij dhe të shohim se çfarë sisteme të tjera operative kanë dalë prej tij.

Ardhja e BSD

Riprodhimi i këtij sistemi operativ u lehtësua kryesisht nga zyrtarët amerikanë, edhe para lindjes së UNIX, në vitin 1956, të cilët vendosën kufizime ndaj AT&T, e cila zotëronte Bell Labs. Fakti është se në atë kohë Departamenti i Drejtësisë e detyroi AT & T të nënshkruante një marrëveshje që e ndalonte kompaninë të angazhohej në aktivitete që nuk kishin lidhje me rrjetet dhe pajisjet telefonike dhe telegrafike, por në vitet '70, AT & T kishte kuptuar tashmë se çfarë një projekti i suksesshëm doli nga UNIX dhe donte ta bënte atë komercial. Në mënyrë që zyrtarët t'i lejojnë ata ta bëjnë këtë, AT&T dhuroi burime UNIX për disa universitete amerikane.

Një nga këto universitete që kishte akses në trupin e burimit ishte Universiteti i Kalifornisë në Berkeley, dhe nëse ka burime të njerëzve të tjerë, atëherë në mënyrë të pavullnetshme ekziston dëshira për të korrigjuar diçka në program për veten e tyre, veçanërisht pasi licenca nuk e bëri ndalojnë këtë. Kështu, disa vite më vonë (në 1978), u shfaq sistemi i parë jo-AT&T UNIX-kompatibël. Ishte BSD UNIX.

UC Berkeley

BSD është shkurtim për Berkeley Software Distribution, sistem të veçantë shpërndarja e programeve në kodet burimore me një licencë shumë të butë. Licenca BSD u krijua vetëm për të shpërndarë një sistem të ri të pajtueshëm me UNIX. Kjo licencë lejon ripërdorimin e kodit burimor të shpërndarë nën të, dhe, përveç kësaj, ndryshe nga GPL (e cila nuk ekzistonte ende), nuk vendos asnjë kufizim për programet derivative. Përveç kësaj, ai është shumë i shkurtër dhe nuk funksionon me shumë terma të mërzitshëm juridikë.

Versioni i parë i BSD (1BSD) ishte më shumë një shtesë në versionin origjinal UNIX 6 sesa sistem i pavarur. 1BSD shtoi një përpilues Pascal dhe një redaktues teksti të mëparshëm. Versioni i dytë i BSD, i lëshuar në 1979, përfshinte programe të tilla të njohura si vi dhe C Shell.

Që nga ardhja e BSD UNIX, numri i sistemeve të pajtueshme me UNIX është rritur në mënyrë eksponenciale. Tashmë nga BSD UNIX, filluan të mbijnë degë të veçanta të sistemeve operative, sisteme të ndryshme operative shkëmbyen kodin me njëri-tjetrin, ndërthurja u bë mjaft konfuze, kështu që në të ardhmen nuk do të ndalemi në secilin version të të gjitha sistemeve UNIX, por le të shohim se si u shfaqën më e famshmja prej tyre.

Ndoshta pasardhësit më të njohur të drejtpërdrejtë të BSD UNIX janë FreeBSD, OpenBSD dhe, në një masë më të vogël, NetBSD. Ata janë të gjithë pasardhës nga i ashtuquajturi 386BSD, i lëshuar në 1992. 386BSD, siç sugjeron emri, ishte një port i BSD UNIX në procesorin Intel 80386. Ky sistem u krijua gjithashtu nga të diplomuarit e Universitetit të Berkeley. Autorët mendonin se kodi burimor UNIX i marrë nga AT&T ishte modifikuar mjaftueshëm për të shënuar në licencën AT&T, megjithatë, vetë AT&T nuk mendonte kështu, kështu që pati procese gjyqësore rreth këtij sistemi operativ. Duke gjykuar nga fakti se vetë 386BSD u bë prindi i shumë sistemeve të tjera operative, gjithçka përfundoi mirë për të.

Projekti FreeBSD (në fillim nuk kishte emrin e vet) u shfaq si një grup arnash për 386BSD, megjithatë, këto arna nuk u pranuan për disa arsye, dhe më pas, kur u bë e qartë se 386BSD nuk do të zhvillohej më, në 1993 projekti u vendos në drejtim të krijimit të një sistemi operativ të plotë, të quajtur FreeBSD.

Beastie. Maskota e FreeBSD

Në të njëjtën kohë, vetë zhvilluesit e 386BSD krijuan një projekt të ri, NetBSD, nga i cili, nga ana tjetër, u degëzua OpenBSD. Siç mund ta shihni, rezulton një pemë mjaft e përhapur e sistemeve operative. Qëllimi i projektit NetBSD ishte të krijonte një sistem UNIX që mund të funksiononte në sa më shumë arkitektura të jetë e mundur, domethënë të arrinte transportueshmëri maksimale. Edhe drejtuesit e NetBSD duhet të jenë ndër-platformë.

Logoja e NetBSD

Solaris

Sidoqoftë, sistemi operativ SunOS ishte i pari që u shkëput nga BSD, ideja, siç e kuptoni nga emri, e Sun Microsystems, për fat të keq, tashmë të ndjerë. Kjo ndodhi në vitin 1983. SunOS është sistemi operativ që erdhi me kompjuterë të ndërtuar nga vetë Sun. Në përgjithësi, Sun kishte pasur sistemin operativ Sun UNIX një vit më parë, në vitin 1982, i cili në thelb bazohej në bazën e kodeve Unisoft Unix v7 (Unisoft është një kompani e themeluar në 1981 që portoi Unix-in në pajisje të ndryshme), por SunOS 1.0 bazohet në kodi 4.1 BSD. SunOS u përditësua rregullisht deri në vitin 1994, kur u lëshua versioni 4.1.4, dhe më pas u riemërua Solaris 2. Nga lindi deuce? Kjo është paksa një histori konfuze, sepse Solaris fillimisht u quajt SunOS versionet 4.1.1 - 4.1.4, të zhvilluara nga 1990 deri në 1994. Konsideroni se ishte një lloj riemërtimi që zuri rrënjë vetëm duke filluar me versionin Solaris 2. Më pas deri në vitin 1997 doli Solaris 2.1, 2.2 etj. në 2.6, dhe në vend të Solaris 2.7 në 1998, u lëshua vetëm Solaris 7, atëherë vetëm kjo shifër filloi të rritet. Për momentin Versioni i fundit Solaris - 11, lëshuar më 9 nëntor 2011.

Logoja e OpenSolaris

Historia e Solaris është gjithashtu mjaft e ndërlikuar, deri në vitin 2005 Solaris ishte një sistem operativ tërësisht komercial, por në 2005 Sun vendosi të hapte një pjesë të kodit burimor Solaris 10 dhe të krijonte projektin OpenSolaris. Gjithashtu, kur Sun ishte gjallë, Solaris 10 ishte ose falas për t'u përdorur ose mund të blini mbështetje zyrtare. Më pas, në fillim të vitit 2010, kur Oracle mori përsipër Sun, e bëri Solaris 10 një sistem me pagesë. Për fat të mirë, Oracle nuk ka mundur të vrasë ende OpenSolaris.

linux. Ku je pa të?

Dhe tani është radha të flasim për më të famshmit nga implementimet e UNIX - Linux. Historia e Linux-it është e jashtëzakonshme në këto tre projekte interesante. Por, para se të flasim për krijuesin e Linux - Linus Torvalds, duhet të përmendim edhe dy programues të tjerë, njëri prej të cilëve - Andrew Tanenbaum, pa e ditur këtë, e shtyu Linusin të krijonte Linux, dhe i dyti - Richard Stallman, mjetet e të cilit përdori Linus për të krijuar. sistemin e tij operativ.

Andrew Tanenbaum është profesor në Universitetin e Lirë të Amsterdamit dhe fokusohet kryesisht në zhvillimin e sistemit operativ. Ai bashkëautor, me Albert Woodhull, një libër të tillë të njohur si Sistemet Operative: Dizajnimi dhe Zbatimi, i cili frymëzoi Torvalds të fillonte të shkruante Linux. Ky libër trajton një sistem të ngjashëm me UNIX si Minix. Fatkeqësisht, për një kohë të gjatë Tanenbaum e konsideroi Minix vetëm si një projekt për të mësuar se si të krijoni sisteme operative, por jo si një OS funksional të plotë. Burimet Minix kishin një licencë mjaft të kufizuar, kur mund të studionit kodin e saj, por nuk mund të shpërndanit versionet tuaja të modifikuara të Minix, dhe për një kohë të gjatë vetë autori nuk donte të aplikonte arna që i ishin dërguar.

Andrew Tanenbaum

Versioni i parë i Minix doli me botimin e parë të librit në 1987, versioni i dytë dhe i tretë pasues i Minix dolën me botimet përkatëse të librit për sistemet operative. Versioni i tretë i Minix, i lëshuar në 2005, tashmë mund të përdoret si një sistem operativ i pavarur për një kompjuter (ka versione LiveCD të Minix që nuk kërkojnë instalim në një hard disk), dhe si një sistem operativ i integruar për mikrokontrolluesit. Versioni i fundit i Minix 3.2.0 u lëshua në korrik 2011.

Tani le të mendojmë për Richard Stallman. AT kohët e fundit ai filloi të perceptohej vetëm si një propagandues i softuerit të lirë, megjithëse shumë programe të njohura tani u shfaqën falë tij, dhe Torvalds në një kohë projekti i tij e bëri jetën shumë më të lehtë. Gjëja më interesante është se Linus dhe Richard iu afruan krijimit të një sistemi operativ me anët e ndryshme, dhe si rezultat, projektet u bashkuan në GNU/Linux. Këtu duhet dhënë disa shpjegime se çfarë është GNU dhe nga ka ardhur.

Richard Stallman

Ju mund të flisni për Stallman për mjaft kohë, për shembull, se ai mori një diplomë nderi në fizikë nga Universiteti i Harvardit. Përveç kësaj, Stallman punoi në Massachusetts Instituti Teknologjik ku filloi të shkruante redaktorin e tij të famshëm EMACS në vitet 1970. Në të njëjtën kohë, kodi burimor i redaktorit ishte i disponueshëm për të gjithë, gjë që nuk ishte një lloj veçorie në MIT, ku për një kohë të gjatë mbahej anarkia miqësore në një farë kuptimi, ose, si Stephen Levy, autori i mrekullisë. libri “Hakerët. Heronjtë e revolucionit kompjuterik”, “etika e hakerëve”. Por pak më vonë MIT filloi të kujdeset për sigurinë e kompjuterëve, përdoruesve iu dhanë fjalëkalime, përdoruesit e paautorizuar nuk mund të hynin në kompjuter. Stallman ishte ashpër kundër kësaj praktike, ai krijoi një program që mund të lejonte këdo të zbulonte çdo fjalëkalim të çdo përdoruesi, ai mbrojti lënien e fjalëkalimit bosh. Për shembull, ai u dërgoi përdoruesve mesazhe si kjo: “Unë shoh që keni zgjedhur një fjalëkalim [të tillë e të tillë]. Unë supozoj se mund të kaloni te një fjalëkalim "kthimi i transportit". Është shumë më e lehtë të shkruash dhe është në përputhje me parimin që këtu nuk duhet të ketë fjalëkalime”. Por përpjekjet e tij dështuan. Për më tepër, njerëzit e rinj që erdhën në MIT tashmë kanë filluar të kujdesen për të drejtat e programit të tyre, për të drejtat e autorit dhe neveri të ngjashme.

Stallman tha më vonë (duke cituar nga i njëjti libër nga Levy): “Nuk mund të besoj se softueri duhet të ketë pronarë. Ajo që ndodhi sabotoi mbarë njerëzimin në tërësi. Ai i pengoi njerëzit të përfitonin sa më shumë nga programet.” Ose ja një citim tjetër i tij: “Makinat filluan të prisheshin dhe nuk kishte kush t’i rregullonte. Askush nuk bëri ndryshimet e nevojshme në softuer. Jo-hakerët reaguan ndaj kësaj thjesht - ata filluan të përdorin sisteme tregtare të blera, duke sjellë me vete fashizmin dhe marrëveshjet e licencimit.

Si rezultat, Richard Stallman u largua nga MIT dhe vendosi të krijojë zbatimin e tij falas të një sistemi operativ të pajtueshëm me UNIX. Kështu më 27 shtator 1983 u shfaq projekti GNU, i cili përkthehet si "Gnu nuk është UNIX". Programi i parë i lidhur me GNU ishte EMACS. Si pjesë e projektit GNU, në vitin 1988, u zhvillua licenca e saj GNU GPL, Licenca e Përgjithshme Publike GNU, e cila detyron autorët e programeve të bazuara në kodet burimore të shpërndara nën këtë licencë të përdorin gjithashtu kode me burim të hapur sipas licencës GPL.

Deri në vitin 1990, programe të ndryshme për sistemin operativ të ardhshëm shkruheshin brenda kornizës së GNU-së (jo vetëm nga Stallman), por ky OS nuk kishte kernelin e vet. Kerneli u mor vetëm në vitin 1990, ishte një projekt i quajtur GNU Hurd, por "nuk u qëllua", versioni i tij i fundit u lëshua në 2009. Por "shkarkoi" Linux, të cilit më në fund iu afruam.

Dhe pastaj djali finlandez Linus Torvalds hyn në veprim. Ndërsa studionte në Universitetin e Helsinkit, Linus kishte kurse në gjuhën C dhe sistemin UNIX, në pritje të kësaj lënde, ai bleu vetë librin Tanenbaum që përshkruante Minix. Për më tepër, u përshkrua, vetë Minix duhej të blihej veçmas në 16 disqe, dhe më pas kushtoi 169 dollarë (oh, Gorbushka jonë atëherë nuk ekzistonte në Finlandë, por çfarë mund të bëni, egërsira 🙂). Për më tepër, Torvalds duhej të blinte me kredi për 3500 dollarë kompjuterin me procesorin 80386, sepse para kësaj ai kishte vetëm një kompjuter të vjetër në procesorin 68008, në të cilin Minix nuk mund të funksiononte (për fat, kur ai kishte bërë tashmë versionin e parë i Linux-it, përdorues mirënjohës hynë dhe shlyen kredinë e tij për kompjuterin).

Linus Torvalds

Përkundër faktit se Torvalds në përgjithësi i pëlqente Minix, por gradualisht ai filloi të kuptonte se cilat ishin kufizimet dhe disavantazhet e tij. Ai ishte veçanërisht i mërzitur nga programi i emulimit të terminalit që erdhi me sistemin operativ. Si rezultat, ai vendosi të shkruajë emulatorin e tij të terminalit, dhe në të njëjtën kohë të kuptojë funksionimin e procesorit 386. Torvalds e shkroi emulatorin në një nivel të ulët, domethënë, ai filloi me ngarkuesin BIOS, gradualisht emulatori fitoi veçori të reja, më pas, për të shkarkuar skedarë, Linus duhej të shkruante një disketë dhe drejtues të sistemit të skedarëve, dhe ne shkojmë . Kështu u shfaq sistemi operativ Linux (në atë kohë nuk kishte ende asnjë emër).

Kur sistemi operativ filloi pak a shumë të shfaqej, programi i parë që Linus ekzekutoi në të ishte bash. Do të ishte edhe më e saktë të thuhej se ai ndryshoi sistemin e tij operativ në mënyrë që bash të mund të funksiononte më në fund. Pas kësaj, ai filloi gradualisht të nisë programe të tjera nën sistemin e tij operativ. Dhe sistemi operativ nuk supozohej të quhej fare Linux. Këtu është një citim nga autobiografia e Torvalds, e cila u botua me titullin "Just for Fun": "Në brendësi e quajta Linux. Sinqerisht, nuk kam menduar kurrë ta lëshoj atë me emrin Linux, sepse më dukej shumë jo modeste. Çfarë emri përgatita për versionin përfundimtar? mashtrues. (E kuptove? Freaks - fansa - dhe në fund të x nga Unix) ".

Më 25 gusht 1991, mesazhi historik i mëposhtëm u shfaq në konferencën e comp.os.minix: “Përshëndetje të gjithë përdoruesve të minix! Unë jam duke shkruar një sistem operativ (falas) këtu (version amator - nuk do të jetë aq i madh dhe profesional sa gnu) për AT 386 dhe 486. Unë jam duke u marrë me këtë që nga prilli dhe duket se do të jetë gati së shpejti. Më tregoni se çfarë ju pëlqen/nuk ju pëlqen në lidhje me minix, pasi OS im është i ngjashëm me të (ndër të tjera, ai ka - për arsye praktike - të njëjtën paraqitje fizike të sistemit të skedarëve). Deri më tani, unë kam bartur bash (1.08) dhe gcc (1.40) në të, dhe gjithçka duket se funksionon. Kështu që, në muajt e ardhshëm, do të kem diçka që funksionon tashmë dhe do të doja të dija se cilat veçori u duhen shumicës së njerëzve. Të gjitha aplikacionet pranohen, por ekzekutimi nuk është i garantuar :-)"

Ju lutemi vini re se GNU dhe programi gcc janë përmendur tashmë këtu (në atë kohë kjo shkurtim qëndronte për GNU C Compiler). Dhe mbani mend Stallman dhe GNU-në e tij, të cilët filluan zhvillimin e sistemit operativ nga ana tjetër. Më në fund, bashkimi ndodhi. Prandaj, Stallman ofendohet kur sistemi operativ quhet thjesht Linux, dhe jo GNU / Linux, në fund të fundit, Linux është pikërisht kerneli, dhe shumë prej lëkurave janë marrë nga projekti GNU.

Më 17 shtator 1991, Linus Torvalds postoi për herë të parë sistemin e tij operativ në një server publik FTP, i cili në atë kohë kishte versionin 0.01. Që atëherë, i gjithë njerëzimi progresiv e ka festuar këtë ditë si ditëlindjen e Linux-it. Njerëzit veçanërisht të paduruar fillojnë ta festojnë atë më 25 gusht, kur Linus pranoi në konferencë se po shkruante një OS. Pastaj zhvillimi i Linux vazhdoi dhe vetë emri Linux u bë më i fortë, sepse adresa ku ishte vendosur sistemi operativ dukej si ftp.funet.fi/pub/OS/Linux. Fakti është se Ari Lemke, mësuesi që i caktoi Linusit një vend në server, mendoi se Freax nuk dukej shumë i dukshëm dhe ai e quajti drejtorinë "Linux" - si një përzierje e emrit të autorit dhe "x" në fundi i UNIX.

Tuks. Logoja e Linux

Ekziston gjithashtu një pikë e tillë që megjithëse Torvalds shkroi Linux nën ndikimin e Minix, ekziston një ndryshim thelbësor midis Linux dhe Minix për sa i përket programimit. Fakti është se Tanenbaum është një mbështetës i sistemeve operative mikrokernel, domethënë ato kur sistemi operativ ka një kernel të vogël me një numër të caktuar të vogël funksionesh, dhe të gjithë drejtuesit dhe shërbimet e sistemit operativ veprojnë si module të pavarura të veçanta, ndërsa Linux ka një kernel monolit, aty janë përfshirë shumë veçori të sistemit operativ, kështu që nën Linux, nëse keni nevojë për ndonjë veçori të veçantë, mund t'ju duhet të rikompiloni kernelin, duke bërë disa ndryshime atje. Nga njëra anë, arkitektura e mikrokernelit ka përparësi - është besueshmëria dhe thjeshtësia, në të njëjtën kohë, me dizajn të pakujdesshëm të mikrokernelit, kerneli monolit do të funksionojë më shpejt, pasi nuk ka nevojë të shkëmbejë sasi të mëdha të dhënash me të tretën. modulet e partisë. Pas ardhjes së Linux, në 1992, shpërtheu një mosmarrëveshje virtuale midis Torvalds dhe Tanenbaum, si dhe mbështetësve të tyre në konferencën comp.os.minix, mbi të cilën arkitektura është më e mirë - mikrokernel ose monolit. Tanenbaum argumentoi se arkitektura e mikrokernelit ishte e ardhmja dhe Linux ishte i vjetëruar në kohën kur doli. Kanë kaluar gati 20 vjet nga ajo ditë... Meqë ra fjala, GNU Hurd, i cili supozohej të bëhej thelbi i sistemit operativ GNU, u zhvillua gjithashtu si mikrokernel.

Linux celular

Pra, që nga viti 1991, Linux është zhvilluar gradualisht, dhe megjithëse pjesa e Linux nuk është ende e madhe në kompjuterët e përdoruesve të zakonshëm, ai ka qenë prej kohësh i popullarizuar në serverë dhe superkompjuterë, dhe Windows po përpiqet të heqë pjesën e tij në këtë fushë. Përveç kësaj, Linux tani është i pozicionuar mirë në telefona dhe tableta, sepse Android është gjithashtu Linux.

Logoja e Android

Historia e Android filloi me Android Inc, e cila u shfaq në 2003, dhe dukej se ishte e angazhuar në zhvillimin e aplikacioneve celulare (zhvillimet specifike të kësaj kompanie në vitet e para të ekzistencës së saj ende nuk janë reklamuar veçanërisht). Por më pak se dy vjet më vonë, Android Inc merret nga Google. Nuk ishte e mundur të gjendej ndonjë detaj zyrtar se çfarë po bënin saktësisht zhvilluesit e Android Inc para marrjes së kontrollit, megjithëse tashmë në vitin 2005, pasi u ble nga Google, u përfol se ata tashmë po zhvillonin një sistem të ri operativ për telefonat. Sidoqoftë, lëshimi i parë i Android u zhvillua më 22 tetor 2008, pas së cilës versionet e reja filluan të lëshoheshin rregullisht. Një nga veçoritë e zhvillimit të Android mund të quhet fakti që ky sistem filloi të sulmohej për gjoja patenta të shkelura, dhe zbatimi i Java nuk është i qartë atje nga pikëpamja ligjore, por le të mos hyjmë në këto jo-teknike. grindjet.

Por Android nuk është i vetmi përfaqësues celular i Linux-it, përveç tij ekziston edhe sistemi operativ MeeGo. Nëse pas Android ka një korporatë kaq të fuqishme si Google, atëherë MeeGo nuk ka një administrues të fortë të besuar, ai është zhvilluar nga komuniteti nën kujdesin e The Linux Foundation, i cili mbështetet nga kompani të tilla si Intel, Nokia, AMD, Novell, ASUS, Acer, MSI dhe të tjerë. Për momentin, ndihma kryesore vjen nga Intel, gjë që nuk është për t'u habitur, pasi vetë projekti MeeGo u rrit nga projekti Moblin, i cili u iniciua nga Intel. Moblin është një shpërndarje Linux që ishte menduar të funksiononte në pajisje portative të mundësuar nga procesori Intel Atom. Le të përmendim një Linux tjetër celular - Openmoko. Linux po përpiqet me shpejtësi të fitojë një terren në telefonat dhe tabletët, Google e ka marrë seriozisht Android-in, perspektivat për celularët e tjerë Versionet Linux ndërsa me mjegull.

Siç mund ta shihni, për momentin Linux mund të funksionojë në shumë sisteme të kontrolluara nga procesorë të ndryshëm, megjithatë, në fillim të viteve 1990, Torvalds nuk besonte se Linux mund të transferohej në diku tjetër përveç procesorit të 386-të.

MacOS X

Tani le të kalojmë në një sistem tjetër operativ që është gjithashtu i pajtueshëm me UNIX - Mac OS X. Versionet e para të Mac OS, deri në atë të 9-të, nuk ishin të bazuara në UNIX, kështu që ne nuk do të ndalemi në to. Më interesantja për ne filloi pas dëbimit të Steve Jobs nga Apple në 1985, pas së cilës ai themeloi kompaninë NeXT, e cila zhvilloi kompjuterë dhe softuer për ta. NeXT mori programuesin Avetis Tevanyan, i cili më parë kishte zhvilluar mikrokernelin Mach për një sistem operativ të pajtueshëm me UNIX që po zhvillohej në Universitetin Carnegie Mellon. Kerneli Mach do të zëvendësonte kernelin BSD UNIX.

Logoja e kompanisë NeXT

Avetis Tevanian ishte udhëheqësi i një ekipi që zhvillon një sistem të ri operativ të pajtueshëm me UNIX të quajtur NeXTSTEP. Jo për të rishpikur rrotën, NeXTSTEP u bazua në të njëjtën bërthamë Mach. Për sa i përket programimit, NeXTSTEP, ndryshe nga shumë sisteme të tjera operative, ishte i orientuar nga objekti, një rol të madh në të luajti gjuha e programimit Objective-C, e cila tani përdoret gjerësisht në Mac OS X. U lëshua versioni i parë i NeXTSTEP në vitin 1989. Përkundër faktit se NeXTSTEP fillimisht ishte projektuar për procesorët Motorola 68000, por në fillim të viteve 1990, sistemi operativ u transferua në procesorët 80386 dhe 80486. Gjërat nuk po shkonin mirë për NeXT, dhe në 1996 Kompania Apple sugjeroi që Jobs të blinte NeXT në mënyrë që të përdorte NeXTSTEP në vend të Mac OS. Këtu mund të flasim edhe për rivalitetin midis sistemeve operative NeXTSTEP dhe BeOS, i cili përfundoi me fitoren e NeXTSTEP, por nuk do ta zgjasim historinë tashmë të gjatë, përveç kësaj, BeOS nuk ka lidhje me UNIX në asnjë mënyrë, kështu që për momentin nuk na intereson, megjithëse në vetvete, ky sistem operativ ishte shumë interesant dhe është për të ardhur keq që zhvillimi i tij u ndërpre.

Një vit më vonë, kur Jobs u kthye në Apple, ai vazhdoi politikën e përshtatjes së NeXTSTEP për kompjuterët Apple dhe disa vite më vonë ky sistem operativ u transferua në procesorët PowerPC dhe Intel. Kështu, versioni i serverit të Mac OS X (Mac OS X Server 1.0) u lëshua në vitin 1999, dhe në 2001 u lëshua sistemi operativ për përdoruesit fundorë, Mac OS X (10.0).

Më vonë, bazuar në Mac OS X, u zhvillua një sistem operativ për telefonat iPhone, e cila u quajt Apple iOS. Versioni i parë i iOS u lëshua në 2007. iPad gjithashtu funksionon në të njëjtin sistem operativ.

konkluzioni

Pas të gjitha sa më sipër, mund të keni një pyetje, çfarë lloj sistemi operativ mund të konsiderohet UNIX? Nuk ka një përgjigje të qartë për këtë. Nga pikëpamja formale, ekziston një specifikim i vetëm UNIX - një standard që një sistem operativ duhet të plotësojë në mënyrë që të quhet UNIX. Mos e ngatërroni me standardin POSIX, i cili mund të përmbushet nga një sistem operativ jo i ngjashëm me UNIX. Nga rruga, emri POSIX u propozua nga i njëjti Richard Stallman, dhe zyrtarisht standardi POSIX ka numrin ISO / IEC 9945. Marrja e një specifikimi të vetëm është një biznes i shtrenjtë dhe kërkon kohë, kështu që jo shumë sisteme operative lidhen me të. . Sistemet operative që kanë marrë këtë certifikatë përfshijnë Mac OS X, Solaris, SCO dhe disa sisteme të tjera operative më pak të njohura. Kjo nuk përfshin Linux ose *BSD, por askush nuk dyshon "Unixness" e tyre. Prandaj, për shembull, programuesi dhe shkrimtari Eric Raymond propozoi dy shenja të tjera për të përcaktuar nëse ky apo ai sistem operativ është i ngjashëm me UNIX. E para nga këto veçori është "mospërputhja" e kodit burimor nga UNIX origjinal i zhvilluar në AT&T dhe Bell Labs. Kjo përfshin sistemet BSD. Shenja e dytë është "UNIX në funksionalitet". Kjo përfshin sistemet operative që sillen afër asaj që përshkruhet në specifikimin UNIX, por nuk kanë marrë një certifikatë zyrtare dhe, për më tepër, nuk janë të lidhura në asnjë mënyrë me burimet e UNIX origjinal. Kjo përfshin Linux, Minix, QNX.

Mbi këtë ne, ndoshta, do të ndalemi, përndryshe doli dhe kështu ka shumë letra. Ky rishikim mbuloi kryesisht historinë e shfaqjes së sistemeve operative më të famshme - variacionet e BSD, Linux, Mac OS X, Solaris, disa UNIX të tjerë, si QNX, Plan 9, Plan B dhe disa të tjerë, u lanë pas. Kush e di, ndoshta në të ardhmen do t'i kujtojmë përsëri.

MINISTRIA E ARSIMIT DHE SHKENCËS SË RUSE

FEDERACIONI

AGJENCIA FEDERALE PËR ARSIM

INSTITUCIONI ARSIMOR SHTETËROR

ARSIMI I LARTË PROFESIONAL

Universiteti Shtetëror i Inxhinierisë së Radios Taganrog

Disiplina "Informatikë"

"Sistemi operativ UNIX"

Plotësuar nga: Orda-Zhigulina D.V., gr. E-25

Kontrolluar: Vishnevetsky V.Yu.

Taganrog 2006


Prezantimi

Çfarë është Unix 3

Ku mund të merrni Unix 7 falas

Pjesa kryesore. (Përshkrimi i Unix)

1. Konceptet bazë të Unix 8

2. Sistemi i skedarëve 9

2.1 Llojet e skedarëve 9

3. Përkthyesi i komandës 11

4. Kerneli UNIX 12

4.1 Organizimi i përgjithshëm i kernelit tradicional UNIX 13

4.2 Funksionet kryesore të kernelit 14

4.3 Parimet e ndërveprimit me thelbin 15

4.4 Parimet e trajtimit të ndërprerjeve 17

5. Kontrolli i hyrjes/daljes 18

5.1 Parimet e ruajtjes së sistemit I/O 19

5. 2 Thirrjet e Sistemit për Kontrollin I/O 21

6. Ndërfaqet dhe pikat hyrëse të drejtuesve 23

6.1 Blloko drejtuesit 23

6.2 Drejtuesit e karaktereve 24

6. 3 Drejtues të transmetimit 25

7. Komandat dhe shërbimet 25

7. 1 Organizim ekipor në UNIX OS 26

7.2 Ridrejtimi I/O dhe tubacionet 26

7. 3 Komanda të integruara, bibliotekë dhe përdorues 26

7.4 Programimi i gjuhës së komandës 27

8. Mjetet GUI 27

8.1 ID-të e përdoruesve dhe grupet e përdoruesve 30

8.2 Mbrojtja e skedarit 32

8.3 Sisteme operative premtuese që mbështesin mjedisin UNIX OS 33

konkluzioni

Dallimet kryesore midis Unix dhe OS 36 të tjerë

Aplikimet e Unix 37


Prezantimi

Çfarë është Unix

Termi Unix dhe UNIX jo mjaft ekuivalent përdoren me kuptime të ndryshme. Le të fillojmë me termin e dytë, si më të thjeshtë. Me pak fjalë, UNIX (në atë formë) është një markë e regjistruar tregtare e zotëruar fillimisht nga AT&T Corporation, e cila ka ndryshuar duart gjatë shumë viteve dhe tani është pronë e një organizate të quajtur Open Group. E drejta për të përdorur një emër UNIX arrihet me një lloj "kontrolli për morra" - kalimi i testeve të përputhshmërisë me specifikimet e një OS të caktuar referencë (Single Unix Standard - i cili në këtë rast mund të përkthehet si Standardi i Vetëm në Unix). Kjo procedurë nuk është vetëm e ndërlikuar, por edhe shumë e kushtueshme, dhe për këtë arsye vetëm disa nga sistemet aktuale operative i janë nënshtruar asaj, dhe të gjitha ato janë pronësore, domethënë janë pronë e korporatave të caktuara.

Ndër korporatat që kanë fituar të drejtën e emrit UNIX, pastaj zhvilluesit / testuesit dhe gjaku (më saktë, dollari) i pronarëve, mund të përmendim si më poshtë:

Dielli me SunOS-in e tij (i njohur më mirë në botë si Solaris);

IBM, e cila zhvilloi sistemin AIX;

Hewlett-Packard është pronar i sistemit HP-UX;

IRIX është sistemi operativ i SGI.

Për më tepër, emri i duhur UNIX vlen për sistemet:

True64 Unix, i zhvilluar nga DEC, me likuidimin e të cilit i kaloi Compaq, dhe tashmë bashkë me këtë të fundit është bërë pronë e të njëjtit Hewlett-Packard;

UnixWare është në pronësi të SCO (një produkt i bashkimit të Caldera dhe Santa Cruz Operation).

Duke qenë të pronarit, të gjitha këto sisteme shiten për shumë para (madje edhe sipas standardeve amerikane). Megjithatë, kjo nuk është pengesa kryesore për përhapjen e vetë UNIX-it.Sepse tipari i tyre i përbashkët është i detyrueshëm për disa platforma harduerike: AIX funksionon në serverët IBM dhe stacionet e punës me procesorë të energjisë, HP-UX - në HP-PA-në e vet (Arkitektura precize ) makineritë , IRIX - në stacione grafike nga SGI, që mbajnë procesorë MIPS, True64 Unix - projektuar për procesorët Alpha (për fat të keq, Bose i vdekur) Vetëm UnixWare është i fokusuar në platformën "demokratike" të PC, dhe Solaris ekziston në versione për dy arkitektura - e tij, Sparc, dhe ende i njëjti PC, i cili, megjithatë, nuk kontribuoi shumë në përhapjen e tyre - për shkak të mbështetjes relativisht të dobët për periferikët e rinj të PC.

Kështu, UNIX është kryesisht një koncept ligjor. Por termi Unix ka një interpretim teknologjik. Ky është emri i zakonshëm i përdorur nga industria e IT-së për të gjithë familjen e sistemeve operative, ose rrjedh nga kompania "origjinale" UNIX AT & T, ose duke riprodhuar funksionet e saj "nga e para", duke përfshirë sistemet operative falas si Linux, FreeBSD dhe BSD-të e tjera, asnjë verifikim për t'iu përshtatur standardit të vetëm Unix nuk është ekspozuar kurrë. Kjo është arsyeja pse ato shpesh quhen të ngjashme me Unix.

Përdoret gjerësisht edhe termi "sisteme në përputhje me POSIX", i cili është i afërt në kuptim, i cili bashkon një familje sistemesh operative që korrespondojnë me grupin e standardeve me të njëjtin emër. Vetë standardet POSIX (Portable Operation System Interface bazuar në uniX) u zhvilluan në bazë të praktikave të miratuara në sistemet Unix, dhe për këtë arsye këto të fundit janë të gjitha, sipas definicionit, në përputhje me POSIX. Megjithatë, këto nuk janë plotësisht sinonime: përputhshmëria me standardet POSIX pretendohet nga sistemet operative që janë të lidhura vetëm në mënyrë indirekte me Unix (QNX, Syllable), ose nuk kanë lidhje fare (deri në Windows NT/2000/XP).

Për të sqaruar çështjen e marrëdhënies midis UNIX, Unix dhe POSIX, duhet të thellohemi pak në histori. Në fakt, historia e kësaj çështjeje diskutohet në detaje në kapitullin përkatës të librit "Unix falas: Linux, FreeBSD dhe të tjerët" (së shpejti nga BHV-Petersburg) dhe në artikujt mbi historinë e sistemeve Linux dhe BSD.

Sistemi operativ Unix (më saktë, versioni i tij i parë) u zhvillua nga punonjësit e Bell Labs (një ndarje e AT & T) në 1969-1971. Autorët e tij të parë - Ken Thompson dhe Dennis Ritchie - e bënë atë vetëm për qëllimet e tyre, në veçanti, në mënyrë që të mund të argëtoheshin me lojën e tyre të preferuar StarTravel. Dhe për një sërë arsyesh ligjore, vetë kompania nuk mund ta përdorte atë si produkt komercial. Sidoqoftë, aplikimi praktik i Unix-it u gjet mjaft shpejt. Së pari, ai u përdor në Bell Labs për të përgatitur lloje të ndryshme të dokumentacionit teknik (përfshirë patentën). Dhe së dyti, sistemi i komunikimit UUCP (Unix to Unix Copy Program) u bazua në Unix.

Një zonë tjetër ku Unix u përdor në vitet '70 dhe në fillim të viteve '80 të shekullit të kaluar doli të ishte mjaft e pazakontë. Gjegjësisht, në tekstet burimore është shpërndarë nëpër institucionet shkencore që kryejnë punë në fushën e Shkencave Kompjuterike. Qëllimi i një shpërndarjeje të tillë (nuk ishte plotësisht i lirë në kuptimin aktual, por në fakt doli të ishte shumë liberal) ishte: edukimi dhe kërkimi në fushën e njohurive të mësipërme.

Më i famshmi është sistemi BSD Unix, i krijuar në Universitetin e Berkeley, Kaliforni. E cila, duke u çliruar gradualisht nga kodi i pronarit të Unix-it origjinal, përfundimisht, pas ngritjeve dhe uljeve dramatike (të përshkruara në detaje këtu), i dhanë shkas sistemeve moderne falas BSD - FreeBSD, NetBSD dhe të tjerë.

Një nga rezultatet më të rëndësishme të punës së hakerëve të universitetit ishte (1983) prezantimi i mbështetjes për protokollin TCP / IP në Unix, i cili bazohej në rrjetin e atëhershëm ARPANET (dhe që u bë themeli i Internetit modern). Ky ishte një parakusht për dominimin e Unix-it në të gjitha fushat që lidhen me World Wide Web. Dhe doli të ishte tjetra aplikim praktik kjo familje e sistemeve operative - deri në atë kohë nuk ishte më e nevojshme të flitej për një Unix të vetëm. Për shkak se ajo, siç u përmend më herët, ndau dy degët e saj - me origjinë nga UNIX origjinal (me kalimin e kohës, mori emrin System V) dhe sistemi me origjinë Berkeley. Nga ana tjetër, Sistemi V formoi bazën e atyre UNIX-ve të ndryshëm të pronarit që, në fakt, kishin të drejtën ligjore për të kërkuar këtë emër.

Rrethana e fundit - degëzimi i sistemit operativ dikur të vetëm në disa linja që po humbasin gradualisht përputhshmërinë - ra në konflikt me një nga themelet e ideologjisë Unix: transportueshmërinë e sistemit midis platformave të ndryshme dhe aplikimet e tij nga një sistem Unix në një tjetër. Çfarë solli në jetë aktivitetet e llojeve të ndryshme të organizatave standarde, të cilat përfunduan në fund me krijimin e grupit të standardeve POSIX, i cili u përmend më herët.

Ishin standardet POSIX në të cilat u mbështet Linus Torvalds, duke krijuar "nga e para" (d.m.th., pa përdorur kodin para-ekzistues) sistemin e tij operativ - Linux. Dhe ajo, pasi zotëroi shpejt dhe me sukses fushat tradicionale të aplikimit të sistemeve Unix (zhvillimi i softuerit, komunikimi, interneti), përfundimisht hapi një të re për ta - platformat e përdoruesve të desktopit. Qëllimi i përgjithshëm. Kjo është ajo që e bëri atë të popullarizuar në mesin e njerëzve - një popullaritet që tejkalon atë të të gjitha sistemeve të tjera Unix të kombinuara, të pronarit dhe të lirë.

Ajo që vijon ka të bëjë me punën në sistemet Unix në kuptimin më të gjerë të fjalës, pa marrë parasysh asnjë lloj markat tregtare dhe çështje të tjera ligjore. Edhe pse shembujt kryesorë që lidhen me metodat e punës do të merren nga fusha e zbatimeve falas të tyre - Linux, në një masë më të vogël FreeBSD, dhe aq më pak - nga sistemet e tjera BSD.

Ku mund të merrni Unix falas?

Baza e të dhënave FreeBSD - www.freebsd.org;

Mund të shkoni në www.sco.com


Pjesa kryesore. (Përshkrimi i Unix)

1. Konceptet bazë të Unix-it

Unix bazohet në dy koncepte themelore: "proces" dhe "skedar". Proceset janë ana dinamike e sistemit, ato janë subjekte; dhe skedarët - statikë, këto janë objektet e proceseve. Pothuajse e gjithë ndërfaqja midis proceseve që ndërveprojnë me kernelin dhe me njëri-tjetrin duket si shkrimi/leximi i skedarëve. Edhe pse duhet të shtoni gjëra të tilla si sinjale, memorie të përbashkët dhe semaforë.

Proceset mund të ndahen përafërsisht në dy lloje - detyra dhe demonë. Një detyrë është një proces që bën punën e tij, duke u përpjekur ta përfundojë atë sa më shpejt të jetë e mundur dhe ta përfundojë atë. Daemon pret për ngjarjet që duhet të përpunojë, përpunon ngjarjet që kanë ndodhur dhe pret përsëri; zakonisht përfundon në rendin e një procesi tjetër, më së shpeshti vritet nga përdoruesi duke dhënë komandën "kill process_number". Në këtë kuptim, rezulton se një detyrë ndërvepruese që përpunon hyrjen e përdoruesit është më shumë si një demon sesa një detyrë.

2. Sistemi i skedarëve

Në Unix-in e vjetër, emrit iu caktuan 14 shkronja, në të rejat ky kufizim u hoq. Në drejtori, përveç emrit të skedarit, ekziston edhe identifikuesi i tij inode - një numër i plotë që përcakton numrin e bllokut. në të cilin janë regjistruar atributet e skedarit Midis tyre: numri i përdoruesit - pronari i skedarit; grupet e numrave Numri i referencave në skedar (shih më poshtë) Data dhe ora e krijimit, modifikimi i fundit dhe qasja e fundit në skedar Atributet e aksesit Atributet e aksesit përmbajnë llojin e skedarit (shih më poshtë), atributet e ndryshimit të të drejtave në fillim (shih më poshtë) dhe të drejtat e aksesit në të për pronarin, shokun e klasës dhe të tjerët për lexim, shkrim dhe ekzekutim. E drejta për të fshirë një skedar përcaktohet nga e drejta për të shkruar në direktorinë e sipërme.

Çdo skedar (por jo një drejtori) mund të njihet me disa emra, por ata duhet të jenë në të njëjtën ndarje. Të gjitha lidhjet në skedar janë të barabarta; skedari fshihet kur të hiqet lidhja e fundit me skedarin. Nëse skedari është i hapur (për lexim dhe/ose shkrim), atëherë numri i lidhjeve në të rritet me një më shumë; kjo është se sa programe që hapin një skedar të përkohshëm e fshijnë atë menjëherë, në mënyrë që nëse prishen, kur sistemi operativ mbyll skedarët e hapur nga procesi, ky skedar i përkohshëm do të fshihet nga sistemi operativ.

Ekziston një veçori tjetër interesante e sistemit të skedarëve: nëse, pas krijimit të skedarit, shkrimi në të nuk ishte në një rresht, por në intervale të mëdha, atëherë nuk ndahet hapësirë ​​në disk për këto intervale. Kështu, vëllimi i përgjithshëm i skedarëve në një ndarje mund të jetë më i madh se vëllimi i ndarjes, dhe kur një skedar i tillë fshihet, lirohet më pak hapësirë ​​sesa madhësia e tij.

2.1 Llojet e skedarëve

Skedarët janë të llojeve të mëposhtme:

skedar i rregullt i aksesit të drejtpërdrejtë;

drejtoria (skedari që përmban emrat dhe identifikuesit e skedarëve të tjerë);

lidhje simbolike (varg me emrin e një skedari tjetër);

pajisje bllokimi (disk ose shirit magnetik);

pajisja serike (terminalet, portat serike dhe paralele; disqet dhe kaseta gjithashtu kanë një ndërfaqe të pajisjes serike)

kanal me emrin.

Skedarët e veçantë të krijuar për të punuar me pajisje zakonisht ndodhen në drejtorinë "/dev". Këtu janë disa prej tyre (në nominimin FreeBSD):

tty* - terminale, duke përfshirë: ttyv - tastierë virtuale;

ttyd - terminali DialIn (zakonisht një port serik);

cuaa - Linja DialOut

ttyp - pseudo-terminal i rrjetit;

tty - terminali me të cilin lidhet detyra;

wd* - hard disqet dhe nënseksionet e tyre, duke përfshirë: wd - hard disk;

wds - ndarja e këtij disku (këtu quhet "fetë");

wds - seksioni i ndarjes;

fd - floppy disk;

rwd*, rfd* - njësoj si wd* dhe fd*, por me akses sekuencial;

Ndonjëherë kërkohet që një program i nisur nga një përdorues të mos ketë të drejtat e përdoruesit që e ka nisur atë, por disa të tjerëve. Në këtë rast, atributi i të drejtave të ndryshimit vendoset në të drejtat e përdoruesit - pronarit të programit. (Si shembull do të jap një program që lexon një skedar me pyetje dhe përgjigje dhe në bazë të asaj që lexon, teston studentin që ka nisur këtë program. Programi duhet të ketë të drejtën të lexojë skedarin me përgjigje, por studenti kush e nisi nuk duhet.) Për shembull, funksionon programi passwd, me të cilin përdoruesi mund të ndryshojë fjalëkalimin e tij. Përdoruesi mund të ekzekutojë programin passwd, ai mund të bëjë ndryshime në bazën e të dhënave të sistemit - por përdoruesi nuk mundet.

Ndryshe nga DOS, i cili emri i plotë skedari duket si "drive: pathname" dhe RISC-OS, në të cilin duket si "-filesystem-drive:$.path.name" (i cili në përgjithësi ka avantazhet e tij), Unix përdor një shënim transparent në formën "/path /emri". Rrënja matet nga ndarja nga e cila është ngarkuar kerneli Unix. Nëse duhet të përdoret një ndarje tjetër (dhe ndarja e nisjes zakonisht përmban vetëm atë që nevojitet për të nisur), përdoret komanda "mount /dev/partitionfile dir". Në të njëjtën kohë, skedarët dhe nëndrejtoritë që ishin më parë në këtë direktori bëhen të paarritshme derisa ndarja të çmontohet (natyrisht, të gjithë njerëzit normal përdorin direktori boshe për montimin e ndarjeve). Vetëm mbikëqyrësi ka të drejtë të montojë dhe çmontojë.

Në fillim, çdo proces mund të presë që të ketë tre skedarë të hapur për të, të cilat ai i njeh si hyrje standarde stdin në përshkruesin 0; output standard stdout në përshkruesin 1; dhe dalje standarde stderr në përshkruesin 2. Kur hyn, kur përdoruesi fut një emër përdoruesi dhe fjalëkalim dhe shell është nisur, të treja drejtohen te /dev/tty; më vonë secila prej tyre mund të ridrejtohet në ndonjë skedar.

3. Përkthyesi i komandës

Unix pothuajse gjithmonë vjen me dy predha, sh (guaskë) dhe csh (një guaskë e ngjashme me C). Përveç tyre, ka edhe bash (Bourne), ksh (Korn) dhe të tjerë. Pa hyrë në detaje, këtu janë parimet e përgjithshme:

Të gjitha komandat përveç ndryshimit të drejtorisë aktuale, vendosjes së variablave të mjedisit (mjedisit) dhe operatorëve programimi i strukturuar- programe të jashtme. Këto programe zakonisht ndodhen në drejtoritë /bin dhe /usr/bin. Programet e administrimit të sistemit - në drejtoritë /sbin dhe /usr/sbin.

Komanda përbëhet nga emri i programit që do të nisë dhe argumentet. Argumentet ndahen nga emri i komandës dhe nga njëri-tjetri me hapësira dhe skeda. Disa karaktere speciale interpretohen nga vetë shell. Karakteret speciale janë " " ` ! $ ^ * ? | & ; (çfarë tjetër?).

Një linja e komandës mund të jepen komanda të shumta. Ekipet mund të ndahen; (ekzekutimi sekuencial i komandës), & (ekzekutimi i njëkohshëm i komandës asinkron), | (ekzekutimi sinkron, stdout i komandës së parë do të futet në stdin të së dytës).

Ju gjithashtu mund të merrni të dhëna standarde nga një skedar duke përfshirë "skedarin" (skedari do të zvogëlohet) ose ">>skedari" (hyrja do të shkruhet në fund të skedarit) si një nga argumentet.

Nëse keni nevojë për informacion për ndonjë komandë, lëshoni komandën "man command_name". Kjo do të shfaqet në ekran përmes programit "më shumë" - shikoni se si ta menaxhoni atë në Unix-in tuaj me komandën `man more`.

4. Kerneli UNIX

Ashtu si çdo sistem tjetër operativ me shumë përdorues që mbron përdoruesit nga njëri-tjetri dhe mbron të dhënat e sistemit nga çdo përdorues i paprivilegjuar, UNIX ka një kernel të sigurt që menaxhon burimet e kompjuterit dhe u ofron përdoruesve një grup shërbimesh bazë.

Komoditeti dhe efikasiteti i versioneve moderne të sistemit operativ UNIX nuk do të thotë që i gjithë sistemi, duke përfshirë kernelin, është projektuar dhe strukturuar në mënyrën më të mirë të mundshme. Sistemi operativ UNIX ka evoluar me kalimin e viteve (është sistemi i parë operativ në histori që vazhdon të fitojë popullaritet në një moshë kaq të pjekur - për më shumë se 25 vjet). Natyrisht, aftësitë e sistemit u rritën dhe, siç ndodh shpesh në sisteme të mëdha, përmirësimet cilësore në strukturën e sistemit operativ UNIX nuk mbajtën ritmin me rritjen e aftësive të tij.

Si rezultat, thelbi i versioneve më moderne komerciale të sistemit operativ UNIX është një monolit i madh, jo shumë i strukturuar. Për këtë arsye, programimi në nivelin e kernelit UNIX vazhdon të jetë një art (përveç teknologjisë së mirëpërcaktuar dhe të kuptueshme për zhvillimin e drejtuesve të pajisjeve të jashtme). Kjo mungesë e prodhueshmërisë në organizimin e kernelit UNIX nuk kënaq shumë. Prandaj dëshira për një riprodhim të plotë të mjedisit UNIX OS me një organizim krejtësisht të ndryshëm të sistemit.

Për shkak të prevalencës më të madhe, kerneli UNIX System V shpesh diskutohet (mund të konsiderohet tradicional).

4.1 Organizimi i përgjithshëm i kernelit tradicional UNIX

Një nga arritjet kryesore të sistemit operativ UNIX është se sistemi ka vetinë e lëvizshmërisë së lartë. Kuptimi i kësaj cilësie është se i gjithë sistemi operativ, duke përfshirë kernelin e tij, është relativisht i lehtë për t'u transferuar në platforma të ndryshme harduerike. Të gjitha pjesët e sistemit, përveç kernelit, janë plotësisht të pavarura nga makina. Këta komponentë janë shkruar mjeshtërisht në gjuhën C, dhe për t'i transferuar ato në një platformë të re (sipas të paktën, në klasën e kompjuterit 32-bit) kërkon vetëm ripërpilimin e kodeve burimore në kodet e kompjuterit të synuar.

Sigurisht, problemet më të mëdha lidhen me kernelin e sistemit, i cili fsheh plotësisht specifikat e kompjuterit të përdorur, por vetë varet nga kjo specifikë. Si rezultat i një ndarjeje të menduar të përbërësve të kernelit të varur nga makina dhe të pavarura nga makina (me sa duket, nga këndvështrimi i zhvilluesve të sistemit operativ, kjo është arritja më e lartë e zhvilluesve të kernelit tradicional UNIX OS), ishte është e mundur të arrihet që pjesa kryesore e kernelit të mos varet nga veçoritë arkitekturore të platformës së synuar, të jetë e shkruar tërësisht në C dhe ka nevojë vetëm për rikompilim për t'u transferuar në një platformë të re.

Megjithatë, një pjesë relativisht e vogël e kernelit është e varur nga makina dhe është e shkruar në një përzierje të C dhe gjuhës së asamblesë së procesorit të synuar. Kur transferoni një sistem në një platformë të re, kjo pjesë e kernelit duhet të rishkruhet duke përdorur gjuhën e asamblesë dhe duke marrë parasysh veçoritë specifike të harduerit të synuar. Pjesët specifike të makinës të kernelit janë të izoluara mirë nga pjesa kryesore e pavarur nga makina dhe me një kuptim të mirë të qëllimit të secilit komponent të varur nga makina, rishkrimi i pjesës specifike të makinës është kryesisht një detyrë teknike (edhe pse kërkon shumë aftësi programuese).

Pjesa specifike e makinës e kernelit tradicional UNIX përfshin komponentët e mëposhtëm:

promovimi dhe inicializimi i sistemit në një nivel të ulët (deri më tani varet nga veçoritë e harduerit);

përpunimi primar i ndërprerjeve të brendshme dhe të jashtme;

menaxhimi i memories (në pjesën që lidhet me veçoritë e mbështetjes së harduerit të memories virtuale);

ndërrimi i kontekstit të procesit midis modaliteteve të përdoruesit dhe kernelit;

objektivi i pjesëve specifike të platformës së drejtuesve të pajisjes.

4.2 Funksionet kryesore të kernelit

Funksionet kryesore të kernelit UNIX OS përfshijnë si më poshtë:

(a) Inicializimi i sistemit - funksioni i fillimit dhe i rrotullimit. Kerneli siguron një mjet bootstrap që ngarkon kernelin e plotë në memorien e kompjuterit dhe nis kernelin.

(b) Menaxhimi i proceseve dhe thread - funksioni i krijimit, përfundimit dhe mbajtjes së gjurmëve të proceseve dhe thread-ve ekzistues ("proceset" që funksionojnë në memorien e përbashkët virtuale). Për shkak se UNIX është një sistem operativ me shumë procese, kerneli siguron ndarjen e kohës së procesorit (ose procesorëve në sistemet me shumë procesorë) dhe burimeve të tjera kompjuterike midis proceseve që ekzekutohen për të dhënë pamjen se proceset në të vërtetë po ekzekutohen paralelisht.

(c) Menaxhimi i memories është një funksion i hartës së memories virtuale të pakufizuar të proceseve në RAM-in fizik të kompjuterit, i cili është i kufizuar në madhësi. Komponenti përkatës i kernelit siguron përdorimin e përbashkët të të njëjtave fusha kujtesë e gjallë procese të shumta duke përdorur memorie të jashtme.

(d) Menaxhimi i skedarëve - një funksion që zbaton abstraksionin e sistemit të skedarëve - hierarkitë e drejtorive dhe skedarëve. Sistemet e skedarëve UNIX mbështesin disa lloje skedarësh. Disa skedarë mund të përmbajnë të dhëna ASCII, të tjerët do të korrespondojnë me pajisje të jashtme. Sistemi i skedarëve ruan skedarët e objekteve, skedarët e ekzekutueshëm, etj. Skedarët zakonisht ruhen në pajisje të jashtme ruajtëse; qasja në to sigurohet me anë të kernelit. Ekzistojnë disa lloje të organizimit të sistemit të skedarëve në botën UNIX. Versionet moderne të sistemit operativ UNIX mbështesin në të njëjtën kohë shumicën e llojeve të sistemeve të skedarëve.

(e) Objektet e komunikimit - një funksion që ofron aftësinë për të shkëmbyer të dhëna midis proceseve që ekzekutohen brenda të njëjtit kompjuter (IPC - Komunikimet ndër-procesore), midis proceseve që ekzekutohen në nyje të ndryshme të një rrjeti lokal ose të gjerë të të dhënave, si dhe midis proceseve dhe drejtuesit e pajisjeve të jashtme.

(f) Ndërfaqja e programimit - një funksion që siguron qasje në aftësitë e kernelit nga ana e proceseve të përdoruesit bazuar në mekanizmin e thirrjeve të sistemit, të rregulluar në formën e një biblioteke funksionesh.

4.3 Parimet e ndërveprimit me thelbin

Në çdo sistem operativ, mbështetet një mekanizëm që lejon programet e përdoruesve të aksesojnë shërbimet e kernelit OS. Në sistemet operative të kompjuterit më të famshëm sovjetik BESM-6, mjetet përkatëse të komunikimit me bërthamën quheshin ekstrakode, në sistemet operative. Sistemet IBM ato quheshin makro të sistemit, e kështu me radhë. Në UNIX, këto pajisje quhen thirrje sistemore.

Emri nuk e ndryshon kuptimin, që është se për të hyrë në funksionet e kernelit OS, përdoren "udhëzime speciale" të procesorit, gjatë ekzekutimit të të cilave ndodh një lloj i veçantë ndërprerje e brendshme e procesorit, duke e transferuar atë në modaliteti i kernelit (në shumicën e OS-ve moderne ky lloj ndërprerjeje quhet trap - trap). Kur përpunon ndërprerje të tilla (dekodim), kerneli i OS njeh se ndërprerja është në të vërtetë një kërkesë për kernel nga programi i përdoruesit për të kryer veprime të caktuara, zgjedh parametrat e thirrjes dhe e përpunon atë, dhe më pas kryen një "kthim nga ndërprerja ", duke rifilluar ekzekutimin normal të programit të përdoruesit.

Është e qartë se mekanizmat specifikë për ngritjen e ndërprerjeve të brendshme të iniciuara nga programi i përdoruesit ndryshojnë në arkitektura të ndryshme harduerike. Meqenëse OS UNIX kërkon të sigurojë një mjedis në të cilin programet e përdoruesve mund të jenë plotësisht të lëvizshëm, kërkohej një shtresë shtesë për të fshehur detajet e mekanizmit të veçantë për ngritjen e ndërprerjeve të brendshme. Ky mekanizëm ofrohet nga e ashtuquajtura biblioteka e thirrjeve të sistemit.

Për përdoruesin, biblioteka e thirrjeve të sistemit është një bibliotekë e rregullt e funksioneve të para-zbatuara të sistemit të programimit C. Kur programoni në C, përdorimi i ndonjë funksioni nga biblioteka e thirrjeve të sistemit nuk është i ndryshëm nga përdorimi i çdo funksioni vendas ose të bibliotekës C. Sidoqoftë, brenda çdo funksioni të një biblioteke të caktuar të thirrjeve të sistemit përmban kod që, në përgjithësi, është specifik për një platformë të caktuar harduerike.

4.4 Parimet e trajtimit të ndërprerjeve

Natyrisht, mekanizmi i përdorur në sistemet operative për trajtimin e ndërprerjeve të brendshme dhe të jashtme varet kryesisht nga lloji i mbështetjes harduerike për trajtimin e ndërprerjeve nga një platformë e veçantë harduerike. Për fat të mirë, deri tani (dhe për mjaft kohë tani) prodhuesit kryesorë të kompjuterave kanë rënë dakord de fakto për mekanizmat bazë të ndërprerjes.

Duke folur jo shumë saktë dhe konkretisht, thelbi i mekanizmit të miratuar sot është që çdo ndërprerje e mundshme e procesorit (qoftë një ndërprerje e brendshme apo e jashtme) korrespondon me një adresë fikse të RAM-it fizik. Në momentin kur procesori lejohet të ndërpresë për shkak të pranisë së një kërkese për ndërprerje të brendshme ose të jashtme, ka një transferim harduerësh të kontrollit në qelizën fizike RAM me adresën përkatëse - zakonisht adresa e kësaj qelize quhet "ndërprerje vektor" (zakonisht, kërkesat për ndërprerje të brendshme, d.m.th. kërkesat që vijnë direkt nga procesori plotësohen menjëherë).

Detyra e sistemit operativ është të vendosë në qelizat përkatëse të RAM-it kodin e programit që siguron përpunimin fillestar të ndërprerjes dhe nis përpunimin e plotë.

Në thelb, UNIX OS i përmbahet qasje e përgjithshme. Në vektorin e ndërprerjes që i përgjigjet ndërprerjes së jashtme, d.m.th. ndërprerja nga ndonjë pajisje e jashtme, përmban komanda që përcaktojnë nivelin e ekzekutimit të procesorit (niveli i ekzekutimit përcakton se cilave ndërprerje të jashtme duhet t'i përgjigjet procesori menjëherë) dhe kalojnë te mbajtësi i plotë i ndërprerjeve në drejtuesin e duhur të pajisjes. Për një ndërprerje të brendshme (për shembull, një ndërprerje e inicuar nga programi i përdoruesit kur faqja e kërkuar e memories virtuale mungon në memorien kryesore, kur ndodh një përjashtim në programin e përdoruesit, etj.) ose një ndërprerje kohëmatësi, vektori i ndërprerjes përmban një kaloni në programin përkatës të kernelit UNIX.

5. Kontrolli I/O

Tradicionalisht, UNIX OS dallon tre lloje të organizimit I/O dhe, në përputhje me rrethanat, tre lloje drejtuesish. Blloku I/O është menduar kryesisht për të punuar me direktori dhe skedarë të rregullt të sistemit të skedarëve, të cilët në nivelin bazë kanë një strukturë blloku. Në nivelin e përdoruesit, tani është e mundur të punohet me skedarë duke i hartuar drejtpërdrejt ato në segmentet e memories virtuale. Kjo veçori konsiderohet si niveli më i lartë i bllokut I/O. Në nivelin më të ulët, blloku I/O mbështetet nga drejtuesit e bllokut. Blloku I/O mbështetet gjithashtu nga buferimi i sistemit.

Hyrja/dalja e karaktereve përdoret për shkëmbime të drejtpërdrejta (pa buffering) ndërmjet hapësirës së adresave të përdoruesit dhe pajisjes përkatëse. Mbështetja e kernelit e përbashkët për të gjithë drejtuesit e karaktereve është të sigurojë funksione për transferimin e të dhënave midis hapësirave të adresave të përdoruesit dhe kernelit.

Së fundi, stream I/O është i ngjashëm me karakterin I/O, por për shkak të mundësisë së përfshirjes së moduleve të përpunimit të ndërmjetëm në stream, ai ka shumë më tepër fleksibilitet.

5.1 Parimet e Buferimit të Sistemit I/O

Mënyra tradicionale për të reduktuar shpenzimet e përgjithshme gjatë kryerjes së shkëmbimeve me pajisje memorie të jashtme që kanë një strukturë blloku është buferimi i bllokut I/O. Kjo do të thotë që çdo bllok i një pajisjeje memorie të jashtme lexohet para së gjithash në një bufer të zonës kryesore të memories, e quajtur cache e sistemit në UNIX OS, dhe prej andej kopjohet plotësisht ose pjesërisht (në varësi të llojit të shkëmbimit). hapësirën përkatëse të përdoruesit.

Parimet e organizimit të mekanizmit tradicional të tamponimit janë, së pari, që një kopje e përmbajtjes së bllokut të mbahet në buferin e sistemit derisa të bëhet e nevojshme zëvendësimi i tij për shkak të mungesës së buferëve (një variacion i algoritmit LRU përdoret për të organizoni politikën e zëvendësimit). Së dyti, kur shkruani ndonjë bllok të një pajisjeje memorie të jashtme, në të vërtetë kryhet vetëm një përditësim (ose formimi dhe mbushja) e tamponit të memories. Shkëmbimi aktual me pajisjen bëhet ose duke hapur bufferin për shkak të zëvendësimit të përmbajtjes së tij, ose duke lëshuar një thirrje të veçantë të sistemit sinkronizues (ose fsync), i mbështetur posaçërisht për shtyrjen me forcë të buferëve të përditësuar të cache-ve në memorien e jashtme.

Kjo skemë tradicionale e buferimit ra në konflikt me mjetet e menaxhimit të kujtesës virtuale të zhvilluara në versionet moderne të sistemit operativ UNIX, dhe në veçanti me mekanizmin për hartimin e skedarëve në segmentet e memories virtuale. Prandaj, System V Release 4 prezantoi një skemë të re buffering, e cila aktualisht përdoret paralelisht me skemën e vjetër.

Thelbi i skemës së re është që në nivelin e kernelit, mekanizmi për hartëzimin e skedarëve në segmentet e memories virtuale riprodhohet në të vërtetë. Së pari, mbani mend se kerneli UNIX me të vërtetë funksionon në memorien e tij virtuale. Kjo memorie ka një strukturë më komplekse, por në thelb të njëjtë me kujtesën virtuale të përdoruesit. Me fjalë të tjera, memoria virtuale e kernelit është faqe segment, dhe, së bashku me kujtesën virtuale të proceseve të përdoruesit, mbështetet nga një nënsistem i përbashkët i menaxhimit të memories virtuale. Së dyti, rrjedh se pothuajse çdo funksion i ofruar nga kerneli për përdoruesit mund të ofrohet nga disa komponentë të kernelit për komponentët e tjerë të kernelit. Në veçanti, kjo vlen edhe për aftësinë për të hartuar skedarët në segmentet e memories virtuale.

Skema e re e bufferimit në kernelin UNIX bazohet kryesisht në faktin se nuk mund të bëni pothuajse asgjë të veçantë për të organizuar buffering. Kur një nga përpunuesit e përdoruesit hap një skedar që nuk është hapur deri atëherë, kerneli formon një segment të ri dhe lidh skedarin që hapet me këtë segment. Pas kësaj (pavarësisht nëse procesi i përdoruesit do të funksionojë me skedarin në modalitetin tradicional duke përdorur thirrjet e sistemit të leximit dhe shkrimit ose do ta lidhë skedarin me segmentin e tij të memories virtuale), në nivelin e kernelit, puna do të bëhet me segmentin e kernelit. të cilit i është bashkangjitur skedari në bërthamat e nivelit. Ideja kryesore e qasjes së re është që hendeku midis menaxhimit të memories virtuale dhe buferimit në të gjithë sistemin është eliminuar (kjo duhet të ishte bërë shumë kohë më parë, pasi është e qartë se buferimi kryesor në sistemin operativ duhet të kryhet nga komponenti i menaxhimit të memories virtuale).

Pse të mos braktisni mekanizmin e vjetër të tamponimit? Puna është se skema e re supozon praninë e disa adresimeve të vazhdueshme brenda objektit të memories së jashtme (duhet të ketë një izomorfizëm midis objekteve të hartësuar dhe të hartuar). Sidoqoftë, kur organizoni sisteme skedarësh, UNIX OS është mjaft i vështirë për të ndarë memorien e jashtme, gjë që është veçanërisht e vërtetë për i-nodes. Prandaj, disa blloqe të memories së jashtme duhet të konsiderohen të izoluara dhe për ta rezulton të jetë më fitimprurëse përdorimi i skemës së vjetër të tamponimit (megjithëse mund të jetë e mundur që në versionet e nesërme të UNIX të kalohet plotësisht në një skemë të re të unifikuar).

5. 2 Thirrjet e sistemit për kontrollin I/O

Për të aksesuar (d.m.th., për të qenë në gjendje të kryejë operacione të mëvonshme I/O) në çdo lloj skedari (përfshirë skedarët specialë), një proces përdoruesi duhet së pari të lidhet me skedarin duke përdorur një nga thirrjet e sistemit të hapur, krijim, dup ose tub.

Sekuenca e veprimeve të thirrjes së sistemit të hapur (emri i rrugës, modaliteti) është si më poshtë:

analizohet konsistenca e parametrave të hyrjes (kryesisht të lidhura me flamujt e mënyrës së hyrjes në skedar);

caktoni ose gjeni hapësirën për një përshkrues skedari në zonën e të dhënave të procesit të sistemit (u-zona);

në zonën e gjerë të sistemit, hapësira ekzistuese ndahet ose vendoset për të akomoduar përshkruesin e skedarit të sistemit (struktura e skedarit);

arkivi i sistemit të skedarëve kërkohet për një objekt të quajtur "pategname" dhe gjenerohet ose gjendet një përshkrues i skedarit të nivelit të sistemit të skedarëve (vnode në termat UNIX V System 4);

vnyja lidhet me strukturën e skedarit të formuar më parë.

Thirrjet e sistemit të hapur dhe të krijuar janë (pothuajse) ekuivalente funksionalisht. Çdo skedar ekzistues mund të hapet me thirrjen e krijimit të sistemit dhe çdo skedar i ri mund të krijohet me thirrjen e sistemit të hapur. Megjithatë, në lidhje me thirrjen e krijimit të sistemit, është e rëndësishme të theksohet se, në përdorimin e saj të natyrshëm (për të krijuar një skedar), kjo thirrje sistemi krijon një hyrje të re në direktorinë përkatëse (sipas emrit të rrugës së dhënë), dhe gjithashtu krijon dhe inicializon në mënyrë të përshtatshme një i-node të ri.

Së fundi, thirrja e sistemit dup (duplicate - copy) çon në formimin e një përshkruesi të ri për një skedar tashmë të hapur. Kjo thirrje e sistemit specifik për UNIX është për qëllimin e vetëm të ridrejtimit I/O.) Ekzekutimi i tij konsiston në krijimin e një përshkruesi të ri të skedarit të hapur në rajonin u të hapësirës së sistemit të procesit të përdoruesit, që përmban përshkruesin e skedarit të sapoformuar (numrin e plotë), por duke iu referuar strukturës tashmë ekzistuese të skedarit në të gjithë sistemin dhe që përmban të njëjtat shenja dhe flamuj që korrespondojnë me skedarin e hapur të mostrës.

Thirrje të tjera të rëndësishme të sistemit janë thirrjet e sistemit të leximit dhe shkrimit. Thirrja e sistemit të leximit ekzekutohet si më poshtë:

në tabelën e skedarëve në të gjithë sistemin, gjendet përshkruesi i skedarit të specifikuar dhe përcaktohet nëse thirrja nga ky proces në dosjen e dhënë në modalitetin e specifikuar;

për një kohë (të shkurtër), një bllokim sinkronizimi është vendosur në vnyjen e këtij skedari (përmbajtja e përshkruesit nuk duhet të ndryshojë në momentet kritike të operacionit të leximit);

leximi aktual kryhet duke përdorur mekanizmin e vjetër ose të ri të buferimit, pas së cilës të dhënat kopjohen për t'u bërë të disponueshme në hapësirën e adresave të përdoruesit.

Operacioni i shkrimit funksionon në të njëjtën mënyrë, por ndryshon përmbajtjen e buffer-pool-it.

Thirrja e mbylljes së sistemit bën që drejtuesi të ndërpresë lidhjen me procesin përkatës të përdoruesit dhe (në rastin e mbylljes së pajisjes më të fundit) vendos flamurin "pa shofer" në të gjithë sistemin.

Më në fund, një thirrje tjetër "speciale" e sistemit ioctl mbështetet për skedarë të veçantë. Kjo është thirrja e vetme e sistemit që ofrohet për skedarë të veçantë dhe nuk ofrohet për lloje të tjera skedarësh. Në fakt, thirrja e sistemit ioctl ju lejon të zgjeroni në mënyrë arbitrare ndërfaqen e çdo drejtuesi. Parametrat ioctl përfshijnë një kod optik dhe një tregues në një zonë të kujtesës së procesit të përdoruesit. I gjithë interpretimi i kodit optik dhe parametrave specifikë të lidhur trajtohen nga drejtuesi.

Natyrisht, meqenëse drejtuesit janë krijuar kryesisht për të kontrolluar pajisjet e jashtme, kodi i drejtuesit duhet të përmbajë mjetet e duhura për trajtimin e ndërprerjeve nga pajisja. Thirrja për mbajtësin individual të ndërprerjeve në drejtuesin vjen nga kerneli i sistemit operativ. Në mënyrë të ngjashme, një drejtues mund të deklarojë një hyrje "timeout" që kerneli i qaset kur koha e urdhëruar më parë nga drejtuesi kalon (një kontroll i tillë i kohës është i nevojshëm kur menaxhohen pajisje më pak inteligjente).

Skema e përgjithshme e organizimit të ndërfaqes së drejtuesve është paraqitur në Figurën 3.5. Siç tregon kjo figurë, për sa i përket ndërfaqeve dhe menaxhimit në të gjithë sistemin, ekzistojnë dy lloje drejtuesish - karakteri dhe blloku. Nga pikëpamja e organizimit të brendshëm, dallohet një lloj tjetër drejtuesish - drejtuesit e rrjedhës. Sidoqoftë, për sa i përket ndërfaqes së tyre të jashtme, drejtuesit e transmetimit nuk ndryshojnë nga drejtuesit e karaktereve.

6. Ndërfaqet dhe pikat hyrëse të drejtuesve

6.1 Blloko drejtuesit

Drejtuesit e bllokut janë krijuar për t'i shërbyer pajisjeve të jashtme me strukturë blloku (disqe magnetikë, kaseta, etj.) dhe ndryshojnë nga të tjerët në atë që zhvillohen dhe ekzekutohen duke përdorur sistemin buffering. Me fjalë të tjera, drejtues të tillë gjithmonë punojnë përmes grupit të tamponit të sistemit. Siç mund ta shihni në Figurën 3.5, çdo akses leximi ose shkrimi në një drejtues blloku kalon gjithmonë përmes parapërpunimit, i cili konsiston në përpjekjen për të gjetur një kopje të bllokut të dëshiruar në grupin buffer.

Nëse një kopje e bllokut të kërkuar nuk është në grupin e bufferit, ose nëse për ndonjë arsye është e nevojshme të zëvendësohet përmbajtja e një bufferi të përditësuar, kerneli UNIX thërret procedurën e strategjisë së drejtuesit të bllokut përkatës. Strategjia siguron një ndërfaqe standarde midis kernelit dhe drejtuesit. Me përdorimin e nënprogrameve të bibliotekës të destinuara për shkrimin e drejtuesve, procedura e strategjisë mund të organizojë radhë shkëmbimesh me pajisjen, për shembull, për të optimizuar lëvizjen e kokave magnetike në disk. Të gjitha shkëmbimet e kryera nga drejtuesi i bllokut kryhen me memorie buffer. Rishkrimi i informacionit të nevojshëm në kujtesën e procesit përkatës të përdoruesit kryhet nga programet e kernelit që menaxhojnë buferët

6.2 Drejtuesit e karaktereve

Drejtuesit e karaktereve janë krijuar kryesisht për të shërbyer pajisje që komunikojnë vargje karakteresh karakter pas karakteri ose me gjatësi të ndryshueshme. Një shembull tipik i një pajisjeje me karakter është një printer i thjeshtë që pranon një karakter për shkëmbim.

Drejtuesit e karaktereve nuk përdorin buferimin e sistemit. Ata kopjojnë drejtpërdrejt të dhënat nga memoria e procesit të përdoruesit për operacionet e shkrimit, ose në kujtesën e procesit të përdoruesit për operacionet e leximit, duke përdorur buferët e tyre.

Duhet të theksohet se është e mundur të sigurohet një ndërfaqe karakteresh për një pajisje blloku. Në këtë rast, drejtuesi i bllokut përdor veçoritë shtesë të procedurës së strategjisë, e cila lejon që shkëmbimi të kryhet pa përdorimin e tamponimit të sistemit. Për një drejtues që ka ndërfaqe si bllok ashtu edhe karakter, krijohen dy skedarë të veçantë në sistemin e skedarëve, blloku dhe karakteri. Me çdo telefonatë, shoferi merr informacion në lidhje me mënyrën në të cilën përdoret.

6. 3 Drejtues Stream

Qëllimi kryesor i mekanizmit të transmetimit është të rrisë nivelin e modularitetit dhe fleksibilitetit të drejtuesve me logjikë komplekse të brendshme (kjo vlen më së shumti për drejtuesit që zbatojnë protokolle të avancuara të rrjetit). Specifikimi i drejtuesve të tillë është se shumica e kodit të programit nuk varet nga veçoritë e pajisjes harduerike. Për më tepër, shpesh është e dobishme të kombinohen pjesë të kodit të programit në mënyra të ndryshme.

E gjithë kjo çoi në shfaqjen e një arkitekture transmetimi të drejtuesve, të cilët janë një tubacion i dyanshëm i moduleve të përpunimit. Në fillim të tubacionit (më afër procesit të përdoruesit) është kreu i rrjedhës, i cili aksesohet kryesisht nga përdoruesi. Në fund të tubacionit (më afër pajisjes) është drejtuesi normal i pajisjes. Një numër arbitrar i moduleve të përpunimit mund të vendoset në hendek, secila prej të cilave është projektuar në përputhje me ndërfaqen e kërkuar të transmetimit.

7. Komandat dhe shërbimet

Kur punojnë në mënyrë interaktive në një mjedis UNIX OS, ata përdorin shërbime të ndryshme ose komanda të jashtme të gjuhës së guaskës. Shumë prej këtyre shërbimeve janë po aq komplekse sa vetë guaska (dhe, meqë ra fjala, vetë guaska është një nga shërbimet që mund të thirret nga linja e komandës).

7. 1 Organizim ekipor në UNIX OS

Për të krijuar një komandë të re, thjesht duhet të ndiqni rregullat e programimit C. Çdo program C i mirëformuar fillon ekzekutimin e tij me funksionin kryesor. Ky funksion "gjysmë-sistem" ka një ndërfaqe standarde, e cila është baza për organizimin e komandave që mund të thirren në mjedisin shell. Komandat e jashtme ekzekutohen nga përkthyesi i guaskës duke përdorur një sërë thirrjesh sistemi fork dhe një nga opsionet e ekzekutimit. Parametrat e thirrjes së sistemit exec përfshijnë një grup vargjesh teksti. Ky grup vargjesh teksti kalohet si hyrje në funksionin kryesor të programit që ekzekutohet.

Më saktësisht, funksioni kryesor merr dy parametra - argc (numri i vargjeve të tekstit për të kaluar) dhe argv (një tregues për një grup treguesish për vargjet e tekstit). Një program që pretendon se e përdor atë si një komandë shell duhet të ketë një ndërfaqe të jashtme të mirëpërcaktuar (parametrat zakonisht futen nga terminali) dhe duhet të kontrollojë dhe analizojë saktë parametrat e hyrjes.

Gjithashtu, në mënyrë që të përputhet me stilin e guaskës, një program i tillë nuk duhet të anashkalojë vetë skedarët që korrespondojnë me hyrjen standarde, daljen standarde dhe gabimin standard. Komanda më pas mund të ridrejtohet I/O në mënyrën e zakonshme dhe mund të përfshihet në tubacione.

7.2 Ridrejtimi I/O dhe tubacionet

Siç mund ta shihni nga fjalia e fundit e paragrafit të mëparshëm, nuk keni nevojë të bëni ndonjë gjë të veçantë për të mundësuar ridrejtimin dhe tubacionin I/O kur programoni udhëzimet. Mjafton thjesht t'i lini të paprekur tre përshkruesit fillestarë të skedarëve dhe të punoni me këto skedarë në mënyrë korrekte, domethënë, të dilni në një skedar me një përshkrues stdout, të futni të dhëna nga skedari stdin dhe të printoni mesazhe gabimi në skedarin stderror.

7. 3 Komanda të integruara, bibliotekë dhe përdorues

Komandat e integruara janë pjesë e kodit të programit shell. Ato funksionojnë si nënprograme përkthyese dhe nuk mund të zëvendësohen ose ripërcaktohen. Sintaksa dhe semantika e komandave të integruara përcaktohen në gjuhën përkatëse të komandës.

Komandat e bibliotekës janë pjesë e softuerit të sistemit. Ky është një grup programesh (shërbimesh) të ekzekutueshme të ofruara me sistemin operativ. Shumica e këtyre programeve (të tilla si vi, emacs, grep, find, make, etj.) janë jashtëzakonisht të dobishme në praktikë, por diskutimi i tyre është përtej qëllimit të këtij kursi (ekzistojnë libra të trashë të veçantë).

Një komandë përdoruesi është çdo program i ekzekutueshëm i organizuar në përputhje me kërkesat e përcaktuara në. Kështu, çdo përdorues i UNIX OS mund të zgjerojë repertorin e komandave të jashtme të gjuhës së tij komanduese për një kohë të pacaktuar (për shembull, ju mund të shkruani interpretuesin tuaj të komandës).

7.4 Programimi i gjuhës së komandës

Cilido nga variantet e përmendura të gjuhës guaskë, në parim, mund të përdoret si gjuhë programimi. Midis përdoruesve të UNIX, ka shumë njerëz që shkruajnë programe mjaft serioze në shell. Për programim, është më mirë të përdorni gjuhët e programimit (C, C++, Pascal, etj.) sesa gjuhët e komandave.


8. Mjetet GUI

Megjithëse shumë programues profesionistë UNIX sot preferojnë të përdorin mjete tradicionale të bazuara në linjë për të bashkëvepruar me sistemin, përdorimi i gjerë i terminaleve grafike me ngjyra relativisht të lira dhe me rezolucion të lartë ka çuar në faktin se të gjitha versionet moderne të UNIX OS mbështesin ndërfaqet grafike të përdoruesit. me sistemin dhe përdoruesit pajisen me mjete për zhvillimin e ndërfaqeve grafike me programet që ata zhvillojnë. Nga këndvështrimi i përdoruesit përfundimtar të mjetit GUI të mbështetur në opsione të ndryshme OS UNIX, dhe në sistemet e tjera (për shembull, MS Windows ose Windows NT), janë afërsisht të njëjta në stil.

Së pari, në të gjitha rastet, mbështetet një mënyrë funksionimi me shumë dritare me një ekran terminal. Në çdo kohë, përdoruesi mund të krijojë një dritare të re dhe ta shoqërojë atë me programin e dëshiruar që punon me këtë dritare si me një terminal të veçantë. Dritaret mund të zhvendosen, të ndryshohen përmasat, të mbyllen përkohësisht, etj.

Së dyti, në të gjitha varietetet moderne të ndërfaqes grafike, kontrolli i miut mbështetet. Në rastin e UNIX, shpesh rezulton se tastiera normale e terminalit përdoret vetëm kur kalon në ndërfaqen tradicionale të linjës (edhe pse në shumicën e rasteve të paktën një dritare terminali po ekzekuton një nga predha të familjes së guaskës).

Së treti, një përhapje e tillë e stilit të punës "miu" është e mundur përmes përdorimit të mjeteve të ndërfaqes të bazuara në piktograme (ikona) dhe meny. Në shumicën e rasteve, një program që ekzekutohet në një dritare e kërkon përdoruesin të zgjedhë një funksion që ai kryen ose duke shfaqur një grup imazhesh simbolike të funksioneve të mundshme (ikona) në dritare, ose duke ofruar një meny me shumë nivele. Në çdo rast, për zgjedhje të mëtejshme, mjafton të kontrolloni kursorin e dritares përkatëse me miun.

Së fundi, ndërfaqet moderne grafike janë "miqësore për përdoruesit", duke ofruar mundësinë për të marrë menjëherë ndihmë interaktive për çdo rast. (Ndoshta do të ishte më e saktë të thuhej se stili i mirë i programimit GUI është ai që në fakt ofron sugjerime të tilla.)

Pas renditjes së të gjitha këtyre vetitë e përbashkëta mjetet moderne të ndërfaqes grafike, mund të lindë një pyetje e natyrshme: Nëse ekziston një uniformitet i tillë në fushën e ndërfaqeve grafike, çfarë të veçantë mund të thuhet për ndërfaqet grafike në mjedisin UNIX? Përgjigja është mjaft e thjeshtë. Po, përdoruesi përfundimtar në të vërtetë në çdo sistem të sotëm merret me afërsisht të njëjtin grup veçorish të ndërfaqes, por në sisteme të ndryshme këto veçori arrihen në mënyra të ndryshme. Si zakonisht, avantazhi i UNIX është disponueshmëria e teknologjive të standardizuara që ju lejojnë të krijoni aplikacione celulare me ndërfaqe grafike.

8. Parimet e mbrojtjes

Meqenëse sistemi UNIX që nga fillimi i tij u konceptua si një sistem operativ me shumë përdorues, problemi i autorizimit të aksesit të përdoruesve të ndryshëm në skedarët e sistemit të skedarëve ka qenë gjithmonë i rëndësishëm në të. Autorizimi i aksesit i referohet veprimeve të sistemit që lejojnë ose mohojnë një përdorues të caktuar qasjen në një skedar të caktuar, në varësi të të drejtave të përdoruesit dhe kufizimeve të aksesit të vendosura për skedarin. Skema e autorizimit të aksesit e përdorur në sistemin operativ UNIX është aq e thjeshtë dhe e përshtatshme dhe në të njëjtën kohë aq e fuqishme sa është bërë standardi de facto i sistemeve moderne operative (të cilat nuk pretendojnë të jenë sisteme me mbrojtje shumë nivelesh).

8.1 ID-të e përdoruesve dhe grupet e përdoruesve

Çdo proces që ekzekutohet në UNIX shoqërohet me një ID të vërtetë të përdoruesit, një ID efektive të përdoruesit dhe një ID të ruajtur të përdoruesit. Të gjithë këta identifikues vendosen duke përdorur thirrjen e sistemit setuid, e cila mund të ekzekutohet vetëm në modalitetin e superpërdoruesit. Në mënyrë të ngjashme, çdo proces ka tre ID të grupeve të përdoruesve të lidhur me të - ID-në e grupit real, ID-në efektive të grupit dhe ID-në e grupit të ruajtur. Këta identifikues vendosen nga thirrja e privilegjuar e sistemit setgid.

Kur një përdorues hyn në sistem, programi i hyrjes kontrollon nëse përdoruesi është i identifikuar dhe e di fjalëkalimin e saktë (nëse është vendosur një), krijon një proces të ri dhe fillon shell-in e kërkuar për këtë përdorues në të. Por përpara se ta bëni këtë, login vendos ID-të e përdoruesve dhe grupeve për procesin e krijuar rishtazi duke përdorur informacionin e ruajtur në skedarët /etc/passwd dhe /etc/group. Sapo ID-të e përdoruesve dhe të grupit të lidhen me një proces, kufizimet e hyrjes në skedar zbatohen për atë proces. Një proces mund të hyjë ose të ekzekutojë një skedar (nëse skedari përmban një program të ekzekutueshëm) vetëm nëse kufizimet e aksesit të skedarit e lejojnë atë. Identifikuesit e lidhur me një proces kalojnë në proceset që ai krijon, duke iu nënshtruar të njëjtave kufizime. Megjithatë, në disa raste një proces mund të ndryshojë lejet e tij duke përdorur thirrjet e sistemit setuid dhe setgid, dhe ndonjëherë sistemi mund të ndryshojë automatikisht lejet e një procesi.

Konsideroni, për shembull, situatën e mëposhtme. Skedari /etc/passwd nuk mund të shkruhet nga askush përveç superpërdoruesit (superpërdoruesi mund të shkruajë në çdo skedar). Ky skedar, ndër të tjera, përmban fjalëkalime të përdoruesve dhe çdo përdorues lejohet të ndryshojë fjalëkalimin e tij. Ekziston një program i veçantë /bin/passwd që ndryshon fjalëkalimet. Sidoqoftë, përdoruesi nuk mund ta bëjë këtë as me këtë program, sepse skedari /etc/passwd nuk lejohet të shkruhet në të. Në një sistem UNIX, ky problem zgjidhet si më poshtë. Një skedar i ekzekutueshëm mund të specifikojë që kur të ekzekutohet, duhet të vendosen identifikuesit e përdoruesit dhe/ose grupit. Nëse një përdorues kërkon ekzekutimin e një programi të tillë (duke përdorur thirrjen e sistemit exec), atëherë ID-ja e përdoruesit të procesit përkatës vendoset në ID-në e pronarit të ekzekutivit dhe/ose ID-në e grupit të atij pronari. Në veçanti, kur ekzekutohet programi /bin/passwd, procesi do të ketë një ID rrënjë dhe programi do të jetë në gjendje të shkruajë në skedarin /etc/passwd.

Si për ID-në e përdoruesit, ashtu edhe për ID-në e grupit, ID-ja reale është ID-ja e vërtetë dhe ID-ja efektive është ID-ja e ekzekutimit aktual. Nëse id-ja e përdoruesit aktual përputhet me superpërdoruesin, atëherë ai id dhe id i grupit mund të rivendosen në çdo vlerë me thirrjet e sistemit setuid dhe setgid. Nëse ID-ja aktuale e përdoruesit është e ndryshme nga ID-ja e superpërdoruesit, atëherë ekzekutimi i thirrjeve të sistemit setuid dhe setgid bën që ID-ja aktuale të zëvendësohet me ID-në e vërtetë (përkatësisht përdorues ose grup).

8.2 Mbrojtja e skedarëve

Siç është zakon në një sistem operativ me shumë përdorues, UNIX mban një mekanizëm uniform për kontrollin e aksesit në skedarë dhe drejtoritë e sistemit të skedarëve. Çdo proces mund të aksesojë një skedar të caktuar nëse dhe vetëm nëse të drejtat e aksesit të përshkruara me skedarin korrespondojnë me aftësitë e këtij procesi.

Mbrojtja e skedarëve nga aksesi i paautorizuar në UNIX bazohet në tre fakte. Së pari, çdo proces që krijon një skedar (ose direktori) shoqërohet me një identifikues unik të përdoruesit (UID - User Identifier) ​​në sistem, i cili mund të trajtohet më tej si identifikues i pronarit të skedarit të krijuar rishtazi. Së dyti, çdo proces që përpiqet të aksesojë një skedar ka një palë identifikues të lidhur me të, përdoruesin aktual dhe identifikuesit e grupit. Së treti, çdo skedar korrespondon në mënyrë unike me përshkruesin e tij - i-node.

Çdo i-node i përdorur në sistemin e skedarëve gjithmonë korrespondon në mënyrë unike me një dhe vetëm një skedar. I-node përmban mjaft informacione të ndryshme (shumica e tij është në dispozicion të përdoruesve përmes thirrjeve të sistemit stat dhe fstat), dhe midis këtij informacioni ka një pjesë që lejon sistemin e skedarëve të vlerësojë të drejtat e aksesit të një procesi të caktuar. në një skedar të caktuar në modalitetin e kërkuar.

Parimet e përgjithshme të mbrojtjes janë të njëjta për të gjitha variantet ekzistuese të sistemit: Informacioni i i-node përfshin UID dhe GID të pronarit aktual të skedarit (menjëherë pas krijimit të skedarit, identifikuesit e pronarit të tij aktual vendosen në identifikuesin aktual përkatës të procesit të krijuesit, por më vonë mund të ndryshohet nga thirrjet e sistemit chown dhe chgrp). Përveç kësaj, një shkallë ruhet në i-node të skedarit, e cila tregon se çfarë mund të bëjë përdoruesi - pronari i tij me skedarin, çfarë mund të bëjnë përdoruesit që i përkasin të njëjtit grup përdoruesish si pronari me skedarin dhe çfarë të tjerët mund të bëjë me përdoruesit e skedarëve. Detajet e vogla të zbatimit në versione të ndryshme të sistemit ndryshojnë.

8.3 Sistemet e ardhshme operative që mbështesin mjedisin UNIX OS

Një mikrokernel është pjesa më e vogël thelbësore e një sistemi operativ, duke shërbyer si bazë për zgjerimet modulare dhe portative. Duket se shumica e sistemeve operative të gjeneratës së ardhshme do të kenë mikrokernele. Megjithatë, ka shumë mendime të ndryshme rreth mënyrës sesi duhet të organizohen shërbimet e sistemit operativ në lidhje me mikrokernelin: si të dizajnohen drejtuesit e pajisjes që të jenë sa më efikasë, por të mbajnë funksionet e drejtuesit sa më të pavarur nga hardueri; nëse operacionet jo-kernel duhet të kryhen në hapësirën e kernelit ose hapësirën e përdoruesit; nëse ia vlen të mbash programet e nënsistemeve ekzistuese (për shembull, UNIX) apo është më mirë të hedhësh gjithçka dhe të fillosh nga e para.

Koncepti i një mikrokerneli u fut në përdorim të gjerë nga Next, sistemi operativ i të cilit përdorte mikrokernelin Mach. Bërthama e vogël, e privilegjuar e këtij sistemi operativ, rreth të cilit nënsistemet funksiononin në modalitetin e përdoruesit, supozohej teorikisht të siguronte fleksibilitet dhe modularitet të paparë të sistemit. Por në praktikë, ky avantazh u zvogëlua disi nga prania e një serveri monolit që zbaton sistemin operativ UNIX BSD 4.3, të cilin Next zgjodhi të mbështillte mikrokernelin Mach. Sidoqoftë, mbështetja në Mach bëri të mundur përfshirjen e mjeteve të mesazheve dhe një sërë funksionesh shërbimi të orientuara nga objekti në sistem, në bazë të të cilave ishte e mundur të krijohej një ndërfaqe elegante e përdoruesit fundor me mjete grafike për konfigurimin e rrjetit, administrimin e sistemit. dhe zhvillimin e softuerit.

Sistemi tjetër operativ i mikrokernelit ishte Windows NT i Microsoft, i cili përparësi kryesore Përdorimi i mikrokernelit supozohej të ishte jo vetëm modulariteti, por edhe transportueshmëria. (Vini re se nuk ka konsensus nëse NT duhet të konsiderohet në të vërtetë një sistem operativ me mikrokernel.) NT është projektuar për t'u përdorur në sistemet e vetme dhe me shumë procesorë të bazuar në Procesorët Intel, Mips dhe Alpha (dhe ato që vijnë pas tyre). Meqenëse programet e shkruara për DOS, Windows, OS/2 dhe sisteme të pajtueshme me standardet Posix duhej të ekzekutoheshin në mjedisin NT, Kompania Microsoft përdori modularitetin e natyrshëm të qasjes së mikrokernelit për të krijuar një strukturë të përbashkët NT që nuk përsërit asnjë nga sistemet operative ekzistuese. Çdo sistem operativ emulohet si një modul ose nënsistem i veçantë.

Kohët e fundit, arkitekturat e sistemit operativ të mikrokernelit janë shpallur nga Novell/USL, Open Software Foundation (OSF), IBM, Apple dhe të tjerë. Një nga konkurrentët kryesorë të NT në sistemet operative të mikrokernelit është Mach 3.0, një sistem i krijuar në Universitetin Carnegie Mellon që si IBM ashtu edhe OSF kanë marrë përsipër ta komercializojnë. (Next aktualisht po përdor Mach 2.5 si bazë për NextStep, por po shikon gjithashtu nga afër Mach 3.0.) Një tjetër konkurrent është mikrokerneli Chorus 3.0 i Chorus Systems, i zgjedhur nga USL si bazë për implementimet e reja të sistemit operativ UNIX. Disa mikrokernel do të përdoren në Sun's SpringOS, pasardhësi i orientuar nga objekti i Solaris (nëse, sigurisht, Sun përfundon SpringOS). Ekziston një prirje e dukshme drejt kalimit nga sistemet monolitike në sistemet mikrokernel (ky proces nuk është i drejtpërdrejtë: IBM bëri një hap prapa dhe braktisi kalimin në teknologjinë e mikrokernelit). Meqë ra fjala, ky nuk është aspak lajm për QNX Software Systems dhe Unisys, të cilët kanë lëshuar sisteme operative të suksesshme të mikrokernelit prej disa vitesh. QNX OS është i kërkuar në tregun në kohë reale dhe CTOS-i i Unisys është i popullarizuar në sektorin bankar. Të dy sistemet përdorin me sukses modularitetin e natyrshëm në sistemet operative të mikrokernelit.


konkluzioni

Dallimet kryesore midis Unix dhe OS të tjerë

Unix përbëhet nga një kernel me drejtues dhe programe të përfshira (programe të jashtme të kernelit). Nëse keni nevojë të ndryshoni konfigurimin (shtoni një pajisje, ndryshoni një port ose ndërprerje), atëherë kerneli rindërtohet (rilidhet) nga modulet e objektit ose (për shembull, në FreeBSD) nga burimet. Kjo nuk është plotësisht e vërtetë. Disa parametra mund të korrigjohen pa rindërtuar. Ekzistojnë gjithashtu module të kernelit të ngarkueshëm.

Në ndryshim nga Unix, në Windows (nëse nuk specifikohet se cili, atëherë nënkuptojmë 3.11, 95 dhe NT) dhe OS / 2, kur ngarkohen, ata në të vërtetë lidhin drejtuesit në lëvizje. Në të njëjtën kohë, kompaktësia e kerneli i montuar dhe ripërdorimi i kodit të zakonshëm janë një renditje me madhësi më të ulët se Përveç kësaj, nëse konfigurimi i sistemit është i pandryshuar, kerneli Unix mund të shkruhet në ROM dhe të ekzekutohet _not_booted_ në RAM pa ripunim (ju duhet vetëm të ndryshoni pjesën fillestare të BIOS) Kompaktësia e kodit është veçanërisht e rëndësishme, sepse kerneli dhe drejtuesit nuk largohen kurrë, memoria fizike nuk ndërrohet në disk.

Unix është OS më shumë-platformësh. WindowsNT po përpiqet ta imitojë atë, por deri më tani nuk ka pasur sukses - pasi braktisi MIPS dhe POWER-PC, W "NT mbeti vetëm në dy platforma - tradicionale i * 86 dhe DEC Alpha. Transportueshmëria e programeve nga një version i Unix në një tjetër është i kufizuar. Një program i shkruar në mënyrë të shkujdesur, i cili nuk merr parasysh dallimet në zbatimet e Unix, bën supozime të paarsyeshme si "numri i plotë duhet të jetë katër bajt", mund të kërkojë ripunim serioz, por është ende shumë urdhra të përmasave më të lehta sesa transferimi nga OS/2 në NT, për shembull.

Aplikimet e Unix

Unix përdoret si server ashtu edhe si stacion pune. Në nominimin e serverit, MS WindowsNT, Novell Netware, IBM OS/2 Warp Connect, DEC VMS dhe sistemet operative mainframe konkurrojnë me të. Çdo sistem ka fushën e vet të aplikimit në të cilën është më i mirë se të tjerët.

WindowsNT - për administratorët që preferojnë ndërfaqe miqësore për përdoruesit përdorimi ekonomik i burimeve dhe produktiviteti i lartë.

Netware - për rrjetet ku nevojiten shërbime të skedarëve dhe printerëve me performancë të lartë dhe shërbimet e tjera nuk janë aq të rëndësishme. Disavantazhi kryesor- Është e vështirë të ekzekutosh aplikacione në serverin Netware.

OS / 2 është i mirë aty ku keni nevojë për një server aplikacioni "të lehtë". Kërkon më pak burime se NT, është më fleksibël në menaxhim (edhe pse mund të jetë më i vështirë për t'u vendosur) dhe multitasking është shumë i mirë. Autorizimi dhe diferencimi i të drejtave të aksesit nuk zbatohen në nivel OS, gjë që është më se e paguar nga zbatimi në nivelin e serverëve të aplikacionit. (Megjithatë, shpesh OS të tjera bëjnë të njëjtën gjë). Shumë stacione FIDOnet dhe BBS bazohen në OS/2.

VMS është një server i fuqishëm, në asnjë mënyrë inferior ndaj serverit të aplikacionit të Unix (dhe në shumë mënyra më i lartë se ai), por vetëm për platformat VAX dhe Alpha të DEC.

Mainframes - për t'i shërbyer një numri shumë të madh përdoruesish (në rendin e disa mijërave). Por puna e këtyre përdoruesve zakonisht organizohet në formën e jo një ndërveprimi klient-server, por në formën e një host-terminal. Terminali në këtë çift nuk është më tepër një klient, por një server (Internet World, N3 për 1996). Përparësitë e kornizave kryesore përfshijnë siguri më të lartë dhe tolerancë ndaj gabimeve, dhe disavantazhet janë çmimi që korrespondon me këto cilësi.

Unix është i mirë për administratorin e aftë (ose të gatshëm të jetë), sepse kërkon njohuri për parimet e funksionimit të proceseve që ndodhin në të. Multitasking real dhe ndarja e memories së fortë sigurojnë besueshmëri të lartë të sistemit, megjithëse performanca e Unix për shërbimet e skedarëve dhe printimit është inferiore ndaj Netware.

Mungesa e fleksibilitetit në dhënien e të drejtave të aksesit të përdoruesve në skedarë në krahasim me WindowsNT e bën të vështirë organizimin e qasjes së grupit të nivelit _at_the_file_system_ në të dhëna (më saktë, në skedarë), e cila, për mendimin tim, kompensohet nga lehtësia e zbatimit, që do të thotë më pak harduer. Kërkesat. Sidoqoftë, aplikacione të tilla si SQL Server e zgjidhin vetë problemin e aksesit në grup në të dhëna, kështu që aftësia për t'i mohuar aksesin në një _file_ një përdoruesi specifik, i cili mungon në Unix, është qartësisht i tepërt për mendimin tim.

Pothuajse të gjitha protokollet mbi të cilat bazohet interneti u zhvilluan nën Unix, në veçanti grumbulli i protokolleve TCP / IP u shpik në Universitetin Berkeley.

Siguria e Unix-it, kur administrohet siç duhet (dhe kur jo?), nuk është në asnjë mënyrë inferiore ndaj Novell-it dhe WindowsNT-së.

Një veti e rëndësishme e Unix-it që e afron atë me mainframe-të është multi-terminaliteti i tij, shumë përdorues mund të ekzekutojnë njëkohësisht programe në të njëjtën makinë Unix. Nëse nuk keni nevojë të përdorni grafikë, mund t'ia dilni me terminale tekstuale të lira (të specializuara ose të bazuara në PC të lirë) të lidhur në linja të ngadalta. Në këtë, vetëm VMS konkurron me të. Terminalet grafike X mund të përdoren gjithashtu kur dritaret e proceseve që ekzekutohen në makina të ndryshme janë të pranishme në të njëjtin ekran.

Në nominimin e stacionit të punës, Unix konkurron me MS Windows*, IBM OS/2, Macintosh dhe Acorn RISC-OS.

Windows - për ata që vlerësojnë pajtueshmërinë mbi efikasitetin; për ata që janë të gatshëm të blejnë një sasi të madhe memorie, hapësirë ​​​​në disk dhe megahertz; për ata që duan të mos thellohen në thelbin, klikoni në butonat në dritare. Vërtetë, herët a vonë ju ende duhet të studioni parimet e sistemit dhe protokolleve, por atëherë do të jetë tepër vonë - zgjedhja është bërë. e rëndësishme avantazhin e Windows duhet njohur gjithashtu mundësinë e vjedhjes së një tufe softuerësh.

OS/2 - për adhuruesit e OS/2. :-) Megjithëse, sipas disa raporteve, OS / 2 ndërvepron më mirë se të tjerët me rrjetet kryesore dhe IBM.

Macintosh - për vepra grafike, botuese dhe muzikore, si dhe për ata që duan një ndërfaqe të qartë, të bukur dhe nuk duan (nuk mund) të kuptojnë detajet e sistemit.

RISC-OS, i ndezur në ROM, ju lejon të mos humbni kohë duke instaluar sistemin operativ dhe rikthimin e tij pas dështimeve. Për më tepër, pothuajse të gjitha programet nën të përdorin burime shumë ekonomikisht, kështu që ata nuk kanë nevojë për shkëmbim dhe funksionojnë shumë shpejt.

Unix funksionon si në PC ashtu edhe në stacione të fuqishme pune me procesorë RISC; sistemet vërtet të fuqishme CAD dhe sistemet e informacionit gjeografik janë shkruar nën Unix. Shkallueshmëria e Unix-it, për shkak të natyrës së tij multiplatforme, është një rend i madhësisë më i lartë se çdo sistem tjetër operativ, sipas disa autorëve.


Bibliografi

1. Tutorial Kuznetsova S.D. “Sistemi operativ UNIX” 2003;

2. Polyakov A.D. “UNIX 5th Edition on x86, ose mos harroni historinë”;

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

4. Fedorchuk A.V. Mastery Unix, 2006

5. Materialet e faqes http://www.citforum.ru/operating_systems/1-16;

MINISTRIA E ARSIMIT DHE SHKENCËS E FEDERATËS RUSE AGJENCIA ARSIMORE FEDERALE INSTITUCIONI ARSIMOR SHTETËROR I ARSIMIT TË LARTË PROFESIONAL

Unë paraqes në vëmendjen tuaj një artikull rreth webcams. Kjo pajisje, natyrisht, nuk është më e re në botën moderne dhe shumë njerëz përdorin këtë pajisje të mrekullueshme, falë së cilës ju mund të shihni jo vetëm personin që ju intereson në anën tjetër të botës, por edhe të shikoni çdo cep. të planetit tonë ku ndodhet webcam. Por gjërat e para së pari. Kështu që…

Webkamera , ose Webkamera , ose uebkamera (anglisht) uebkamera ) - një video ose kamera e vogël dixhitale e aftë për të kapur imazhe në kohë reale për transmetim të mëtejshëm në internet (në programe të tilla si Skype, Instant Messenger ose çdo aplikacion tjetër video që lejon komunikimin me video). Kohët e fundit, ju mund të komunikoni edhe duke përdorur një kamerë në internet në disa në rrjetet sociale, për shembull - Odnoklassniki.

Historia e kamerave në internet

Gjithçka filloi në një nga laboratorët kompjuterikë Kembrixhi në fillim të viteve '90 të shekullit të kaluar, kur Global Web (Interneti) sapo po fillonte marshimin e tij fitimtar në të gjithë planetin.

Një grup shkencëtarësh, 15-20 persona, punuan në një projekt në fushën e teknologjive të rrjetit. Kushtet e punës ishin spartane - i gjithë ekipi kishte vetëm një aparat kafeje, e cila nuk mund të plotësonte nevojat e të gjithë ekipit. Puna kryesore u krye në laborator, stafi banonte në të njëjtën ndërtesë, por në një pjesë të ndryshme të saj. Për të rrahur procesin e të menduarit me një filxhan pije gjallëruese, pjesëmarrësit e projektit shkencor u detyruan të frekuentonin korridorin që ndodhej në katin e sipërm, ku ndodhej aparati i kafesë. Shpesh udhëtime të tilla dështonin, pasi disa kolegë kishin arritur tashmë të zbraznin enën e lakmuar. Kërkonte situata zgjidhje me porosi, dhe u gjet.

Një nga kompjuterët në laborator kishte një pajisje vëzhgimi me video (rrëmbyes kornizë). Me të ishte lidhur një aparat fotografik, i cili drejtohej në objektin e vëzhgimit. I njëjti kompjuter luajti rolin e një serveri në internet përmes softuerit të shkruar posaçërisht. Ata që donin të dinin nëse kishte kafe duhej të përdornin softuerin e klientit në kompjuterin e tyre që lidhej me serverin. Si rezultat, një imazh bardh e zi u shfaq në një dritare të vogël në kompjuterin në distancë, duke u përditësuar tre herë në minutë. Një shënim për këtë kompleks interesant u botua në revistën Comm-Week më 27 janar 1992.

Nuk ka kaluar shumë kohë që nga shfaqja e prototipave të parë të kamerave IP, por ato tashmë janë shndërruar në një klasë plotësisht të formuar, të veçantë pajisjesh që bëjnë jeta e përditshme më e lehtë, më e përshtatshme dhe më argëtuese.

Sensori i dritës është zemra e çdo aparati dixhital. Është ai që ju lejon të shndërroni dritën në sinjale elektrike të disponueshme për përpunim të mëtejshëm elektronik.

Parimi bazë i funksionimit të sensorëve CCD dhe CMOS është i njëjtë: nën ndikimin e dritës, transportuesit e ngarkesës lindin në materiale gjysmëpërçuese, të cilat më pas shndërrohen në tension.

Dallimi midis sensorëve CCD dhe CMOS qëndron kryesisht në mënyrën e ruajtjes dhe transferimit të ngarkesës, si dhe në teknologjinë e shndërrimit të tij në një tension analog. Pa hyrë në detaje të dizajnit të llojeve të ndryshme të sensorëve, vërejmë vetëm se sensorët CMOS janë shumë më të lirë për t'u prodhuar, por edhe më "të zhurmshëm".

Parimi i funksionimit të një Webcam është i ngjashëm me parimin e funksionimit të ndonjë ose. Përveç një lente optike dhe një sensor CCD ose CMOS fotosensitive, është e detyrueshme të keni një konvertues analog në dixhital (ADC), qëllimi kryesor i të cilit është të konvertojë sinjalet analoge të sensorit fotosensiv, domethënë tensionin. , në një kod dixhital. Përveç kësaj, nevojitet një sistem i formimit të ngjyrave. Një element tjetër i rëndësishëm i kamerës është qarku përgjegjës për kompresimin e të dhënave dhe përgatitjen për transmetim në formatin e dëshiruar. Në kamerat në internet, të dhënat video transmetohen në një kompjuter përmes një ndërfaqe USB, domethënë qarku përfundimtar i kamerës duhet të jetë një kontrollues i ndërfaqes USB.

Konvertuesi A/D ka të bëjë me marrjen e mostrave të një sinjali analog të vazhdueshëm. Konvertuesit e tillë karakterizohen si nga frekuenca e kampionimit, e cila përcakton intervalet kohore në të cilat matet sinjali analog, ashtu edhe nga thellësia e bitit të tyre. Gjerësia e biteve të një ADC është numri i biteve të përdorura për të përfaqësuar një sinjal. Për shembull, nëse përdoret një ADC 8-bit, atëherë ka 8 bit për të përfaqësuar sinjalin, të cilët ju lejojnë të vendosni 256 kuptime të ndryshme. Kur përdorni një ADC 10-bit, është e mundur të vendosni në mënyrë diskrete 1024 nivele të ndryshme sinjali.

Duke pasur parasysh gjerësinë e ulët të brezit të autobusit USB (vetëm 12 Mbps, nga të cilat Webcam përdor jo më shumë se 8 Mbps), të dhënat duhet të kompresohen përpara se të transferohen drejtpërdrejt në një kompjuter. Dëshmia për këtë rrjedh nga një llogaritje e thjeshtë. Me një rezolucion të kornizës prej 320×240 piksele dhe një thellësi ngjyrash prej 24 bit, madhësia e kornizës së pakompresuar do të jetë 1.76 Mbit. Me një gjerësi brezi USB prej 8 Mbps të pakompresuar, kornizat mund të transmetohen me një shpejtësi maksimale prej 4,5 fps. Megjithatë, kërkohet një shpejtësi prej 24 fps ose më shumë për të marrë video me cilësi të lartë. Kështu, bëhet e qartë se pa kompresimin e harduerit të informacionit të transmetuar, funksionimi i kamerës do të ishte i pamundur. Prandaj, çdo kontrollues i kamerës duhet të sigurojë kompresimin e nevojshëm të të dhënave për t'i transferuar ato nëpërmjet ndërfaqes USB. Vetë kompresimi është qëllimi kryesor i kontrolluesit USB. Duke siguruar kompresimin e nevojshëm në kohë reale, kontrolluesi, si rregull, ju lejon të transferoni një transmetim video me një shpejtësi prej 10-15 korniza / s me një rezolucion prej 640 × 480 dhe me një shpejtësi prej 30 korniza / s në një rezolucion prej 320×240 dhe më pak.

Webkamera amatore. Ky lloj i kamerës në internet është menduar kryesisht për komunikim me video, video konferenca, regjistrim video dhe fotografi. Këto kamera janë relativisht të lira dhe të lehta për t'u përdorur. Me karakteristikat e detajuara të kamerave amatore, do t'ju njohim pak më vonë.

Webkamera profesionale(Kamera në rrjet ose kamera IP). Ky lloj webcam përdoret kryesisht për mbikëqyrje video të objekteve të mbrojtura, ose për qëllime të tjera të ngjashme. Një aparat fotografik modern IP është një pajisje dixhitale që kap video, digjitalizon, ngjesh dhe transmeton imazhe video përmes një rrjeti kompjuterik. Ndryshe nga webcam i rregullt kamera e rrjetit funksionon si një server në internet dhe ka adresën e vet IP. Kështu, është e mundur të lidhni drejtpërdrejt kamerën me internetin, pa një kompjuter, i cili ju lejon të merrni sinjale video dhe audio dhe të kontrolloni kamerën përmes internetit përmes një shfletuesi.

Tani kemi mësuar, të dashur lexues, se çfarë është një kamera në internet, parimi i funksionimit të saj, historia, llojet. Le të kalojmë në çështjen e zgjedhjes së një kamere në internet. Kështu që, Çfarë duhet t'i kushtoj vëmendje kur blej një kamerë në internet?

Lloji i sensorit

Para së gjithash, duhet t'i kushtoni vëmendje këtij parametri nëse zgjidhni një kamerë në internet jo buxhetore për veten tuaj, për shembull, për qëllime komerciale. Kjo për faktin se në thelb të gjitha kamerat amatore kanë një nga dy llojet kryesore të matricave - CMOS. Kjo matricë nuk është e shtrenjtë për t'u prodhuar, ka konsum të ulët të energjisë dhe karakteristikat kryesore të nevojshme teknike për përdorim të rehatshëm të kamerës në internet.

Një tjetër lloj matrice është CCD. Ka karakteristika të përmirësuara për sa i përket cilësisë së imazhit të videos, dhe, në përputhje me rrethanat, kamerat në internet në një matricë CCD kanë një çmim më të lartë.

Sa për mua, ju mund të merrni një aparat fotografik CMOS dhe të shijoni jetën pa paguar njëqind e dy dollarë shtesë. Edhe pse, nëse nuk keni ku t'i vendosni, atëherë vazhdoni!

Korniza për sekondë (Fps)

Ky parametër në fakt ndikon drejtpërdrejt në butësinë e figurës së transmetuar nga kamera në internet. Sa më shumë korniza në sekondë të transmetojë kamera në internet, aq më pak do të mërziteni në komunikimin me video me kundërshtarin tuaj.

Uebkamerat gjenden me një tregues prej 8, 15, 30 korniza për sekondë ose më shumë. Shpejtësia optimale është 30 korniza për sekondë.

E rëndësishme! Sa më shumë korniza në sekondë të ketë një sinjal video, aq më i madh ka madhësinë e tij dhe, në përputhje me rrethanat, për komunikim normal video, nevojitet një internet më i shpejtë.

Rezolucioni i imazhit

Për video, rezolucioni varion nga 0.1 në 2 megapiksel. Duhet të theksohet se optimali, dhe në të njëjtën kohë më i popullarizuari, është formati VGA (640 × 480 piksele, 0.3 MP). Janë këto kamera që rekomandohen për blerje për komunikim të zakonshëm në internet në shtëpi.

Një rezolucion prej 320×240 (0,1 MP) do të jetë mjaft i mjaftueshëm, për shembull, për video-konferenca në internet, dhe kjo shifër tashmë duhet të rritet kur mundësia e rishikimit të bashkëbiseduesit në cilësi të lartë është e një rëndësie të madhe.

E rëndësishme! Sa më i lartë të jetë rezolucioni i sinjalit video, aq më i madh ka madhësinë e tij dhe, në përputhje me rrethanat, për komunikim normal video, kërkohet një lidhje më e shpejtë në internet.

Dua të vërej se për momentin, interneti ka një shpejtësi gjithnjë e më të lartë lidhjeje, dhe në përputhje me rrethanat, janë shfaqur kamera në internet me rezolucion Full HD 1080p (1920 × 1080), e cila ju lejon të shikoni sinjalin video me definicion të lartë dhe cilësi të shkëlqyer në rezolucion të lartë.

Për të qenë i sinqertë, për shkak të përparimit teknologjik, ata mund të sugjerojnë që në një vit ose dy do të ketë kamera në internet me aftësinë për të regjistruar video në 3D. Edhe pse, ndoshta ajo tashmë ekziston tani, dhe unë sapo e humba nga sytë diku këtë risi.

Optika

Ka webkamera me lente plastike dhe qelqi.

Në kamerat amatore të buxhetit, instalohet kryesisht optika plastike, e cila në përputhje me rrethanat transmeton fotografinë jo gjithmonë me ngjyra natyrale.

Optika e xhamit ka një riprodhim më natyral të ngjyrave. Nuk jam i sigurt që të gjithë shitësit në dyqane kanë njohuri për këtë parametër, por nëse ju pëlqen maksimumi në gjithçka, kushtojini vëmendje optikës së kamerës në internet.

Në shitje pashë një kamerë në internet me optikë Carl Zeiss, e cila përdoret në kamera dhe videokamera nga Sony.

Ndjeshmëria e matricës

Një parametër i rëndësishëm që përcakton shkallën minimale të ndriçimit të objektit, në të cilin kamera në internet është në gjendje të marrë fotografi me cilësi të pranueshme. Ndjeshmëria e matricës së kamerës së internetit matet në luks (lux).

E rëndësishme! Në dritë të ulët, edhe një webcam i shtrenjtë me një matricë CCD prodhon një fotografi me zhurmë.

Mikrofoni

Vendosa të përmend, sepse Kohët e fundit po kërkoja një kamerë të lirë në internet dhe as që mund ta imagjinoja që ato ekzistojnë ende pa mikrofona të integruar. Për të qenë i sinqertë, nuk është shumë i përshtatshëm, nëse mund të komunikoni pa kufje me mikrofon, përdorni një mikrofon. Dhe kështu, lidha një pajisje, dhe ju thoni vetes pa u lidhur me litarë shtesë 🙂 .

Një nuancë më shumë. Mikrofoni mund të lidhet ose përmes të njëjtit lidhës USB përmes të cilit është lidhur vetë kamera në internet, ose përmes një prize mikrofoni paralel. Është i përshtatshëm kur e gjithë pajisja funksionon përmes një kablloje, pa priza shtesë.

Nga rruga, regjistrimi i zërit mund të regjistrohet si në modalitet mono ashtu edhe në stereo. Zgjedhja është e juaja.

Mbërthimi

Ju lutemi kushtojini vëmendje kësaj gjëje të vogël. Fakti është se ka kamera në internet që, pas blerjes, duhet të ngjiten në monitor ose diku tjetër me shirit, të zëvendësohen të gjitha llojet e copave të letrës, shiritave, etj. Nëse është e mundur, kërkoni nga shitësi të demonstrojë montimin e kamerës së internetit. Provoni ta lidhni vetë në vend me diçka.

Duke u fokusuar

Fokusimi përcakton se sa i mprehtë do të jetë imazhi i transmetuar.

Webkamerat vijnë në fokus manual dhe automatik. Është i përshtatshëm kur ka njërën dhe tjetrën në një pajisje. Pse? Ju do të mësoni për këtë kur të filloni të përdorni kamerën në internet.

Mundësi fotoje

Në shumicën e llojeve të kamerave në internet, ekziston një funksion - një fotografi. Ka një buton në trupin e kamerës së internetit, duke shtypur të cilin ju merrni një foto. Unë do të them menjëherë se cilësia është më e keqe se në kamerë, kështu që mos llogarisni shumë. Por për foton në foton e profilit, kaq. Edhe pse disa thonë se një foto me një numër të madh megapikselësh është e bukur.

Nëse jeni të interesuar të dini se çfarë ndikon në cilësinë e një fotografie në një aparat fotografik, lexoni .

Lloji i lidhjes

Në thelb, të gjitha kamerat në internet janë të lidhura duke përdorur një lidhës USB.

Ky lidhës ka 3 standarde: USB 1.1, USB 2.0, USB 3.0.

Për një webcam të rregullt, USB 2.0 është alternativa më e mirë. Nëse blini një pajisje me aftësinë për të transmetuar video në rezolucion Full HD 1080p, atëherë është e dëshirueshme që kamera të ketë një lidhës USB 3.0. Edhe pse prodhuesit po përpiqen të bëjnë gjithçka në mënyrë optimale, por siç thonë ata: "Është më mirë ta teprosh sesa të mos e bësh".

Gjithashtu, siç e përmenda më lart, ju lutemi vini re se një aparat fotografik me mikrofon të integruar nuk ka një prizë shtesë për ta lidhur atë.

Ekzistojnë gjithashtu kamera në internet, kryesisht profesionale, me aftësinë për të transmetuar video përmes një kanali Wi-Fi me valë. Shumë komode.

Karakteristika shtesë të kamerës së internetit

Kamera e internetit mund të ketë një sërë funksionesh shtesë: funksionet e redaktimit të informacionit, kontrollin e ndriçimit dhe kontrastit, korrigjimin ngjyrat, shpejtësia e kornizës, mbrojtja me fjalëkalim.

Një webcam profesionist mund të pajiset me një detektor lëvizjeje dhe të ketë një mekanizëm rrotullues që e lejon atë të përdoret për mbikëqyrje video.

Markë

Unë i kushtoja vëmendje prodhuesit pothuajse gjithmonë, veçanërisht kur bëhet fjalë për elektronikë.

Së pari, është cilësia dhe garancia për vetë pajisjen. Në fund të fundit, në këtë rast, ju nuk dëshironi të zbuloni në kërkim të një qendre shërbimi se ajo, si e tillë, nuk ekziston në vendin në të cilin jetoni, sepse. është vetëm në Kinë, e cila prodhon pjesën e luanit të elektronikës.

Së dyti, është siguria juaj dhe e të dashurve tuaj. Tani ka lajme kur edhe një kukull shpërthen në duart e një fëmije, për të mos thënë një teknikë më komplekse.

Kush e di se kush dhe çfarë vendi mendoi kur krijoi një falsifikim të kësaj apo asaj pajisjeje.

Markat më të njohura të kamerave të internetit janë: Logitech, Creative, A4 Tech, Genius, Sven, Microsoft, Trust, Canyon.

Unë do të blej vetë Logitech. Më falni konkurrentët e kësaj marke :-).

E rëndësishme! Ju kërkoj, të dashur lexues, mos blini kamera në internet në vende të dyshimta ku shiten elektronikë, për shembull, në treg nga një makinë. Faleminderit

Uebkamera më e lirë me një grup minimal funksionesh mund të blihet për 8 dollarë.

Një webcam standard me mikrofon të integruar dhe rezolucion 640×480 mund të blihet për rreth 20 dollarë.

Një webcam me të gjitha këmbanat dhe bilbilat mund të blihet për rreth 120 dollarë.

Video: Si të zgjidhni një kamerë në internet

E re në vend

>

Më popullorja