Unix operatsioonisüsteemis töötamise põhitõed.

Minu saladus

Linuxi põhitõed

Linux on inspireeritud Unixi operatsioonisüsteemist, mis ilmus 1969. aastal ning on siiani kasutusel ja arendamisel. Suur osa UNIX-i sisemistest toimimistest eksisteerib Linuxis, mis on süsteemi põhialuste mõistmisel võtmetähtsusega.

Unix keskendus peamiselt käsurea liidesele ja Linux päris selle. Seega on graafiline kasutajaliides oma akende, piltide ja menüüdega üles ehitatud põhiliidese – käsureale – peale. Lisaks tähendab see, et Linuxi failisüsteem on loodud hõlpsasti hallatavaks ja käsurealt juurdepääsetavaks.

Kataloogid ja failisüsteem Linuxi ja Unixi failisüsteemid on korraldatud hierarhilise puutaolise struktuuri järgi. Failisüsteemi kõrgeim tase on / või juurkataloog

. See tähendab, et kõik muud failid ja kataloogid (sh muud draivid ja partitsioonid) asuvad juurkataloogis. UNIXis ja Linuxis loetakse kõike failiks – sealhulgas kõvakettad, nende partitsioonid ja irdkandjad.

Näiteks /home/jebediah/cheeses.odt näitab kogu teed faili cheeses.odt juurde. Fail asub jebediah kataloogis, mis asub kodukataloogis, mis omakorda asub juurkataloogis (/).

Juurkataloogis (/) on mitmeid olulisi süsteemikatalooge, mis on enamikus Linuxi distributsioonides olemas. Järgmine on jagatud kataloogide loend, mis asuvad otse juurkataloogi (/) all:

Juurdepääsuõigused

Kõikidel Linuxi failidel on load, mis lubavad või keelavad nende lugemist, muutmist või käivitamist. Superkasutajal "root" on juurdepääs mis tahes süsteemis olevale failile.

    Igal failil on tähtsuse järjekorras järgmised kolm õiguste komplekti.

    omanik

    viitab kasutajale, kes on faili omanik

    rühm

    kuulub failiga seotud rühma

    muud

kehtib kõigile teistele süsteemi kasutajatele

    Kõik kolm komplekti määratlevad juurdepääsuõigused. Allpool on toodud õigused ja nende rakendamine erinevatele failidele ja kataloogidele.

    lugemist

    faile saab kuvada ja lugemiseks avada

    kataloogi sisu on vaatamiseks saadaval

    rekord

    faile saab muuta või kustutada

    kataloogide sisu on muutmiseks saadaval

    hukkamine

    katalooge saab avada

Failide ja kataloogide õiguste vaatamiseks ja muutmiseks avage Rakendused → Tarvikud → Kodukaust ja paremklõpsake failil või kataloogil. Seejärel valige Atribuudid. Load on olemas all load vahekaarti ja lubage redigeerida kõiki õigustasemeid, kui olete faili omanik.

Linuxi failiõiguste kohta lisateabe saamiseks lugege Ubuntu Wiki failiõiguste lehte.

Terminalid

Käsurea all töötamine pole nii hirmutav ülesanne, kui arvate. Käsurea kasutamiseks pole vaja eriteadmisi. See on programm nagu kõik muu. Enamikku Linuxi asju saab teha käsurealt kasutades, kuigi enamiku programmide jaoks on olemas graafilised tööriistad. Mõnikord neist lihtsalt ei piisa. Siin on käsurida kasulik.

The Terminal asub jaotises Rakendused → Terminal . Terminali nimetatakse sageli käsuviibaks või kestaks. Möödunud päevadel oli see viis, kuidas kasutaja arvutiga suhtles. Linuxi kasutajad on aga avastanud, et kesta kasutamine võib olla kiirem kui graafiline meetod ja sellel on ka tänapäeval mõningaid eeliseid. Siit saate teada, kuidas terminali kasutada.

Algselt kasutati terminali failihalduseks ja tõepoolest kasutatakse seda siiani failibrausrina, kui graafiline keskkond ei tööta. Terminali saate kasutada brauserina failide haldamiseks ja tehtud muudatuste tagasivõtmiseks.

Põhilised käsud

Vaata kataloogi sisu: ls

Meeskond ls kuvab erinevat värvi failide loendi täisteksti vorminguga

Kataloogide loomine: mkdir (kataloogi nimi)

Meeskond mkdir loob uue kataloogi.

Mine kataloogi: cd (/aadress/kataloog)

Meeskond CD võimaldab teil minna mis tahes määratud kataloogi.

Faili või kataloogi kopeerimine: cp (mis on faili või kataloogi nimi) (kus on kataloogi või faili nimi)

Meeskond cp kopeerib mis tahes valitud faili. Meeskond cp -r kopeerib valitud kataloogi kogu sisuga.

Failide või kataloogide eemaldamine: rm (faili või kausta nimi)

Meeskond rm kustutab mis tahes valitud faili. Meeskond rm -rf kustutab valitud kataloogi kogu selle sisuga.

Faili või kataloogi ümbernimetamine: mv (faili või kataloogi nimi)

Meeskond mv nimetab ümber või teisaldab valitud faili või kataloogi.

Kataloogide ja failide otsimine: leidke (kataloog või faili nimi)

Meeskond asukoha määramine võimaldab leida arvutist määratud faili. Töö kiirendamiseks kasutatakse failide indekseerimist. Indeksi värskendamiseks sisestage käsk uuendatudb. See töötab automaatselt iga päev, kui arvuti on sisse lülitatud. Selle käsu käivitamiseks vajate superkasutaja õigusi (vt "Juurkasutaja ja sudo käsk").

Samuti saate kasutada metamärke, et määrata rohkem kui üks fail, näiteks "*" (vastab kõigile tähemärkidele) või "?" (sobitage üks märk).

Linuxi käsurea põhjalikumaks tutvustuseks lugege Ubuntu wiki käsurea tutvustust.

Teksti redigeerimine

