Structuur van het Linux-besturingssysteem Linux Linux. Structuur van het Linux-besturingssysteem

Linux (Linux) is een besturingssysteem dat tegenwoordig vrijwel het enige is alternatieve vervanging Windows-besturingssysteem van Microsoft. De jouwe begin van Linux speelt zich af sinds 1991, toen een jonge programmeur uit Finland Linus Torvalds begon te werken aan de allereerste versie van het systeem, dat naar zijn naam is vernoemd. Het begin van de populariteit van Linux begon al vanaf het allereerste begin. Dit komt in de eerste plaats door het feit dat de kernel van dit besturingssysteem, zoals de meeste programma's die ervoor zijn geschreven, zeer belangrijke eigenschappen heeft.

Kernel De kernel is een laag besturingssysteem, het machine-afhankelijke deel van het traditionele niveau dat bestanden verwerkt, dat draait op de UNIX OS-kernel volgende componenten: schijven, netwerk en het uitvoeren van andere noodzakelijke bewerkingen. (voor nu hangt het af van de kenmerken van de apparatuur); De kernel van het Linux-besturingssysteem bestaat uit elementen van een monolithische microkernel-systeemarchitectuur. promotie en initialisatie van het systeem op een laag niveau met interrupts; Bij het compileren van de kernel kunt u dynamische initiële verwerking van interne en externe controle geheugen (in het deel dat betrekking heeft op het laden en ontladen van veel kernelcomponenten - kenmerken van hardwareondersteuning voor virtuele zogenaamde modules. Op het moment dat de geheugenmodule wordt geladen); de code wordt op systeemniveau geladen en gekoppeld aan de rest van de kernel. Functies kunnen binnen een module worden gebruikt. elke door de kernel geëxporteerde procescontext schakelt tussen gebruikers- en kernelmodi; delen van apparaatstuurprogramma's die verband houden met de kenmerken van het doelplatform.

Bestandsstructuur(systeem) /bin – standaard binaire gebruikersmodules /boot – statische opstartbestanden /cdrom – historisch gekozen koppelpunt voor cd's /dev – apparaatbestanden /etc – configuratiebestanden /home – homemappen /lib – belangrijkste gedeelde bibliotheken /lost +found – herstelde bestanden /media – verbonden media /proc – kernel- en procesbestanden /root – thuismap root-gebruiker/srv – servicegegevens /tmp – tijdelijke bestanden /usr – gebruikersbestanden binaire bestanden en alleen-lezen gegevens (weergegeven in de afbeelding)

Koppel ( grafische schil) is een programma dat de gebruikersinteractie met een computer organiseert. Biedt ondersteuning voor vensters, menu's, pictogrammen, muis en andere bekende GUI-elementen - GUI gebruiker. Complexere grafische omgevingen worden bovenop X gebouwd; de meest populaire zijn KDE en GNOME. GUI is een reeks pictogrammen, menu's, dialoogvensters, panelen, vensters en andere grafische elementen, waardoor gebruikers hun computer en applicaties eenvoudig kunnen bedienen. KDE en Gnome zijn geïntegreerde desktopomgevingen. Gebruikers communiceren met interface-elementen en programma's.

Hulpprogramma's Hulpprogramma (eng. hulpprogramma of tool) - hulpprogramma computerprogramma in Ingebed in Linux softwarehulpprogramma's en talen. inclusief g++ -GNU C++ compiler; Perl is een zeer krachtige scripttaal; g 77 - GNU FORTRAN-compiler; (parameters, instellingen, instellingen), of voer het proces uit f 2 c - een transcoder van FORTRAN naar C; parameterwijzigingen (automatiseer het). Fort 77 is een FORTRAN-compiler. Voert f 2 c uit en vervolgens algemeen software gespecialiseerd uit te voeren typische taken. Hulpprogramma's bieden toegang tot mogelijkheden. Soorten hulpprogramma's voor communicatie met het besturingssysteem gebruiken gcc of g++; Onafhankelijke hulpprogramma's waarvoor geen besturingssysteem nodig is om te werken, Grep - zoekt naar een stuk tekst in bestanden dat overeenkomt met het getypte masker. Het masker wordt gedefinieerd met Systeemhulpprogramma's, opgenomen in de levering van het besturingssysteem en vereist gebruik van een standaardnotatiesysteem genaamd de aanwezigheid van " normale uitdrukkingen"; Soorten hulpprogramma's per functie Bestandsbeheerders; Archivers (met mogelijke datacompressie); Kijkers; Verwijderprogramma - software [; programma voor Tr - vertaalhulpprogramma (met andere woorden - letters in een tekstbestand vervangen); Gawk - GNU awk (gebruikt voor het verwerken van opgemaakte tekstbestanden); verwijdering van software sed - een hulpprogramma voor het verwerken van tekstbestanden;

Linux OS-bestandssysteem

Een van de meest belangrijke componenten in Linux OS is een bestandssysteem. IN deze sectie het concept zal worden overwogen bestandssysteem en het doel ervan; Linux OS-bestandssysteemhiërarchie; Linux OS-bestandstypen. Andere kwesties die verband houden met het beheer van bestandssystemen zullen in Module 3 gedetailleerder worden besproken.

Doel van het bestandssysteem

In Linux OS, zoals in elk ander besturingssysteem UNIX-familie, is elk object een bestand dat is opgeslagen op het bestandssysteem. Een bestandssysteem is een apparaat (bijvoorbeeld HDD), geformatteerd voor bestandsopslag. Bestandssystemen kunnen zich bevinden op harde schijven, diskettes, CD-ROM of andere media die willekeurige of sequentiële toegang naar de gegevens.

Conventioneel kan het Linux OS-bestandssysteem worden onderverdeeld in de volgende componenten.

Naamruimte - methoden voor het benoemen van bestandssysteemobjecten en hun hiërarchische organisatie.

Application Programming Interface (API) is een reeks systeemaanroepen en bibliotheken die zijn ontworpen om bestandssysteemobjecten te beheren.

Beveiligingsmodel - bevat algemeen schema bescherming, scheiding van toegangsrechten tot objecten en delen van objecten.

Technische implementatie - programmacode, Verbinden logische modellen bestandssysteem met hardware.

De belangrijkste taken van het bestandssysteem zijn:

het organiseren van opgeslagen gegevens;

eenvoudig en snelle toegang naar opgeslagen gegevens;

het waarborgen van de integriteit van opgeslagen gegevens.

Het exacte formaat en de exacte methoden voor het opslaan van bestanden in Linux doen er niet toe, omdat het systeem een ​​gemeenschappelijke interface biedt voor alle soorten bestandssystemen die het herkent. Op Linux is het standaardbestandssysteem ext3fs. Wanneer je vanuit Linux toegang krijgt tot een bestandssysteem, worden de gegevens gepresenteerd als een hiërarchie van mappen met de bestanden daarin, samen met eigenaar- en groeps-ID's, toestemmingsbits en andere attributen.

Hiërarchie van bestandssysteem

