initial version

This commit is contained in:
gohigh
2024-02-19 01:11:57 -05:00
parent 7c80ef0753
commit 692092f8e0
817 changed files with 430745 additions and 0 deletions

BIN
Linus/911010.pdf Normal file

Binary file not shown.

30
Linus/Linux.css Normal file
View 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
View 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.&nbsp;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 &#169; 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 &#169; 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
View File

@@ -0,0 +1 @@
\relax

200
Linus/images.log Normal file
View 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
View 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
View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 B

553
Linus/index.html Normal file
View 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.&nbsp;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 &#169; 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 &#169; 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
View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 B

BIN
Linus/prev_g.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

BIN
Linus/up_g.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B