add directory Linux-0.01
This commit is contained in:
114
Linux-0.01/docs/INSTALLATION
Normal file
114
Linux-0.01/docs/INSTALLATION
Normal file
@@ -0,0 +1,114 @@
|
||||
|
||||
|
||||
Installing Linux on your system
|
||||
|
||||
Ok, this is a short guide for those people who actually want to get a
|
||||
running system, not just look at the pretty source code :-). You'll
|
||||
certainly need minix for most of the steps.
|
||||
|
||||
|
||||
0. Back up any important software. This kernel has been
|
||||
working beautifully on my machine for some time, and has never destroyed
|
||||
anything on my hard-disk, but you never can be too careful when it comes
|
||||
to using the disk directly. I'd hate to get flames like "you destroyed
|
||||
my entire collection of Sam Fox nude gifs (all 103 of them), I'll hate
|
||||
you forever", just because I may have done something wrong.
|
||||
|
||||
Double-check your hardware. If you are using other than EGA/VGA, you'll
|
||||
have to make the appropriate changes to 'linux/kernel/console.c', which
|
||||
may not be easy. If you are able to use the at_wini.c under minix,
|
||||
linux will probably also like your drive. If you feel comfortable with
|
||||
scan-codes, you might want to hack 'linux/kernel/keyboard.s' making it
|
||||
more practical for your [US|German|...] keyboard.
|
||||
|
||||
|
||||
1. Decide on what root device you'll be using. You can use any
|
||||
(standard) partition on any of your harddisks, the numbering is the same
|
||||
as for minix (ie 0x306, which I'm using, means partition 1 on hd2). It
|
||||
is certainly possible to use the same device as for minix, but I
|
||||
wouldn't recommend it. You'd have to change pathnames (or make a chroot
|
||||
in init) to get minix and linux to live together peacefully.
|
||||
|
||||
I'd recommend making a new filesystem, and filling it with the necessary
|
||||
files: You need at least the following:
|
||||
|
||||
- /dev/tty0 (same as under minix, ie mknod ...)
|
||||
- /dev/tty (same as under minix)
|
||||
- /bin/sh (link to bash)
|
||||
- /bin/update (I guess this should be /etc/update ...)
|
||||
|
||||
Note that linux and minix binaries aren't compatible, although they use
|
||||
the same (gcc-)header (for ease of cross-compiling), so running one
|
||||
under the other will result in errors.
|
||||
|
||||
|
||||
2. Compile the source, making necessary changes into the
|
||||
makefiles and linux/include/linux/config.h and linux/boot/boot.s. I'm
|
||||
using a slightly hacked gcc-1.40, to which I have added a -mstring-insns
|
||||
flag, which uses the i386 string instructions for structure copy etc.
|
||||
Removing the flag from all makefiles should do the trick for you.
|
||||
|
||||
NOTE! I'm using -Wall, and I'm not seeing many warnings (2 I think, one
|
||||
about _exit returning although it's volatile - it's ok.) If you get
|
||||
more warnings when compiling, something's wrong.
|
||||
|
||||
|
||||
3. Copy the resultant code to a diskette of the right type.
|
||||
Use 'cp Image /dev/PS0' or equivalent.
|
||||
|
||||
|
||||
4. Boot with the new diskette. If you've done everything right
|
||||
(and if *I've* done everything right), you should now be running bash as
|
||||
root. You can't do much (alias ls='echo *' is a good idea :-), but if
|
||||
you do run, most other things should work. I'd be happy to hear from
|
||||
anybody that has come this far - and I'll send any ported binaries you
|
||||
might want (and I have). I'll also put them out for ftp if there is
|
||||
enough interest. With gcc, make and uemacs, I've been able to stop
|
||||
crosscompiling and actually compile natively under linux. (I also have
|
||||
a term-emu, sz/rz, sed, etc ...)
|
||||
|
||||
The boot-sequence should start with "Loading system...", and then a
|
||||
"Partition table ok" followed by some root-dev info. If you forget to
|
||||
make the /dev/tty0-character device, you'll never see anything but the
|
||||
"loading" message. Hopefully errors will be told to the console, but if
|
||||
there are problems at boot-up there is a distinct possibility that the
|
||||
machine just hangs.
|
||||
|
||||
|
||||
5. Check the new filesystem regularly with (minix) fsck. I
|
||||
haven't got any errors for some time now, but I cannot guarantee that
|
||||
this means it will never happen. Due to slight differences in 'unlink',
|
||||
fsck will report "mode inode XXX not cleared", but that isn't an error,
|
||||
and you can safely ignore it (if you don't like it, do a fsck -a every
|
||||
once in a while). Minix "restore" will not work on a file deleted with
|
||||
linux - so be extra careful if you have a tendency to delete files you
|
||||
don't really want to.
|
||||
|
||||
Logging out from the "login-shell" will automatically do a sync, and
|
||||
will leave you hanging without any processes (except update, which isn't
|
||||
much fun), so do the "three-finger-salute" to restart dos/minix/linux or
|
||||
whatever.
|
||||
|
||||
|
||||
6. Mail me and ask about problems/updates etc. Even more
|
||||
welcome are success-reports (yeah, sure), and bugreports or even patches
|
||||
(or pointers to corrections).
|
||||
|
||||
|
||||
NOTE!!! I haven't included diffs with the binaries I've posted for the
|
||||
simple reason that there aren't any - I've had this silly idea that I'd
|
||||
rather change the OS than do a lot of porting. All source to the
|
||||
binaries can be found on nic.funet.fi under /pub/gnu or /pub/unix.
|
||||
Changes have been to makefiles or configuration files, and anybody
|
||||
interested in them might want to contact me. Mostly it's been a matter
|
||||
of adding a -DUSG to makefiles.
|
||||
|
||||
The one exception if gcc - I've made some hacks on it (string-insns),
|
||||
and have got it (with the gracious help of Bruce Evans) to correctly
|
||||
emit software floating point. I haven't got diffs to that one either, as
|
||||
my hard-disk is overflowing and I cannot accomodate both originals and
|
||||
changes, but as per the GNU copyleft I'll make them available if
|
||||
someone wants them. I hope nobody want's them :-)
|
||||
|
||||
|
||||
Linus torvalds@kruuna.helsinki.fi
|
||||
Reference in New Issue
Block a user