Povijest nastanka i standardi UNIX-a.  Operativni sustavi: UNIX Operating System Fundamentals File System Hierarchy Standard

Prije nego što svladate , morate tečno vladati osnovnim konceptima Linux sustava. Poznavanje korištenja Linuxa bit će vrlo korisna vještina jer Linux poslužitelji pokreću veliki broj web stranica, e-pošte i drugih internetskih usluga.

U ovom odjeljku objasnit ćemo osnovne koncepte povezane s Linuxom. U izvršavanju zadatka koji nam je dodijeljen, vjerujemo da već imate razumijevanje računalnih sustava općenito, uključujući komponente kao što su središnja procesorska jedinica (CPU), memorija s izravnim pristupom (RAM), matična ploča, tvrdi disk, kao i druge kontrolere i uređaje povezane s njima.

3.1

Izraz "Linux" često se koristi za označavanje cijelog operativnog sustava, ali Linux je zapravo jezgra operativnog sustava koju pokreće boot loader koji pokreće BIOS/UEFI. Kernel preuzima ulogu sličnu onoj dirigenta u orkestru, osiguravajući da hardver i softver rade u harmoniji. Ova uloga uključuje upravljanje opremom, korisnicima i sustavima datoteka. Kernel je uobičajena baza za druge programe koji se izvode na određenom sustavu i najčešće se izvodi prsten nula također poznat kao prostor jezgre.

Korisnički prostor

Koristimo izraz "korisnički prostor" da bismo obuhvatili sve što se događa izvan kernela.

Među programima koji se izvode u korisničkom prostoru su mnogi od temeljnih pomoćnih programa iz GNU projekta, od kojih je većina dizajnirana za pokretanje iz naredbenog retka. Možete ih koristiti u skriptama za automatizaciju raznih zadataka. Za više informacija o najvažnijim naredbama, pogledajte odjeljak 3.4 " ".

Pogledajmo na brzinu razne zadatke koje izvodi jezgra Linuxa.

3.1.1 Pokretanje opreme

Svrha jezgre je, prije svega, upravljanje i kontrola glavnih komponenti računala. Otkriva ih i konfigurira kada je računalo uključeno i kada je uređaj montiran ili uklonjen (na primjer, USB uređaj). Također ih čini dostupnima softveru više razine putem pojednostavljenog softverskog sučelja, tako da aplikacije mogu iskoristiti prednosti uređaja bez potrebe za rješavanjem detalja poput utora za proširenje u koji je kartica umetnuta. Programsko sučelje također pruža određenu razinu apstrakcije; to vam omogućuje korištenje opreme za video konferencije, na primjer, korištenje web kamere, bez obzira na model i proizvođača. Softver može koristiti sučelje Video za Linux(V4L) i kernel će pozive sučelja prevesti u stvarne hardverske naredbe potrebne za rad određene web kamere.

Kernel izvozi podatke o otkrivenom hardveru kroz /proc/ i /sys/ virtualne sustave. Aplikacije često pristupaju uređajima pomoću datoteka stvorenih u /dev/ . Posebne datoteke koje predstavljaju diskove (na primjer /dev/sda), particije (/dev/sdal), miševe (/dev/input/mouse0), tipkovnice (/dev/input/event0), zvučne kartice (/dev/snd/ * ), serijski priključci (/dev/ttyS*) i druge komponente.

Postoje dvije vrste datoteka uređaja: blok i znakovi. Prvi imaju karakteristike podatkovnog bloka: konačne su veličine i možete pristupiti bajtovima na bilo kojem mjestu u bloku. Potonji se ponašaju kao tok znakova. Možete čitati i pisati znakove, ali ne možete tražiti zadanu poziciju i mijenjati proizvoljne bajtove. Kako biste saznali vrstu datoteke uređaja, provjerite prvo slovo izlaza naredbe Is -1. To može biti ili b, za blok uređaje, ili c, za znakovne uređaje:

Kao što ste možda pogodili, diskovi i particije koriste datoteke blok uređaja, dok miš, tipkovnica i serijski priključci koriste datoteke znakova uređaja. U oba slučaja programsko sučelje uključuje posebne naredbe koje se mogu aktivirati putem sistemskog poziva ioctl.

3.1.2 Spajanje datotečnih sustava

Datotečni sustavi važan su aspekt kernela. Sustavi koji se temelje na Unixu kombiniraju sva spremišta datoteka u jednu hijerarhiju, omogućujući korisnicima i aplikacijama pristup podacima znajući njihovu lokaciju unutar te hijerarhije.

Početna točka ovog hijerarhijskog stabla naziva se korijen, predstavljena simbolom “/”. Ovaj direktorij može sadržavati imenovane poddirektorije. Na primjer, početni poddirektorij "/" zove se /home/. Ovaj poddirektorij, pak, može sadržavati druge poddirektorije, itd. Svaki direktorij također može sadržavati datoteke u koje će datoteke biti pohranjene. Dakle, home/buxy/Desktop/hello.txt se odnosi na datoteku pod nazivom hello.txt koja je pohranjena u poddirektoriju Desktop, koji se nalazi u poddirektoriju buxy početnog direktorija, koji je prisutan u korijen. Kernel se kompajlira između zadanog sustava imenovanja i lokacije za pohranu na disku.

Za razliku od drugih sustava, Linux ima samo jednu takvu hijerarhiju i može integrirati podatke s više diskova. Jedan od tih diskova postaje root, a ostali su montirani u direktoriju u hijerarhiji (ova se naredba u Linuxu zove mount). Ti drugi pogoni tada postaju dostupni pod točkama montiranja ( točke montiranja ) Ovo omogućuje pohranjivanje korisničkih kućnih direktorija (koji su obično pohranjeni u /home/ ) na zasebnom tvrdom disku, koji će sadržavati buxy direktorij (zajedno s početnim direktorijima drugih korisnika). Nakon što montirate disk na /home/, ti direktoriji postaju dostupni na svojoj normalnoj lokaciji, a razne staze kao što je /home/buxy/Desktop/hello.txt nastavljaju raditi.

Postoji mnogo formata datotečnog sustava koji odgovaraju mnogim načinima na koje se podaci mogu fizički pohraniti na diskove. Najpoznatiji su ext2, ext3 i ext4, no postoje i drugi. Na primjer, VFAT je datotečni sustav koji su povijesno koristili operativni sustavi DOS i Windows. Podrška za VFAT od strane operativnog sustava Linux omogućuje da tvrdi diskovi budu dostupni i pod Kali i Windows. U svakom slučaju, morate pripremiti datotečni sustav na disku prije nego što ga montirate, a ova se operacija poziva oblikovanje.

Naredbe poput mkfs.ext3 (gdje mkfs stoji za Napravite datotečni sustav) obrađuje formatiranje. Ove naredbe zahtijevaju kao parametar datoteku uređaja koja predstavlja particiju koju treba formatirati (na primjer, /dev/sdal, prva particija na prvom disku). Ova operacija uništava sve podatke i treba je pokrenuti samo jednom, osim ako ne želite obrisati datotečni sustav i početi ispočetka.

Postoje i mrežni datotečni sustavi kao npr NFS, koji ne pohranjuju podatke na lokalni disk. Umjesto toga, podaci se putem mreže prenose na poslužitelj koji ih pohranjuje i čini dostupnima na zahtjev. Uz apstrakciju datotečnog sustava, ne morate brinuti o tome kako je taj pogon mapiran, budući da datoteke ostaju dostupne u svom normalnom hijerarhijskom putu.

3.1.3 Procesno upravljanje

Proces je izvršna instanca programa koja zahtijeva pohranu memorije i za sam program i za njegove radne podatke. Kernel je odgovoran za kreiranje i praćenje procesa. Kada se program izvodi, kernel prvo dodjeljuje nešto memorije, učitava izvršni kod iz datotečnog sustava u tu memoriju, a zatim pokreće kod. Sadrži informacije o ovom procesu, od kojih je najistaknutiji identifikacijski broj poznat kao ID procesa (identifikator procesa(PID)).

Većina modernih operativnih sustava, točnije oni koji rade na Unix kernelu, uključujući Linux, sposobni su obavljati mnoge zadatke. Drugim riječima, omogućuju sustavu pokretanje više procesa u isto vrijeme.

Zapravo postoji samo jedan proces koji se izvodi u bilo kojem trenutku, ali kernel dijeli CPU vrijeme u male dijelove i pokreće svaki proces redom. Budući da su ti vremenski odsječci vrlo kratki (u milisekundama), daju dojam da se procesi odvijaju paralelno, iako su aktivni samo tijekom svog vremenskog intervala, a ostatak vremena miruju. Glavni cilj kernela je podesiti mehanizme raspoređivanja na način koji održava ovaj izgled uz povećanje performansi sustava. Ako je vremensko razdoblje predugo, može prestati pravilno reagirati. Pa, ako su prekratki, sustav će gubiti previše vremena na prebacivanje između njih.

Takve odluke mogu se kontrolirati korištenjem prioriteta procesa, pri čemu će se procesi visokog prioriteta izvoditi duže vrijeme i u češćim vremenskim odsječcima nego procesi niskog prioriteta.

Višeprocesorski sustavi (i druge varijante)

