aboutsummaryrefslogtreecommitdiff
path: root/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml')
-rw-r--r--nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml1480
1 files changed, 0 insertions, 1480 deletions
diff --git a/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml
deleted file mode 100644
index 90279d9afd..0000000000
--- a/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml
+++ /dev/null
@@ -1,1480 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
-<!--
- The FreeBSD Dutch Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml
- %SRCID% 39544
--->
-
-<chapter id="linuxemu">
- <chapterinfo>
- <authorgroup>
- <author>
- <firstname>Jim</firstname>
- <surname>Mock</surname>
- <contrib>Geherstructureerd en delen bijgewerkt door </contrib>
- </author>
- <!-- 22 Mar 2000 -->
- </authorgroup>
- <authorgroup>
- <author>
- <firstname>Brian N.</firstname>
- <surname>Handy</surname>
- <contrib>Origineel bijgedragen door </contrib>
- </author>
- <author>
- <firstname>Rich</firstname>
- <surname>Murphey</surname>
- </author>
- </authorgroup>
- <authorgroup>
- <author>
- <firstname>René</firstname>
- <surname>Ladan</surname>
- <contrib>Vertaald door </contrib>
- </author>
- </authorgroup>
- </chapterinfo>
-
- <title>&linux; binaire compatibiliteit</title>
-
- <sect1 id="linuxemu-synopsis">
- <title>Overzicht</title>
-
- <para>&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 <quote>hebbeding</quote> 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.</para>
-
- <para>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
- <application>&staroffice;</application>, de &linux; versie van
- <application>&netscape;</application>,
- <application>&adobe;&nbsp;&acrobat;</application>,
- <application>&realplayer;</application>,
- <application>&oracle;</application>,
- <application>&wordperfect;</application>,
- <application>Doom</application>,
- <application>Quake</application> en meer. Er wordt zelfs gemeld
- dat in sommige gevallen &linux;-binairen beter presteren op &os;
- dan op &linux;.</para>
-
- <para>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.</para>
-
- <para>Na het lezen van dit hoofdstuk weet de lezer:</para>
-
- <itemizedlist>
- <listitem>
- <para>Hoe &linux; binaire compatibiliteit op een systeem aan
- te zetten;</para>
- </listitem>
-
- <listitem>
- <para>Hoe aanvullende &linux; gedeelde bibliotheken te
- installeren;</para>
- </listitem>
-
- <listitem>
- <para>Hoe &linux; applicaties op een &os; systeem te
- installeren;</para>
- </listitem>
-
- <listitem>
- <para>De implementatiedetails van &linux; compatibiliteit in
- &os;.</para>
- </listitem>
- </itemizedlist>
-
- <para>Aangeraden voorkennis:</para>
-
- <itemizedlist>
- <listitem>
- <para>Hoe extra software van derden te installeren (<xref
- linkend="ports"/>).</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="linuxemu-lbc-install">
- <title>Installatie</title>
-
- <indexterm><primary>KLD (kernel loadable object)</primary></indexterm>
-
- <para>&linux; binaire compatibiliteit staat standaard niet aan. De
- gemakkelijkste manier om deze functionaliteit aan te zetten is
- door het <literal>linux</literal> KLD object (<quote>Kernel
- LoaDable object</quote>) te laden. Deze module kan geladen
- worden door het volgende commando als <username>root</username>
- uit te voeren:</para>
-
- <screen>&prompt.root; <userinput>kldload linux</userinput></screen>
-
- <para>Als &linux; compatibiliteit altijd aan moet staan, dan moet
- de volgende regel aan <filename>/etc/rc.conf</filename>
- toegevoegd worden:</para>
-
- <programlisting>linux_enable="YES"</programlisting>
-
- <para>Met &man.kldstat.8; kan gecontroleerd worden of de KLD
- geladen is:</para>
-
- <screen>&prompt.user; <userinput>kldstat</userinput>
-Id Refs Address Size Name
- 1 2 0xc0100000 16bd8 kernel
- 7 1 0xc24db000 d000 linux.ko</screen>
-
- <indexterm>
- <primary>kernelopties</primary>
-
- <secondary>COMPAT_LINUX</secondary>
- </indexterm>
-
- <para>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
- <literal>options COMPAT_LINUX</literal> aan het
- kernelinstellingenbestand toe te voegen. Daarna kan de nieuwe
- kernel zoals beschreven in <xref linkend="kernelconfig"/>
- geïnstalleerd worden.</para>
-
- <sect2>
- <title>&linux; runtime bibliotheken installeren</title>
-
- <indexterm>
- <primary>&linux;</primary>
-
- <secondary>&linux; bibliotheken installeren</secondary>
- </indexterm>
-
- <para>Dit kan op twee manieren gedaan worden: door de <link
- linkend="linuxemu-libs-port">linux_base</link> port te
- gebruiken of door ze <link
- linkend="linuxemu-libs-manually">handmatig</link> te
- installeren.</para>
-
- <sect3 id="linuxemu-libs-port">
- <title>Installeren uit de linux_base port</title>
-
- <indexterm><primary>Portscollectie</primary></indexterm>
-
- <para>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 <link linkend="ports">Portscollectie</link>.
- Dit kan met het volgende commando:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_base-f10</userinput>
-&prompt.root; <userinput>make install distclean</userinput></screen>
-
- <note>
- <para>Op &os;-systemen vóór &os;&nbsp;8.0 dient u de
- port <filename role="package">emulators/linux_base-fc4</filename> in
- plaats van <filename
- role="package">emulators/linux_base-f10</filename> te
- gebruiken.</para>
- </note>
-
- <para>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.</para>
-
- <note>
- <para>Er kunnen verschillende versies van de <filename
- role="package">emulators/linux_base</filename> 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.</para>
- </note>
- </sect3>
-
- <sect3 id="linuxemu-libs-manually">
- <title>Bibliotheken handmatig installeren</title>
-
- <para>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 <quote>shadow
- root</quote> map aangemaakt worden,
- <filename>/compat/linux</filename>, 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 <filename>/lib/libc.so</filename> laadt,
- probeert &os; eerst
- <filename>/compat/linux/lib/libc.so</filename> te openen, en
- als die niet bestaat, probeert het
- <filename>/lib/libc.so</filename> proberen. Gedeelde
- bibliotheken moeten in de schaduwmapstructuur
- geïnstalleerd worden in plaats van in de paden die het
- &linux; <command>ld.so</command> rapporteert.</para>
-
- <para>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.</para>
- </sect3>
-
- <sect3>
- <title>Extra gedeelde bibliotheken installeren</title>
-
- <indexterm><primary>gedeelde bibliotheken</primary></indexterm>
-
- <para>Wat als de <filename>linux_base</filename> 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
- <username>root</username> rechten op een &os; systeem
- vereist).</para>
-
- <para>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:</para>
-
- <informalexample>
- <para>Stel dat FTP gebruikt is om de &linux; binary van
- <application>Doom</application> op te halen en die op een
- &linux; systeem staat waar toegang tot is. Dan kan met
- <command>ldd linuxdoom</command> gecontroleerd worden welke
- gedeelde bibliotheken er nodig zijn:</para>
-
- <screen>&prompt.user; <userinput>ldd linuxdoom</userinput>
-libXt.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libXt.so.3.1.0
-libX11.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libX11.so.3.1.0
-libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>
-
- <indexterm><primary>symbolische links</primary></indexterm>
-
- <para>Alle bestanden uit de laatste kolom zijn nodig en
- moeten onder <filename>/compat/linux</filename> 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:</para>
-
- <screen>/compat/linux/usr/X11/lib/libXt.so.3.1.0
-/compat/linux/usr/X11/lib/libXt.so.3 -&gt; libXt.so.3.1.0
-/compat/linux/usr/X11/lib/libX11.so.3.1.0
-/compat/linux/usr/X11/lib/libX11.so.3 -&gt; libX11.so.3.1.0
-/compat/linux/lib/libc.so.4.6.29
-/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.29</screen>
-
- <blockquote>
- <note>
- <para>Als er al een &linux; gedeelde bibliotheek met een
- groot revisienummer overeenstemmend met de eerste kolom
- van de <command>ldd</command> 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:</para>
-
- <screen>/compat/linux/lib/libc.so.4.6.27
-/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.27</screen>
-
- <para>en een nieuwe binary zegt een latere versie nodig
- te hebben volgens de uitvoer van
- <command>ldd</command>:</para>
-
- <screen>libc.so.4 (DLL Jump 4.5pl26) -&gt; libc.so.4.6.29</screen>
-
- <para>Als slechts één of twee versies
- verouderd zijn in het laatste cijfer, dan hoeft
- <filename>/lib/libc.so.4.6.29</filename> 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
- <filename>libc.so</filename> sowieso te verplaatsen,
- en dat resulteert in:</para>
-
- <screen>/compat/linux/lib/libc.so.4.6.29
-/compat/linux/libc.so.4 -&gt; lbic.so.4.6.29</screen>
- </note></blockquote>
-
- <blockquote>
- <note>
- <para>Het symbolische linkmechanisme is
- <emphasis>alleen</emphasis> 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.</para>
- </note></blockquote>
- </informalexample>
- </sect3>
- </sect2>
-
- <sect2>
- <title>&linux; ELF-binairen installeren</title>
-
- <indexterm>
- <primary>&linux;</primary>
-
- <secondary>ELF-binairen</secondary>
- </indexterm>
-
- <para>ELF-binairen hebben soms een extra stap van
- <quote>branding</quote> nodig. Als er ongemerkte ELF-binairen
- worden gedraaid, ontstaat er een foutmelding zoals de
- volgende:</para>
-
- <screen>&prompt.user; <userinput>./mijn-linux-elf-binary</userinput>
-ELF binary type not known
-Abort</screen>
-
- <para>Om de &os; kernel te helpen &os; ELF-binairen en &linux;
- binairen uit elkaar te houden, kan &man.brandelf.1; gebruikt
- worden.</para>
-
- <screen>&prompt.user; <userinput>brandelf -t Linux mijn-linux-elf-binary</userinput></screen>
-
- <indexterm><primary>GNU gereedschapskist</primary></indexterm>
-
- <para>De GNU gereedschapskist plaatst nu automatisch de juiste
- merkinformatie in ELF-binairen , dus deze stap zou steeds
- overbodiger moeten worden in de toekomst.</para>
- </sect2>
-
- <sect2>
- <title>Een willekeurige toepassing gebaseerd op Linux RPM
- installeren</title>
-
- <para>&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).</para>
-
- <para>Als u echter een willekeurige toepassing die op &linux; RPM is
- gebaseerd moet installeren kan dit bereikt worden met:</para>
-
- <screen>&prompt.root; <userinput>cd /compat/linux</userinput>
-&prompt.root; <userinput>rpm2cpio -q &lt; /pad/naar/linux.archief.rpm | cpio -id</userinput></screen>
-
- <para>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.</para>
- </sect2>
-
- <sect2>
- <title>De hostnaamresolver instellen</title>
-
- <screen>resolv+: "bind" is an invalid keyword resolv+:
-"hosts" is an invalid keyword</screen>
-
- <para>Als DNS niet werkt of de bovenstaande melding ontstaat, dan
- moet <filename>/compat/linux/etc/host.conf</filename> ingesteld
- worden met daarin:</para>
-
- <programlisting>order hosts, bind
-multi on</programlisting>
-
- <para>De volgorde geeft aan dat <filename>/etc/hosts</filename>
- als eerste doorzocht wordt en DNS als tweede. Als
- <filename>/compat/linux/etc/host.conf</filename> niet
- geïnstalleerd is, vinden &linux; applicaties
- <filename>/etc/host.conf</filename> van &os; en klagen ze over
- de incompatibele &os; syntaxis. <literal>bind</literal> moet
- verwijderd worden als er geen naamserver is ingesteld die
- gebruik maakt van <filename>/etc/resolv.conf</filename>.</para>
- </sect2>
- </sect1>
-
- <sect1 id="linuxemu-mathematica">
- <sect1info>
- <authorgroup>
- <author>
- <firstname>Boris</firstname>
- <surname>Hollas</surname>
- <contrib>Bijgewerkt voor Mathematica 5.X door </contrib>
- </author>
- </authorgroup>
- </sect1info>
- <title>&mathematica; installeren</title>
-
- <indexterm>
- <primary>applicaties</primary>
-
- <secondary><application>&mathematica;</application></secondary>
- </indexterm>
-
- <para>Dit document beschrijft het installatieproces van de &linux;
- versie van <application>&mathematica; 5.X</application> op een
- &os; systeem.</para>
-
- <para>De &linux; versie van <application>&mathematica;</application>
- of <application>&mathematica; for Students</application> kan
- direct bij Wolfram besteld worden op <ulink
- url="http://www.wolfram.com/"></ulink>.</para>
-
- <sect2>
- <title>De &mathematica; Installer draaien</title>
-
- <para>Ten eerste dient &os; te weten dat de Linux-binairen van
- <application>&mathematica;</application> 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:</para>
-
- <screen>&prompt.root; <userinput>sysctl kern.fallback_elf_brand=3</userinput></screen>
-
- <para>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.</para>
-
- <para>Kopieer nu het bestand <filename>MathInstaller</filename>
- naar de harde schijf:</para>
-
- <screen>&prompt.root; <userinput>mount /cdrom</userinput>
-&prompt.root; <userinput>cp /cdrom/Unix/Installers/Linux/MathInstaller /localdir/</userinput></screen>
-
- <para>Vervang binnen dit bestand <literal>/bin/sh</literal> op de
- eerste regel door <literal>/compat/linux/bin/sh</literal>. 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 <literal>Linux)</literal> door
- <literal>FreeBSD)</literal>. Dit zorgt ervoor dat de
- <application>&mathematica;</application> installer, dat
- <command>uname -s</command> gebruikt om het besturingssysteem te
- bepalen, om &os; als een Linux-achtig besturingssysteem te
- behandelen. Het aanroepen van <command>MathInstaller</command>
- zal nu <application>&mathematica;</application> installeren.</para>
- </sect2>
-
- <sect2>
- <title>De &mathematica;-executables wijzigen</title>
-
- <para>De shellscripts die <application>&mathematica;</application>
- aanmaakte tijdens de installatie moeten gewijzigd worden voordat
- u ze kunt gebruiken. Als u <filename
- class="directory">/usr/local/bin</filename> kiest als de map
- om <application>&mathematica;</application>-executables in te
- plaatsen, zult u in deze map symbolische links naar bestanden
- genaamd <filename>math</filename>,
- <filename>mathematica</filename>,
- <filename>Mathematica</filename>, en
- <filename>MathKernel</filename> aantreffen. Vervang met een
- tekstverwerker of het volgende shellscript in elk van
- deze <literal>Linux)</literal> door <literal>&os;</literal>:</para>
-
- <programlisting>#!/bin/sh
-cd /usr/local/bin
-for i in math mathematica Mathematica MathKernel
- do sed 's/Linux)/FreeBSD)/g' $i &gt; $i.tmp
- sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp &gt; $i
- rm $i.tmp
- chmod a+x $i
-done</programlisting>
- </sect2>
-
- <sect2>
- <title>&mathematica; wachtwoord opvragen</title>
-
- <indexterm>
- <primary>Ethernet</primary>
-
- <secondary>MAC-adres</secondary>
- </indexterm>
-
- <para>Wanneer u <application>&mathematica;</application> 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 <command>mathinfo</command> in de installatiemap om uw
- <quote>machine-ID</quote> te verkrijgen. Dit machine-ID is
- alleen op het MAC-adres van uw eerste Ethernetkaart gebaseerd,
- zodat u uw kopie van <application>&mathematica</application>
- niet op andere machines kunt draaien.</para>
-
- <para>Bij een registratie bij Wolfram, per email, telefoon of
- fax, wordt het <quote>machine ID</quote> opgegeven en zij
- reageren met een overeenkomstig wachtwoord dat uit groepen
- getallen bestaat.</para>
- </sect2>
-
- <sect2>
- <title>Het &mathematica; frontend over een netwerk
- draaien</title>
-
- <para><application>&mathematica;</application> 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 <emphasis>lokaal</emphasis> worden
- geïnstalleerd. Dit betekent dat deze lettertypen
- gekopieerd moeten worden vanaf de CD-ROM of vanaf een host met
- <application>&mathematica;</application> erop naar de lokale
- machine. Deze lettertypen worden meestal opgeslagen in
- <filename>/cdrom/Unix/Files/SystemFiles/Fonts</filename> op de
- CD-ROM of in
- <filename>/usr/local/mathematica/SystemFiles/Fonts</filename>
- op de harde schijf. De eigenlijke lettertypen staan in de
- submap <filename>Type1</filename> en <filename>X</filename>.
- Er zijn verschillende manieren om ze te installeren, zoals
- hieronder staat beschreven.</para>
-
- <para>De eerste manier is om ze te kopiëren in
- één van de bestaande lettertypenmappen in
- <filename>/usr/X11R6/lib/X11/fonts</filename>. Hiertoe dient
- <filename>fonts.dir</filename> 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.</para>
-
- <para>De tweede manier om dit te doen is door de mappen naar
- <filename>/usr/X11R6/lib/X11/fonts</filename> te
- kopiëren:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts</userinput>
-&prompt.root; <userinput>mkdir X</userinput>
-&prompt.root; <userinput>mkdir MathType1</userinput>
-&prompt.root; <userinput>cd /cdrom/Unix/Files/SystemFiles/Fonts</userinput>
-&prompt.root; <userinput>cp X/* /usr/X11R6/lib/X11/fonts/X</userinput>
-&prompt.root; <userinput>cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1</userinput>
-&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts/X</userinput>
-&prompt.root; <userinput>mkfontdir</userinput>
-&prompt.root; <userinput>cd ../MathType1</userinput>
-&prompt.root; <userinput>mkfontdir</userinput></screen>
-
- <para>Voeg nu de nieuwe lettertypenmappen toe aan het
- lettertypenpad:</para>
-
- <screen>&prompt.root; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/X</userinput>
-&prompt.root; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/MathType1</userinput>
-&prompt.root; <userinput>xset fp rehash</userinput></screen>
-
- <para>Als de <application>&xorg;</application> server gebruikt
- wordt, kunnen deze lettertypenmappen automatisch geladen worden
- door ze aan <filename>xorg.conf</filename> toe te
- voegen.</para>
-
- <indexterm><primary>lettertypen</primary></indexterm>
-
- <para>Als er nog <emphasis>geen</emphasis> map
- <filename>/usr/X11R6/lib/X11/fonts/Type1</filename> bestaat,
- kan de naam van de map <filename>MathType1</filename> in het
- bovenstaande voorbeeld veranderd worden naar
- <filename>Type1</filename>.</para>
- </sect2>
- </sect1>
-
- <sect1 id="linuxemu-maple">
- <sect1info>
- <authorgroup>
- <author>
- <firstname>Aaron</firstname>
- <surname>Kaplan</surname>
-<!-- <address><email>aaron@lo-res.org</email></address>-->
- <contrib>Bijgedragen door </contrib>
- </author>
- </authorgroup>
-
- <authorgroup>
- <author>
- <firstname>Robert</firstname>
- <surname>Getschmann</surname>
-<!-- <address><email>rob@getschmann.org</email></address>-->
- <contrib>Met dank aan </contrib>
- </author>
- </authorgroup>
- </sect1info>
-
- <title>&maple; installeren</title>
-
- <indexterm>
- <primary>applicaties</primary>
-
- <secondary><application>Maple</application></secondary>
- </indexterm>
-
- <para><application>&maple;</application> is een commercieel
- wiskundeprogramma vergelijkbaar met
- <application>&mathematica;</application>. De software is te koop
- op <ulink url="http://www.maplesoft.com/"></ulink> en kan daar
- ook geregistreerd worden voor een licentiebestand. Om deze
- software op &os; te installeren kunnen de volgende eenvoudige
- stappen gevolgd worden:</para>
-
- <procedure>
- <step>
- <para>Voer het <filename>INSTALL></filename> shellscript
- uit van de productdistributie. Kies de <quote>RedHat</quote>
- optie als daarom wordt gevraagd door het
- installatieprogramma. Een typische installatiemap zou
- <filename class="directory">/usr/local/maple</filename>
- zijn.</para>
- </step>
-
- <step>
- <para>Bestel, als dat nog niet gedaan is, een licentie voor
- <application>&maple;</application> van Maple Waterloo
- Software (<ulink
- url="http://register.maplesoft.com/"></ulink>) en kopieer
- deze naar
- <filename>/usr/local/maple/license/license.dat</filename>.</para>
- </step>
-
- <step>
- <para>Installeer de <application>FLEXlm</application>
- licentiebeheerder met het installatieshellscript
- <filename>INSTALL_LIC</filename>, dat geleverd wordt bij
- <application>&maple;</application>. Stel de primaire
- hostnaam voor de machine in voor de licentieserver.</para>
- </step>
-
- <step>
- <para>Patch het bestand
- <filename>/usr/local/maple/bin/maple.system.type</filename>
- met het volgende:</para>
-
- <programlisting> ----- knip ------------------
-*** maple.system.type.orig Sun Jul 8 16:35:33 2001
---- maple.system.type Sun Jul 8 16:35:51 2001
-***************
-*** 72,77 ****
---- 72,78 ----
- # the IBM RS/6000 AIX case
- MAPLE_BIN="bin.IBM_RISC_UNIX"
- ;;
-+ "FreeBSD"|\
- "Linux")
- # the Linux/x86 case
- # We have two Linux implementations, one for Red Hat and
- ----- knip einde van patch -----</programlisting>
-
- <para>Achter <literal>"FreeBSD"|</literal> mogen geen verdere
- witvelden staan.</para>
-
- <para>Deze patch instrueert <application>&maple;</application>
- om <quote>&os;</quote> als een &linux; systeem te herkennen.
- Het shellscript <filename>bin/maple</filename> roept het
- shellscript <filename>bin/maple.system.type</filename> aan,
- dat op zijn beurt <command>uname -a</command> aanroept om
- achter de naam van het besturingssysteem te komen.
- Afhankelijk van de naam van het besturingssysteem zoekt het
- uit welke binairen het moet gebruiken.</para>
- </step>
-
- <step>
- <para>Start de licentieserver.</para>
-
- <para>Het volgende script, geïnstalleerd als
- <filename>/usr/local/etc/rc.d/lmgrd.sh</filename>, is een
- gemakkelijke manier om <command>lmgrd</command> op te
- starten:</para>
-
- <programlisting> ----- knip ------------
-
-#! /bin/sh
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
-PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX
-export PATH
-
-LICENSE_FILE=/usr/local/maple/license/license.dat
-LOG=/var/log/lmgrd.log
-
-case "$1" in
-start)
- lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1&gt;&2
- echo -n " lmgrd"
- ;;
-stop)
- lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1&gt;&2
- ;;
-*)
- echo "Usage: `basename $0` {start|stop}" 1&gt;&2
- exit 64
- ;;
-esac
-
-exit 0
- ----- knip ------------</programlisting></step>
-
- <step>
- <para><application>&maple;</application> testen:</para>
-
- <screen>&prompt.user; <userinput>cd /usr/local/maple/bin</userinput>
-&prompt.user; <userinput>./xmaple</userinput></screen>
-
- <para>Nu hoort het programma te draaien. Het is belangrijk om
- Maplesoft te schrijven om ze te laten weten dat een echte
- &os; versie gewenst is!</para>
- </step>
- </procedure>
-
- <sect2>
- <title>Gemeenschappelijke verborgen gevaren</title>
-
- <itemizedlist>
- <listitem>
- <para>De <application>FLEXlm</application>
- licentiebeheerder kan een lastig programma zijn om mee te
- werken. Aanvullende documentatie staat op <ulink
- url="http://www.globetrotter.com/"></ulink>.</para>
- </listitem>
-
- <listitem>
- <para><command>lmgrd</command> staat er bekend om erg
- kieskeurig over het licentiebestand te zijn en core te
- dumpen als er een probleem is. Een correct licentiebestand
- ziet er zo uit:</para>
-
- <programlisting># =======================================================
-# License File for UNIX Installations ("Pointer File")
-# =======================================================
-SERVER chillig ANY
-#USE_SERVER
-VENDOR maplelmg
-
-FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \
- PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \
- ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \
- SN=XXXXXXXXX</programlisting>
-
- <note>
- <para>Het serienummer en de sleutel zijn vervangen door
- <quote>X</quote>'en. <hostid>chillig</hostid> is de
- hostnaam.</para>
- </note>
-
- <para>Het bewerken van het licentiebestand lukt zolang de
- regel <quote>FEATURE</quote> niet verandert (die
- beschermd is door de licentiesleutel).</para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 id="linuxemu-matlab">
- <sect1info>
- <authorgroup>
- <author>
- <firstname>Dan</firstname>
- <surname>Pelleg</surname>
- <contrib>Bijgedragen door </contrib>
- </author>
- <!-- daniel+handbook@pelleg.org -->
- </authorgroup>
- </sect1info>
-
- <title>&matlab; installeren</title>
-
- <indexterm>
- <primary>applicaties</primary>
-
- <secondary><application>&matlab;</application></secondary>
- </indexterm>
-
- <para>Dit document beschrijft het installatieproces van de &linux;
- versie van <application>&matlab; 6.5</application> op een &os;
- systeem. Het werkt best goed, met uitzondering van de
- <application>&java.virtual.machine;</application> (zie <xref
- linkend="matlab-jre"/>).</para>
-
- <para>De &linux; versie van <application>&matlab;</application> kan
- besteld worden bij The MathWorks op <ulink
- url="http://www.mathworks.com"></ulink>. 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
- echte &os; versie gewenst is!</para>
-
- <sect2>
- <title>&matlab; installeren</title>
-
- <para>Om <application>&matlab;</application> te
- installeren:</para>
-
- <procedure>
- <step>
- <para>Laad de installatie-CD-ROM en koppel die aan. Start het
- installatiescript als <username>root</username>:</para>
-
- <screen>&prompt.root; <userinput>/compat/linux/bin/sh /cdrom/install</userinput></screen>
-
- <tip>
- <para>Het is een grafisch installatieprogramma. Als er
- foutmeldingen verschijnen dat het programma geen scherm
- kan openen, kan <command>setenv HOME
- ~<replaceable>GEBRUIKER</replaceable></command>
- uitgevoerd worden, waar
- <replaceable>GEBRUIKER</replaceable> de gebruiker is
- waarmee &man.su.1; is gedaan.</para>
- </tip>
- </step>
-
- <step>
- <para>Als om de <application>&matlab;</application> rootmap
- wordt gevraagd, dient
- <userinput>/compat/linux/usr/local/matlab</userinput>
- opgegeven te worden.</para>
-
- <tip>
- <para>Voer op de commandoregel het volgende uit om de
- rest van het installatieproces gemakkelijk te houden:
- <command>set
- MATLAB=/compat/linux/usr/local/matlab</command>.</para>
- </tip>
- </step>
-
- <step>
- <para>Wijzig het licentiebestand zoals aangegeven tijdens het
- verkrijgen van de licentie voor
- <application>&matlab;</application>.</para>
-
- <tip>
- <para>Dit bestand kan van tevoren gemaakt worden met een
- tekstverwerker en door het te kopiëren naar
- <filename>$MATLAB/license.dat</filename> voordat het
- installatieprogramma vraagt om het te bewerken.</para>
- </tip>
- </step>
-
- <step>
- <para>Maak het installatieproces af.</para>
- </step>
- </procedure>
-
- <para>Nu is de installatie van
- <application>&matlab;</application> compleet. De volgende
- stappen <quote>lijmen</quote> het aan het &os; systeem.</para>
- </sect2>
-
- <sect2>
- <title>Licentiebeheerder starten</title>
-
- <procedure>
- <step>
- <para>Maak symbolische links voor de scriptbestanden van de
- licentiebeheerder:</para>
-
- <screen>&prompt.root; <userinput>ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW</userinput>
-&prompt.root; <userinput>ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMW</userinput></screen>
- </step>
-
- <step>
- <para>Maak een opstartbestand in
- <filename>/usr/local/etc/rc.d/flexlm.sh</filename>.
- Onderstaand voorbeeld is een gewijzigde versie van het
- meegeleverde <filename>$MATLAB/etc/rc.lm.glnx86</filename>.
- De wijzigingen omvatten bestandslocaties en het starten
- van de licentiebeheerder onder &linux;-emulatie.</para>
-
- <programlisting>#!/bin/sh
-case "$1" in
- start)
- if [ -f /usr/local/etc/lmboot_TMW ]; then
- /compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u <replaceable>gebruikersnaam</replaceable> &amp;&amp; echo 'MATLAB_lmgrd'
- fi
- ;;
- stop)
- if [ -f /usr/local/etc/lmdown_TMW ]; then
- /compat/linux/bin/sh /usr/local/etc/lmdown_TMW &gt; /dev/null 2&gt;&amp;1
- fi
- ;;
- *)
- echo "Usage: $0 {start|stop}"
- exit 1
- ;;
-esac
-
-exit 0</programlisting>
-
- <important>
- <para>Het bestand moet uitvoerbaar zijn:</para>
-
- <screen>&prompt.root; <userinput>chmod +x /usr/local/etc/rc.d/flexlm.sh</userinput></screen>
-
- <para>Ook moet bovenstaande
- <replaceable>gebruikersnaam</replaceable> vervangen
- worden door een geldige gebruikersnaam op het systeem
- (maar niet door <username>root</username>).</para>
- </important>
- </step>
-
- <step>
- <para>Start de licentiebeheerder op met het commando:</para>
-
- <screen>&prompt.root; <userinput>/usr/local/etc/rc.d/flexlm.sh start</userinput></screen>
- </step>
- </procedure>
- </sect2>
-
- <sect2 id="matlab-jre">
- <title>De &java; runtime-omgeving linken</title>
-
- <para>Verander de <application>&java;</application> Runtime
- Environment Link naar een die werkt op &os;:</para>
-
- <screen>&prompt.root; <userinput>cd $MATLAB/sys/java/jre/glnx86</userinput>
-&prompt.root; <userinput>unlink jre; ln -s ./jre1.1.8 ./jre</userinput></screen>
- </sect2>
-
- <sect2>
- <title>&matlab; opstartscript maken</title>
-
- <procedure>
- <step>
- <para>Plaats het volgende startscript in
- <filename>/usr/local/bin/matlab</filename>:</para>
-
- <programlisting>#!/bin/sh
-/compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"</programlisting>
- </step>
-
- <step>
- <para>Geef vervolgens het commando
- <command>chmod +x /usr/local/bin/matlab</command>.</para>
- </step>
- </procedure>
-
- <tip>
- <para>Afhankelijk van de versie van <filename
- role="package">emulators/linux_base</filename>, kunnen er
- fouten optreden als dit script draait. Om dat te voorkomen,
- dient in
- <filename>/compat/linux/usr/local/matlab/bin/matlab</filename>
- de regel:</para>
-
- <programlisting>if [ `expr "$lscmd" : '.*-&gt;.*'` -ne 0 ]; then</programlisting>
-
- <para>(in versie 13.0.1 staat dit op regel 410) veranderd te
- worden in:</para>
-
- <programlisting>if test -L $newbase; then</programlisting>
- </tip>
- </sect2>
-
- <sect2>
- <title>&matlab; afsluitscript maken</title>
-
- <para>Het volgende is nodig om een probleem op te lossen dat
- samenhangt met het onjuist afsluiten van &matlab;.</para>
-
- <procedure>
- <step>
- <para>Maak het bestand
- <filename>$MATLAB/toolbox/local/finish.m</filename> dat
- alleen de volgende regel bevat:</para>
-
- <programlisting>! $MATLAB/bin/finish.sh</programlisting>
-
- <note>
- <para><literal>$MATLAB$</literal> is hier letterlijk
- bedoeld.</para>
- </note>
-
- <tip>
- <para>In dezelfde map staan de bestanden
- <filename>finishsav.m</filename> en
- <filename>finishdlg.m</filename>, 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 <literal>save</literal> ingevoegd te
- worden.</para>
- </tip>
- </step>
-
- <step>
- <para>Maak het bestand
- <filename>$MATLAB/bin/finish.sh</filename>, dat het
- volgende bevat:</para>
-
- <programlisting>#!/compat/linux/bin/sh
-(sleep 5; killall -1 matlab_helper) &
-exit 0</programlisting>
- </step>
-
- <step>
- <para>Maak het bestand uitvoerbaar:</para>
-
- <screen>&prompt.root; <userinput>chmod +x $MATLAB/bin/finish.sh</userinput></screen>
- </step>
- </procedure>
- </sect2>
-
- <sect2 id="matlab-using">
- <title>&matlab; gebruiken</title>
-
- <para>Nu kan met <command>matlab</command> het programma gestart
- worden.</para>
- </sect2>
- </sect1>
-
- <sect1 id="linuxemu-oracle">
- <sect1info>
- <authorgroup>
- <author>
- <firstname>Marcel</firstname>
- <surname>Moolenaar</surname>
- <contrib>Bijgedragen door </contrib>
- </author>
- <!-- marcel@cup.hp.com -->
- </authorgroup>
- </sect1info>
-
- <title>&oracle; installeren</title>
-
- <indexterm>
- <primary>applicaties</primary>
-
- <secondary><application>Oracle</application></secondary>
- </indexterm>
-
- <sect2>
- <title>Voorwoord</title>
-
- <para>Hieronder wordt het installatieproces van
- <application>&oracle;&nbsp;8.0.5</application> en
- <application>&oracle;&nbsp;8.0.5.1 Enterprise
- Edition</application> voor &linux; op een &os;-machine
- beschreven.</para>
- </sect2>
-
- <sect2>
- <title>De &linux;-omgeving installeren</title>
-
- <para>Uit de Portscollectie dienen <filename
- role="package">emulators/linux_base</filename> en <filename
- role="package">devel/linux_devtools</filename>
- 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.</para>
-
- <para>Om de intelligente agent te draaien, moet ook het Red Hat
- Tcl package geïnstalleerd worden:
- <filename>tcl-8.0.3-20.i386.rpm</filename>. Het algemene
- commando om pakketten te installeren met de officiële
- <application>RPM</application> port (<filename
- role="package">archivers/rpm</filename>) is:</para>
-
- <screen>&prompt.root; <userinput>rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm <replaceable>package</replaceable></userinput></screen>
-
- <para>De installatie van het <replaceable>package</replaceable>
- hoort foutloos te verlopen.</para>
- </sect2>
-
- <sect2>
- <title>De &oracle;-omgeving creëren</title>
-
- <para>Voordat <application>&oracle;</application>
- geïnstalleerd kan worden, moet een juiste omgeving
- opgezet worden. Dit document beschrijft alleen welke
- <emphasis>speciale</emphasis> dingen gedaan moeten worden om
- <application>&oracle;</application> voor &linux; op &os; te
- draaien, en niet wat beschreven staat in de
- <application>&oracle;</application>
- installatiehandleiding.</para>
-
- <sect3 id="linuxemu-kernel-tuning">
- <title>Kerneloptimalisatie</title>
-
- <indexterm><primary>kerneloptimalisatie</primary></indexterm>
-
- <para>Zoals beschreven staat in de
- <application>&oracle;</application> installatiehandleiding
- moet de maximale grootte van het gedeelde geheugen ingesteld
- worden. Op &os; moet <literal>SHMMAX</literal> niet gebruikt
- worden. <literal>SHMMAX</literal> wordt slechts uit
- <literal>SHMMAXPGS</literal> en <literal>PGSIZE</literal>
- berekend. Daarom dient <literal>SHMMAXPGS</literal>
- gedefinieerd te worden. Alle andere opties kunnen gebruikt
- worden zoals in de handleiding staat beschreven.
- Bijvoorbeeld:</para>
-
- <programlisting>options SHMMAXPGS=10000
-options SHMMNI=100
-options SHMSEG=10
-options SEMMNS=200
-options SEMMNI=70
-options SEMMSL=61</programlisting>
-
- <para>Deze opties kunnen naargelang het gebruik van
- <application>&oracle;</application> ingesteld worden.</para>
-
- <para>Ook de volgende opties dienen in het
- kernelinstellingenbestand te staan:</para>
-
- <programlisting>options SYSVSHM #SysV gedeeld geheugen
-options SYSVSEM #SysV semaforen
-options SYSVMSG #SysV interprocescommunicatie</programlisting>
- </sect3>
-
- <sect3 id="linuxemu-oracle-account">
-
- <title>&oracle; account</title>
-
- <para>Creeër een <username>oracle</username> account op
- dezelfde manier als elk ander account. Het
- <username>oracle</username> account is alleen bijzonder in
- het opzicht dat het een &linux; shell moet hebben. Dat kan
- door <literal>/compat/linux/bin/bash</literal> toe te voegen
- aan <filename>/etc/shells</filename> en de shell voor het
- <username>oracle</username> account in te stellen op
- <filename>/compat/linux/bin/bash</filename>.</para>
- </sect3>
-
- <sect3 id="linuxemu-environment">
- <title>Omgeving</title>
-
- <para>Naast de normale <application>&oracle;</application>
- variabelen als <envar>ORACLE_HOME</envar> en
- <envar>ORACLE_SID</envar> moeten de volgende
- omgevingsvariabelen ingesteld worden:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
-
- <colspec colwidth="1*"/>
- <colspec colwidth="2*"/>
- <thead>
- <row>
- <entry>Variabele</entry>
-
- <entry>Waarde</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><envar>LD_LIBRARY_PATH</envar></entry>
-
- <entry><literal>$ORACLE_HOME/lib</literal></entry>
- </row>
-
- <row>
- <entry><envar>CLASSPATH</envar></entry>
-
- <entry><literal>$ORACLE_HOME/jdbc/lib/classes111.zip</literal></entry>
- </row>
-
- <row>
- <entry><envar>PATH</envar></entry>
-
- <entry><literal>/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</literal></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Het is aan te raden om alle omgevingsvariabelen in
- <filename>.profile</filename> in te stellen. Een volledig
- voorbeeld is:</para>
-
- <programlisting>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</programlisting>
- </sect3>
- </sect2>
-
- <sect2>
- <title>&oracle; installeren</title>
-
- <para>Wegens een kleine inconsistentie in de &linux; emulator
- moet de map <filename>.oracle</filename> aangemaakt worden
- in <filename>/var/tmp</filename> voordat het
- installatieprogramma wordt gestart. De gebruiker
- <username>oracle</username> moet de eigenaar van deze map
- zijn. Nu hoort <application>&oracle;</application> zonder
- problemen te installeren. Bij problemen dienen eerst de
- <application>&oracle;</application> distributie en/of de
- instellingen gecontroleerd te worden! Nadat
- <application>&oracle;</application> is geïnstalleerd,
- moeten de patches uit de volgende twee secties
- geïnstalleerd worden.</para>
-
- <para>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:</para>
-
- <screen>&prompt.root; <userinput>cd $ORACLE_HOME/network/lib</userinput>
-&prompt.root; <userinput>make -f ins_network.mk ntcontab.o</userinput>
-&prompt.root; <userinput>cd $ORACLE_HOME/lib</userinput>
-&prompt.root; <userinput>ar r libnetwork.a ntcontab.o</userinput>
-&prompt.root; <userinput>cd $ORACLE_HOME/network/lib</userinput>
-&prompt.root; <userinput>make -f ins_network.mk install</userinput></screen>
-
- <para>Hierna dient <filename>root.sh</filename> nogmaals te
- draaien!</para>
-
- <sect3 id="linuxemu-patch-root">
- <title><filename>root.sh</filename> patchen</title>
-
- <para>Als <application>&oracle;</application>
- geïnstalleerd wordt, worden sommige acties die als
- <username>root</username> moeten worden uitgevoerd
- geregistreerd in een shellscript met de naam
- <filename>root.sh</filename>. Dit script komt in de map
- <filename>orainst</filename> te staan. De volgende patch
- dient uitgevoerd te worden op <filename>root.sh</filename> om
- het de juiste locatie van <command>chown</command> te laten
- gebruiken of als alternatief kan het script onder een
- originele &linux; shell gedraaid worden</para>
-
- <programlisting>*** 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</programlisting>
-
- <para>Als <application>&oracle;</application> niet vanaf
- een CD-ROM wordt geïnstalleerd, kan de broncode van
- <filename>root.sh</filename> aangepast worden. Die heet
- <filename>rthd.sh</filename> en staat in de map
- <filename>orainst</filename> in de broncodestructuur.</para>
- </sect3>
-
- <sect3 id="linuxemu-patch-tcl">
- <title>genclntsh patchen</title>
-
- <para>Het script <command>genclntsh</command> wordt gebruikt om
- é&acute;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 <envar>PATH</envar> uitgecommentarieerd:</para>
-
- <programlisting>*** 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</programlisting>
- </sect3>
- </sect2>
-
- <sect2>
- <title>&oracle; draaien</title>
-
- <para>Als de instructies worden gevolgd, draait
- <application>&oracle;</application> als op &linux; zelf.</para>
- </sect2>
- </sect1>
-
- <sect1 id="linuxemu-advanced">
- <title>Gevorderde onderwerpen</title>
-
- <para>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
- <email>tlambert@primenet.com</email> aan &a.chat; (Message ID:
- <literal>&lt;199906020108.SAA07001@usr09.primenet.com&gt;</literal>).</para>
-
- <sect2>
- <title>Hoe werkt het?</title>
-
- <indexterm><primary>uitvoerklasselader</primary></indexterm>
-
- <para>&os; heeft een abstractie met de naam <quote>execution
- class loader</quote>. Dit is een wig in de systeemaanroep
- &man.execve.2;.</para>
-
- <para>Wat er gebeurt is dat &os; een lijst van loaders heeft, in
- plaats van een enkele loader die terugvalt op de
- <literal>#!</literal> loader voor het draaien van elke
- shellinterpreter of shellscript.</para>
-
- <para>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.</para>
-
- <para>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.</para>
-
- <para>Deze aanname was een standaard voor <quote>wat de huidige
- shell ook is.</quote></para>
-
- <para>Later werd er een hack gemaakt voor &man.sh.1; om de eerste
- twee tekens te onderzoeken en als die bestonden uit
- <literal>:\n</literal> voerde het in plaats hiervan de
- &man.csh.1; shell uit (het idee is dat SCO de hack als eerste
- maakte).</para>
-
- <para>Wat &os; nu doet is door een lijst van loaders gaan
- met een generieke <literal>#!</literal> 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 <filename>/bin/sh</filename>.</para>
-
- <indexterm><primary>ELF</primary></indexterm>
-
- <para>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).</para>
-
- <indexterm><primary>&solaris;</primary></indexterm>
-
- <para>De ELF loader zoekt naar een gespecialiseerd
- <emphasis>merk</emphasis>, dat een commentaargedeelte in het
- ELF-beeld is en dat niet aanwezig is in SVR4/&solaris;
- ELF-binairen.</para>
-
- <para>Om &linux;-binairen werkend te krijgen, moeten ze
- <emphasis>gemerkt</emphasis> worden als het type
- <literal>Linux</literal> met &man.brandelf.1;:</para>
-
- <screen>&prompt.root; <userinput>brandelf -t Linux bestand</userinput></screen>
-
- <para>Als dit gedaan is, ziet de ELF loader het
- <literal>Linux</literal>-merk in het bestand.</para>
-
- <indexterm>
- <primary>ELF</primary>
-
- <secondary>merken</secondary>
- </indexterm>
-
- <para>Als de ELF loader het <literal>Linux</literal>-merk
- tegenkomt, verplaatst de loader een pointer in de
- <literal>proc</literal>-structuur. Alle systeemaanroepen
- worden met deze pointer geïndexeerd (in een traditioneel
- &unix; systeem is dit de
- <literal>sysent[]</literal>-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.</para>
-
- <para>De &linux; kernelmodule bevat naast andere dingen een lijst
- van <literal>sysent[]</literal>-ingangen waarvan de adressen
- in de kernelmodule staan.</para>
-
- <para>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;.</para>
-
- <para>Verder <emphasis>reroot</emphasis> de &linux;-modus
- dynamisch lookups. Dit is wat de optie <option>union</option>
- (<emphasis>niet</emphasis> het <literal>unionfs</literal>
- bestandssysteemtype!) voor het aankoppelen van bestandssystemen
- effectief doet. Eerst wordt een poging gedaan om het bestand
- in de map
- <filename>/compat/linux/<replaceable>origineel-pad</replaceable></filename>
- op te zoeken en <emphasis>vervolgens</emphasis> alleen als dat
- mislukt, wordt het bestand in
- <filename>/<replaceable>origineel-pad</replaceable></filename>
- 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 <filename>/compat/linux</filename> gezet kan
- worden om er zeker van te zijn dat &linux;-binairen niet kunnen
- weten dat ze niet op &linux; draaien.</para>
-
- <para>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
- <emphasis>lijm</emphasis> functies voor &os; krijgen en dat de
- &linux;-binairen de <emphasis>lijm</emphasis>-functies voor
- &linux; krijgen (de meeste oudere besturingssystemen hadden
- alleen hun eigen <emphasis>lijm</emphasis>-functies: adressen
- van functies die in een statische globale
- <literal>sysent[]</literal> structuurarray werden opgeslagen,
- in plaats van adressen van functies waarvan dynamisch een
- geïnitialiseerde pointer wordt verwijderd in de
- <literal>proc</literal>-structuur van het proces dat de aanroep
- doet).</para>
-
- <para>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
- <emphasis>lijm</emphasis>-functies van &os; statisch gelinkt
- zijn in de kernel en dat de <emphasis>lijm</emphasis>-functies
- van &linux; zowel statisch gelinkt kunnen worden als dat ze
- door een kernelmodule worden benaderd.</para>
-
- <para>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.</para>
-
- <para>Dus waarom wordt het dan soms
- <quote>&linux;-emulatie</quote> 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 <quote>de &linux;-emulator</quote>.</para>
- </sect2>
- </sect1>
-</chapter>