Bazele lucrului în sistemul de operare Unix.

depune / Acasă

Frâne

sistem de operare UNIX Data oficială de naștere a sistemului de operare UNIX considerat la 1 ianuarie 1970. Din acest moment își începe orice sistem UNIX ora sistemului

. Acesta este un timp foarte lung pentru un sistem de operare. Astăzi, în ciuda apariției multor alte sisteme de operare construite pe principii diferite, UNIX își ocupă ferm locul printre lideri.

Principalele caracteristici ale UNIX, care ne permit să înțelegem motivele longevității acestui sistem, includ următoarele.

Codul de sistem este scris într-un limbaj SI de nivel înalt, ceea ce îl face ușor de înțeles, schimbat și portat la alte platforme hardware.

În ciuda varietății de versiuni UNIX, întreaga familie se bazează pe o arhitectură fundamental identică și pe o serie de interfețe standard. UNIX are un simplu dar set puternic

interfețe standard de utilizator. Interfață unificată pentru fișiere sisteme UNIX

oferă acces nu numai la datele stocate pe discuri, ci și la terminale, imprimante, benzi magnetice, CD-uri, rețele și chiar memorie.

Un număr mare de aplicații diferite au fost dezvoltate pentru sistemul UNIX - de la simple editori de text la sisteme puternice de gestionare a bazelor de date.
.

În general, sistemul de operare UNIX poate fi reprezentat printr-un model pe două niveluri, așa cum se arată în Fig. 8.1 În centru se află nucleul de sistem . Nucleul interacționează direct cu hardware-ul computerului, izolând programele de aplicație de caracteristicile arhitecturii sale. Nucleul include programe care implementează un set de servicii furnizate de programe de aplicație . Serviciile kernel includ operațiuni I/O, crearea și gestionarea proceselor, sincronizarea proceselor etc. Următorul nivel al modelului este serviciile de sistem care oferă interfata utilizator OS UNIX. Schema de interacțiune cu nucleul și aplicațiile și sarcini de sistem

este la fel.

Caracteristicile sistemului de operare UNIX Sistemul de operare UNIX interacționează cu resursele hardware și software ale computerului pentru a funcționa:

    următoarele funcții

    managementul echipamentelor;

    managementul resurselor;

monitorizarea sistemului;

Programele de aplicație nu au capacitatea de a controla direct hardware-ul computerului. Doar sistemul de operare realizează funcții de management hardware, permițând aplicațiilor și altor programe să acceseze dispozitivele periferice (eliminând în același timp nevoia de cunoaștere a specificului administrării unui astfel de dispozitiv). Conceptul de independență a programului față de o implementare hardware specifică, încorporată în sistemul de operare, este unul dintre elementele importante de asigurare a portabilității sistemului de operare UNIX, ceea ce îi permite să fie utilizat pe scară largă într-o varietate de configurații hardware.

Managementul resurselor

Sistemul de operare UNIX gestionează distribuirea resurselor computerului între mulți utilizatori care efectuează multe sarcini simultan, lucrând adesea cu diferite obiecte, acceptând moduri de operare multitasking și multi-utilizator. Modul multitasking permite unui utilizator să ruleze mai multe programe simultan, în timp ce procesorul central și RAM partajată între mai multe procese.

Modul multi-utilizator permite mai multor utilizatori să lucreze simultan prin partajarea resurselor computerului, inclusiv periferice scumpe, cum ar fi imprimante sau plotere. Acest mod de operare se dovedește a fi mai rentabil decât combinarea mai multor mașini cu câte un utilizator.

Suport pentru interfata utilizator

Acesta este un mijloc de a oferi interacțiune interactivă (asigurând dialog) între utilizatori și un sistem informatic.

Versiunile moderne ale sistemului de operare UNIX acceptă mai multe tipuri de interfețe: linie de comandă, meniu și interfață grafică cu utilizatorul.

Linia de comandă de obicei convenabil pentru utilizatorii familiarizați cu funcțiile și echipe sisteme. Când lucrează cu acest tip de interfață, utilizatorul la „prompt” (prestabilit pentru utilizator este semnul dolarului) introduce fiecare comandă de la tastatură. Această interfață nu oferă o imagine de ansamblu asupra sistemului, dar vă permite să executați orice comandă pe sistem. Sunt numite programe care oferă o astfel de interfață shell-uri de comandă(coajă). Există o mulțime de shell-uri de comandă: Bourne shell (sh), Bourne Again Shell (bash), shell Korn (ksh), shell C (csh), shell Debian Almquist (liniuță), Zsh etc. Cel mai comun este bash.

Folosit de obicei de către începători sau utilizatori care trebuie să facă unele instalări în sistemul de operare. Adesea, o astfel de interfață funcționează ca un ghid: permite utilizatorului să selecteze o funcție dintr-o listă (meniu) care va fi efectuată de sistem. De obicei, meniurile sunt organizate ca text stratificat, oferind utilizatorului opțiuni multiple. Un exemplu de astfel de interfață este programul sysadm, care ajută administratorul de sistem să lucreze la configurarea și configurarea sistemului.

Interfață grafică cu utilizatorul destinat atât utilizatorilor începători, cât și utilizatorilor avansați. Oferă mai multe modalități de a interacționa cu computerul: prezentare generală a obiectelor de sistem reprezentate prin pictograme, executarea comenzilor prin selectare imagine grafică(pictograme) pe ecranul de afișare folosind un „mouse” sau un dispozitiv de urmărire. Sistemul de operare UNIX oferă X.desktop ca interfață grafică de utilizator pentru a lucra cu terminale X speciale sau sistemul X Window pentru a lucra cu terminale grafice obișnuite.

Securitate acces la distanță V retea de calculatoare

Sistemul de operare UNIX oferă utilizatorilor acces la resursele altor computere care rulează retea de calculatoare. Sistemul de operare include un set de aplicații de rețea care vă permit să stabiliți o conexiune cu un computer la distanță, să vă înregistrați într-un sistem de la distanță, să transferați date între computere din rețea și să utilizați e-mailul. UNIX acceptă crearea de rețele Sistem de fișiere NFS(Reţea Sistem de fișiere), care vă permite să utilizați comenzile sistemului de operare pentru a accesa sistemul de fișiere computer la distanță.

Componentele sistemului de operare UNIX

După cum am menționat mai sus, un sistem de operare este un set de programe care oferă funcții pentru gestionarea proceselor din sistem și implementează interfața dintre utilizatori și hardware-ul sistemului. Sistemul UNIX contine trei componente principale: sistem de comandă, shell și kernel.

Sistemul de operare UNIX conține câteva sute de comenzi care îndeplinesc sarcini de organizare și procesare a datelor și de gestionare a mediului utilizatorului. Comenzile în sine sunt programe care îndeplinesc funcții specifice, necesitând de obicei o intrare minimă și sunt executate relativ rapid. Cele mai multe dintre ele sunt disponibile pentru toți utilizatorii, dar există comenzi care sunt disponibile doar pentru administratorul de sistem, care este un utilizator privilegiat. Unele comenzi care permit introducerea interactivă de informații atunci când sunt executate sunt uneori numite utilitati. Exemple de utilitare includ editorul de text vi și comanda mail pentru gestionarea e-mailului.

Scoici. De obicei se numesc scoici programe interactive, oferind o interfață de utilizator cu nucleul sistemului de operare. Shell-ul devine procesul activ al utilizatorului din momentul în care acesta se conectează la sistem și până când se deconectează. Aceste programe sunt interprete de comenzi (uneori numite procesoare de comenzi).

După cum sa menționat mai sus, sistemul de operare UNIX utilizează de obicei mai multe shell-uri.

Shell-urile restricționate (rsh și ksh sunt subseturi ale shell-ului Bourne și shell-ului Korn) sunt concepute pentru utilizatorii care trebuie să restricționeze accesul la sistem.

Miez. Nucleul sistemului este nucleul sistemului de operare, care oferă funcții de bază: crearea și gestionarea proceselor, alocarea memoriei și asigurarea accesului la fișiere și dispozitive periferice.