De directoryhiërarchie van het Linux OS-bestandssysteem komt overeen met de Filesystem Hierarchy System (FHS)-standaard die algemeen wordt aanvaard in de UNIX-wereld. Het belangrijkste voordeel van deze standaard is dat bepaalde types bestanden bevinden zich in de juiste mappen.

De meeste bijvoorbeeld configuratiebestanden bevindt zich in de map /etc en de logbestanden voor verschillende services bevinden zich in de map /var/log.

Beschrijving van OS-bestandssysteemmappen Linux

De mappen /bin, /usr/bin, /usr/locl/bin, /sbin, /usr/sbin en /usr/local/sbin bevatten de commando's die op het systeem zijn geïnstalleerd. Bij het werken in het systeem onder regelmatige gebruiker, hebt u alleen toegang tot opdrachten uit de mappen /bin, /usr/bin en /usr/locl/bin, aangezien de FHS-standaard specificeert dat de mappen sbin alleen administratieve opdrachten mogen bevatten.


Figuur 1.2. Directorystructuur voor Linux-besturingssystemen

De hoofdmap van het Linux OS-bestandssysteem is de hoofdmap /. Onder de hoofdmap bevinden zich alle andere mappen die op lokaal niveau zijn gemaakt schijf subsysteem of gemonteerd vanaf externe apparaten. De procedure voor het aankoppelen van een bestandssysteem betekent het associëren van een map van het bestaande bestandssysteem, een zogenaamde koppelpunt, met de hoofdmap van het nieuwe bestandssysteem.

Het mounten van een bestandssysteem aan een mountpunt gebeurt met behulp van de opdracht mount. De volgende lijst toont een voorbeeld van montage dvd drive a, met daarin de RedHatEnterpriseLinux 5 OS-distributie.

# mount /dev/hdc /mnt/

mount: blokapparaat /dev/hdc is beveiligd tegen schrijven, mounten is alleen-lezen

Als gevolg van het uitvoeren van de opdracht mount gaf het systeem informatie weer dat het blokapparaat (in dit geval het dvd-station) in de leesmodus was aangekoppeld.

De lijst met aangekoppelde bestandssystemen wordt opgeslagen in het bestand /etc/fstab. Dit maakt het mogelijk om automatisch de integriteit van het bestandssysteem te controleren met behulp van de opdracht fsck en bestandssystemen te mounten tijdens het opstarten, en om snelkoppelingsopdrachten uit te voeren zoals mount /var/spool. De informatie in dit bestand weerspiegelt de locaties van bestandssystemen op de schijf. Het bestand /etc/fstab wordt in module 3 in meer detail besproken.

Het ontkoppelen van bestandssystemen gebeurt met de opdracht umount. Een “vergrendeld” bestandssysteem kan niet worden ontkoppeld. Die zouden er niet moeten zijn open bestanden, noch de huidige mappen met actieve processen. Als het bestandssysteem dat wordt ontkoppeld uitvoerbare programma's, ze mogen niet rennen. De volgende lijst toont een voorbeeld van het ontkoppelen van een eerder aangekoppeld bestandssysteem in de map /mnt.

# umount /mnt # Is -1 /mnt totaal 0

Om erachter te komen welke apparaten op het systeem zijn gemonteerd dit moment u moet de opdracht mount zonder parameters uitvoeren. De volgende lijst toont een voorbeeld van het definiëren van gekoppelde apparaten.

# mount /dev/sda2 aan / type ext3 (rw)

proc aan /proc type proc (rw)

sunrpc op /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) /dev/hdc op /mnt type iso9660 (ro)

Zoals u kunt zien, toont de uitvoer van het mount-commando opeenvolgend het aangekoppelde apparaat, het aankoppelpunt, het type bestandssysteem en aanvullende aankoppelopties.

Bestand types

Wanneer u met het Linux-besturingssysteem werkt, is het belangrijk om te begrijpen dat elk besturingssysteemobject een bestand is. Dit belangrijk kenmerk Linux OS vergeleken met Windows-besturingssystemen.

Bestanden verschillen zowel qua structuur als qua doel. Linux OS definieert zeven bestandstypen:

gewone bestanden (reguliere bestanden);

catalogi;

benoemde pijpen;

apparaatbestanden blokkeren;

karakterapparaatbestanden.

U kunt het bestandstype bepalen met de opdracht Is -Id. Het eerste teken in de uitvoerregel geeft het bestandstype aan. In de volgende lijst wordt informatie over het bestand weergegeven

/dev/hdc. # Is -Id /dev/hdc

Reguliere bestanden

Normale bestanden omvatten binaire bestanden, bibliotheken, tekstbestanden en bestanden diverse toepassingen. Linux OS legt geen beperkingen op aan de structuur van deze bestanden. De inhoud ervan is zowel opeenvolgend als rechtstreeks toegankelijk.

Catalogi

Linux OS heeft zogenaamde speciale mappen. Speciale mappen zoals "." en ".." geven respectievelijk de huidige werkmap en de bovenliggende map aan.

In Linux is het gebruikelijk om onderscheid te maken tussen symbolische en harde links, die elk een speciale betekenis hebben.

Met een symbolische link kunt u de alias opgeven in plaats van een bestandsnaam. Wanneer u naar een bestand zoekt met behulp van symbolische koppelingen, haalt de kernel de namen op die daarin zijn opgeslagen. Een harde link is een directe link, d.w.z. verwijst rechtstreeks naar de inode van een bestand, terwijl een symbolische link naar een bestand verwijst op basis van zijn naam. Bestand geadresseerd symbolische link en de link zelf zijn verschillende bestandssysteemobjecten.

Symbolische links kunnen een willekeurige naam bevatten, d.w.z. ze maken het mogelijk om te verwijzen naar bestanden die zijn opgeslagen in andere bestandssystemen en zelfs naar niet-bestaande bestanden. Harde links kunnen niet verwijzen naar een bestand dat zich op een ander bestandssysteem bevindt.

Linux OS telt het aantal verwijzingen naar elk bestand en wanneer een bestand wordt verwijderd, worden er geen gegevensblokken vrijgegeven totdat de laatste verwijzing ernaar is verwijderd.

Stopcontacten

Een socket is een speciaal bestandstype dat door processen wordt gebruikt om met elkaar te communiceren. Socketverbindingen zorgen ervoor dat processen kunnen communiceren zonder te worden beïnvloed door andere processen. Linux OS heeft verschillende soorten sockets, waarvan het gebruik de aanwezigheid van een netwerkinfrastructuur vereist. Lokale stopcontacten zijn alleen beschikbaar op lokale computer, wordt de toegang daartoe uitgevoerd via speciale objecten van het bestandssysteem, en niet via netwerkpoorten. Dergelijke sockets worden gewoonlijk UNIX-domeinsockets (UNIXdomainsocket) genoemd. Naast lokale sockets zijn er netwerksockets waarmee processen via een netwerk kunnen communiceren.