Kõik Linuxi konfiguratsioonid ja sätted salvestatakse tekstifailidesse. Kuigi saate konfiguratsioone enamasti redigeerida graafilise liidese kaudu, peate mõnikord neid käsitsi redigeerima. Hiirepadi on Xubuntu vaiketekstiredaktor, mille saate käivitada, klõpsates töölaua menüüsüsteemis Rakendused → Tarvikud → Hiirepadi.

Mõnikord, Hiirepadi käivitatakse rakenduse abil käsurealt gksudo, mis jookseb Hiirepadi administraatoriõigustega, mis võimaldab muuta konfiguratsioonifaile.

Kui vajate käsureal tekstiredaktorit, saate seda kasutada nano- lihtne kasutada tekstiredaktorit. Kui käivitate käsurealt, kasutage automaatse reamurdmise keelamiseks alati järgmist käsku:

Nano-w

Lisateabe saamiseks selle kasutamise kohta nano, vaadake wiki juhendit.

Ubuntus on saadaval ka palju muid terminalipõhiseid redaktoreid. Populaarsete hulka kuuluvad VIM ja Emacs(Iga plussid ja miinused põhjustavad Linuxi kogukonnas palju sõbralikke arutelusid). Neid on sageli keerulisem kasutada kui nano, kuid on ka võimsamad.

root kasutaja ja sudo käsk

GNU/Linuxi juurkasutaja on kasutaja, kellel on teie süsteemile administraatorijuurdepääs. Tavakasutajatel pole turvakaalutlustel seda juurdepääsu. Kuid Ubuntu ei luba juurkasutajat. Selle asemel antakse administraatorijuurdepääs üksikutele kasutajatele, kes võivad kasutada haldusülesannete täitmiseks rakendust "sudo". Esimesel kasutajakontol, mille oma süsteemis installimise ajal lõite, on vaikimisi juurdepääs sudo-le. Saate piirata ja lubada kasutajatele sudo juurdepääsu rakendusega Kasutajad ja rühmad rakendus (lisateabe saamiseks vt "Kasutajate ja rühmade haldamine").

Kui avate programmi, mis nõuab superkasutaja õigusi, nõuab sudo parooli sisestamist. See tagab, et pahatahtlikud rakendused ei saa teie süsteemi kahjustada, ja tuletab teile ka meelde, et hakkate tegema toiminguid, mis nõuavad erilist ettevaatust!

Sudo kasutamiseks käsureal tippige lihtsalt "sudo" enne käsku, mida soovite käivitada. Pärast seda peate sisestama oma parooli.

Sudo jätab teie parooli meelde 15 minutiks (vaikimisi). See funktsioon on loodud selleks, et kasutajad saaksid täita mitut haldustoimingut ilma iga kord parooli küsimata.

Olge haldustoiminguid tehes ettevaatlik – võite oma süsteemi kahjustada!

Mõned muud näpunäited sudo kasutamiseks on järgmised:

    Terminali kasutamiseks superkasutajana (root), tippige käsureale "sudo -i".

    Kogu Ubuntu graafiliste vaikekonfiguratsioonitööriistade komplekt kasutab juba sudot, nii et nad küsivad teilt vajadusel parooli.

    Graafiliste rakenduste käivitamisel kasutatakse "sudo" asemel "gksudo". See võimaldab teil väikeses graafilises aknas kasutajalt parooli küsida. Käsk "gksudo" on mugav, kui soovite installida käivitusnupu Sünaptiline oma paneelile või muule sarnasele.

    Lisateabe saamiseks sudo programm ja juurkasutaja puudumine Ubuntus, lugege Ubuntu wiki sudo lehte.

Enne valdamist peate valdama Linuxi süsteemi põhimõisteid. Linuxi kasutamise tundmine on väga kasulik oskus, kuna Linuxi serverid haldavad suurt hulka veebisaite, e-posti ja muid Interneti-teenuseid.

Selles jaotises selgitame Linuxiga seotud põhimõisteid. Usume, et meile antud ülesannet täites on teil juba arusaam arvutisüsteemidest üldiselt, sealhulgas sellistest komponentidest nagu keskseade (CPU), muutmälu (RAM), emaplaat, kõvaketas ja ka muud kontrollerid ja nendega seotud seadmed.

3.1

Terminit "Linux" kasutatakse sageli kogu operatsioonisüsteemi tähistamiseks, kuid Linux on tegelikult operatsioonisüsteemi tuum, mille käivitab BIOS/UEFI käivitatud alglaadur. Kernel täidab orkestri dirigendiga sarnase rolli, tagades riist- ja tarkvara harmoonias. See roll hõlmab seadmete, kasutajate ja failisüsteemide haldamist. Kernel on ühine alus teistele antud süsteemis töötavatele programmidele ja enamasti töötab see ring null tuntud ka kui kerneli ruum.

Kasutaja ruum

Me kasutame terminit "kasutajaruum", et hõlmata kõike, mis toimub väljaspool tuuma.

Kasutajaruumis töötavate programmide hulgas on palju GNU projekti põhiutiliite, millest enamik on loodud käsurealt käitamiseks. Saate neid kasutada skriptides erinevate ülesannete automatiseerimiseks. Lisateavet kõige olulisemate käskude kohta leiate jaotisest 3.4 " ".

Vaatame lühidalt erinevaid Linuxi kerneli ülesandeid.

3.1.1 Seadmete käivitamine

Kerneli eesmärk on ennekõike hallata ja juhtida arvuti põhikomponente. See tuvastab ja konfigureerib need arvuti sisselülitamisel ning seadme (nt USB-seadme) paigaldamisel või eemaldamisel. See muudab need juurdepääsetavaks ka kõrgema taseme tarkvarale lihtsustatud tarkvaraliidese kaudu, nii et rakendused saavad seadmeid ära kasutada, ilma et peaksid tegelema selliste detailidega nagu laienduspesa, millesse kaart sisestatakse. Programmeerimisliides tagab ka teatud abstraktsioonitaseme; see võimaldab kasutada seadmeid videokonverentsideks, näiteks kasutada veebikaamerat, olenemata selle mudelist ja tootjast. Tarkvara saab liidest kasutada Video Linuxi jaoks(V4L) ja kernel tõlgib liidese kutsed tegelikeks riistvarakäskudeks, mis on vajalikud konkreetse veebikaamera kasutamiseks.