Interacțiunea sarcinilor aplicației cu nucleul are loc printr-o interfață standard de apel de sistem. Interfața de apel de sistem definește formatul cererilor pentru servicii de bază. Un proces solicită o funcție de bază a nucleului printr-un apel de sistem la o anumită procedură de nucleu. Nucleul execută cererea și returnează datele necesare procesului.

Miezul este format din trei subsisteme principale:

    1) subsistemul de gestionare a proceselor și memoriei;

    2) subsistem de fișiere;

    3) subsistem de intrare/ieșire.

Realizează Sistemul de operare UNIX interacționează cu resursele hardware și software ale computerului pentru a funcționa:

    crearea și ștergerea proceselor;

    distribuirea resurselor sistemului între procese;

    sincronizarea proceselor;

    interacțiunea proceselor.

O funcție specială a nucleului realizată de planificatorul de procese (scheduler) rezolvă conflictele dintre procesele aflate în competiție pentru resursele sistemului.

Oferă alocarea memoriei între procese. Dacă nu există suficientă memorie pentru toate procesele, nucleul mută părți ale procesului sau mai multe procese (de obicei cele pasive, în așteptarea unor evenimente în sistem) într-o zonă specială a discului (zona „swap” ), eliberând resurse pentru rularea proceselor (active).

Subsistemul de fișiere oferă o interfață unificată pentru accesarea datelor aflate pe unitățile de disc și dispozitivele periferice. Efectuează operațiuni de plasare și ștergere a fișierelor, efectuează operațiuni de scriere/citire a datelor de fișier și, de asemenea, controlează drepturile de acces la fișiere.

Efectuează solicitări de la subsistemul de fișiere și de la subsistemul de control al procesului pentru a accesa dispozitivele periferice. Interacționează cu driverele de dispozitiv - programe speciale nuclee care servesc dispozitive externe.

Acces la sistemul UNIX

Pentru a stabili contactul cu un sistem UNIX, dvs trebuie să aibă:

    Terminal;

Obținerea unui nume de înregistrare

Nume de înregistrare este numele pe care sistemul UNIX îl folosește pentru a verifica dacă sunteți un utilizator autorizat al sistemului atunci când solicitați acces la acesta.

Trebuie să introduceți numele dvs. de conectare de fiecare dată când doriți să vă conectați.

Există mai multe reguli pentru alegerea unui nume de înregistrare. De obicei, lungimea numelui este între 3 și 8 caractere. Poate consta din litere mari sau mici, cifre și caractere de subliniere, dar nu poate începe cu un număr.

Cu toate acestea, numele dvs. de înregistrare poate fi specific aplicației dvs. Exemple de nume valide:

Comunicarea cu un sistem UNIX

Dacă sistemul de operare UNIX este instalat pe computer personal, vă puteți înregistra direct la acesta printr-o consolă virtuală bazată pe text. Dar sunt posibile și alte opțiuni de acces.

Să presupunem că terminalul este conectat direct sau printr-o linie telefonică la un computer. Deși această secțiune descrie o procedură tipică de conectare, este posibil ca aceste instrucțiuni să nu se aplice sistemului dvs. deoarece... Există mai multe moduri de a vă conecta la un sistem UNIX printr-o linie telefonică.

Pentru a comunica cu sistemul, trebuie să porniți terminalul.

Dacă este conectat direct la computer, va apărea imediat o solicitare în colțul din stânga sus:

Dacă un computer personal configurat să funcționeze într-o rețea folosind familia de protocoale TCP/IP este utilizat ca terminal, este necesar să se stabilească o conexiune cu un computer pe care este instalat sistemul de operare UNIX. Acest lucru se poate face în mai multe moduri, de exemplu folosind aplicația de rețea telnet găsită în sistemele de operare Windows sau folosind instrumente de acces la Internet. Vă rugăm să rețineți că acesta este un protocol nesigur care practic nu mai este folosit astăzi. O alternativă modernă este Secure Shell (SSH).

Exemplu.

Terminalul este un computer personal care rulează Windows NT, configurat pentru funcționarea în rețea. Trebuie să vă înregistrați pe un sistem UNIX.

Intrări și acțiuni necesare:

    pentru a stabili o conexiune cu sistemul de operare UNIX, trebuie să cunoașteți numele rețelei computerului la distanță sau adresa IP a acestuia (de exemplu, 192.168.2.19);

    găsiți aplicația telnet pe computerul dvs. personal și lansați-o;

    în fereastra aplicației care se deschide, selectați elementul de meniu Conexiune;

    introduceți adresa IP a sistemului UNIX la distanță (de exemplu, 192.168.2.19);

    setați caracteristicile terminalului după cum doriți.

Procedura de înregistrare

Când apare promptul de conectare:, introduceți numele dvs. de conectare și apăsați . De exemplu, dacă numele dvs. de conectare este all30123 , atunci șirul de conectare ar arăta astfel:

    autentificare: all30123

Dacă faceți o greșeală când introduceți numele dvs. de conectare, o puteți corecta folosind simbolul @ sau tasta .

Amintiți-vă că cazul caracterelor pe care le introduceți este important. Numele all30123 și ALL30123 aparțin a doi utilizatori diferiți.

Sistemul vă solicită acum să introduceți parola. Introduceți parola și apăsați tasta . Dacă faceți o greșeală în timp ce introduceți, o puteți corecta folosind tasta sau simbolul @. UNIX nu vă afișează parola pe ecran din motive de securitate.

Dacă numele de conectare și parola sunt valide pe un sistem UNIX, sistemul poate afișa informațiile curente și apoi un prompt linie de comandă.

Când vă conectați, ecranul terminalului dvs. va arăta astfel:

    autentificare: all30123

Dacă faceți o greșeală în timp ce vă conectați, UNIX va afișa un mesaj:

    autentificare incorectă

Vă va oferi apoi oa doua șansă de a vă conecta cu un prompt de conectare:. Ecranul va arăta astfel:

    autentificare: all30123

Dacă nu v-ați conectat niciodată la un sistem UNIX, procedura dvs. de conectare poate diferi de cea descrisă mai sus. Acest lucru se poate întâmpla dacă administratorul de sistem are o procedură de atribuire a parolelor temporare utilizatorilor noi. Dacă aveți o parolă temporară, sistemul vă va forța să alegeți o nouă parolă înainte de a vă permite să vă înregistrați.

Forțându-vă să alegeți o nouă parolă exclusiv pentru utilizarea dvs., sistemul oferă o securitate mai mare.

Procedura de autentificare:

    Tu faci contact; Sistemele UNIX afișează promptul de conectare:. Introduceți numele dvs. de conectare și apăsați tasta .

    Sistemele UNIX afișează o parolă: prompt. Introduceți parola temporară și apăsați tasta .

    Sistemul vă va informa că parola dvs. temporară nu mai este valabilă și vă va solicita să selectați o nouă parolă.

    Sistemul vă va solicita să introduceți vechea parolă. Introduceți o parolă temporară.

    Sistemul vă va solicita să introduceți noua parolă. Introduceți parola aleasă.

Parola trebuie să se potrivească următoarele cerințe:

    fiecare parolă trebuie să conțină cel puțin 6 caractere;

    fiecare parolă trebuie să conţină cel puţin 2 caractere alfabetice şi un număr sau caracter special. Un caracter alfabetic poate fi tastat fie cu litere mari sau mici;

    Fiecare parolă trebuie să fie diferită de numele dvs. de conectare. Literele mari și literele mici corespunzătoare sunt echivalente;

    Noua parolă trebuie să difere de cea veche cu cel puțin trei caractere.

Exemple de parole valide:

Pentru a verifica, sistemul vă cere să reintroduceți parola. Introduceți din nou parola.

Dacă introduceți o nouă parolă a doua oară diferit de prima dată, sistemul vă va informa că parolele nu se potrivesc și vă va solicita să repetați procedura de înregistrare din nou. Când parolele se potrivesc, sistemul va afișa un indiciu.

Următorul ecran afișează procedura descrisă:

    autentificare: dko30123

    parolă:

    Parola dvs. a expirat

    Alege unul nou

    Parola veche:

    Parolă Nouă:

    Reintroduceți parola nouă:

Identificarea utilizatorului