Hoewel andere processen socketbestanden herkennen als directory-items, kunnen alleen processen die een geschikte verbinding daartussen hebben, socketbestanden lezen en schrijven. Verschillende Linux OS-services werken met lokale sockets - CUPS, XWindow en Syslog.

Genoemde pijpen ( FIFO)

Bestanden van dit type zijn vergelijkbaar met sockets in die zin dat ze ook worden gebruikt voor communicatie tussen processen, maar in tegenstelling tot sockets dragen zogenaamde pipelines gegevens slechts in één richting over.

Apparaatbestanden blokkeren en karakteriseren

Met blok- en karakterapparaatbestanden kunnen toepassingen toegang krijgen tot systeemhardware en randapparatuur. In de configuratiefase worden de noodzakelijke modules die zijn ontworpen om de systeemhardware te beheren dynamisch in de Linux OS-kernel geladen. Voor beheer specifiek apparaat Een speciale module, een apparaatstuurprogramma genaamd, reageert.

Apparaatstuurprogramma's vormen een standaard interactie-interface, die door de gebruiker wordt waargenomen als een reeks gewone bestanden. Bij ontvangst van een verzoek om een ​​teken- of blokapparaatbestand, verzendt de kernel een bericht dit verzoek de desbetreffende bestuurder. Blok- en karakterapparaatbestanden zijn zelf geen stuurprogramma's. Ze kunnen worden gezien als gateways waarmee de bestuurder verzoeken ontvangt om de beoogde bewerkingen uit te voeren.

Karakterapparaatbestanden maken geen gebruik van buffering tijdens I/O-bewerkingen. Alle I/O-bewerkingen worden onmiddellijk uitgevoerd zodra ze binnenkomen. Karakterapparaten omvatten virtuele terminals, modems en andere apparaten die geen willekeurige toegang tot gegevens ondersteunen.

Als u het Linux-bestandssysteem, de directorystructuur, de configuratie, de uitvoerbare en tijdelijke bestandsplaatsing begrijpt, kunt u uw systeem beter begrijpen en een succesvolle systeembeheerder worden. Het Linux-bestandssysteem zal ongebruikelijk zijn voor een beginner die net is overgestapt van Windows, omdat alles hier compleet anders is. In tegenstelling tot Windows bevindt het programma zich niet in één map, maar wordt het in de regel verspreid langs het rootbestandssysteem. Aan deze verdeling zijn bepaalde regels verbonden. Heb je je ooit afgevraagd waarom sommige programma's zich in /bin, of /sbin, /usr/sbin, /usr/local/bin bevinden, wat is het verschil tussen deze mappen?

Het less-programma bevindt zich bijvoorbeeld in de map /usr/bin, maar waarom niet in /sbin of /usr/sbin. En programma's zoals ifconfig of fdisk bevinden zich in de map /sbin en nergens anders.

Dit artikel zal de structuur van het Linux-bestandssysteem volledig behandelen. Na het lezen ervan zul je de betekenis kunnen begrijpen van het gebruik van de meeste mappen in hoofdmap Linux.

/ - wortel

Dit is de hoofdmap op een Linux-systeem. In wezen is dit het Linux-bestandssysteem. Er zijn geen schijven of iets dergelijks in Windows. In plaats daarvan beginnen alle bestandsadressen bij de root, en extra secties, flashdrives of optische schijven zijn verbonden met de mappen van de hoofdmap.

Merk op dat de rootgebruiker de thuismap /root heeft, maar niet / zichzelf.

/bin - (binaire bestanden) binaire gebruikersbestanden

Deze map bevat uitvoerbare bestanden. Hier vindt u programma's die kunnen worden gebruikt in de modus voor één gebruiker of in de herstelmodus. Kortom, de hulpprogramma's die kunnen worden gebruikt, zijn nog niet verbonden met de map /usr/. Dit zijn veelgebruikte commando's zoals cat, ls, tail, ps, enz.

/sbin - (systeembinaire bestanden) uitvoerbare systeembestanden

Net als /bin bevat het binaire uitvoerbare bestanden die beschikbaar zijn tijdens de vroege stadia van het opstarten, wanneer de map /usr niet is aangekoppeld. Maar er zijn hier programma's die alleen kunnen worden uitgevoerd met superuser-rechten. Dit zijn verschillende hulpprogramma's voor systeemonderhoud. Bijvoorbeeld iptables, reboot, fdisk, ifconfig, swapon, enz.

/etc - (etcetera) configuratiebestanden

Deze map bevat configuratiebestanden van alle programma's die op het systeem zijn geïnstalleerd.

Naast configuratiebestanden bevat het initialisatiesysteem Init Scripts scripts voor het starten en beëindigen van systeemdaemons, het aankoppelen van bestandssystemen en het starten van programma's. De Linux-mapstructuur in deze map kan een beetje verwarrend zijn, maar het doel van al deze mappen is installatie en configuratie.

/dev - (apparaten) apparaatbestanden

In Linux zijn alles, inclusief externe apparaten, bestanden. Alle aangesloten flashdrives, toetsenborden, microfoons en camera's zijn dus slechts bestanden in de map /dev/. Deze map bevat een ongebruikelijk bestandssysteem. De structuur van het Linux-bestandssysteem en de bestanden in de map /dev worden geïnitialiseerd wanneer het systeem opstart, door de udev-service. Alle aangesloten apparaten worden gescand en er worden speciale bestanden voor aangemaakt. Dit zijn apparaten zoals: /dev/sda, /dev/sr0, /dev/tty1, /dev/usbmon0, enz.

/proc - (proces)informatie over processen

Dit is ook een ongebruikelijk bestandssysteem, maar een subsysteem dat dynamisch door de kernel wordt gecreëerd. Hier vindt u alle informatie over lopende processen live. In wezen is het een pseudo-bestandssysteem dat gedetailleerde informatie over elk proces, de Pid, ​​de naam van het uitvoerbare bestand, de startparameters, de toegang tot RAM, enzovoort. U kunt hier ook informatie vinden over het gebruik van systeembronnen, zoals /proc/cpuinfo, /proc/meminfo of /proc/uptime. Naast de bestanden bevindt zich in deze map een grote structuur Linux-mappen, waaruit u veel informatie over het systeem kunt leren.

/var (variabel) - Variabele bestanden

De naam van de map /var spreekt voor zich; deze zou bestanden moeten bevatten die regelmatig veranderen. De omvang van deze bestanden neemt voortdurend toe. De bestanden staan ​​hier systeemlogboeken, verschillende caches, databases enzovoort. Vervolgens zullen we kijken naar het doel van de Linux-mappen in de map /var/.

/var/log - Logbestanden

/var/lib - databases

Een ander type bestanden dat wordt gewijzigd zijn databasebestanden, pakketten die zijn opgeslagen door een pakketbeheerder, enz.

/var/mail - mail

De mailserver plaatst alle ontvangen of verzonden berichten in deze map. e-mails, kunnen de logbestanden en configuratiebestanden zich hier ook bevinden.

/var/spool - printer

