initial version
This commit is contained in:
BIN
Linus/911010.pdf
Normal file
BIN
Linus/911010.pdf
Normal file
Binary file not shown.
30
Linus/Linux.css
Normal file
30
Linus/Linux.css
Normal file
@@ -0,0 +1,30 @@
|
||||
/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
|
||||
.MATH { font-family: "Century Schoolbook", serif; }
|
||||
.MATH I { font-family: "Century Schoolbook", serif; font-style: italic }
|
||||
.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
|
||||
|
||||
/* implement both fixed-size and relative sizes */
|
||||
SMALL.XTINY { font-size : xx-small }
|
||||
SMALL.TINY { font-size : x-small }
|
||||
SMALL.SCRIPTSIZE { font-size : smaller }
|
||||
SMALL.FOOTNOTESIZE { font-size : small }
|
||||
SMALL.SMALL { }
|
||||
BIG.LARGE { }
|
||||
BIG.XLARGE { font-size : large }
|
||||
BIG.XXLARGE { font-size : x-large }
|
||||
BIG.HUGE { font-size : larger }
|
||||
BIG.XHUGE { font-size : xx-large }
|
||||
|
||||
/* heading styles */
|
||||
H1 { }
|
||||
H2 { }
|
||||
H3 { }
|
||||
H4 { }
|
||||
H5 { }
|
||||
|
||||
/* mathematics styles */
|
||||
DIV.displaymath { } /* math displays */
|
||||
TD.eqno { } /* equation-number cells */
|
||||
|
||||
|
||||
/* document-specific styles come next */
|
||||
553
Linus/Linux.html
Normal file
553
Linus/Linux.html
Normal file
@@ -0,0 +1,553 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
|
||||
<!--Converted with jLaTeX2HTML 2002 (1.62) JA patch-1.4
|
||||
patched version by: Kenshi Muto, Debian Project.
|
||||
LaTeX2HTML 2002 (1.62),
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>LINUX--a free unix-386 kernel</TITLE>
|
||||
<META NAME="description" CONTENT="LINUX--a free unix-386 kernel">
|
||||
<META NAME="keywords" CONTENT="Linux">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Generator" CONTENT="jLaTeX2HTML v2002 JA patch-1.4">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="Linux.css">
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<IMG WIDTH="81" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next_inactive" SRC="nx_grp_g.png">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_g.png">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev_g.png">
|
||||
<BR>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
<H1 ALIGN="CENTER">L<SMALL>INUX</SMALL>--a free unix-386 kernel</H1>
|
||||
<P ALIGN="CENTER"><STRONG>Linus Torvalds (torvalds@kruuna.helsinki.fi)</STRONG></P>
|
||||
<P ALIGN="CENTER"><STRONG>October 10, 1991</STRONG></P>
|
||||
|
||||
<P>
|
||||
|
||||
<H1><A NAME="SECTION00010000000000000000">
|
||||
Introduction to L<SMALL>INUX</SMALL></A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
|
||||
<H2><A NAME="SECTION00011000000000000000">
|
||||
What is L<SMALL>INUX</SMALL>?</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
L<SMALL>INUX</SMALL> is a free unix-like kernel for 386-AT computers, coming with
|
||||
full source code. It is meant for hackers/computer science students to
|
||||
use, learn and enjoy. It is written mostly in <TT><B>C</B></TT>, but parts of
|
||||
it are in gnu-format assembler, and the boot-sequence is in intel 086
|
||||
assembly language. The <TT><B>C</B></TT>-code is relatively ANSI, with a few
|
||||
GNU enhancements (mostly <TT>__asm__</TT> and <TT>inline</TT>).
|
||||
|
||||
<P>
|
||||
While there are a number of unices available for 386 computers, most of
|
||||
them cost a lot of money, and come with no source. Thus, they are ideal
|
||||
for actually <I>using</I> your computer, but if you want to learn how
|
||||
they work, you are f- -ked.
|
||||
|
||||
<P>
|
||||
There are also a few unices available with source. Minix, the learning
|
||||
tool written by Andrew S. Tanenbaum, has been used in universities as a
|
||||
teaching tool for years. The BSD-386 system comes with source, but has a
|
||||
restrictive copyright and costs a lot of money ($995 is the starting
|
||||
price, I think). The GNU kernel (Hurd) will be free, but is currently
|
||||
not ready, and will be too big to understand and learn.
|
||||
|
||||
<P>
|
||||
L<SMALL>INUX</SMALL> most closely resembles Minix, in that it is small and not very
|
||||
sophisticated, and thus easy (well...) to understand. L<SMALL>INUX</SMALL> was
|
||||
also written under Minix, so there are quite a bit of similarities, and
|
||||
any Minix hacker will feel relatively at home with L<SMALL>INUX</SMALL>. None of the
|
||||
Minix code was used in the project though, so the Minix copyright
|
||||
doesn't cover the new system. It also is <I>completely free</I>, and has
|
||||
a very loose copyright. Thus there is no need for megabytes of diffs
|
||||
like under Minix.
|
||||
|
||||
<P>
|
||||
|
||||
<H2><A NAME="SECTION00012000000000000000">
|
||||
The L<SMALL>INUX</SMALL> copyright</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
While being freely distributable, I do restrict the use of L<SMALL>INUX</SMALL> in a
|
||||
few ways:
|
||||
|
||||
<UL>
|
||||
<LI>You may freely copy and redistribute the source and binaries, <B>as long as:</B>
|
||||
|
||||
<UL>
|
||||
<LI>complete source is available. Thus binaries may not be distributed
|
||||
by themselves, even if you have made changes to them.
|
||||
</LI>
|
||||
<LI>you do not profit from the distribution. In fact even ``handling
|
||||
costs'' are not acceptable.
|
||||
</LI>
|
||||
<LI>you keep the appropriate copyrights intact.
|
||||
</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI>You may change the source to your liking, but if you distribute
|
||||
parts of the new system (or just binaries), all the new code must be
|
||||
included.
|
||||
</LI>
|
||||
<LI>You may make small excepts from the code without including
|
||||
copyrights. This is up to you, but a reference to me or the code would
|
||||
be appreciated.
|
||||
</LI>
|
||||
</UL>
|
||||
This should be loose enough not to cause any worry in anybody using or
|
||||
expanding the system. If you have a friend who really doesn't want the
|
||||
source, but just a working binary, you may of course give it to him
|
||||
without worrying whether I will sue you. Keep it between friends, though.
|
||||
|
||||
<P>
|
||||
|
||||
<H2><A NAME="SECTION00013000000000000000">
|
||||
Hardware/software needed to get L<SMALL>INUX</SMALL> running</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
L<SMALL>INUX</SMALL> was written on a 386-AT running Minix. As L<SMALL>INUX</SMALL> is a real
|
||||
operating system, and goes directly to the hardware to do things, you
|
||||
have to have a very similar system to get it going without problems:
|
||||
|
||||
<UL>
|
||||
<LI>386-AT (PS/2's are different enough that things won't work)
|
||||
</LI>
|
||||
<LI>VGA or EGA screen hardware.
|
||||
</LI>
|
||||
<LI>Standard AT hard-disk interface, IDE disks work fine (in fact
|
||||
that's what I use).
|
||||
</LI>
|
||||
<LI>Normal real-mode BIOS. Some machines seem to use virtual-86 mode
|
||||
to run the bootup program, and on such machines L<SMALL>INUX</SMALL> won't boot up
|
||||
and run correctly.
|
||||
</LI>
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
While L<SMALL>INUX</SMALL> will be expanded to be a self-sufficient system, Minix-386
|
||||
is currently needed to get the ball rolling. You need Minix to make the
|
||||
initial root file system, and to compile the OS binary. After that
|
||||
L<SMALL>INUX</SMALL> is a self-sufficient system, but Minix is recommended in order
|
||||
to make file system checking (<TT>fsck</TT>) and to recompile the system
|
||||
after making changes.
|
||||
|
||||
<P>
|
||||
|
||||
<H2><A NAME="SECTION00014000000000000000">
|
||||
Getting L<SMALL>INUX</SMALL></A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
L<SMALL>INUX</SMALL> can currently be gotten by anonymous <TT>ftp</TT> from <TT>`nic.funet.fi'</TT> in the
|
||||
directory <TT>'/pub/OS/Linux'</TT>. This directory contains the full source to the operating
|
||||
system, as well as a couple of binaries so that you can actually use the
|
||||
system.
|
||||
|
||||
<P>
|
||||
<BR><B>NOTE! The binaries are mostly GNU software,
|
||||
and are under a stricter copyright (the GNU copyleft) than the </B>L<SMALL>INUX</SMALL><B> sources. Thus you may not redistribute them without distributing their
|
||||
source, found in <TT>/pub/GNU</TT>. See any GNU software package for more
|
||||
information on the GNU copyleft.
|
||||
<BR></B>
|
||||
|
||||
<P>
|
||||
The various files found in this directory are:
|
||||
|
||||
<UL>
|
||||
<LI><TT>linux-0.03.tar.Z</TT>--complete source to the operating system,
|
||||
in a 16-bit compressed tar archive.
|
||||
</LI>
|
||||
<LI><TT>Linux.tex</TT>--L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X source for this file.
|
||||
</LI>
|
||||
<LI><TT>bash.Z</TT>--bash binary to run under L<SMALL>INUX</SMALL>. This binary should
|
||||
be put under tha name <TT>/bin/sh</TT> in the file system reserved for
|
||||
L<SMALL>INUX</SMALL> (see installation).
|
||||
</LI>
|
||||
<LI><TT>update.Z</TT>--update binary, to be put in <TT>/bin/update</TT>.
|
||||
</LI>
|
||||
<LI><TT>gccbin.tar.Z</TT>--GNU cc binaries needed to get a working
|
||||
compiler. This tarred archive contains the compiler, loader, assembler
|
||||
and support programs (nm, strip etc). It also contains a small library
|
||||
sufficient for most programs.
|
||||
</LI>
|
||||
<LI><TT>include.tar.Z</TT>--include-files necessary to get gcc working.
|
||||
</LI>
|
||||
<LI><TT>unistd.tar.Z</TT>--source to the unistd library routines (ie
|
||||
system call interface). With this you can build a bigger library by
|
||||
using system-independent library sources.
|
||||
</LI>
|
||||
<LI><TT>utilbin.tar.Z</TT>--binaries to various GNU utilities, including
|
||||
GNU fileutils, make and tar. Also contains the emacs-clone <TT>uemacs</TT>.
|
||||
</LI>
|
||||
<LI><TT>README, RELNOTES-0.01, INSTALLATION</TT>--ascii files containing
|
||||
some (somewhat out-of-date) information about L<SMALL>INUX</SMALL>.
|
||||
</LI>
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
The absolute minimum needed to get a system going is the OS source and
|
||||
the bash and update binaries. You won't be doing much with just these
|
||||
though.
|
||||
|
||||
<P>
|
||||
|
||||
<H1><A NAME="SECTION00020000000000000000">
|
||||
Installation</A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
After you have gotten the necessary L<SMALL>INUX</SMALL> files, you need to compile
|
||||
the system and make a root directory. The necessary binaries need to be
|
||||
put in the root file system.
|
||||
Do this:
|
||||
|
||||
<OL>
|
||||
<LI>Back up your software. While L<SMALL>INUX</SMALL> never has destroyed any of my
|
||||
files, nothing is certain. Better safe than sorry.
|
||||
</LI>
|
||||
<LI>Choose/make a standard Minix HD-partition to be the new L<SMALL>INUX</SMALL> root
|
||||
file system.
|
||||
</LI>
|
||||
<LI>Make the necessary device nodes on the new root. L<SMALL>INUX</SMALL> uses the
|
||||
same type of nodes as Minix, so use the Minix <TT>mknod</TT> command to
|
||||
make the following devices:
|
||||
|
||||
<UL>
|
||||
<LI><TT>/dev/tty</TT>
|
||||
</LI>
|
||||
<LI><TT>/dev/tty[0-2]</TT>
|
||||
</LI>
|
||||
<LI><TT>/dev/hd[0-9]</TT>
|
||||
</LI>
|
||||
</UL>
|
||||
Node numbers are the same as in Minix.
|
||||
</LI>
|
||||
<LI>Move the necessary files to the new root partition. The files
|
||||
should be in the following directories:
|
||||
|
||||
<UL>
|
||||
<LI><TT>/bin:</TT>
|
||||
|
||||
<UL>
|
||||
<LI><TT>sh</TT>, ie <TT>bash.Z</TT>.
|
||||
</LI>
|
||||
<LI><TT>update</TT>
|
||||
</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI><TT>/usr/bin:</TT>
|
||||
|
||||
<UL>
|
||||
<LI>Contents of <TT>utilbin.tar.Z</TT>
|
||||
</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI><TT>/usr/include:</TT>
|
||||
|
||||
<UL>
|
||||
<LI>Contents of <TT>include.tar.Z</TT>
|
||||
</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI><TT>/usr/local/lib:</TT>
|
||||
|
||||
<UL>
|
||||
<LI>Contents of <TT>gccbin.tar.Z</TT>, excepting <TT>gcc</TT>
|
||||
</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI><TT>/usr/local/bin:</TT>
|
||||
|
||||
<UL>
|
||||
<LI><TT>gcc</TT>
|
||||
</LI>
|
||||
<LI>links to files in <TT>/usr/local/lib</TT> of your choice. I link
|
||||
<TT>ld</TT>, <TT>as</TT>, <TT>nm</TT>, <TT>strip</TT> and <TT>size</TT> to their
|
||||
counterparts in <TT>/usr/local/lib/gcc-XXX</TT>.
|
||||
</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI>Edit the <TT>linux/include/linux/config.h</TT> file for your system.
|
||||
This file contains the system-specific information: memory space, disk
|
||||
types, root partition number (again the numbering is the same as in
|
||||
Minix), keyboard type (currently just US and Finnish) etc.
|
||||
</LI>
|
||||
<LI>Compile the L<SMALL>INUX</SMALL> sources. A simple <TT>make</TT> should do the
|
||||
trick, after you have edited the <TT>makefile</TT>s to suit your system
|
||||
(ie, removed the <TT>-mstring-insns</TT> flag and changed the paths to suit
|
||||
you.) Users of <TT>gcc</TT> versions earlier than 1.40 will probably have
|
||||
to add <TT>gnulib</TT> to the `<TT>LIBS =</TT>'-line in the <TT>makefile</TT>.
|
||||
</LI>
|
||||
<LI>Copy the resultant <TT>Image</TT>-file to a floppy (ie, <TT>cp Image
|
||||
/dev/PS0</TT> or similar.)
|
||||
</LI>
|
||||
<LI>Reboot with the new floppy. The startup screen should tell you
|
||||
that the system is booting (<TT>Loading system ...</TT>), then some vital
|
||||
root file system information (<TT>xxx/XXX inodes/blocks free</TT>),
|
||||
followed by a <TT>Ok.</TT> and the bash prompt (initially <TT>bash#</TT> if
|
||||
you have no <TT>.bashrc</TT> file).
|
||||
</LI>
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
Hopefully you now have a functioning unix, and you are logged in as
|
||||
<TT>root</TT>. L<SMALL>INUX</SMALL> currently has no <TT>'init'</TT> process, and as soon
|
||||
as you log out, the system will <TT>sync</TT> and just wait. Use the
|
||||
three-finger-salute to reboot your machine.
|
||||
|
||||
<P>
|
||||
</LI>
|
||||
</OL>
|
||||
|
||||
<P>
|
||||
|
||||
<H1><A NAME="SECTION00030000000000000000">
|
||||
Things missing/incomplete in L<SMALL>INUX</SMALL></A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
While L<SMALL>INUX</SMALL> is meant to be a fully selfsufficient kernel, this is
|
||||
currently not the case. As already mentioned, you need Minix to set
|
||||
things up, and to check the file system once it's running. There are a
|
||||
number of other deficiencies:
|
||||
|
||||
<UL>
|
||||
<LI>Incomplete hardware-support. Some of the standard features of an
|
||||
AT are not currently supported. Most notably are floppy disk drives,
|
||||
making using L<SMALL>INUX</SMALL> for real work (backing up etc) currently not
|
||||
possible. Also some of the features of the serial lines aren't yet
|
||||
implemented (hard-wired to 2400bps, no hang-up notification etc).
|
||||
</LI>
|
||||
<LI>Incomplete standard C library. The <TT>libc.a</TT> found in the gcc
|
||||
distribution package is not complete, and I'm very much interested in
|
||||
freely distributable library functions.
|
||||
</LI>
|
||||
<LI>Some of the system calls are not fully implemented. This concerns
|
||||
mostly ``seldom-used'' features like debugging (yeah, who needs it
|
||||
anyway, don't all your programs work the first time <TT>:-)</TT> and some
|
||||
other features.
|
||||
</LI>
|
||||
<LI>As mentioned, no <TT>login</TT> and <TT>init</TT> processes. Currently
|
||||
L<SMALL>INUX</SMALL> boots up in single-user mode, with the root as console-user.
|
||||
This is enough for some porting work, but not really practical.
|
||||
</LI>
|
||||
<LI>387-support is not yet implemented, although some skeleton
|
||||
routines are present. The gcc-binary found on <TT>`nic.funet.fi'</TT> will correctly use
|
||||
soft-float (ie emulation function calls) for the four basic math
|
||||
operations. 387-support will materialize as soon as a 387 finds its way
|
||||
into my computer. Hopefully in a month or two.
|
||||
</LI>
|
||||
<LI>None of the important system-administration commands has yet been
|
||||
written for L<SMALL>INUX</SMALL>. These include things like <TT>mkfs</TT>, <TT>format</TT>,
|
||||
<TT>fsck</TT>, <TT>mknod</TT> etc. Some of these need kernel features not yet
|
||||
implemented (<TT>format</TT>, <TT>mknod</TT>), some just need to be written.
|
||||
As with the library, I'd welcome any freely distributable files.
|
||||
</LI>
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
As you can see, L<SMALL>INUX</SMALL> is as yet not a complete system. Your help is
|
||||
appreciated to make it better. I'm not interested in Minix-commands
|
||||
rewritten for L<SMALL>INUX</SMALL>, unless you have written them yourself from
|
||||
scratch. You are of course free (and encouraged) to use everything you
|
||||
have in your Minix-distribution for your own L<SMALL>INUX</SMALL>-system, but due to
|
||||
the Minix copyrights, they cannot be distributed to a wider audience.
|
||||
|
||||
<P>
|
||||
Some of the probelms mentioned here will be fixed by me (ie serial
|
||||
lines/387/floppy support) as soon as possible, but I'm hoping to get
|
||||
help with the libraries etc. Bug-reports/patches and wish-lists will be
|
||||
appreciated, and if you actually have the patch to the problem, I'll try
|
||||
to implement it right away. Small changes will be sent out as patches to
|
||||
the mailing list and be set up on <TT>`nic.funet.fi'</TT>, but after heavy rewrites or
|
||||
bigger patches, the whole system will be updated at <TT>`nic.funet.fi'</TT>.
|
||||
|
||||
<P>
|
||||
|
||||
<H1><A NAME="SECTION00040000000000000000">
|
||||
Porting software for L<SMALL>INUX</SMALL></A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
L<SMALL>INUX</SMALL> was designed to make porting relatively easy. Thus the full
|
||||
<TT>termios</TT>-implementation, and the somewhat <TT>POSIX</TT> library. The
|
||||
(admittedly relativly few) programs I've ported posed no problems.
|
||||
|
||||
<P>
|
||||
Even though L<SMALL>INUX</SMALL> resembles Minix a great deal, Minix programs are not
|
||||
generally easier to port than programs designed for some other unix.
|
||||
Thus I wouldn't recommend starting from a Minix-version of a particular
|
||||
program, but instead trying to port the ``virgin'' program from scratch.
|
||||
Being closer to SYSV than BSD means that most programs port easily when
|
||||
given a <TT>-DUSG</TT> or <TT>-DSYSV</TT> flag.
|
||||
|
||||
<P>
|
||||
One of the more difficult problem in porting can be missing library
|
||||
functions. These must be written by you, or copied from some other
|
||||
source (Minix being one possibility for those that have it).
|
||||
Alternatively, some programs (notably GNU) have various flags making it
|
||||
possible to define which functions aren't available (the GNU fileutils
|
||||
will compile quite nicely, once a sufficient number of
|
||||
<TT>-DXXX_MISSING</TT> flags are added to the <TT>Makefile</TT>.)
|
||||
|
||||
<P>
|
||||
|
||||
<H2><A NAME="SECTION00041000000000000000">
|
||||
Programs already ported</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
These programs have already been ported to L<SMALL>INUX</SMALL>:
|
||||
|
||||
<UL>
|
||||
<LI>GNU cc (gcc, cc1, cpp)
|
||||
</LI>
|
||||
<LI>GNU assembler (as386)
|
||||
</LI>
|
||||
<LI>GNU binutils (ld, ar, nm, size, strip, ranlib)
|
||||
</LI>
|
||||
<LI>GNU compress (16-bit)
|
||||
</LI>
|
||||
<LI>GNU tar
|
||||
</LI>
|
||||
<LI>GNU make
|
||||
</LI>
|
||||
<LI>GNU bash (Bourne Again SHell)
|
||||
</LI>
|
||||
<LI>GNU sed
|
||||
</LI>
|
||||
<LI>GNU bison (yacc-lookalike)
|
||||
</LI>
|
||||
<LI>GNU awk
|
||||
</LI>
|
||||
<LI>GNU fileutils (ls, cp, rm, mkdir, rmdir, tail etc)
|
||||
</LI>
|
||||
<LI>less
|
||||
</LI>
|
||||
<LI>uemacs
|
||||
</LI>
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
All of the above sources can be found on <TT>`nic.funet.fi'</TT> (mostly in
|
||||
<TT>`/pub/gnu'</TT>), and most of the L<SMALL>INUX</SMALL>-binaries can be found in the
|
||||
directory <TT>'/pub/OS/Linux'</TT>. All of these programs compiled without changes, even
|
||||
though gcc (cc1) has some enhancements of my own. Mail me for
|
||||
diffs/sources, but try first to compile them yourself.
|
||||
|
||||
<P>
|
||||
Additionally I have reports that GNU diff compiles cleanly and works.
|
||||
|
||||
<P>
|
||||
|
||||
<H1><A NAME="SECTION00050000000000000000">
|
||||
Technical help</A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
L<SMALL>INUX</SMALL> currently has a mailing-list, which you can subscribe to by
|
||||
mailing to the address: <TT><B>Linux-activists-request@niksula.hut.fi</B></TT>
|
||||
and asking to be included into the list. You can then ask questions by
|
||||
mailing them to <TT><B>Linux-activists@niksula.hut.fi</B></TT>, which will
|
||||
duplicate your question/answer/whatever and send them to all persons on
|
||||
the list.
|
||||
|
||||
<P>
|
||||
Note the difference between <TT>Linux-activists</TT> and
|
||||
<TT>Linux-activists-request</TT> -- the first sends mail to all persons on
|
||||
the list, the second is used only to subscribe and unsubscribe from the
|
||||
list.
|
||||
|
||||
<P>
|
||||
Naturally, you can also mail me directly at <TT><B>torvalds@kruuna.helsinki.fi</B></TT>. I'll try to answer all questions within a
|
||||
day or two.
|
||||
|
||||
<P>
|
||||
Although <TT>`nic.funet.fi'</TT> will probably be kept reasonably up-to-date, there are a
|
||||
few problems with it (ie, I cannot personally get to the files, but have
|
||||
to go through a couple of persons). Thus people on the mailing-list will
|
||||
get patches/binaries faster if they ask for them.
|
||||
|
||||
<P>
|
||||
|
||||
<H1><A NAME="SECTION00060000000000000000">
|
||||
Thanks</A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
I'd like to thank the academy ...
|
||||
|
||||
<P>
|
||||
Seriously, this system never would have seen the light of day or would
|
||||
have been much worse without the help of some others. Bruce Evans
|
||||
helped me find the places needed to be changed in order for <TT>gcc</TT> to
|
||||
correctly handle floating point, and came with a lot of useful
|
||||
ideas/suggestions (and his Minix-386 was used to build the system).
|
||||
Also, Earl Chew's <TT>estdio</TT> package was used for the standard
|
||||
IO-library. More freely distributable packages like this!
|
||||
|
||||
<P>
|
||||
Alain W Black and Richard Tobin made the gcc for Minix, without which I
|
||||
couldn't have compiled the thing. GNU made most of the programs I use
|
||||
under L<SMALL>INUX</SMALL>. Alfred Leung sent the US keyboard patches.
|
||||
|
||||
<P>
|
||||
PS. ``Thanks'' to <TT>wirzeniu@kruuna.helsinki.fi</TT> for his
|
||||
``constructive'' criticism and ``witty'' comments. He was also my first
|
||||
<IMG
|
||||
WIDTH="14" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
ALT="$\alpha$">-tester, and should be given a medal for courage.
|
||||
|
||||
<P>
|
||||
|
||||
<H1><A NAME="SECTION00070000000000000000">
|
||||
About this document ...</A>
|
||||
</H1>
|
||||
<STRONG>L<SMALL>INUX</SMALL>--a free unix-386 kernel</STRONG><P>
|
||||
This document was generated using the
|
||||
<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002 (1.62)
|
||||
<P>
|
||||
Copyright © 1993, 1994, 1995, 1996,
|
||||
<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>,
|
||||
Computer Based Learning Unit, University of Leeds.
|
||||
<BR>
|
||||
Copyright © 1997, 1998, 1999,
|
||||
<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>,
|
||||
Mathematics Department, Macquarie University, Sydney.
|
||||
<P>
|
||||
The command line arguments were: <BR>
|
||||
<STRONG>latex2html</STRONG> <TT>-local_icons -address gohigh@sh163.net -split 1 Linux.tex</TT>
|
||||
<P>
|
||||
The translation was initiated by root on 2004-05-08<HR>
|
||||
<!--Navigation Panel-->
|
||||
<IMG WIDTH="81" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next_inactive" SRC="nx_grp_g.png">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_g.png">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev_g.png">
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
<ADDRESS>
|
||||
gohigh@sh163.net
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
||||
1
Linus/images.aux
Normal file
1
Linus/images.aux
Normal file
@@ -0,0 +1 @@
|
||||
\relax
|
||||
200
Linus/images.log
Normal file
200
Linus/images.log
Normal file
@@ -0,0 +1,200 @@
|
||||
This is TeX, Version 3.14159 (Web2C 7.3.1) (format=latex 2003.2.18) 8 MAY 2004 16:48
|
||||
**./images.tex
|
||||
(./images.tex
|
||||
LaTeX2e <2001/06/01>
|
||||
Babel <v3.7h> and hyphenation patterns for american, french, german, ngerman, i
|
||||
talian, nohyphenation, loaded.
|
||||
|
||||
(/usr/share/texmf/tex/latex/base/latex209.def
|
||||
File: latex209.def 1998/05/13 v0.52 Standard LaTeX file
|
||||
|
||||
Entering LaTeX 2.09 COMPATIBILITY MODE
|
||||
*************************************************************
|
||||
!!WARNING!! !!WARNING!! !!WARNING!! !!WARNING!!
|
||||
|
||||
This mode attempts to provide an emulation of the LaTeX 2.09
|
||||
author environment so that OLD documents can be successfully
|
||||
processed. It should NOT be used for NEW documents!
|
||||
|
||||
New documents should use Standard LaTeX conventions and start
|
||||
with the \documentclass command.
|
||||
|
||||
Compatibility mode is UNLIKELY TO WORK with LaTeX 2.09 style
|
||||
files that change any internal macros, especially not with
|
||||
those that change the FONT SELECTION or OUTPUT ROUTINES.
|
||||
|
||||
Therefore such style files MUST BE UPDATED to use
|
||||
Current Standard LaTeX: LaTeX2e.
|
||||
If you suspect that you may be using such a style file, which
|
||||
is probably very, very old by now, then you should attempt to
|
||||
get it updated by sending a copy of this error message to the
|
||||
author of that file.
|
||||
*************************************************************
|
||||
|
||||
\footheight=\dimen102
|
||||
\@maxsep=\dimen103
|
||||
\@dblmaxsep=\dimen104
|
||||
\@cla=\count79
|
||||
\@clb=\count80
|
||||
\mscount=\count81
|
||||
(/usr/share/texmf/tex/latex/base/tracefnt.sty
|
||||
Package: tracefnt 1997/05/29 v3.0j Standard LaTeX package (font tracing)
|
||||
\tracingfonts=\count82
|
||||
LaTeX Info: Redefining \selectfont on input line 96.
|
||||
)
|
||||
\symbold=\mathgroup4
|
||||
\symsans=\mathgroup5
|
||||
\symtypewriter=\mathgroup6
|
||||
\symitalic=\mathgroup7
|
||||
\symsmallcaps=\mathgroup8
|
||||
\symslanted=\mathgroup9
|
||||
LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 288.
|
||||
LaTeX Font Info: Redeclaring math alphabet \mathsf on input line 289.
|
||||
LaTeX Font Info: Redeclaring math alphabet \mathtt on input line 290.
|
||||
LaTeX Font Info: Redeclaring math alphabet \mathit on input line 296.
|
||||
LaTeX Info: Redefining \em on input line 306.
|
||||
(/usr/share/texmf/tex/latex/base/latexsym.sty
|
||||
Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols)
|
||||
\symlasy=\mathgroup10
|
||||
LaTeX Font Info: Overwriting symbol font `lasy' in version `bold'
|
||||
(Font) U/lasy/m/n --> U/lasy/b/n on input line 42.
|
||||
)
|
||||
LaTeX Font Info: Redeclaring math delimiter \lgroup on input line 370.
|
||||
LaTeX Font Info: Redeclaring math delimiter \rgroup on input line 372.
|
||||
LaTeX Font Info: Redeclaring math delimiter \bracevert on input line 374.
|
||||
(/usr/share/texmf/tex/latex/config/latex209.cfg) (/usr/share/texmf/tex/latex/to
|
||||
ols/rawfonts.sty
|
||||
Package: rawfonts 1994/05/08 Low-level LaTeX 2.09 font compatibility
|
||||
(/usr/share/texmf/tex/latex/tools/somedefs.sty
|
||||
Package: somedefs 1994/06/01 Toolkit for optional definitions
|
||||
)
|
||||
LaTeX Font Info: Try loading font information for U+lasy on input line 44.
|
||||
(/usr/share/texmf/tex/latex/base/ulasy.fd
|
||||
File: ulasy.fd 1998/08/17 v2.2e LaTeX symbol font definitions
|
||||
))) (/usr/share/texmf/tex/latex/base/article.cls
|
||||
Document Class: article 2001/04/21 v1.4e Standard LaTeX document class
|
||||
(/usr/share/texmf/tex/latex/base/size10.clo
|
||||
File: size10.clo 2001/04/21 v1.4e Standard LaTeX file (size option)
|
||||
)
|
||||
\c@part=\count83
|
||||
\c@section=\count84
|
||||
\c@subsection=\count85
|
||||
\c@subsubsection=\count86
|
||||
\c@paragraph=\count87
|
||||
\c@subparagraph=\count88
|
||||
\c@figure=\count89
|
||||
\c@table=\count90
|
||||
\abovecaptionskip=\skip41
|
||||
\belowcaptionskip=\skip42
|
||||
Compatibility mode: definition of \rm ignored.
|
||||
Compatibility mode: definition of \sf ignored.
|
||||
Compatibility mode: definition of \tt ignored.
|
||||
Compatibility mode: definition of \bf ignored.
|
||||
Compatibility mode: definition of \it ignored.
|
||||
Compatibility mode: definition of \sl ignored.
|
||||
Compatibility mode: definition of \sc ignored.
|
||||
LaTeX Info: Redefining \cal on input line 501.
|
||||
LaTeX Info: Redefining \mit on input line 502.
|
||||
\bibindent=\dimen105
|
||||
) (/usr/share/texmf/tex/latex/base/ifthen.sty
|
||||
Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
|
||||
)
|
||||
|
||||
! LaTeX Error: LaTeX2e command \usepackage in LaTeX 2.09 document.
|
||||
|
||||
See the LaTeX manual or LaTeX Companion for explanation.
|
||||
Type H <return> for immediate help.
|
||||
...
|
||||
|
||||
l.19 \usepackage
|
||||
[]{inputenc}
|
||||
This is a LaTeX 2.09 document, but it contains \usepackage.
|
||||
If you want to use the new features of LaTeX2e, your document
|
||||
should begin with \documentclass rather than \documentstyle
|
||||
|
||||
|
||||
! LaTeX Error: \usepackage before \documentclass.
|
||||
|
||||
See the LaTeX manual or LaTeX Companion for explanation.
|
||||
Type H <return> for immediate help.
|
||||
...
|
||||
|
||||
l.19 \usepackage[]{
|
||||
inputenc}
|
||||
\usepackage may only appear in the document preamble, i.e.,
|
||||
between \documentclass and \begin{document}.
|
||||
|
||||
\sizebox=\box26
|
||||
\lthtmlwrite=\write3
|
||||
|
||||
! LaTeX Error: Command \selectlanguage already defined.
|
||||
Or name \end... illegal, see p.192 of the manual.
|
||||
|
||||
See the LaTeX manual or LaTeX Companion for explanation.
|
||||
Type H <return> for immediate help.
|
||||
...
|
||||
|
||||
l.110 \providecommand{\selectlanguage}[1]{}
|
||||
%
|
||||
Your command was ignored.
|
||||
Type I <command> <return> to replace it with another command,
|
||||
or <return> to continue without it.
|
||||
|
||||
No file images.aux.
|
||||
\openout1 = `images.aux'.
|
||||
|
||||
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 114.
|
||||
LaTeX Font Info: ... okay on input line 114.
|
||||
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 114.
|
||||
LaTeX Font Info: ... okay on input line 114.
|
||||
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 114.
|
||||
LaTeX Font Info: ... okay on input line 114.
|
||||
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 114.
|
||||
LaTeX Font Info: ... okay on input line 114.
|
||||
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 114.
|
||||
LaTeX Font Info: ... okay on input line 114.
|
||||
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 114.
|
||||
LaTeX Font Info: ... okay on input line 114.
|
||||
|
||||
latex2htmlLength hsize=349.0pt
|
||||
|
||||
latex2htmlLength vsize=620.0pt
|
||||
|
||||
latex2htmlLength hoffset=0.0pt
|
||||
|
||||
latex2htmlLength voffset=0.0pt
|
||||
|
||||
latex2htmlLength topmargin=0.0pt
|
||||
|
||||
latex2htmlLength topskip=0.00003pt
|
||||
|
||||
latex2htmlLength headheight=0.0pt
|
||||
|
||||
latex2htmlLength headsep=0.0pt
|
||||
|
||||
latex2htmlLength parskip=0.0pt plus 1.0pt
|
||||
|
||||
latex2htmlLength oddsidemargin=63.0pt
|
||||
|
||||
latex2htmlLength evensidemargin=63.0pt
|
||||
|
||||
LaTeX Font Info: External font `cmex10' loaded for size
|
||||
(Font) <7> on input line 191.
|
||||
LaTeX Font Info: External font `cmex10' loaded for size
|
||||
(Font) <5> on input line 191.
|
||||
l2hSize :tex2html_wrap_inline239:6.45831pt::0.0pt::6.93407pt.
|
||||
[1
|
||||
|
||||
|
||||
|
||||
] (images.aux) )
|
||||
Here is how much of TeX's memory you used:
|
||||
585 strings out of 20880
|
||||
6200 string characters out of 196184
|
||||
47830 words of memory out of 350001
|
||||
3551 multiletter control sequences out of 10000+15000
|
||||
22498 words of font info for 84 fonts, out of 400000 for 1000
|
||||
14 hyphenation exceptions out of 10000
|
||||
25i,4n,22p,255b,217s stack positions out of 3000i,100n,1500p,50000b,4000s
|
||||
|
||||
Output written on images.dvi (1 page, 248 bytes).
|
||||
12
Linus/images.pl
Normal file
12
Linus/images.pl
Normal file
@@ -0,0 +1,12 @@
|
||||
# LaTeX2HTML 2002 (1.62)
|
||||
# Associate images original text with physical files.
|
||||
|
||||
|
||||
$key = q/alpha;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="14" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img1.png"
|
||||
ALT="$\alpha$">|;
|
||||
|
||||
1;
|
||||
|
||||
196
Linus/images.tex
Normal file
196
Linus/images.tex
Normal file
@@ -0,0 +1,196 @@
|
||||
\batchmode
|
||||
|
||||
|
||||
|
||||
\documentstyle{article}
|
||||
|
||||
\let\providecommand\newcommand
|
||||
\RequirePackage{ifthen}
|
||||
|
||||
|
||||
\title{\begingroup\sc Linux\endgroup---a free unix-386 kernel}
|
||||
\author{Linus Torvalds (torvalds@kruuna.helsinki.fi)}\date{October 10, 1991}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
\usepackage[]{inputenc}
|
||||
|
||||
|
||||
|
||||
\makeatletter
|
||||
|
||||
\makeatletter
|
||||
\count@=\the\catcode`\_ \catcode`\_=8
|
||||
\newenvironment{tex2html_wrap}{}{}%
|
||||
\catcode`\<=12\catcode`\_=\count@
|
||||
\newcommand{\providedcommand}[1]{\expandafter\providecommand\csname #1\endcsname}%
|
||||
\newcommand{\renewedcommand}[1]{\expandafter\providecommand\csname #1\endcsname{}%
|
||||
\expandafter\renewcommand\csname #1\endcsname}%
|
||||
\newcommand{\newedenvironment}[1]{\newenvironment{#1}{}{}\renewenvironment{#1}}%
|
||||
\let\newedcommand\renewedcommand
|
||||
\let\renewedenvironment\newedenvironment
|
||||
\makeatother
|
||||
\let\mathon=$
|
||||
\let\mathoff=$
|
||||
\ifx\AtBeginDocument\undefined \newcommand{\AtBeginDocument}[1]{}\fi
|
||||
\newbox\sizebox
|
||||
\setlength{\hoffset}{0pt}\setlength{\voffset}{0pt}
|
||||
\addtolength{\textheight}{\footskip}\setlength{\footskip}{0pt}
|
||||
\addtolength{\textheight}{\topmargin}\setlength{\topmargin}{0pt}
|
||||
\addtolength{\textheight}{\headheight}\setlength{\headheight}{0pt}
|
||||
\addtolength{\textheight}{\headsep}\setlength{\headsep}{0pt}
|
||||
\setlength{\textwidth}{349pt}
|
||||
\newwrite\lthtmlwrite
|
||||
\makeatletter
|
||||
\let\realnormalsize=\normalsize
|
||||
\global\topskip=2sp
|
||||
\def\preveqno{}\let\real@float=\@float \let\realend@float=\end@float
|
||||
\def\@float{\let\@savefreelist\@freelist\real@float}
|
||||
\def\liih@math{\ifmmode$\else\bad@math\fi}
|
||||
\def\end@float{\realend@float\global\let\@freelist\@savefreelist}
|
||||
\let\real@dbflt=\@dbflt \let\end@dblfloat=\end@float
|
||||
\let\@largefloatcheck=\relax
|
||||
\let\if@boxedmulticols=\iftrue
|
||||
\def\@dbflt{\let\@savefreelist\@freelist\real@dbflt}
|
||||
\def\adjustnormalsize{\def\normalsize{\mathsurround=0pt \realnormalsize
|
||||
\parindent=0pt\abovedisplayskip=0pt\belowdisplayskip=0pt}%
|
||||
\def\phantompar{\csname par\endcsname}\normalsize}%
|
||||
\def\lthtmltypeout#1{{\let\protect\string \immediate\write\lthtmlwrite{#1}}}%
|
||||
\newcommand\lthtmlhboxmathA{\adjustnormalsize\setbox\sizebox=\hbox\bgroup\kern.05em }%
|
||||
\newcommand\lthtmlhboxmathB{\adjustnormalsize\setbox\sizebox=\hbox to\hsize\bgroup\hfill }%
|
||||
\newcommand\lthtmlvboxmathA{\adjustnormalsize\setbox\sizebox=\vbox\bgroup %
|
||||
\let\ifinner=\iffalse \let\)\liih@math }%
|
||||
\newcommand\lthtmlboxmathZ{\@next\next\@currlist{}{\def\next{\voidb@x}}%
|
||||
\expandafter\box\next\egroup}%
|
||||
\newcommand\lthtmlmathtype[1]{\gdef\lthtmlmathenv{#1}}%
|
||||
\newcommand\lthtmllogmath{\lthtmltypeout{l2hSize %
|
||||
:\lthtmlmathenv:\the\ht\sizebox::\the\dp\sizebox::\the\wd\sizebox.\preveqno}}%
|
||||
\newcommand\lthtmlfigureA[1]{\let\@savefreelist\@freelist
|
||||
\lthtmlmathtype{#1}\lthtmlvboxmathA}%
|
||||
\newcommand\lthtmlpictureA{\bgroup\catcode`\_=8 \lthtmlpictureB}%
|
||||
\newcommand\lthtmlpictureB[1]{\lthtmlmathtype{#1}\egroup
|
||||
\let\@savefreelist\@freelist \lthtmlhboxmathB}%
|
||||
\newcommand\lthtmlpictureZ[1]{\hfill\lthtmlfigureZ}%
|
||||
\newcommand\lthtmlfigureZ{\lthtmlboxmathZ\lthtmllogmath\copy\sizebox
|
||||
\global\let\@freelist\@savefreelist}%
|
||||
\newcommand\lthtmldisplayA{\bgroup\catcode`\_=8 \lthtmldisplayAi}%
|
||||
\newcommand\lthtmldisplayAi[1]{\lthtmlmathtype{#1}\egroup\lthtmlvboxmathA}%
|
||||
\newcommand\lthtmldisplayB[1]{\edef\preveqno{(\theequation)}%
|
||||
\lthtmldisplayA{#1}\let\@eqnnum\relax}%
|
||||
\newcommand\lthtmldisplayZ{\lthtmlboxmathZ\lthtmllogmath\lthtmlsetmath}%
|
||||
\newcommand\lthtmlinlinemathA{\bgroup\catcode`\_=8 \lthtmlinlinemathB}
|
||||
\newcommand\lthtmlinlinemathB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA
|
||||
\vrule height1.5ex width0pt }%
|
||||
\newcommand\lthtmlinlineA{\bgroup\catcode`\_=8 \lthtmlinlineB}%
|
||||
\newcommand\lthtmlinlineB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA}%
|
||||
\newcommand\lthtmlinlineZ{\egroup\expandafter\ifdim\dp\sizebox>0pt %
|
||||
\expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetinline}
|
||||
\newcommand\lthtmlinlinemathZ{\egroup\expandafter\ifdim\dp\sizebox>0pt %
|
||||
\expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetmath}
|
||||
\newcommand\lthtmlindisplaymathZ{\egroup %
|
||||
\centerinlinemath\lthtmllogmath\lthtmlsetmath}
|
||||
\def\lthtmlsetinline{\hbox{\vrule width.1em \vtop{\vbox{%
|
||||
\kern.1em\copy\sizebox}\ifdim\dp\sizebox>0pt\kern.1em\else\kern.3pt\fi
|
||||
\ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}}
|
||||
\def\lthtmlsetmath{\hbox{\vrule width.1em\kern-.05em\vtop{\vbox{%
|
||||
\kern.1em\kern0.8 pt\hbox{\hglue.17em\copy\sizebox\hglue0.8 pt}}\kern.3pt%
|
||||
\ifdim\dp\sizebox>0pt\kern.1em\fi \kern0.8 pt%
|
||||
\ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}}
|
||||
\def\centerinlinemath{%
|
||||
\dimen1=\ifdim\ht\sizebox<\dp\sizebox \dp\sizebox\else\ht\sizebox\fi
|
||||
\advance\dimen1by.5pt \vrule width0pt height\dimen1 depth\dimen1
|
||||
\dp\sizebox=\dimen1\ht\sizebox=\dimen1\relax}
|
||||
|
||||
\def\lthtmlcheckvsize{\ifdim\ht\sizebox<\vsize
|
||||
\ifdim\wd\sizebox<\hsize\expandafter\hfill\fi \expandafter\vfill
|
||||
\else\expandafter\vss\fi}%
|
||||
\providecommand{\selectlanguage}[1]{}%
|
||||
\makeatletter \tracingstats = 1
|
||||
|
||||
|
||||
\begin{document}
|
||||
\pagestyle{empty}\thispagestyle{empty}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength hsize=\the\hsize}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength vsize=\the\vsize}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength hoffset=\the\hoffset}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength voffset=\the\voffset}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength topmargin=\the\topmargin}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength topskip=\the\topskip}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength headheight=\the\headheight}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength headsep=\the\headsep}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength parskip=\the\parskip}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength oddsidemargin=\the\oddsidemargin}\lthtmltypeout{}%
|
||||
\makeatletter
|
||||
\if@twoside\lthtmltypeout{latex2htmlLength evensidemargin=\the\evensidemargin}%
|
||||
\else\lthtmltypeout{latex2htmlLength evensidemargin=\the\oddsidemargin}\fi%
|
||||
\lthtmltypeout{}%
|
||||
\makeatother
|
||||
\setcounter{page}{1}
|
||||
\onecolumn
|
||||
|
||||
% !!! IMAGES START HERE !!!
|
||||
|
||||
\begingroup \endgroup
|
||||
\stepcounter{section}
|
||||
\begingroup \endgroup
|
||||
\stepcounter{subsection}
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\stepcounter{subsection}
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\stepcounter{subsection}
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\stepcounter{subsection}
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\stepcounter{section}
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\stepcounter{section}
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\stepcounter{section}
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\stepcounter{subsection}
|
||||
\begingroup \endgroup
|
||||
\begingroup \endgroup
|
||||
\stepcounter{section}
|
||||
\begingroup \endgroup
|
||||
\stepcounter{section}
|
||||
\begingroup \endgroup
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline239}%
|
||||
$\alpha$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
|
||||
\end{document}
|
||||
BIN
Linus/img1.png
Normal file
BIN
Linus/img1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 212 B |
553
Linus/index.html
Normal file
553
Linus/index.html
Normal file
@@ -0,0 +1,553 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
|
||||
<!--Converted with jLaTeX2HTML 2002 (1.62) JA patch-1.4
|
||||
patched version by: Kenshi Muto, Debian Project.
|
||||
LaTeX2HTML 2002 (1.62),
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>LINUX--a free unix-386 kernel</TITLE>
|
||||
<META NAME="description" CONTENT="LINUX--a free unix-386 kernel">
|
||||
<META NAME="keywords" CONTENT="Linux">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<META NAME="Generator" CONTENT="jLaTeX2HTML v2002 JA patch-1.4">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="Linux.css">
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<IMG WIDTH="81" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next_inactive" SRC="nx_grp_g.png">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_g.png">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev_g.png">
|
||||
<BR>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
<H1 ALIGN="CENTER">L<SMALL>INUX</SMALL>--a free unix-386 kernel</H1>
|
||||
<P ALIGN="CENTER"><STRONG>Linus Torvalds (torvalds@kruuna.helsinki.fi)</STRONG></P>
|
||||
<P ALIGN="CENTER"><STRONG>October 10, 1991</STRONG></P>
|
||||
|
||||
<P>
|
||||
|
||||
<H1><A NAME="SECTION00010000000000000000">
|
||||
Introduction to L<SMALL>INUX</SMALL></A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
|
||||
<H2><A NAME="SECTION00011000000000000000">
|
||||
What is L<SMALL>INUX</SMALL>?</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
L<SMALL>INUX</SMALL> is a free unix-like kernel for 386-AT computers, coming with
|
||||
full source code. It is meant for hackers/computer science students to
|
||||
use, learn and enjoy. It is written mostly in <TT><B>C</B></TT>, but parts of
|
||||
it are in gnu-format assembler, and the boot-sequence is in intel 086
|
||||
assembly language. The <TT><B>C</B></TT>-code is relatively ANSI, with a few
|
||||
GNU enhancements (mostly <TT>__asm__</TT> and <TT>inline</TT>).
|
||||
|
||||
<P>
|
||||
While there are a number of unices available for 386 computers, most of
|
||||
them cost a lot of money, and come with no source. Thus, they are ideal
|
||||
for actually <I>using</I> your computer, but if you want to learn how
|
||||
they work, you are f- -ked.
|
||||
|
||||
<P>
|
||||
There are also a few unices available with source. Minix, the learning
|
||||
tool written by Andrew S. Tanenbaum, has been used in universities as a
|
||||
teaching tool for years. The BSD-386 system comes with source, but has a
|
||||
restrictive copyright and costs a lot of money ($995 is the starting
|
||||
price, I think). The GNU kernel (Hurd) will be free, but is currently
|
||||
not ready, and will be too big to understand and learn.
|
||||
|
||||
<P>
|
||||
L<SMALL>INUX</SMALL> most closely resembles Minix, in that it is small and not very
|
||||
sophisticated, and thus easy (well...) to understand. L<SMALL>INUX</SMALL> was
|
||||
also written under Minix, so there are quite a bit of similarities, and
|
||||
any Minix hacker will feel relatively at home with L<SMALL>INUX</SMALL>. None of the
|
||||
Minix code was used in the project though, so the Minix copyright
|
||||
doesn't cover the new system. It also is <I>completely free</I>, and has
|
||||
a very loose copyright. Thus there is no need for megabytes of diffs
|
||||
like under Minix.
|
||||
|
||||
<P>
|
||||
|
||||
<H2><A NAME="SECTION00012000000000000000">
|
||||
The L<SMALL>INUX</SMALL> copyright</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
While being freely distributable, I do restrict the use of L<SMALL>INUX</SMALL> in a
|
||||
few ways:
|
||||
|
||||
<UL>
|
||||
<LI>You may freely copy and redistribute the source and binaries, <B>as long as:</B>
|
||||
|
||||
<UL>
|
||||
<LI>complete source is available. Thus binaries may not be distributed
|
||||
by themselves, even if you have made changes to them.
|
||||
</LI>
|
||||
<LI>you do not profit from the distribution. In fact even ``handling
|
||||
costs'' are not acceptable.
|
||||
</LI>
|
||||
<LI>you keep the appropriate copyrights intact.
|
||||
</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI>You may change the source to your liking, but if you distribute
|
||||
parts of the new system (or just binaries), all the new code must be
|
||||
included.
|
||||
</LI>
|
||||
<LI>You may make small excepts from the code without including
|
||||
copyrights. This is up to you, but a reference to me or the code would
|
||||
be appreciated.
|
||||
</LI>
|
||||
</UL>
|
||||
This should be loose enough not to cause any worry in anybody using or
|
||||
expanding the system. If you have a friend who really doesn't want the
|
||||
source, but just a working binary, you may of course give it to him
|
||||
without worrying whether I will sue you. Keep it between friends, though.
|
||||
|
||||
<P>
|
||||
|
||||
<H2><A NAME="SECTION00013000000000000000">
|
||||
Hardware/software needed to get L<SMALL>INUX</SMALL> running</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
L<SMALL>INUX</SMALL> was written on a 386-AT running Minix. As L<SMALL>INUX</SMALL> is a real
|
||||
operating system, and goes directly to the hardware to do things, you
|
||||
have to have a very similar system to get it going without problems:
|
||||
|
||||
<UL>
|
||||
<LI>386-AT (PS/2's are different enough that things won't work)
|
||||
</LI>
|
||||
<LI>VGA or EGA screen hardware.
|
||||
</LI>
|
||||
<LI>Standard AT hard-disk interface, IDE disks work fine (in fact
|
||||
that's what I use).
|
||||
</LI>
|
||||
<LI>Normal real-mode BIOS. Some machines seem to use virtual-86 mode
|
||||
to run the bootup program, and on such machines L<SMALL>INUX</SMALL> won't boot up
|
||||
and run correctly.
|
||||
</LI>
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
While L<SMALL>INUX</SMALL> will be expanded to be a self-sufficient system, Minix-386
|
||||
is currently needed to get the ball rolling. You need Minix to make the
|
||||
initial root file system, and to compile the OS binary. After that
|
||||
L<SMALL>INUX</SMALL> is a self-sufficient system, but Minix is recommended in order
|
||||
to make file system checking (<TT>fsck</TT>) and to recompile the system
|
||||
after making changes.
|
||||
|
||||
<P>
|
||||
|
||||
<H2><A NAME="SECTION00014000000000000000">
|
||||
Getting L<SMALL>INUX</SMALL></A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
L<SMALL>INUX</SMALL> can currently be gotten by anonymous <TT>ftp</TT> from <TT>`nic.funet.fi'</TT> in the
|
||||
directory <TT>'/pub/OS/Linux'</TT>. This directory contains the full source to the operating
|
||||
system, as well as a couple of binaries so that you can actually use the
|
||||
system.
|
||||
|
||||
<P>
|
||||
<BR><B>NOTE! The binaries are mostly GNU software,
|
||||
and are under a stricter copyright (the GNU copyleft) than the </B>L<SMALL>INUX</SMALL><B> sources. Thus you may not redistribute them without distributing their
|
||||
source, found in <TT>/pub/GNU</TT>. See any GNU software package for more
|
||||
information on the GNU copyleft.
|
||||
<BR></B>
|
||||
|
||||
<P>
|
||||
The various files found in this directory are:
|
||||
|
||||
<UL>
|
||||
<LI><TT>linux-0.03.tar.Z</TT>--complete source to the operating system,
|
||||
in a 16-bit compressed tar archive.
|
||||
</LI>
|
||||
<LI><TT>Linux.tex</TT>--L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X source for this file.
|
||||
</LI>
|
||||
<LI><TT>bash.Z</TT>--bash binary to run under L<SMALL>INUX</SMALL>. This binary should
|
||||
be put under tha name <TT>/bin/sh</TT> in the file system reserved for
|
||||
L<SMALL>INUX</SMALL> (see installation).
|
||||
</LI>
|
||||
<LI><TT>update.Z</TT>--update binary, to be put in <TT>/bin/update</TT>.
|
||||
</LI>
|
||||
<LI><TT>gccbin.tar.Z</TT>--GNU cc binaries needed to get a working
|
||||
compiler. This tarred archive contains the compiler, loader, assembler
|
||||
and support programs (nm, strip etc). It also contains a small library
|
||||
sufficient for most programs.
|
||||
</LI>
|
||||
<LI><TT>include.tar.Z</TT>--include-files necessary to get gcc working.
|
||||
</LI>
|
||||
<LI><TT>unistd.tar.Z</TT>--source to the unistd library routines (ie
|
||||
system call interface). With this you can build a bigger library by
|
||||
using system-independent library sources.
|
||||
</LI>
|
||||
<LI><TT>utilbin.tar.Z</TT>--binaries to various GNU utilities, including
|
||||
GNU fileutils, make and tar. Also contains the emacs-clone <TT>uemacs</TT>.
|
||||
</LI>
|
||||
<LI><TT>README, RELNOTES-0.01, INSTALLATION</TT>--ascii files containing
|
||||
some (somewhat out-of-date) information about L<SMALL>INUX</SMALL>.
|
||||
</LI>
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
The absolute minimum needed to get a system going is the OS source and
|
||||
the bash and update binaries. You won't be doing much with just these
|
||||
though.
|
||||
|
||||
<P>
|
||||
|
||||
<H1><A NAME="SECTION00020000000000000000">
|
||||
Installation</A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
After you have gotten the necessary L<SMALL>INUX</SMALL> files, you need to compile
|
||||
the system and make a root directory. The necessary binaries need to be
|
||||
put in the root file system.
|
||||
Do this:
|
||||
|
||||
<OL>
|
||||
<LI>Back up your software. While L<SMALL>INUX</SMALL> never has destroyed any of my
|
||||
files, nothing is certain. Better safe than sorry.
|
||||
</LI>
|
||||
<LI>Choose/make a standard Minix HD-partition to be the new L<SMALL>INUX</SMALL> root
|
||||
file system.
|
||||
</LI>
|
||||
<LI>Make the necessary device nodes on the new root. L<SMALL>INUX</SMALL> uses the
|
||||
same type of nodes as Minix, so use the Minix <TT>mknod</TT> command to
|
||||
make the following devices:
|
||||
|
||||
<UL>
|
||||
<LI><TT>/dev/tty</TT>
|
||||
</LI>
|
||||
<LI><TT>/dev/tty[0-2]</TT>
|
||||
</LI>
|
||||
<LI><TT>/dev/hd[0-9]</TT>
|
||||
</LI>
|
||||
</UL>
|
||||
Node numbers are the same as in Minix.
|
||||
</LI>
|
||||
<LI>Move the necessary files to the new root partition. The files
|
||||
should be in the following directories:
|
||||
|
||||
<UL>
|
||||
<LI><TT>/bin:</TT>
|
||||
|
||||
<UL>
|
||||
<LI><TT>sh</TT>, ie <TT>bash.Z</TT>.
|
||||
</LI>
|
||||
<LI><TT>update</TT>
|
||||
</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI><TT>/usr/bin:</TT>
|
||||
|
||||
<UL>
|
||||
<LI>Contents of <TT>utilbin.tar.Z</TT>
|
||||
</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI><TT>/usr/include:</TT>
|
||||
|
||||
<UL>
|
||||
<LI>Contents of <TT>include.tar.Z</TT>
|
||||
</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI><TT>/usr/local/lib:</TT>
|
||||
|
||||
<UL>
|
||||
<LI>Contents of <TT>gccbin.tar.Z</TT>, excepting <TT>gcc</TT>
|
||||
</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI><TT>/usr/local/bin:</TT>
|
||||
|
||||
<UL>
|
||||
<LI><TT>gcc</TT>
|
||||
</LI>
|
||||
<LI>links to files in <TT>/usr/local/lib</TT> of your choice. I link
|
||||
<TT>ld</TT>, <TT>as</TT>, <TT>nm</TT>, <TT>strip</TT> and <TT>size</TT> to their
|
||||
counterparts in <TT>/usr/local/lib/gcc-XXX</TT>.
|
||||
</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI>Edit the <TT>linux/include/linux/config.h</TT> file for your system.
|
||||
This file contains the system-specific information: memory space, disk
|
||||
types, root partition number (again the numbering is the same as in
|
||||
Minix), keyboard type (currently just US and Finnish) etc.
|
||||
</LI>
|
||||
<LI>Compile the L<SMALL>INUX</SMALL> sources. A simple <TT>make</TT> should do the
|
||||
trick, after you have edited the <TT>makefile</TT>s to suit your system
|
||||
(ie, removed the <TT>-mstring-insns</TT> flag and changed the paths to suit
|
||||
you.) Users of <TT>gcc</TT> versions earlier than 1.40 will probably have
|
||||
to add <TT>gnulib</TT> to the `<TT>LIBS =</TT>'-line in the <TT>makefile</TT>.
|
||||
</LI>
|
||||
<LI>Copy the resultant <TT>Image</TT>-file to a floppy (ie, <TT>cp Image
|
||||
/dev/PS0</TT> or similar.)
|
||||
</LI>
|
||||
<LI>Reboot with the new floppy. The startup screen should tell you
|
||||
that the system is booting (<TT>Loading system ...</TT>), then some vital
|
||||
root file system information (<TT>xxx/XXX inodes/blocks free</TT>),
|
||||
followed by a <TT>Ok.</TT> and the bash prompt (initially <TT>bash#</TT> if
|
||||
you have no <TT>.bashrc</TT> file).
|
||||
</LI>
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
Hopefully you now have a functioning unix, and you are logged in as
|
||||
<TT>root</TT>. L<SMALL>INUX</SMALL> currently has no <TT>'init'</TT> process, and as soon
|
||||
as you log out, the system will <TT>sync</TT> and just wait. Use the
|
||||
three-finger-salute to reboot your machine.
|
||||
|
||||
<P>
|
||||
</LI>
|
||||
</OL>
|
||||
|
||||
<P>
|
||||
|
||||
<H1><A NAME="SECTION00030000000000000000">
|
||||
Things missing/incomplete in L<SMALL>INUX</SMALL></A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
While L<SMALL>INUX</SMALL> is meant to be a fully selfsufficient kernel, this is
|
||||
currently not the case. As already mentioned, you need Minix to set
|
||||
things up, and to check the file system once it's running. There are a
|
||||
number of other deficiencies:
|
||||
|
||||
<UL>
|
||||
<LI>Incomplete hardware-support. Some of the standard features of an
|
||||
AT are not currently supported. Most notably are floppy disk drives,
|
||||
making using L<SMALL>INUX</SMALL> for real work (backing up etc) currently not
|
||||
possible. Also some of the features of the serial lines aren't yet
|
||||
implemented (hard-wired to 2400bps, no hang-up notification etc).
|
||||
</LI>
|
||||
<LI>Incomplete standard C library. The <TT>libc.a</TT> found in the gcc
|
||||
distribution package is not complete, and I'm very much interested in
|
||||
freely distributable library functions.
|
||||
</LI>
|
||||
<LI>Some of the system calls are not fully implemented. This concerns
|
||||
mostly ``seldom-used'' features like debugging (yeah, who needs it
|
||||
anyway, don't all your programs work the first time <TT>:-)</TT> and some
|
||||
other features.
|
||||
</LI>
|
||||
<LI>As mentioned, no <TT>login</TT> and <TT>init</TT> processes. Currently
|
||||
L<SMALL>INUX</SMALL> boots up in single-user mode, with the root as console-user.
|
||||
This is enough for some porting work, but not really practical.
|
||||
</LI>
|
||||
<LI>387-support is not yet implemented, although some skeleton
|
||||
routines are present. The gcc-binary found on <TT>`nic.funet.fi'</TT> will correctly use
|
||||
soft-float (ie emulation function calls) for the four basic math
|
||||
operations. 387-support will materialize as soon as a 387 finds its way
|
||||
into my computer. Hopefully in a month or two.
|
||||
</LI>
|
||||
<LI>None of the important system-administration commands has yet been
|
||||
written for L<SMALL>INUX</SMALL>. These include things like <TT>mkfs</TT>, <TT>format</TT>,
|
||||
<TT>fsck</TT>, <TT>mknod</TT> etc. Some of these need kernel features not yet
|
||||
implemented (<TT>format</TT>, <TT>mknod</TT>), some just need to be written.
|
||||
As with the library, I'd welcome any freely distributable files.
|
||||
</LI>
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
As you can see, L<SMALL>INUX</SMALL> is as yet not a complete system. Your help is
|
||||
appreciated to make it better. I'm not interested in Minix-commands
|
||||
rewritten for L<SMALL>INUX</SMALL>, unless you have written them yourself from
|
||||
scratch. You are of course free (and encouraged) to use everything you
|
||||
have in your Minix-distribution for your own L<SMALL>INUX</SMALL>-system, but due to
|
||||
the Minix copyrights, they cannot be distributed to a wider audience.
|
||||
|
||||
<P>
|
||||
Some of the probelms mentioned here will be fixed by me (ie serial
|
||||
lines/387/floppy support) as soon as possible, but I'm hoping to get
|
||||
help with the libraries etc. Bug-reports/patches and wish-lists will be
|
||||
appreciated, and if you actually have the patch to the problem, I'll try
|
||||
to implement it right away. Small changes will be sent out as patches to
|
||||
the mailing list and be set up on <TT>`nic.funet.fi'</TT>, but after heavy rewrites or
|
||||
bigger patches, the whole system will be updated at <TT>`nic.funet.fi'</TT>.
|
||||
|
||||
<P>
|
||||
|
||||
<H1><A NAME="SECTION00040000000000000000">
|
||||
Porting software for L<SMALL>INUX</SMALL></A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
L<SMALL>INUX</SMALL> was designed to make porting relatively easy. Thus the full
|
||||
<TT>termios</TT>-implementation, and the somewhat <TT>POSIX</TT> library. The
|
||||
(admittedly relativly few) programs I've ported posed no problems.
|
||||
|
||||
<P>
|
||||
Even though L<SMALL>INUX</SMALL> resembles Minix a great deal, Minix programs are not
|
||||
generally easier to port than programs designed for some other unix.
|
||||
Thus I wouldn't recommend starting from a Minix-version of a particular
|
||||
program, but instead trying to port the ``virgin'' program from scratch.
|
||||
Being closer to SYSV than BSD means that most programs port easily when
|
||||
given a <TT>-DUSG</TT> or <TT>-DSYSV</TT> flag.
|
||||
|
||||
<P>
|
||||
One of the more difficult problem in porting can be missing library
|
||||
functions. These must be written by you, or copied from some other
|
||||
source (Minix being one possibility for those that have it).
|
||||
Alternatively, some programs (notably GNU) have various flags making it
|
||||
possible to define which functions aren't available (the GNU fileutils
|
||||
will compile quite nicely, once a sufficient number of
|
||||
<TT>-DXXX_MISSING</TT> flags are added to the <TT>Makefile</TT>.)
|
||||
|
||||
<P>
|
||||
|
||||
<H2><A NAME="SECTION00041000000000000000">
|
||||
Programs already ported</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
These programs have already been ported to L<SMALL>INUX</SMALL>:
|
||||
|
||||
<UL>
|
||||
<LI>GNU cc (gcc, cc1, cpp)
|
||||
</LI>
|
||||
<LI>GNU assembler (as386)
|
||||
</LI>
|
||||
<LI>GNU binutils (ld, ar, nm, size, strip, ranlib)
|
||||
</LI>
|
||||
<LI>GNU compress (16-bit)
|
||||
</LI>
|
||||
<LI>GNU tar
|
||||
</LI>
|
||||
<LI>GNU make
|
||||
</LI>
|
||||
<LI>GNU bash (Bourne Again SHell)
|
||||
</LI>
|
||||
<LI>GNU sed
|
||||
</LI>
|
||||
<LI>GNU bison (yacc-lookalike)
|
||||
</LI>
|
||||
<LI>GNU awk
|
||||
</LI>
|
||||
<LI>GNU fileutils (ls, cp, rm, mkdir, rmdir, tail etc)
|
||||
</LI>
|
||||
<LI>less
|
||||
</LI>
|
||||
<LI>uemacs
|
||||
</LI>
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
All of the above sources can be found on <TT>`nic.funet.fi'</TT> (mostly in
|
||||
<TT>`/pub/gnu'</TT>), and most of the L<SMALL>INUX</SMALL>-binaries can be found in the
|
||||
directory <TT>'/pub/OS/Linux'</TT>. All of these programs compiled without changes, even
|
||||
though gcc (cc1) has some enhancements of my own. Mail me for
|
||||
diffs/sources, but try first to compile them yourself.
|
||||
|
||||
<P>
|
||||
Additionally I have reports that GNU diff compiles cleanly and works.
|
||||
|
||||
<P>
|
||||
|
||||
<H1><A NAME="SECTION00050000000000000000">
|
||||
Technical help</A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
L<SMALL>INUX</SMALL> currently has a mailing-list, which you can subscribe to by
|
||||
mailing to the address: <TT><B>Linux-activists-request@niksula.hut.fi</B></TT>
|
||||
and asking to be included into the list. You can then ask questions by
|
||||
mailing them to <TT><B>Linux-activists@niksula.hut.fi</B></TT>, which will
|
||||
duplicate your question/answer/whatever and send them to all persons on
|
||||
the list.
|
||||
|
||||
<P>
|
||||
Note the difference between <TT>Linux-activists</TT> and
|
||||
<TT>Linux-activists-request</TT> -- the first sends mail to all persons on
|
||||
the list, the second is used only to subscribe and unsubscribe from the
|
||||
list.
|
||||
|
||||
<P>
|
||||
Naturally, you can also mail me directly at <TT><B>torvalds@kruuna.helsinki.fi</B></TT>. I'll try to answer all questions within a
|
||||
day or two.
|
||||
|
||||
<P>
|
||||
Although <TT>`nic.funet.fi'</TT> will probably be kept reasonably up-to-date, there are a
|
||||
few problems with it (ie, I cannot personally get to the files, but have
|
||||
to go through a couple of persons). Thus people on the mailing-list will
|
||||
get patches/binaries faster if they ask for them.
|
||||
|
||||
<P>
|
||||
|
||||
<H1><A NAME="SECTION00060000000000000000">
|
||||
Thanks</A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
I'd like to thank the academy ...
|
||||
|
||||
<P>
|
||||
Seriously, this system never would have seen the light of day or would
|
||||
have been much worse without the help of some others. Bruce Evans
|
||||
helped me find the places needed to be changed in order for <TT>gcc</TT> to
|
||||
correctly handle floating point, and came with a lot of useful
|
||||
ideas/suggestions (and his Minix-386 was used to build the system).
|
||||
Also, Earl Chew's <TT>estdio</TT> package was used for the standard
|
||||
IO-library. More freely distributable packages like this!
|
||||
|
||||
<P>
|
||||
Alain W Black and Richard Tobin made the gcc for Minix, without which I
|
||||
couldn't have compiled the thing. GNU made most of the programs I use
|
||||
under L<SMALL>INUX</SMALL>. Alfred Leung sent the US keyboard patches.
|
||||
|
||||
<P>
|
||||
PS. ``Thanks'' to <TT>wirzeniu@kruuna.helsinki.fi</TT> for his
|
||||
``constructive'' criticism and ``witty'' comments. He was also my first
|
||||
<IMG
|
||||
WIDTH="14" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
ALT="$\alpha$">-tester, and should be given a medal for courage.
|
||||
|
||||
<P>
|
||||
|
||||
<H1><A NAME="SECTION00070000000000000000">
|
||||
About this document ...</A>
|
||||
</H1>
|
||||
<STRONG>L<SMALL>INUX</SMALL>--a free unix-386 kernel</STRONG><P>
|
||||
This document was generated using the
|
||||
<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002 (1.62)
|
||||
<P>
|
||||
Copyright © 1993, 1994, 1995, 1996,
|
||||
<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>,
|
||||
Computer Based Learning Unit, University of Leeds.
|
||||
<BR>
|
||||
Copyright © 1997, 1998, 1999,
|
||||
<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>,
|
||||
Mathematics Department, Macquarie University, Sydney.
|
||||
<P>
|
||||
The command line arguments were: <BR>
|
||||
<STRONG>latex2html</STRONG> <TT>-local_icons -address gohigh@sh163.net -split 1 Linux.tex</TT>
|
||||
<P>
|
||||
The translation was initiated by root on 2004-05-08<HR>
|
||||
<!--Navigation Panel-->
|
||||
<IMG WIDTH="81" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next_inactive" SRC="nx_grp_g.png">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_g.png">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev_g.png">
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
<ADDRESS>
|
||||
jiong.zhao@tongji.edu.cn
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
||||
13
Linus/labels.pl
Normal file
13
Linus/labels.pl
Normal file
@@ -0,0 +1,13 @@
|
||||
# LaTeX2HTML 2002 (1.62)
|
||||
# Associate labels original text with physical files.
|
||||
|
||||
|
||||
1;
|
||||
|
||||
|
||||
# LaTeX2HTML 2002 (1.62)
|
||||
# labels from external_latex_labels array.
|
||||
|
||||
|
||||
1;
|
||||
|
||||
BIN
Linus/nx_grp_g.png
Normal file
BIN
Linus/nx_grp_g.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 386 B |
BIN
Linus/prev_g.png
Normal file
BIN
Linus/prev_g.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 327 B |
BIN
Linus/up_g.png
Normal file
BIN
Linus/up_g.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 231 B |
Reference in New Issue
Block a user