Când administrator de sistemînregistrează un utilizator în sistem, două componente de identificare sunt asociate cu numele de conectare: ID-ul de utilizator(ID utilizator - UID) și ID grup căruia îi aparține (ID grup - GID).

Numele de utilizator este asociat cu un număr unic. Sistemul îl folosește ca instrument în diferite mecanisme de securitate UNIX, cum ar fi protejarea fișierelor sau executarea comenzilor privilegiate.

Orice sistem de operare UNIX are un superutilizator special cu UID = 0, care este de obicei asociat cu numele rădăcină. Aceasta înseamnă că utilizatorul are toate privilegiile de sistem.

Numele grupului este, de asemenea, asociat cu un număr, care se referă de obicei la un grup de utilizatori uniți prin sarcini comune, de exemplu, angajați ai departamentului, studenți ai aceluiași flux etc. Acest număr este folosit și de mecanismele de securitate din sistem. Dacă utilizatorul trebuie să lucreze cu date din alte grupuri, acest identificator este asociat cu numele celorlalte grupuri.

Toate informațiile de înregistrare despre utilizatorii sistemului sunt stocate în fișierul /etc/passwd.

În versiunile moderne ale sistemului de operare UNIX, parole criptate și conexe informatii de sistem sunt stocate în fișierul /etc/shadow, a cărui structură și scopul câmpurilor sunt prezentate în Fig. 8.2
.

Înregistrările de date despre fiecare grup instalat sunt conținute în fișierul /etc/group, a cărui structură și scopul câmpurilor sunt prezentate în Fig. 8.3 .

Structura și scopul câmpurilor din fișierul /etc/passwd sunt prezentate în Fig. 8.4
.

Convenții de intrare

Când interacționați cu un sistem UNIX, trebuie să fiți conștient de convențiile de intrare. Sistemul UNIX necesită să introduceți comenzile cu litere mici (cu excepția unor comenzi care au majuscule). Alte convenții vă permit să efectuați sarcini, cum ar fi ștergerea literelor sau ștergerea unui rând, apăsând una sau două taste.

Tabelul 8.1.
Acorduri de intrare

Cheie

Funcţie

Linia de comandă a sistemului (vă solicită să introduceți comanda)

sau<^h>

Șterge caracterul

Opriți execuția unui program sau a unei comenzi

Ștergeți linia de comandă curentă

Atunci când este utilizat cu un alt simbol, înseamnă a îndeplini o funcție specială (numită secvență de comutare de cod). Când este utilizat în modul de editare al editorului vi, înseamnă sfârșitul modului de introducere a textului și revenirea la modul de comandă

Semnifică sfârșitul liniei de intrare și plasează cursorul pe o linie nouă

Opriți conectarea sau deconectarea (închidere)

Reveniți cu un caracter (pentru terminalele care nu au o cheie )

Opriți temporar ieșirea ecranului

Continuați să afișați informațiile care au fost oprite<^s>

Nota. În tabel 2.1 Simbolul ^ înseamnă caracter de control . Adică, în acest caz trebuie să apăsați două taste în același timp: tasta caracterului de control și litera specificată.

Sugestie de comandă

Linia de comandă standard pentru un utilizator pe un sistem UNIX este semnul dolar $. Pentru utilizatorul root - #. Când apare o solicitare pe ecranul terminalului dvs., înseamnă că sistemul UNIX așteaptă instrucțiuni de la dvs. Răspunsul adecvat la o solicitare din partea dvs. este să lansați o comandă urmată de o apăsare a tastei .

Corectarea erorilor de introducere

Există mai multe moduri de a corecta erorile de introducere. Simbolul @ șterge linia curentă și tastele Şi<^h>șterge ultimul caracter introdus. Aceste taste și caractere sunt valorile implicite. Funcțiile pe care le îndeplinesc pot fi reatribuite altor taste.

Oprirea executării comenzii

Pentru a opri rularea majorității comenzilor, pur și simplu apăsați comanda rapidă de la tastatură . Sistemul UNIX va opri programul și va afișa un prompt pe ecran. Acest prompt servește ca semnal că ultima comandă care rulează s-a oprit și sistemul este gata să primească următoarea comandă.

Când apare o solicitare pe ecran, sistemul UNIX te-a recunoscut ca utilizator autorizat și așteaptă să introduci o comandă.

În general, linia de comandă are următoarea structură:

    nume [opțiuni] [argumente]

Numele comenzii, opțiunile și argumentele trebuie separate printr-un spațiu sau un tab. Procesarea liniei de comandă de către interpret începe numai după apăsarea unei taste .

În prezentarea ulterioară a funcțiilor comenzilor, se presupune:

Opțiuni (parametri):

    sunt un semn al modificării comenzii și, de regulă, constau dintr-un singur caracter; literele mari și mici înseamnă modificări diferite;

    de regulă, ele încep cu un simbol „-” („minus”), care nu este separat de alte caractere printr-un spațiu;

    poate fi combinat în orice fel, dar semnul minus poate fi folosit o singură dată.

Argumentele specifică obiectele pe care comanda ar trebui să le proceseze, de exemplu:

    nume de fișier;

    numărul procesului;

Dacă știți ce ar trebui să facă programul apelat, dar nu sunteți sigur de sintaxa corectă, puteți specifica opțiunea --help pe linia de comandă după numele comenzii:

    $cal --ajutor

Pentru a putea primi informatii detaliate, Sistemul de operare UNIX are un manual încorporat (on-line), la care accesul este asigurat de comenzile man și apropos.

În cel mai simplu caz, pentru a obține informații despre orice comandă, trebuie să specificați numele acesteia ca argument pentru comanda man:

    om nume_comandă

apropos afișează o listă de comenzi în funcție de cuvântul cheie (model) specificat ca argument de comandă:

    apropos șablon

Exemple.

Dacă executați comanda dată și apăsați tasta , sistemul UNIX apelează un program numit date , îl execută și afișează rezultatul pe ecran:

    $date

    Marți, 18 septembrie 14:49:07 2000

Comanda date afișează data și ora.

Dacă executați comanda who și apăsați tasta , atunci ecranul va arăta astfel:

    $ OMS

    dko30024

    18 oct 8:30

    dko30001

    Oct18 8:34

    dko30020

    Oct18 8:32

    18 oct 8:00

care listează numele de conectare ale utilizatorilor care rulează în prezent pe sistemul dumneavoastră. Notația tty (a doua coloană) face referire la fisiere speciale, care corespund fiecărui terminal de utilizator. A treia și a patra coloană indică data și ora înregistrării fiecărui utilizator. .

Aceasta înseamnă că ați finalizat cu succes munca cu sistemul și este gata să înregistrați un nou utilizator.

Dacă v-ați autentificat de la un terminal la distanță, conexiunea va fi deconectată, ceea ce vă va fi notificat, de exemplu, de către aplicația telnet.

Nota. Înainte de a deconecta terminalul, asigurați-vă că opriți sistemul.