Aanvankelijk was deze map verantwoordelijk voor de afdrukwachtrijen op de printer en de werking van de cpu-set met programma's.

/var/lock - vergrendel bestanden

Dit is waar de vergrendelingsbestanden zich bevinden. Deze bestanden geven aan dat een bepaalde bron, bestand of apparaat in gebruik is en niet door een ander proces kan worden gebruikt. Apt-get vergrendelt bijvoorbeeld zijn database zodat andere programma's deze niet kunnen gebruiken terwijl het programma erop draait.

/var/run - PID van processen

Bevat bestanden met PID's van processen die kunnen worden gebruikt voor interactie tussen programma's. In tegenstelling tot de map /run worden de gegevens na het opnieuw opstarten opgeslagen.

/tmp (temp) - Tijdelijke bestanden

Deze map bevat tijdelijke bestanden die zijn gemaakt door het systeem, programma's of gebruikers. Alle gebruikers hebben schrijfrechten voor deze map.

Elke keer dat u opnieuw opstart, worden de bestanden verwijderd. Vergelijkbaar met Windows is de map Windows\Temp, hier worden ook alle tijdelijke bestanden opgeslagen.

/usr - (gebruikerstoepassingen) Gebruikersprogramma's

Dit is de grootste catalogus met veel functies. Dit is de grootste Linux-directorystructuur. Hier vindt u uitvoerbare bestanden, programmabronnen, diverse toepassingsbronnen, afbeeldingen, muziek en documentatie.

/usr/bin/ - Uitvoerbare bestanden

Bevat uitvoerbare bestanden van verschillende programma's die niet nodig zijn tijdens de eerste fasen van het opstarten van het systeem, bijvoorbeeld muziekspelers, grafische editor, browsers enzovoort.

/usr/sbin/

Bevat binaire bestanden van systeembeheerprogramma's die moeten worden uitgevoerd met superuser-rechten. Bijvoorbeeld zoals Gparted, sshd, useradd, userdel, enz.

/usr/lib/ - Bibliotheken

Bevat bibliotheken voor programma's uit /usr/bin of /usr/sbin.

/usr/local - Gebruikersbestanden

Bevat bestanden met programma's, bibliotheken en instellingen die door de gebruiker zijn gemaakt. Programma's die zijn gecompileerd en geïnstalleerd vanaf de broncode en handmatig geschreven scripts kunnen hier bijvoorbeeld worden opgeslagen.

/home - Thuismap

In deze map worden de thuismappen van alle gebruikers opgeslagen. Ze kunnen er hun persoonlijke bestanden, programma-instellingen, etc. in opslaan. Bijvoorbeeld /home/sergiy, etc. Vergeleken met Windows is dit uw gebruikersmap op station C, maar in tegenstelling tot WIndows bevindt home zich meestal in een aparte sectie. , dus wanneer u het systeem opnieuw installeert, worden al uw gegevens en programma-instellingen opgeslagen.

/boot - Bootloader-bestanden

Bevat alle bestanden die zijn gekoppeld aan de opstartlader van het systeem. Dit zijn de vmlinuz-kernel, de initrd-image en de bootloader-bestanden in de map /boot/grub.

/lib (bibliotheek) - Systeembibliotheken

Bevat systeembibliotheekbestanden die worden gebruikt door uitvoerbare bestanden in de mappen /bin en /sbin.

Bibliotheken hebben bestandsnamen met de extensie *.so en beginnen met het voorvoegsel lib*. Bijvoorbeeld libncurses.so.5.7. De map /lib64 op 64-bits systemen bevat 64-bits versies van de bibliotheken uit /lib. Deze map kan worden vergeleken met WIndows\system32, alle systeembibliotheken worden daar ook gedownload, alleen daar worden ze gemengd met uitvoerbare bestanden, maar hier is alles gescheiden.

/opt (Optionele toepassingen) - Extra programma's

In deze map worden eigen programma's, games of stuurprogramma's geïnstalleerd. Dit zijn programma's die door de fabrikanten zelf als afzonderlijke uitvoerbare bestanden zijn gemaakt. Dergelijke programma's worden geïnstalleerd in de submappen /opt/, waar ze erg op lijken Windows-programma's, alle uitvoerbare bestanden, bibliotheken en configuratiebestanden bevinden zich in één map.

/mnt (mount) - Montage

Naar deze catalogus systeembeheerders kan externe of extra bestandssystemen aankoppelen.

/media - Verwisselbare media

Het systeem monteert alle aangesloten externe schijven - USB-flashstations, optische schijven en andere opslagmedia.

/srv (server) - Server

Deze map bevat server- en servicebestanden. Het kan bijvoorbeeld bestanden bevatten van de apache-webserver.

/run - processen

Een andere map die proces-PID-bestanden bevat, vergelijkbaar met /var/run, maar anders dan deze, bevindt deze zich in TMPFS en daarom gaan alle bestanden verloren na een herstart.

/sys (systeem) - Systeeminformatie

Het doel van de Linux-mappen uit deze map is om informatie over het systeem rechtstreeks uit de kernel te verkrijgen. Dit is een ander bestandssysteem dat door de kernel wordt georganiseerd en waarmee je veel systeemparameters kunt bekijken en wijzigen, bijvoorbeeld de wisselwerking, het besturen van ventilatoren en nog veel meer.

Ondanks het feit dat het hoofddoel van het bestandssysteem het organiseren van opgeslagen bronnen is, zouden programmeurs niet echt “het wiel opnieuw willen uitvinden” om objecten van andere typen te beheren. In Linux zijn de objecten van het bestandssysteem: processen, apparaten, kerneldatastructuren en -instellingen, communicatiekanalen tussen taken, mappen en natuurlijk gewone bestanden. Deze indeling van het bestandssysteem heeft zowel voor- als nadelen. De voordelen zijn onder meer een enkele software-interface en gemakkelijke toegang vanaf de opdrachtinterpreter. Nadelen zijn onder meer de implementatie van het bestandssysteem met behulp van de Frankenstein-methode.

Het bestandssysteem bestaat uit vier hoofdcomponenten:

  1. Naamruimte - methoden voor het benoemen van objecten en het organiseren ervan in een enkele hiërarchie
  2. API - een reeks systeemaanroepen voor het verplaatsen tussen objecten en het beheren ervan
  3. Beveiligingstechnieken – Een raamwerk voor het beschermen, verbergen en delen van objecten
  4. Implementatie - programmacode die logische modellen verbindt met het schijfsubsysteem

Het bestandssysteem is een enkele hiërarchische structuur die begint met de map / en zich vertakt naar een willekeurig aantal mappen.

De map op het hoogste niveau wordt aangeroepen wortel. Dit monohiërarchische systeem verschilt van het systeem dat wordt gebruikt in Windows, dat een naamruimteconcept gebruikt dat is gebaseerd op het principe van het verdelen van de schijf in partities.