Gore opisana ograničenja da se samo jedan proces može izvoditi u isto vrijeme ne primjenjuju se u svim situacijama. Ispravnije bi bilo tako reći jedna jezgra može raditi samo s jednim procesom. Višeprocesorski, višejezgreni ili hipernitni sustavi omogućuju paralelno izvođenje više procesa. Međutim, isti sustav smanjenja vremena koristi se za rješavanje situacija u kojima ima više aktivnih procesa nego dostupnih procesorskih jezgri. To nije neobično: osnovni sustav, čak i potpuno neaktivan, gotovo uvijek ima desetke pokrenutih procesa.

Kernel dopušta pokretanje više neovisnih instanci istog programa, ali svakoj je dopušten pristup samo vlastitim vremenskim isječcima i memoriji. Na taj način njihovi podaci ostaju neovisni.

3.1.4 Upravljanje pravima

Unix sustavi podržavaju više korisnika i grupa i omogućuju vam kontrolu prava pristupa. U većini slučajeva proces definira korisnik koji ga pokreće. Određeni proces može izvoditi samo one radnje koje je odobrio njegov vlasnik. Na primjer, otvaranje datoteke zahtijeva od kernela da provjeri proces potrebnih prava (za više informacija konkretno o ovom primjeru, pogledajte odjeljak 3.4.4, “Upravljanje dozvolama”)

3.2 Linux naredbeni redak

Pod "naredbenim redkom" mislimo na tekstualno sučelje koje vam omogućuje unos naredbi, njihovo izvršavanje i pregled rezultata. Možete pokrenuti terminal (tekstualni zaslon unutar grafičke radne površine ili tekstualnu konzolu izvan GUI-ja) i tumač naredbi unutar njega ( ljuska).

3.2.1

Kada vaš sustav ispravno radi, najlakši način za pristup naredbenom retku je pokretanje terminala u sesiji grafičke radne površine.


Slika 3.1 Pokretanje GNOME terminala

Na primjer, na zadanom sustavu Kali Linux, GNOME terminal može se pokrenuti s popisa omiljenih aplikacija. Također možete unijeti "terminal" u prozoru Aktivnosti (prozor koji se aktivira kada pomaknete miš u gornji lijevi kut) i kliknite na ikonu aplikacije koja vam je potrebna koja se pojavi (Slika 3.1, "").

U slučaju bilo kakvih smetnji ili neispravnog rada vašeg GUI-a, i dalje možete pokrenuti naredbeni redak na virtualnim konzolama (do njih šest se može pristupiti preko šest kombinacija tipki, počevši od CTRL + ALT + F1 do CTRL + ALT + F6 – Ne morate pritisnuti tipku CTRL ako ste već u tekstualnom načinu rada izvan GUI-ja Xorg ili Wayland).

Dobivate uobičajeni zaslon za prijavu gdje unosite svoje korisničko ime i lozinku prije nego što pristupite naredbenom retku s njegovom ljuskom:

Poziva se program koji obrađuje podatke koje unesete i izvršava vaše naredbe ljuska(ljuska ili tumač naredbenog retka). Zadana ljuska dostupna u Kali Linuxu je Bash(to znači Bourne Opet Shell). Znak "$" ili "#" na kraju označava da ljuska čeka vaš unos. Ovi simboli također pokazuju kako vas Bash tretira kao običnog korisnika (prvi slučaj sa znakom dolara) ili kao superkorisnika (zadnji slučaj sa hashom).

3.2.2

Ovaj odjeljak daje samo kratak pregled nekih od naredbi, od kojih svaka ima mnogo različitih opcija i mogućnosti koje ovdje nisu obuhvaćene, stoga pogledajte opsežnu dokumentaciju dostupnu na odgovarajućim stranicama priručnika. U penetracijskom testiranju, najčešće ćete pristupiti sustavu kroz ljusku, nakon uspješnog iskorištavanja, a ne kroz GUI korisničko sučelje. Znati kako kompetentno koristiti naredbeni redak neophodno je ako želite uspjeti kao stručnjak za sigurnost.

Nakon pokretanja sesije, naredba pwd (koja je kratica za ispisati radni imenik) prikazat će vašu trenutnu lokaciju u datotečnom sustavu. Vašu trenutnu lokaciju možete promijeniti pomoću naredbe cd ime imenika(gdje cd znači (promijeni direktorij)). U slučaju da niste naveli imenik u koji želite ići, automatski ćete se vratiti u svoj matični imenik. Ako unesete cd -, bit ćete vraćeni u prethodni radni direktorij (onaj u kojem ste bili prije unosa zadnje naredbe cd). Nadređeni direktorij se uvijek zove .. (dvije točke), dok se trenutni direktorij zove .. (dvije točke). (jedan bod). Naredba ls vam omogućuje prijenos sadržaj imenika. Ako ne navedete dodatne parametre, naredba ls će prikazati sadržaj trenutnog direktorija.

Novi direktorij možete stvoriti pomoću naredbe mkdir naziv imenika, a također obrišite postojeći (prazan) direktorij pomoću naredbe rmdir ime imenika. Naredba mv će vam omogućiti potez i preimenovati datoteke i direktorije; izbrisati datoteka se može napraviti pomoću rm naziv datoteke, a kopiranje datoteke se vrši pomoću cp izvorna-datoteka ciljna-datoteka.

Ljuska izvršava svaku naredbu pokretanjem prvog programa s danim imenom koji pronađe u direktoriju navedenom varijablom okruženja STAZA. Najčešće se ti programi nalaze u /bin,/sbin, /usr/bin ili /usr/sbin. Na primjer, naredba ls je u /bin/ls; Ponekad naredbu izravno obrađuje ljuska, u kojem slučaju se naziva ugrađena ljuska (među njima su cd i pwd); Naredba tipa omogućuje vam postavljanje upita o vrsti svake naredbe.

Obratite pozornost na korištenje naredbe echo, koja jednostavno prikazuje liniju u terminalu. U ovom slučaju, koristi se za prikaz sadržaja varijable okruženja, jer Ljuska automatski zamjenjuje varijable s njihovim vrijednostima kada se izvrši naredbeni redak.

Varijable okoline

Varijable okoline omogućuju vam pohranjivanje globalnih postavki za ljusku ili druge programe. Oni su kontekstualni, ali nasljedni. Na primjer, svaki proces ima vlastiti skup varijabli okruženja (one su kontekstualne). Školjke, kao što su ljuske za prijavu, mogu deklarirati varijable koje će biti proslijeđene drugim programima koji se izvršavaju (nasljeđuju se).

Ove varijable mogu se definirati i za sustav u /etc/profile i za korisnika u ~/.profile, ali varijable koje nisu specifične za tumače naredbenog retka bolje je smjestiti u /etc/environment, jer će te varijable biti uvedene u sve korisničke sesije zahvaljujući Pluggable Authentication Module (PAM) – čak i ako nijedna ljuska nije pokrenuta.

3.3 Linux datotečni sustav

3.3.1 Standard hijerarhije datotečnog sustava