Constatări cheie

    UNIX este un sistem multitasking, multi-utilizator. Un server puternic poate servi cererile unui număr mare de utilizatori. Sistemul poate îndeplini o varietate de funcții: funcționează ca server de calcul care deservește sute de utilizatori, ca server de baze de date, ca server de rețea sau router de rețea.

    În general, sistemul de operare UNIX poate fi reprezentat ca un model cu două niveluri. În centru este nucleul sistemului (kernel). Nucleul interacționează direct cu hardware-ul computerului, izolând programele de aplicație de caracteristicile arhitecturii sale. Nucleul include programe care implementează un set de servicii furnizate programelor de aplicație. Serviciile kernel includ operațiuni I/O, crearea și gestionarea proceselor, sincronizarea proceselor etc. Următorul nivel al modelului este serviciile de sistem care oferă interfața cu utilizatorul a sistemului de operare UNIX. Schema de interacțiune cu nucleul atât a aplicațiilor, cât și a sarcinilor de sistem este aceeași.

    Sistemul de operare UNIX interacționează cu resursele hardware și software ale computerului, realizând următoarele funcții:

    • următoarele funcții

      managementul echipamentelor;

      suport pentru interfata utilizator;

      efectuarea de intrare și ieșire a informațiilor;

      managementul resurselor;

      asigurarea accesului de la distanță la o rețea de calculatoare.

    Un sistem UNIX conține trei componente principale: sistemul de comandă, shell-ul și nucleul.

    Sistemul de operare UNIX conține câteva sute de comenzi care îndeplinesc sarcini de organizare și procesare a datelor și de gestionare a mediului utilizatorului. Comenzile în sine sunt programe mici care îndeplinesc funcții specifice, necesitând de obicei o intrare minimă și sunt executate relativ rapid.

    Shell-urile sunt denumite în mod obișnuit programe interactive care oferă o interfață cu utilizatorul pentru nucleul sistemului de operare. Shell-ul devine procesul activ al utilizatorului din momentul în care acesta se conectează la sistem și până când se deconectează. Aceste programe sunt interprete de comenzi (uneori numite procesoare de comenzi).

    Nucleul sistemului este nucleul sistemului de operare, care oferă funcții de bază: crearea și gestionarea proceselor, alocarea memoriei și asigurarea accesului la fișiere și dispozitive periferice.

    Nucleul este format din trei subsisteme principale:

    • subsistem de gestionare a proceselor și memoriei;

      subsistem de fișiere;

      subsistem de intrare/ieșire.

    Pentru a stabili contactul cu un sistem UNIX, trebuie să aveți:

    • Terminal;

      un nume de autentificare care vă identifică ca utilizator autorizat;

      o parolă care vă verifică identitatea;

      instrucțiuni pentru dialog și acces la sistemul UNIX dacă terminalul dumneavoastră nu este conectat direct la computer.

Întrebări de securitate

    Ce probleme este proiectată să rezolve clasa de sistem de operare UNIX?

    Ce capabilități ar trebui să ofere un sistem de operare de clasă UNIX?

    Care sunt sarcinile nucleului OS UNIX?

    Care sunt funcțiile nucleului UNIX OS?

    Care este scopul componentei Command System a sistemului de operare?

    Putem spune că shell-ul oferă utilizatorului o interfață interactivă pentru interacțiunea cu sistemul de operare?

    Cum se realizează autentificarea utilizatorului în UNIX?

Bazele Linux

Linux este inspirat de sistemul de operare Unix, care a apărut în 1969 și este încă în uz și dezvoltare. O mare parte din funcționările interne ale UNIX există în Linux, ceea ce este cheia pentru înțelegerea elementelor fundamentale ale sistemului.

Unix sa concentrat în primul rând pe interfața liniei de comandă, iar Linux a moștenit acest lucru. Astfel, interfața grafică cu utilizatorul cu ferestrele, imaginile și meniurile sale este construită deasupra interfeței principale - linia de comandă. În plus, aceasta înseamnă că sistemul de fișiere Linux este conceput pentru a fi ușor de gestionat și accesibil din linia de comandă.

Directoare și sistem de fișiere

Sistemele de fișiere din Linux și Unix sunt organizate conform unei structuri ierarhice, asemănătoare arborelui. Nivelul superior al sistemului de fișiere este / sau directorul rădăcină . Aceasta înseamnă că toate celelalte fișiere și directoare (inclusiv alte unități și partiții) se află în directorul rădăcină. Pe UNIX și fișier Linux totul este luat în considerare - inclusiv hard disk-urile, partițiile acestora și mediile amovibile.

De exemplu, /home/jebediah/cheeses.odt arată calea completă către fișierul cheeses.odt. Fișierul se află în directorul jebediah, care se află în directorul de acasă, care la rândul său se află în directorul rădăcină (/).

În directorul rădăcină (/) există o serie de directoare de sistem importante care sunt prezente în majoritatea distribuțiilor Linux. Următoarea este o listă de directoare partajate care se află direct sub directorul rădăcină (/):

Drepturi de acces

Toate fișierele din Linux au permisiuni care permit sau interzice citirea, modificarea sau executarea acestora. Super utilizatorul „root” are acces la orice fișier din sistem.

Fiecare fișier are următoarele trei seturi de acces, în ordinea importanței:

    proprietar

    se referă la utilizatorul care este proprietarul fișierului

    grup

    aparține grupului asociat fișierului

    alte

    se aplică tuturor celorlalți utilizatori ai sistemului

Fiecare dintre cele trei seturi definește drepturile de acces. Drepturile și modul în care sunt aplicate la diferite fișiere și directoare sunt prezentate mai jos:

    lectură

    fișierele pot fi afișate și deschise pentru citire

    conținutul directorului este disponibil pentru vizualizare

    înregistra

    fișierele pot fi modificate sau șterse

    conținutul directoarelor este disponibil pentru modificări

    execuţie

    fișierele executabile pot fi rulate ca programe

    directoarele pot fi deschise

Pentru a vizualiza și edita permisiunile pentru fișiere și directoare, deschideți Aplicații → Accesorii → Folder principalși faceți clic dreapta pe un fișier sau director. Apoi selectați Proprietăți. Permisiunile există sub Permisiuniși permiteți editarea tuturor nivelurilor de permisiune, dacă sunteți proprietarul fișierului.

Pentru a afla mai multe despre permisiunile fișierelor în Linux, citiți pagina cu permisiunile fișierelor din Ubuntu Wiki.

Terminale

Lucrul la linia de comandă nu este o sarcină atât de descurajantă pe cât ai crede. Nu sunt necesare cunoștințe speciale pentru a ști cum să folosești linia de comandă. Este un program ca orice altceva. Cele mai multe lucruri în Linux pot fi făcute folosind linia de comandă, deși există instrumente grafice pentru majoritatea programelor. Uneori pur și simplu nu sunt suficiente. Aici este utilă linia de comandă.

The Terminal se află în Aplicații → Terminal . Terminalul este adesea numit prompt de comandă sau shell. În vremurile trecute, acesta era modul în care utilizatorul interacționa cu computerul. Cu toate acestea, utilizatorii de Linux au descoperit că utilizarea shell-ului poate fi mai rapidă decât o metodă grafică și are încă un merit și astăzi. Aici veți învăța cum să utilizați terminalul.

Terminalul a fost folosit inițial pentru gestionarea fișierelor și, într-adevăr, este încă folosit ca browser de fișiere dacă mediul grafic nu funcționează. Puteți folosi terminalul ca browser pentru a gestiona fișierele și a anula modificările care au fost făcute.

Comenzi de bază

Vizualizați conținutul directorului: ls

Echipă ls afișează o listă de fișiere în culori diferite cu formatare completă text

Crearea directoarelor: mkdir (numele directorului)

Echipă mkdir creează un director nou.

Accesați directorul: cd (/address/directory)

Echipă CD vă permite să mergeți în orice director specificat.

Copierea unui fișier sau director: cp (care este numele fișierului sau directorului) (unde este directorul sau numele fișierului)

Echipă cp copiază orice fișier selectat. Echipă cp -r copiază orice director selectat cu tot conținutul.

Eliminarea fișierelor sau directoarelor: rm (nume fișier sau folder)

Echipă rmșterge orice fișier selectat. Echipă rm -rfșterge orice director selectat cu tot conținutul său.

Redenumiți un fișier sau un director: mv (nume fișier sau director)

Echipă mv redenumește sau mută fișierul sau directorul selectat.

Găsirea directoarelor și fișierelor: localizați (nume director sau fișier)

Echipă localiza vă permite să găsiți un fișier specificat pe computer. Indexarea fișierelor este folosită pentru a accelera munca. Pentru a actualiza indexul, introduceți comanda actualizatb. Funcționează automat în fiecare zi când computerul este pornit. Pentru a rula această comandă, aveți nevoie de drepturi de super utilizator (consultați „Utilizatorul root și comanda sudo”).

De asemenea, puteți utiliza metacaracterele pentru a specifica mai multe fișiere, cum ar fi „*” (potriviți toate caracterele) sau „?” (potriviți un personaj).

Pentru o introducere mai detaliată a liniei de comandă Linux, vă rugăm să citiți introducerea liniei de comandă de pe wiki Ubuntu.

Editarea textului