De keten van mapnamen die moet worden doorlopen om toegang te krijgen gegeven bestand, vormt samen met de naam van dit bestand het pad naar het bestand. Het pad kan zijn absoluut(Bijvoorbeeld, /temp/foo) of familielid(Bijvoorbeeld, book4/bestandssysteem). Deze laatste worden geïnterpreteerd vanuit de huidige directory. Het is de moeite waard om op te merken dat elk proces een huidige map heeft (de meeste processen veranderen nooit hun werkmap en nemen dus eenvoudigweg de huidige map over van het proces dat ze heeft gestart).

Er is een limiet aan de lengte van de bestandsnaam: niet meer dan 255 tekens. De naam mag geen schuine strepen of nultekens bevatten. Er is ook een limiet aan de lengte van het pad dat als systeemaanroepargument aan de kernel wordt doorgegeven: 4095 bytes.

Een bestandssysteem aan- en afkoppelen

De bestandsboom bestaat uit afzonderlijke delen, die bestandssystemen worden genoemd. Elk bestandssysteem heeft een hoofdmap en een lijst met submappen en bestanden. De meeste bestandssystemen zijn dat wel delen van harde schijf of logische volumes, maar zoals eerder vermeld kan het bestandssysteem de vorm aannemen van alles dat aan bepaalde functionele kenmerken voldoet: netwerkbestandssystemen, kernelcomponenten, schijven, apparaten, enz.

In de meeste gevallen worden bestandssystemen aan de bestandsboom gekoppeld met behulp van de opdracht monteren. Deze opdracht koppelt een map in de bestaande bestandsboom, een zogenaamde mountpoint, aan de hoofdmap van het nieuwe bestandssysteem. Tijdens de mount wordt toegang tot de vorige inhoud van het mountpunt onmogelijk. De opdracht bijvoorbeeld $ sudo mount /dev/sda4 /users wordt op het apparaat gemonteerd /dev/sda4 bestandssysteem /gebruikers. Zodra het aankoppelen voltooid is, kunt u de opdracht ls /users gebruiken om de inhoud van het bestandssysteem te bekijken. De lijst met bestandssystemen die door gebruikers zijn aangekoppeld, wordt in het bestand opgeslagen /etc/fstab. Bestandssystemen demonteren met behulp van de opdracht bedrag. Een druk bestandssysteem kan niet worden ontkoppeld.

Organisatie van bestandssysteem

Het rootbestandssysteem bevat de hoofdmap en minimale instelling bestanden en submappen. Het kernelbestand bevindt zich diep in het rootbestandssysteem, maar heeft geen standaardnaam of precieze locatie.

Een deel van het rootbestandssysteem is ook een map /enz voor kritisch systeembestanden en configuratiebestanden, mappen /sbin En /bak- voor belangrijke hulpprogramma's en soms een map /tmp- voor tijdelijke bestanden. Catalogus /ontwikkelaar is meestal de daadwerkelijke map die is opgenomen in het rootbestandssysteem, maar deze kan (gedeeltelijk of volledig) worden overlapt door andere bestandssystemen als uw systeem gevirtualiseerde ondersteuning voor zijn apparaten heeft.

Sommige systemen slaan gedeelde bibliotheekbestanden en andere belangrijke programma's (zoals de C-taalpreprocessor) op in een map /lib. Anderen hebben deze items naar de directory /usr/lib verplaatst, waarbij de /lib de rol van een symbolische link.

Catalogi zijn ook van groot belang /usr En /var. De eerste slaat het grootste deel op standaard programma's en andere nuttige componenten, met name onlinedocumentatie en bibliotheken. Het is helemaal niet nodig dat de catalogus /usr was een apart bestandssysteem, maar voor het gemak van het beheer wordt het meestal op die manier aangekoppeld. Om het systeem in de multi-user modus te laten opstarten, zijn beide mappen vereist: /usr En /var. In de catalogus /var bevat buffermappen, logboek bestanden, boekhoudinformatie en andere componenten die specifiek zijn voor elke computer. Omdat logbestanden snel groeien als er zich problemen voordoen, is het aan te raden de directory te plaatsen /var naar een apart bestandssysteem. De thuismappen van gebruikers worden meestal opgeslagen op een afzonderlijk bestandssysteem, dat meestal in de hoofdmap is aangekoppeld. Afzonderlijke bestandssystemen kunnen ook worden gebruikt om grote informatiematrices op te slaan, bijvoorbeeld bibliotheken met programmabroncodes en databases.

De tabel toont standaardmappen en hun inhoud

Catalogus Besturingssysteem Inhoud
/bak Alle Kernel-besturingssysteemopdrachten
/laars L.S. Kernel en bestanden om het te laden
/ontwikkelaar Alle Apparaatbestanden: schijven, printers, pseudo-terminals, enz.
/enz Alle Belangrijke opstart- en systeemconfiguratiebestanden
/thuis Alle Standaard thuismappen voor gebruikers
/kernel S Kernelcomponenten
/lib Alle Bibliotheken, gedeelde bibliotheken en C-compilercomponenten
/media L.S. Bestandssysteemaankoppelpunten op verwisselbare media
/mnt LSA Tijdelijke bevestigingspunten
/opt Alle Optionele applicatiesoftwarepakketten (nog niet veel gebruikt)
/proc LSA Informatie over alle lopende processen
/wortel L.S. De thuismap van de superuser (vaak alleen /)
/sbin Alle Commando's die nodig zijn om minimale systeemprestaties te garanderen
/stellage H Offline hulpprogramma's, diagnose- en schijfformatteringstools
/tmp Alle Tijdelijke bestanden die bij opnieuw opstarten kunnen worden verwijderd
/usr Alle Hiërarchie extra bestanden en programma's
/usb/bin Alle Inhoud
/usr/include Alle Headerbestanden voor het compileren van C-programma's
/usr/lib Alle Bibliotheken en hulpbestanden voor standaardprogramma's
/usr/lib64 L 64-bits bibliotheken voor 64-bits Linux-distributies
/usr/lokaal Alle Lokale programma's (programma's gemaakt of geïnstalleerd door lokale gebruikers)
/usr/sbin Alle Minder belangrijke bestanden systeem administratie
/usr/deel Alle Elementen die verschillende systemen gemeen hebben
/usr/share/man Alle Online documentatiepagina's
/usr/src LSA Broncodes van niet-lokaal softwarepakketten(niet veel gebruikt)
/usr/tmp Alle Extra map voor tijdelijke bestanden die na opnieuw opstarten kunnen blijven bestaan
/var Alle Systeemgegevens en configuratiebestanden
/var/adm Alle Diversen: logbestanden, systeeminstallatierecords, administratieve componenten
/var/log LSA Systeemlogbestanden
/var/spoel Alle Spoolmappen voor printers, e-mail, enz.
/var/tmp Alle Directory voor tijdelijke opslag van bestanden

Opmerking: L = Linux, S = Solaris, H = HP-UX, A = AIX

Bestand types

