Dmitry Y. Karpov
Acest opus nu se pretinde a fi o descriere completă. Mai mult, din motive de simplitate, unele detalii sunt omise în mod deliberat. La început, ciclul a fost conceput ca întrebări frecvente (întrebări frecvente), dar se pare că se va dovedi "Young Fighter Course" sau "Sergent School".
Am încercat să ofer o descriere comparativă a diferitelor sisteme de operare - în opinia mea, lipsesc cele mai multe manuale și ajutoare tehnice.
Fără a aștepta expunerea de către Unix'oids cu experiență, fac recunoaștere voluntară - nu mă pot preface că sunt un expert excelent în Unix, iar cunoștințele mele se bazează în mare parte pe FreeBSD. Sper că acest lucru nu face rău.
Acest fișier va fi în starea "în construcție" pentru o perioadă lungă de timp. -)
Unix este un sistem de operare complet, inițial multi-utilizator, multi-tasking și multi-terminal. Mai exact, aceasta este o întreagă familie de sisteme care sunt aproape complet compatibile între ele la nivelul codului sursă al programelor.
Ce sunt Unix-urile și ce mașini rulează?
SCO Unix (operațiunea Santa Cruz)
Novell UnixWare (achiziționat de SCO)
Interactive Unix (Sun achiziționat)
i * 86, Motorola 680 * 0, DEC Alpha, IBM POWER-PC, Sun Sparc.
Familia BSD: BSDI, FreeBSD, NetBSD, OpenBSD
i * 86, Acorn ARM, Sun Sparc.
IBM RS / 6000 și AS / 400 pe PC-ul POWER
Unix digital (fost unic OSF / 1)
Această listă nu se pretinde a fi completă, deoarece, în plus față de cele enumerate, există multe sisteme de Unix și Unix mai puțin frecvente, ca să nu mai vorbim de vechiul Unix pentru mașinile învechite.
În mod convențional, familiile sistemului V și Berkeley pot fi distinse. Sistemul V (citiți "Sistemul Cinci") are mai multe opțiuni, acesta din urmă conform informațiilor mele Sistem V Release 4. Universitatea Berkeley este renumită nu numai pentru dezvoltarea BSD, ci și pentru majoritatea protocoalelor Internet. Cu toate acestea, multe Unix-uri combină proprietățile ambelor sisteme.
Unde pot obține un Unix gratuit?
Care sunt principalele diferențe între Unix și alte sisteme de operare?
Unix este alcătuit dintr-un kernel cu driverele incluse în acesta și utilitare (externe programelor de kernel). Dacă trebuie să schimbați configurația (pentru a adăuga un dispozitiv, modificați portul sau întrerupere), apoi recompilați kernel-ul (perelinkovyvayut) modulelor obektnyh sau (de ex. În FreeBSD) de la sursa. / * Acest lucru nu este în întregime adevărat. Anumiți parametri pot fi corectați fără reconstrucție. Există, de asemenea, module de kernel încărcabile. * /
Spre deosebire de Unix, Windows (dacă nu specifică care, înseamnă 3.11, 95 și NT) și OS / 2 sunt de fapt încărcate în mișcare de către drivere. În același timp, compactitatea miezului asamblat și reutilizarea codului comun reprezintă un ordin de mărime mai mic decât cel al Unix-ului. În plus, dacă configurația sistemului este neschimbată, nucleul Unix fără reprelucrare (trebuie doar să modificați partea de pornire a BIOS-ului) poate fi scrisă pe ROM și executată fără încărcare în memoria RAM. Compactitatea codului este deosebit de importantă, deoarece kernelul și driverele nu părăsesc niciodată memoria RAM fizică, nu se schimbă pe disc.
Unix este cel mai multiplatform sistem de operare. WindowsNT încearcă să-l imite, dar până în prezent nu reușește - după respingerea MIPS și POWER-PC, W'NT au fost doar două platforme - tradiționale i * 86 DEC Alpha. Desigur, portabilitatea programelor de la o versiune de Unix la alta este limitată. Programul alene scris nu ia în considerare diferențele în implementările de Unix, ceea ce face presupuneri nefondate, cum ar fi „număr întreg variabilă ar trebui să ia patru octeți“, poate necesita o modificare majoră. Dar totuși este mai multe ordine de mărime mai ușoară decât, de exemplu, perenesti cu OS / 2 pe NT.
Unix este bun pentru un administrator calificat (sau care dorește să devină unul), deoarece necesită cunoașterea principiilor de funcționare a proceselor care apar în ea. Real multitasking și alocarea de memorie tare oferă o fiabilitate ridicată a sistemului, deși în performanța serviciilor de fișiere și de tipărire, Unix este inferior Netware.
Lipsa de flexibilitate a drepturilor de acces ale utilizatorilor la fișierele de acces în comparație cu WindowsNT dificil organizație _na_urovne_faylovoy_sistemy_ grup de date (sau mai precis, la fișierele), care, în opinia mea compensată prin simplitatea punerii în aplicare, ceea ce înseamnă mai puțin cererea pentru echipamente. Cu toate acestea, aplicații, cum ar fi un SQL server decide accesul la date de grup pe cont propriu problema, astfel încât lipsa de oportunitate în Unix _faylu_ refuza accesul la un anumit utilizator, în opinia mea este vădit excesivă.
Practic toate protocoalele pe care se bazează Internetul au fost dezvoltate sub Unix, în special protocolul TCP / IP a fost inventat la Universitatea Berkeley.
Unix de securitate cu administrarea corectă (și când nu?) Nu este inferior nici Novell sau WindowsNT.
O proprietate importantă a Unix-ului care o aduce mai aproape de mainframe este terminarea multiplă, mulți utilizatori pot executa simultan programe pe aceeași mașină Unix. Dacă nu doriți să utilizați grafică, puteți obține prin utilizarea terminalelor text ieftine (PC-uri specializate sau ieftine) conectate prin linii lente. În acest caz, numai VMS concurează cu acesta. De asemenea, puteți utiliza terminale grafice X, când pe un ecran există ferestre cu procese care rulează pe diferite mașini.
În numirea stațiilor de lucru cu sistemele de operare MS Windows *, IBM OS / 2, Macintosh și Acorn RISC-OS.Unix funcționează atât pe PC-uri, cât și pe stații de lucru puternice cu procesoare RISC, sub Unix fiind scrise cu adevărat sisteme CAD și sisteme de geoinformații. Scalabilitatea lui Unix datorită platformei sale multiplastice este un ordin de mărime superioară față de orice alt sistem de operare cunoscut de mine.
Concepte Unix
Unix se bazează pe două concepte de bază: "proces" și "fișier". Procesele sunt partea dinamică a sistemului, acestea sunt subiecte; iar fișierele sunt statice, acestea sunt obiectele acțiunii proceselor. Aproape întreaga interfață a proceselor interacționează cu kernelul și unul cu celălalt arată ca scrierea / citirea fișierelor. / * Deși trebuie să adăugați lucruri precum semnale, memorie partajată și semaphore. * /
Procesele nu pot fi confundate cu programele - un program (de obicei cu date diferite) poate fi executat în diferite procese. Procesele pot fi divizate în mod condiționat în două tipuri - sarcini și demoni. Sarcina este un proces care își face treaba, încercând să o termine și să o termine rapid. Demonul așteaptă evenimentele pe care trebuie să le gestioneze, procesează evenimentele care au avut loc și așteaptă din nou; este de obicei completat de comanda unui alt proces, cel mai adesea este ucis de către utilizator, dând comanda "kill process number". / * În acest sens, se pare că interogarea interactivă a interogării de către utilizatori este mai mult ca un daemon decât o sarcină. -) * /
În vechiul Unix au fost atribuite 14 litere, în noua restricție se elimină. În directorul altul decât numele fișierului este identificatorul său inode, un număr întreg care specifică numărul blocului în care sunt scrise atributele fișierului. Printre acestea: numărul utilizatorului - proprietarul dosarului; numărul grupului; numărul de link-uri către fișier (vezi mai jos) data și ora creării, ultima modificare și ultimul acces la fișier; atributele accesului. Atributele de acces conțin tipul de fișier (a se vedea mai jos), atributele schimbarea dreapta la pornire (a se vedea mai jos) și permisiunile de acces pentru proprietar, și altele pentru a formatiei citi, scrie și executa. Dreptul de a șterge un fișier este determinat de dreptul de a scrie în directorul de nivel superior.
Există încă o caracteristică interesantă a sistemului de fișiere: dacă după crearea fișierului nu a fost înregistrată o înregistrare într-un rând, dar la intervale mari, atunci pentru aceste intervale spațiul de disc nu este alocat. Astfel, volumul total al fișierelor dintr-o partiție poate fi mai mare decât volumul unei partiții, iar atunci când ștergeți un astfel de fișier, spațiul este mai puțin eliberat decât dimensiunea acestuia.
Fișierele vin în următoarele tipuri:- fișierul de acces direct normal;
- Un director (un fișier care conține numele și identificatorii altor fișiere);
- o legătură simbolică (un șir cu numele unui alt fișier);
- dispozitiv de blocare (disc sau bandă magnetică);
- dispozitivul serial (terminale, porturi seriale și paralele, discuri și casete magnetice au, de asemenea, o interfață de dispozitiv serial)
- numit canal.
- tty * - terminale, incl.
- ttyv - consola virtuală;
- ttyd - terminalul DialIn (de obicei un port serial);
- cuaa - linia DialOut
- ttyp - rețea pseudo-terminală;
- tty - terminal cu care sarcina este asociată;
- wd * - hard disk-uri și subsecțiunile acestora, incl.
- wd - hard disk;
- wd s este partiția acestui disc (denumit aici "slice");
- wd s - partiții de partiții;
- fd [] - floppy-disk;
- rwd *, rfd * - la fel ca wd * și fd *, dar cu acces secvențial;
Spre deosebire de DOS, vă că numele fișierului complet apare ca „unitate: \ cale \ nume de fișier“ și RISC-OS, în care se pare „-faylovaya_sistema conduce :. $ Put.imya“ (care are, în general, avantajele sale) , Unix utilizează o notație transparentă în forma "/ path / name". Rădăcina este contorizată din partiția din care a fost încărcat nucleul Unix. Dacă vom folosi un alt profil (și pe partiția de încărcare se găsește de obicei doar ceea ce trebuie să descărcați), utilizați comanda `mount / dev / fayl_razdela direktoriya`. În acest caz, fișierele și subdirectoarele, găsite anterior în acest director nu sunt disponibile până când partiția nu va fi demontată (desigur, toți oamenii normali sunt folosite pentru a monta partițiile directoare goale). Doar supraveghetorului i se permite montarea și demontarea.
La pornire, fiecare proces se poate aștepta ca trei fișiere să fie deja deschise pentru el, care sunt cunoscute ca intrare standard stdin pe descriptorul 0; ieșire standard stdout prin descriptor 1; și stderr de ieșire standard prin descriptor 2. Când se înregistrează în sistem, când utilizatorul introduce un nume și o parolă și pornește shell-ul, toate cele trei sunt direcționate spre / dev / tty; Ulterior, oricare dintre ele poate fi redirecționată către orice fișier.
Unix aproape întotdeauna include doi interpreți de coajă - sh (shell) și csh (shell-like). În plus, există bash (Bourne), ksh (Korn) și alții. Fără a intra în detalii, voi da principii generale:
Toate comenzile, cu excepția schimbării directorului curent, a setării variabilelor de mediu și a operatorilor de programare structurat, sunt programe externe. Aceste programe sunt de obicei localizate în directoarele / bin și / usr / bin. Programele de administrare a sistemului sunt în directoarele / sbin și / usr / sbin.
Comanda constă din numele programului care începe și argumentele. Argumentele sunt separate de numele echipei și se separă unele de altele de file. Unele caractere speciale sunt interpretate de shell în sine. Caracterele speciale sunt "` `. $ ^ * ; (Încă ce?).
Pe aceeași linie de comandă, puteți da mai multe comenzi. Echipele pot fi separate; (executarea secvențială a comenzilor), (executarea simultană asincronă a comenzilor), (execuția sincronă, ieșirea standard a primei comenzi va fi alimentată la intrarea standard stdin).
În plus, puteți lua intrarea standard din fișier, inclusiv ca unul dintre argumentele "<файл" (без кавычек); можно направить стандартный вывод в файл, используя ">fișier „(un fișier va fi resetat) sau“ fișier >> „(înregistrarea va fi făcută la sfârșitul fișierului) Programul în sine nu obține acest argument ;. pentru a vedea ce realocate de intrare sau de ieșire, software-ul în sine trebuie să ia unele gesturi foarte triviale.
Dacă aveți nevoie să obțineți informații despre orice comandă, dați comanda "man command_name". Acest lucru va fi afișat pe ecran prin programul "mai mult" - vedeți cum să o gestionați pe Unix cu comanda `om mai mult`.