Compatibiliteit van Linux-kantoorsuites met Microsoft Office. Welk besturingssysteem is beter: Windows of Linux? Linux-compatibele systemen

Van tijd tot tijd koop je nieuwe apparatuur, en je wilt natuurlijk dat deze op Linux werkt. Het is niet zo dat de vrije gemeenschap geen apparaten kan of wil ondersteunen; de ervaring leert dat dit wel kan en gebeurt. Het punt is dat hebzuchtige en domme fabrikanten niet alleen stuurprogramma's voor hun hardware willen schrijven, maar zelfs de specificaties voor hun apparaten willen openen. Als de hardware niet op Linux draait, is die fabrikant doorgaans helemaal niet de moeite waard om te overwegen.

Dit bericht gaat over Linux en het installeren van hardware in Linux. Het installeren van hardware op Linux is eenvoudig en hieronder vindt u bronnen die u hierbij kunnen helpen.

Waar kan ik informatie vinden over de compatibiliteit van apparaten en randapparatuur met Linux?
http://linux-wless.passys.nl/ - een uitgebreide database met WiFi-kaarten voor Linux Dit is de meest complete bron voor het ondersteunen van draadloze netwerkkaarten in Linux, je kunt zoeken op fabrikant - en als deze wordt ondersteund, de naam van de bestuurder wordt onmiddellijk gegeven.

http://www.sane-project.org/sane-mfgs.html - lijst met scanners in Linux die worden ondersteund door het SANE-subsysteem. Lijst met scannermodellen die in Linux werken, afhankelijk van de fabrikant. Compatibiliteitsgradaties: volledige ondersteuning, gedeeltelijk, basis, geen ondersteuning. Het geeft ook aan welke backend nodig is om het apparaat te laten werken.

http://openprinting.org/printer_list.cgi - een database met werkende Linux-printers die worden ondersteund door het CUPS-afdruksubsysteem, dat Linux-stuurprogramma's biedt voor printers in Linux-distributies. Handig zoeken op printermodellen en fabrikant. Gradaties van compatibiliteit: werkt, werkt bijna, werkt in beperkte mate, ballast.

Databases per apparaatcategorie
http://www.linuxcompatibel.org/compatibility.html - een database van alle Linux-compatibele apparaten, van geluidskaarten tot printers en scanners. Er zijn gradaties van compatibiliteit: het werkt perfect, het werkt voor het grootste deel, sommige functies werken, ballast. De database is zeer uitgebreid en wordt van tijd tot tijd bijgewerkt door de makers van de site. Hoe dan ook: een prachtige bron.

http://kmuto.jp/debian/hcl/ - database met apparaten die worden ondersteund door kernels 2.6.15 en hoger. We kopiëren eenvoudigweg de uitvoer van lspci -n van de console en krijgen informatie over de ondersteuning van de hardware op het moederbord.

http://www.linux-laptop.net/ is de meest uitgebreide bron over het draaien van Linux op laptops. De pagina bevat een classificatie per fabrikant, gevolgd door links per model naar specifieke pagina's van gebruikers die vertellen wat en hoe ze hebben gedaan om de functionaliteit van hun laptops te krijgen. De meeste informatie is in het Engels, maar ook andere talen zijn aanwezig.

http://start.at/modem is een geweldige bron voor het ondersteunen van defecte apparaten zoals winmodems. Uit deze ballast blijkt ook nog iets te halen: er is een indrukwekkende lijst met ondersteunde apparaten.

http://www.phoronix.com/lch/ - gebruikersdatabase van ondersteunde apparaten. Het begint vol te raken, jij kunt er ook aan meedoen. Er zijn RSS-feeds voor zowel een specifiek type hardware als voor allemaal tegelijk.

- Een prachtige bron op Linux-apparaten met links naar HOWTO's en "hoe in te stellen". Op de pagina staat een indeling per apparaattype, daarna staan ​​links hoe je dit instelt en welke problemen er kunnen optreden. Er zijn ook links naar algemene informatie over deze apparaten. Zeer informatief. Er is een nieuwsfeed voor de site (nieuwe documentatie).

http://cdb.suse.de/?LANG=en_UK - lijst met apparaten die compatibel zijn met SuSE Linux. Bijgewerkte database met apparaten die compatibel zijn met SuSe Linux. In de regel werken deze apparaten ook in andere distributies.

http://www.linuxtested.com/ - compatibiliteit en werking van apparaten per distributie. De site bevat informatie over het testen van apparaten in de volgende distributies: SuSE, Redhat / Fedora, TurboLinux, Debian, Mandrake.

http://www.linux.org/hardware/ - hardware die werkt in Linux De lijst is niet compleet, maar kan nuttig zijn - er is informatie over exotische hardware waarvoor ondersteuning is in Linux.

http://www.linux-drivers.org/ - links naar veel bronnen over Linux-compatibiliteit. Een groot aantal links naar bronnen en hardware-ondersteuning in Linux.

http://hardware4linux.info/ - map met Linux-compatibele hardware, onderverdeeld in categorieën: “werkt direct uit de doos”, “werkt met aanpassingen”, “onbekend”, “werkt gedeeltelijk” en “werkt niet”. Een vrij grote en voortdurend bijgewerkte database met apparaten.

http://www.linmodems.org/ - een database met ondersteuning voor kwaadaardige apparaten zoals Win-modems. Daarin worden alle hoofdactiviteiten overgedragen aan de bestuurder, geschreven voor je-weet-wel-systeem. Als gevolg hiervan zitten er bijna geen ‘hersens’ op het apparaat, net zoals de fabrikanten van dergelijke apparaten die niet hebben. Dankzij de inspanningen van vrije programmeurs kunnen veel van deze apparaten geschikt worden gemaakt voor Linux.

Windows en Linux zijn de populairste besturingssystemen op de wereldmarkt. Het debat over wie beter is, is sinds de komst van de systemen niet geluwd. Er zijn voor elk van hen veel aanhangers, maar ook tegenstanders. Natuurlijk hebben zowel Linux als Windows hun voor- en nadelen, die sommige gebruikers bereid zijn te verdragen en andere niet. In dit artikel zullen we proberen deze twee giganten opnieuw tegen elkaar op te zetten en uiteindelijk uit te vinden wat beter is: Windows of Linux. Laten we gaan!

Elk platform heeft zijn voor- en nadelen

Laten we beginnen met Linux. Over het algemeen is dit besturingssysteem minder populair dan Windows; het werken ermee roept in de regel meer vragen op bij gebruikers. Het is vermeldenswaard dat Linux waarschijnlijker gericht is op professionals dan op gewone gebruikers. Het zijn die mensen die de grootst mogelijke mogelijkheden willen krijgen bij het werken met een computer, die de meest fervente fans van dit systeem worden. Laten we nu eens naar elk van de voordelen van Linux kijken.

Het belangrijkste en belangrijkste voordeel zijn gratis distributies, waarvan de keuze vrij uitgebreid is. Linux dient als basis waarop ontwikkelaars een grafische interface ‘hangen’ voor het gemak van gebruikers. Alle distributies zijn officieel en volledig gratis, wat betekent dat u de mogelijkheid heeft om een ​​bewezen en betrouwbaar besturingssysteem tot uw beschikking te krijgen, een gelicentieerd product. In dit opzicht heeft Windows niets om over op te scheppen. De meest populaire distributies kunnen worden genoemd: Ubuntu, Mint, Fedora, Mandriva - deze lijst gaat maar door. Kies wat je het leukst vindt.

Gratis software

Zoals je al begrijpt, is Linux een echte vondst voor degenen die gratis een hoogwaardig, gelicentieerd product willen gebruiken. De keuze aan programma’s is vrij uitgebreid, maar toch kun je de populairste tools niet gratis gebruiken.

Variabiliteit

Linux is een zeer flexibel systeem waarmee je er letterlijk alles mee kunt doen. Dit maakt dit besturingssysteem een ​​uitstekende keuze voor programmeurs. Computerprofessionals kunnen in Linux doen wat ze willen, en creëren een grote verscheidenheid aan software om een ​​grote verscheidenheid aan problemen op te lossen.

Ontwerp

Hoewel de schoonheid van Linux niet in de grafische interface ligt, kan men niet anders dan het stijlvolle en moderne ontwerp van sommige distributies opmerken, wat velen leuk zullen vinden.

Prestatie

Linux OS stelt absoluut geen eisen aan de hardware en werkt uitstekend, zelfs op de zwakste machines. Experimenteer met distributies en vind degene die u de beste functies en maximale prestaties biedt.

Nu over de nadelen. Linux kan, ondanks al zijn functionaliteit, geen entertainmentsysteem worden genoemd. Dit besturingssysteem is absoluut niet geschikt voor fans van computerspellen. Bovendien zul je problemen hebben met het gebruik van populaire softwareproducten, en in plaats daarvan zul je hun analogen moeten gebruiken, waar maar weinig mensen blij mee zijn. Om al het bovenstaande samen te vatten, kunnen we zeggen dat het Linux-besturingssysteem echt goed is voor computerprofessionals, voor wie het geavanceerde werkmogelijkheden biedt, en voor degenen die een gratis, gelicentieerd besturingssysteem en softwareproducten nodig hebben. Tegelijkertijd kan Linux nauwelijks een echt goede keuze voor thuisgebruik worden genoemd.

Het is tijd om te praten over de mastodont en bijna absolute leider op de markt voor besturingssystemen: Windows. Dit product van Microsoft wordt op de overgrote meerderheid van apparaten over de hele wereld gebruikt. Er is waarschijnlijk geen persoon ter wereld die dit besturingssysteem niet is tegengekomen. Sommige mensen vinden het leuk, anderen niet, maar iedereen heeft ermee gewerkt. Laten we nu verder gaan met het analyseren van alle voordelen van Windows en proberen de reden voor zo'n succes van dit product te onthullen.

Prevalentie

De populariteit van Windows heeft geleid tot het verschijnen van een groot aantal handleidingen en artikelen met antwoorden op alle vragen die verband houden met het werken in het systeem of het corrigeren van fouten daarin. Hoewel dit besturingssysteem wordt betaald, zijn er niet zo veel gebruikers van gelicentieerde versies. Het zijn illegale versies van Windows die vanwege hun beschikbaarheid op bijna elke computer in de GOS-landen zijn geïnstalleerd.

Eenvoud

Een groot voordeel van dit besturingssysteem is dat het handig is voor zowel eenvoudige gebruikers als gevorderde gebruikers. Windows biedt de mogelijkheid om in de opdrachtregelmodus te werken, wijzigingen aan te brengen in het register, enzovoort, maar voor degenen die dit allemaal niet nodig hebben en het niet begrijpen, biedt dit besturingssysteem een ​​duidelijke en prettige grafische interface, die niet moeilijk te begrijpen.

Spellen

Waar zouden we zijn zonder dit? Heel wat gebruikers spelen regelmatig of af en toe computerspelletjes. Het onbetwiste voordeel van Windows is dat bijna alle bestaande pc-games ermee compatibel zijn. Dit betekent dat als u een Microsoft-product hebt geïnstalleerd, u toegang heeft tot een enorme selectie computerentertainment.

Software

De overgrote meerderheid van de hulpprogramma's en applicaties is speciaal gemaakt voor het Windows-besturingssysteem, wat erg goed is voor elke gebruiker. Alle populairste softwareproducten zijn op Windows geïmplementeerd en dit geeft u zeer ruime mogelijkheden bij het werken met uw computer.

Verenigbaarheid

In tegenstelling tot Linux is het onwaarschijnlijk dat u een apparaat zult vinden dat geen Windows-stuurprogramma's heeft. Door een product van Microsoft te kiezen, kun je zeggen dat je alle problemen met apparaatcompatibiliteit elimineert, aangezien alle fabrikanten zich primair richten op het maken van producten die compatibel zijn met Windows.

Ontwerp

Sinds kort kan het besturingssysteem van Microsoft hierop bogen. Het ontwerp van de nieuwste versies is zeer onderscheidend en origineel. De enorme tegels van versie 8 vielen bij velen niet in de smaak, maar de beslissing van de ontwikkelaars om nieuwe en oude ontwerpen te combineren in versie 10 van het systeem stelde veel gebruikers tevreden. Windows 10 verweeft op zeer organische wijze de klassieke functies die in oude versies zijn ingebed, met de meest moderne en nieuwerwetse ontwikkelingen.

Microsoft Office

Iedereen die in Libre Office op Linux heeft gewerkt, begrijpt dat ze geen betere teksteditor hebben bedacht dan Word. Dit hulpprogramma is echt onmisbaar in onze tijd, en vergeleken daarmee lijkt Libre Office één compleet misverstand, waarmee het werken niets anders dan kwelling met zich meebrengt.

Wat de nadelen betreft, het grootste nadeel van Windows is dat dit besturingssysteem geld kost. Dit probleem is vooral relevant voor de GOS-landen. Alle gebruikers downloaden voortdurend illegale versies die niet geverifieerd en betrouwbaar zijn, en dit schaadt op zijn beurt de reputatie van het Windows-besturingssysteem en het Microsoft-ontwikkelaarsbedrijf enorm. Een ander nadeel, dat tot op zekere hoogte verband houdt met het eerste, zijn frequente systeemcrashes. Misschien kent iedere Windows-gebruiker het ‘blauwe scherm’ of, zoals het ook wel wordt genoemd, het ‘scherm des doods’. Wat je ook zegt, de betrouwbaarheid en stabiliteit van dit systeem laten veel te wensen over. Concluderend kunnen we zeggen dat de kracht van Windows is dat het een systeem voor iedereen is. Iedereen zal er iets van zichzelf in vinden, ongeacht zijn eigen vaardigheden of toegewezen taken. We kunnen zeggen dat dit dit product zo populair maakt over de hele wereld.

Zoals u kunt zien, is het niet mogelijk om een ​​duidelijke keuze te maken ten gunste van een van de systemen die in het artikel worden besproken. Het enige wat ik je kan adviseren is om te proberen met het een en het ander te werken, en dan te beslissen wat het beste voor je is. Iedereen heeft immers zijn eigen ideeën over goed design, functionaliteit, prestaties en andere aspecten waarop vergelijking mogelijk is. Met alle voor- en nadelen van elk besturingssysteem is het onmogelijk om een ​​objectief oordeel te geven, omdat het uiteindelijk allemaal neerkomt op elementaire ‘smaak’. Dit artikel is bedoeld om u de nodige stof tot nadenken te geven, en het is aan u om te beslissen wat beter is: Windows of Linux.

Laat uw recensie van het artikel achter en schrijf in de reacties uw mening over welke van de beoordeelde besturingssystemen u het beste vindt en waarom.

  • VKontakte
  • reguliere vorm

    Het is voldoende om één keer te begrijpen wat een blue screen of death of bsod is, zoals je wilt. Een blauw scherm is het onvermogen om een ​​bestand te lezen. Bovendien is het volkomen onmogelijk vanwege de afwezigheid van dit bestand of vanwege het ontbreken van een pad ernaartoe. Nu zal ik het gemakkelijker uitleggen. Er kunnen twee redenen zijn dat een bestand ontbreekt. Eerst. Schade aan de harde schijf, wat alleen mogelijk is op een oude computer. Seconde. Chauffeursmismatch. Bijvoorbeeld. Een harde schijf met een brede kabel of kabelboom, de zogenaamde IDE-interface, waarop we een nieuw besturingssysteem installeren dat dergelijke stuurprogramma's niet heeft. In dit geval moet u voorzichtig zijn en de stuurprogramma's afzonderlijk downloaden en tijdens de installatie bij de hand hebben. Een andere optie. Op een sata harde schijf, of een nieuwe harde schijf, installeren wij een oud besturingssysteem, bijvoorbeeld windows xp, Zver, enzovoort. Deze besturingssystemen bevatten geen satov-stuurprogramma's. Het resultaat is een scherm van de dood. Er zijn geen andere opties en dat kan ook niet. Als de stuurprogramma's volledig overeenkomen, komt alles goed als je de computer niet opzettelijk belachelijk maakt en niet de stekker uit het stopcontact trekt om je gek te plezieren. In dit geval verpest je binnen een paar keer je harde schijf en krijg je een doodsscherm vanwege een onleesbare harde schijf. Het is beter om defecte clusters of plaatsen op de harde schijf niet te repareren en zelfs geen tijd te verspillen. De Winchester is een zeer complex apparaat dat respect en zorg vereist. Zorg goed voor uw computer. Probeer niet te experimenteren, anders krijg je zoveel pijn en financiële kosten dat het gemakkelijker is om een ​​nieuwe computer te kopen.

    Auteur)))) Wat zou je weten. Linux is ideaal voor wilde beginners en thuisgebruik. Tenminste omdat u hiermee uw systeemmappen niet op de gebruikelijke manier voor Windows kunt verwijderen. Ten tweede lijkt dezelfde Mint Mate qua indeling van knoppen en programmamenu's sterk op Windows. Ten derde: wat ontbreekt er in Linux voor beginners? Gespecialiseerde programma's - zo moeten ze worden geschreven. Ten vierde: heeft Linux slechte technische ondersteuning? Ik smeek je)))) Op de forums zullen ze het uitkauwen op een manier die niet aan gepensioneerden wordt geleerd in computercursussen. En ze zullen niet tegelijkertijd lachen.

    Om dit programma goed te kunnen evalueren, moet je eerst in LeebreOffiese werken.
    Ik ben afgestudeerd aan het LeebreOffiese Instituut, heb daar grafieken gemaakt en mijn diploma geschreven. 4,5 jaar praktijk.

    Alle markers hebben verschillende smaken en kleuren.
    Of iemand kan met 100% zekerheid zeggen dat de zee nog steeds beter is dan een meer, en de oceaan nog steeds beter dan een rivier.
    Wie probeert wat aan wie te bewijzen? Tenzij je jezelf nog een keer overtuigt...

( 2007-08-15 )

Om te beslissen of een bepaalde computer goed kan werken onder Linux of niet, moet je alle componenten - videokaart, geluidskaart, printer, scanner, digitale camera en andere apparaten controleren op compatibiliteit met Linux.

Natuurlijk is de ondersteuning voor verschillende hardware in Linux de afgelopen tien jaar aanzienlijk verbeterd en nu heb je een redelijk goede kans om een ​​computer te kopen en vrijwel elke distributie daarop zonder problemen te laten draaien. Er is echter nog steeds apparatuur die momenteel niet wordt ondersteund.

Tegenwoordig werkt bijna alle apparatuur goed, maar je moet op je hoede zijn voor apparatuur die wordt bestuurd door programma's in plaats van door knoppen. Omdat de programma's hoogstwaarschijnlijk voor Windows en soms Mac OS X zijn geschreven.

Zelfs als de fabrikant Linux ondersteunt, moet je heel voorzichtig zijn. Hoogstwaarschijnlijk zul je naar de website van de fabrikant moeten gaan, waar de kans groot is dat je niet geheel actuele informatie aantreft. Ook zoeken op internet zal weinig nut hebben, aangezien het uiteindelijk veel pagina's zal opleveren met in jouw geval verouderde of niet geheel correcte informatie.

Hieronder vindt u een lijst met enkele onlinebronnen, waarvan de informatie regelmatig wordt bijgewerkt en vrij compleet en gedetailleerd is.

Videokaarten

Als je wilt controleren of je videokaart wordt ondersteund, begin dan met de website van X.Org, daar staat een lijst met ondersteunde videokaarten. U kunt ook de website van de fabrikant raadplegen. Dit geldt bijvoorbeeld voor videokaarten van NVIDIA en ATI. Daarnaast is er het Nouveau-project, dat open drivers voor NVIDIA-kaarten ontwikkelt, en het collega-project Avivo, dat open drivers voor ATI-kaarten ontwikkelt. Geen van deze projecten heeft echter nog een officiële release gepresenteerd.

Als u niet weet wat u beter kunt kiezen: open stuurprogramma's of eigen stuurprogramma's, zijn er verschillende manieren om deze keuze te maken. Ten eerste kunt u een keuze maken op basis van uw filosofie, maar hoogstwaarschijnlijk zal de keuze worden gemaakt op basis van hun functionaliteit. Het grootste probleem met open source-stuurprogramma's is de beperkte of geheel afwezige ondersteuning voor 3D-mogelijkheden, terwijl propriëtaire stuurprogramma's traag en (vooral ATI) onstabiel zijn.

Een andere optie is het beleid van de distributie die u gebruikt. Commerciële distributies zoals Xandros en Linspire worden meestal geleverd met eigen stuurprogramma's, terwijl Ubuntu open source-stuurprogramma's gebruikt. Het is waar dat Ubuntu ook Restricted Device Manager heeft, waardoor het eenvoudig is om eigen stuurprogramma's op het systeem te installeren. Fedora 7 is een van de eerste distributies die waar mogelijk Nouveau-stuurprogramma's gebruikt in plaats van eigen NVIDIA-stuurprogramma's.

Geluidskaarten

Helaas is er niet één site met gedetailleerde informatie, maar je kunt de lijst met Linux-compatibele kaarten bekijken op de Linux-Sound-website. U kunt ook informatie verkrijgen via de mailinglijsten van Linux Audio Developers.

Een andere goede bron is Soundcard Matrix op de ALSA-projectwebsite. Als uw kaart in deze matrix staat en de kolom Opmerkingen leeg is, wordt uw kaart gegarandeerd ondersteund.

Printers

U werkt gegarandeerd met elke printer die Universal PostScript ondersteunt. Als u echter meer gedetailleerde informatie wilt, begin dan met de Printer Compatibility Database, die deel uitmaakt van het OpenPrinting-project (voorheen LinuxPrinting.org).

De printercompatibiliteitsdatabase is een vrijwel perfecte bron van printerinformatie. Het bevat vrijwel alle bekende printers. Voor elke printer wordt zijn eigen ondersteuningsniveau ingesteld: Goed, Meestal, Gedeeltelijk en Presse-papier :). Ook beschrijft de database welk stuurprogramma met welke printer werkt, en een gedetailleerde beschrijving van de instellingen voor volledig gebruik van de printer. Als alternatief kunt u een printer voor uw taken kiezen, waarbij u een deel van dezelfde database gebruikt. Alle informatie is gebaseerd op gebruikersrapporten.

Scanners

Als u een multifunctionele printer als scanner gebruikt, kan de printerdatabase u helpen (zie het vorige hoofdstuk). De belangrijkste bron van informatie over scannercompatibiliteit is echter de SANE Project Information Retrieval Service, die u kan helpen informatie te vinden over de geschiktheid van een bepaald model voor gebruik op Linux. Als u problemen ondervindt, kunt u het beste vragen stellen op het SANE-projectforum.

Digitale camera's

Moderne digitale camera's hebben de gesloten protocollen uit het verleden verlaten ten gunste van een open protocol: USB, waarvan de ondersteuning in Linux op een zeer hoog niveau ligt. Als u er echter nog steeds zeker van wilt zijn dat uw camera wordt ondersteund, wendt u zich dan tot het gPhoto-project, dat een database met meer dan negenhonderd titels heeft. Een andere bron is de database van Hubert Figuiere, die gedetailleerde informatie bevat, niet alleen over camera-ondersteuning, maar ook over de configuratie van het systeem om ze te gebruiken.

Draadloze adapters

Een paar jaar geleden bestond het grootste gat in de apparaatondersteuning uit modems. Tegenwoordig zijn dit draadloze adapters. Bovendien maakt de constante release van nieuwe modellen ondersteuning nog moeilijker. Twee gerelateerde modellen kunnen bijvoorbeeld fundamenteel verschillende firmware hebben en dienovereenkomstig verschillende stuurprogramma's vereisen.

De enige actueel bijgewerkte site met informatie over draadloze adapters wordt onderhouden door Jean Tourrilhes met sponsoring van Hewlett-Packard. De informatie op de site is behoorlijk chaotisch geplaatst, maar je kunt er wel achter komen als je wilt.

Als uw adapter niet wordt ondersteund, kunt u deze mogelijk starten met , of, voor Broadcom-adapters, - . Beide projecten zijn eigenlijk wrappers voor stuurprogramma's van Windows of Mac OS X.

Het nadeel van beide programma's is dat je lspci moet gebruiken om de bus-ID van je adapter te verkrijgen. Kijk daarom, voordat u iets koopt, hoeveel adapters vergelijkbaar met de uwe worden ondersteund door ndiswrapper.

Laptops en andere mobiele apparaten

De opsplitsing van Linux in vele distributies vindt ongetwijfeld plaats. Maar laten we eens kijken of “de duivel zo verschrikkelijk is” door eerst de vraag te beantwoorden wat Linux is. Allereerst is dit natuurlijk de kern. En deze kernel wordt ontwikkeld binnen het raamwerk van een enkel project, waarbij geleidelijk vertakkingen en patches van veel ontwikkelaars worden verzameld, en er is nog geen tendens tot fragmentatie van het systeem op kernelniveau waargenomen. Het volgende is een complex van systeemomgeving: middelen voor het laden en initialiseren van het systeem; ondersteuningsprogramma's voor kernelfunctionaliteit; middelen om gebruikersinteractie met het systeem te ondersteunen; systeembrede bibliotheken; ondersteunende hulpmiddelen voor grafische interfaces; pakketbeheertools.

De systeemomgeving omvat, naast de bootloader zelf, waarvan de functies bij het opstarten van het systeem zijn uitgeput en op geen enkele manier het verdere werk beïnvloeden, ook een reeks systeeminitialisatiescripts en hun configuratiebestanden. Deze sets zijn specifiek voor elke distributie, maar elk van hen zorgt voor het laden van alle startservices die nodig zijn voor verdere werking - er is niets meer van nodig.

Hulpprogramma's voor het ondersteunen van kernelfunctionaliteit, tools voor het ondersteunen van gebruikersinteractie met het systeem en systeembrede bibliotheken - dit alles is een al lang bestaande reeks programma's (het kan Base Linux worden genoemd), voornamelijk afkomstig van het GNU-project en gerelateerde programma's, bijna identiek in alle gangbare distributies en daarin synchroon bijgewerkt. Ook hier is dus geen sprake van een bijzondere fragmentatie.

GUI-ondersteuning omvat het X Window-systeem, vensterbeheerders en geïntegreerde desktopomgevingen, samen met de bibliotheken waarop ze zijn gebaseerd. De eerste wordt nu in vrijwel alle Linux-distributies (en in de meeste Unix-achtige systemen in het algemeen) vertegenwoordigd door één enkele implementatie: Xorg. Natuurlijk zijn er ook hier versieverschillen, maar deze hebben alleen invloed op de ondersteuning voor extra decoratieve functies.

Wat overblijft zijn pakketbeheertools, en hier manifesteert de specificiteit van distributies zich uiteraard in grotere mate dan in de set initialisatietools. Eigenlijk wordt de specificiteit van distributiekits bepaald door de principes van hun configuratie.

Vanuit het oogpunt van de "kernfabrikanten" zijn er slechts drie volledig originele historische systemen: Slackware, Debian en Red Hat. De rest is ofwel genetisch verwant, ofwel ontwikkeld onder de invloed van een van hen (hoewel de invloed van BSD-systemen niet buiten beschouwing kan worden gelaten). Aan de andere kant is het vertrek van ‘klonen’ uit de voorouderlijke verspreiding slechts een kwestie van tijd en intensiteit van ontwikkeling. Wie zou nu denken dat Suse uit Slackware komt, en Mandriva (oorspronkelijk Mandrake) historisch gezien gewoon Red Hat was met KDE als desktop? Aan de derde kant bevinden alle distributies zich, als gevolg van het open ontwikkelingsmodel, in een staat van voortdurende wederzijdse beïnvloeding, en is het vaak niet mogelijk om de mate van relatie tussen een afstammeling en zijn voorouders te bepalen, wat direct verband houdt met het compatibiliteitsprobleem. .

Verdeling van besturingssystemen per toepassing - ja, er is een reden om distributies voor algemene doeleinden en systemen die zich richten op speciale gebruiksgebieden te scheiden. Maar eerst kan vrijwel elke algemene distributie worden geïnstalleerd en geconfigureerd voor specifiek gebruik. Ten tweede is dit precies hoe alle speciale systemen worden gecreëerd. Ten derde worden distributies, die aanvankelijk voor speciale doeleinden zijn gemaakt, vaak overwoekerd met attributen als installatieprogramma's en pakketbeheertools, waardoor ze veranderen in systemen voor algemeen gebruik.

In feite zijn er slechts twee belangrijke classificatiekenmerken om distributies te onderscheiden: de vorm van distributie en de manier om de componenten ervan te beheren. Volgens de eerste kunnen twee groepen worden onderscheiden: draagbaar of draagbaar en verpakt. Draagbare distributies worden meestal Source Based System genoemd, wat niet helemaal correct lijkt, omdat ze meestal niet in brontekstvorm worden verspreid. Hun hoofdcomponent is een systeem voor het verkrijgen van broncodes van auteurspakketten van internet, het samenstellen ervan en het opnemen ervan in het bestandssysteem van de doelmachine (een typisch voorbeeld hier is Gentoo met zijn Portage-systeem). In FreeBSD, waar dit concept is ontleend, wordt zo'n systeem ports genoemd, wat raadzaam is om te behouden als de generieke naam voor al dergelijke beheertools voor distributiecomponenten. Dienovereenkomstig zijn de gcc-compiler en de bijbehorende bouwtools een integraal onderdeel van geporteerde distributies. Batchdistributies worden gedistribueerd in de vorm van vooraf gecompileerde binaire pakketten, die kunnen samenvallen met de originele pakketten of meer fractioneel kunnen zijn.

Er is geen scherpe grens tussen draagbare en verpakte distributies. De eerste bevatten in ieder geval een voorgecompileerd basissysteem, zonder welk het functioneren van het poortsysteem onmogelijk zou zijn. Bovendien verbiedt niemand de distributie ervan in de vorm van binaire pakketten die door het ports-systeem worden gegenereerd (dit is de belangrijkste manier om FreeBSD te distribueren). Pakketdistributies bevatten vaak onafhankelijke “poortachtige” systemen (Archlinux, CRUX), of hun pakketbeheertools stellen u in staat de distributie volledig opnieuw op te bouwen vanaf de broncode (Debian en zijn klonen). Verpakte distributies kunnen echter worden gedistribueerd zonder een compiler en gerelateerde tools, maar een soort pakketbeheersysteem is een integraal onderdeel. Welke hangt grotendeels af van het formaat van de pakketten: tar-archieven gecomprimeerd met gzip of bzip2; rpm-pakketten en deb-pakketten. Dienovereenkomstig kunnen pakketdistributies worden onderverdeeld in drie groepen, die elk hun eigen set hulpprogramma's op laag niveau hebben om ze te installeren, dus het gebruik van pakketten van het ene formaat in een distributie die voor een ander is ontworpen, veroorzaakt meestal problemen. Dit is echter geen onoverkomelijke grens, aangezien er tools bestaan ​​om pakketten van het ene formaat naar het andere te converteren, en veel pakketbeheersystemen op hoog niveau die oorspronkelijk voor deb-pakketten zijn ontworpen, zijn met succes aangepast aan andere formaten.

Het is uiteraard niet nodig dat een willekeurig pakket dat is geconverteerd naar een deb-formaatpakket met succes wordt geïnstalleerd op een deb-georiënteerde distributie - naast mogelijke schendingen van de afhankelijkheid kunnen verschillen in de hiërarchie van het bestandssysteem dit ook voorkomen, maar de noodzaak voor een dergelijke praktijk komt zeer zelden voor. In feite is het aanvullen van de distributie met pakketten, het oplossen van hun afhankelijkheden, het aanpassen aan het functioneren in de omgeving van een bepaald systeem en het bijwerken van versies de taak van distributiebouwers, waarmee ze redelijk succesvol omgaan.

De tijd dat programma's werden geschreven met de focus op een specifieke distributie is al lang voorbij. Tegenwoordig worden ze bijna altijd gemaakt voor gebruik in abstracte Linux, of zelfs in een Unix-achtig systeem in het algemeen. In ieder geval is het aanpassen van applicaties voor een specifieke distributie en systeem de zorg van de assembleurs. Natuurlijk zou het roekeloos zijn om compatibiliteitsgaranties te verwachten van de assembleurs van gratis distributiekits (en ook van de ontwikkelaars van welke vrije software dan ook), hoewel deze garantie in de praktijk een reputatie is. Maar distributeurs van bedrijfsedities van commerciële distributies Red Hat, Novell en Mandriva bieden dergelijke garanties.

Niettemin bestaat het probleem van de compatibiliteit van distributiekits en applicatieprogramma's, maar het betreft geen open en vrije software, maar propriëtaire software die niet beschikbaar is in de broncode en daarom niet kan worden aangepast aan een specifiek systeem door deze te wijzigen. De fabrikanten van dergelijke programma's testen hun producten zelf alleen op compatibiliteit met bepaalde distributies en garanderen hun prestaties op andere systemen niet. Tot voor kort waren dus alleen Red Hat en Suse gecertificeerd om met het Oracle DBMS te werken (nu is de “eigen” distributie van Oracle daaraan toegevoegd). De kernproducten van IBM, zoals DB2, zijn gericht op Red Hat. Maar ook hier is alles niet zo eng. Ten eerste is het ontbreken van een fabrieksgarantie helemaal niet gelijkwaardig aan de gegarandeerde onbruikbaarheid van zijn producten in andere distributies. Ten tweede is het doel van het maken van Red Hat-klonen als Scientific Linux bijvoorbeeld juist het bereiken van de volledige functionaliteit van het moedersysteem, ook vanuit het oogpunt van compatibiliteit met applicaties van derden. En ten derde is het vaak mogelijk om propriëtaire programma's te draaien op systemen die hier niet voor ontworpen lijken te zijn, met behulp van speciale technieken.

Laat je reactie achter!

26.02.2007 Alexey Grinevich, Denis Markovtsev, Vladimir Rubanov

Als je teruggaat naar het einde van de jaren negentig en je in de wereld van de besturingssystemen van die tijd stort, zal bijna niemand twijfelen aan de onbetwiste heerschappij van Unix-compatibele systemen. Alles staat aan de kant van Unix - de familie van deze besturingssystemen wordt bestudeerd aan universiteiten, er zijn honderdduizenden applicaties voor gemaakt, het wordt met succes gebruikt in verschillende sectoren van de economie, er zijn veel boeken en documentatie geschreven erover. Het is waar dat je Unix niet kunt kopen, maar je kunt wel IBM AIX, BSD, HP-UX, Sun Solaris, enz. kopen. Tegelijkertijd zijn er extra inspanningen nodig om een ​​programma dat bijvoorbeeld voor AIX is gemaakt, onder Solaris te laten werken. Verschillende Unix-klonen bleken slecht compatibel. Soortgelijke problemen bestaan ​​tegenwoordig voor het Linux-besturingssysteem.

Om het infrastructuurprobleem van slechte compatibiliteit tussen verschillende versies van Unix op te lossen, begon IEEE in 1985 te werken aan een standaard om de draagbaarheid van software te garanderen. In 1990 werd de IEEE 1003-standaard, ook wel POSIX genoemd, uitgebracht, die programma-interfaces (API's) en een lijst met opdrachten voor Unix-klonen regelde. Voor spelers op de Unix-markt heeft de eenwording echter tot complexe politieke problemen geleid: elke beslissing, elke keuze tussen alternatieve opties om tot overeenstemming te komen, leidt ertoe dat de oplossing van de ene leverancier als “standaarder” wordt beschouwd dan de andere. Als gevolg hiervan staat de standaard vol met dubbelzinnige uitspraken als “in dit geval is een van de twee alternatieve gedragingen mogelijk” en lege plekken als “de standaard reguleert het gedrag van de functie in dit geval niet.” Op het einde, fragmentatie werd een van de belangrijkste redenen voor de nederlaag van de Unix-wereld. Spelers op deze markt concurreerden niet alleen met andere soorten besturingssystemen, maar ook met elkaar, waarbij ze eigen extensies en eigen interfaces introduceerden, waardoor het scala aan mogelijke toepassingen tot één kloon werd beperkt.

Het Linux-besturingssysteem, dat begin jaren negentig verscheen, bevatte code die binnen de GNU-beweging was gemaakt en absorbeerde de belangrijkste ideeën van Unix, dankzij zijn openheid en onafhankelijkheid, en werd een universeel compromis. De code werd helemaal opnieuw geïmplementeerd en vertrouwde niet op enige implementatie, maar alleen op de tekst van de POSIX-standaard. Als gevolg hiervan bleek het systeem vanaf het begin POSIX-compatibel te zijn, en zijn onafhankelijkheid maakte het mogelijk om de inspanningen van verschillende Unix-marktspelers te combineren in de strijd om het verloren segment van pc-besturingssystemen terug te geven. Het probleem van fragmentatie blijft echter relevant voor Linux: de aanwezigheid van concurrerende distributies roept zorgen op over de waarschijnlijke herhaling van het lot van Unix.

Op het eerste gezicht lijkt het gevaar van fragmentatie zelf nogal illusoir - sterker nog, er is een gemeenschappelijke code, de meeste distributies werken op basis van dezelfde kernel, dezelfde bibliotheken, die grotendeels de compatibiliteit bepalen. Het lijkt erop dat applicaties functioneel en compatibel moeten blijven tussen verschillende versies van Linux. Maar dit wordt in de praktijk niet bevestigd. Samen met de fragmentatie van de Linux-distributiemarkt in termen van benaderingen en aanvullende functionaliteit, zijn er aanzienlijke onevenwichtigheden in de ondersteuning van zelfs gewone en standaardapplicaties door verschillende klonen - verschillende distributies gebruiken verschillende versies van de kernel en systeembibliotheken (voornamelijk glibc). Dit leidt ertoe dat de samenstelling en het gedrag van de systeeminterfaces die door het systeem aan applicaties worden geleverd, veranderen van distributie tot distributie. Om de trieste ervaring met Unix-klonen niet te herhalen, begon in 1998, binnen het raamwerk van een speciaal opgerichte organisatie Free Standards Group (nu de Linux Foundation), te werken aan de LSB-standaard (Linux Standard Base - “de basisfamilie van Linux normen”). Dankzij de inspanningen van de X/Open-, IEEE- en ISO-organisaties, die de POSIX-standaard en enkele tests openstelden voor vrije toegang, werd de basis gelegd voor de standaardisatie van Linux.

Maar wat moet er precies worden gestandaardiseerd en waarom? Is Common Open Source zelf niet een uniforme en open standaard?

Compatibiliteitsproblemen met applicaties

Hoe manifesteren de verschillen tussen Linux-distributies zich in de praktijk en hoe ernstig is het probleem? Laten we een voorbeeld geven. Het commerciële aanbod van IBM is gebaseerd op vijf productlijnen: DB2, Websphere, Rational, Tivoli en Lotus. De praktijk leert dat het ondersteunen van alle vijf de lijnen voor één Linux-distributie jaarlijks miljoenen dollars kost, die naar ontwikkelaars en testers gaan die verantwoordelijk zijn voor het ondersteunen van applicaties voor een specifieke Linux-distributie. Bijgevolg worden die uitkeringen ondersteund waarvoor de winst uit de verkoop van producten deze miljoenen overschrijdt; in feite zijn dit alleen distributies van SuSE en Red Hat. Dit creëert een situatie van inconsistentie: wat op sommige distributies werkt, werkt niet op andere.

Een geheel andere situatie wordt waargenomen voor Sun Solaris. Allereerst garandeert Sun Microsystems dat een programma dat voor Solaris 2.6 is gecompileerd, zonder hercompilatie en onder versie 10 zal werken. De ontwikkelaars van Sun doen grote inspanningen om dit te bereiken; Elke keer dat de code wordt gewijzigd, wordt een reeks van meer dan 2.400 applicaties met verschillende doeleinden en samenstelling uitgevoerd. Bovendien, als iemand ontdekt dat een applicatie niet meer werkt vanwege incompatibiliteit tussen Solaris-versies, neemt Sun de verantwoordelijkheid en de kosten voor het corrigeren van de inconsistentie op zich. In het geval van het Linux-besturingssysteem werd dit werk lange tijd niet uitgevoerd; applicaties en distributies leefden hun eigen aparte leven. Het treurigste hieraan is het ontbreken van een universele manier om een ​​programma zo te schrijven dat portabiliteit gegarandeerd is. De inspanningen van het Linux Foundation-consortium, dat de belangen behartigt van de belangrijkste spelers op de Linux-markt, zijn erop gericht dit probleem op te lossen.

Linux-structuur

Linux wordt vaak alleen maar de kernel genoemd, maar er zijn veel dingen die een kernel niet zou moeten doen. Werken met documenten, e-mail verzenden, XML verwerken, vensters tekenen - voor dit alles zijn er in bijna alle distributies speciale bibliotheken opgenomen. Deze bibliotheken leiden op de een of andere manier tot een aanroep van de kernel, maar problemen en fouten kunnen niet alleen in de kernel voorkomen, maar ook in de bibliotheken zelf.

Er is een mening dat als een programma stopt met werken bij het wijzigen van de Linux-distributie (of de versie ervan), het met de broncodes heel gemakkelijk te corrigeren is en daarom zijn er geen compatibiliteitsproblemen. Voordat we bespreken of dit waar is of niet, laten we eerst eens kijken naar de structuur van het Linux-besturingssysteem.

Een "gegeneraliseerd" model van een op Linux gebaseerd systeem wordt gepresenteerd op

Rijst. 1. Systeemmodel gebaseerd op Linux OS

Elk specifiek Linux-systeem is gemaakt om een ​​of meer applicaties uit te voeren, maar de applicatiecode zelf is niet voldoende om de service die gebruikers nodig hebben uit de hardware te halen - de meeste applicaties gebruiken in hun werk oproepen naar bibliotheekfuncties. De LSB Core 3.1-standaard definieert de volgende systeembibliotheken: libc, libcrypt, libdl, libm, libpthread, librt, libutil, libpam, libz, libncurses. Op moderne Linux-systemen worden de interfaces naar deze systeembibliotheken geïmplementeerd door de glibc-, Linux-PAM-, zlib- en ncurses-bibliotheken, die feitelijk meer interfaces implementeren dan die gedefinieerd in LSB Core.

Op basis van de mate van interactie met de Linux-kernel kunnen de functies van systeembibliotheken als volgt worden geclassificeerd:

  • de implementatie van de functie is volledig opgenomen in de bibliotheek en de kernel wordt niet gebruikt (bijvoorbeeld strcpy, tsearch);
  • de bibliotheek implementeert een triviale “wrapper” voor het aanroepen van de corresponderende kernelinterface (bijvoorbeeld lezen, schrijven);
  • De implementatie van de functie bevat zowel aanroepen naar de kernelsysteeminterfaces (en mogelijk meerdere verschillende) als een deel van de code in de bibliotheek zelf (bijvoorbeeld pthread_create, pthread_cancel).

De Linux-kernel zelf bevat veel geëxporteerde toegangspunten, maar de overgrote meerderheid daarvan zijn interne interfaces voor gebruik door modules en subsystemen van de kernel zelf. De externe interface bevat ongeveer 250 functies (versie 2.6). Hiervan gebruikt de glibc 2.3.5-bibliotheek er bijvoorbeeld 137 bij de implementatie ervan.

Configuraties

Onder configuratie Het systeemgedeelte van de distributie wordt opgevat als een combinatie van de kernelversie (inclusief individuele patches), versies van systeembibliotheken, hun buildparameters en de architectuur waarop het allemaal werkt. Op Er wordt een voorbeeld gegeven van de assemblageconfiguratie van twee hypothetische distributies, die een verzameling versies van componenten en patches zijn. Tussen versies van componenten worden nieuwe functionaliteit toegevoegd en verouderde interfaces en functies verwijderd. In dit diagram is het dus gemakkelijk te zien dat, aangezien distributies 1 en 2 verschillende versies van GCC gebruiken, de broncodecompatibiliteit tussen beide gedeeltelijk verloren gaat - niet alles dat is gecompileerd met gcc 3.4 kan zonder aanpassingen worden gecompileerd met gcc 4.0.

Rijst. 2. Voorbeeld van configuratie van distributieopbouw

Uitkeringen

Op adres lwn.net/Distributies/ je kunt een lijst vinden met bekende Linux-distributies (op het moment van schrijven waren dat er 542) die open zijn voor het grote publiek. Hierbij is geen rekening gehouden met versies gemaakt voor intern gebruik door individuele liefhebbers, maar ook door diverse bedrijven, afdelingen etc. Volgens de GNU-licentie kun je een willekeurige distributie nemen, er wijzigingen in aanbrengen (tenminste aan componenten die onder GNU vallen) en deze verder distribueren.

Uitkeringen kunnen worden geclassificeerd op basis van een aantal criteria.

  • Door basisfabrikanten. Red Hat, Slackware, SuSE, Debian, Asianux, Mandriva en Gentoo vertegenwoordigen bijvoorbeeld de belangrijkste “takken” van de Linux-industrie. Deze verdelingen zijn geen afstammelingen van de andere (hoewel er enkele historische afhankelijkheden tussen bestaan). Ze kunnen worden beschouwd als strategische richtingen voor de ontwikkeling van Linux in het algemeen. De meeste van de overige distributies behoren duidelijk tot een van de genoemde takken - waarbij de meeste de broncode en applicaties overnemen en specifieke functionaliteit toevoegen.
  • Door lokalisatie. In veel landen is er een lokale Linux-fabrikant (in Rusland kent bijvoorbeeld iedereen de ASP Linux- en ALT Linux-distributies).
  • Per toepassing. Distributies voor ingebed gebruik in mobiele apparaten; distributies die werken zonder ondersteuning voor bestandssystemen; lichtgewicht versies voor gebruik in PDA's; draagbare versies voor gebruik vanaf beperkte media (Linux op een diskette, Linux op een cd, enz.).
  • Door specialisatie. Distributies ter ondersteuning van een specifieke hardwarearchitectuur (AlphaLinux met ondersteuning voor Alpha-processorarchitectuur, ARM Linux met ondersteuning voor ARM, enz.).

Linux-buildprocedure

Het lijkt misschien dat om betrouwbaarheid en compatibiliteit op het gedragsniveau van systeembibliotheekinterfaces te bereiken, het voldoende is dat tests worden uitgevoerd door de ontwikkelaars van de kernel en bibliotheken, maar dat is niet zo. Al op het niveau van systeembibliotheekinterfaces zijn er veel dimensies die bijna elk Linux-systeem uniek maken in termen van kwaliteit. Het gedrag van applicatie-interfaces wordt bepaald door een combinatie van bibliotheken, kernel en hardware. Op hun beurt worden de kernel en bibliotheken bepaald door hun versie (inclusief officiële of niet-officiële patches en aanpassingen) en, heel belangrijk, de build-configuratie.

De verscheidenheid aan verschillende componenten in Linux en de vele afhankelijkheden daartussen kunnen worden geïllustreerd door de procedure voor het bouwen van een kernel. Het Linux From Scratch-project bevat de reeks stappen die nodig zijn om een ​​Linux-distributie helemaal opnieuw op te bouwen. De vereenvoudigde montagevolgorde voor de LFS Linux-distributieversie 6.0 ziet er als volgt uit:

1. Binutils-2.15.94.0.2.2 - Pass 1
2. GCC-3.4.3 - Voldoen aan 1
3. Linux-Libc-Headers-2.6.11.2
4. Glibc-2.3.4

87.Util-linux-2.12q
88. Opstartconfiguratie
89. Linux-2.6.11.12 - Kernel

De kernel wordt in de allerlaatste stap samengesteld met behulp van de eerder samengestelde binaire hulpprogramma's. Het is belangrijk om rekening te houden met de versies van de component die in elk lijstelement worden vermeld. Het vervangen van de ene versie van een component door een andere is niet altijd triviaal; het assembleren van het systeem kan onmogelijk zijn vanwege de afwezigheid of wijziging van een bepaalde functie, of het kan ingewikkeld zijn. Voor het monteren van veel componenten zijn extra stappen nodig, zo staat er in de instructies voor het monteren van flex voor deze distributie een opmerking :

Flex bevat verschillende bekende bugs. Deze kunnen worden opgelost met de volgende patch:
patch -Np1 -i ../flex-2.5.31-debian_fixes-3.patch

Het assemblageproces omvat de assemblage van compilatietools, die in de loop van de tijd ook aanzienlijke veranderingen ondergaan. Zelfs fundamentele Linux-componenten zijn vaak verouderd. De gcc-compilerversie 4.0.0 is dus niet geschikt voor het bouwen van kernel 2.6.11 (hoewel het tijdgenoten zijn) en vereist het gebruik van een speciale patch om deze incompatibiliteit te elimineren.

Gevangen door verslavingen

Fragmentatie op bibliotheekniveau is een groot probleem in de moderne Linux-wereld. Het veelvuldig uitbrengen van nieuwe versies van Linux-bibliotheken wordt doorgaans als een goede zaak beschouwd en dit is inderdaad de enige manier om nieuwe ideeën snel toe te passen en te testen en de nieuwste verworvenheden van de “engineering” beschikbaar te maken: soms tientallen versies van dezelfde bibliotheek zijn op grote schaal gebruikt. Tegelijkertijd is een integraal onderscheidend kenmerk van de ontwikkeling van individuele componenten van het Linux-besturingssysteem het gedecentraliseerde karakter ervan. Vaak zijn nieuwe versies van verschillende componenten die vrijwel gelijktijdig worden uitgebracht duidelijk incompatibel, wat betekent dat het volkomen onmogelijk is om verschillende combinaties van bibliotheken adequaat te testen op compatibiliteit en een stabiele werking van het systeem voor alle mogelijke combinaties te garanderen. Als gevolg hiervan valt de volledige last van de problemen op de gebruiker die besluit een programma of bibliotheek te installeren waarvan duidelijk niet gegarandeerd is dat deze werkt in de omgeving die op zijn machine aanwezig is, en deze situatie komt vrij vaak voor.

De categorie problemen die verband houdt met de incompatibiliteit van bibliotheekversies wordt de afhankelijkheidshel genoemd. en.wikipedia.org/wiki/Dependency_hell). Welke problemen kan een gebruiker tegenkomen bij het installeren van een nieuwe bibliotheek op zijn versie van Linux? In dit geval functioneren applicaties die op de vorige versie draaiden mogelijk niet meer correct omdat deze applicaties expliciet of impliciet afhankelijk waren van bepaalde bugs en bijwerkingen die aanwezig waren in de oudere versie. De tegenovergestelde situatie is ook heel goed mogelijk, wanneer een nieuwe versie simpelweg een nieuwe fout bevat. Maar het echte probleem doet zich voor wanneer het systeem verschillende applicaties moet draaien die in belangrijke mate afhankelijk zijn van verschillende versies van dezelfde bibliotheek; Het kan blijken dat het simpelweg onmogelijk is dat deze applicaties samenwerken. Soms is het mogelijk om meerdere versies van dezelfde bibliotheek op het systeem te hebben, en dit zal een volledig veilige oplossing zijn, maar dit wordt helemaal niet aanbevolen in het geval van de glibc-bibliotheek.

Het belangrijkste evolutionaire pad naar het bereiken van compatibiliteit tussen verschillende Linux-distributies is standaardisatie. Een volwassen en volledig ondersteunde standaard zal de kosten van het garanderen van de draagbaarheid van Linux-oplossingen verlagen, wat zal bijdragen aan de groei van het aantal applicaties voor dit platform, en daarmee aan de populariteit van Linux in het algemeen. Tegenwoordig fungeert Linux Standard Base als een dergelijke “besparende” standaard.

LSB is de belangrijkste standaard die compatibiliteitsvereisten voor Linux-systemen definieert. Basisinformatie over deze standaard is bijvoorbeeld al gepubliceerd in het werk, dat echter de oude versie van de standaard besloeg en de rol van kernelinterfaces enigszins overdreef. In werkelijkheid specificeert de LSB-standaard geen kernelinterfaces, maar definieert hij applicatie-interfaces op een hoger niveau die door verschillende bibliotheken zijn geïmplementeerd. LSB probeert geen vervanging te zijn voor bestaande standaarden, maar bouwt eerder voort op alle belangrijke standaarden die al in Linux zijn vastgelegd. Het legt versies en subsets van componentstandaarden vast om consistentie te garanderen, en vormt een aanvulling op de beschrijvingen van die interfaces die de facto aanwezig zijn in de meeste Linux-distributies, maar niet zijn opgenomen in bestaande standaarden. Het grootste deel van de LSB-standaard bestaat uit eisen voor systeeminterfaces die door alle Linux-distributies moeten worden ondersteund (een soort “gemene deler” van alle Linux-systemen). In dit deel verwijst LSB zwaar naar de POSIX-standaard.

Het belangrijkste verschil met LSB is dat applicatieontwikkelaars zich op één platform kunnen richten, bijvoorbeeld LSB 3.1, en dit zal voldoende zijn om op alle LSB 3.1-compatibele distributies te werken. Hetzelfde geldt voor distributieaanbieders: zodra de naleving van LSB 3.1 is bereikt, ondersteunt de distributie automatisch alle applicaties die ermee compatibel zijn. IBM levert bijvoorbeeld, als onderdeel van het Chiphopper-initiatief, hardwareoplossingen die alleen LSB-compatibele distributies draaien. Grotendeels dankzij de activiteit van grote spelers hebben grote distributieaanbieders al de LSB-certificering behaald of hun voornemen aangekondigd om gecertificeerd te worden ( www.linux-foundation.org/en/LSB_Distribution_Status).

Momenteel is de belangrijkste zwakte van de LSB-standaard het gebrek aan tests. Er zijn gevallen waarin de in de standaard beschreven interface anders werkt, en toch slaagt het systeem met succes voor de certificering. Dit wordt verklaard door het feit dat er simpelweg geen test voor deze interface bestaat, of dat deze te zwak is om de functionaliteit van de interface volledig te testen. Het is zeer passend om de uitspraak van Ian Murdoch, de schepper van Debian en vandaag de dag hoofd technologie van de Linux Foundation, te citeren: “Het is bekend dat een interfacestandaard slechts zo goed is als de testdekking die de naleving van die standaard verifieert. ”

De Open Group heeft een aantal van zijn POSIX-tests opengesteld voor opname in de LSB-certificeringstestsuite. De LSB-set bevat gratis tests van de standaard GNU C++ Runtime Library Test Suite, en tests voor libgtk en libxml zijn aangepast. De Linux Foundation overweegt een uitkoop om verschillende betaalde testsuites te openen en op te nemen in de LSB.

Ook in ons land zijn ze bezig dit probleem op te lossen. Zo werd op basis van het Instituut voor Systeemprogrammering van de Russische Academie van Wetenschappen het Linux OS Verification Center gecreëerd, waar de open testsuite OLVER wordt ontwikkeld, die naar verwachting zal worden opgenomen in de officiële LSB-tests. Er is een samenwerkingsovereenkomst gesloten tussen het Centrum en de Linux Foundation, in het kader waarvan wordt gewerkt aan het verbeteren van de LSB-testdekking en de ontwikkeling van een nieuwe infrastructuur voor de ontwikkeling van deze standaard aan de gang is.

Conclusie

Om de fragmentatie die al heeft plaatsgevonden met het Unix-besturingssysteem te voorkomen, zijn maatregelen nodig om de distributiecompatibiliteit te garanderen - tenminste binnen een bepaalde subset van functionaliteit. De overdraagbaarheid van applicaties binnen deze subset zal het mogelijk maken om Linux als één enkel platform te verenigen en de kosten voor het ontwikkelen en ondersteunen van applicaties aanzienlijk te verlagen, wat een positieve invloed zou moeten hebben op hun aantal en de populariteit van Linux-oplossingen in het algemeen.

Tegenwoordig is het belangrijkste portabiliteitsinitiatief de open LSB-standaard, overgenomen door toonaangevende distributie- (Red Hat, SuSe, Mandriva) en applicatiefabrikanten (MySQL, RealPlayer, SAP MaxDB). Achter deze standaard staat het krachtige Linux Foundation-consortium en zijn actieve leden zoals IBM, Intel, HP en Oracle, waardoor we kunnen hopen op een succesvolle ontwikkeling en wijdverbreide implementatie in het echte leven. Zo is in de vorm van de LSB-standaard een betrouwbare basis gelegd voor één enkel, ongefragmenteerd Linux-platform dat de portabiliteit van applicaties zowel op basis van broncode als in binaire vorm garandeert.

Zelfs zeer goede normen blijven echter alleen maar goede wensen, zolang er geen handige en betrouwbare manieren zijn om de naleving ervan te verifiëren. Daarom is het verbeteren van de kwaliteit van de LSB-testdekking een van de belangrijkste prioriteiten van de samenwerking tussen het Linux OS Verification Center en de Linux Foundation.

  • het opsporen van onnauwkeurigheden en fouten in de tekst van de LSB en gerelateerde standaarden en het rapporteren ervan aan de oorspronkelijke ontwikkelaars voor wijzigingen in toekomstige versies;
  • ontwikkeling van formele specificaties in de SeC-taal (een specificatie-uitbreiding van de C-taal), die de vereisten van de LSB Core 3.1-standaard voor 1530 Linux-interfacefuncties zullen weerspiegelen;
  • ontwikkeling van open testsuites voor het functioneel testen van verschillende Linux-systemen op naleving van de vereisten van de LSB Core 3.1-standaard (het gedrag van de programmeerinterfaces van Linux-systeemapplicaties wordt gecontroleerd).
  • De testsuite is gebaseerd op het automatisch genereren van tests op basis van formele eisenspecificaties en bijbehorende testgevallen met behulp van UniTESK-technologie.

    Eind 2006 was de hoofdfase van het project afgerond; alle resultaten van het project worden gepubliceerd op de website van het Centrum. Nu bevindt het project zich in de fase van het ondersteunen en uitbreiden van het bereik van doelplatforms (combinatie van hardwarearchitectuur met een specifieke distributie).

    * Flex bevat verschillende bekende bugs. Ze kunnen worden opgelost met de volgende patch...


    Compatibiliteitsproblemen met Linux-systemen