De meeste bestandssysteemimplementaties definiëren zeven bestandstypen:

  • Reguliere bestanden
  • Catalogi
  • Byte-georiënteerde (teken) apparaatbestanden
  • Blokgeoriënteerde (blok)apparaatbestanden
  • Lokale stopcontacten
  • Namedpipes (implementatie van het FIFO-serviceprincipe - first in, first out)
  • Symbolische koppelingen

Definieer type bestaand bestand je kunt de opdracht gebruiken ls-ld. Het eerste teken in de uitvoerregel geeft het type object aan. Voorbeeld:

$ ls -ld /usr/include

Waar D– betekent map

Mogelijke codes voor presentatie verschillende types bestanden worden in de tabel weergegeven

Normale bestanden zijn slechts een reeks bytes. Bestandssystemen leggen geen beperkingen op aan de structuur ervan. Tekstdocumenten, gegevensbestanden, programmabestanden, functiebibliotheken en nog veel meer worden allemaal opgeslagen in reguliere bestanden. De inhoud ervan is zowel opeenvolgend als rechtstreeks toegankelijk.

In de map worden benoemde koppelingen en andere bestanden opgeslagen. Het is gemaakt door het team mkdir en wordt verwijderd (mits leeg) met het commando rmdir. Niet-lege mappen kunnen worden verwijderd met de opdracht rm-r. De speciale links '.' en '..' verwijzen respectievelijk naar de map zelf en de bovenliggende map. Dergelijke links kunnen niet worden verwijderd. Omdat de hoofdmap zich bovenaan de hiërarchie bevindt, is een '..'-link gelijk aan een '.'-link.

De bestandsnaam wordt feitelijk opgeslagen in de bovenliggende map, niet in het bestand zelf. Er kan vanuit meerdere mappen tegelijk naar een bestand worden verwezen, en zelfs vanuit meerdere vermeldingen in dezelfde map, en elke verwijzing kan een andere naam hebben. Hierdoor ontstaat de illusie dat het bestand tegelijkertijd in verschillende mappen aanwezig is. Deze extra harde (vaste) links kunnen worden beschouwd als synoniemen voor bronbestanden, en vanuit het oogpunt van het bestandssysteem zijn alle verwijzingen naar een bestand gelijkwaardig. Het bestandssysteem telt het aantal verwijzingen naar elk bestand en geeft, wanneer een bestand wordt verwijderd, geen gegevensblokken vrij totdat de laatste verwijzing ernaar is verwijderd. Koppelingen kunnen niet verwijzen naar een bestand dat zich op een ander bestandssysteem bevindt.

Door de opdracht worden harde koppelingen gemaakt ln en worden verwijderd door het commando rm. Commandosyntaxis ln gemakkelijk te onthouden omdat het “ spiegelbeeld cp-opdrachten. Team cp oudbestand nieuwbestand maakt een kopie van het oude bestand met de naam newfile, en de opdracht ln nieuwbestand oudbestand converteert de naam nieuwbestand naar een extra link naar het bestand oudbestand.

