288 lines
20 KiB
HTML
288 lines
20 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
|
|
<!--Converted with LaTeX2HTML 96.1-c (Feb 29, 1996) by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds -->
|
|
<HTML>
|
|
<HEAD>
|
|
<TITLE>Contents</TITLE>
|
|
<META NAME="description" CONTENT="Contents">
|
|
<META NAME="keywords" CONTENT="lpg">
|
|
<META NAME="resource-type" CONTENT="document">
|
|
<META NAME="distribution" CONTENT="global">
|
|
<LINK REL=STYLESHEET HREF="lpg.css">
|
|
</HEAD>
|
|
<BODY LANG="EN">
|
|
<A NAME="tex2html142" HREF="node2.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="next_motif.gif"></A> <A NAME="tex2html140" HREF="lpg.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="up_motif.gif"></A> <A NAME="tex2html134" HREF="lpg.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="previous_motif.gif"></A> <BR>
|
|
<B> Next:</B> <A NAME="tex2html143" HREF="node2.html">1 The Linux operating </A>
|
|
<B>Up:</B> <A NAME="tex2html141" HREF="lpg.html">e</A>
|
|
<B> Previous:</B> <A NAME="tex2html135" HREF="lpg.html">e</A>
|
|
<BR> <P>
|
|
<P><H2><A NAME="SECTION00100000000000000000">Contents</A></H2>
|
|
<UL>
|
|
<LI> <A NAME="tex2html144" HREF="node2.html#SECTION00200000000000000000">1 The Linux operating system</A>
|
|
<LI> <A NAME="tex2html145" HREF="node3.html#SECTION00300000000000000000">2 The Linux kernel</A>
|
|
<LI> <A NAME="tex2html146" HREF="node4.html#SECTION00400000000000000000">3 The Linux libc package</A>
|
|
<LI> <A NAME="tex2html147" HREF="node5.html#SECTION00500000000000000000">4 System calls</A>
|
|
<LI> <A NAME="tex2html148" HREF="node6.html#SECTION00600000000000000000">5 The ``swiss army knife'' ioctl</A>
|
|
<LI> <A NAME="tex2html149" HREF="node7.html#SECTION00700000000000000000">6 Linux Interprocess Communications</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html150" HREF="node8.html#SECTION00710000000000000000">6.1 Introduction</A>
|
|
<LI> <A NAME="tex2html151" HREF="node9.html#SECTION00720000000000000000">6.2 Half-duplex UNIX Pipes</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html152" HREF="node10.html#SECTION00721000000000000000">6.2.1 Basic Concepts</A>
|
|
<LI> <A NAME="tex2html153" HREF="node11.html#SECTION00722000000000000000">6.2.2 Creating Pipes in C</A>
|
|
<LI> <A NAME="tex2html154" HREF="node12.html#SECTION00723000000000000000">6.2.3 Pipes the Easy Way!</A>
|
|
<LI> <A NAME="tex2html155" HREF="node13.html#SECTION00724000000000000000">6.2.4 Atomic Operations with Pipes</A>
|
|
<LI> <A NAME="tex2html156" HREF="node14.html#SECTION00725000000000000000">6.2.5 Notes on half-duplex pipes:</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html157" HREF="node15.html#SECTION00730000000000000000">6.3 Named Pipes (FIFOs - First In First Out)</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html158" HREF="node16.html#SECTION00731000000000000000">6.3.1 Basic Concepts</A>
|
|
<LI> <A NAME="tex2html159" HREF="node17.html#SECTION00732000000000000000">6.3.2 Creating a FIFO</A>
|
|
<LI> <A NAME="tex2html160" HREF="node18.html#SECTION00733000000000000000">6.3.3 FIFO Operations</A>
|
|
<LI> <A NAME="tex2html161" HREF="node19.html#SECTION00734000000000000000">6.3.4 Blocking Actions on a FIFO</A>
|
|
<LI> <A NAME="tex2html162" HREF="node20.html#SECTION00735000000000000000">6.3.5 The Infamous SIGPIPE Signal</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html163" HREF="node21.html#SECTION00740000000000000000">6.4 System V IPC</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html164" HREF="node22.html#SECTION00741000000000000000">6.4.1 Fundamental Concepts</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html165" HREF="node23.html#SECTION00741100000000000000">IPC Identifiers</A>
|
|
<LI> <A NAME="tex2html166" HREF="node24.html#SECTION00741200000000000000">IPC Keys</A>
|
|
<LI> <A NAME="tex2html167" HREF="node25.html#SECTION00741300000000000000">The <TT>ipcs</TT> Command</A>
|
|
<LI> <A NAME="tex2html168" HREF="node26.html#SECTION00741400000000000000">The <TT>ipcrm</TT> Command</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html169" HREF="node27.html#SECTION00742000000000000000">6.4.2 Message Queues</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html170" HREF="node28.html#SECTION00742100000000000000">Basic Concepts</A>
|
|
<LI> <A NAME="tex2html171" HREF="node29.html#SECTION00742200000000000000">Internal and User Data Structures</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html172" HREF="node30.html#SECTION00742210000000000000">Message buffer</A>
|
|
<LI> <A NAME="tex2html173" HREF="node31.html#SECTION00742220000000000000">Kernel <TT>msg</TT> structure</A>
|
|
<LI> <A NAME="tex2html174" HREF="node32.html#SECTION00742230000000000000">Kernel <TT>msqid_ds</TT> structure</A>
|
|
<LI> <A NAME="tex2html175" HREF="node33.html#SECTION00742240000000000000">Kernel <TT>ipc_perm</TT> structure</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html176" HREF="node34.html#SECTION00742300000000000000">SYSTEM CALL: msgget()</A>
|
|
<LI> <A NAME="tex2html177" HREF="node35.html#SECTION00742400000000000000">SYSTEM CALL: msgsnd()</A>
|
|
<LI> <A NAME="tex2html178" HREF="node36.html#SECTION00742500000000000000">SYSTEM CALL: msgctl()</A>
|
|
<LI> <A NAME="tex2html179" HREF="node37.html#SECTION00742600000000000000">msgtool: An interactive message queue manipulator</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html180" HREF="node38.html#SECTION00742610000000000000">Background</A>
|
|
<LI> <A NAME="tex2html181" HREF="node39.html#SECTION00742620000000000000">Command Line Syntax</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html182" HREF="node40.html#SECTION00742621000000000000">Sending Messages </A>
|
|
<LI> <A NAME="tex2html183" HREF="node41.html#SECTION00742622000000000000">Retrieving Messages</A>
|
|
<LI> <A NAME="tex2html184" HREF="node42.html#SECTION00742623000000000000">Changing the Permissions (mode)</A>
|
|
<LI> <A NAME="tex2html185" HREF="node43.html#SECTION00742624000000000000">Deleting a Queue</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html186" HREF="node44.html#SECTION00742630000000000000">Examples</A>
|
|
<LI> <A NAME="tex2html187" HREF="node45.html#SECTION00742640000000000000">The Source</A>
|
|
</UL>
|
|
</UL>
|
|
<LI> <A NAME="tex2html188" HREF="node46.html#SECTION00743000000000000000">6.4.3 Semaphores</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html189" HREF="node47.html#SECTION00743100000000000000">Basic Concepts</A>
|
|
<LI> <A NAME="tex2html190" HREF="node48.html#SECTION00743200000000000000">Internal Data Structures</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html191" HREF="node49.html#SECTION00743210000000000000">Kernel <TT>semid_ds</TT> structure</A>
|
|
<LI> <A NAME="tex2html192" HREF="node50.html#SECTION00743220000000000000">Kernel <TT>sem</TT> structure</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html193" HREF="node51.html#SECTION00743300000000000000">SYSTEM CALL: semget()</A>
|
|
<LI> <A NAME="tex2html194" HREF="node52.html#SECTION00743400000000000000">SYSTEM CALL: semop()</A>
|
|
<LI> <A NAME="tex2html195" HREF="node53.html#SECTION00743500000000000000">SYSTEM CALL: semctl()</A>
|
|
<LI> <A NAME="tex2html196" HREF="node54.html#SECTION00743600000000000000">semtool: An interactive semaphore manipulator</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html197" HREF="node55.html#SECTION00743610000000000000">Background</A>
|
|
<LI> <A NAME="tex2html198" HREF="node56.html#SECTION00743620000000000000">Command Line Syntax</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html199" HREF="node57.html#SECTION00743621000000000000">Creating a Semaphore Set</A>
|
|
<LI> <A NAME="tex2html200" HREF="node58.html#SECTION00743622000000000000">Locking a Semaphore</A>
|
|
<LI> <A NAME="tex2html201" HREF="node59.html#SECTION00743623000000000000">Unlocking a Semaphore</A>
|
|
<LI> <A NAME="tex2html202" HREF="node60.html#SECTION00743624000000000000">Changing the Permissions (mode)</A>
|
|
<LI> <A NAME="tex2html203" HREF="node61.html#SECTION00743625000000000000">Deleting a Semaphore Set</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html204" HREF="node62.html#SECTION00743630000000000000">Examples</A>
|
|
<LI> <A NAME="tex2html205" HREF="node63.html#SECTION00743640000000000000">The Source</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html206" HREF="node64.html#SECTION00743700000000000000">semstat: A semtool companion program</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html207" HREF="node65.html#SECTION00744000000000000000">6.4.4 Shared Memory</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html208" HREF="node66.html#SECTION00744100000000000000">Basic Concepts</A>
|
|
<LI> <A NAME="tex2html209" HREF="node67.html#SECTION00744200000000000000">Internal and User Data Structures</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html210" HREF="node68.html#SECTION00744210000000000000">Kernel <TT>shmid_ds</TT> structure</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html211" HREF="node69.html#SECTION00744300000000000000">SYSTEM CALL: shmget()</A>
|
|
<LI> <A NAME="tex2html212" HREF="node70.html#SECTION00744400000000000000">SYSTEM CALL: shmat()</A>
|
|
<LI> <A NAME="tex2html213" HREF="node71.html#SECTION00744500000000000000">SYSTEM CALL: shmctl()</A>
|
|
<LI> <A NAME="tex2html214" HREF="node72.html#SECTION00744600000000000000">SYSTEM CALL: shmdt()</A>
|
|
<LI> <A NAME="tex2html215" HREF="node73.html#SECTION00744700000000000000">shmtool: An interactive shared memory manipulator</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html216" HREF="node74.html#SECTION00744710000000000000">Background</A>
|
|
<LI> <A NAME="tex2html217" HREF="node75.html#SECTION00744720000000000000">Command Line Syntax</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html218" HREF="node76.html#SECTION00744721000000000000">Writing strings to the segment</A>
|
|
<LI> <A NAME="tex2html219" HREF="node77.html#SECTION00744722000000000000">Retrieving strings from the segment</A>
|
|
<LI> <A NAME="tex2html220" HREF="node78.html#SECTION00744723000000000000">Changing the Permissions (mode)</A>
|
|
<LI> <A NAME="tex2html221" HREF="node79.html#SECTION00744724000000000000">Deleting the segment</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html222" HREF="node80.html#SECTION00744730000000000000">Examples</A>
|
|
<LI> <A NAME="tex2html223" HREF="node81.html#SECTION00744740000000000000">The Source</A>
|
|
</UL>
|
|
</UL>
|
|
</UL>
|
|
</UL>
|
|
<LI> <A NAME="tex2html224" HREF="node82.html#SECTION00800000000000000000">7 Sound Programming</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html225" HREF="node83.html#SECTION00810000000000000000">7.1 Programming the internal speaker</A>
|
|
<LI> <A NAME="tex2html226" HREF="node84.html#SECTION00820000000000000000">7.2 Programming a sound card</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html227" HREF="node85.html#SECTION00900000000000000000">8 Character Cell Graphics</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html228" HREF="node86.html#SECTION00910000000000000000">8.1 I/O Function in libc</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html229" HREF="node87.html#SECTION00911000000000000000">8.1.1 Formatted Output</A>
|
|
<LI> <A NAME="tex2html230" HREF="node88.html#SECTION00912000000000000000">8.1.2 Formatted Input</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html231" HREF="node89.html#SECTION00920000000000000000">8.2 The Termcap Library</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html232" HREF="node90.html#SECTION00921000000000000000">8.2.1 Introduction</A>
|
|
<LI> <A NAME="tex2html233" HREF="node91.html#SECTION00922000000000000000">8.2.2 Find a Terminal Description</A>
|
|
<LI> <A NAME="tex2html234" HREF="node92.html#SECTION00923000000000000000">8.2.3 Look at a Terminal Description</A>
|
|
<LI> <A NAME="tex2html235" HREF="node93.html#SECTION00924000000000000000">8.2.4 Termcap Capabilities</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html236" HREF="node94.html#SECTION00924100000000000000">Boolean Capabilities</A>
|
|
<LI> <A NAME="tex2html237" HREF="node95.html#SECTION00924200000000000000">Numeric Capabilities</A>
|
|
<LI> <A NAME="tex2html238" HREF="node96.html#SECTION00924300000000000000">String Capabilities</A>
|
|
</UL>
|
|
</UL>
|
|
<LI> <A NAME="tex2html239" HREF="node97.html#SECTION00930000000000000000">8.3 Ncurses - Introduction</A>
|
|
<LI> <A NAME="tex2html240" HREF="node98.html#SECTION00940000000000000000">8.4 Initializing</A>
|
|
<LI> <A NAME="tex2html241" HREF="node99.html#SECTION00950000000000000000">8.5 Windows</A>
|
|
<LI> <A NAME="tex2html242" HREF="node100.html#SECTION00960000000000000000">8.6 Output</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html243" HREF="node101.html#SECTION00961000000000000000">8.6.1 Formatted Output</A>
|
|
<LI> <A NAME="tex2html244" HREF="node102.html#SECTION00962000000000000000">8.6.2 Insert Characters/Lines</A>
|
|
<LI> <A NAME="tex2html245" HREF="node103.html#SECTION00963000000000000000">8.6.3 Delete Characters/Lines</A>
|
|
<LI> <A NAME="tex2html246" HREF="node104.html#SECTION00964000000000000000">8.6.4 Boxes and Lines</A>
|
|
<LI> <A NAME="tex2html247" HREF="node105.html#SECTION00965000000000000000">8.6.5 Background Character</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html248" HREF="node106.html#SECTION00970000000000000000">8.7 Input</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html249" HREF="node107.html#SECTION00971000000000000000">8.7.1 Formated Input</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html250" HREF="node108.html#SECTION00980000000000000000">8.8 Options</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html251" HREF="node109.html#SECTION00980100000000000000">Output Options</A>
|
|
<LI> <A NAME="tex2html252" HREF="node110.html#SECTION00981000000000000000">8.8.1 Input Options</A>
|
|
<LI> <A NAME="tex2html253" HREF="node111.html#SECTION00982000000000000000">8.8.2 Terminal Attributes</A>
|
|
<LI> <A NAME="tex2html254" HREF="node112.html#SECTION00983000000000000000">8.8.3 Use Options</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html255" HREF="node113.html#SECTION00990000000000000000">8.9 Clear Window and Lines</A>
|
|
<LI> <A NAME="tex2html256" HREF="node114.html#SECTION009100000000000000000">8.10 Updating the Terminal</A>
|
|
<LI> <A NAME="tex2html257" HREF="node115.html#SECTION009110000000000000000">8.11 Video Attributes and Color</A>
|
|
<LI> <A NAME="tex2html258" HREF="node116.html#SECTION009120000000000000000">8.12 Cursor and Window Coordinates</A>
|
|
<LI> <A NAME="tex2html259" HREF="node117.html#SECTION009130000000000000000">8.13 Scrolling</A>
|
|
<LI> <A NAME="tex2html260" HREF="node118.html#SECTION009140000000000000000">8.14 Pads</A>
|
|
<LI> <A NAME="tex2html261" HREF="node119.html#SECTION009150000000000000000">8.15 Soft-labels</A>
|
|
<LI> <A NAME="tex2html262" HREF="node120.html#SECTION009160000000000000000">8.16 Miscellaneous</A>
|
|
<LI> <A NAME="tex2html263" HREF="node121.html#SECTION009170000000000000000">8.17 Low-level Access</A>
|
|
<LI> <A NAME="tex2html264" HREF="node122.html#SECTION009180000000000000000">8.18 Screen Dump</A>
|
|
<LI> <A NAME="tex2html265" HREF="node123.html#SECTION009190000000000000000">8.19 Termcap Emulation</A>
|
|
<LI> <A NAME="tex2html266" HREF="node124.html#SECTION009200000000000000000">8.20 Terminfo Functions</A>
|
|
<LI> <A NAME="tex2html267" HREF="node125.html#SECTION009210000000000000000">8.21 Debug Function</A>
|
|
<LI> <A NAME="tex2html268" HREF="node126.html#SECTION009220000000000000000">8.22 Terminfo Capabilities</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html269" HREF="node127.html#SECTION009221000000000000000">8.22.1 Boolean Capabilities</A>
|
|
<LI> <A NAME="tex2html270" HREF="node128.html#SECTION009222000000000000000">8.22.2 Numbers</A>
|
|
<LI> <A NAME="tex2html271" HREF="node129.html#SECTION009223000000000000000">8.22.3 Strings</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html272" HREF="node130.html#SECTION009230000000000000000">8.23 [N]Curses Function Overview</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html273" HREF="node131.html#SECTION001000000000000000000">9 Programming I/O ports</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html274" HREF="node132.html#SECTION001010000000000000000">9.1 Mouse Programming</A>
|
|
<LI> <A NAME="tex2html275" HREF="node133.html#SECTION001020000000000000000">9.2 Modem Programming</A>
|
|
<LI> <A NAME="tex2html276" HREF="node134.html#SECTION001030000000000000000">9.3 Printer Programming</A>
|
|
<LI> <A NAME="tex2html277" HREF="node135.html#SECTION001040000000000000000">9.4 Joystick Programming</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html278" HREF="node136.html#SECTION001100000000000000000">10 Porting Applications to Linux</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html279" HREF="node137.html#SECTION001110000000000000000">10.1 Introduction</A>
|
|
<LI> <A NAME="tex2html280" HREF="node138.html#SECTION001120000000000000000">10.2 Signal handling</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html281" HREF="node139.html#SECTION001121000000000000000">10.2.1 Signals under SVR4, BSD, and POSIX.1</A>
|
|
<LI> <A NAME="tex2html282" HREF="node140.html#SECTION001122000000000000000">10.2.2 Linux signal options</A>
|
|
<LI> <A NAME="tex2html283" HREF="node141.html#SECTION001123000000000000000">10.2.3 <EM>signal</EM> under Linux</A>
|
|
<LI> <A NAME="tex2html284" HREF="node142.html#SECTION001124000000000000000">10.2.4 Signals supported by Linux</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html285" HREF="node143.html#SECTION001130000000000000000">10.3 Terminal I/O</A>
|
|
<LI> <A NAME="tex2html286" HREF="node144.html#SECTION001140000000000000000">10.4 Process information and control</A>
|
|
<UL>
|
|
<LI> <A NAME="tex2html287" HREF="node145.html#SECTION001141000000000000000">10.4.1 <EM>kvm</EM> routines</A>
|
|
<LI> <A NAME="tex2html288" HREF="node146.html#SECTION001142000000000000000">10.4.2 <EM>ptrace</EM> and the <EM>/proc</EM> filesystem</A>
|
|
<LI> <A NAME="tex2html289" HREF="node147.html#SECTION001143000000000000000">10.4.3 Process control under Linux</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html290" HREF="node148.html#SECTION001150000000000000000">10.5 Portable conditional compilation</A>
|
|
<LI> <A NAME="tex2html291" HREF="node149.html#SECTION001160000000000000000">10.6 Additional Comments</A>
|
|
</UL>
|
|
<LI> <A NAME="tex2html292" HREF="node150.html#SECTION001200000000000000000">11 Systemcalls in alphabetical order</A>
|
|
<LI> <A NAME="tex2html293" HREF="node151.html#SECTION001300000000000000000">12 Abbreviations</A>
|
|
<LI> <A NAME="tex2html294" HREF="node152.html#SECTION001400000000000000000"> About this document ... </A>
|
|
</UL>
|
|
<P>
|
|
<UL><LI> Copyright <BR>
|
|
The Linux Programmer's Guide is © 1994, 1995 by Sven Goldt <BR>
|
|
Sven Goldt, Sachsendamm 47b, 10829 Berlin, Germany <BR>
|
|
<<I>goldt</I>@<I>math</I>.<I>tu</I>-<I>berlin</I>.<I>de</I>>. <BR>
|
|
Chapter <A HREF="node85.html#vdm">8</A> is © 1994, 1995 by Sven van der Meer
|
|
<<I>vdmeer</I>@<I>cs</I>.<I>tu</I>-<I>berlin</I>.<I>de</I>>.<BR>
|
|
Chapter <A HREF="node7.html#scott">6</A> is © 1995 Scott Burkett
|
|
<<I>scottb</I>@<I>IntNet</I>.<I>net</I>>.<BR>
|
|
Chapter <A HREF="node136.html#mdw">10</A> is © 1994, 1995 Matt Welsh
|
|
<<I>mdw</I>@<I>cs</I>.<I>cornell</I>.<I>edu</I>>.<BR>
|
|
Special thanks goes to John D. Harper <<I>jharper</I>@<I>uiuc</I>.<I>edu</I>>
|
|
for proofreading this guide.<BR>
|
|
Permission to reproduce this document in whole or in part is
|
|
subject to the following conditions:
|
|
<OL><LI> The copyright notice remains intact and is included.<LI> If you make money with it the authors want a share.<LI> The authors are not responsible for any harm that might arise
|
|
by the use of it.
|
|
</OL> <LI> Preface <BR>
|
|
This guide is far from being complete.<BR>
|
|
The first release started at version 0.1 in September 1994.
|
|
It concentrated on system calls because of lack of manpower and information.
|
|
Planned are the description of library functions and major kernel
|
|
changes as well as excursions into important areas like networking, sound,
|
|
graphics and asynchronous I/O. Maybe some hints about how to build
|
|
shared libraries and pointers to useful toolkits will later
|
|
be included.<BR>
|
|
This guide will only be a success with generous help in the form
|
|
of information or perhaps even submission of whole chapters.<LI> Introduction <BR>
|
|
Once upon a time I installed Linux on my PC to learn more about
|
|
system administration. I tried to install a slip server but it didn't
|
|
work with shadow and mgetty. I had to patch sliplogin and it worked
|
|
until the new Linux 1.1 releases. No one could tell me what had
|
|
happened. There was no documentation about changes since the 0.99
|
|
kernel except the kernel change summaries from Russ Nelson, but they
|
|
didn't help me very much in solving problems.
|
|
<P>
|
|
The Linux Programmer's Guide is meant to do what the name implies--
|
|
It is to help Linux programmers understand the peculiarities of
|
|
Linux. By its nature, this also means that it
|
|
should be useful when porting programs from other operating systems to
|
|
Linux. Therefore, this guide must describe the system calls and the
|
|
major kernel changes which have effects on older programs like serial
|
|
I/O and networking.
|
|
<P>
|
|
</UL>
|
|
<P>
|
|
<HR><A NAME="tex2html142" HREF="node2.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="next_motif.gif"></A> <A NAME="tex2html140" HREF="lpg.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="up_motif.gif"></A> <A NAME="tex2html134" HREF="lpg.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="previous_motif.gif"></A> <BR>
|
|
<B> Next:</B> <A NAME="tex2html143" HREF="node2.html">1 The Linux operating </A>
|
|
<B>Up:</B> <A NAME="tex2html141" HREF="lpg.html">e</A>
|
|
<B> Previous:</B> <A NAME="tex2html135" HREF="lpg.html">e</A>
|
|
<P><ADDRESS>
|
|
<I>Converted on: <BR>
|
|
Fri Mar 29 14:43:04 EST 1996</I>
|
|
</ADDRESS>
|
|
</BODY>
|
|
</HTML>
|