Kernel ekspordib andmeid tuvastatud riistvara kohta virtuaalsüsteemide /proc/ ja /sys/ kaudu. Rakendused pääsevad sageli seadmetele juurde, kasutades /dev/ loodud faile. Spetsiaalsed failid, mis esindavad kettaid (näiteks /dev/sda), partitsioone (/dev/sdal), hiiri (/dev/input/mouse0), klaviatuure (/dev/input/event0), helikaarte (/dev/snd/ * ), jadapordid (/dev/ttyS*) ja muud komponendid.

Seadmefaile on kahte tüüpi: plokk- ja märgifailid. Esimestel on andmeploki omadused: nende suurus on piiratud ja baitidele pääsete juurde ploki mis tahes kohas. Viimased käituvad nagu tegelaste voog. Saate lugeda ja kirjutada märke, kuid te ei saa otsida antud asukohta ega muuta suvalisi baite. Seadme failitüübi väljaselgitamiseks kontrollige käsu Is -1 väljundi esimest tähte. See võib olla plokkseadmete jaoks kas b või märgiseadmete jaoks c:

Nagu arvata võis, kasutavad kettad ja partitsioonid blokeerimisseadme faile, samas kui hiir, klaviatuur ja jadapordid kasutavad märgiseadme faile. Mõlemal juhul sisaldab programmeerimisliides spetsiaalseid käske, mida saab aktiveerida süsteemikõne kaudu ioctl.

3.1.2 Failisüsteemide ühendamine

Failisüsteemid on kerneli oluline aspekt. Unixi-põhised süsteemid ühendavad kõik failihoidlad ühte hierarhiasse, võimaldades kasutajatel ja rakendustel andmetele juurde pääseda, teades nende asukohta selles hierarhias.

Selle hierarhilise puu alguspunkti nimetatakse juurteks, mida tähistab sümbol “/”. See kataloog võib sisaldada nimega alamkatalooge. Näiteks kodu alamkataloogi "/" nimetatakse /home/. See alamkataloog võib omakorda sisaldada muid alamkatalooge jne. Iga kataloog võib sisaldada ka faile, kuhu failid salvestatakse. Seega viitab home/buxy/Desktop/hello.txt failile nimega hello.txt, mis on salvestatud töölaua alamkataloogi, mis asub kodukataloogi buxy alamkataloogis, mis asub juur. Kernel kompileerib etteantud nimesüsteemi ja ketta salvestuskoha vahel.

Erinevalt teistest süsteemidest on Linuxil ainult üks selline hierarhia ja see suudab integreerida andmeid mitmelt kettalt. Üks neist ketastest saab juur- ja teised on paigaldatud hierarhia kataloogis (seda käsku nimetatakse Linuxis mount). Need teised draivid tehakse seejärel kättesaadavaks kinnituspunktide all ( kinnituspunktid ) See võimaldab kasutaja kodukataloogid (mis tavaliselt salvestatakse /home/ ) salvestada eraldi kõvakettale, mis sisaldab buxy kataloogi (koos teiste kasutajate kodukataloogidega). Kui olete draivi ühendanud kausta /home/ , muutuvad need kataloogid ligipääsetavaks oma tavaasukohas ja mitmed teed, nagu /home/buxy/Desktop/hello.txt, töötavad edasi.

On palju failisüsteemi vorminguid, mis vastavad paljudele viisidele, kuidas andmeid füüsiliselt ketastele salvestada. Kõige tuntumad on ext2, ext3 ja ext4, kuid on ka teisi. Näiteks VFAT on failisüsteem, mida varem kasutasid DOS ja Windows operatsioonisüsteemid. Linuxi operatsioonisüsteemi VFAT-tugi võimaldab kõvakettad olla saadaval nii Kali kui ka Windowsi all. Igal juhul peate ketta failisüsteemi enne selle ühendamist ette valmistama ja see toiming kutsutakse välja vormindamine.

Käsud nagu mkfs.ext3 (kus mkfs tähistab Make FileSystem) tegeleb vormindamisega. Need käsud nõuavad parameetrina seadmefaili, mis esindab vormindatavat partitsiooni (nt /dev/sdal, esimene sektsioon esimesel kettal). See toiming hävitab kõik andmed ja seda tuleks käivitada ainult üks kord, välja arvatud juhul, kui soovite failisüsteemi kustutada ja uuesti alustada.

Samuti on olemas võrgufailisüsteemid nagu NFS, mis ei salvesta andmeid kohalikule kettale. Selle asemel edastatakse andmed võrgu kaudu serverisse, mis salvestab need ja teeb need nõudmisel kättesaadavaks. Failisüsteemi abstraktsiooniga ei pea te muretsema selle draivi vastendamise pärast, kuna failid jäävad juurdepääsetavaks nende tavapärasel hierarhilisel teel.

3.1.3 Protsessi juhtimine

Protsess on programmi käivitatav eksemplar, mis nõuab nii programmi enda kui ka selle tööandmete jaoks mälu. Kernel vastutab protsesside loomise ja jälgimise eest. Kui programm töötab, eraldab kernel esmalt osa mälust, laadib failisüsteemist sellesse mällu käivitatava koodi ja seejärel käivitab koodi. See sisaldab teavet selle protsessi kohta, millest kõige silmatorkavam on identifitseerimisnumber, mida tuntakse kui protsessi id (protsessi identifikaator(PID)).

Enamik kaasaegseid operatsioonisüsteeme, nimelt need, mis töötavad Unixi tuumal, sealhulgas Linux, on võimelised täitma paljusid ülesandeid. Teisisõnu võimaldavad need süsteemil korraga käivitada palju protsesse.

Tegelikult töötab igal ajahetkel ainult üks protsess, kuid kernel jagab protsessori aja väikesteks tükkideks ja käivitab iga protsessi kordamööda. Kuna need ajalõigud on väga lühikesed (millisekundites), annavad need paralleelselt töötavate protsesside mulje, kuigi nad on aktiivsed ainult ajaintervalli ajal ja ülejäänud aja jõude. Kerneli peamine eesmärk on häälestada ajastamismehhanismid viisil, mis säilitab selle välimuse, suurendades samal ajal süsteemi jõudlust. Kui ajavahemik on liiga pikk, võib see lakata korralikult reageerimast. Noh, kui need on liiga lühikesed, raiskab süsteem nende vahel vahetamisele liiga palju aega.

Selliseid otsuseid saab juhtida protsessi prioriteetide abil, kus kõrge prioriteediga protsessid töötavad pikema aja jooksul ja sagedamini kui madala prioriteediga protsessid.

Multiprotsessorsüsteemid (ja muud variandid)

Eespool kirjeldatud piirangud, mille kohaselt võib korraga töötada ainult üks protsess, ei kehti kõikides olukordades. Õigem oleks nii öelda üks tuum saab töötada ainult ühe protsessiga. Mitmeprotsessorilised, mitmetuumalised või hüperlõimega süsteemid võimaldavad paralleelselt töötada mitmel protsessil. Sama aja vähendamise süsteemi kasutatakse aga olukordade lahendamiseks, kus aktiivseid protsesse on rohkem kui saadaolevaid protsessori tuumasid. See pole ebatavaline: põhisüsteemis, isegi täiesti tühikäigul, töötab peaaegu alati kümneid protsesse.

Kernel võimaldab sama programmi mitmel sõltumatul eksemplaril käitada, kuid igaühel on juurdepääs ainult oma ajalõikudele ja mälule. Nii jäävad nende andmed sõltumatuks.

3.1.4 Õiguste haldamine

Unixi süsteemid toetavad mitut kasutajat ja rühma ning võimaldavad teil kontrollida juurdepääsuõigusi. Enamikul juhtudel määrab protsessi kasutaja, kes seda käitab. Antud protsess saab teha ainult neid toiminguid, mis on selle omaniku poolt lubatud. Näiteks nõuab faili avamine, et kernel kontrollib protsessi vajalike õiguste olemasolu (täpsemalt selle näite kohta vt jaotist 3.4.4 „Lubade haldamine”).

3.2 Linuxi käsurida

"Käsurea" all peame silmas tekstipõhist liidest, mis võimaldab sisestada käske, neid täita ja tulemusi vaadata. Saate käivitada terminali (tekstiekraan graafilise töölaua sees või tekstikonsooli väljaspool mis tahes GUI-d) ja selle sees käsutõlgi ( kest).

3.2.1

Kui teie süsteem töötab korralikult, on lihtsaim viis käsureale juurdepääsuks käivitada terminal graafilises töölauaseansis.


Joonis 3.1 GNOME terminali käivitamine

Näiteks Kali Linuxi vaikesüsteemis saab GNOME terminali käivitada lemmikrakenduste loendist. Tegevuste aknasse (aken, mis aktiveerub hiire vasakusse ülanurka viimisel) võite sisestada ka „terminal“ ja klõpsata ilmuvale vajalikule rakenduse ikoonile (Joonis 3.1, „“).

GUI häirete või talitlushäirete korral saate siiski käivitada virtuaalse konsoolide käsurea (kuni kuuele neist pääseb juurde kuue klahvikombinatsiooni kaudu, alustades CTRL + ALT + F1 ja lõpetades klahvidega CTRL + ALT + F6 - Kui olete väljaspool GUI-d juba tekstirežiimis, ei pea te vajutama klahvi CTRL Xorg või Wayland).

Saate tavalise sisselogimisekraani, kus sisestate oma kasutajanime ja parooli, enne kui sisenete selle kestaga käsureale:

Kutsutakse programm, mis töötleb teie sisestatud andmeid ja täidab teie käske kest(kest või käsurea tõlk). Kali Linuxis pakutav vaikekest on Bash(see tähendab Bourne Again Shell). Lõpumärk "$" või "#" näitab, et kest ootab teie sisendit. Need sümbolid näitavad ka seda, kuidas Bash kohtleb teid tavakasutajana (esimene dollarimärgiga juhtum) või superkasutajana (viimane räsijuhtum).

3.2.2

See osa annab vaid lühiülevaate mõnest käsust, millest igaühel on palju erinevaid valikuid ja võimalusi, mida siin ei käsitleta, seega vaadake palun nende vastavatel käsilehtedel saadaolevat ulatuslikku dokumentatsiooni. Tungimistestimisel pääsete süsteemile enamasti pärast edukat ärakasutamist juurde kesta kaudu, mitte GUI kasutajaliidese kaudu. Kui soovite turvaprofessionaalina edu saavutada, on oluline teada, kuidas käsurida asjatundlikult kasutada.

Seansi käivitamisel pwd käsk (mis tähistab printida töökataloog) kuvab teie praeguse asukoha failisüsteemis. Oma praegust asukohta saab muuta käsuga cd kataloogi nimi(kus cd tähendab (muuda kataloogi)). Kui te pole määranud kataloogi, kuhu soovite minna, naasete automaatselt oma kodukataloogi. Kui sisestate cd -, naasetakse eelmisesse töökataloogi (sellesse, kus olite enne viimase cd käsu sisestamist). Emakataloogi nimetatakse alati .. (kaks punkti), aktiivset kataloogi aga .. (kaks punkti). (üks punkt). Käsk ls võimaldab teil nimekirja kataloogi sisu. Kui te täiendavaid parameetreid ei määra, kuvab käsk ls praeguse kataloogi sisu.

Uue kataloogi saate luua käsu mkdir abil kataloogi nimi, ja kustutada ka olemasolev (tühi) kataloog, kasutades käsku rmdir kataloogi nimi. Käsk mv võimaldab teil seda teha liigutada ning failide ja kataloogide ümbernimetamine; kustutada faili saab teha kasutades rm faili nimi, ja faili kopeerimine toimub cp abil lähte-fail siht-fail.

Kest täidab iga käsu käivitades esimese etteantud nimega programmi, mille ta leiab keskkonnamuutuja määratud kataloogist PATH. Enamasti asuvad need programmid riigis /bin,/sbin, /usr/bin või /usr/sbin. Näiteks käsk ls asub kaustas /bin/ls;

Mõnikord töötleb käsku otse kest, sel juhul nimetatakse seda sisseehitatud shelliks (nende hulgas on cd ja pwd ); Tüüpkäsk võimaldab teil küsida iga käsu tüüpi.

Pange tähele kajakäsu kasutamist, mis kuvab lihtsalt terminalis oleva rea. Sel juhul kasutatakse seda keskkonnamuutuja sisu kuvamiseks, kuna Kest asendab muutujad automaatselt nende väärtustega, kui käsurida käivitatakse.

Keskkonnamuutujad

Neid muutujaid saab defineerida nii süsteemi jaoks failis /etc/profile kui ka kasutaja jaoks failis ~/.profile, kuid muutujad, mis ei ole käsurea tõlgendajatele spetsiifilised, on kõige parem paigutada faili /etc/environon, kuna need muutujad sisestatakse kõik kasutajaseansid tänu Pluggable Authentication Module (PAM) – isegi kui ükski shell ei tööta.

3.3 Linuxi failisüsteem

3.3.1 Failisüsteemi hierarhia standard

Nagu teised Linuxi distributsioonid, on ka Kali Linux korraldatud vastavalt standardile FailisüsteemHierarhia standard(FHS), mis võimaldab teiste Linuxi distributsioonide kasutajatel Kalis hõlpsalt navigeerida. FHS määrab iga kataloogi eesmärgi. Tipptaseme katalooge kirjeldatakse järgmiselt.

  • /bin/: põhiprogrammid
  • /boot/: Kali Linuxi kernel ja muud failid, mis on vajalikud selle varase alglaadimisprotsessi jaoks
  • /dev/: seadme failid
  • /etc/: konfiguratsioonifailid
  • /home/: isiklikud kasutajafailid
  • /lib/: peamised raamatukogud
  • /media/*: irdseadmete (CD-ROM, USB-draivid jne) ühenduspunktid
  • /mnt/: ajutised ühenduspunktid
  • /opt/: kolmandate isikute pakutavad valikulised rakendused
  • /root/: administraatori isiklikud failid (juurfailid)
  • /run/: mittepüsivad töövoofailid, mis pärast taaskäivitamist ei püsi (pole veel FHS-is kaasatud)
  • /sbin/: süsteemiprogrammid
  • /srv/: selles süsteemis asuvate serverite kasutatavad andmed
  • /tmp/: ajutised failid (see kataloog tühjendatakse sageli pärast taaskäivitamist)
  • /usr/: rakendused (see kataloog jaguneb sama loogika järgi nagu juurkataloogis veel bin, sbin, lib). Lisaks sisaldab /usr/share/ sõltumatu arhitektuuriga andmeid. Kataloog /usr/local/ on mõeldud kasutamiseks administraatorile rakenduste käsitsi installimiseks ilma pakkesüsteemi (dpkg) hallatavate failide üle kirjutamiseta.
  • /var/: deemoni poolt töödeldud muutujad andmed. See hõlmab logifaile, järjekordi, puhvreid ja vahemälu.
  • /proc/ ja /sys/ on spetsiifilised Linuxi tuumale (ja ei kuulu FHS-i). Kernel kasutab neid andmete eksportimiseks kasutajaruumi.

3.3.2 Kasutaja kodukataloog

Kasutajakataloogi sisu ei ole standarditud, kuid tähelepanu väärivad mitmed kokkulepped. Üks on see, et kasutaja kodukataloogi tähistab sageli tilde (“~”). Seda on väga kasulik teada kuna käsutõlgid asendavad tilde automaatselt õige kataloogiga (mis on keskkonnamuutujas KODU ja mille normaalväärtus on /home/user/ ).

Traditsiooniliselt salvestatakse rakenduste konfiguratsioonifailid sageli otse teie kodukataloogi, kuid nende failinimed algavad tavaliselt punktiga (nt meiliklient mutt salvestab konfiguratsiooni faili ~/.muttrc ). Pange tähele, et punktiga algavad failinimed on vaikimisi peidetud; ls loetleb need ainult siis, kui on määratud suvand -a ja graafilised failihaldurid peavad olema spetsiaalselt konfigureeritud peidetud failide näitamiseks.

Mõned programmid kasutavad ka mitut konfiguratsioonifaili, mis on korraldatud ühte kataloogi (nt ~/.ssh/). Mõned rakendused (nt Firefoxi veebibrauser) kasutavad oma kataloogi ka allalaaditud andmete vahemällu salvestamiseks. See tähendab, et need kataloogid võivad lõpuks kulutada palju kettaruumi.

Neid konfiguratsioonifaile, mis on salvestatud otse teie kodukataloogi, nimetatakse sageli ühiseks nimeks dotfailid pikka aega laieneda sellisel määral, et need kataloogid võivad nendega risustuda. Õnneks viis koostöö FreeDesktop.org egiidi all XDG baaskataloogi spetsifikatsiooni loomiseni, mille eesmärk on need failid ja kataloogid puhastada. See spetsifikatsioon sätestab, et konfiguratsioonifailid tuleb salvestada kaustas ~/.config , vahemälufailid kaustas -/.cache ja rakenduse andmefailid kaustas -/.local (või nende alamkataloogides). See konventsioon kogub järk-järgult hoogu.

Graafiline töölaud kasutab kõige sagedamini otseteid kataloogi /Desktop/ sisu kuvamiseks (või mis tahes muu sõna, mis on selle täpne tõlge, süsteemides, mis ei kasuta inglise keelt). Lõpuks salvestab meilisüsteem mõnikord sissetulevad sõnumid kataloogi nimega /Mail/.

See on huvitav:

UNIX(Unix, Unix) - kaasaskantavate, multitegumtöötluste ja mitme kasutajaga operatsioonisüsteemide rühm. Esimese Unixi operatsioonisüsteemi töötas välja 1960. aastate lõpus ja 1970. aastate alguses Ameerika uurimisfirma Bell Laboratories. Algselt keskendus see miniarvutitele ja seejärel hakati seda kasutama kõigi klasside arvutites, sealhulgas suurarvutites ja mikroarvutites. Sellele aitas kaasa Unixi kohandamine Inteli 32-bitistele mikroprotsessoritele, mis viidi läbi 1990. aastal. Unixi funktsionaalsus ja paindlikkus tagasid selle kasutamise heterogeensetes automatiseeritud süsteemides, aga ka kümnete standardite loomise arvutitootjatele. Unixi perekonna operatsioonisüsteemid:

Linux on Unixi operatsioonisüsteemi versioon Inteli protsessoritel põhinevate arvutusplatvormide jaoks;
HP-UX - Hewlett-Packardi versioon; areneb pidevalt ja ühildub IE-64-ga, mis on 64-bitise arhitektuuri uus standard;
SGI Irix on Silicon Graphics PC operatsioonisüsteem, mis põhineb System V Release 3.2-l koos BSD elementidega. Sellel Unixi versioonil lõi Industrial Light & Magic stuudio filmid "Terminaator 2" ja "Jurassic Park".
SCO Unix – riistvaratootjatest sõltumatu Santa Cruzi operatsiooniversioon Inteli platvormile;
IBM AIX – juurutatud System V Release 2 baasil koos mõne BSD laiendusega;
DEC Unix on klastrite toega operatsioonisüsteem; loodud töötama koos Windows NT-ga;
NeXTStep-4.3 BSD – Machi tuumal põhinev OS, mida kasutatakse NeXT arvutites; kuulub Apple Computerile ja toimib Macintoshi arvutite operatsioonisüsteemina;
Sun Solaris on operatsioonisüsteem SPARC jaamadele, mis põhineb System V Release 4-l ja millel on palju täiendusi.

Unixi operatsioonisüsteem ilmus miniarvutite väljatöötamise ajal. 1969. aastal alustas uurimisfirma Bell Labs kompaktse operatsioonisüsteemi väljatöötamist ettevõtte Digital Equipment Corporation 18-bitise DEC PDP-7 miniarvuti jaoks. Süsteem oli algselt kirjutatud assemblerkeeles ja Unixi sünniajaks loetakse 1. jaanuar 1970. 1973. aastal kirjutati see ümber C-keeles, mis töötati välja Bell Labsis. Samal ajal toimus ka operatsioonisüsteemi ametlik esitlus. Selle autorid, Bell Labsi töötajad Ken Thompson ja Dennis M. Ritchie, nimetasid nende loomist "universaalseks ajajagamise operatsioonisüsteemiks".

Unix põhines hierarhilisel failisüsteemil. Iga protsessi käsitleti programmikoodi järjestikuse täitmisena autonoomses aadressiruumis ja seadmetega töötamist käsitleti tööna failidega. Esimene versioon rakendas protsessi võtmekontseptsiooni, hiljem ilmusid süsteemikutsed (fork, wait, exec, exit). 1972. aastal võeti torujuhtmete kasutuselevõtuga kasutusele torustik.

1970. aastate lõpuks oli Unixist saanud populaarne operatsioonisüsteem, millele aitasid kaasa eelistatud levitamistingimused ülikoolikeskkonnas. Unix porditi paljudele riistvaraplatvormidele ja selle variandid hakkasid ilmuma. Aja jooksul sai Unixist mitte ainult professionaalsete tööjaamade, vaid ka suurettevõtete süsteemide standard. UNIX-i sätete usaldusväärsus ja paindlikkus on muutnud selle populaarseks, eriti süsteemiadministraatorite seas. Ta mängis aktiivset rolli ülemaailmsete võrkude ja ennekõike Interneti levitamisel.

Tänu lähtekoodi avalikustamise poliitikale on laialt levinud arvukad tasuta Unixi dialektid, mis töötavad Intel x86 platvormil (Linux, FreeBSD, NetBSD, OpenBSD). Täielik kontroll tekstide üle võimaldas luua spetsiaalsete jõudlus- ja turvanõuetega süsteeme. Unix assimileeris ka teiste operatsioonisüsteemide elemente, mille tulemusel töötati välja POSIX ja X/Open programmeerimisliidesed.

UNIX-il on kaks iseseisvalt arendatud haru - System V ja Berkeley, mille alusel moodustuvad Unixi murded ja Unixi sarnased süsteemid. BSD 1.0, mis sai aluseks mittekaubanduslikele UNIX-i murretele, ilmus 1977. aastal California ülikoolis Berkeleys UNIX V6 lähtekoodi põhjal. Aastatel 1982–1983 andis Unix System Laboratories (USL) välja esimesed Unixi, System III ja System V kaubanduslikud dialektid. Unixi System V versioon moodustas aluse enamikule järgnevatele kommertsvariantidele. 1993. aastal müüs AT&T Unixi õigused koos USL-i laboriga Novellile, kes töötas välja System V-l põhineva UNKWare'i dialekti, mis kuulus Santa Cruzi operatsioonile nime all SCO UNIXWare. Unixi kaubamärk kuulub ettevõttele X/Open Company.

Unix saavutas populaarsuse tänu oma võimele töötada erinevatel riistvaraplatvormidel – kaasaskantavus ehk mobiilsus. Liikuvusprobleem UNIXis lahendati operatsioonisüsteemi arhitektuuri ühtlustamise ja ühtse keelekeskkonna kasutamisega. Bell Labsis välja töötatud C-keelest sai ühenduslüli riistvaraplatvormi ja töökeskkonna vahel.

Paljud Unixi kaasaskantavusprobleemid lahendati ühe tarkvara ja kasutajaliidese abil. Mitme Unixi dialekti ühitamise probleemiga tegelevad kaks organisatsiooni: IEEE Portable Applications Standards Committee (PASC) ja X/Open Company (The Open Group). Need organisatsioonid töötavad välja standardeid, mis võimaldavad integreerida heterogeenseid operatsioonisüsteeme, sealhulgas neid, mis ei ole Unixiga seotud (IEEE PASC – POSIX 1003, X/Open – Common API). Seega on POSIX-iga ühilduvad süsteemid Open-VMS, Windows NT, OS/2.

Unixi kui paljudele riistvaraplatvormidele orienteeritud süsteemi kaasaskantavus põhineb keskse tuumaga modulaarsel struktuuril. Algselt sisaldas UNIX-i tuum tööriistade komplekti, mis vastutasid protsesside saatmise, mälu eraldamise, failisüsteemiga töötamise, väliste seadmete draiverite toe, võrgu- ja turvatööriistade eest.

Seejärel, eraldades traditsioonilisest tuumast minimaalse nõutava tööriistakomplekti, moodustati mikrotuum. Unixi mikrotuumade tuntuimad teostused on Amoeba, Chorus (Sun Microsystems), QNX (QNX Software Systems). Choruse mikrotuum võtab enda alla 60 KB, QNX - 8 KB. QNX-i põhjal töötati välja 30 KB POSIX-ühilduv Neutrino mikrotuum. Carnegie Melloni ülikoolis töötati 1985. aastal välja Machi mikrotuum, mida kasutati operatsioonisüsteemides NeXT OS (NeXT), MachTen (Mac), OS/2, AIX (IBM RS/6000 jaoks), OSF/1, Digital UNIX (Alpha jaoks), Windows NT, BeOS.

Venemaal kasutatakse Unixi operatsioonisüsteemi erinevate arvutiplatvormide võrgutehnoloogia ja töökeskkonnana. Vene Interneti infrastruktuur moodustati Unixi baasil. Alates 1980. aastate algusest tehti Unixi operatsioonisüsteemiga seotud koduseid töid nimelises Aatomienergia Instituudis. I. V. Kurchatov (KIAE) ja Autotööstuse Ministeeriumi Rakendusküberneetika Instituut. Nende meeskondade ühendamise tulemuseks oli operatsioonisüsteemi DEMOS (Dialogue Unified Mobile Operating System) sünd, mis lisaks PDP-11 kodumaistele analoogidele (SM-4, SM-1420) viidi üle ES Arvuti ja Elbrus. Vaatamata oma mitmekülgsusele kaotas Unix personaalarvutite turu Microsofti Windowsi perekonnale. Unixi operatsioonisüsteem säilitab oma positsiooni suure mastaapsuse ja tõrketaluvusega missioonikriitiliste süsteemide valdkonnas.

1965. aastal hakkas Bell Telephone Laboratories (AT&T osakond) koos karistusoperaatori ja Massachusettsi Tehnoloogiainstituudiga (rIT) välja töötama uut operatsioonisüsteemi nimega rULTIqS (rULTipleoed Information and Computing Service). Projektis osalejate eesmärk oli luua multitegumtööga ajajagamise operatsioonisüsteem, mis suudab toetada mitmesaja kasutaja tööd. Bell Labsist osalesid projektis kaks osalejat: Ken Thompson ja Dennis Ritchie. Kuigi rULTIqS süsteem ei saanud kunagi valmis (Bell Labs loobus projektist 1969. aastal), sai sellest operatsioonisüsteemi eelkäija, mis sai hiljem tuntuks Unio nime all.

Thompson, Ritchie ja mitmed teised töötajad jätkasid aga tööd mugava programmeerimissüsteemi loomise kallal. Kasutades rULTIqS-i kallal töötamisel tekkinud ideid ja arendusi, lõid nad 1969. aastal väikese operatsioonisüsteemi, mis sisaldas failisüsteemi, protsessihalduse alamsüsteemi ja väikest utiliitide komplekti. Süsteem kirjutati assembleris ja seda kasutati nDn-7 arvutis. See operatsioonisüsteem sai nimeks UNIX, mis sarnaneb nimega rULTIqS ja mille lõi välja teine ​​arendusmeeskonna liige Brian Kernigan.

Kuigi UNIX-i varajane versioon lubas palju, poleks see oma täit potentsiaali realiseerinud, kui seda poleks rakendatud mõnele reaalsele projektile. Ja selline projekt leitigi. Kui Bell Labsi patendiosakond vajas 1971. aastal tekstitöötlussüsteemi, valiti operatsioonisüsteemiks UNIX. Selleks ajaks oli see üle kantud võimsamale nDn-11-le ja see oli veidi kasvanud 16K hõivas süsteem ise, 8K oli eraldatud rakendusprogrammidele, maksimaalseks faili suuruseks määrati 64K koos 512K kettaga. ruumi.

Varsti pärast esimeste montaaživersioonide loomist hakkas Thomson töötama FxuTuAN keele kompilaatori kallal ja selle tulemusena töötas ta välja keele B. See oli tõlk, millel olid kõik tõlgi piirangud ja Ritchie arendas selle teiseks keeleks, nn. q, mis võimaldas genereerida masinkoodi. 1973. aastal kirjutati operatsioonisüsteemi tuum ümber kõrgkeeles C, mis oli varem ennekuulmatu samm, millel oli tohutu mõju UNIX-i populaarsusele. See tähendas, et UNIX-süsteemi sai nüüd mõne kuuga teisaldada teistele riistvaraplatvormidele ja muudatuste tegemine polnud eriti keeruline. Bell Labsi töötavate UNIX-süsteemide arv ületas 25 ja UNIX-i hooldamiseks moodustati UNIX Sgstem Proup (USp) rühm.

Uurimisversioonid (AT&T Bell Labs)

Vastavalt USA föderaalseadusele ei olnud AT&T-l õigust UNIX-i kaubanduslikult levitada ja see kasutas seda oma vajadusteks, kuid alates 1974. aastast hakati operatsioonisüsteemi õppeotstarbel ülikoolidele üle andma.

Operatsioonisüsteemi moderniseeriti, igale uuele versioonile lisati Programmeerija juhendi vastav väljaanne, millest versioone endid nimetati väljaanneteks (jdition). Aastatel 1971–1989 anti välja kokku 10 väljaannet. Kõige olulisemad väljaanded on loetletud allpool.

Redaktsioon 1 (1971)

UNIX-i esimene versioon, mis on kirjutatud montaažikeeles nDn-11 jaoks. Sisaldab B-keelt ja paljusid tuntud käske ja utiliite, sealhulgas cat, chdir, chmod, cp, ed, find, mail, mkdir, mkfs, mount, mv, rm, rmdir, wc, who. Kasutatakse peamiselt Bell Labsi patendiosakonna tekstitöötlusvahendina.

Redaktsioon 3 (1973)

Süsteemi ilmus käsk cc, mis käivitas C-keele kompilaatori. Installitud süsteemide arv jõudis 16-ni.

Redaktsioon 4 (1973)

Esimene süsteem, milles kernel on kirjutatud kõrgetasemelises keeles C.

Redaktsioon 6 (1975)

UNIX-i esimene versioon, mis on saadaval väljaspool Bell Labsi. Süsteem kirjutati C-s täielikult ümber. Sellest ajast peale hakkasid ilmuma uued versioonid, mida Bell Labs ei arendanud, ja UNIX-i populaarsus hakkas kasvama. Süsteemi see versioon installiti California ülikoolis Berkeleys ja peagi ilmus selle baasil esimene BSD (Berheleg Softkare Distributuion) UNIX versioon.

Redaktsioon 7 (1979)

Kaasas Bourne Shelli käsutõlk ning Kernighani ja Ritchie C-kompilaator. Süsteemi tuum on muudele platvormidele kaasaskandmiseks ümber kirjutatud. Selle versiooni litsentsi ostis ricrosoft, kes töötas selle põhjal välja operatsioonisüsteemi XjNIX.

UNIXi populaarsus kasvas ja 1977. aastaks ületas operatsioonisüsteemide arv 500. Samal aastal teisaldati süsteem esimest korda mitte-nDn-arvutisse.

UNIX-i genealoogia

Standardset UNIX-süsteemi pole olemas, kõigil UNIX-i sarnastel süsteemidel on neile ainulaadsed funktsioonid ja võimalused. Kuid erinevate nimede ja funktsioonide taga on endiselt lihtne märgata UNIX-i arhitektuuri, kasutajaliidest ja programmeerimiskeskkonda. Seletus on üsna lihtne: kõik need operatsioonisüsteemid on lähedased või kaugemad sugulased. Selle perekonna silmapaistvamaid esindajaid kirjeldatakse allpool.

System III (1982)

Tahtmata kaotada initsiatiivi UNIX-i arendamiseks, ühendas AT&T 1982. aastal mitu olemasolevat operatsioonisüsteemi versiooni ja lõi versiooni nimega Sgstem III.

See versioon oli mõeldud levitamiseks väljaspool Bell Labsi ja AT&T ning tähistas võimsa UNIX-i haru algust, mis on endiselt elus ja kasvab.

System V (1983)

1983. aastal ilmus System V ja hiljem sellele veel mitu väljalaset:

  • SVR2 (1984): InterProcess Communication (IPC) ühismälu, semaforid
  • SVR3 (1987): I/O voosüsteem, failisüsteemi lüliti, jagatud teegid
  • SVR4 (1989): NFS, FFS, BSD pesad. SVR4 ühendab endas mitmete tuntud UNIX-i versioonide – SunOS, BSD UNIX ja System V varasemate versioonide – võimalused.

Paljusid selle süsteemi komponente toetasid ANSI, POSIX, X/Open ja SVID standardid.

UNIX BSD (1978) (Põhineb UNIXi 6. väljaandel)

  • 1981. aastal ehitati DAunA tellimusel Tqn/In pinu BSD UNIX-i (4.2BSD-s)
  • 1983 kasutas aktiivselt võrgutehnoloogiaid ja sai ühenduse ARPANETi võrguga
  • Välja antud 1986. aasta versioon 4.3BSD
  • Välja antud 1993 4.4BSD ja BSD Lite (viimati välja antud versioonid).

OSF/1 (1988) (Open Software Foundation)

1988. aastal tegid IBM, DEC ja HP ​​koostööd, et luua UNIX-i versioon, mis ei sõltu AT&T-st ja SUN-ist, ning lõi organisatsiooni nimega OSF. Selle organisatsiooni tegevuse tulemuseks oli operatsioonisüsteem OSF/1.

Standardid

Mida rohkem UNIX-i erinevaid variante ilmus, seda ilmsemaks muutus süsteemi standardimise vajadus. Standardite olemasolu muudab rakenduste portimise lihtsamaks ja kaitseb nii kasutajaid kui ka tootjaid. Selle tulemusena tekkis mitu standardimisorganisatsiooni ja töötati välja hulk standardeid, mis mõjutasid UNIXi arengut.

IEEE POSIX (elektri- ja elektroonikainseneride instituut, kaasaskantava operatsioonisüsteemi liides)

  • 1003.1 (1988) API (Application Programming Interface) OC standardimine
  • 1003.2 (1992) kesta ja utiliitide definitsioon
  • 1003.1b (1993) Real-time Application API
  • 1003.1c (1995) "lõimede" määratlused

ANSI (Ameerika Riiklik Standardiinstituut)

  • Standard X3.159 (1989)
  • C-keele süntaks ja semantika
  • Libc standardteegi sisu

X/Avatud

  • 1992. aasta Xwindow standard
  • 1996. aastal koos OSF-iga CDE (Common Desktop Environment) kasutajaliidese ja selle liidese loomine Motiffi graafilise kestaga

SVID (System V liidese definitsioon)

Kirjeldab System V UNIX-i versioonide väliseid liideseid. Lisaks SVID-ile ilmus ka SVVS (System V Verification Suite) – tekstiprogrammide komplekt, mis võimaldab kindlaks teha, kas süsteem vastab SVID standardile ja kas see on seda väärt. kannab uhket nime System V.

Tuntud UNIX-i versioonid

  • SVR2-l põhinev IBM AIX paljude SVR4, BSD, OSF/1 funktsioonidega
  • HP HP-UX versioon
  • Silicon Graphicsi IRIX-versioon, sarnane SVR4-ga
  • DEC-i digitaalne UNIX-versioon, mis põhineb OSF/1-l
  • SCO UNIX (1988) üks esimesi UNIX-süsteeme personaalarvutitele, mis töötati välja SVR3.2 baasil
  • Sun Microsystemsi UNIX SVR4 Solarise versioon