Apparaatbestanden geven programma's toegang tot systeemhardware en randapparatuur. De kernel bevat (of bootst) speciale programma's(stuurprogramma's) die tot in elk detail "weten" hoe ze moeten communiceren met elk van de beschikbare apparaten, zodat de kernel zelf relatief abstract en onafhankelijk van hardware kan blijven.

Apparaatstuurprogramma's vormen een standaardcommunicatie-interface, die door de gebruiker wordt waargenomen als een verzameling gewone bestanden. Wanneer het bestandssysteem een ​​verzoek ontvangt voor een teken- of blokapparaatbestand, geeft het het verzoek door aan het juiste stuurprogramma. Het is belangrijk om apparaatbestanden te onderscheiden van apparaatstuurprogramma's. De bestanden zelf zijn geen stuurprogramma's.

Ze kunnen worden gezien als gateways waarmee de bestuurder verzoeken accepteert. Met karakterapparaatbestanden kunnen de bijbehorende stuurprogramma's hun eigen I/O-buffering uitvoeren. Blokapparaatbestanden worden verwerkt door stuurprogramma's, die I/O in grote delen uitvoeren, en buffering wordt uitgevoerd door de kernel. In het verleden konden sommige soorten hardware worden weergegeven door elk type bestand, maar in moderne systemen deze configuratie is zeldzaam.

Apparaatbestanden worden gekenmerkt door twee cijfers: groot en klein. Met het hoofdapparaatnummer kan de kernel bepalen tot welke driver het bestand behoort, terwijl het secundaire apparaatnummer gewoonlijk een specifiek apparaat identificeert. fysiek apparaat. Het belangrijkste apparaatnummer 4 in Linux komt bijvoorbeeld overeen met het stuurprogramma voor de seriële poort. De eerste seriële poort (/dev/tty0) zal dus een hoofdgetal van 4 en een klein getal van 0 hebben.

Bestuurders kunnen de kleine apparaatnummers die aan hen worden doorgegeven op elke gewenste manier interpreteren. Stuurprogramma's voor tapedrives gebruiken dit nummer bijvoorbeeld om te bepalen of de tape moet worden teruggespoeld nadat het apparaatbestand is gesloten.

In het verre verleden /ontwikkelaar speelde de rol van een gedeelde map en de apparaatbestanden die daarin waren opgeslagen, werden gemaakt met behulp van de opdracht mknod en werden verwijderd door de opdracht rm. Een script genaamd MAKEDEV hielp bij het standaardiseren van het maken van apparaatbestanden.

Helaas kon dit ‘ruwe’ systeem niet goed omgaan met de enorme hoeveelheid stuurprogramma’s en apparaattypen die de afgelopen decennia zijn verschenen. Het introduceerde ook allerlei mogelijke configuratie-inconsistenties: bijvoorbeeld apparaatbestanden die verwijzen naar niet-bestaande apparaten, apparaten die ontoegankelijk zijn omdat ze geen apparaatbestanden hebben, enz.

Tegenwoordig implementeren de meeste systemen een vorm van automatisch apparaatbestandsbeheer, waardoor het systeem een ​​actievere rol kan spelen bij de configuratie eigen bestanden apparaten. Op Solaris zijn de mappen /dev en /devices bijvoorbeeld volledig gevirtualiseerd. Op Linux-distributies is de map /dev de standaardmap, maar de bestanden daarin worden beheerd door de udevd-daemon. (De udevd-daemon maakt en verwijdert apparaatbestanden als reactie op hardwarewijzigingen die door de kernel worden gerapporteerd.)

Socketverbindingen zorgen ervoor dat processen kunnen communiceren zonder te worden beïnvloed door andere processen. UNIX ondersteunt verschillende soorten sockets, waarvan het gebruik meestal de aanwezigheid van een netwerk vereist. Lokale sockets zijn alleen beschikbaar op de lokale computer en zijn toegankelijk via speciale bestandssysteemobjecten in plaats van via netwerkpoorten. Soms worden dergelijke sockets UNIX-sockets genoemd.

Hoewel andere processen socketbestanden herkennen als directory-items, kunnen alleen processen met een geschikte verbinding tussen deze bestanden het socketbestand lezen en ernaar schrijven. Als voorbeelden standaard middelen systemen die lokale sockets gebruiken, zijn onder meer de X Window- en Syslog-systemen.

Lokale sockets worden gemaakt met behulp van een systeemoproep stopcontact. Wanneer de verbinding aan beide kanten gesloten is, kan de socket met het commando worden verwijderd rm of via een systeemoproep ontkoppelen.

Net als lokale sockets maken Named Pipes communicatie mogelijk tussen twee processen die op dezelfde computer draaien. Dergelijke kanalen worden ook FIFO-bestanden (First In, First Out) genoemd. Ze zijn gemaakt door een team mknod en worden verwijderd door het commando rm.

Net als bij lokale sockets zijn er maar weinig echte benoemde pipe-instanties. Ze vereisen zelden administratieve tussenkomst.

Genoemde buizen en lokale stopcontacten hebben vrijwel hetzelfde doel, en hun wederzijdse bestaan ​​​​heeft zich historisch ontwikkeld. Als UNIX- en Linux-systemen vandaag de dag zouden worden ontwikkeld, zouden deze interactiemiddelen geen probleem zijn; nu zouden ze worden vervangen door netwerkaansluitingen.

Werken met bestanden in Linux

Laten we eerst eens kijken naar de basisopdrachten voor het werken met bestanden en mappen. Gebruik de opdracht om een ​​bestand te maken aanraken, om een ​​map te maken, gebruikt u het commando mkdir.

gebruiker@ubuntu$ tik op [bestandsnaam] – maak een bestand

gebruiker@ubuntu$ mkdir [mapnaam] – maak een map

Bestanden worden verwijderd met behulp van de opdracht rm. Voor mappen wordt hetzelfde commando gebruikt, alleen met de schakeloptie -r (recursief).

gebruiker@ubuntu$ rm [bestandsnaam] – verwijder bestand

gebruiker@ubuntu$ rm -r [mapnaam] – verwijder map

Met de opdracht kunt u zien in welke map we ons bevinden pwd. De inhoud van de map wordt bekeken door de opdracht ls, wat handig is om aan te roepen met de schakelaar -l om uitgebreide informatie over elk bestand te bekijken. De overgang naar de map wordt uitgevoerd met het commando CD.

gebruiker@ubuntu$ pwd – huidige map

gebruiker@ubuntu$ ls -l [mappad] – mapinhoud

gebruiker@ubuntu$ cd [mappad] – ga naar map

Kopieer- en verplaatsingsbewerkingen worden uitgevoerd met opdrachten cp En mv respectievelijk. Nee op Linux speciaal elftal om een ​​bestand te hernoemen, gebruik het dan mv.

gebruiker@ubuntu$ cp [te kopiëren bestand] [directory] – een bestand kopiëren

gebruiker@ubuntu$ mv [verplaatsbaar bestand] [directory] – een bestand verplaatsen

gebruiker@ubuntu$ mv [huidige bestandsnaam] [nieuwe bestandsnaam] – hernoem het bestand

In dit voorbeeld maken we een map test/, ga daarheen met het commando CD. In deze map maken we twee bestanden file en file2. Geef de inhoud van een map weer met de opdracht ls-l. Kopieer het bestand en noem het file3. Hernoem het bestand naar new_file met de opdracht mv. Verwijder aan het einde alle bestanden in de map met het commando rm * . * – geeft een willekeurig aantal tekens aan. Ga naar de bovenstaande map met de opdracht CD.. en verwijder de map /test.

Machtigingen in Linux

Toegangsrechten tot een bestand of directory kunnen worden ingesteld met behulp van het commando chmod. Alleen de eigenaar van het bestand en de rootgebruiker hebben dit recht. In Linux heeft elk bestand een overeenkomstige set machtigingen, weergegeven als 8 modusbits. Ze bepalen welke gebruikers rechten hebben om het bestand te lezen, bewerken en uit te voeren.

Het eerste argument van het chmod-commando is de toestemmingsspecificatie. Het tweede en volgende argument zijn de namen van de bestanden waarvan de toegangsrechten moeten worden gewijzigd. Bij gebruik van octale notatie verwijst het eerste cijfer naar de eigenaar, het tweede naar de groep en het derde naar andere gebruikers. Als u de setuid/setgid-bits of extra beetje, moet u niet drie, maar vier octale cijfers opgeven: het eerste cijfer komt in dit geval overeen met drie speciale bits.

De tabel toont er acht mogelijke combinaties voor elke set van drie bits, waarbij de karakters r, w en x respectievelijk de lees-, schrijf- en uitvoerrechten aangeven.

Het commando bijvoorbeeld chmod 711 mijnprog geeft de eigenaar alle rechten, en andere gebruikers alleen uitvoeringsrechten 9 .

Wanneer u een mnemonische syntaxis gebruikt, combineert u een reeks artiesten (u voor gebruiker, g voor groep of o voor anders) met een operator (+add, –delete en =assign) en een reeks machtigingen. Meer gedetailleerde beschrijving De geheugensyntaxis kun je vinden op de manpagina voor het chmod-commando, maar de syntaxis kun je altijd het beste leren door middel van voorbeelden.

Er doen zich vaak situaties voor waarin tijdens het uitvoeren van een bestand wordt geklaagd over een gebrek aan rechten. Dit probleem kan worden opgelost met het commando sudo chmod a+x bestand. De opdracht betekent dat het bestand is ingesteld om machtigingen voor alle gebruikers uit te voeren.

Met de optie -R zal het commando chmod recursief de machtigingen van alle bestanden in de opgegeven map en de submappen ervan bijwerken. Hier is het het handigst om de mnemonische syntaxis te volgen, zodat alleen de bits die expliciet zijn ingesteld, worden gewijzigd. Het commando bijvoorbeeld
chmod -R g+w mydir voegt groepsschrijfrechten toe aan de mydir-map en de inhoud ervan zonder andere rechten te beïnvloeden.


Abonneer u op onze

Elk UNIX-achtig besturingssysteem bestaat uit een kernel, een systeem en applicatieprogramma's. Systeemprogramma's gebruiken de faciliteiten van de kernel om verschillende functies van het besturingssysteem uit te voeren. Systeem- en alle andere programma's worden uitgevoerd “op het oppervlak van de kernel” - in gebruikersmodus. Heel vaak bevat het besturingssysteem compilers en de bijbehorende bibliotheken (GCC- en C-bibliotheken voor Linux), hoewel niet alle programmeertalen deel moeten uitmaken van het besturingssysteem. Documentatie, en soms zelfs games, kunnen daar deel van uitmaken. Normaal gesproken wordt de samenstelling van het besturingssysteem bepaald door de inhoud van de installatieschijf.

Het Linux-besturingssysteem kan worden gezien als een Unix-piramide, zoals weergegeven in de afbeelding.

Figuur Unix-besturingssysteemniveaus

Eigenlijk lager niveau bevat hardware bestaande uit een centrale processor, geheugen, schijven, terminals en andere apparaten.

Op het bare metal draait een Unix-systeem waarvan de functies het beheren van de hardware zijn en het bieden van een systeemaanroepinterface voor alle programma's. Met deze systeemaanroepen kan het programma processen, bestanden en andere bronnen maken en beheren.

Alle programma's voeren systeemaanroepen uit door argumenten in CPU-registers te plaatsen en een geëmuleerde interrupt-instructie uit te voeren om van de gebruikersmodus naar de kernelmodus over te schakelen en de controle over te dragen aan het Unix-besturingssysteem. Bibliotheekfuncties zijn verantwoordelijk voor de werking van geëmuleerde interrupt-opdrachten, één per systeemoproep. Om de READ-systeemaanroep uit te voeren, moet een C-programma dus de READ-bibliotheekprocedure aanroepen.

Naast het besturingssysteem en de systeemaanroepbibliotheek bevatten alle versies van Unix een groot aantal van standaard programma's. Deze programma's omvatten: opdrachtverwerker(shell), compilers, editors, tekstverwerkingsprogramma's en bestandshulpprogramma's.

Veel hulpprogramma's kunnen in een van de volgende drie categorieën worden ingedeeld:

1 Redacteuren;

Filters - lees invoerinformatie die is ontvangen van de gebruiker of van een bestand of een andere bron, bestudeer en verwerk deze en produceer vervolgens het resultaat. Gebruik om een ​​filterscript te schrijven speciale taal AWK. Filters omvatten – grep, sort, wc, pr, cmp, comm., cpio, fmt, fgrep, srd;

Communicatieprogramma's – gebruikt om te communiceren met andere gebruikers van uw systeem en andere systemen.

We kunnen dus spreken over drie interfaces in het Unix-besturingssysteem: de systeemaanroepinterface, de bibliotheekfunctie-interface en de interface gevormd door een reeks standaard hulpprogramma's.

Hoewel het de laatste interface is die de meeste gebruikers overwegen Unix-systeem, in werkelijkheid heeft het vrijwel niets met het besturingssysteem zelf te maken en kan het eenvoudig worden vervangen.

Linux-distributies

Linux-distributie is een set softwarepakketten die de basiscomponenten van besturingssystemen (inclusief de Linux-kernel) bevatten, een bepaalde set software applicaties en een installatieprogramma waarmee u het GNU/Linux-besturingssysteem op de computer van de gebruiker kunt installeren zonder tussenkomst van een hooggekwalificeerde expert, en een reeks applicatieprogramma's die nodig zijn voor een specifieke toepassing van het systeem.

Er zijn veel manieren waarop individuele distributies verschillen. Hier zijn er maar een paar:

oriëntatie (of doel) van de distributiekit voor een specifiek toepassingsgebied;

benodigdheden voor hardware;

de gebruikte grafische shell (bijvoorbeeld KDE, GNOME of XFce);

Beschikbaarheid van lokalisatietools die de ondersteuning bieden die u nodig heeft;

media van waaruit het systeem kan worden gestart;

organisatie van de opstartprocedure van het systeem (Systeem V of BSD);

het gebruikte pakketbeheersysteem (bijvoorbeeld dpkg in Debian, RPM in Fedora Core). De software in het pakket is verkrijgbaar in twee hoofdvormen: as binaire bestanden, die bedoeld zijn om rechtstreeks op uw systeem te worden geïnstalleerd, zonder enige aanvullende verwerking (zoals compilatie) en as bronteksten, die doorgaans tekst in een bepaalde programmeertaal bevatten, gearchiveerd in tar-formaat en gzipt, evenals ondersteunende bestanden die nodig zijn om de applicatie uit de pakketbestanden te compileren;

mapstructuur van het bestandssysteem (hoewel alle bestandssystemen, indien mogelijk, moeten voldoen aan de FHS - Filesystem Hierarchy Standard);

stamboom of oorsprongsgeschiedenis van de distributie (de meeste moderne distributies herleiden hun voorouders tot Red Hat of Debian);

samenstelling van de basis geïnstalleerde software;

beschikbaarheid van aanvullende pakketten;

beschikbaarheid en samenstelling van commerciële programma's die bij de distributie zijn inbegrepen;

voorzien van systeembeheertools, enzovoort...

Nadat we alle aspecten waarin distributies verschillen gedetailleerder hebben onderzocht, kunnen we stellen dat er drie essentiële criteria zijn voor het classificeren van Linux-distributies:

laadstijl;

pakketbeheersysteem;

distributie doel.

5. Bestandssysteem is het deel van het besturingssysteem dat wordt uitgevoerd

bestanden, en het bieden van manieren om gegevens op te slaan en de toegang daartoe te organiseren informatie medium of zijn sectie. Op Unix-systemen is een bestandssysteem een ​​apparaat (harde schijf of cd) of schijfpartitie die wordt gebruikt om bestanden op te slaan.

Basis bestandssysteem besturingssysteem Linux werd - Ext2, met lange bestandsnamen, lange bestanden en hoge prestaties. Linux ondersteunt echter ook andere bestandssystemen die het bestandssysteem gebruiken. NFS-systeem. Wanneer u een besturingssysteem bouwt, vraagt ​​Linux u een bestandssysteem te selecteren dat in de kernel zal worden ingebouwd. Andere bestandssystemen kunnen, indien nodig, tijdens runtime dynamisch worden geladen in de vorm van modules.

Ext2 lijkt sterk op het BSD-bestandssysteem, met kleine wijzigingen. De plaatsing van het Ext2-bestandssysteem op de schijf wordt weergegeven in de afbeelding.

Het Linux-bestandssysteem is georganiseerd als een boom met één aanvankelijk knooppunt dat de root wordt genoemd (geschreven: " / » ), waarvan de tussenliggende hoekpunten overeenkomen met mappen, en waarvan de bladeren overeenkomen met bestanden en lege mappen. symbool " / " wordt ook gebruikt om mapnamen te scheiden. Elke map en elk bestand in het bestandssysteem heeft een uniek bestand voor-en achternaam. De map bevat twee speciale namen: de naam " . " - deze map zelf een naam geven, en de naam " . . " - het benoemen van de "bovenliggende" map van deze map. Het Linux-bestandssysteem gebruikt twee padnamen: full (absoluut), die begint vanaf de root, d.w.z. van het bord " / " en gerelateerd (relatief), dat begint met de naam van de huidige map.

6.Ext2 zeer vergelijkbaar met het BSD-bestandssysteem met kleine wijzigingen. De plaatsing van het Ext2-bestandssysteem op de schijf wordt weergegeven in de afbeelding.

Afbeelding - Plaatsing van het Ext2-bestandssysteem op schijf

In plaats van groepen cilinders verdeelt Ext2 de schijf in groepen blokken. De groepsdescriptor bevat informatie over de locatie van de bitmaps, het aantal vrije blokken en i-nodes in de groep, evenals het aantal mappen in de groep. In twee bitarrays (block bit array en i-node bit array) worden vrije blokken en vrije i-nodes bijgehouden. De grootte van elke bitmap is één blok.