Kao i druge distribucije Linuxa, Kali Linux organiziran je prema standardu Sustav datotekaStandard hijerarhije(FHS), omogućujući korisnicima drugih Linux distribucija jednostavnu navigaciju Kali. FHS definira svrhu svakog imenika. Direktoriji najviše razine opisani su kako slijedi.

  • /bin/: glavni programi
  • /boot/: Kali Linux kernel i druge datoteke potrebne za njegov rani proces pokretanja
  • /dev/: datoteke uređaja
  • /etc/: konfiguracijske datoteke
  • /home/: osobne korisničke datoteke
  • /lib/: glavne knjižnice
  • /media/*: točke montiranja za prijenosne uređaje (CD-ROM, USB pogoni itd.)
  • /mnt/: privremene točke montiranja
  • /opt/: Izborne aplikacije koje pružaju treće strane
  • /root/: osobne datoteke administratora (root datoteke)
  • /run/: nepostojane datoteke tijeka rada koje ne postoje nakon ponovnog pokretanja (još nisu uključene u FHS)
  • /sbin/: sistemski programi
  • /srv/: podaci koje koriste poslužitelji koji se nalaze na ovom sustavu
  • /tmp/: privremene datoteke (ovaj direktorij se često prazni nakon ponovnog pokretanja)
  • /usr/: aplikacije (ovaj direktorij se dalje dijeli na bin, sbin, lib prema istoj logici kao i u korijenskom direktoriju). Osim toga, /usr/share/ sadrži podatke neovisne arhitekture. Direktorij /usr/local/ namijenjen je za korištenje od strane administratora za ručno instaliranje aplikacija bez prepisivanja datoteka kojima upravlja sustav pakiranja (dpkg).
  • /var/: Varijabilni podaci koje obrađuje demon. Ovo uključuje datoteke dnevnika, redove čekanja, međuspremnike i predmemorije.
  • /proc/ i /sys/ specifični su za Linux kernel (i nisu dio FHS-a). Kernel ih koristi za izvoz podataka u korisnički prostor.

3.3.2 Korisnikov matični imenik

Sadržaj korisničkog imenika nije standardiziran, ali postoji nekoliko konvencija vrijednih pažnje. Jedan je da je korisnički matični direktorij često označen tildom (“~”). Ovo je vrlo korisno znati jer tumači naredbi automatski zamjenjuju tildu ispravnim imenikom (koji je u varijabli okruženja DOM a čija je normalna vrijednost /home/user/ ).

Tradicionalno, konfiguracijske datoteke aplikacija često se pohranjuju izravno u vaš matični direktorij, ali njihovi nazivi datoteka obično počinju s točkom (na primjer, klijent e-pošte džukela pohranjuje konfiguraciju u ~/.muttrc ). Imajte na umu da su nazivi datoteka koji počinju s točkom skriveni prema zadanim postavkama; ls će ih ispisati samo ako je navedena opcija –a, a grafički upravitelji datoteka moraju biti eksplicitno konfigurirani za prikaz skrivenih datoteka.

Neki programi također koriste više konfiguracijskih datoteka organiziranih u jednom direktoriju (kao što je ~/.ssh/). Neke aplikacije (kao što je web preglednik Firefox) također koriste svoj direktorij za pohranjivanje predmemorije preuzetih podataka. To znači da ti direktoriji mogu na kraju zauzeti puno prostora na disku.

Ove konfiguracijske datoteke, koje su pohranjene izravno u vašem matičnom direktoriju, često se zajednički nazivaju dotfiles dugo vremena proširiti do te mjere da ti imenici mogu postati zatrpani njima. Srećom, suradnja pod okriljem FreeDesktop.org dovela je do stvaranja XDG Base Directory Specification, konvencije čija je svrha očistiti te datoteke i direktorije. Ova specifikacija navodi da konfiguracijske datoteke trebaju biti pohranjene u ~/.config, datoteke predmemorije u -/.cache, a podatkovne datoteke aplikacije u -/.local (ili njihove poddirektorije). Ova konvencija postupno uzima maha.

Grafička radna površina najčešće koristi prečace za prikaz sadržaja direktorija /Desktop/ (ili bilo koje druge riječi koja je točan prijevod ovoga, na sustavima koji ne koriste engleski). Konačno, sustav e-pošte ponekad sprema dolazne poruke u direktorij - /Mail/.

Ovo je zanimljivo:

UNIX operativni sustav

Službeni datum rođenja operativnog sustava UNIX smatra se 1. siječnja 1970. godine. Od tog trenutka svaki UNIX sustav računa svoje sistemsko vrijeme. Ovo je jako dugo vrijeme za operativni sustav. Danas, unatoč pojavi mnogih drugih operativnih sustava izgrađenih na drugačijim principima, UNIX je čvrsto među vodećima.

Glavne karakteristike UNIX-a, koje nam omogućuju razumijevanje razloga dugovječnosti ovog sustava, uključuju sljedeće.

Kod sustava napisan je na SI jeziku visoke razine, što ga čini lakim za razumijevanje, promjenu i prijenos na druge hardverske platforme.

Unatoč raznolikosti verzija UNIX-a, cijela se obitelj temelji na fundamentalno identičnoj arhitekturi i nizu standardnih sučelja.

UNIX ima jednostavan, ali moćan skup standardnih korisničkih sučelja.

UNIX Unified File System Interface omogućuje pristup ne samo podacima pohranjenim na diskovima, već i terminalima, pisačima, magnetskim trakama, CD-ima, mrežama, pa čak i memoriji.

Za UNIX sustav razvijen je veliki broj različitih aplikacija – od jednostavnih uređivača teksta do moćnih sustava za upravljanje bazama podataka.

Općenito, operativni sustav UNIX može se predstaviti dvorazinskim modelom, kao što je prikazano na sl. 8.1
.

U središtu je jezgra sustava. Kernel izravno komunicira s računalnim hardverom, izolirajući aplikacijske programe od značajki svoje arhitekture. Kernel uključuje programe koji implementiraju skup usluga koje se pružaju aplikacijskim programima. Usluge jezgre uključuju I/O operacije, stvaranje i upravljanje procesima, sinkronizaciju procesa itd. Sljedeća razina modela su sistemske usluge koje pružaju korisničko sučelje UNIX OS-a. Shema interakcije s jezgrom i aplikacija i zadataka sustava je ista.

Značajke operativnog sustava UNIX

Operativni sustav UNIX u interakciji je s hardverskim i softverskim resursima računala kako bi izvršio sljedeće funkcije:

    upravljanje opremom;

    upravljanje resursima;

    praćenje sustava;

Upravljanje opremom

Aplikacijski programi nemaju mogućnost izravnog upravljanja hardverom računala. Samo operacijski sustav obavlja funkcije upravljanja hardverom, dopuštajući aplikacijama i drugim programima pristup perifernim uređajima (pritom eliminirajući potrebu za poznavanjem specifičnosti upravljanja takvim uređajem). Koncept programske neovisnosti o specifičnoj hardverskoj implementaciji, ugrađenoj u OS, jedan je od važnih elemenata osiguravanja prenosivosti UNIX operacijskog sustava, što mu omogućuje široku upotrebu u različitim hardverskim konfiguracijama.

Upravljanje resursima

UNIX OS upravlja distribucijom računalnih resursa među mnogim korisnicima koji istovremeno obavljaju mnoge zadatke, često radeći s različitim objektima, podržavajući multitasking i višekorisničke načine rada. Multitasking omogućuje jednom korisniku pokretanje više programa istovremeno, dok CPU i RAM dijele više procesa.

Višekorisnički način rada omogućuje više korisnika da rade istovremeno dijeleći računalne resurse, uključujući skupe periferne uređaje kao što su pisači ili crtači. Ovaj način rada pokazuje se isplativijim od kombiniranja nekoliko strojeva s po jednim korisnikom.

Podrška za korisničko sučelje

Ovo je način pružanja interaktivne (pružanje dijaloga) interakcije između korisnika i računalnog sustava.

Moderne verzije UNIX operativnog sustava podržavaju nekoliko vrste sučelja: naredbeni redak, izbornik i grafičko korisničko sučelje.

Naredbeni redak obično pogodan za korisnike upoznate s funkcijama i timovi sustava. Prilikom rada s ovom vrstom sučelja, korisnik na "prompt" (zadano za korisnika je znak dolara) unosi svaku naredbu s tipkovnice. Ovo sučelje ne daje pregled sustava, ali vam omogućuje izvršavanje bilo koje naredbe na sustavu. Programi koji pružaju takvo sučelje nazivaju se komandne ljuske(ljuska). Postoji mnogo komandnih ljuski: Bourne shell (sh), Bourne Again Shell (bash), Korn shell (ksh), C shell (csh), Debian Almquist shell (dash), Zsh itd. Najčešći je bash.

Obično ga koriste početnici ili korisnici koji trebaju napraviti neke instalacije u operativnom sustavu. Često takvo sučelje funkcionira kao vodič: omogućuje korisniku odabir funkcije s popisa (izbornika) koju će sustav izvršiti. Tipično, izbornici su organizirani kao slojeviti tekst, nudeći korisniku više izbora. Primjer takvog sučelja je program sysadm koji administratoru sustava pomaže u obavljanju poslova na konfiguriranju i konfiguriranju sustava.

Grafičko korisničko sučelje namijenjen i početnicima i naprednim korisnicima. Omogućuje nekoliko načina interakcije s računalom: pregled objekata sustava prikazanih ikonama, izvršavanje naredbi odabirom grafičke slike (ikone) na zaslonu pomoću "miša" ili uređaja za praćenje. UNIX OS nudi X.desktop kao grafičko korisničko sučelje za rad s posebnim X terminalima ili sustav X Window za rad s običnim grafičkim terminalima.

Pružanje daljinskog pristupa računalnoj mreži

UNIX OS omogućuje korisnicima pristup resursima drugih računala koja rade u računalnoj mreži. Operativni sustav uključuje skup mrežnih aplikacija koje vam omogućuju uspostavljanje veze s udaljenim računalom, registraciju u udaljenom sustavu, prijenos podataka između mrežnih računala i korištenje e-pošte. UNIX podržava umrežavanje NFS datotečni sustav(Network File System), koji vam omogućuje korištenje naredbi operacijskog sustava za pristup datotečnom sustavu udaljenog računala.

Komponente operacijskog sustava UNIX

Kao što je gore spomenuto, operativni sustav je skup programa koji osigurava funkcije za upravljanje procesima u sustavu i implementira sučelje između korisnika i hardvera sustava. UNIX sustav sadrži tri glavne komponente: naredbeni sustav, ljuska i jezgra.

Operativni sustav UNIX sadrži nekoliko stotina naredbi koje obavljaju zadatke organizacije i obrade podataka te upravljanja okolinom korisnika. Same naredbe su programi koji izvode određene funkcije, obično zahtijevaju minimalan unos i izvršavaju se relativno brzo. Većina ih je dostupna svim korisnicima, no postoje naredbe koje su dostupne samo administratoru sustava, koji je povlašteni korisnik. Ponekad se pozivaju neke naredbe koje omogućuju interaktivni unos informacija kada se izvrše komunalije. Primjeri uslužnih programa uključuju uređivač teksta vi i naredbu mail za upravljanje e-poštom.

Školjke. Ljuske se obično nazivaju interaktivni programi koji pružaju korisničko sučelje jezgri operacijskog sustava. Ljuska postaje korisnikov aktivni proces od trenutka kada se prijavi na sustav pa sve dok se ne odjavi. Ovi programi su tumači naredbi (ponekad zvani procesori naredbi).

Kao što je gore navedeno, operativni sustav UNIX obično koristi nekoliko ljuski.

Ograničene ljuske (rsh i ksh su podskupovi Bourneove ljuske i Korn ljuske) dizajnirane su za korisnike koji trebaju ograničiti pristup sustavu.

Jezgra. Jezgra sustava je jezgra operativnog sustava koja pruža osnovne funkcije: stvaranje i upravljanje procesima, dodjeljivanje memorije i omogućavanje pristupa datotekama i perifernim uređajima.

Interakcija aplikacijskih zadataka s jezgrom odvija se putem standardnog sučelja za pozive sustava. Sučelje za pozive sustava definira format zahtjeva za osnovne usluge. Proces zahtijeva osnovnu funkciju jezgre putem sistemskog poziva određene procedure jezgre. Kernel izvršava zahtjev i procesu vraća potrebne podatke.

Jezgra se sastoji od tri glavna podsustava:

    1) podsustav za upravljanje procesima i memorijom;

    2) podsustav datoteka;

    3) ulazno/izlazni podsustav.

Izvodi sljedeće funkcije:

    stvaranje i brisanje procesa;

    raspodjela resursa sustava između procesa;

    sinkronizacija procesa;

    interakcija procesa.

Posebna funkcija jezgre koju obavlja planer procesa (scheduler) rješava sukobe između procesa koji se natječu za resurse sustava.

Omogućuje raspodjelu memorije između procesa. Ako nema dovoljno memorije za sve procese, kernel premješta dijelove procesa ili nekoliko procesa (obično pasivnih, koji čekaju neke događaje u sustavu) u posebno područje diska (područje “swap” ), oslobađajući resurse za pokrenute (aktivne) procese.

Datotečni podsustav pruža jedinstveno sučelje za pristup podacima koji se nalaze na diskovnim pogonima i perifernim uređajima. Izvodi operacije postavljanja i brisanja datoteka, obavlja operacije pisanja/čitanja podataka datoteke, a također kontrolira prava pristupa datotekama.

Izvršava zahtjeve iz podsustava datoteka i podsustava kontrole procesa za pristup perifernim uređajima. Interakcija je s upravljačkim programima uređaja - posebnim kernel programima koji služe vanjskim uređajima.

pristup UNIX sustavu

Da biste uspostavili kontakt s UNIX sustavom, vi morati imati:

    terminal;

Dobivanje registracijskog imena

Registracijsko ime je naziv koji UNIX sustav koristi za provjeru jeste li ovlašteni korisnik sustava kada tražite pristup njemu.

Morate unijeti svoje ime za prijavu svaki put kada se želite prijaviti.

Postoji nekoliko pravila za odabir registracijskog imena. Obično je duljina imena između 3 i 8 znakova. Može se sastojati od velikih ili malih slova, brojeva i podvlaka, ali ne može započeti brojem.

Međutim, vaše registracijsko ime može biti specifično za vašu prijavu. Primjeri valjanih imena:

Komunikacija s UNIX sustavom

Ako je UNIX instaliran na osobnom računalu, možete se prijaviti izravno na njega pomoću tekstualne virtualne konzole. Ali moguće su i druge mogućnosti pristupa.

Pretpostavimo da je terminal povezan izravno ili putem telefonske linije s računalom. Iako ovaj odjeljak opisuje uobičajeni postupak prijave, ove se upute možda neće odnositi na vaš sustav jer... Postoji nekoliko načina za prijavu na UNIX sustav putem telefonske linije.

Za komunikaciju sa sustavom morate uključiti terminal.

Ako je izravno spojen na računalo, odmah će se pojaviti upit u gornjem lijevom kutu:

Ako se kao terminal koristi osobno računalo konfigurirano za rad u mreži koristeći familiju TCP/IP protokola, potrebno je uspostaviti vezu s računalom na kojem je instaliran UNIX OS. To se može učiniti na nekoliko načina, na primjer korištenjem telnet mrežne aplikacije koja se nalazi u operativnim sustavima Windows ili korištenjem alata za pristup Internetu. Napominjemo da je ovo nesiguran protokol koji se danas praktički više ne koristi. Moderna alternativa je Secure Shell (SSH).

Primjer.

Kao terminal koristi se osobno računalo s Windows NT OS konfiguriranim za mrežni rad. Morate se registrirati u UNIX sustavu.

Potrebni unosi i radnje:

    da biste uspostavili vezu s UNIX OS-om, morate znati naziv mreže udaljenog računala ili njegovu IP adresu (na primjer, 192.168.2.19);

    pronađite telnet aplikaciju na svom osobnom računalu i pokrenite je;

    u prozoru aplikacije koji se otvori odaberite stavku izbornika Veza;

    unesite IP adresu udaljenog UNIX sustava (na primjer, 192.168.2.19);

    postavite karakteristike terminala po želji.

Postupak registracije

Kada se pojavi upit za prijavu: unesite svoje ime za prijavu i pritisnite . Na primjer, ako je vaše ime za prijavu all30123, tada bi niz za prijavu izgledao ovako:

    prijava: svi30123

Ako pogriješite prilikom unosa imena za prijavu, možete je ispraviti pomoću simbola @ ili tipke .

Upamtite da su velika i mala slova važna. Imena all30123 i ALL30123 pripadaju dvama različitim korisnicima.

Sustav sada od vas traži da unesete lozinku. Unesite svoju lozinku i pritisnite tipku . Ako pogriješite prilikom unosa, možete je ispraviti pomoću tipke ili simbol @. UNIX ne prikazuje vašu lozinku na ekranu iz sigurnosnih razloga.

Ako su ime za prijavu i lozinka valjani na UNIX sustavu, sustav može prikazati trenutne informacije, a zatim i naredbeni redak.

Kada se prijavite, zaslon vašeg terminala izgledat će ovako:

    prijava: svi30123

Ako pogriješite prilikom prijave, UNIX će prikazati poruku:

    netočna prijava

Zatim će vam dati drugu priliku da se prijavite s upitom za prijavu. Ekran će izgledati ovako:

    prijava: svi30123

Ako se nikada niste prijavili na UNIX sustav, vaš postupak prijave može se razlikovati od gore opisanog. To se može dogoditi ako administrator sustava ima postupak za dodjelu privremenih lozinki novim korisnicima. Ako imate privremenu lozinku, sustav će vas prisiliti da odaberete novu lozinku prije nego što vam dopusti registraciju.

Prisiljavajući vas da odaberete novu lozinku isključivo za svoju upotrebu, sustav pruža veću sigurnost.

Postupak prijave:

    Uspostavljate kontakt; UNIX sustavi prikazuju login: prompt. Unesite svoje ime za prijavu i pritisnite tipku .

    UNIX sustavi prikazuju lozinku: prompt. Unesite svoju privremenu lozinku i pritisnite tipku .

    Sustav će vas obavijestiti da vaša privremena lozinka više nije važeća i zatražiti da odaberete novu lozinku.

    Sustav će od vas tražiti da unesete staru lozinku. Unesite privremenu lozinku.

    Sustav će od vas tražiti da unesete novu lozinku. Unesite odabranu lozinku.

Lozinka mora odgovarati sljedeće zahtjeve:

    svaka lozinka se mora sastojati od najmanje 6 znakova;

    Svaka lozinka mora sadržavati najmanje 2 abecedna znaka i jedan broj ili poseban znak. Abecedni znak može biti upisan velikim ili malim slovima;

    Svaka lozinka mora se razlikovati od vašeg imena za prijavu. Velika slova i njihova odgovarajuća mala slova su ekvivalentna;

    Nova lozinka mora se razlikovati od stare najmanje tri znaka.

Primjeri valjanih zaporki:

Za provjeru, sustav od vas traži da ponovno unesete lozinku. Ponovno unesite lozinku.

Ako novu lozinku drugi put unesete drugačije nego prvi put, sustav će vas obavijestiti da se lozinke ne podudaraju i zatražiti da ponovite postupak registracije. Kada se lozinke podudaraju, sustav će prikazati savjet.

Sljedeći zaslon prikazuje opisani postupak:

    prijava: dko30123

    lozinka:

    Vaša lozinka je istekla

    Odaberite novi

    Stara lozinka:

    Nova lozinka:

    Ponovo unesite novu lozinku:

Identifikacija korisnika

Kada administrator sustava registrira korisnika na sustavu, dvije komponente identifikacije povezane su s imenom za prijavu: ID korisnika(ID korisnika - UID) i id grupe kojoj pripada (ID grupe - GID).

Korisničko ime povezano je s jedinstvenim brojem. Sustav ga koristi kao alat u raznim UNIX sigurnosnim mehanizmima, poput zaštite datoteka ili izvršavanja privilegiranih naredbi.

Svaki UNIX OS ima jednog posebnog superkorisnika s UID = 0, koji je obično povezan s imenom root. To znači da korisnik ima sve privilegije sustava.

Naziv grupe također je povezan s brojem, koji se obično odnosi na grupu korisnika ujedinjenih zajedničkim zadacima, na primjer, zaposlenici odjela, studenti istog smjera itd. Ovaj broj također koriste sigurnosni mehanizmi u sustavu. Ako korisnik mora raditi s podacima iz drugih grupa, ovaj identifikator se povezuje s imenima drugih grupa.

Sve registracijske informacije o korisnicima sustava pohranjene su u datoteci /etc/passwd.

U modernim verzijama UNIX OS-a, šifrirane lozinke i povezane informacije o sustavu pohranjuju se u datoteku /etc/shadow, čija je struktura i svrha polja prikazana na slici. 8.2
.

Zapisi podataka o svakoj instaliranoj grupi sadržani su u datoteci /etc/group, čija je struktura i svrha polja prikazana na slici. 8.3 .

Struktura i svrha polja u datoteci /etc/passwd prikazani su na sl. 8.4
.

Unosne konvencije

Kada komunicirate s UNIX sustavom, morate biti svjesni konvencija unosa. UNIX sustav zahtijeva unos naredbi malim slovima (osim nekih naredbi koje imaju velika slova). Ostale konvencije omogućuju izvršavanje zadataka, poput brisanja slova ili brisanja retka, pritiskom na jednu ili dvije tipke.

Tablica 8.1.
Ulazni ugovori

Ključ

Funkcija

Naredbeni redak sustava (traži da unesete naredbu)

ili<^h>

Izbriši znak

Zaustaviti izvršavanje programa ili naredbe

Izbrišite trenutnu naredbenu liniju

Kada se koristi s drugim simbolom, to znači izvođenje posebne funkcije (zvane slijed promjene koda). Kada se koristi u načinu uređivanja vi uređivača, znači kraj načina unosa teksta i povratak u način rada za naredbe

Označava kraj retka unosa i postavlja kursor na novi red

Prekid prijave ili odjave (isključi)

Vratite se jedan znak unazad (za terminale koji nemaju ključ )

Privremeno zaustavi izlaz na zaslonu

Nastavite prikazivati ​​informacije koje ste prestali koristiti<^s>

Bilješka. U tablici 2.1 ^ simbol znači kontrolni znak . To jest, u ovom slučaju morate pritisnuti dvije tipke istovremeno: tipku kontrolnog znaka i navedeno slovo.

Savjet za naredbu

Standardni prompt naredbenog retka za korisnika na UNIX sustavu je znak dolara $. Za root korisnika - #. Kada se na zaslonu vašeg terminala pojavi upit, to znači da UNIX sustav čeka vaše upute. Odgovarajući odgovor na upit s vaše strane je izdavanje naredbe nakon čega slijedi pritisak na tipku .

Ispravljanje pogrešaka pri unosu

Postoji nekoliko načina za ispravljanje pogrešaka pri unosu. Simbol @ briše trenutni redak i tipke I<^h>briše zadnji uneseni znak. Ovi ključevi i znakovi su zadane vrijednosti. Funkcije koje obavljaju mogu se dodijeliti drugim tipkama.

Zaustavljanje izvršenja naredbe

Da biste zaustavili izvođenje većine naredbi, jednostavno pritisnite tipkovni prečac . UNIX sustav će zaustaviti program i prikazati upit na ekranu. Ovaj upit služi kao signal da je zadnja pokrenuta naredba zaustavljena i da je sustav spreman primiti sljedeću naredbu.

Kada se na ekranu pojavi upit, UNIX sustav vas je prepoznao kao ovlaštenog korisnika i čeka da unesete naredbu.

Općenito, naredbeni redak ima sljedeću strukturu:

    naziv [opcije] [argumenti]

Naziv naredbe, opcije i argumenti moraju biti odvojeni razmakom ili tabulatorom. Obrada naredbenog retka od strane tumača počinje tek nakon pritiska tipke .

U sljedećem opisu funkcija naredbi pretpostavlja se:

Opcije (parametri):

    su znak modifikacije naredbe i, u pravilu, sastoje se od jednog znaka; velika i mala slova znače različite modifikacije;

    u pravilu počinju simbolom "-" ("minus"), koji nije odvojen razmakom od ostalih znakova;

    mogu se kombinirati na bilo koji način, ali se znak minus može koristiti samo jednom.

Argumenti određuju objekte koje treba obraditi naredba, na primjer:

    naziv datoteke;

    broj procesa;

Ako znate što bi pozvani program trebao učiniti, ali niste sigurni u ispravnu sintaksu, možete navesti opciju --help u naredbenom retku nakon naziva naredbe:

    $cal --pomoć

Kako bi se mogli dobiti detaljni podaci, OS UNIX ima ugrađen priručnik (on-line) kojemu je omogućen pristup man i odgovarajućim naredbama.

U najjednostavnijem slučaju, da biste dobili informacije o bilo kojoj naredbi, morate navesti njezino ime kao argument naredbe man:

    čovjek ime_naredbe

apropos prikazuje popis naredbi prema ključnoj riječi (uzorku) navedenoj kao argument naredbe:

    apropos šablona

Primjeri.

Ako pokrenete naredbu datum i pritisnete tipku , UNIX sustav će pozvati program pod nazivom date, izvršiti ga i prikazati rezultat na ekranu:

    $datum

    Utorak, 18. rujna 14:49:07 2000

Naredba datum prikazuje datum i vrijeme.

Ako pokrenete naredbu who i pritisnete tipku , zaslon će izgledati ovako:

    $ WHO

    dko30024

    18. listopada 8:30

    dko30001

    18. listopada 8:34

    dko30020

    18. listopada 8:32

    18. listopada 8:00

koji navodi imena za prijavu korisnika koji trenutno rade na vašem sustavu. Oznaka tty (drugi stupac) odnosi se na posebne datoteke koje odgovaraju svakom korisničkom terminalu. Treći i četvrti stupac označavaju datum i vrijeme registracije svakog korisnika. .

To znači da ste uspješno završili rad sa sustavom i da je on spreman za registraciju novog korisnika.

Ako ste se prijavili s udaljenog terminala, veza će se prekinuti, o čemu će vas obavijestiti npr. aplikacija telnet.

Bilješka. Prije nego što odspojite terminal, svakako isključite sustav.

Glavni zaključci

    UNIX je višezadaćni i višekorisnički sustav. Jedan moćan poslužitelj može poslužiti zahtjeve velikog broja korisnika. Sustav može obavljati različite funkcije: raditi kao računalni poslužitelj koji opslužuje stotine korisnika, kao poslužitelj baze podataka, kao mrežni poslužitelj ili mrežni usmjerivač.

    Općenito, operativni sustav UNIX može se predstaviti kao dvoslojni model. U središtu je jezgra sustava (kernel). Kernel izravno komunicira s računalnim hardverom, izolirajući aplikacijske programe od značajki svoje arhitekture. Kernel uključuje programe koji implementiraju skup usluga koje se pružaju aplikacijskim programima. Usluge jezgre uključuju I/O operacije, stvaranje i upravljanje procesima, sinkronizaciju procesa itd. Sljedeća razina modela su sistemske usluge koje pružaju korisničko sučelje UNIX OS-a. Shema interakcije s jezgrom i aplikacija i zadataka sustava je ista.

    Operativni sustav UNIX u interakciji je s hardverskim i softverskim resursima računala kako bi izvršio sljedeće funkcije:

    • upravljanje opremom;

      upravljanje resursima;

      podrška za korisničko sučelje;

      obavljanje unosa i izlaza informacija;

      praćenje sustava;

      pružanje udaljenog pristupa računalnoj mreži.

    UNIX sustav sadrži tri glavne komponente: naredbeni sustav, ljusku i jezgru.

    Operativni sustav UNIX sadrži nekoliko stotina naredbi koje obavljaju zadatke organizacije i obrade podataka te upravljanja okolinom korisnika. Same naredbe mali su programi koji izvode određene funkcije, obično zahtijevaju minimalan unos, a izvršavaju se relativno brzo.

    Školjke se obično nazivaju interaktivni programi koji pružaju korisničko sučelje jezgri operacijskog sustava. Ljuska postaje korisnikov aktivni proces od trenutka kada se prijavi na sustav pa sve dok se ne odjavi. Ovi programi su tumači naredbi (ponekad zvani procesori naredbi).

    Jezgra sustava je jezgra operativnog sustava koja pruža osnovne funkcije: stvaranje i upravljanje procesima, dodjeljivanje memorije i omogućavanje pristupa datotekama i perifernim uređajima.

    Kernel se sastoji od tri glavna podsustava:

    • podsustav za upravljanje procesima i memorijom;

      datotečni podsustav;

      ulazno/izlazni podsustav.

    Za uspostavljanje kontakta s UNIX sustavom potrebno je imati:

    • terminal;

      ime za prijavu koje vas identificira kao ovlaštenog korisnika;

      lozinka koja potvrđuje vaš identitet;

      upute za dijalog i pristup UNIX sustavu ako vaš terminal nije direktno spojen na računalo.

Kontrolna pitanja

    Za koje je probleme dizajnirana klasa operativnog sustava UNIX?

    Koje bi sposobnosti trebao pružati operativni sustav klase UNIX?

    Koji su zadaci jezgre UNIX OS-a?

    Koje su funkcije jezgre OS UNIX?

    Koja je svrha komponente Command System operativnog sustava?

    Možemo li reći da ljuska korisniku pruža interaktivno sučelje za interakciju s operativnim sustavom?

    Kako se provjera autentičnosti korisnika izvodi u UNIX-u?

UNIX(Unix, Unix) - skupina prijenosnih, višezadaćnih i višekorisničkih operacijskih sustava. Prvi operativni sustav Unix razvila je kasnih 1960-ih i ranih 1970-ih američka istraživačka tvrtka Bell Laboratories. U početku je bio fokusiran na miniračunala, a zatim se počeo koristiti na računalima svih klasa, uključujući glavna računala i mikroračunala. Tome je pridonijela prilagodba Unixa 32-bitnim mikroprocesorima iz Intela, koja je provedena 1990. godine. Funkcionalnost i fleksibilnost Unixa osigurala je njegovu upotrebu u heterogenim automatiziranim sustavima, kao i stvaranje desetaka standarda za proizvođače računala. Operativni sustavi obitelji Unix:

Linux je verzija operativnog sustava Unix za računalne platforme temeljene na Intelovim procesorima;
HP-UX - verzija Hewlett-Packard; stalno se razvija i kompatibilan je s IE-64, što je novi standard za 64-bitnu arhitekturu;
SGI Irix je Silicon Graphics PC operativni sustav temeljen na System V Release 3.2 s BSD elementima. Na ovoj verziji Unixa, studio Industrial Light & Magic napravio je filmove “Terminator 2” i “Jurassic Park”.
SCO Unix je verzija Santa Cruz Operation za Intel platformu, neovisno o proizvođačima hardvera;
IBM AIX - implementiran na temelju System V Release 2 s nekim BSD proširenjima;
DEC Unix je operativni sustav s podrškom za klastere; dizajniran za rad zajedno s Windows NT;
NeXTStep-4.3 BSD - OS temeljen na Mach kernelu, koji se koristi u NeXT računalima; pripada Apple Computeru i služi kao operativni sustav za Macintosh računala;
Sun Solaris je operativni sustav za SPARC stanice temeljen na System V Release 4 s brojnim dodacima.

Operativni sustav Unix pojavio se tijekom razvoja miniračunala. Godine 1969. istraživačka tvrtka Bell Labs započela je s razvojem kompaktnog operativnog sustava za 18-bitno miniračunalo DEC PDP-7 tvrtke Digital Equipment Corporation. Sustav je izvorno napisan na asemblerskom jeziku, a datumom rođenja Unixa smatra se 1. siječnja 1970. Godine 1973. ponovno je napisan u jeziku C koji je razvijen u Bell Labsu. Istovremeno je održana i službena prezentacija operativnog sustava. Njegovi autori, zaposlenici Bell Labsa Ken Thompson i Dennis M. Ritchie, nazvali su svoju zamisao "univerzalnim OS-om za dijeljenje vremena".

Unix se temeljio na hijerarhijskom datotečnom sustavu. Svaki proces smatran je sekvencijalnim izvođenjem programskog koda unutar autonomnog adresnog prostora, a rad s uređajima tretiran je kao rad s datotekama. U prvoj verziji implementiran je ključni koncept procesa, kasnije su se pojavili sistemski pozivi (fork, wait, exec, exit). Godine 1972. uvođenjem cijevi uveden je cjevovod.

Do kraja 1970-ih, Unix je postao popularan operativni sustav, čemu su pomogli preferencijalni uvjeti distribucije u sveučilišnom okruženju. Unix je prebačen na mnoge hardverske platforme i počele su se pojavljivati ​​njegove varijante. S vremenom je Unix postao standard ne samo za profesionalne radne stanice, već i za velike poslovne sustave. Pouzdanost i fleksibilnost UNIX postavki učinile su ga popularnim, posebno među administratorima sustava. Imala je aktivnu ulogu u širenju globalnih mreža, a prije svega interneta.

Zahvaljujući politici otkrivanja izvornog koda, brojni besplatni Unix dijalekti koji rade na Intel x86 platformi (Linux, FreeBSD, NetBSD, OpenBSD) postali su široko rasprostranjeni. Potpuna kontrola nad tekstovima omogućila je stvaranje sustava s posebnim zahtjevima za performanse i sigurnost. Unix je također asimilirao elemente drugih operativnih sustava, što je rezultiralo razvojem POSIX i X/Open programskih sučelja.

Postoje dvije neovisno razvijene grane UNIX-a - System V i Berkeley, na temelju kojih nastaju Unix dijalekti i Unix-like sustavi. BSD 1.0, koji je postao osnova za nekomercijalne UNIX dijalekte, objavljen je 1977. godine na Kalifornijskom sveučilištu u Berkeleyu, na temelju izvornog koda UNIX V6. U 1982-1983, prvi komercijalni dijalekti Unixa, System III i System V, objavljeni su od strane Unix System Laboratories (USL). System V verzija Unixa je bila osnova za većinu kasnijih komercijalnih varijanti. Godine 1993. AT&T je prodao prava na Unix zajedno s USL laboratorijem Novellu, koji je razvio UNKWare dijalekt temeljen na System V, u vlasništvu Santa Cruz Operation pod imenom SCO UNIXWare. Zaštitni znak Unix u vlasništvu je X/Open Company.

Unix je stekao popularnost zbog svoje sposobnosti rada na različitim hardverskim platformama - prenosivosti, odnosno mobilnosti. Problem mobilnosti u UNIX-u riješen je objedinjavanjem arhitekture operativnog sustava i korištenjem jedinstvenog jezičnog okruženja. Jezik C razvijen u Bell Labsu postao je poveznica između hardverske platforme i operativnog okruženja.

Mnogi problemi prenosivosti u Unixu riješeni su postojanjem jedinstvenog softvera i korisničkog sučelja. Dvije organizacije bave se problemom usklađivanja više Unix dijalekata: IEEE Portable Applications Standards Committee (PASC) i X/Open Company (The Open Group). Ove organizacije razvijaju standarde koji omogućuju integraciju heterogenih operativnih sustava, uključujući one koji nisu povezani s Unixom (IEEE PASC - POSIX 1003, X/Open - Common API). Dakle, POSIX-kompatibilni sustavi su Open-VMS, Windows NT, OS/2.

Prenosivost Unixa, kao sustava orijentiranog na širok raspon hardverskih platformi, temelji se na modularnoj strukturi sa središnjim kernelom. U početku je UNIX kernel sadržavao skup alata odgovornih za otpremu procesa, dodjelu memorije, rad sa sustavom datoteka, podršku za upravljačke programe vanjskih uređaja, mrežne i sigurnosne alate.

Nakon toga, izdvajanjem minimalno potrebnog skupa alata iz tradicionalnog kernela, formiran je mikrokernel. Najpoznatije implementacije Unix mikrojezgri su Amoeba, Chorus (Sun Microsystems), QNX (QNX Software Systems). Mikrokernel Chorus zauzima 60 KB, QNX - 8 KB. Na temelju QNX-a razvijena je Neutrino mikrojezgra od 30 KB usklađena s POSIX-om. Na Sveučilištu Carnegie Mellon 1985. razvijena je Machova mikrojezgra koja se koristila u NeXT OS (NeXT), MachTen (Mac), OS/2, AIX (za IBM RS/6000), OSF/1, Digital UNIX (za Alpha), Windows NT, BeOS.

U Rusiji se operativni sustav Unix koristi kao mrežna tehnologija i operativno okruženje za različite računalne platforme. Infrastruktura ruskog interneta formirana je na temelju Unixa. Od ranih 1980-ih, domaći rad na operativnom sustavu Unix obavljao se u Institutu za atomsku energiju nazvanom po. I. V. Kurchatov (KIAE) i Institut za primijenjenu kibernetiku Ministarstva automobilske industrije. Rezultat ujedinjenja ovih timova bilo je rođenje operativnog sustava DEMOS (Dialogue Unified Mobile Operating System), koji je, uz domaće analoge PDP-11 (SM-4, SM-1420), prebačen u ES Računalo i Elbrus. Unatoč svojoj svestranosti, Unix je izgubio tržište osobnih računala od Microsoftove Windows obitelji. Unix operativni sustav održava svoju poziciju u području kritičnih sustava s visokim stupnjem skalabilnosti i tolerancije na pogreške.

Godine 1965. Bell Telephone Laboratories (odjel AT&T-a), zajedno s kaznenim operaterom i Massachusetts Institute of Technology (rIT), počeli su razvijati novi operativni sustav nazvan rULTIqS (rULTipleoed Information and Computing Service). Sudionici projekta imali su za cilj stvoriti višezadaćni operativni sustav s dijeljenjem vremena koji može podržati rad nekoliko stotina korisnika. Iz Bell Labsa u projektu su sudjelovala dva sudionika: Ken Thompson i Dennis Ritchie. Iako sustav rULTIqS nikada nije dovršen (Bell Labs se povukao iz projekta 1969.), postao je preteča operativnog sustava koji je kasnije postao poznat kao Unio.

Međutim, Thompson, Ritchie i brojni drugi zaposlenici nastavili su raditi na stvaranju praktičnog sustava za programiranje. Koristeći ideje i razvoj koji su proizašli iz rada na rULTIqS-u, stvorili su mali operativni sustav 1969. godine koji je uključivao sustav datoteka, podsustav za upravljanje procesima i mali skup uslužnih programa. Sustav je napisan u asembleru i korišten na računalu nDn-7. Ovaj operativni sustav nazvan je UNIX, naziv sličan rULTIqS-u, a skovao ga je drugi član razvojnog tima, Brian Kernigan.

Iako je rana verzija UNIX-a obećavala puno, ne bi ostvarila svoj puni potencijal bez primjene na nekom stvarnom projektu. I takav projekt je pronađen. Kada je patentni odjel Bell Labsa trebao sustav za obradu teksta 1971. godine, UNIX je odabran kao operativni sustav. Do tada je prebačen na snažniji nDn-11 i malo je narastao 16K je zauzimao sam sustav, 8K je dodijeljeno aplikacijskim programima, maksimalna veličina datoteke postavljena je na 64K sa 512K diska. prostor.

Ubrzo nakon što su stvorene prve asemblerske verzije, Thomson je počeo raditi na prevoditelju za jezik FxuTuAN, i kao rezultat toga razvio je jezik B. Ovo je bio interpreter sa svim ograničenjima interpretera, a Ritchie ga je razvio u drugi jezik, tzv. q, što je omogućilo generiranje strojnog koda. Godine 1973. jezgra operativnog sustava prepisana je na jeziku visoke razine C, što je dotad nečuven potez koji je imao ogroman utjecaj na popularnost UNIX-a. To je značilo da se UNIX sustav sada može prenijeti na druge hardverske platforme u roku od nekoliko mjeseci, a uvođenje promjena nije bilo posebno teško. Broj pokrenutih UNIX sustava u Bell Labsu premašio je 25, a grupa UNIX Sgstem Proup (USp) osnovana je za održavanje UNIX-a.

Istraživačke verzije (AT&T Bell Labs)

Sukladno saveznom zakonu SAD-a, AT&T nije imao pravo komercijalno distribuirati UNIX i koristio ga je za vlastite potrebe, no od 1974. operativni sustav počinje se prenositi na sveučilišta u obrazovne svrhe.

Operativni sustav je moderniziran, svaka nova verzija opremljena je pripadajućim izdanjem Programerskog vodiča, od čega su same verzije nazvane izdanjima (jdition). Od 1971. do 1989. izašlo je ukupno 10 izdanja. Dolje su navedena najvažnija izdanja.

Revizija 1 (1971.)

Prva verzija UNIX-a napisana u asemblerskom jeziku za nDn-11. Uključuje B jezik i mnoge dobro poznate naredbe i pomoćne programe, uključujući cat, chdir, chmod, cp, ed, find, mail, mkdir, mkfs, mount, mv, rm, rmdir, wc, who. Prvenstveno se koristio kao alat za obradu teksta za patentni odjel Bell Labs.

Revizija 3 (1973.)

U sustavu se pojavila naredba cc, koja je pokrenula prevoditelj jezika C i dosegla 16 instaliranih sustava.

Revizija 4 (1973.)

Prvi sustav u kojem je kernel napisan na jeziku visoke razine C.

Revizija 6 (1975.)

Prva verzija UNIX-a dostupna izvan Bell Labsa. Sustav je potpuno prepisan u C-u. Od tada su se počele pojavljivati ​​nove verzije koje nisu razvijene u Bell Labsu i popularnost UNIX-a počela je rasti. Ova verzija sustava instalirana je na Kalifornijskom sveučilištu u Berkeleyju, a na njezinoj je osnovi ubrzo izdana prva verzija BSD (Berheleg Softkare Distributuion) UNIX.

Revizija 7 (1979.)

Uključuje tumač naredbi Bourne Shell i C kompajler od Kernighana i Ritchieja. Jezgra sustava je ponovno napisana za prenosivost na druge platforme. Licencu za ovu verziju otkupio je ricrosoft koji je na temelju nje razvio operativni sustav XjNIX.

UNIX je postajao sve popularniji, a do 1977. broj operativnih sustava premašio je 500. Iste godine sustav je po prvi put prenesen na računalo koje nije nDn.

UNIX genealogija

Ne postoji standardni UNIX sustav; svi sustavi slični UNIX-u imaju karakteristike i mogućnosti koje su jedinstvene za njih. Ali iza različitih naziva i značajki, još uvijek je lako uočiti arhitekturu, korisničko sučelje i programsko okruženje UNIX-a. Objašnjenje je vrlo jednostavno: svi su ti operativni sustavi bliski ili dalji rođaci. Najistaknutiji predstavnici ove obitelji opisani su u nastavku.

Sustav III (1982.)

Ne želeći izgubiti inicijativu za razvoj UNIX-a, AT&T je 1982. spojio nekoliko postojećih verzija OS-a i stvorio verziju nazvanu Sgstem III.

Ova je verzija bila namijenjena distribuciji izvan Bell Labsa i AT&T-a i označila je početak moćne grane UNIX-a koja je i danas živa i raste.

Sustav V (1983.)

Godine 1983. objavljen je System V, a kasnije još nekoliko izdanja za njega:

  • SVR2 (1984): Međuprocesna komunikacija (IPC) dijeljena memorija, semafori
  • SVR3 (1987): I/O Streams System, File System Switch, zajedničke knjižnice
  • SVR4 (1989): NFS, FFS, BSD utičnice. SVR4 kombinira mogućnosti nekoliko dobro poznatih verzija UNIX-a - SunOS, BSD UNIX i prethodnih izdanja System V.

Mnoge komponente ovog sustava bile su podržane standardima ANSI, POSIX, X/Open i SVID.

UNIX BSD (1978) (Utemeljeno na 6. izdanju UNIX-a)

  • 1981, po nalogu DAunA, Tqn/In stog je ugrađen u BSD UNIX (u 4.2BSD)
  • 1983. aktivno koristio mrežne tehnologije i mogao se spojiti na ARPANET mrežu
  • 1986. izdana verzija 4.3BSD
  • 1993. Objavljeni 4.4BSD i BSD Lite (zadnje izdane verzije).

OSF/1 (1988) (Open Software Foundation)

Godine 1988. IBM, DEC, HP udružili su se kako bi stvorili verziju UNIX-a neovisnu o AT&T-u i SUN-u i stvorili organizaciju nazvanu OSF. Rezultat djelovanja ove organizacije bio je operativni sustav OSF/1.

Standardi

Što se više različitih varijanti UNIX-a pojavljivalo, to je potreba za standardizacijom sustava postajala očiglednija. Postojanje standarda olakšava prijenos aplikacija i štiti korisnike i proizvođače. Kao rezultat toga, pojavilo se nekoliko organizacija povezanih sa standardima i razvijen je niz standarda koji su utjecali na razvoj UNIX-a.

IEEE POSIX (Sučelje prijenosnog operativnog sustava Instituta inženjera elektrotehnike i elektronike)

  • 1003.1 (1988) API (Application Programming Interface) OC standardizacija
  • 1003.2 (1992) definicija ljuske i pomoćnih programa
  • 1003.1b (1993) API za aplikacije u stvarnom vremenu
  • 1003.1c (1995) definicije "niti"

ANSI (Američki nacionalni institut za standarde)

  • Standardni X3.159 (1989.)
  • Sintaksa i semantika jezika C
  • Sadržaj libc standardne biblioteke

X/Otvori

  • 1992 Xwindow standard
  • 1996. stvaranje, zajedno s OSF-om, korisničkog sučelja CDE (Common Desktop Environment) i njegovog sučelja s Motiff grafičkom ljuskom

SVID (Definicija sučelja System V)

Opisuje vanjska sučelja UNIX verzija sustava V. Osim SVID-a, objavljen je SVVS (System V Verification Suite) - skup tekstualnih programa koji vam omogućuju da odredite je li sustav u skladu sa SVID standardom i je li vrijedan nosi ponosno ime System V.

Poznate verzije UNIX-a

  • IBM AIX temeljen na SVR2 s mnogim značajkama SVR4, BSD, OSF/1
  • HP-UX verzija HP-a
  • IRIX verzija Silicon Graphics, slična SVR4
  • Digitalna UNIX verzija DEC-a temeljena na OSF/1
  • SCO UNIX (1988.) jedan od prvih UNIX sustava za PC razvijen na temelju SVR3.2
  • Solaris verzija UNIX SVR4 od Sun Microsystemsa

Osnove Linuxa

Linux je inspiriran operativnim sustavom Unix koji se pojavio 1969. godine i još uvijek se koristi i razvija. Velik dio internog funkcioniranja UNIX-a postoji u Linuxu, što je ključno za razumijevanje osnova sustava.

Unix se prvenstveno fokusirao na sučelje naredbenog retka, a Linux je to naslijedio. Stoga je grafičko korisničko sučelje sa svojim prozorima, slikama i izbornicima izgrađeno povrh glavnog sučelja - naredbenog retka. Dodatno, to znači da je datotečni sustav Linuxa dizajniran da se njime lako upravlja i da mu se može pristupiti iz naredbenog retka.

Imenici i datotečni sustav

Datotečni sustavi u Linuxu i Unixu organizirani su prema hijerarhijskoj strukturi poput stabla. Najviša razina datotečnog sustava je / ili korijenski direktorij . To znači da se sve ostale datoteke i direktoriji (uključujući ostale pogone i particije) nalaze unutar korijenskog direktorija. U UNIX-u i Linuxu sve se smatra datotekom - uključujući tvrde diskove, njihove particije i prijenosne medije.

Na primjer, /home/jebediah/cheeses.odt prikazuje puni put do datoteke cheeses.odt. Datoteka se nalazi u jebediah direktoriju, koji se nalazi u početnom direktoriju, koji se pak nalazi u korijenskom direktoriju (/).

Unutar korijenskog direktorija (/) nalazi se niz važnih sistemskih direktorija koji su prisutni u većini distribucija Linuxa. Slijedi popis zajedničkih direktorija koji se nalaze izravno ispod korijenskog direktorija (/):

Prava pristupa

Sve datoteke u Linuxu imaju dopuštenja koja im dopuštaju ili zabranjuju čitanje, mijenjanje ili izvršavanje. Super korisnik "root" ima pristup bilo kojoj datoteci na sustavu.

Svaka datoteka ima sljedeća tri skupa dopuštenja, prema redoslijedu važnosti:

    vlasnik

    odnosi se na korisnika koji je vlasnik datoteke

    skupina

    pripada grupi pridruženoj datoteci

    drugo

    odnosi se na sve ostale korisnike sustava

Svaki od tri skupa definira prava pristupa. Prava i način na koji se primjenjuju na različite datoteke i direktorije navedena su u nastavku:

    čitanje

    datoteke se mogu prikazati i otvoriti za čitanje

    sadržaj imenika dostupan je za gledanje

    snimiti

    datoteke se mogu mijenjati ili brisati

    sadržaj direktorija dostupan je za promjene

    izvođenje

    izvršne datoteke mogu se pokretati kao programi

    imenici se mogu otvoriti

Za pregled i uređivanje dopuštenja za datoteke i direktorije, otvorite Aplikacije → Pribor → Početna mapa i kliknite desnom tipkom miša na datoteku ili direktorij. Zatim odaberite Svojstva. Dopuštenja postoje pod Dozvole i omogućite uređivanje svih razina dopuštenja, ako ste vlasnik datoteke.

Da biste saznali više o dopuštenjima datoteka u Linuxu, pročitajte stranicu dopuštenja datoteka u Ubuntu Wikiju.

Terminali

Rad na naredbenom retku nije tako zastrašujući zadatak kao što mislite. Za korištenje naredbenog retka nije potrebno posebno znanje. To je program kao i sve ostalo. Većina stvari u Linuxu može se učiniti pomoću naredbenog retka, iako za većinu programa postoje grafički alati. Ponekad jednostavno nisu dovoljni. Ovdje je naredbeni redak koristan.

The Terminal nalazi se u Applications → Terminal. Terminal se često naziva naredbeni redak ili ljuska. Nekada je to bio način na koji je korisnik komunicirao s računalom. Međutim, korisnici Linuxa otkrili su da korištenje ljuske može biti brže od grafičke metode i da i danas ima neke prednosti. Ovdje ćete naučiti kako koristiti terminal.

Terminal se izvorno koristio za upravljanje datotekama, i doista se još uvijek koristi kao preglednik datoteka ako grafičko okruženje ne radi. Možete koristiti terminal kao preglednik za upravljanje datotekama i poništavanje promjena koje su napravljene.

Osnovne naredbe

Pogledajte sadržaj imenika: ls

Tim ls prikazuje popis datoteka u različitim bojama s punim formatiranjem teksta

Stvaranje direktorija: mkdir (naziv direktorija)

Tim mkdir stvara novi direktorij.

Idi na direktorij: cd (/adresa/direktorij)

Tim CD omogućuje vam odlazak u bilo koji imenik koji navedete.

Kopiranje datoteke ili direktorija: cp (što je naziv datoteke ili direktorija) (gdje je naziv direktorija ili datoteke)

Tim cp kopira bilo koju odabranu datoteku. Tim cp -r kopira bilo koji odabrani direktorij sa svim sadržajem.

Uklanjanje datoteka ili direktorija: rm (naziv datoteke ili mape)

Tim rm briše sve odabrane datoteke. Tim rm -rf briše bilo koji odabrani direktorij sa svim njegovim sadržajem.

Preimenujte datoteku ili direktorij: mv (naziv datoteke ili direktorija)

Tim mv preimenuje ili premješta odabranu datoteku ili direktorij.

Pronalaženje direktorija i datoteka: pronađite (naziv direktorija ili datoteke)

Tim pronaći omogućuje vam pronalaženje određene datoteke na vašem računalu. Za ubrzanje rada koristi se indeksiranje datoteka. Za ažuriranje indeksa unesite naredbu ažuriranob. Automatski se pokreće svaki dan kada se računalo uključi. Za pokretanje ove naredbe potrebna su vam prava super korisnika (pogledajte “Korisnik root i naredba sudo”).

Također možete koristiti zamjenske znakove za navođenje više od jedne datoteke, kao što je "*" (odgovara svim znakovima) ili "?" (podudaranje jednog znaka).

Za detaljniji uvod u naredbeni redak Linuxa, pročitajte uvod u naredbeni redak na Ubuntu wikiju.

Uređivanje teksta

Sve konfiguracije i postavke u Linuxu spremaju se u tekstualne datoteke. Iako konfiguracije najčešće možete uređivati ​​putem grafičkog sučelja, možda ćete ih povremeno morati uređivati ​​ručno. Podloga za miša je zadani uređivač teksta Xubuntu, koji možete pokrenuti klikom na Aplikacije → Pribor → Podloga za miša na sustavu izbornika radne površine.

Ponekad, Podloga za miša pokrenuti iz naredbenog retka pomoću aplikacije gksudo, koji se pokreće Podloga za miša s administrativnim ovlastima, što vam omogućuje promjenu konfiguracijskih datoteka.

Ako trebate uređivač teksta u naredbenom retku, možete koristiti nano- jednostavan za korištenje uređivač teksta. Kada pokrećete iz naredbenog retka, uvijek koristite sljedeću naredbu da onemogućite automatsko prelamanje riječi:

Nano-w

Za više informacija o načinu korištenja nano, pogledajte vodič na wikiju.

U Ubuntuu je također dostupno dosta drugih terminalskih uređivača. Popularni uključuju VIM i Emacs(prednosti i mane svakog od njih su razlog za mnogo prijateljskih rasprava unutar Linux zajednice). Oni su često složeniji za korištenje nano, ali su i moćniji.

root korisnik i sudo naredba

Korijenski korisnik u GNU/Linuxu je korisnik koji ima administrativni pristup vašem sustavu. Normalni korisnici nemaju ovaj pristup iz sigurnosnih razloga. Međutim, Ubuntu ne omogućuje root korisnika. Umjesto toga, administrativni pristup je dan pojedinačnim korisnicima, koji mogu koristiti "sudo" aplikaciju za obavljanje administrativnih zadataka. Prvi korisnički račun koji ste kreirali na vašem sustavu tijekom instalacije prema zadanim će postavkama imati pristup sudo. Korisnicima možete ograničiti i omogućiti sudo pristup pomoću Korisnici i grupe aplikacija (pogledajte "Upravljanje korisnicima i grupama" za više informacija).

Kada otvorite program koji zahtijeva super korisnička prava, sudo će od vas tražiti da unesete lozinku. Ovo će osigurati da zlonamjerne aplikacije ne mogu oštetiti vaš sustav, a također će vas podsjetiti da ćete izvršiti radnje koje zahtijevaju dodatni oprez!

Da biste koristili sudo u naredbenom retku, jednostavno upišite "sudo" prije naredbe koju želite pokrenuti. Nakon toga od vas će se tražiti da unesete svoju lozinku.

Sudo će zapamtiti vašu lozinku 15 minuta (prema zadanim postavkama). Ova je značajka dizajnirana kako bi korisnicima omogućila obavljanje više administrativnih zadataka bez traženja lozinke svaki put.

Budite oprezni pri obavljanju administrativnih zadataka - mogli biste oštetiti svoj sustav!

Neki drugi savjeti za korištenje sudoa uključuju:

    Za korištenje terminala kao super korisnika (root), upišite “sudo -i” u naredbeni redak

    Cijeli paket zadanih grafičkih konfiguracijskih alata u Ubuntuu već koristi sudo, tako da će vas pitati za lozinku ako je potrebno.

    Prilikom pokretanja grafičkih aplikacija koristi se "gksudo" umjesto "sudo". To vam omogućuje da od korisnika zatražite lozinku u malom grafičkom prozoru. Naredba "gksudo" je zgodna ako želite instalirati gumb za pokretanje sinaptički na svoju ploču ili nešto slično.

    Za više informacija o sudo programa i nepostojanja root korisnika u Ubuntuu, pročitajte sudo stranicu na Ubuntu wikiju.




Vrh