Toate configurațiile și setările din Linux sunt salvate în fișiere text. Chiar dacă de cele mai multe ori puteți edita configurațiile prin interfața grafică, ocazional este posibil să trebuiască să le editați manual. Mousepad este editorul de text implicit Xubuntu, pe care îl puteți lansa făcând clic pe Aplicații → Accesorii → Mousepad din sistemul de meniuri de pe desktop.

Uneori, Mousepad lansat din linia de comandă folosind aplicația gksudo, care rulează Mousepad cu privilegii administrative, ceea ce vă permite să schimbați fișierele de configurare.

Dacă aveți nevoie de un editor de text pe linia de comandă, puteți utiliza nano- editor de text ușor de utilizat. Când rulați din linia de comandă, utilizați întotdeauna următoarea comandă pentru a dezactiva împachetarea automată a cuvintelor:

Nano-w

Pentru mai multe informații despre modul de utilizare nano, consultați ghidul de pe wiki.

Există, de asemenea, câteva alte editoare bazate pe terminale disponibile în Ubuntu. Printre cele populare se numără VIMşi Emacs(avantajele și dezavantajele fiecăruia sunt un motiv pentru multe dezbateri amicale în cadrul comunității Linux). Acestea sunt adesea mai complexe de utilizat decât nano, dar sunt și mai puternice.

utilizator root și comanda sudo

Utilizatorul root în GNU/Linux este utilizatorul care are acces administrativ la sistemul dumneavoastră. Utilizatorii normali nu au acest acces din motive de securitate. Cu toate acestea, Ubuntu nu activează utilizatorul root. În schimb, accesul administrativ este acordat utilizatorilor individuali, care pot folosi aplicația „sudo” pentru a efectua sarcini administrative. Primul cont de utilizator pe care l-ați creat pe sistemul dumneavoastră în timpul instalării va avea, implicit, acces la sudo. Puteți restricționa și activa accesul sudo utilizatorilor cu ajutorul Utilizatori și grupuri aplicație (consultați „Gestionarea utilizatorilor și a grupurilor” pentru mai multe informații).

Când deschideți un program care necesită drepturi de super utilizator, sudo vă va cere să introduceți parola. Acest lucru va asigura că aplicațiile rău intenționate nu vă pot deteriora sistemul și, de asemenea, vă va aminti că sunteți pe cale să efectuați acțiuni care necesită o atenție suplimentară!

Pentru a utiliza sudo pe linia de comandă, tastați pur și simplu „sudo” înainte de comanda pe care doriți să o executați. După aceasta, vi se va solicita să introduceți parola.

Sudo își va aminti parola timp de 15 minute (în mod implicit). Această caracteristică a fost concepută pentru a permite utilizatorilor să efectueze mai multe sarcini administrative fără a li se cere o parolă de fiecare dată.

Fiți atenți când faceți sarcini administrative - vă puteți deteriora sistemul!

Alte sfaturi pentru utilizarea sudo includ:

    Pentru a utiliza terminalul ca super utilizator (rădăcină), tastați „sudo -i” la linia de comandă

    Întreaga suită de instrumente implicite de configurare grafică din Ubuntu utilizează deja sudo, așa că vă vor solicita parola dacă este necesar.

    La pornire aplicatii grafice„gksudo” este folosit în loc de „sudo”. Acest lucru vă permite să solicitați utilizatorului o parolă într-o fereastră grafică mică. Comanda „gksudo” este la îndemână dacă doriți să instalați un buton de pornire Sinaptice la panoul dvs. sau ceva similar.

    Pentru mai multe informații despre sudo program și absența unui utilizator root în Ubuntu, citiți pagina sudo de pe wiki Ubuntu.

În 1965, Bell Telephone Laboratories (o divizie a AT&T), împreună cu operatorul penal și Massachusetts Institute of Technology (rIT), au început să dezvolte un nou sistem de operare numit rULTIqS (rULTipleoed Information and Computing Service). Participanții la proiect au avut scopul de a crea un sistem de operare multitasking de partajare a timpului, capabil să susțină munca a câteva sute de utilizatori. De la Bell Labs, doi participanți au luat parte la proiect: Ken Thompson și Dennis Ritchie. Deși sistemul rULTIqS nu a fost niciodată finalizat (Bell Labs s-a retras din proiect în 1969), a devenit precursorul sistemului de operare care mai târziu a devenit cunoscut sub numele de Unio.

Cu toate acestea, Thompson, Ritchie și o serie de alți angajați au continuat să lucreze la crearea unui sistem de programare convenabil. Folosind idei și dezvoltări care au apărut în urma lucrărilor la rULTIqS, au creat un mic sistem de operare în 1969, care includea un sistem de fișiere, un subsistem de gestionare a proceselor și un mic set de utilități. Sistemul a fost scris în asamblator și folosit pe computerul nDn-7. Acest sistem de operare a fost numit UNIX, un nume similar cu rULTIqS și inventat de un alt membru al echipei de dezvoltare, Brian Kernigan.

Deși versiunea timpurie a UNIX promitea multe, nu și-ar fi realizat întregul potențial fără aplicarea unui proiect real. Și s-a găsit un astfel de proiect. Când departamentul de brevete al Bell Labs avea nevoie de un sistem de procesare a textului în 1971, UNIX a fost ales ca sistem de operare. Până atunci, a fost transferat la nDn-11 mai puternic și a crescut puțin 16K erau ocupați de sistemul însuși, 8K erau alocați programelor de aplicație, dimensiunea maximă a fișierului a fost setată la 64K cu 512K de disc. spaţiu.

La scurt timp după ce au fost create primele versiuni de asamblare, Thomson a început să lucreze la un compilator pentru limbajul FxuTuAN și, ca urmare, a dezvoltat limbajul B. Acesta era un interpret cu toate limitările unui interpret, iar Ritchie l-a dezvoltat într-un alt limbaj, numit q, care a permis generarea codului mașinii. În 1973, nucleul sistemului de operare a fost rescris în limbajul C de nivel înalt, o mișcare nemaiauzită până acum, care a avut un impact enorm asupra popularității UNIX. Acest lucru însemna că un sistem UNIX putea fi portat pe alte platforme hardware în câteva luni, iar efectuarea modificărilor nu a fost deosebit de dificilă. Numărul de sisteme UNIX de operare la Bell Labs a depășit 25, iar grupul UNIX Sgstem Proup (USp) a fost format pentru a menține UNIX.

Versiuni de cercetare (AT&T Bell Labs)

În conformitate cu legea federală din SUA, AT&T nu avea dreptul să distribuie UNIX comercial și să-l folosească pentru propriile nevoi, dar începând cu 1974, sistemul de operare a început să fie transferat universităților în scopuri educaționale.

Sistemul de operare a fost modernizat, fiecare noua versiune a fost furnizat cu ediția corespunzătoare a Ghidului programatorului, de la care versiunile în sine au primit numele ediții (jdition). Un total de 10 ediții au fost lansate între 1971 și 1989. Cele mai importante ediții sunt enumerate mai jos.

Revizia 1 (1971)

Prima versiune de UNIX scrisă în limbaj de asamblare pentru nDn-11. Include limbajul B și multe comenzi și utilitare binecunoscute, inclusiv cat, chdir, chmod, cp, ed, find, mail, mkdir, mkfs, mount, mv, rm, rmdir, wc, who. Folosit în principal ca instrument de procesare a textului pentru departamentul de brevete Bell Labs.

Revizia 3 (1973)

Comanda ss a apărut în sistem, lansând compilatorul de limbaj C sistemele instalate ajuns la 16.

Revizia 4 (1973)

Primul sistem în care nucleul este scris în limbajul de nivel înalt C.

Revizia 6 (1975)

Prima versiune de UNIX disponibilă în afara Bell Labs. Sistemul a fost rescris complet în C. Din acel moment, au început să apară versiuni noi care nu au fost dezvoltate la Bell Labs și popularitatea UNIX a început să crească. Această versiune a sistemului a fost instalată la Universitatea din California din Berkeley, iar prima versiune a BSD (Berheleg Softkare Distributuion) UNIX a fost lansată în curând pe baza acesteia.

Revizia 7 (1979)

