Inhoudsopgave
De NetBSD port voor i386 machines kan een groot aantal Linux programma's draaien met behulp van de Linux emulatielaag. Over het algemeen denkt men bij emulatie aan iets langzaams en inefficiënts omdat de meeste emulaties hardware-instructies moeten reproduceren en zelfs volledige architecturen (meestal van oude machines). In het geval van Linux emulatie is dit een heel ander verhaal: het is alleen een dunne softwarelaag voor system calls die vaak sterk overeenkomstig zijn tussen de twee systemen. De applicatiecode wordt met volledige snelheid uitgevoerd door uw CPU, dus u krijgt geen in snelheid gedegradeerde programma's. Het verschil met NetBSD programma's zult u waarschijnlijk niet eens merken.
Dit hoofdstuk legt uit hoe u de Linux emulatie kunt configureren aan de hand van een voorbeeld: de installatie van Acrobat Reader versie 4.
De installatie van de Linux emulatie is beschreven in de compat_linux(8) man page; met het package systeem zijn slechts twee stappen nodig.
Configuratie van de kernel.
Installatie van de Linux libraries.
Als u een GENERIC kernel gebruikt hoeft u niks te doen omdat Linux emulatie dan al actief is.
Als u een aangepaste kernel gebruikt moeten de volgende opties in de kernelconfiguratie staan:
option COMPAT_LINUX option EXEC_ELF32
als u een kernel gecompileerd heeft met deze opties kunt u de vereiste software gaan installeren.
U kunt de Linux libraries uit elke Linux distributie halen, met de voorwaarde dat de distributie niet te oud is, maar het is aan te raden het package systeem te gebruiken voor een automatische installatie van de libraries (de SuSE libraries worden gebruikt). Het volgende wordt gedaan wanneer u de libraries installeert:
Er wordt een tweede root directory
gemaakt die gebruikt zal worden voor Linux programma's.
Dit is de directory /emul/linux/
.
De Linux programma's die gebruik maken van de emulatie
gebruiken deze directory als hun root directory.
De gedeelde bibliotheken zijn geïnstalleerd.
De meeste applicaties zijn dynamisch gelinkt en benodigen
de noodzakelijke libraries.
Laten we Acrobat Reader als
voorbeeld nemen. Als u naar de
/usr/pkgsrc/print/acroread
directory
gaat en daar het make depends commando
uitvoert krijgt u de volgende uitvoer:
===> acroread-4.0 requires Linux glibc2 libraries - see compat_linux(8).
Beide operaties zullen afgehandeld worden door het package systeem zonder de noodzaak van handmatig ingrijpen van de gebruiker (ik veronderstel dat u al van de package systeem begint te houden...)
Om de libraries te installeren moet een programma geïnstalleerd
worden dat om kan gaan met het RPM formaat:
het is rpm-2.5.4
, wat gebruikt zal worden
om de SuSE libraries uit te pakken.
Daarna moet de suse_base
package
geïnstalleerd worden.
De SuSE RPM bestanden kunnen gedownload worden door het package
systeem of u kunt ze, als u een SuSE CD heeft, kopieëren
naar de /usr/pkgsrc/distfiles/suse
directory
en dan de make en make install
commado's uitvoeren.
Installeer op dezelfde wijze suse_compat
,
suse_libc5
en suse_x11
.
De uiteindelijke configuratie is:
#
pkg_info -a | grep suse
suse_base-6.1p1 Linux compatibility package suse_x11-6.1p1 Linux compatibility package for X11 binaries suse_compat-6.1p1 Linux compatibility package with old shared libraries suse_libc5-6.1p1 Linux compatibility package for libc5 binaries
Nu is alles gereed voor de installatie van het
Acrobat Reader programma (of andere
Linux programma's). Ga naar
/usr/pkgsrc/print/acroread/
en voer de gewoonlijke commando's uit:
make make install
De Acrobat Reader installatiescripts zullen vragen of u de licentie wilt accepteren. Als u dit gedaan heeft kunt u het programma starten.
Als we de installatie van de Linux libraries analyseren
zullen we zien dat /emul/linux
een
symbolische link is die verwijst naar
/usr/pkg/emul/linux
, waarin de volgende
directories aangemaakt zijn:
bin/ boot/ cdrom/ dev/ etc/ floppy/ home/ lib/ mnt/ opt/ proc/ root/ sbin/ usr/
verwijs altijd naar /emul/linux
en niet naar
/usr/pkg/emul/linux
. De laatste directory
is inherent aan de huidige implementatie en dit zou in de toekomst
kunnen veranderen.
Hoeveel schijfruimte is er nodig voor de Linux emulatie software? Op mijn systeem krijg ik de volgende uitkomst:
#
cd /usr/pkg/emul
#
du -k linux
... 60525 linux/
Acrobat Reader, het programma, is
in de gewoonlijke directory voor package binaries geïnstalleerd:
/usr/pkg/bin/
.