Index: translations/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.xml =================================================================== --- translations/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.xml (revision 47769) +++ translations/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.xml (revision 47770) @@ -1,1427 +1,1286 @@ - - &linux; binaire compatibiliteit + + + + &linux; binaire compatibiliteit + - JimMockGeherstructureerd en delen bijgewerkt door + + + Jim + Mock + + Geherstructureerd en delen bijgewerkt door + + - Brian N.HandyOrigineel bijgedragen door - RichMurphey + + + Brian N. + Handy + + Origineel bijgedragen door + + + + + Rich + Murphey + + + - RenéLadanVertaald door + + + René + Ladan + Vertaald door + - - Overzicht - &os; levert binaire compatibiliteit met verscheidene andere - &unix; achtige besturingssystemen, waaronder &linux;. Op dit - moment kan de vraag gesteld worden waarom &os; nu precies - &linux;-binairen moet kunnen draaien. Het antwoord is dat veel - bedrijven en ontwikkelaars alleen ontwikkelen voor &linux;, omdat - dat het nieuwste hebbeding is in de wereld van - computers. Dat laat &os; gebruikers al zeurend achter bij - diezelfde bedrijven en ontwikkelaars om originele &os; versies - van hun applicaties. Het probleem is dat veel van deze bedrijven - zich niet goed realiseren hoeveel mensen hun product zouden - gebruiken als er ook &os; versies van waren en de meesten blijven - alleen voor &linux; ontwikkelen. Dus wat moet een &os; gebruiker - doen? Hier komt de &linux; binaire compatibiliteit van &os; om - de hoek kijken. + + Linux binaire compatibility + + + binaire compatibility + Linux + - In een notendop stelt de compatibiliteit &os; in staat om - rond de 90% van alle &linux; applicaties zonder wijzigingen te - draaien. Dit omvat applicaties zoals - &staroffice;, de &linux; versie van - &netscape;, - &adobe; &acrobat;, - &realplayer;, - &oracle;, - &wordperfect;, - Doom, - Quake en meer. Er wordt zelfs gemeld - dat in sommige gevallen &linux;-binairen beter presteren op &os; - dan op &linux;. + &os; levert binaire compatibiliteit met &linux;, + zodat gebruikers de meeste 32-bit &linux; binairen kunnen installeren + en gebruiken zonder eerst de binaire te moeten aanpassen. Er is + zelfs gerapporteerd dat in bepaalde situaties 32-bit &linux; + binairen op &os; beter presteren dan op &linux;. Er zijn echter enkele &linux;-specifieke besturingssysteemeigenschappen die niet door &os; ondersteund - worden. &linux;-binairen werken niet op &os; als ze overvloedig - gebruik maken van &i386; specifieke aanroepen, zoals het - aanzetten van de virtuele 8086 modus. + worden. Bijvoorbeeld, &linux;-binairen werken niet op &os; als ze + overvloedig gebruik maken van &i386; specifieke aanroepen, zoals het + aanzetten van de virtuele 8086 modus. Ook worden 64-bit &linux; + binairen op dit moment niet ondersteund. Na het lezen van dit hoofdstuk weet de lezer: Hoe &linux; binaire compatibiliteit op een systeem aan te zetten; Hoe aanvullende &linux; gedeelde bibliotheken te installeren; Hoe &linux; applicaties op een &os; systeem te installeren; De implementatiedetails van &linux; compatibiliteit in &os;. Aangeraden voorkennis: - Hoe extra software van derden te installeren (). + Hoe extra software van derden te + installeren. - Installatie + &linux; binaire compatabiliteit configureren - KLD (kernel loadable object) + Ports collectie - &linux; binaire compatibiliteit staat standaard niet aan. De - gemakkelijkste manier om deze functionaliteit aan te zetten is - door het linux KLD object (Kernel - LoaDable object) te laden. Deze module kan geladen - worden door het volgende commando als root - uit te voeren: + &linux; bibliotheken zijn standaard niet geinstalleerd en + &linux; binaire compatibiliteit staat standaard niet aan. &linux; + bibliotheken kunnen handmatig of vanuit de $os; Ports collectie worden + geinstalleerd. + Laad voor het bouwen van de port de &linux; kernel + module, anders zal de bouw mislukken:: + &prompt.root; kldload linux + Om te verifieren dat de module geladen is: + + &prompt.user; kldstat + Id Refs Address Size Name + 1 2 0xc0100000 16bd8 kernel + 7 1 0xc24db000 d000 linux.ko + + Het emulators/linux_base-c6 pakket of + port is de makkelijkste manier om een basis set van &linux; + bibliotheken en binairen op een &os; systeem te installeren. + Om de port te installeren: + + &prompt.root; printf "compat.linux.osrelease=2.6.18\n" >> /etc/sysctl.conf +&prompt.root; sysctl compat.linux.osrelease=2.6.18 +&prompt.root; pkg install emulators/linux_base-c6 + Als &linux; compatibiliteit altijd aan moet staan, dan moet de volgende regel aan /etc/rc.conf toegevoegd worden: linux_enable="YES" - Met &man.kldstat.8; kan gecontroleerd worden of de KLD - geladen is: - - &prompt.user; kldstat -Id Refs Address Size Name - 1 2 0xc0100000 16bd8 kernel - 7 1 0xc24db000 d000 linux.ko - kernelopties - COMPAT_LINUX - Als het om enige reden ongewenst of onmogelijk is de KLD te - laden, dan kan de &linux; binaire compatibiliteit statisch in de - kernel gecompileerd worden door + Gebruikers die statisch gelinkte &linux; binaire compabiliteit + prefereren kunnen de volgende optie options COMPAT_LINUX aan het kernelinstellingenbestand toe te voegen. Daarna kan de nieuwe kernel zoals beschreven in - geïnstalleerd worden. + gecomileerd en geïnstalleerd worden. - - &linux; runtime bibliotheken installeren + + Extra bibliotheken handmatig installeren - &linux; - - &linux; bibliotheken installeren + gedeelde bibliotheken - Dit kan op twee manieren gedaan worden: door de linux_base port te - gebruiken of door ze handmatig te - installeren. + Als een &linux; toepassing klaagt over ontbrekende gedeelde + bibliotheken na het configureren van &linux; binaire compatibiliteit, + bepaal dan welke gedeelde bibliotheken de &linux; binaire nodig heeft + en installeer ze handmatig. - - Installeren uit de linux_base port + Op een &linux; systeem, kan ldd worden + gebruikt om te bepalen welke gedeelde bibliotheken de applicatie + nodig heeft. Bijvoorbeeld, om te controleren welke gedeelde + bibliotheken linuxdoom nodig heeft, voer je dit + commando uit op een &linux; systeem dat Doom + heeft geïnstalleerd: - Portscollectie - - Dit is verreweg de gemakkelijkste weg om te bewandelen om de - runtime bibliotheken te installeren. Het is net als het installeren - van andere ports uit de Portscollectie. - Dit kan met het volgende commando: - - &prompt.root; cd /usr/ports/emulators/linux_base-f10 -&prompt.root; make install distclean - - - Op &os;-systemen vóór &os; 8.0 dient u de - port emulators/linux_base-fc4 in - plaats van emulators/linux_base-f10 te - gebruiken. - - - Nu is er werkende &linux; binaire compatibiliteit. - Sommige programma's kunnen klagen over onjuiste kleine - versies van de systeembibliotheken. Over het algemeen - schijnt dit echter geen probleem te zijn. - - - Er kunnen verschillende versies van de emulators/linux_base port - beschikbaar zijn, overeenkomend met verschillende versies - van verscheidene &linux; distributies. Het is verstandig - de port te installeren die het meest voldoet aan de eisen - van de &linux; applicaties die geïnstalleerd gaan - worden. - - - - - Bibliotheken handmatig installeren - - Als de Portscollectie niet is geïnstalleerd, kunnen - de bibliotheken met de hand geïnstalleerd worden. Om - alles te laten werken moeten de &linux; gedeelde bibliotheken - waarvan het programma afhankelijk is en de runtime linker - geïnstalleerd worden. Ook moet een shadow - root map aangemaakt worden, - /compat/linux, voor &linux; bibliotheken - op een &os; systeem. Elke gedeelde bibliotheek die wordt - geopend door &linux; programma's die op &os; draaien, kijken - eerst in deze boomstructuur. Dus als een &linux; programma - bijvoorbeeld /lib/libc.so laadt, - probeert &os; eerst - /compat/linux/lib/libc.so te openen, en - als die niet bestaat, probeert het - /lib/libc.so proberen. Gedeelde - bibliotheken moeten in de schaduwmapstructuur - geïnstalleerd worden in plaats van in de paden die het - &linux; ld.so rapporteert. - - In het algemeen geldt dat alleen de eerste paar keer - dat een &linux; binary wordt geïnstalleerd op een &os; - systeem naar de gedeelde bibliotheken gezocht wordt waar - &linux;-binairen van afhankelijk zijn. Na een tijd is de - verzameling van &linux; gedeelde bibliotheken op een systeem - voldoende groot om nieuw geïmporteerde &linux;-binairen - te kunnen draaien zonder enig extra werk. - - - - Extra gedeelde bibliotheken installeren - - gedeelde bibliotheken - - Wat als de linux_base port is - geïnstalleerd en een applicatie nog steeds klaagt over - ontbrekende gedeelde bibliotheken? Op zich zijn er twee - mogelijkheden (voor het opvolgen van deze instructies zijn - root rechten op een &os; systeem - vereist). - - Als er toegang is tot een &linux; systeem kan gekeken - worden welke gedeelde bibliotheken de applicatie nodig heeft - en kunnen ze gekopieerd worden naar het &os; systeem. Dit - wordt toegelicht in het volgende voorbeeld: - - - Stel dat FTP gebruikt is om de &linux; binary van - Doom op te halen en die op een - &linux; systeem staat waar toegang tot is. Dan kan met - ldd linuxdoom gecontroleerd worden welke - gedeelde bibliotheken er nodig zijn: - - &prompt.user; ldd linuxdoom + &prompt.user; ldd linuxdoom libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0 libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0 libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29 - symbolische links + + symbolische links + - Alle bestanden uit de laatste kolom zijn nodig en - moeten onder /compat/linux komen te - staat en de namen uit de eerste kolom moeten er als - symbolische links naar verwijzen. Dit betekent dat - uiteindelijk deze bestanden op een &os; systeem - staan: + Alle bestanden uit de laatste kolom zijn nodig en + moeten onder /compat/linux komen te + staat en de namen uit de eerste kolom moeten er als + symbolische links naar verwijzen. Dit betekent dat + uiteindelijk deze bestanden op een &os; systeem + staan: - /compat/linux/usr/X11/lib/libXt.so.3.1.0 + /compat/linux/usr/X11/lib/libXt.so.3.1.0 /compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0 /compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29 -
- - Als er al een &linux; gedeelde bibliotheek met een - groot revisienummer overeenstemmend met de eerste kolom - van de ldd uitvoer is, dan hoeft het - bestand uit de laatste kolom niet naar een systeem - gekopieerd te worden. Het bestand dat er al staat moet - werken. Het is aan te raden om de gedeelde bibliotheek - sowieso te kopiëren als het een nieuwere versie - is. De oude kan verwijderd worden, zolang de - symbolische link maar naar de nieuwe wijst. Dus als - deze bibliotheken op een systeem staan: + Als er al een &linux; gedeelde bibliotheek met een + groot revisienummer overeenstemmend met de eerste kolom + van de ldd uitvoer is, dan hoeft het + bestand uit de laatste kolom niet naar een systeem + gekopieerd te worden. Het bestand dat er al staat moet + werken. Het is aan te raden om de gedeelde bibliotheek + sowieso te kopiëren als het een nieuwere versie + is. De oude kan verwijderd worden, zolang de + symbolische link maar naar de nieuwe wijst. - /compat/linux/lib/libc.so.4.6.27 + Bijvoorbeeld, als deze gedeelde bibliotheken al op een &os; + systeem staan: + + /compat/linux/lib/libc.so.4.6.27 /compat/linux/lib/libc.so.4 -> libc.so.4.6.27 - en een nieuwe binary zegt een latere versie nodig - te hebben volgens de uitvoer van - ldd: + en een binary zegt een latere versie nodig te hebben + volgens de uitvoer van ldd: - libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29 + libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29 - Als slechts één of twee versies - verouderd zijn in het laatste cijfer, dan hoeft - /lib/libc.so.4.6.29 niet - gekopieerd te worden, omdat het programma goed moet - werken met de ietwat oudere versie. Als er echter - behoefte aan is, kan besloten worden om - libc.so sowieso te verplaatsen, - en dat resulteert in: + Omdat de huidige bibliotheek slechts één of twee versies + ouder is in het laatste cijfer, moet het programma nog steeds + goed werken met de ietwat oudere versie. Echter, het is veilig + om libc.so sowieso te vervangen met de nieuwere + versie: - /compat/linux/lib/libc.so.4.6.29 + /compat/linux/lib/libc.so.4.6.29 /compat/linux/libc.so.4 -> lbic.so.4.6.29 -
-
- - Het symbolische linkmechanisme is - alleen nodig voor - &linux;-binairen. De &os; runtime linker zorgt zelf - voor het kijken naar passende grote revisienummers en - daar hoeft geen zorg over te bestaan. -
-
-
-
+ In het algemeen geldt dat alleen de eerste paar keer + dat een &linux; binary wordt geïnstalleerd op een &os; + systeem naar de gedeelde bibliotheken gezocht wordt waar + &linux;-binairen van afhankelijk zijn. Na een tijd is de + verzameling van &linux; gedeelde bibliotheken op een systeem + voldoende groot om nieuw geïmporteerde &linux;-binairen + te kunnen draaien zonder enig extra werk. +
- - &linux; ELF-binairen installeren + + &linux; ELF-binairen installeren - - &linux; + + &linux; + ELF-binairen + - ELF-binairen - - ELF-binairen hebben soms een extra stap van branding nodig. Als er ongemerkte ELF-binairen worden gedraaid, ontstaat er een foutmelding zoals de volgende: &prompt.user; ./mijn-linux-elf-binary ELF binary type not known Abort Om de &os; kernel te helpen &os; ELF-binairen en &linux; binairen uit elkaar te houden, kan &man.brandelf.1; gebruikt worden. &prompt.user; brandelf -t Linux mijn-linux-elf-binary - GNU gereedschapskist + + GNU gereedschapskist + De GNU gereedschapskist plaatst nu automatisch de juiste merkinformatie in ELF-binairen , dus deze stap zou steeds overbodiger moeten worden in de toekomst. - Een willekeurige toepassing gebaseerd op Linux RPM + <title>Een toepassing gebaseerd op Linux RPM installeren - &os; heeft zijn eigen pakketdatabase die wordt gebruikt om alle - ports te volgen (ook &linux; ports). De &linux; RPM-database wordt dus - niet gebruikt (noch ondersteund). + Om een &linux; RPM-gebaseerde applicatie te + installeren, installeert u eerst de archivers/rpm + pakket of port. Eenmaal geïnstalleerd kan root deze opdracht gebruiken om + een .rpm te installeren: - Als u echter een willekeurige toepassing die op &linux; RPM is - gebaseerd moet installeren kan dit bereikt worden met: - &prompt.root; cd /compat/linux &prompt.root; rpm2cpio -q < /pad/naar/linux.archief.rpm | cpio -id - Draai daarna brandelf op de geïnstalleerde ELF-binairen (niet - de bibliotheken!). Een schone deïnstallatie is niet mogelijk, maar - het kan helpen met testen. + Draai ndien nodig daarna brandelf op de geïnstalleerde + ELF-binairen. Een schone deïnstallatie is niet mogelijk. De hostnaamresolver instellen + Als DNS niet werkt of de volgende melding ontstaat: + resolv+: "bind" is an invalid keyword resolv+: "hosts" is an invalid keyword - Als DNS niet werkt of de bovenstaande melding ontstaat, dan - moet /compat/linux/etc/host.conf ingesteld - worden met daarin: + stel /compat/linux/etc/host.conf + als volgt in: order hosts, bind multi on De volgorde geeft aan dat /etc/hosts als eerste doorzocht wordt en DNS als tweede. Als /compat/linux/etc/host.conf niet geïnstalleerd is, vinden &linux; applicaties /etc/host.conf van &os; en klagen ze over de incompatibele &os; syntaxis. bind moet verwijderd worden als er geen naamserver is ingesteld die gebruik maakt van /etc/resolv.conf.
+ - &mathematica; installeren + - BorisHollasBijgewerkt voor Mathematica 5.X door + + Boris + Hollas + Bijgewerkt voor Mathematica 5.X door + - - + + &mathematica; installeren + applicaties - &mathematica; Dit document beschrijft het installatieproces van de &linux; - versie van &mathematica; 5.X op een - &os; systeem. + versie van &mathematica; 9.X op een + &os; systeem. &mathematica; is een + commerciële, computatieonele software gebruikt in de + wetenschappelijke, engineering en wiskundige velden. Een 30 dagen + trial versie is downloaden van wolfram.com/mathematica. - De &linux; versie van &mathematica; - of &mathematica; for Students kan - direct bij Wolfram besteld worden op http://www.wolfram.com/. - De &mathematica; Installer draaien - Ten eerste dient &os; te weten dat de Linux-binairen van - &mathematica; de Linux ABI gebruiken. - De gemakkelijkste manier om dit te doen is om het standaard - ELF-merk op Linux te zetten voor alle ongemerkte binairen met - het commando: + Voor het installeren van &mathematica;, zorg ervoor dat de + textproc/linux-c6-aspell + pakket of port geïnstalleerd is en dat het &man.linprocfs.5; + bestandssysteem is gemonteerd. &prompt.root; sysctl kern.fallback_elf_brand=3 Dit laat &os; aannemen dat alle ongemerkte ELF-binairen de - Linux ABI gebruiken en dus zou de installer rechtstreeks van - de CD-ROM moeten kunnen draaien. + &linux; ABI gebruiken en dus zou de installer + rechtstreeks van de CD-ROM moeten kunnen draaien. - Kopieer nu het bestand MathInstaller - naar de harde schijf: + Het gedownloade bestand wordt opgeslagen in + /tmp/Mathematica_9.0.1_LINUX.sh. Word + de superuser en voer dit installatiebestand uit: - &prompt.root; mount /cdrom -&prompt.root; cp /cdrom/Unix/Installers/Linux/MathInstaller /localdir/ + &prompt.root; sh /tmp/Mathematica_9.0.1_LINUX.sh +Mathematica Secured 9.0.1 for LINUX Installer Archive - Vervang binnen dit bestand /bin/sh op de - eerste regel door /compat/linux/bin/sh. Dit - zorgt ervoor dat de installer door de Linux-versie van - &man.sh.1; wordt uitgevoerd. Vervang vervolgens met een - tekstverwerker of het onderstaande script in de volgende sectie - alle voorkomens van Linux) door - FreeBSD). Dit zorgt ervoor dat de - &mathematica; installer, dat - uname -s gebruikt om het besturingssysteem te - bepalen, om &os; als een Linux-achtig besturingssysteem te - behandelen. Het aanroepen van MathInstaller - zal nu &mathematica; installeren. - +Verifying archive integrity. +Extracting installer. ... + Wolfram Mathematica 9 Installer +Copyright (c) 1988-2013 Wolfram Research, Inc. All rights reserved. - - De &mathematica;-executables wijzigen +WARNING: Wolfram Mathematica is protected by copyright law and international treaties. Unauthorized +reproduction or distribution may result in severe civil and criminal +penalties and will be prosecuted to the maximum extent possible under law. - De shellscripts die &mathematica; - aanmaakte tijdens de installatie moeten gewijzigd worden voordat - u ze kunt gebruiken. Als u /usr/local/bin kiest als de map - om &mathematica;-executables in te - plaatsen, zult u in deze map symbolische links naar bestanden - genaamd math, - mathematica, - Mathematica, en - MathKernel aantreffen. Vervang met een - tekstverwerker of het volgende shellscript in elk van - deze Linux) door &os;: - - #!/bin/sh -cd /usr/local/bin -for i in math mathematica Mathematica MathKernel - do sed 's/Linux)/FreeBSD)/g' $i > $i.tmp - sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp > $i - rm $i.tmp - chmod a+x $i -done +Enter the installation directory, or press ENTER to select /usr/local/Wolfram/Mathematica/9.0: +> +Now installing... +*********************** +Installation complete. - &mathematica; wachtwoord opvragen - - - Ethernet - - MAC-adres - - - Wanneer u &mathematica; voor de - eerste keer start, zal u om een wachtwoord gevraagd worden. Als - u nog geen wachtwoord van Wolfram heeft verkregen, draait u het - programma mathinfo in de installatiemap om uw - machine-ID te verkrijgen. Dit machine-ID is - alleen op het MAC-adres van uw eerste Ethernetkaart gebaseerd, - zodat u uw kopie van &mathematica; - niet op andere machines kunt draaien. - - Bij een registratie bij Wolfram, per email, telefoon of - fax, wordt het machine ID opgegeven en zij - reageren met een overeenkomstig wachtwoord dat uit groepen - getallen bestaat. - - - Het &mathematica; frontend over een netwerk draaien &mathematica; gebruikt enkele speciale lettertypen om tekens af te beelden die niet aanwezig zijn in een standaard lettertypeverzameling (integralen, sommen, Griekse letters, enzovoort). Het X-protocol vereist dat deze lettertypen lokaal worden geïnstalleerd. Dit betekent dat deze lettertypen gekopieerd moeten worden vanaf de CD-ROM of vanaf een host met &mathematica; erop naar de lokale machine. Deze lettertypen worden meestal opgeslagen in /cdrom/Unix/Files/SystemFiles/Fonts op de CD-ROM of in /usr/local/mathematica/SystemFiles/Fonts op de harde schijf. De eigenlijke lettertypen staan in de submap Type1 en X. Er zijn verschillende manieren om ze te installeren, zoals hieronder staat beschreven. De eerste manier is om ze te kopiëren in één van de bestaande lettertypenmappen in /usr/X11R6/lib/X11/fonts. Hiertoe dient fonts.dir bewerkt te worden door de namen van de lettertypen eraan toe te voegen het aantal lettertypen op de eerste regel te veranderen. Als alternatief kan ook eenvoudig &man.mkfontdir.1; in de map gedraaid worden waar de lettertypen heen zijn gekopieerd. De tweede manier om dit te doen is door de mappen naar /usr/X11R6/lib/X11/fonts te kopiëren: &prompt.root; cd /usr/X11R6/lib/X11/fonts &prompt.root; mkdir X &prompt.root; mkdir MathType1 &prompt.root; cd /cdrom/Unix/Files/SystemFiles/Fonts &prompt.root; cp X/* /usr/X11R6/lib/X11/fonts/X &prompt.root; cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1 &prompt.root; cd /usr/X11R6/lib/X11/fonts/X &prompt.root; mkfontdir &prompt.root; cd ../MathType1 &prompt.root; mkfontdir Voeg nu de nieuwe lettertypenmappen toe aan het lettertypenpad: &prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/X &prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1 &prompt.root; xset fp rehash Als de &xorg; server gebruikt wordt, kunnen deze lettertypenmappen automatisch geladen worden door ze aan xorg.conf toe te voegen. lettertypen Als er nog geen map /usr/X11R6/lib/X11/fonts/Type1 bestaat, kan de naam van de map MathType1 in het bovenstaande voorbeeld veranderd worden naar Type1. + --> + + + + Dan + Pelleg + Bijgedragen door + -
+ - + &matlab; installeren applicaties - &matlab; Dit document beschrijft het installatieproces van de &linux; versie van &matlab; 6.5 op een &os; systeem. Het werkt best goed, met uitzondering van de &java.virtual.machine; (zie ). De &linux; versie van &matlab; kan - besteld worden bij The MathWorks op http://www.mathworks.com. Er dient ook een - licentiebestand of instructies hoe dat te maken te zijn. Het is - belangrijk om Maplesoft te schrijven om ze te laten weten dat een + besteld worden bij The MathWorks op MathWorks. + Het is belangrijk om Maplesoft te schrijven om ze te laten weten dat een echte &os; versie gewenst is! &matlab; installeren Om &matlab; te installeren: Laad de installatie-CD-ROM en koppel die aan. Start het - installatiescript als root: + installatiescript als root: &prompt.root; /compat/linux/bin/sh /cdrom/install Het is een grafisch installatieprogramma. Als er foutmeldingen verschijnen dat het programma geen scherm kan openen, kan setenv HOME - ~GEBRUIKER + ~GEBRUIKER uitgevoerd worden, waar GEBRUIKER de gebruiker is waarmee &man.su.1; is gedaan. Als om de &matlab; rootmap wordt gevraagd, dient /compat/linux/usr/local/matlab opgegeven te worden. Voer op de commandoregel het volgende uit om de rest van het installatieproces gemakkelijk te houden: set MATLAB=/compat/linux/usr/local/matlab. Wijzig het licentiebestand zoals aangegeven tijdens het verkrijgen van de licentie voor &matlab;. Dit bestand kan van tevoren gemaakt worden met een tekstverwerker en door het te kopiëren naar $MATLAB/license.dat voordat het installatieprogramma vraagt om het te bewerken. Maak het installatieproces af. Nu is de installatie van &matlab; compleet. De volgende stappen lijmen het aan het &os; systeem. Licentiebeheerder starten Maak symbolische links voor de scriptbestanden van de licentiebeheerder: &prompt.root; ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW &prompt.root; ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMW Maak een opstartbestand in /usr/local/etc/rc.d/flexlm. Onderstaand voorbeeld is een gewijzigde versie van het meegeleverde $MATLAB/etc/rc.lm.glnx86. De wijzigingen omvatten bestandslocaties en het starten van de licentiebeheerder onder &linux;-emulatie. #!/bin/sh case "$1" in start) if [ -f /usr/local/etc/lmboot_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u gebruikersnaam && echo 'MATLAB_lmgrd' fi ;; stop) if [ -f /usr/local/etc/lmdown_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1 fi ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac exit 0 Het bestand moet uitvoerbaar zijn: &prompt.root; chmod +x /usr/local/etc/rc.d/flexlm Ook moet bovenstaande gebruikersnaam vervangen worden door een geldige gebruikersnaam op het systeem (maar niet door root). Start de licentiebeheerder op met het commando: &prompt.root; service flexlm start De &java; runtime-omgeving linken Verander de &java; Runtime Environment Link naar een die werkt op &os;: &prompt.root; cd $MATLAB/sys/java/jre/glnx86 &prompt.root; unlink jre; ln -s ./jre1.1.8 ./jre &matlab; opstartscript maken Plaats het volgende startscript in /usr/local/bin/matlab: #!/bin/sh /compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@" Geef vervolgens het commando chmod +x /usr/local/bin/matlab. - Afhankelijk van de versie van emulators/linux_base, kunnen er - fouten optreden als dit script draait. Om dat te voorkomen, - dient in + Afhankelijk van de versie van + emulators/linux_base, + kunnen er fouten optreden als dit script draait. Om dat te + voorkomen, dient in /compat/linux/usr/local/matlab/bin/matlab de regel: if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then - (in versie 13.0.1 staat dit op regel 410) veranderd te - worden in: + veranderd te worden in: if test -L $newbase; then &matlab; afsluitscript maken Het volgende is nodig om een probleem op te lossen dat samenhangt met het onjuist afsluiten van &matlab;. Maak het bestand $MATLAB/toolbox/local/finish.m dat alleen de volgende regel bevat: ! $MATLAB/bin/finish.sh $MATLAB$ is hier letterlijk bedoeld. In dezelfde map staan de bestanden finishsav.m en finishdlg.m, die de mogelijkheid geven om de werkomgeving te bewaren vóór het afsluiten. Als één van deze scripts gebruikt wordt, dient de bovenstaande regel direct na het commando save ingevoegd te worden. Maak het bestand $MATLAB/bin/finish.sh, dat het volgende bevat: #!/compat/linux/bin/sh (sleep 5; killall -1 matlab_helper) & exit 0 Maak het bestand uitvoerbaar: &prompt.root; chmod +x $MATLAB/bin/finish.sh &matlab; gebruiken Nu kan met matlab het programma gestart worden. - &oracle; installeren + Terwijl de Oracle website onduidelijk is, is het installatie script + duidelijk: U probeert 64-bits Oracle installeren op een 32-bits + besturingssysteem. Dit wordt niet ondersteund en zal niet werken. + + - MarcelMoolenaarBijgedragen door - + + Marcel + Moolenaar + Bijgedragen door + - + - + &oracle; installeren applicaties - Oracle - - Voorwoord + Hieronder wordt het installatieproces van + &oracle; 8.0.5 en + &oracle; 8.0.5.1 Enterprise Edition + voor &linux; op een &os;-machine beschreven. - Hieronder wordt het installatieproces van - &oracle; 8.0.5 en - &oracle; 8.0.5.1 Enterprise - Edition voor &linux; op een &os;-machine - beschreven. - - De &linux;-omgeving installeren - Uit de Portscollectie dienen emulators/linux_base en devel/linux_devtools - geïnstalleerd te zijn. Als er problemen zijn met deze - ports, kan het zijn dat de pakketten of oudere versies uit de - Portscollectie gebruikt moeten worden. + Uit de Portscollectie dient emulators/linux_base + geïnstalleerd te zijn. Om de intelligente agent te draaien, moet ook het Red Hat Tcl package geïnstalleerd worden: tcl-8.0.3-20.i386.rpm. Het algemene commando om pakketten te installeren met de officiële RPM port (archivers/rpm) is: &prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm package De installatie van het package hoort foutloos te verlopen. De &oracle;-omgeving creëren Voordat &oracle; geïnstalleerd kan worden, moet een juiste omgeving opgezet worden. Dit document beschrijft alleen welke speciale dingen gedaan moeten worden om &oracle; voor &linux; op &os; te draaien, en niet wat beschreven staat in de &oracle; installatiehandleiding. Kerneloptimalisatie - kerneloptimalisatie + + kerneloptimalisatie + Zoals beschreven staat in de &oracle; installatiehandleiding moet de maximale grootte van het gedeelde geheugen ingesteld worden. Op &os; moet SHMMAX niet gebruikt worden. SHMMAX wordt slechts uit SHMMAXPGS en PGSIZE berekend. Daarom dient SHMMAXPGS gedefinieerd te worden. Alle andere opties kunnen gebruikt worden zoals in de handleiding staat beschreven. Bijvoorbeeld: options SHMMAXPGS=10000 options SHMMNI=100 options SHMSEG=10 options SEMMNS=200 options SEMMNI=70 options SEMMSL=61 Deze opties kunnen naargelang het gebruik van &oracle; ingesteld worden. Ook de volgende opties dienen in het kernelinstellingenbestand te staan: options SYSVSHM #SysV gedeeld geheugen options SYSVSEM #SysV semaforen options SYSVMSG #SysV interprocescommunicatie &oracle; account - Creeër een oracle account op - dezelfde manier als elk ander account. Het - oracle account is alleen bijzonder in - het opzicht dat het een &linux; shell moet hebben. Dat kan - door /compat/linux/bin/bash toe te voegen - aan /etc/shells en de shell voor het - oracle account in te stellen op + Creeër een user account om te gebruiken als het + oracle account. Voeg + /compat/linux/bin/bash toe te aan + /etc/shells en stel de shell voor het + oracle account in op /compat/linux/bin/bash. Omgeving Naast de normale &oracle; variabelen als ORACLE_HOME en ORACLE_SID moeten de volgende omgevingsvariabelen ingesteld worden: - + - Variabele - Waarde LD_LIBRARY_PATH - $ORACLE_HOME/lib CLASSPATH - $ORACLE_HOME/jdbc/lib/classes111.zip PATH - /compat/linux/bin; -/compat/linux/sbin; -/compat/linux/usr/bin; -/compat/linux/usr/sbin; -/bin; -/sbin; -/usr/bin; -/usr/sbin; -/usr/local/bin; -$ORACLE_HOME/bin + /compat/linux/sbin; + /compat/linux/usr/bin; + /compat/linux/usr/sbin; + /bin; + /sbin; + /usr/bin; + /usr/sbin; + /usr/local/bin; + $ORACLE_HOME/bin Het is aan te raden om alle omgevingsvariabelen in .profile in te stellen. Een volledig voorbeeld is: ORACLE_BASE=/oracle; export ORACLE_BASE ORACLE_HOME=/oracle; export ORACLE_HOME LD_LIBRARY_PATH=$ORACLE_HOME/lib export LD_LIBRARY_PATH ORACLE_SID=ORCL; export ORACLE_SID ORACLE_TERM=386x; export ORACLE_TERM CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip export CLASSPATH PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin export PATH &oracle; installeren Wegens een kleine inconsistentie in de &linux; emulator moet de map .oracle aangemaakt worden in /var/tmp voordat het installatieprogramma wordt gestart. De gebruiker oracle moet de eigenaar van deze map zijn. Nu hoort &oracle; zonder problemen te installeren. Bij problemen dienen eerst de &oracle; distributie en/of de instellingen gecontroleerd te worden! Nadat &oracle; is geïnstalleerd, moeten de patches uit de volgende twee secties geïnstalleerd worden. Een veelvoorkomend probleem is dat de adapter voor het TCP-protocol niet goed is geïnstalleerd. De consequentie daarvan is dat er geen TCP-listeners gestart kunnen worden. De volgende acties helpen om dit probleem op te lossen: &prompt.root; cd $ORACLE_HOME/network/lib &prompt.root; make -f ins_network.mk ntcontab.o &prompt.root; cd $ORACLE_HOME/lib &prompt.root; ar r libnetwork.a ntcontab.o &prompt.root; cd $ORACLE_HOME/network/lib &prompt.root; make -f ins_network.mk install Hierna dient root.sh nogmaals te draaien! <filename>root.sh</filename> patchen Als &oracle; geïnstalleerd wordt, worden sommige acties die als - root moeten worden uitgevoerd + root moeten worden uitgevoerd geregistreerd in een shellscript met de naam root.sh. Dit script komt in de map orainst te staan. De volgende patch dient uitgevoerd te worden op root.sh om het de juiste locatie van chown te laten gebruiken of als alternatief kan het script onder een originele &linux; shell gedraaid worden *** orainst/root.sh.orig Tue Oct 6 21:57:33 1998 --- orainst/root.sh Mon Dec 28 15:58:53 1998 *************** *** 31,37 **** # This is the default value for CHOWN # It will redefined later in this script for those ports # which have it conditionally defined in ss_install.h ! CHOWN=/bin/chown # # Define variables to be used in this script --- 31,37 ---- # This is the default value for CHOWN # It will redefined later in this script for those ports # which have it conditionally defined in ss_install.h ! CHOWN=/usr/sbin/chown # # Define variables to be used in this script Als &oracle; niet vanaf een CD-ROM wordt geïnstalleerd, kan de broncode van root.sh aangepast worden. Die heet rthd.sh en staat in de map orainst in de broncodestructuur. genclntsh patchen Het script genclntsh wordt gebruikt om é´n enkele gedeelde bibliotheek voor de cliënt aan te maken. Het wordt gebruikt tijdens het maken van de demonstraties. Met de volgende patch wordt de definitie van PATH uitgecommentarieerd: *** bin/genclntsh.orig Wed Sep 30 07:37:19 1998 --- bin/genclntsh Tue Dec 22 15:36:49 1998 *************** *** 32,38 **** # # Explicit path to ensure that we're using the correct commands #PATH=/usr/bin:/usr/ccs/bin export PATH ! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH # # each product MUST provide a $PRODUCT/admin/shrept.lst --- 32,38 ---- # # Explicit path to ensure that we're using the correct commands #PATH=/usr/bin:/usr/ccs/bin export PATH ! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH # # each product MUST provide a $PRODUCT/admin/shrept.lst &oracle; draaien Als de instructies worden gevolgd, draait &oracle; als op &linux; zelf. + ?> Gevorderde onderwerpen Hier wordt beschreven hoe de &linux; binaire compatibiliteit werkt. Het meeste van wat nu volgt is sterk gebaseerd op een e-mailbericht van Terry Lambert tlambert@primenet.com aan &a.chat; (Message ID: <199906020108.SAA07001@usr09.primenet.com>). - - Hoe werkt het? + uitvoerklasselader - uitvoerklasselader + &os; heeft een abstractie met de naam execution + class loader. Dit is een wig in de systeemaanroep + &man.execve.2;. - &os; heeft een abstractie met de naam execution - class loader. Dit is een wig in de systeemaanroep - &man.execve.2;. + Vroeger onderzocht de &unix; loader het magische getal + (in het algemeen de eerste 4 of 8 bytes van het bestand) om te + zien of het een binary was die het systeem kende en als dat het + geval was laadde het de binaire loader. - Wat er gebeurt is dat &os; een lijst van loaders heeft, in - plaats van een enkele loader die terugvalt op de - #! loader voor het draaien van elke - shellinterpreter of shellscript. + Als het niet het binaire type voor het systeem was, faalde + de aanroep naar &man.execve.2; en probeerde de shell het als + shellopdrachten uit te voeren. Deze aanname was een standaard + voor wat de huidige shell ook is. - Vroeger onderzocht de enige loader op het &unix; platform - het magische getal (in het algemeen de eerste 4 of 8 bytes van - het bestand) om te zien of het een binary was die het systeem - kende en als dat het geval was laadde het de binaire - loader. + Later werd er een hack gemaakt voor &man.sh.1; om de eerste + twee tekens te onderzoeken en als die bestonden uit + :\n voerde het in plaats hiervan de + &man.csh.1; shell uit. - Als het niet het binaire type voor het systeem was, faalde - de aanroep naar &man.execve.2; en probeerde de shell het als - shellopdrachten uit te voeren. + &os; heeft een lijst van loaders, in plaats van een enkele + loader die terugvalt op de #! loader voor + het draaien van elke shellinterpreter of shellscript. - Deze aanname was een standaard voor wat de huidige - shell ook is. + + ELF + - Later werd er een hack gemaakt voor &man.sh.1; om de eerste - twee tekens te onderzoeken en als die bestonden uit - :\n voerde het in plaats hiervan de - &man.csh.1; shell uit (het idee is dat SCO de hack als eerste - maakte). + + Solaris + - Wat &os; nu doet is door een lijst van loaders gaan - met een generieke #! loader die kennis heeft - van interpreters in de zin van de karakters die volgen op de - volgende witruimte tot de laatste, met uiteindelijk een - terugval op /bin/sh. + Voor &linux; ABI-ondersteuning ziet &os; het magische getal + als een ELF-binary. De ELF loader zoekt naar een gespecialiseerd + merk, dat is een commentaargedeelte in het + ELF-beeld is en dat niet aanwezig is in SVR4/&solaris; + ELF-binairen. - ELF + Om &linux;-binairen werkend te krijgen, moeten ze + gemerkt worden als het type + Linux met &man.brandelf.1;: - Voor &linux; ABI-ondersteuning ziet &os; het magische getal - als een ELF-binary (het maakt op dit punt geen onderscheid - tussen &os;, &solaris;, &linux; of elk ander besturingssysteem - dat een ELF-beeldtype heeft). + &prompt.root; brandelf -t Linux file - &solaris; + Als dit gedaan is, ziet de ELF loader het + Linux-merk in het bestand. - De ELF loader zoekt naar een gespecialiseerd - merk, dat een commentaargedeelte in het - ELF-beeld is en dat niet aanwezig is in SVR4/&solaris; - ELF-binairen. + + ELF + merken + - Om &linux;-binairen werkend te krijgen, moeten ze - gemerkt worden als het type - Linux met &man.brandelf.1;: + Als de ELF loader het Linux-merk + tegenkomt, verplaatst de loader een pointer in de + proc-structuur. Alle systeemaanroepen + worden met deze pointer geïndexeerd. Ook wordt het proces + gemerkt voor speciale behandeling door de valstrikvector van de + signaal-trampolinecode samen met nog meer (kleine) aanpassingen + die door de &linux; kernelmodule worden afgehandeld. - &prompt.root; brandelf -t Linux bestand + De &linux; systeemaanroep vector bevat naast andere dingen een + lijst van sysent[]-ingangen waarvan de adressen + in de kernelmodule staan. - Als dit gedaan is, ziet de ELF loader het - Linux-merk in het bestand. + Als een systeemaanroep door de &linux;-binary wordt + aangeroepen, verwijdert de valstrikcode de referentie aan de + functiepointer van de systeemaanroep en geeft die de + ingangspunten van de systeemaanroep van &linux; en niet van + &os;. - - ELF + Verder reroot de &linux;-modus + dynamisch lookups. Dit is wat de optie + voor het aankoppelen van bestandssystemen effectief doet. + Eerst wordt een poging gedaan om het bestand in de map + /compat/linux/origineel-pad + op te zoeken en vervolgens alleen als dat + mislukt, wordt het bestand in + /origineel-pad + opgezocht. Dit zorgt ervoor dat binairen die andere binairen + nodig hebben kunnen draaien. Zo kan bijvoorbeeld de + &linux;-gereedschapskist geheel onder &linux; ABI-ondersteuning + draaien. Dit betekent ook dat &linux;-binairen &os;-binairen + kunnen laden en draaien als er geen overeenkomende + &linux;-binairen zijn en dat er een &man.uname.1;-opdracht in + de mappenstructuur /compat/linux gezet kan + worden om er zeker van te zijn dat &linux;-binairen niet kunnen + weten dat ze niet op &linux; draaien. - merken - + Effectief bevindt er zich een &linux;-kernel in de + &os;-kernel. De verschillende onderliggende functies die alle + functies implementeren die de kernel aanbiedt, zijn dezelfde + tabelingangen voor de systeemaanroepen van &os; als van + &linux;: bestandssysteembewerkingen, bewerkingen op het + virtuële geheugen, signaalaflevering, System V IPC, + enzovoort. Het enige verschil is dat &os;-binairen de + lijm functies voor &os; krijgen en dat de + &linux;-binairen de lijm-functies voor + &linux; krijgen. De lijm-functies van &os; + zijn statisch gelinkt in de kernel en de + lijm-functies van &linux; kunnen zowel statisch + gelinkt worden als dat ze door een kernelmodule worden benaderd. - Als de ELF loader het Linux-merk - tegenkomt, verplaatst de loader een pointer in de - proc-structuur. Alle systeemaanroepen - worden met deze pointer geïndexeerd (in een traditioneel - &unix; systeem is dit de - sysent[]-structuurarray, die de - systeemaanroepen bevat). Ook wordt het proces gemerkt voor - speciale behandeling door de valstrikvector van de - signaal-trampolinecode samen met nog meer (kleine) aanpassingen - die door de &linux; kernelmodule worden afgehandeld. - - De &linux; kernelmodule bevat naast andere dingen een lijst - van sysent[]-ingangen waarvan de adressen - in de kernelmodule staan. - - Als een systeemaanroep door de &linux;-binary wordt - aangeroepen, verwijdert de valstrikcode de referentie aan de - functiepointer van de systeemaanroep en geeft die de - ingangspunten van de systeemaanroep van &linux; en niet van - &os;. - - Verder reroot de &linux;-modus - dynamisch lookups. Dit is wat de optie - (niet het unionfs - bestandssysteemtype!) voor het aankoppelen van bestandssystemen - effectief doet. Eerst wordt een poging gedaan om het bestand - in de map - /compat/linux/origineel-pad - op te zoeken en vervolgens alleen als dat - mislukt, wordt het bestand in - /origineel-pad - opgezocht. Dit zorgt ervoor dat binairen die andere binairen - nodig hebben kunnen draaien (zo kan bijvoorbeeld de - &linux;-gereedschapskist geheel onder &linux; ABI-ondersteuning - draaien). Dit betekent ook dat &linux;-binairen &os;-binairen - kunnen laden en draaien als er geen overeenkomende - &linux;-binairen zijn en dat er een &man.uname.1;-opdracht in - de mappenstructuur /compat/linux gezet kan - worden om er zeker van te zijn dat &linux;-binairen niet kunnen - weten dat ze niet op &linux; draaien. - - Effectief bevindt er zich een &linux;-kernel in de - &os;-kernel. De verschillende onderliggende functies die alle - functies implementeren die de kernel aanbiedt, zijn dezelfde - tabelingangen voor de systeemaanroepen van &os; als van - &linux;: bestandssysteembewerkingen, bewerkingen op het - virtuële geheugen, signaalaflevering, System V IPC, - enzovoort. Het enige verschil is dat &os;-binairen de - lijm functies voor &os; krijgen en dat de - &linux;-binairen de lijm-functies voor - &linux; krijgen (de meeste oudere besturingssystemen hadden - alleen hun eigen lijm-functies: adressen - van functies die in een statische globale - sysent[] structuurarray werden opgeslagen, - in plaats van adressen van functies waarvan dynamisch een - geïnitialiseerde pointer wordt verwijderd in de - proc-structuur van het proces dat de aanroep - doet). - - Welke is de eigenlijke &os; ABI? Dat maakt niet uit. - Eigenlijk is het enige verschil dat (op dit moment; dit kan - eenvoudig veranderen in een toekomstige uitgave, en dat gebeurt - waarschijnlijk na deze uitgave) de - lijm-functies van &os; statisch gelinkt - zijn in de kernel en dat de lijm-functies - van &linux; zowel statisch gelinkt kunnen worden als dat ze - door een kernelmodule worden benaderd. - - Maar is dit nu echt emulatie? Nee. Het is een - ABI-implementatie, geen emulatie. Er is geen emulator (of - simulator, om de volgende vraag voor te zijn) bij - betrokken. - - Dus waarom wordt het dan soms - &linux;-emulatie genoemd? Om het moeilijk te - maken om &os; te verkopen! Serieus, het is zo omdat de - historische implementatie in een tijd werd gedaan toen er echt - geen ander woord was om te beschrijven wat er aan de hand was, - om te zeggen dat &os; &linux;-binairen draaide was niet waar - als de code niet in de kernel gecompileerd werd of als een - module geladen werd en er moest een woord zijn voor hetgeen - geladen werd. Vandaar de &linux;-emulator. - + Technisch gezien is dat niet echt emulatie het is een + ABI-implementatie. Het wordt het soms + &linux;-emulatie genoemd omdat de historische + implementatie in een tijd werd gedaan toen er echt geen ander + woord was om te beschrijven wat er aan de hand was. Om te zeggen + dat &os; &linux;-binairen draaide was niet waar omdat de code + niet in de kernel gecompileerd werd.