Include interpretul de comandă Bourne Shell și un compilator C de la Kernighan și Ritchie. Nucleul sistemului a fost rescris pentru portabilitate pe alte platforme. Licența pentru această versiune a fost achiziționată de ricrosoft, care a dezvoltat sistemul de operare XjNIX pe baza acestuia.

UNIX a crescut în popularitate, iar până în 1977 numărul de sisteme de operare a depășit 500. În același an, sistemul a fost portat pe un computer non-nDn pentru prima dată.

Genealogia UNIX

Nu există un sistem UNIX standard, toate sistemele asemănătoare UNIX au caracteristici și capabilități unice pentru ele. Dar în spatele diferitelor nume și caracteristici, este încă ușor de observat arhitectura, interfața cu utilizatorul și mediul de programare UNIX. Explicația este destul de simplă: toate aceste sisteme de operare sunt rude apropiate sau îndepărtate. Cei mai importanți reprezentanți ai acestei familii sunt descriși mai jos.

Sistemul III (1982)

Nevrând să piardă inițiativa de a dezvolta UNIX, AT&T în 1982 a fuzionat mai multe versiuni existente ale sistemului de operare și a creat o versiune numită Sgstem III.

Această versiune a fost destinată distribuției în afara Bell Labs și AT&T și a marcat începutul unei puternice ramuri a UNIX care este încă vie și în creștere astăzi.

Sistemul V (1983)

În 1983, System V a fost lansat, iar mai târziu mai multe versiuni pentru acesta:

  • SVR2 (1984): InterProcess Communication (IPC) memorie partajată, semafore
  • SVR3 (1987): I/O Streams System, File System Switch, biblioteci partajate
  • SVR4 (1989): prize NFS, FFS, BSD. SVR4 combină capabilitățile mai multor versiuni binecunoscute de UNIX - SunOS, BSD UNIX și versiunile anterioare ale System V.

Multe componente ale acestui sistem au fost suportate de standardele ANSI, POSIX, X/Open și SVID.

UNIX BSD (1978) (Bazat pe ediția a 6-a UNIX)

  • 1981, la ordinul lui DAunA, stiva Tqn/In a fost construită în BSD UNIX (în 4.2BSD)
  • 1983 folosit activ tehnologii de rețeași s-ar putea conecta la rețeaua ARPANET
  • În 1986 a fost lansată versiunea 4.3BSD
  • 1993 Au fost lansate 4.4BSD și BSD Lite (ultimele versiuni lansate).

OSF/1 (1988) (Open Software Foundation)

În 1988, IBM, DEC, HP s-au unit pentru a crea o versiune de UNIX independentă de AT&T și SUN și au creat o organizație numită OSF. Rezultatul activităților acestei organizații a fost sistemul de operare OSF/1.

Standarde

Cu atât au apărut mai multe diverse opțiuni UNIX, cu atât nevoia de standardizare a sistemului devenea mai evidentă. Având standarde, aplicațiile sunt mai ușor de portat și protejează atât utilizatorii, cât și producătorii. Ca urmare, au apărut mai multe organizații legate de standarde și au fost dezvoltate o serie de standarde care au influențat dezvoltarea UNIX.

IEEE POSIX (Interfața sistemului de operare portabil al Institutului de Ingineri Electrici și Electronici)

  • 1003.1 (1988) API (Application Programming Interface) Standardizare OC
  • 1003.2 (1992) definiția shell-ului și utilităților
  • 1003.1b (1993) API de aplicație în timp real
  • 1003.1c (1995) definiții ale „firelor”

ANSI (Institutul Național American de Standarde)

  • Standard X3.159 (1989)
  • Sintaxa și semantica limbajului C
  • Conținutul bibliotecii standard libc

X/Deschis

  • 1992 Standard Xwindow
  • 1996 crearea, împreună cu OSF, a interfeței de utilizator CDE (Common Desktop Environment) și a interfeței acesteia cu shell-ul grafic Motiff

SVID (Definiția interfeței System V)

Descrie interfețele externe ale versiunilor UNIX ale System V. Pe lângă SVID, a fost lansat SVVS (System V Verification Suite) - un set de programe text care vă permite să determinați dacă un sistem respectă standardul SVID și dacă este demn de purtând numele mândru de System V.

Versiuni cunoscute de UNIX

  • IBM AIX bazat pe SVR2 cu multe caracteristici SVR4, BSD, OSF/1
  • Versiunea HP-UX a HP
  • Versiunea IRIX a Silicon Graphics, similară cu SVR4
  • Versiunea digitală UNIX a DEC bazată pe OSF/1
  • SCO UNIX (1988) unul dintre primele sisteme UNIX pentru PC dezvoltat pe baza SVR3.2
  • Versiunea Solaris a UNIX SVR4 de la Sun Microsystems

Înainte de a putea stăpâni, trebuie să fii fluent în conceptele de bază ale sistemului Linux. A ști cum să lucrezi cu Linux va fi o abilitate foarte utilă, deoarece serverele Linux rulează număr mare site-uri web, e-mailși alte servicii de internet.

În această secțiune, vom explica conceptele de bază asociate cu Linux. În îndeplinirea sarcinii care ne-a fost atribuită, credem că aveți deja o înțelegere a sistemelor informatice în general, inclusiv a unor componente precum unitatea centrală de procesare (CPU), memoria cu acces aleatoriu (RAM), placa de baza, hard disk, precum și alte controlere și dispozitive asociate acestora.

3.1

Termenul „Linux” este adesea folosit pentru a se referi la întregul sistem de operare, dar Linux este de fapt nucleul sistemului de operare care este lansat de încărcătorul de pornire lansat de BIOS/UEFI. Nucleul își asumă un rol similar cu cel al dirijorului într-o orchestră, asigurându-se că hardware-ul și software-ul funcționează în armonie. Acest rol implică gestionarea echipamentelor, utilizatorilor și sistemelor de fișiere. Nucleul este o bază comună pentru alte programe care rulează pe un sistem dat și cel mai adesea rulează inelul zero cunoscut și ca spațiu kernel.

Spațiu utilizator

Folosim termenul „spațiu utilizator” pentru a cuprinde tot ceea ce se întâmplă în afara nucleului.

Printre programele care rulează în spațiul utilizatorului se numără multe dintre utilitățile de bază din proiectul GNU, dintre care majoritatea sunt concepute pentru a fi rulate din linia de comandă. Le puteți folosi în scripturi pentru a automatiza diverse sarcini. Informații suplimentare Pentru cele mai importante comenzi, consultați secțiunea 3.4 " ".

Să aruncăm o privire rapidă asupra diferitelor sarcini efectuate de nucleul Linux.

3.1.1 Pornirea echipamentului

Scopul nucleului este, în primul rând, de a gestiona și controla principalele componente ale computerului. Le detectează și le configurează atunci când computerul este pornit și când un dispozitiv este montat sau scos (de exemplu, dispozitiv USB). De asemenea, le face accesibile software-ului de nivel superior printr-o interfață software simplificată, astfel încât aplicațiile să poată profita de dispozitive fără a fi nevoite să se ocupe de detalii precum slotul de expansiune în care este introdus cardul. Interfața de programare oferă și un anumit nivel de abstractizare; acest lucru vă permite să utilizați echipamente pentru conferințe video, de exemplu, să utilizați o cameră web, indiferent de modelul și producătorul acesteia. Software poate folosi interfața Video pentru Linux(V4L) și nucleul va traduce apelurile de interfață în comenzi hardware reale necesare pentru a opera o anumită cameră web.

