Hoofdstuk 4. Compatibiliteitskwesties

Inhoudsopgave

4.1. Op welke hardwarearchitecturen/systemen kan Debian GNU/Linux werken?
4.2. Welke kernels gebruikt Debian GNU/Linux?
4.3. Hoe compatibel is Debian met andere Linux-distributies?
4.4. Hoe compatibel is de broncode van Debian met andere Unix-systemen?
4.5. Kan ik Debian-pakketten (".deb"-bestanden) gebruiken op mijn Red Hat/Slackware/... Linux-systeem? Kan ik Red Hat-pakketten (".rpm"-bestanden) gebruiken op mijn Debian GNU/Linux-systeem?
4.6. Hoe moet ik een niet-Debian programma installeren?

4.1. Op welke hardwarearchitecturen/systemen kan Debian GNU/Linux werken?

Debian GNU/Linux bevat ook de volledige broncode voor alle programma's die het bevat, waardoor het kan werken op alle systemen die door de Linux-kernel ondersteund worden. Raadpleeg de Linux FAQ voor meer details.

De huidige Debian GNU/Linux release, 12, bevat een complete binaire distributie voor de volgende architecturen:

  • amd64: dit zijn systemen die gebaseerd zijn op 64-bits CPU's van AMD met de AMD64-uitbreiding en alle CPU's van Intel met de EM64T-uitbreiding, en een gemeenschappelijke 64-bits gebruikersruimte.

  • arm64: ondersteunt de recentste door ARM aangestuurde 64-bits apparaten.

  • armel: little-endian ARM machines.

  • armhf: een alternatief voor armel voor ARMv7 machines met hard-float.

  • i386: dit gaat om systemen die gebaseerd zijn op Intel en compatibele processoren, waaronder de 386, 486, Pentium, Pentium Pro, Pentium II (zowel Klamath als Celeron) en Pentium III van Intel en de meeste compatibele processoren van AMD, Cyrix en anderen.

  • ia64: Intel IA-64 ("Itanium") computers.

  • mips: SGI's big-endian MIPS-systemen, Indy en Indigo2; mipsel: little-endian MIPS-machines, Digital DECstations.

  • powerpc: daaronder vallen sommige IBM/Motorola PowerPC-machines, waaronder de Apple Macintosh PowerMac modellen en de CHRP en PReP open-architectuur-machines.

  • ppc64el: een versie voor de 64-bits little-endian PowerPC met ondersteuning voor verschillende recente PowerPC/POWER processors.

  • s390x: een 64-bits versie voor IBM System z machines, ter vervanging van s390.

Momenteel wordt gewerkt aan de ontwikkeling van binaire distributies van Debian voor hurd-i386 (voor de GNU Hurd kernel op i386 32-bits PC's), mipsel64 (voor 64-bits MIPS in little-endian modus), powerpcspe (een versie voor de "Signal Processing Engine" hardware), sparc64 (voor 64-bits SPARC processors), sh (voor Hitachi SuperH processors) en x32 (voor amd64/x86_64 CPU's die werken met 32-bits pointers).

Ondersteuning voor de m68k-architectuur werd gestopt met de release van Etch (Debian 4.0), omdat ze niet beantwoorde aan de criteria die door de Release Managers van Debian vooropgesteld werden. Deze architectuur omvat Amiga's en ATARI's met een Motorola 680x0 processor voor x>=2; met MMU. Maar deze versie is nog steeds actief en kan nog geïnstalleerd worden, ook al maakt ze geen deel uit van deze officiële stabiele release en kan mogelijk voor toekomstige releases opnieuw geactiveerd worden.

Voor gelijkaardige redenen werd ondersteuning voor de hppa (Hewlett-Packard's PA-RISC machines) en alpha (Compaq/Digital's Alpha systemen) gestopt in de release van Squeeze (Debian 6.0). Ook in deze release werd arm en vervangen door de armel architectuur.

Ondersteuning voor de 32-bits s390-uitgave (s390) werd gestopt en vervangen door s390x in Jessie (Debian 8). Daarenboven moesten de versies voor IA-64 en Sparc weggelaten worden in deze release omdat te weinig ontwikkelaars beschikbaar waren om ze te ondersteunen.

Voor bijkomende informatie over de beschikbare architectuurgerelateerde versies (ports) kunt u de architectuur-pagina's op de website raadplegen.

Voor bijkomende informatie over het opstarten, de schijfindeling, het gebruiken van PCMCIA-(PC-kaart)apparaten en dergelijke zaken, volgt u best de instructies uit de Installatiehandleiding, die u op onze WWW-site vindt op https://www.debian.org/releases/stable/installmanual.

4.2. Welke kernels gebruikt Debian GNU/Linux?

Behalve voor Linux biedt Debian ook een volledige binaire distributie voor de volgende kernels van besturingssystemen:

  • FreeBSD: via de versies kfreebsd-amd64 en kfreebsd-i386, respectievelijk voor 64-bits PC's en 32-bits PC's. Deze versies (ports) werden voor het eerst uitgebracht in Debian 6.0 Squeeze als een technologische voorbeelduitgave. Zij maakten evenwel geen deel uit van de release van Debian 8 Jessie.

Daarnaast wordt ook nog gewerkt aan de volgende aanpassingen:

  • avr32, het geschikt maken (port) voor Atmel's 32-bits RISC architectuur,

  • hurd-i386, een versie voor 32-bits PC. Deze versie zal GNU Hurd gebruiken, het nieuwe besturingssysteem dat samengesteld wordt door de GNU groep.

  • sh, het geschikt maken (port) voor de Hitachi SuperH processors.

Er waren ook pogingen om de distributie geschikt te maken voor de NetBSD kernel met netbsd-i386 (voor 32-bits PC's) en netbsd-alpha (voor Alpha machines), maar deze versies werden nooit uitgebracht en zijn momenteel gestopt.

Voor bijkomende informatie over de beschikbare architectuurgerelateerde versies (ports) kunt u de architectuur-pagina's op de website raadplegen.

4.3. Hoe compatibel is Debian met andere Linux-distributies?

Ontwikkelaars van Debian communiceren met de ontwikkelaars van andere Linux-distributies om onderlinge binaire compatibiliteit te behouden tussen Linux-distributies. [1] De meeste commerciële Linux-producten functioneren evengoed onder Debian als op het systeem waarop zij gebouwd werden.

Debian GNU/Linux houdt zich aan de Linux Filesystem Hierarchy Standard. Voor sommige van de regels in deze standaard is er echter ruimte voor interpretatie, waardoor er kleine verschillen kunnen zijn tussen een Debian-systeem en andere Linux-systemen.

4.4. Hoe compatibel is de broncode van Debian met andere Unix-systemen?

Bij de meeste Linux-toepassingen is de broncode compatibel met andere Unix-systemen. Bijna alles wat beschikbaar is in System V Unix-systemen en in de vrije en commerciële van BSD afgeleide systemen, wordt ondersteund. In het Unix-bedrijf heeft een dergelijke bewering nauwelijks waarde, omdat er geen manier bestaat om ze te bewijzen. Op het gebied van softwareontwikkeling is volledige compatibiliteit vereist in plaats van een compatibiliteit in "bijna alle" gevallen. Daarom ontstond jaren geleden de behoefte aan standaarden en tegenwoordig is POSIX.1 (IEEE Standard 1003.1-1990) een van de belangrijkste standaarden voor broncodecompatibliteit in Unix-achtige besturingssystemen.

Het is de bedoeling dat Linux beantwoordt aan POSIX.1, maar de POSIX-standaarden kosten geld en de certificatie voor POSIX.1 (en FIPS 151-2) is behoorlijk duur. Dit bemoeilijkte de taak van Linux-ontwikkelaars om te werken aan volledige POSIX-conformiteit. De kosten verbonden aan de certificatie maken het niet waarschijnlijk dat Debian een officieel conformiteitscertificaat zal krijgen, zelfs als het volledig slaagde in de valideringssuite. (De valideringssuite is nu vrij beschikbaar, waardoor kan verwacht worden dat meer mensen zullen werken op POSIX.1-materies.)

Unifix GmbH (Braunschweig, Duitsland) ontwikkelde een Linux-systeem dat gecertificeerd werd als conform aan FIPS 151-2 (een uitbreiding van POSIX.1). Deze technologie was beschikbaar in de eigen distributie van Unifix onder de naam Unifix Linux 2.0, en in Linux-FT van Lasermoon.

4.5. Kan ik Debian-pakketten (".deb"-bestanden) gebruiken op mijn Red Hat/Slackware/... Linux-systeem? Kan ik Red Hat-pakketten (".rpm"-bestanden) gebruiken op mijn Debian GNU/Linux-systeem?

Verschillende Linux-distributies gebruiken verschillende indelingen voor hun pakketten en verschikkende programma's voor pakketbeheer.

Wat u wellicht kunt doen:

Er bestaat een programma om een Debian-pakket uit te pakken naar een Linux-computer waarop een "vreemde" distributie geïnstalleerd is. Dat zal meestal werken in die zin dat de bestanden uitgepakt zullen worden. Het omgekeerde is wellicht ook waar, hetgeen wil zeggen dat een programma om een pakket van Red Hat of Slackware uit te pakken op een computer die op Debian GNU/Linux gebaseerd is er wellicht in zal slagen het pakket uit te pakken en de meeste bestanden te plaatsen in de mappen waar ze thuis horen. Dit is in belangrijke mate een gevolg van het feit dat de Linux Filesystem Hierarchy Standard bestaat (en een brede navolging kent). Het pakket Alien wordt gebruikt voor het converteren van verschillende pakketindelingen.

Wat u wellicht niet wilt doen:

De meeste pakketbeheerders schrijven beheerbestanden als daarvan gebruik gemaakt wordt voor het uitpakken van een archief. Meestal zijn dit soort beheerbestanden niet gestandaardiseerd. Om die reden is het onvoorspelbaar welke effecten het uitpakken van een Debian-pakket op een "vreemde" computer zal hebben op het pakketbeheerssysteem van dat systeem (en zijn ze zeker niet bruikbaar). Evenzeer kunnen hulpprogramma's van andere distributies erin slagen om hun archieven uit te pakken op een Debian-systeem, maar wellicht zal het pakketbeheersysteem van Debian falen op het moment dat bepaalde pakketten moeten opgewaardeerd of verwijderd worden of misschien zelfs gewoon niet instaat zijn om te rapporteren welke pakketten exact aanwezig zijn op het systeem.

Een betere werkwijze:

De Linux File System Standard (en dus Debian GNU/Linux) schrijft voor dat de mappen onder /usr/local/ volledig onder de discretionaire bevoegdheid van de gebruiker vallen. Daarom kunnen gebruikers "vreemde" pakketten uitpakken naar deze map en hun configuratie, opwaardering en verwijdering individueel beheren.

4.6. Hoe moet ik een niet-Debian programma installeren?

Bestanden onder de map /usr/local/ vallen niet onder de controle van het pakketbeheersysteem van Debian. Het is daarom een goede gewoonte om de broncode van uw programma te plaatsen in /usr/local/src/. U zou bijvoorbeeld de bestanden voor een pakket "foo.tar" kunnen uitpakken in de map /usr/local/src/foo. Plaats, nadat u ze gecompileerd heeft, de binaire bestanden in /usr/local/bin/, de bibliotheken in /usr/local/lib/ en de configuratiebestanden in /usr/local/etc/.

Indien uw programma's en/of bestanden echt in een andere map geplaatst moeten worden, zou u ze nog steeds kunnen plaatsen in /usr/local/ en de passende symbolische koppelingen aanmaken van de vereiste locatie naar hun locatie in /usr/local/. U zou bijvoorbeeld de volgende koppeling kunnen maken

ln -s /usr/local/bin/foo /usr/bin/foo

Als u beschikt over een pakket met een copyright dat de verspreiding ervan toelaat, zou u in elk geval kunnen overwegen om er een pakket voor Debian van te maken en dit naar het Debian-systeem te uploaden. Richtlijnen over hoe u een pakketontwikkelaar kunt worden, zijn te vinden in het Beleidshandboek van Debian (Debian Policy manual - zie Paragraaf 12.1, “Welke andere documentatie bestaat er o en voor een Debian-systeem?”).



[1] De Linux Standard Base is een specificatie die het mogelijk moet maken om hetzelfde binaire pakket op verschillende distributies te gebruiken. Na re release van Jessie (Debian 8) heeft Debian het nastreven van LSB-compatibiliteit opgegeven. Raadpleeg dit bericht van 3 juli 2015 van Didier Raboud en de erop volgende discussie voor achtergrondinformatie.