cvs commit: de-docproj/books/developers-handbook/x86 chapter.sgml

From: Aron Schlesinger <as(at)doc.bsdgroup.de>
Date: Wed, 8 Aug 2007 17:33:33 GMT

as 2007-08-08 17:33:33 UTC

  FreeBSD ports repository

  Modified files:
    books/developers-handbook/x86 chapter.sgml
  Log:
  Kapitel 12.14 - 12.15 formatiert.
  
  Revision Changes Path
  1.5 +149 -118 de-docproj/books/developers-handbook/x86/chapter.sgml
  
  Index: chapter.sgml
  ===================================================================
  RCS file: /home/cvs/de-docproj/books/developers-handbook/x86/chapter.sgml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -I$FreeBSDde.*$ -r1.4 -r1.5
  --- chapter.sgml 8 Aug 2007 17:11:20 -0000 1.4
  +++ chapter.sgml 8 Aug 2007 17:33:32 -0000 1.5
  @@ -6093,127 +6093,158 @@
   </sect1>
   
     <sect1 id="x86-caveats">
  - <title>Vorsichtsmassnahmen</title>
  + <title>Vorsichtsmassnahmen</title>
   
  - <para>Assembler-Programmierer, die aufwuchsen mit <acronym>&ms-dos;</acronym>
  - und windows &windows; neigen oft dazu Shotcuts zu verwenden.
  - Das Lesen der Tastaur-Scancodes und das direkte Schreiben in den Grafikspeicher
  - sind zwei klassische Beispiele von Gewohnheiten, die unter <acronym>&ms-dos;</acronym>
  - nicht verp&ouml;nt sind, aber nicht als richtig angesehen werden.</para>
  -
  - <para>Warum dies? Sowohl das <acronym>PC-BIOS</acronym> als auch <acronym>&ms-dos;</acronym>
  - sind notorisch langsam bei der Ausf&uuml;hrung dieser Operationen.</para>
  -
  - <para>Sie m&ouml;gen versucht sein &auml;hnliche Angewohnheiten in der &unix;-Umgebung fortzuf&uuml;hren.
  - Zum Beispiel habe ich eine Webseite gesehen, welche erkl&auml;rt, wie man auf einem beliebten
  - &unix;-Ableger die Tastatur-Scancodes verwendet.</para>
  -
  - <para>Das ist generell eine <emphasis>sehr schlechte Idee</emphasis> in einer
  - &unix;-Umgebung! Lassen Sie mich erkl&auml;ren warum.</para>
  -
  - <sect2 id="x86-protected">
  - <title>&unix; ist gesch&uuml;tzt</title>
  -
  - <para>Zum Einen mag es schlicht nicht m&ouml;glich sein. &unix; l&auml;uft im Protected Mode.
  - Nur der Kernel und Ger&auml;tetreiber d&uuml;rfen direkt auf die Hardware zugreifen.
  - Unter Umst&auml;nden erlaubt es Ihnen ein bestimmter &unix;-Ableger Tastatur-Scancodes
  - auszulesen, aber ein wirkliches &unix;-Betriebssystem wird dies zu verhindern
  - wissen. Und falls eine Version es Ihnen erlaubt wird es eine andere nicht tun,
  - daher kann eine sorgf&auml;ltig erstellte Software &uuml;ber Nacht zu einem &uuml;berkommenen
  - Dinosaurier werden.</para>
  -
  - </sect2>
  + <para>Assembler-Programmierer, die aufwuchsen mit
  + <acronym>&ms-dos;</acronym> und windows &windows; neigen oft
  + dazu Shotcuts zu verwenden. Das Lesen der Tastaur-Scancodes und
  + das direkte Schreiben in den Grafikspeicher sind zwei klassische
  + Beispiele von Gewohnheiten, die unter
  + <acronym>&ms-dos;</acronym> nicht verp&ouml;nt sind, aber nicht
  + als richtig angesehen werden.</para>
  +
  + <para>Warum dies? Sowohl das <acronym>PC-BIOS</acronym> als auch
  + <acronym>&ms-dos;</acronym> sind notorisch langsam bei der
  + Ausf&uuml;hrung dieser Operationen.</para>
  +
  + <para>Sie m&ouml;gen versucht sein &auml;hnliche Angewohnheiten
  + in der &unix;-Umgebung fortzuf&uuml;hren. Zum Beispiel habe ich
  + eine Webseite gesehen, welche erkl&auml;rt, wie man auf einem
  + beliebten &unix;-Ableger die Tastatur-Scancodes
  + verwendet.</para>
  +
  + <para>Das ist generell eine <emphasis>sehr schlechte
  + Idee</emphasis> in einer &unix;-Umgebung! Lassen Sie mich
  + erkl&auml;ren warum.</para>
  +
  + <sect2 id="x86-protected">
  + <title>&unix; ist gesch&uuml;tzt</title>
  +
  + <para>Zum Einen mag es schlicht nicht m&ouml;glich sein.
  + &unix; l&auml;uft im Protected Mode. Nur der Kernel und
  + Ger&auml;tetreiber d&uuml;rfen direkt auf die Hardware
  + zugreifen. Unter Umst&auml;nden erlaubt es Ihnen ein
  + bestimmter &unix;-Ableger Tastatur-Scancodes auszulesen, aber
  + ein wirkliches &unix;-Betriebssystem wird dies zu verhindern
  + wissen. Und falls eine Version es Ihnen erlaubt wird es eine
  + andere nicht tun, daher kann eine sorgf&auml;ltig erstellte
  + Software &uuml;ber Nacht zu einem &uuml;berkommenen
  + Dinosaurier werden.</para>
  + </sect2>
   
  - <sect2 id="x86-abstraction">
  - <title>&unix; ist eine Abstraktion</title>
  + <sect2 id="x86-abstraction">
  + <title>&unix; ist eine Abstraktion</title>
   
  - <para>Aber es gibt einen viel wichtigeren Grund, weshalb Sie nicht versuchen sollten,
  - die Hardware direkt anzusprechen (nat&uuml;rlich nicht, wenn Sie einen Ger&auml;tetreiber
  - schreiben), selbst auf den &unix;-&auml;hnlichen Systemen, die es Ihnen erlauben:</para>
  -
  - <para><emphasis>&unix; ist eine Abstraktion!</emphasis></para>
  -
  - <para>Es gibt einen wichtigen Unterschied in der Design-Philosophie zwischen
  - <acronym>&ms-dos;</acronym> und &unix;. <acronym>&ms-dos;</acronym> wurde entworfen
  - als Einzelnutzer-System. Es l&auml;uft auf einem Rechner mit einer direkt angeschlossenen
  - Tastatur und einem direkt angeschlossenem Bildschirm. Die Eingaben des Nutzers kommen
  - nahezu immer von dieser Tastatur. Die Ausgabe Ihres Programmes erscheint fast immer
  - auf diesem Bildschirm.</para>
  -
  - <para>Dies ist NIEMALS garantiert unter &unix;. Es ist sehr verbreitet f&uuml;r ein &unix;,
  - da&szlig; der Nutzer seine Aus- und Eingaben kanalisiert und umleitet:</para>
  -
  - <screen>&prompt.user; <userinput>program1 | program2 | program3 &gt; file1</userinput></screen>
  -
  - <para>Falls Sie eine Anwendung <application>program2</application> geschrieben haben,
  - kommt ihre Eingabe nicht von der Tastatur, sondern von der Ausgabe von
  - <application>program1</application>. Gleichermassen geht Ihre Ausgabe nicht
  - auf den Bildschirm, sondern wird zur Eingabe f&uuml;r <application>program3</application>,
  - dessen Ausgabe wiederum in <filename>file1</filename> endet.</para>
  -
  - <para>Aber es gibt noch mehr! Selbst wenn Sie sichergestellt haben, da&szlig; Ihre Eingabe
  - und Ausgabe zum Terminal kommt bzw. gelangt, dann ist immer noch nicht garantiert,
  - da&szlig; ihr Terminal ein PC ist: Es mag seinen Grafikspeicher nicht dort haben, wo Sie
  - ihn erwarten, oder die Tastatur k&ouml;nnte keine <acronym>PC</acronym>-&auml;hnlichen Scancodes
  - erzeugen k&ouml;nnen. Es mag ein &macintosh; oder irgendein anderer Rechner sein.</para>
  -
  - <para>Sie m&ouml;gen nun den Kopf sch&uuml;tteln: Mein Programm ist in <acronym>PC</acronym>-Assembler
  - geschrieben, wie kann es auf einem &macintosh; laufen? Aber ich habe nicht gesagt, da&szlig;
  - Ihr Programm auf &macintosh; l&auml;uft, nur sein Terminal mag ein &macintosh; sein.</para>
  -
  - <para>Unter &unix; mu&szlig; der Terminal nicht direkt am Rechner angeschlossen sein, auf dem
  - die Software l&auml;uft, er kann sgar auf einem anderen Kontinent sein oder sogar auf einem
  - anderen Planeten. Es ist nicht ungew&ouml;hnlich, da&szlig; ein &macintosh;-Nutzer in Australien
  - sich auf ein &unix;-System in Nordamerika (oder sonstwo) mittels
  - <application>telnet</application> verbindet. Die Software l&auml;uft auf einem Rechner
  - w&auml;hrend das Terminal sich auf einem anderen Rechner befindet: Falls Sie versuchen
  - sollten die Scancodes auszulesen werden Sie die falschen Eingaben erhalten!</para>
  -
  - <para>Das Gleiche gilt f&uuml;r jede andere Hardware: Eine Datei, welche Sie einlesen,
  - mag auf einem Laufwerk sein, auf das Sie keinen direkten Zugriff haben. Eine
  - Kamera, deren Bilder Sie auslesen, befindet sich m&ouml;glicherweise in einem
  - Space Shuttle, durch Satelliten mit Ihnen verbunden.</para>
  -
  - <para>Das sind die Gr&uuml;nde, weshalb Sie niemals unter &unix; Annahmen treffen d&uuml;rfen,
  - woher Ihre Daten kommen oder gehen. Lassen Sie immer das System den physischen
  - Zugriff auf die Hardware regeln.</para>
  -
  - <note>
  - <para>Das sind Vorsichtsmassnahmen, keine absoluten Regeln. Ausnahmen sind m&ouml;glich.
  - Wenn zum Beispiel ein Texteditor bestimmt hat, da&szlig; er auf einer lokalen Maschine
  - l&auml;uft, dann mag er die Tastatur-Scancodes direkt auslesen, um eine bessere
  - Kontrolle zu gew&auml;hrleisten. Ich erw&auml;hne diese Vorsichtsmassnahmen nicht, um Ihnen
  - zu sagen, was sie tun oder lassen sollen, ich will Ihnen nur bewusst machen, da&szlig;
  - es bestimmte Fallstrcike gibt, die Sie erwarten, wenn Sie soeben ihn &unix; von
  - <acronym>&ms-dos;</acronym> angelangt sind. Kreative Menschen brechen oft Regeln
  - und das ist in Ordnung, solange sie wissen welche Regeln und warum.</para>
  - </note>
  + <para>Aber es gibt einen viel wichtigeren Grund, weshalb Sie
  + nicht versuchen sollten, die Hardware direkt anzusprechen
  + (nat&uuml;rlich nicht, wenn Sie einen Ger&auml;tetreiber
  + schreiben), selbst auf den &unix;-&auml;hnlichen Systemen, die
  + es Ihnen erlauben:</para>
  +
  + <para><emphasis>&unix; ist eine Abstraktion!</emphasis></para>
  +
  + <para>Es gibt einen wichtigen Unterschied in der
  + Design-Philosophie zwischen <acronym>&ms-dos;</acronym> und
  + &unix;. <acronym>&ms-dos;</acronym> wurde entworfen als
  + Einzelnutzer-System. Es l&auml;uft auf einem Rechner mit einer
  + direkt angeschlossenen Tastatur und einem direkt
  + angeschlossenem Bildschirm. Die Eingaben des Nutzers kommen
  + nahezu immer von dieser Tastatur. Die Ausgabe Ihres Programmes
  + erscheint fast immer auf diesem Bildschirm.</para>
  +
  + <para>Dies ist NIEMALS garantiert unter &unix;. Es ist sehr
  + verbreitet f&uuml;r ein &unix;, da&szlig; der Nutzer seine
  + Aus- und Eingaben kanalisiert und umleitet:</para>
  +
  + <screen>&prompt.user; <userinput>program1 | program2 | program3 &gt; file1</userinput></screen>
  +
  + <para>Falls Sie eine Anwendung
  + <application>program2</application> geschrieben haben, kommt
  + ihre Eingabe nicht von der Tastatur, sondern von der Ausgabe
  + von <application>program1</application>. Gleichermassen geht
  + Ihre Ausgabe nicht auf den Bildschirm, sondern wird zur
  + Eingabe f&uuml;r <application>program3</application>, dessen
  + Ausgabe wiederum in <filename>file1</filename> endet.</para>
  +
  + <para>Aber es gibt noch mehr! Selbst wenn Sie sichergestellt
  + haben, da&szlig; Ihre Eingabe und Ausgabe zum Terminal kommt
  + bzw. gelangt, dann ist immer noch nicht garantiert, da&szlig;
  + ihr Terminal ein PC ist: Es mag seinen Grafikspeicher nicht
  + dort haben, wo Sie ihn erwarten, oder die Tastatur k&ouml;nnte
  + keine <acronym>PC</acronym>-&auml;hnlichen Scancodes erzeugen
  + k&ouml;nnen. Es mag ein &macintosh; oder irgendein anderer
  + Rechner sein.</para>
  +
  + <para>Sie m&ouml;gen nun den Kopf sch&uuml;tteln: Mein
  + Programm ist in <acronym>PC</acronym>-Assembler geschrieben,
  + wie kann es auf einem &macintosh; laufen? Aber ich habe nicht
  + gesagt, da&szlig; Ihr Programm auf &macintosh; l&auml;uft, nur
  + sein Terminal mag ein &macintosh; sein.</para>
  +
  + <para>Unter &unix; mu&szlig; der Terminal nicht direkt am
  + Rechner angeschlossen sein, auf dem die Software l&auml;uft,
  + er kann sgar auf einem anderen Kontinent sein oder sogar auf
  + einem anderen Planeten. Es ist nicht ungew&ouml;hnlich,
  + da&szlig; ein &macintosh;-Nutzer in Australien sich auf ein
  + &unix;-System in Nordamerika (oder sonstwo) mittels
  + <application>telnet</application> verbindet. Die Software
  + l&auml;uft auf einem Rechner w&auml;hrend das Terminal sich

----------------------------------------------
Diff block truncated. (Max lines = 200)
----------------------------------------------

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-cvs-doc" in the body of the message
Received on Wed 08 Aug 2007 - 19:35:15 CEST

search this site