Nucleul exportă date despre hardware-ul detectat prin sistemele virtuale /proc/ și /sys/. Aplicațiile accesează adesea dispozitivele folosind fișiere create în /dev/ . Fișiere speciale care reprezintă discuri (de exemplu, /dev/sda), partiții (/dev/sdal), șoareci (/dev/input/mouse0), tastaturi (/dev/input/event0), plăci de sunet(/dev/snd/*), porturi seriale (/dev/ttyS*) și alte componente.

Există două tipuri de fișiere de dispozitiv: bloc și caracter. Primele au caracteristicile unui bloc de date: au dimensiuni finite și poți accesa octeți în orice poziție din bloc. Aceștia din urmă se comportă ca un flux de personaje. Puteți citi și scrie caractere, dar nu puteți căuta o anumită poziție și nu puteți modifica octeți arbitrari. Pentru a afla tipul de fișier al dispozitivului, verificați prima literă a ieșirii comenzii Is -1. Acesta poate fi fie b, pentru dispozitivele bloc, fie c, pentru dispozitivele cu caractere:

După cum probabil ați ghicit, discurile și partițiile folosesc fișiere dispozitiv bloc, în timp ce mouse-ul, tastatura și porturile seriale folosesc fișiere dispozitiv cu caractere. În ambele cazuri interfata software include comenzi speciale care pot fi activate printr-un apel de sistem ioctl.

3.1.2 Îmbinarea sistemelor de fișiere

Sistemele de fișiere sunt un aspect important al nucleului. Sistemele bazate pe Unix combină toate depozitele de fișiere într-o singură ierarhie, permițând utilizatorilor și aplicațiilor să acceseze date cunoscând locația acestora în acea ierarhie.

Punctul de plecare al acestui arbore ierarhic se numește rădăcină, reprezentată prin simbolul „/”. Acest director poate conține subdirectoare numite. De exemplu, subdirectorul principal „/” se numește /home/. Acest subdirector, la rândul său, poate conține și alte subdirectoare etc. Fiecare director poate conține și fișiere în care fișierele vor fi stocate. Deci home/buxy/Desktop/hello.txt se referă la un fișier numit hello.txt care este stocat în subdirectorul Desktop, care se află în subdirectorul buxy al directorului de acasă, care este prezent în rădăcină. Nucleul se compilează între un anumit sistem de denumire și o locație de stocare pe disc.

Spre deosebire de alte sisteme, Linux are o singură astfel de ierarhie și poate integra date de pe mai multe discuri. Unul dintre aceste discuri devine root, iar celelalte sunt montate pe un director din ierarhie (această comandă în Linux se numește mount). Aceste alte unități sunt apoi puse la dispoziție în punctele de montare ( puncte de montare ) Acest lucru permite ca directoarele de acasă ale utilizatorului (care sunt de obicei stocate în /home/ ) să fie stocate pe un hard disk separat, care va conține directorul buxy (împreună cu directoarele de acasă ale altor utilizatori). Odată ce ați montat unitatea pe /home/, aceste directoare devin accesibile în locația lor normală și diverse căi, cum ar fi /home/buxy/Desktop/hello.txt, continuă să funcționeze.

Există multe formate de sisteme de fișiere care se potrivesc cu numeroasele moduri în care datele pot fi stocate fizic pe discuri. Cele mai cunoscute sunt ext2, ext3 și ext4, dar există și altele. De exemplu, VFAT este un sistem de fișiere care a fost folosit istoric de către DOS și sistemele de operare sisteme Windows. Sprijină operarea VFAT sistem Linux permite hard disk-uri să fie disponibil atât pe Kali, cât și pe Windows. În orice caz, trebuie să pregătiți sistemul de fișiere pe disc înainte de a-l monta, iar această operație este numită formatare.

Comenzi precum mkfs.ext3 (unde mkfs reprezintă Creați sistemul de fișiere) se ocupă de formatare. Aceste comenzi necesită ca parametru un fișier de dispozitiv reprezentând partiția de formatat (de exemplu, /dev/sdal, prima partiție de pe primul disc). Această operațiune distruge toate datele și ar trebui să fie rulată o singură dată, cu excepția cazului în care doriți să ștergeți sistemul de fișiere și să o luați de la capăt.

Există, de asemenea, sisteme de fișiere de rețea, cum ar fi NFS, care nu stochează date pe un disc local. În schimb, datele sunt transmise prin rețea către un server, care le stochează și le face disponibile la cerere. Cu abstracția sistemului de fișiere, nu trebuie să vă faceți griji cu privire la modul în care este mapată acea unitate, deoarece fișierele rămân accesibile în calea lor ierarhică normală.

3.1.3 Managementul proceselor

Un proces este o instanță executabilă a unui program care necesită stocare în memorie atât pentru programul în sine, cât și pentru datele sale de lucru. Nucleul este responsabil pentru crearea și urmărirea proceselor. Când rulează un program, nucleul alocă mai întâi o parte de memorie, încarcă cod executabil din sistemul de fișiere în acea memorie și apoi rulează codul. Conține informații despre acest proces, dintre care cel mai proeminent este un număr de identificare cunoscut sub numele ID proces (identificatorul procesului(PID)).

Cele mai moderne sisteme de operare, și anume cele care rulează pe Bazat pe Unix kernel-urile, inclusiv Linux, sunt capabile să îndeplinească multe sarcini. Cu alte cuvinte, ele permit sistemului să ruleze mai multe procese în același timp.

De fapt, există un singur proces care rulează la un moment dat, dar nucleul împarte timpul CPU în bucăți mici și rulează fiecare proces pe rând. Deoarece aceste intervale de timp sunt foarte scurte (în milisecunde), ele creează aspect procesele rulează în paralel, deși sunt active numai în intervalul lor de timp și inactive în restul timpului. Scopul principal al nucleului este de a regla mecanismele de programare într-un mod care să mențină acest aspect în timp ce crește performanța sistemului. Dacă perioada de timp este prea lungă, este posibil să nu mai răspundă corect. Ei bine, dacă sunt prea scurte, sistemul va pierde prea mult timp comutând între ele.

Astfel de decizii pot fi controlate folosind prioritățile proceselor, unde procesele cu prioritate ridicată vor rula pentru perioade mai lungi de timp și la intervale de timp mai frecvente decât procesele cu prioritate scăzută.

Sisteme multiprocesor (și alte variante)

Restricțiile descrise mai sus, potrivit cărora un singur proces poate fi rulat la un moment dat, nu se aplică în toate situațiile. Ar fi mai corect să spun asta un nucleu poate funcționa doar cu un singur proces. Sistemele multiprocesor, multicore sau hyperthreaded permit rularea în paralel a mai multor procese. Cu toate acestea, același sistem de reducere a timpului este utilizat pentru a gestiona situațiile în care sunt mai multe procese active decât nucleele de procesor disponibile. Acest lucru nu este neobișnuit: un sistem de bază, chiar și complet inactiv, are aproape întotdeauna zeci de procese în execuție.

Nucleul permite rularea mai multor instanțe independente ale aceluiași program, dar fiecăruia îi este permis accesul doar la propriile intervale de timp și memorie. În acest fel, datele lor rămân independente.

3.1.4 Managementul drepturilor

Sistemele Unix acceptă mai mulți utilizatori și grupuri și vă permit să controlați drepturile de acces. În cele mai multe cazuri, un proces este definit de utilizatorul care îl rulează. Acest proces poate efectua numai acele acțiuni care sunt permise proprietarului său. De exemplu, deschiderea unui fișier necesită ca nucleul să verifice procesul pentru drepturile necesare (pentru mai multe informații despre acest exemplu particular, vezi secțiunea 3.4.4, „Gestionarea permisiunilor”)

3.2 Linia de comandă Linux

Prin „linie de comandă” înțelegem o interfață bazată pe text care vă permite să introduceți comenzi, să le executați și să vizualizați rezultatele. Puteți rula un terminal (un ecran de text în interiorul unui desktop grafic sau o consolă de text în afara oricărei GUI) și un interpret de comandă în interiorul acestuia ( coajă).

3.2.1

Când sistemul dumneavoastră funcționează corect, cel mai mult într-un mod simplu Pentru a obține acces la linia de comandă înseamnă lansarea unui terminal într-o sesiune de desktop grafic.


Figura 3.1 Lansarea terminalului GNOME

De exemplu, în sistem Kali LinuxÎn mod implicit, terminalul GNOME poate fi lansat din lista de aplicații preferate. De asemenea, puteți introduce „terminal” în fereastra Activități (fereastra care se activează când mutați mouse-ul în colțul din stânga sus) și faceți clic pe pictograma aplicației de care aveți nevoie care apare (Figura 3.1, „“).

În cazul oricărei întreruperi sau defecțiuni a GUI, puteți lansa în continuare linia de comandă pe console virtuale (până la șase dintre ele pot fi accesate prin șase combinații de taste, începând cu CTRL + ALT + F1 și terminând cu CTRL + ALT + F6 - Nu trebuie să apăsați tasta CTRL dacă sunteți deja în modul text în afara interfeței GUI Xorg sau Wayland).

Obțineți ecranul obișnuit de conectare în care vă introduceți numele de utilizator și parola înainte de a accesa promptul de comandă cu shell-ul său:

Programul care procesează datele pe care le introduceți și execută comenzile dvs. este numit coajă(coajă sau interpret de linie de comandă). Shell-ul implicit furnizat în Kali Linux este Bash(înseamnă Bourne Din nou Shell). Un caracter final „$” sau „#” indică faptul că shell-ul așteaptă intrarea dvs. Aceste simboluri indică, de asemenea, modul în care te percepe Bash utilizator obișnuit(primul caz cu semn dolar) sau ca superutilizator (ultimul caz cu hash).

3.2.2

Această secțiune oferă doar o scurtă prezentare generală a unor comenzi, fiecare dintre ele având multe opțiuni și capabilități diferite care nu sunt acoperite aici, așa că vă rugăm să consultați documentația extinsă disponibilă în paginile lor de manual respective. În testele de penetrare, cel mai adesea veți obține acces la sistem prin intermediul shell-ului, după o exploatare cu succes, mai degrabă decât prin intermediul utilizatorului GUI. A ști să folosești linia de comandă în mod competent este esențial dacă vrei să reușești ca profesionist în securitate.

Odată ce sesiunea este pornită, comanda pwd (care înseamnă tipăriți directorul de lucru) va afișa locația dvs. curentă în sistemul de fișiere. Locația dvs. curentă poate fi schimbată folosind comanda cd numele directorului(unde cd înseamnă (schimba directorul)). În cazul în care nu ați specificat directorul în care doriți să mergeți, veți reveni automat la directorul dvs. de acasă. Dacă introduceți cd -, veți fi returnat în directorul de lucru anterior (cel în care vă aflați înainte de a introduce ultima comandă cd). Directorul părinte se numește întotdeauna .. (două puncte), în timp ce directorul curent se numește .. (două puncte). (un punct). Comanda ls vă permite listă continutul directorului. Daca nu specificati parametri suplimentari Comanda ls va afișa conținutul directorului curent.

Puteți crea un director nou folosind comanda mkdir numele directorului,și, de asemenea, ștergeți un director existent (vid) folosind comanda rmdir numele directorului. Comanda mv vă va permite mişcareși redenumiți fișierele și directoarele; şterge fișierul se poate face folosind rm nume de fișier, iar copierea fișierului se face folosind cp fisier-sursa fisier-tinta.

Shell-ul execută fiecare comandă rulând primul program cu numele dat pe care îl găsește în directorul specificat de variabila de mediu CALE. Cel mai adesea aceste programe sunt localizate în /bin,/sbin, /usr/bin sau /usr/sbin. De exemplu, comanda ls este în /bin/ls;

Uneori, o comandă este procesată direct de shell, caz în care se numește shell încorporat (printre acestea se numără cd și pwd ); Comanda type vă permite să interogați tipul fiecărei comenzi.

Observați utilizarea comenzii echo, care afișează pur și simplu linia în terminal. În acest caz, este folosit pentru a afișa conținutul variabilei de mediu, deoarece Shell-ul înlocuiește automat variabilele cu valorile lor atunci când linia de comandă este executată.

Variabile de mediu

Aceste variabile pot fi definite atât pentru sistemul din /etc/profile, cât și pentru utilizatorul din ~/.profile, dar variabilele care nu sunt specifice interpreților de linie de comandă sunt cel mai bine plasate în /etc/environment, deoarece aceste variabile vor fi introduse în toate sesiunile utilizatorilor datorită Modulului de autentificare conectabil (PAM) – chiar dacă nu rulează niciun shell.

3.3 sistem de fișiere Linux

3.3.1 Standardul ierarhiei sistemului de fișiere

Ca și alte distribuții Linux, Kali Linux este organizat conform standardului Sistem de fișiereStandard de ierarhie(FHS), care permite utilizatorilor altor distribuții Linux să navigheze cu ușurință în Kali. FHS definește scopul fiecărui director. Directoarele de nivel superior sunt descrise după cum urmează.

  • /bin/: programe principale
  • /boot/: Kernel-ul Kali Linux și alte fișiere necesare pentru procesul de pornire timpurie
  • /dev/: fișiere dispozitiv
  • /etc/: fișiere de configurare
  • /acasă/: dosare personale utilizatorii
  • /lib/: biblioteci principale
  • /media/*: Puncte de montare pentru dispozitive amovibile (CD-ROM, unități USB etc.)
  • /mnt/: puncte de montare temporare
  • /opta/: aplicații suplimentare furnizate de terți
  • /root/: fișierele personale ale administratorului (fișiere rădăcină)
  • /run/: fișiere de flux de lucru nepersistente care nu persistă după repornire (nu sunt încă incluse în FHS)
  • /sbin/: programe de sistem
  • /srv/: date utilizate de serverele situate pe acest sistem
  • /tmp/: fișiere temporare (acest director este adesea golit după repornire)
  • /usr/: aplicații (acest director este împărțit în continuare în bin, sbin, lib în conformitate cu aceeași logică ca și în directorul rădăcină). În plus, /usr/share/ conține date cu arhitectură independentă. Directorul /usr/local/ este destinat să fie utilizat de un administrator pentru a instala aplicații manual, fără a suprascrie fișierele gestionate de sistemul de ambalare (dpkg).
  • /var/: date variabile procesate de demon. Acestea includ fișiere jurnal, cozi, buffere și cache.
  • /proc/ și /sys/ sunt tipice pentru Kernel-urile Linux(și nu fac parte din FHS). Ele sunt folosite de nucleu pentru a exporta date în spațiul utilizatorului.

3.3.2 Directorul principal al utilizatorului

Conținutul directorului de utilizatori nu este standardizat, dar există câteva convenții care merită remarcate. Unul este că directorul principal al utilizatorului este adesea indicat printr-un tilde (“~”). Acest lucru este foarte util de știut deoarece interpreții de comandă înlocuiesc automat tilde cu directorul corect (care se află în variabila de mediu ACASĂși a căror valoare normală este /home/user/).

În mod tradițional, fișierele de configurare a aplicației sunt adesea stocate direct în directorul dvs. de acasă, dar numele lor de fișiere încep de obicei cu un punct (de exemplu, clientul de e-mail mutt stochează configurația în ~/.muttrc ). Rețineți că numele fișierelor care încep cu un punct sunt ascunse implicit; comanda ls le va lista numai dacă este specificată opțiunea –a și este grafică manageri de fișiere trebuie să fie configurat în mod explicit pentru a afișa fișierele ascunse.

Unele programe folosesc, de asemenea, mai multe fișiere de configurare organizate într-un singur director (cum ar fi ~/.ssh/). Unele aplicații (cum ar fi browserul web Firefox) își folosesc și directorul pentru a stoca o memorie cache a datelor descărcate. Aceasta înseamnă că aceste directoare pot ajunge să consume mult spațiu pe disc.

Aceste fișiere de configurare, care sunt stocate direct în dvs directorul principal, adesea numită colectiv dotfiles pentru o lungă perioadă de timp se extind în așa măsură încât aceste directoare pot deveni aglomerate cu ele. Din fericire, colaborarea sub auspiciile FreeDesktop.org a condus la crearea XDG Base Directory Specification, o convenție al cărei scop este curățarea acestor fișiere și directoare. Această specificație prevede că fișierele de configurare ar trebui să fie stocate în ~/.config , fișierele cache în -/.cache și fișierele de date ale aplicației în -/.local (sau subdirectoarele acestora). Această convenție capătă treptat amploare.

Un desktop grafic folosește cel mai adesea comenzi rapide pentru a afișa conținutul directorului /Desktop/ (sau orice alt cuvânt care este o traducere exactă a acestuia, pe sistemele care nu folosesc Limba engleză). În cele din urmă, un sistem de e-mail stochează uneori mesajele primite într-un director numit /Mail/.

Acesta este interesant:

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații