add directory Linux-0.11
This commit is contained in:
256
Linux-0.11/docs/FAQ
Normal file
256
Linux-0.11/docs/FAQ
Normal file
@@ -0,0 +1,256 @@
|
||||
|
||||
daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 12/19/91 01:39 (253 lines)
|
||||
Subject: A FAQ is coming...
|
||||
Date: Thu, 19 Dec 91 07:29:21 +0100
|
||||
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
|
||||
To: linux-activists@joker.cs.hut.fi
|
||||
|
||||
Hi Linuxers!
|
||||
|
||||
Following is a FAQ-compilation (most credits to Linus) for Linux.
|
||||
Mail me, if you like it, and mail me, if you dislike it or have
|
||||
any ideas on changing this.
|
||||
|
||||
Thanks in advance,
|
||||
Robert Blum
|
||||
|
||||
|
||||
QUESTION: What is linux?
|
||||
|
||||
ANSWER: Linux is a small unix for 386-AT computers, that has the added
|
||||
advantage of being free. It is still in beta-testing, but is slowly
|
||||
getting useful even for somewhat real developement.
|
||||
|
||||
|
||||
QUESTION: Does it run on my computer?
|
||||
|
||||
ANSWER: Linux has been written on a clone-386, with IDE drives and a VGA
|
||||
screen. It should work on most similar setups. The harddisk should be
|
||||
AT-standard (ie not SCSI, ESDI), and the system must be ISA. Otherwise
|
||||
the requirements seem relatively small: a 386 (SX, DX or any 486). The
|
||||
current version (0.10) needs a colour screen adapter, but this is not
|
||||
the case with the next version.
|
||||
|
||||
It needs at least 2M to run, and 4M is definitely a plus. It can happily
|
||||
use up to 16M (and more if you change some things).
|
||||
|
||||
|
||||
QUESTION: Will linux run on a PC or 286-AT? If not, why?
|
||||
|
||||
ANSWER: Linux uses the 386 chip protected mode functions extensively,
|
||||
and is a true 32-bit operating system. Thus x86 chips, x<3, will simply
|
||||
not run it.
|
||||
|
||||
|
||||
QUESTION: Does linux do paging? Can I have virtual memory on my small
|
||||
machine?
|
||||
|
||||
ANSWER: Linux does use the 386 paging unit, but currently only for
|
||||
memory management. No use of disks as expansion RAM. This is one of the
|
||||
things that will be implemented sometime in the (far?) future. Linux
|
||||
also uses the paging unit to share pages between several processes after
|
||||
a fork: thus it needs less memory. However, almost all the user programs
|
||||
available for linux are GNU software, which want gobs and gobs of
|
||||
memory. This is the reason at least 4M is recommended: GNU cc (gcc)
|
||||
simply won't run in less.
|
||||
|
||||
|
||||
QUESTION: Can I have tasks spanning the full 4GB of addressable 386
|
||||
memory? No more 64kB limits like in coherent or standard minix?
|
||||
|
||||
ANSWER: Linux does limit the task-size, but at a much more reasonable
|
||||
64MB (MEGA-byte, not kilos), so bigger programs are no problem.
|
||||
|
||||
|
||||
QUESTION: Does the bigger program sizes mean I can run X?
|
||||
|
||||
ANSWER: X is not ported to linux, and though I hope it will be some day,
|
||||
I cannot guarantee it. It's big, and wants a lot from the system.
|
||||
|
||||
|
||||
QUESTION: Where can I get linux? Is there a mailserver?
|
||||
|
||||
ANSWER: Linux can be gotten by anonymous ftp from
|
||||
nic.funet.fi (128.214.6.100):
|
||||
directory /pub/OS/Linux
|
||||
Tupac-Amaru.Informatik.RWTH-Aachen.DE (137.226.112.31):
|
||||
directory /pub/msdos/replace
|
||||
tsx-11.mit.edu (18.172.1.2):
|
||||
directory /pub/linux
|
||||
ftp.eecs.umich.edu (141.212.99.7):
|
||||
directory linux
|
||||
You might want to check out which of these is the most up-to-date.
|
||||
|
||||
If you don't have ftp-capability, you are in trouble. You might try
|
||||
mailing "mailserver@nic.funet.fi" with "help" in the body of the mail.
|
||||
|
||||
|
||||
QUESTION: Is there a newsgroup or mailing-list about linux? Where can I
|
||||
get my questions answered? How about bug-reports?
|
||||
|
||||
ANSWER: There is a mailing list set up at the address
|
||||
'Linux-activists@niksula.hut.fi'. To join, mail a request to
|
||||
'Linux-activists-request@niksula.hut.fi'. DO NOT mail "I want to
|
||||
[un]subscribe" to the mailing-list, use the request-address.
|
||||
|
||||
Questions and bug-reports can be sent either to the mailing-list or to
|
||||
"torvalds@kruuna.helsinki.fi", depending on which you find more
|
||||
appropriate.
|
||||
|
||||
|
||||
QUESTION: I got the minix-demo, but it won't boot. Linux boots from
|
||||
floppy. What's wrong?
|
||||
|
||||
ANSWER: You probably wrote the minix demo to a 1.44M disk, which (for
|
||||
some unfathomable reason) doesn't work. The minix demo wants a 720kB or
|
||||
1.2M disk.
|
||||
|
||||
|
||||
QUESTION: The minix-demo boots all right, but doesn't seem to recognize
|
||||
my second harddisk. What's up?
|
||||
|
||||
ANSWER: The minix-demo does support a second harddisk, but there are no
|
||||
special files made for it, and the minix demo doesn't include the
|
||||
"mknod" command. Mount the linux root-floppy, and use the devices on
|
||||
that.
|
||||
|
||||
|
||||
QUESTION: How can I be sure I won't be writing over anything important?
|
||||
I have to use DOS in on my machine, and I don't want to lose any files.
|
||||
|
||||
ANSWER: Back up everything. Just in case. Then, write some easily
|
||||
recognizable pattern to the partition you have reserved for linux, using
|
||||
some DOS tool. You can then use "cat /dev/hdX" under minix to examine
|
||||
which of the partitions you used.
|
||||
|
||||
|
||||
QUESTION: Minix mkfs doesn't accept the size I give the device, although
|
||||
I double-checked with fdisk, and it's correct.
|
||||
|
||||
ANSWER: Be sure you give the size in BLOCKS, ie 1024 bytes, not sectors.
|
||||
Also, make doubly certain that you have the correct partition.
|
||||
|
||||
|
||||
QUESTION: I used the minix mkfs to make a filesystem on /dev/hd3 after
|
||||
having checked that this was indeed the partition I had reserved. Minix
|
||||
mounts the new partition ok, but linux doesn't. What gives?
|
||||
|
||||
ANSWER: In some cases partitions are numbered differently under minix
|
||||
and linux. This seems to correlate to the FDISK version you have used.
|
||||
/dev/hd3 under minix may be /dev/hd2 under linux etc.
|
||||
|
||||
There are a few rules about this: /dev/hd0 and /dev/hd5 are always the
|
||||
same under linux and minix. DO NOT USE THEM, they are the whole raw
|
||||
disk, not partitions. Also if a partition is on drive 1 under minix (ie
|
||||
/dev/hd1-4), it is drive 1 under linux as well.
|
||||
|
||||
|
||||
QUESTION: I mounted the linux filesystem, and copied the files from the
|
||||
root-disk to the harddisk. Now I cannot find them any more, and
|
||||
somethimes linux dies with a "panic: trying to free unused inode".
|
||||
|
||||
ANSWER: You have probably forgot to sync before rebooting. Linux, like
|
||||
all unices, use a "buffer cache" to speed up reads and writes to disk.
|
||||
On a machine that has enough memory, this buffer-cache is 1.5MB, and if
|
||||
you forget to sync before exiting, it may not be fully written out to
|
||||
disk. Re-mkfs and re-install (or try to use the preliminary fsck, but
|
||||
remeber that although fsck tries to correct the faults it finds, it may
|
||||
fail.)
|
||||
|
||||
|
||||
QUESTION: the mtools package on the root-disk won't work. I get an
|
||||
ENOENT error message for all devices.
|
||||
|
||||
ANSWER: mtools needs to be told which device to look for. Use 'ln' or
|
||||
'mknod' to create a sepcial file called "/dev/dosX", where X is A, B or
|
||||
C. This file should point to the device you want to read.
|
||||
|
||||
|
||||
QUESTION: Turbo (Microsoft) Assembler won't compile the Linux boot code.
|
||||
In fact, some of the opcodes in these files look completely unfamiliar. Why?
|
||||
|
||||
ANSWER: The Linux boot codes are written in Bruce Evans' minix assembler,
|
||||
which has the same opcodes as the original minix assembler. There are a few
|
||||
differences between these and normal DOS assemblers:
|
||||
|
||||
- No segments - everything is in the same segment (at least in the
|
||||
bootsectors and setup, as they don't use the .data segments)
|
||||
|
||||
- mov[b|w|l] are shorter versions of mov ax,[byte|word|long] ptr [XXX].
|
||||
This is how unix assemblers normally give the size (byte, word or long).
|
||||
Gas has similar constructs.
|
||||
|
||||
- There is no "jmp short", the opcodes are "j" for a short jump and
|
||||
"jmp" for a long one.
|
||||
|
||||
- "jmpi" is a jump with a segment:offset pair. I don't know how this is
|
||||
written in DOS assembly.
|
||||
|
||||
|
||||
QUESTION: While running du I get "Kernel panic: free_inode: bit already
|
||||
cleared". Also, du produces a ENOENT error for all the files in certain
|
||||
of my directories. What's going on?
|
||||
|
||||
ANSWER: These are both consistent with a bad file-system. That's relatively
|
||||
easy to produce by not syncing before rebooting, as linux usually has 1.5MB
|
||||
of buffer space held in memory (unless you have <=4M RAM, in which case
|
||||
the buffers are only about 0.5MB). Also linux doesn't do anything
|
||||
special about the bit-map blocks, and as they are used often, those are
|
||||
the thing most likely to be in memory. If you reboot, and they haven't
|
||||
been written to disk ...
|
||||
|
||||
I'm afraid that as long as there is no fsck for linux there is no way to
|
||||
correct the matter (unless you have minix and can run minix fsck), and
|
||||
the only thing to do is to reinstall the filesystem from scratch (ie do
|
||||
a mkfs from the minix demodisk and reboot from the original
|
||||
linux-floppy).
|
||||
|
||||
A sync is done only every 30 seconds normally (standard unix practice),
|
||||
so do one by hand (some people think you should do 3 syncs after each
|
||||
other, but that's superstition), or by logging out from the
|
||||
startup-shell, which automatically syncs the system. Unmounting a
|
||||
filesystem also syncs it (but of course you can never unmount root).
|
||||
|
||||
Another (sad) possibility is that you have bad blocks on your disk. Not
|
||||
very probable, as they would have to be in the inode-tables, just a
|
||||
couple of blocks in size. Again there aren't programs available to read
|
||||
a disk for bad sectors and put them in some kind of "bad-sector-file".
|
||||
On IDE drives this is no problem (bad sectors are automatically mapped
|
||||
away).
|
||||
|
||||
|
||||
QUESTION: What is the "em" binary?
|
||||
|
||||
ANSWER: Em is micro-EMacs (probably version 3.10).
|
||||
|
||||
QUESTION: I seem to be unable to compile anythong with gcc. Why?
|
||||
|
||||
ANSWER: If you have only 2 MB RAM, gcc will die silently without compiling
|
||||
anything. You must have at least 4 MB to do compilations
|
||||
|
||||
|
||||
QUESTION: I'm using a program that uses signal handlers which are installed
|
||||
using sigaction() with the SA_NOMASK, and they get a general protection
|
||||
error right after the signal handler tries to return. What's going
|
||||
wrong?
|
||||
|
||||
ANSWER: You are using a libc.a that has an out-of-date signal.o and
|
||||
sig_restore.o file, and they don't know how to deal with SA_NOMASK.
|
||||
(The one in gccbin.tar.Z is out-of-date.) You can obtain the newer
|
||||
signal.c from the unistd.tar.Z file, but don't use the associated
|
||||
sig_restore.c from there; the FTP sites should have a separate
|
||||
sig_restore.c which is up to date. While you're at it, you should also
|
||||
get an updated crt0.c file as well, and install your new crt0.o and
|
||||
libc.a in /usr/lib.
|
||||
|
||||
(This answer will likely change in the near future, since there are
|
||||
plans to change the format of the signal trampoline code yet again....
|
||||
but for now, this should be an accurate description of how things stand
|
||||
now.)
|
||||
|
||||
|
||||
QUESTION: gcc complains about not finding crt0.o and the system include files
|
||||
What am i doing wrong ?
|
||||
|
||||
ANSWER: The include files normal place is in /usr/include. libc.a and *.a
|
||||
should be in /usr/lib
|
||||
248
Linux-0.11/docs/FAQ-0.11
Normal file
248
Linux-0.11/docs/FAQ-0.11
Normal file
@@ -0,0 +1,248 @@
|
||||
|
||||
QUESTION: What is linux?
|
||||
|
||||
ANSWER: Linux is a small unix for 386-AT computers, that has the added
|
||||
advantage of being free. It is still in beta-testing, but is slowly
|
||||
getting useful even for somewhat real developement.
|
||||
|
||||
|
||||
QUESTION: Does it run on my computer?
|
||||
|
||||
ANSWER: Linux has been written on a clone-386, with IDE drives and a VGA
|
||||
screen. It should work on most similar setups. The harddisk should be
|
||||
AT-standard (ie not SCSI, ESDI), and the system must be ISA. Otherwise
|
||||
the requirements seem relatively small: a 386 (SX, DX or any 486).
|
||||
|
||||
It needs at least 2M to run, and 4M is definitely a plus. It can happily
|
||||
use up to 16M (and more if you change some things).
|
||||
|
||||
|
||||
QUESTION: Will linux run on a PC or 286-AT? If not, why?
|
||||
|
||||
ANSWER: Linux uses the 386 chip protected mode functions extensively,
|
||||
and is a true 32-bit operating system. Thus x86 chips, x<3, will simply
|
||||
not run it.
|
||||
|
||||
|
||||
QUESTION: Does linux do paging? Can I have virtual memory on my small
|
||||
machine?
|
||||
|
||||
ANSWER: Linux does use the 386 paging unit, but currently only for
|
||||
memory management. It currently is not doing any paging or swapping.
|
||||
This is one of the things that will be implemented sometime in the
|
||||
near future. Linux also uses the paging unit to share pages between
|
||||
several processes after a fork: thus it needs less memory. However,
|
||||
of the interesting programs which have been ported to linux so want
|
||||
gobs and gobs of memory; in particular, the GNU C compiler (gcc) needs
|
||||
at least 4 meg of memory.
|
||||
|
||||
Even after paging is implemented, 4 Megs would still be recommended,
|
||||
since large programs would run very slowly.
|
||||
|
||||
|
||||
QUESTION: Can I have tasks spanning the full 4GB of addressable 386
|
||||
memory? No more 64kB limits like in coherent or standard minix?
|
||||
|
||||
ANSWER: Linux does limit the task-size, but at a much more reasonable
|
||||
64MB (MEGA-byte, not kilos), so bigger programs are no problem.
|
||||
|
||||
|
||||
QUESTION: Does the bigger program sizes mean I can run X?
|
||||
|
||||
ANSWER: X is not ported to linux, and though I hope it will be some day,
|
||||
I cannot guarantee it. It's big, and wants a lot from the system.
|
||||
|
||||
|
||||
QUESTION: Where can I get linux? Is there a mailserver?
|
||||
|
||||
ANSWER: Linux can be gotten by anonymous ftp from
|
||||
nic.funet.fi (128.214.6.100):
|
||||
directory /pub/OS/Linux
|
||||
Tupac-Amaru.Informatik.RWTH-Aachen.DE (137.226.112.31):
|
||||
directory /pub/msdos/replace
|
||||
tsx-11.mit.edu (18.172.1.2):
|
||||
directory /pub/linux
|
||||
ftp.eecs.umich.edu (141.212.99.7):
|
||||
directory linux
|
||||
You might want to check out which of these is the most up-to-date.
|
||||
|
||||
If you don't have ftp-capability, you are in trouble. You might try
|
||||
mailing "mailserver@nic.funet.fi" with "help" in the body of the mail.
|
||||
|
||||
|
||||
QUESTION: Is there a newsgroup or mailing-list about linux? Where can I
|
||||
get my questions answered? How about bug-reports?
|
||||
|
||||
ANSWER: There is a mailing list set up at the address
|
||||
'Linux-activists@niksula.hut.fi'. To join, mail a request to
|
||||
'Linux-activists-request@niksula.hut.fi'. DO NOT mail "I want to
|
||||
[un]subscribe" to the mailing-list, use the request-address.
|
||||
|
||||
Questions and bug-reports can be sent either to the mailing-list or to
|
||||
"torvalds@kruuna.helsinki.fi", depending on which you find more
|
||||
appropriate.
|
||||
|
||||
|
||||
QUESTION: I got the minix-demo, but it won't boot. Linux boots from
|
||||
floppy. What's wrong?
|
||||
|
||||
ANSWER: You probably wrote the minix demo to a 1.44M disk, which (for
|
||||
some unfathomable reason) doesn't work. The minix demo wants a 720kB or
|
||||
1.2M disk.
|
||||
|
||||
In any case, you shouldn't need to use the Minix-demo disk any more;
|
||||
as of version 0.11, Linux comes with sufficient filesystem utilities
|
||||
(mkfs, fsck, etc.) so that Minix should no longer be required to bring
|
||||
up an operating Linux system.
|
||||
|
||||
|
||||
QUESTION: The minix-demo boots all right, but doesn't seem to
|
||||
recognize my second harddisk. What's up? [SUGGESTION: delete this
|
||||
question; see above first paragraph]
|
||||
|
||||
ANSWER: The minix-demo does support a second harddisk, but there are no
|
||||
special files made for it, and the minix demo doesn't include the
|
||||
"mknod" command. Mount the linux root-floppy, and use the devices on
|
||||
that.
|
||||
|
||||
|
||||
QUESTION: How can I be sure I won't be writing over anything important?
|
||||
I have to use DOS in on my machine, and I don't want to lose any files.
|
||||
|
||||
ANSWER: Back up everything. Just in case. Then, write some easily
|
||||
recognizable pattern to the partition you have reserved for linux, using
|
||||
some DOS tool. You can then use "cat /dev/hdX" under minix to examine
|
||||
which of the partitions you used.
|
||||
|
||||
|
||||
QUESTION: The mkfs program doesn't accept the size I give the device,
|
||||
although I double-checked with fdisk, and it's correct.
|
||||
|
||||
ANSWER: Be sure you give the size in BLOCKS, ie 1024 bytes, not sectors.
|
||||
Also, make doubly certain that you have the correct partition.
|
||||
|
||||
|
||||
QUESTION: I used the minix mkfs to make a filesystem on /dev/hd3 after
|
||||
having checked that this was indeed the partition I had reserved. Minix
|
||||
mounts the new partition ok, but linux doesn't. What gives?
|
||||
|
||||
ANSWER: In some cases partitions are numbered differently under minix
|
||||
and linux. This seems to correlate to the FDISK version you have used.
|
||||
/dev/hd3 under minix may be /dev/hd2 under linux etc.
|
||||
|
||||
There are a few rules about this: /dev/hd0 and /dev/hd5 are always the
|
||||
same under linux and minix. DO NOT USE THEM, they are the whole raw
|
||||
disk, not partitions. Also if a partition is on drive 1 under minix (ie
|
||||
/dev/hd1-4), it is drive 1 under linux as well.
|
||||
|
||||
|
||||
QUESTION: I mounted the linux filesystem, and copied the files from the
|
||||
root-disk to the harddisk. Now I cannot find them any more, and
|
||||
somethimes linux dies with a "panic: trying to free unused inode".
|
||||
|
||||
ANSWER: You have probably forgot to sync before rebooting. Linux, like
|
||||
all unices, use a "buffer cache" to speed up reads and writes to disk.
|
||||
On a machine that has enough memory, this buffer-cache is 1.5MB, and if
|
||||
you forget to sync before exiting, it may not be fully written out to
|
||||
disk. Re-mkfs and re-install (or try to use the preliminary fsck, but
|
||||
remeber that although fsck tries to correct the faults it finds, it may
|
||||
fail.)
|
||||
|
||||
|
||||
QUESTION: the mtools package on the root-disk won't work. I get an
|
||||
ENOENT error message for all devices.
|
||||
|
||||
ANSWER: mtools needs to be told which device to look for. Use 'ln' or
|
||||
'mknod' to create a special file called "/dev/dosX", where X is A, B or
|
||||
C. This file should point to the device you want to read.
|
||||
|
||||
|
||||
QUESTION: Turbo (Microsoft) Assembler won't compile the Linux boot code.
|
||||
In fact, some of the opcodes in these files look completely unfamiliar. Why?
|
||||
|
||||
ANSWER: The Linux boot codes are written in Bruce Evans' minix assembler,
|
||||
which has the same opcodes as the original minix assembler. There are a few
|
||||
differences between these and normal DOS assemblers:
|
||||
|
||||
- No segments - everything is in the same segment (at least in the
|
||||
bootsectors and setup, as they don't use the .data segments)
|
||||
|
||||
- mov[b|w|l] are shorter versions of mov ax,[byte|word|long] ptr [XXX].
|
||||
This is how unix assemblers normally give the size (byte, word or long).
|
||||
Gas has similar constructs.
|
||||
|
||||
- There is no "jmp short", the opcodes are "j" for a short jump and
|
||||
"jmp" for a long one.
|
||||
|
||||
- "jmpi" is a jump with a segment:offset pair. I don't know how this is
|
||||
written in DOS assembly.
|
||||
|
||||
|
||||
QUESTION: While running du I get "Kernel panic: free_inode: bit already
|
||||
cleared". Also, du produces a ENOENT error for all the files in certain
|
||||
of my directories. What's going on?
|
||||
|
||||
ANSWER: These are both consistent with a bad file-system. That's relatively
|
||||
easy to produce by not syncing before rebooting, as linux usually has 1.5MB
|
||||
of buffer space held in memory (unless you have <=4M RAM, in which case
|
||||
the buffers are only about 0.5MB). Also linux doesn't do anything
|
||||
special about the bit-map blocks, and as they are used often, those are
|
||||
the thing most likely to be in memory. If you reboot, and they haven't
|
||||
been written to disk ...
|
||||
|
||||
If this happens to you, you should run the fsck program to determine
|
||||
to fix the inconsistencies in the file system. The syntax is:
|
||||
|
||||
fsck [-larvsm] device_name
|
||||
|
||||
You should first run it without any arguments, to assess the damage,
|
||||
and then run it with the -r or (if you're feeling adventurous) -a
|
||||
options to reapir the damage. The -a flag stands for automatic, which
|
||||
means tath fsck won't bother to ask you for confirmation before it
|
||||
fixes each inconsistency.
|
||||
|
||||
While the Linux system is in operation the disk buffers are forced out
|
||||
to disk only every 30 seconds by the /bin/update program (if it were
|
||||
done more frequently it would slow down the system). Before you halt,
|
||||
powerdown, or reboot your system, you should use the 'sync' program to
|
||||
manually write out any disk buffers to disk (some people think you
|
||||
should do 3 syncs after each other, but that's superstition). Or, you
|
||||
can log out out from the startup-shell, which automatically syncs the
|
||||
system. Unmounting a filesystem also syncs it (but of course you can
|
||||
never unmount root).
|
||||
|
||||
Another (sad) possibility is that you have bad blocks on your disk. Not
|
||||
very probable, as they would have to be in the inode-tables, just a
|
||||
couple of blocks in size. Again there aren't programs available to read
|
||||
a disk for bad sectors and put them in some kind of "bad-sector-file".
|
||||
On IDE drives this is no problem (bad sectors are automatically mapped
|
||||
away).
|
||||
|
||||
|
||||
QUESTION: What is the "em" binary?
|
||||
|
||||
ANSWER: Em is micro-EMacs (probably version 3.10).
|
||||
|
||||
QUESTION: I seem to be unable to compile anythong with gcc. Why?
|
||||
|
||||
ANSWER: If you have only 2 MB RAM, gcc will die silently without compiling
|
||||
anything. You must have at least 4 MB to do compilations
|
||||
|
||||
|
||||
QUESTION: I'm using a program that uses signal handlers which are installed
|
||||
using sigaction() with the SA_NOMASK, and they get a general protection
|
||||
error right after the signal handler tries to return. What's going
|
||||
wrong?
|
||||
|
||||
ANSWER: You are using a libc.a that has an out-of-date signal.o and
|
||||
sig_restore.o file, and they don't know how to deal with SA_NOMASK.
|
||||
(The one in gccbin.tar.Z is out-of-date.) You can obtain complete
|
||||
sources to the libc.a library from the FTP sites, and compile your own
|
||||
to make sure that you have the most up-to-date versions of all the
|
||||
library routines.
|
||||
|
||||
QUESTION: gcc complains about not finding crt0.o and the system include files
|
||||
What am i doing wrong ?
|
||||
|
||||
ANSWER: The include files normal place is in /usr/include. libc.a and *.a
|
||||
should be in /usr/lib
|
||||
265
Linux-0.11/docs/FAQv.txt
Normal file
265
Linux-0.11/docs/FAQv.txt
Normal file
@@ -0,0 +1,265 @@
|
||||
head 1.1;
|
||||
branch ;
|
||||
access ;
|
||||
symbols ;
|
||||
locks tytso:1.1; strict;
|
||||
comment @# @;
|
||||
|
||||
|
||||
1.1
|
||||
date 91.12.19.11.59.54; author tytso; state Exp;
|
||||
branches ;
|
||||
next ;
|
||||
|
||||
|
||||
desc
|
||||
@@
|
||||
|
||||
|
||||
|
||||
1.1
|
||||
log
|
||||
@Initial revision
|
||||
@
|
||||
text
|
||||
@
|
||||
QUESTION: What is linux?
|
||||
|
||||
ANSWER: Linux is a small unix for 386-AT computers, that has the added
|
||||
advantage of being free. It is still in beta-testing, but is slowly
|
||||
getting useful even for somewhat real developement.
|
||||
|
||||
|
||||
QUESTION: Does it run on my computer?
|
||||
|
||||
ANSWER: Linux has been written on a clone-386, with IDE drives and a VGA
|
||||
screen. It should work on most similar setups. The harddisk should be
|
||||
AT-standard (ie not SCSI, ESDI), and the system must be ISA. Otherwise
|
||||
the requirements seem relatively small: a 386 (SX, DX or any 486). The
|
||||
current version (0.10) needs a colour screen adapter, but this is not
|
||||
the case with the next version.
|
||||
|
||||
It needs at least 2M to run, and 4M is definitely a plus. It can happily
|
||||
use up to 16M (and more if you change some things).
|
||||
|
||||
|
||||
QUESTION: Will linux run on a PC or 286-AT? If not, why?
|
||||
|
||||
ANSWER: Linux uses the 386 chip protected mode functions extensively,
|
||||
and is a true 32-bit operating system. Thus x86 chips, x<3, will simply
|
||||
not run it.
|
||||
|
||||
|
||||
QUESTION: Does linux do paging? Can I have virtual memory on my small
|
||||
machine?
|
||||
|
||||
ANSWER: Linux does use the 386 paging unit, but currently only for
|
||||
memory management. No use of disks as expansion RAM. This is one of the
|
||||
things that will be implemented sometime in the (far?) future. Linux
|
||||
also uses the paging unit to share pages between several processes after
|
||||
a fork: thus it needs less memory. However, almost all the user programs
|
||||
available for linux are GNU software, which want gobs and gobs of
|
||||
memory. This is the reason at least 4M is recommended: GNU cc (gcc)
|
||||
simply won't run in less.
|
||||
|
||||
|
||||
QUESTION: Can I have tasks spanning the full 4GB of addressable 386
|
||||
memory? No more 64kB limits like in coherent or standard minix?
|
||||
|
||||
ANSWER: Linux does limit the task-size, but at a much more reasonable
|
||||
64MB (MEGA-byte, not kilos), so bigger programs are no problem.
|
||||
|
||||
|
||||
QUESTION: Does the bigger program sizes mean I can run X?
|
||||
|
||||
ANSWER: X is not ported to linux, and though I hope it will be some day,
|
||||
I cannot guarantee it. It's big, and wants a lot from the system.
|
||||
|
||||
|
||||
QUESTION: Where can I get linux? Is there a mailserver?
|
||||
|
||||
ANSWER: Linux can be gotten by anonymous ftp from
|
||||
nic.funet.fi (128.214.6.100):
|
||||
directory /pub/OS/Linux
|
||||
Tupac-Amaru.Informatik.RWTH-Aachen.DE (137.226.112.31):
|
||||
directory /pub/msdos/replace
|
||||
tsx-11.mit.edu (18.172.1.2):
|
||||
directory /pub/linux
|
||||
ftp.eecs.umich.edu (141.212.99.7):
|
||||
directory linux
|
||||
You might want to check out which of these is the most up-to-date.
|
||||
|
||||
If you don't have ftp-capability, you are in trouble. You might try
|
||||
mailing "mailserver@@nic.funet.fi" with "help" in the body of the mail.
|
||||
|
||||
|
||||
QUESTION: Is there a newsgroup or mailing-list about linux? Where can I
|
||||
get my questions answered? How about bug-reports?
|
||||
|
||||
ANSWER: There is a mailing list set up at the address
|
||||
'Linux-activists@@niksula.hut.fi'. To join, mail a request to
|
||||
'Linux-activists-request@@niksula.hut.fi'. DO NOT mail "I want to
|
||||
[un]subscribe" to the mailing-list, use the request-address.
|
||||
|
||||
Questions and bug-reports can be sent either to the mailing-list or to
|
||||
"torvalds@@kruuna.helsinki.fi", depending on which you find more
|
||||
appropriate.
|
||||
|
||||
|
||||
QUESTION: I got the minix-demo, but it won't boot. Linux boots from
|
||||
floppy. What's wrong?
|
||||
|
||||
ANSWER: You probably wrote the minix demo to a 1.44M disk, which (for
|
||||
some unfathomable reason) doesn't work. The minix demo wants a 720kB or
|
||||
1.2M disk.
|
||||
|
||||
|
||||
QUESTION: The minix-demo boots all right, but doesn't seem to recognize
|
||||
my second harddisk. What's up?
|
||||
|
||||
ANSWER: The minix-demo does support a second harddisk, but there are no
|
||||
special files made for it, and the minix demo doesn't include the
|
||||
"mknod" command. Mount the linux root-floppy, and use the devices on
|
||||
that.
|
||||
|
||||
|
||||
QUESTION: How can I be sure I won't be writing over anything important?
|
||||
I have to use DOS in on my machine, and I don't want to lose any files.
|
||||
|
||||
ANSWER: Back up everything. Just in case. Then, write some easily
|
||||
recognizable pattern to the partition you have reserved for linux, using
|
||||
some DOS tool. You can then use "cat /dev/hdX" under minix to examine
|
||||
which of the partitions you used.
|
||||
|
||||
|
||||
QUESTION: Minix mkfs doesn't accept the size I give the device, although
|
||||
I double-checked with fdisk, and it's correct.
|
||||
|
||||
ANSWER: Be sure you give the size in BLOCKS, ie 1024 bytes, not sectors.
|
||||
Also, make doubly certain that you have the correct partition.
|
||||
|
||||
|
||||
QUESTION: I used the minix mkfs to make a filesystem on /dev/hd3 after
|
||||
having checked that this was indeed the partition I had reserved. Minix
|
||||
mounts the new partition ok, but linux doesn't. What gives?
|
||||
|
||||
ANSWER: In some cases partitions are numbered differently under minix
|
||||
and linux. This seems to correlate to the FDISK version you have used.
|
||||
/dev/hd3 under minix may be /dev/hd2 under linux etc.
|
||||
|
||||
There are a few rules about this: /dev/hd0 and /dev/hd5 are always the
|
||||
same under linux and minix. DO NOT USE THEM, they are the whole raw
|
||||
disk, not partitions. Also if a partition is on drive 1 under minix (ie
|
||||
/dev/hd1-4), it is drive 1 under linux as well.
|
||||
|
||||
|
||||
QUESTION: I mounted the linux filesystem, and copied the files from the
|
||||
root-disk to the harddisk. Now I cannot find them any more, and
|
||||
somethimes linux dies with a "panic: trying to free unused inode".
|
||||
|
||||
ANSWER: You have probably forgot to sync before rebooting. Linux, like
|
||||
all unices, use a "buffer cache" to speed up reads and writes to disk.
|
||||
On a machine that has enough memory, this buffer-cache is 1.5MB, and if
|
||||
you forget to sync before exiting, it may not be fully written out to
|
||||
disk. Re-mkfs and re-install (or try to use the preliminary fsck, but
|
||||
remeber that although fsck tries to correct the faults it finds, it may
|
||||
fail.)
|
||||
|
||||
|
||||
QUESTION: the mtools package on the root-disk won't work. I get an
|
||||
ENOENT error message for all devices.
|
||||
|
||||
ANSWER: mtools needs to be told which device to look for. Use 'ln' or
|
||||
'mknod' to create a sepcial file called "/dev/dosX", where X is A, B or
|
||||
C. This file should point to the device you want to read.
|
||||
|
||||
|
||||
QUESTION: Turbo (Microsoft) Assembler won't compile the Linux boot code.
|
||||
In fact, some of the opcodes in these files look completely unfamiliar. Why?
|
||||
|
||||
ANSWER: The Linux boot codes are written in Bruce Evans' minix assembler,
|
||||
which has the same opcodes as the original minix assembler. There are a few
|
||||
differences between these and normal DOS assemblers:
|
||||
|
||||
- No segments - everything is in the same segment (at least in the
|
||||
bootsectors and setup, as they don't use the .data segments)
|
||||
|
||||
- mov[b|w|l] are shorter versions of mov ax,[byte|word|long] ptr [XXX].
|
||||
This is how unix assemblers normally give the size (byte, word or long).
|
||||
Gas has similar constructs.
|
||||
|
||||
- There is no "jmp short", the opcodes are "j" for a short jump and
|
||||
"jmp" for a long one.
|
||||
|
||||
- "jmpi" is a jump with a segment:offset pair. I don't know how this is
|
||||
written in DOS assembly.
|
||||
|
||||
|
||||
QUESTION: While running du I get "Kernel panic: free_inode: bit already
|
||||
cleared". Also, du produces a ENOENT error for all the files in certain
|
||||
of my directories. What's going on?
|
||||
|
||||
ANSWER: These are both consistent with a bad file-system. That's relatively
|
||||
easy to produce by not syncing before rebooting, as linux usually has 1.5MB
|
||||
of buffer space held in memory (unless you have <=4M RAM, in which case
|
||||
the buffers are only about 0.5MB). Also linux doesn't do anything
|
||||
special about the bit-map blocks, and as they are used often, those are
|
||||
the thing most likely to be in memory. If you reboot, and they haven't
|
||||
been written to disk ...
|
||||
|
||||
I'm afraid that as long as there is no fsck for linux there is no way to
|
||||
correct the matter (unless you have minix and can run minix fsck), and
|
||||
the only thing to do is to reinstall the filesystem from scratch (ie do
|
||||
a mkfs from the minix demodisk and reboot from the original
|
||||
linux-floppy).
|
||||
|
||||
A sync is done only every 30 seconds normally (standard unix practice),
|
||||
so do one by hand (some people think you should do 3 syncs after each
|
||||
other, but that's superstition), or by logging out from the
|
||||
startup-shell, which automatically syncs the system. Unmounting a
|
||||
filesystem also syncs it (but of course you can never unmount root).
|
||||
|
||||
Another (sad) possibility is that you have bad blocks on your disk. Not
|
||||
very probable, as they would have to be in the inode-tables, just a
|
||||
couple of blocks in size. Again there aren't programs available to read
|
||||
a disk for bad sectors and put them in some kind of "bad-sector-file".
|
||||
On IDE drives this is no problem (bad sectors are automatically mapped
|
||||
away).
|
||||
|
||||
|
||||
QUESTION: What is the "em" binary?
|
||||
|
||||
ANSWER: Em is micro-EMacs (probably version 3.10).
|
||||
|
||||
QUESTION: I seem to be unable to compile anythong with gcc. Why?
|
||||
|
||||
ANSWER: If you have only 2 MB RAM, gcc will die silently without compiling
|
||||
anything. You must have at least 4 MB to do compilations
|
||||
|
||||
|
||||
QUESTION: I'm using a program that uses signal handlers which are installed
|
||||
using sigaction() with the SA_NOMASK, and they get a general protection
|
||||
error right after the signal handler tries to return. What's going
|
||||
wrong?
|
||||
|
||||
ANSWER: You are using a libc.a that has an out-of-date signal.o and
|
||||
sig_restore.o file, and they don't know how to deal with SA_NOMASK.
|
||||
(The one in gccbin.tar.Z is out-of-date.) You can obtain the newer
|
||||
signal.c from the unistd.tar.Z file, but don't use the associated
|
||||
sig_restore.c from there; the FTP sites should have a separate
|
||||
sig_restore.c which is up to date. While you're at it, you should also
|
||||
get an updated crt0.c file as well, and install your new crt0.o and
|
||||
libc.a in /usr/lib.
|
||||
|
||||
(This answer will likely change in the near future, since there are
|
||||
plans to change the format of the signal trampoline code yet again....
|
||||
but for now, this should be an accurate description of how things stand
|
||||
now.)
|
||||
|
||||
|
||||
QUESTION: gcc complains about not finding crt0.o and the system include files
|
||||
What am i doing wrong ?
|
||||
|
||||
ANSWER: The include files normal place is in /usr/include. libc.a and *.a
|
||||
should be in /usr/lib
|
||||
@
|
||||
113
Linux-0.11/docs/INFO-SHEET-0.11
Normal file
113
Linux-0.11/docs/INFO-SHEET-0.11
Normal file
@@ -0,0 +1,113 @@
|
||||
LINUX INFORMATION SHEET
|
||||
|
||||
|
||||
1. WHAT IS LINUX 0.11
|
||||
LINUX 0.11 is a freely distributable UNIX clone. It is almost
|
||||
fully System V compatible. LINUX has been written from scratch, and
|
||||
therefore does not contain any AT&T or MINIX code--not in the kernel,
|
||||
the compiler, the utilities, or the libraries. For this reason it can
|
||||
be made available with the complete source code via anonymous FTP.
|
||||
Sorrily, it runs only on 386/486 AT-bus-machines. EISA will probably do
|
||||
too, but you need an AT-Bus controller for your harddisk.
|
||||
|
||||
|
||||
Version 0.11 is still a beta release, but it provides almost full
|
||||
functionality. Various users have been able to compile bigger projects
|
||||
like bison/flex by only changing the makefile to their needs, and these
|
||||
tools are fully functional.
|
||||
|
||||
|
||||
2. LINUX features
|
||||
- System call compatible with V7 of the UNIX operating system
|
||||
- Full multiprogramming (multiple programs can run at once)
|
||||
- Memory paging with copy-on-write
|
||||
- Demand loading of executables
|
||||
- Page sharing of executables
|
||||
- ANSI compliant C compiler (gcc)
|
||||
- A complete set of compiler writing tools
|
||||
(bison as yacc-replacement, flex as lex replacement)
|
||||
- The gnu-born again shell (bash)
|
||||
- Micro emacs
|
||||
- most utilities you need for development
|
||||
(cat, cp, kermit, ls, make, etc.)
|
||||
- Over 200 library procedures (atoi, fork, malloc, read, stdio, etc.)
|
||||
- Currently 3 national keyboards: finnish/us/german
|
||||
- Full source code (in C) for the OS is freely distributable
|
||||
- Full source code of the tools can be gotten from many anonymous ftp sites
|
||||
(It's almost completel the GNU project)
|
||||
- Runs in protected mode on 386 and above
|
||||
- Support for extended memory up to 16M on 386 and above
|
||||
- RS-232 serial line support with terminal emulation, kermit, zmodem, etc.
|
||||
- Supports the real time clock
|
||||
|
||||
|
||||
|
||||
3. HARDWARE REQUIRED
|
||||
- A 386 or 486 machine that is an AT-bus-machine. EISA will probably do
|
||||
too.
|
||||
- An IDE hard disk is required to use this system.
|
||||
- Both 5.25" and 3.5" diskettes are supported
|
||||
- At least 2 megabytes of RAM is required for LINUX to be operational,
|
||||
but gcc will only work from 4 MB on.
|
||||
- Any video card will do
|
||||
- Up to two serial lines are supported
|
||||
- The real time clock is supported
|
||||
|
||||
|
||||
4. PARTIAL LIST OF UTILITIES INCLUDED IN OR AVAILABLE FOR LINUX 0.10
|
||||
- The MTOOLS package (reading/writing to DOS)
|
||||
- The complete GNU filetools (ls,cat,cp,mv,...)
|
||||
- The GNU C compiler with GNU assembler,linker,ar,...
|
||||
- bison
|
||||
- flex
|
||||
- rcs
|
||||
- pmake (BSD 4.2 make)
|
||||
- kermit
|
||||
- Micro emacs
|
||||
- less
|
||||
- mkfs
|
||||
- fsck
|
||||
- mount/umount
|
||||
|
||||
|
||||
|
||||
5. LINUX BINARIES
|
||||
The LINUX binaries (including all the tools) are available at three
|
||||
anonymous FTP sites. These are:
|
||||
nic.funet.fi:/pub/OS/Linux
|
||||
tsx-11.mit.edu
|
||||
tupac-amaru.informatik.rwth-aachen.de:/pub/msdos/replace
|
||||
|
||||
|
||||
|
||||
6. LEGAL STATUS OF LINUX
|
||||
Although LINUX is supplied with the complete source code, it is
|
||||
copyrighted software. But it is, opposite to MINIX available for free,
|
||||
provided you obey to the rules specified in the LINUX copyright.
|
||||
|
||||
|
||||
|
||||
7. NEWS ABOUT LINUX
|
||||
Since LINUX's introduction to the public there has been a rapidly
|
||||
growing mailing list, "linux-activists@joker.cs.hut.fi". To subscribe
|
||||
to this list, mail to "linux-activists-requests@joker.cs.hut.fi". If
|
||||
the traffic in this lists increases further, there are plans to swap
|
||||
(at least partially) over to comp.os.misc, so watch out for any LINUX
|
||||
articles in this group. If you simply want to know whats the current
|
||||
state of the art, do a "finger torvalds@kruuna.helsinki.fi", and you'll
|
||||
get some information.
|
||||
|
||||
|
||||
|
||||
8. FUTURE PLANS
|
||||
The major current project is bringing LINUX to a version number
|
||||
greater than 1.0. It has also to undergo some (minor) revisions to be
|
||||
compatible to the IEEE POSIX P1003.1 and P1003.2 standards. Various
|
||||
people are currently working on
|
||||
- math support/fp emulation in the kernel
|
||||
- Page swapping (since paging is alreay implemented)
|
||||
- A virtual filesystem layer
|
||||
- STREAMS
|
||||
If you want to join the developers, join the mailing list
|
||||
|
||||
|
||||
206
Linux-0.11/docs/INSTALL-0.11
Normal file
206
Linux-0.11/docs/INSTALL-0.11
Normal file
@@ -0,0 +1,206 @@
|
||||
|
||||
Using Linux v0.11
|
||||
Linus Torvalds 08.12.91
|
||||
|
||||
NOTE: Users of 0.10, please check the "changed" list before using 0.11.
|
||||
|
||||
Booting linux
|
||||
|
||||
Linux-0.11 can easily be booted by getting the 2 files bootimage-0.11.Z
|
||||
and rootimage-0.11.Z from the linux archive, uncompressing them and
|
||||
writing them out to disks of the same size (ie 2 1.44M floppies or 2
|
||||
1.2M floppies). Writing the disks is done with the "rawrite.exe" program
|
||||
from dos, or with "dd" from unix. Linux is then booted simply by
|
||||
inserting the bootdiskette in drive A, and rebooting the machine. If
|
||||
everything goes well, linux will ask you to insert the root-disk after
|
||||
loading the system. Hopefully linux will then correctly load the shell
|
||||
executable, and leave you as root on the new system (prompt '# ').
|
||||
|
||||
Using it.
|
||||
|
||||
You can get a complete list of available commands by pressing <tab>
|
||||
twice: the root-disk contains mostly setup-programs needed to install
|
||||
the system on a harddisk. You can test them a bit, reading directories
|
||||
etc.
|
||||
|
||||
In order to install linux on the harddisk, first check out your harddisk
|
||||
by executing the command "fdisk" - it should show you all the partitions
|
||||
available. If you have only 1 AT-harddisk, you should get a
|
||||
errormessage, just ignore it. At my system fdisk reports the following:
|
||||
|
||||
/dev/hd1: 20476 blocks minix
|
||||
/dev/hd2: 19975 blocks minix
|
||||
/dev/hd3: 1020 blocks minix
|
||||
/dev/hd4: 170 blocks active 16-bit DOS (>=32M)
|
||||
/dev/hd6: 41641 blocks active minix
|
||||
|
||||
The partition type given (12-bit DOS, minix etc) doesn{t really mean
|
||||
anything, unless it's a "extended partition", in which case you
|
||||
shouldn't use that partition for anything: linux doesn't yet understand
|
||||
them. When later using "mkfs" to make a linux file system, it won't
|
||||
change the output of fdisk, so fdisk may well report "DOS", while in
|
||||
fact you have made it a linux partition.
|
||||
|
||||
If fdisk doesn't print out anything but errors, linux is unable to read
|
||||
your harddisk, and you are f**ked. Play around with the floppy version,
|
||||
but you won't be able to do anything real.
|
||||
|
||||
Making a filesystem
|
||||
|
||||
In order to really use linux, you will have to make a filesystem on your
|
||||
harddisk. This starts by deciding which partition you can use. Look
|
||||
again at what fdisk reports, and try to figure out which of the
|
||||
partitions you are using for DOS, OS/2 etc. /dev/hdX where X={1,2,3,4}
|
||||
always refers to the first harddisk, X={6,7,8,9} always refers to the
|
||||
second disk. /dev/hd0 and /dev/hd5 are special: they are all of the
|
||||
drive, and mkfs will refuse to use them for a filesystem.
|
||||
|
||||
When you are certain you know which device points to which partition,
|
||||
you make a filesystem on the partition of your choice by writing:
|
||||
|
||||
mkfs -c /dev/hdX blocks
|
||||
|
||||
where "-c" means that you want mkfs to check for errors, "dev/hdX" is
|
||||
the free partition you intend to use for linux, and "blocks" is the
|
||||
number of blocks fdisk reports for that particular partition. NOTE! mkfs
|
||||
will overwrite the partition you selected, so be doubly (or triply) sure
|
||||
that you don't mind that.
|
||||
|
||||
Note that when using the "-c" flag, mkfs will read through the entire
|
||||
partition: this can take some time. If there are read errors, mkfs will
|
||||
mark the particular block as bad, and continue: linux will also print a
|
||||
little message "harddisk I/O error". After running mkfs these messages
|
||||
should never occur again: if they do, your data may be corrupted.
|
||||
|
||||
Mounting the filesystem
|
||||
|
||||
After mkfs has exited, it's time to mount the file-system, and do the
|
||||
necessary things to make it a root file system. Mount the new filesystem
|
||||
on /user by writing:
|
||||
|
||||
cd /
|
||||
mount /dev/hdX /user
|
||||
|
||||
If you get errors for this, mkfs failed, and there is probably something
|
||||
seriously wrong.
|
||||
|
||||
After mounting the device, you want to move all the files on the current
|
||||
floppy-root to the new fs. This can most easily be done by writing:
|
||||
|
||||
cd /user
|
||||
for i in bin dev etc usr tmp floppy
|
||||
do
|
||||
cp +recursive +verbose /$i $i
|
||||
done
|
||||
sync
|
||||
|
||||
which will also tell you what it is doing (/bin/sh -> bin/sh etc).
|
||||
|
||||
After that, you should have a new filesystem that contains the bare
|
||||
necessities to start hacking linux. Play around some more, and exit
|
||||
linux by writing "logout or exit". This should result in
|
||||
|
||||
child 4 died with error code 0000
|
||||
#
|
||||
|
||||
Do a couple of syncs (3 is a magic number), and reboot the machine.
|
||||
ALWAYS remember to sync before rebooting: terrible things happen if you
|
||||
don't.
|
||||
|
||||
Using the harddisk as root
|
||||
|
||||
Once you have happily made a new root, you will want to boot up with it.
|
||||
This is done by changing a word at offset 508 in the boot-image. The
|
||||
word (in 386-order, ie low byte first) tells the system which device to
|
||||
use as root: it is initially 0, which means that we want to use a floppy
|
||||
of the same type as the boot-disk (and this is the reason that you may
|
||||
not use a 360kB boot-disk even though the system fits on one: it has to
|
||||
be the same type as the root-diskette).
|
||||
|
||||
In order to use the harddisk as root, this value has to be changed to
|
||||
point to the correct device. Harddisks have a major number of 3 under
|
||||
linux, and the minor nr is the same as the number X in /dev/hdX. The
|
||||
complete device number is then calculated with
|
||||
|
||||
DEV_NO = (major<<8)+minor
|
||||
|
||||
or alternatively major*256+minor. Thus /dev/hd1 is (3<<8)+1 = 0x301,
|
||||
/dev/hd6 = 0x0306 etc. Assuming the partition you made into the new root
|
||||
was /dev/hd2, you will have to write 0x0302 into the boot-image. That
|
||||
is, you should change the 508th byte in the image to 0x02, and the 509th
|
||||
byte to 0x03. There is a sample program for this in some of the older
|
||||
INSTALL-notes, if you don't understand what it's all about.
|
||||
|
||||
Ok, I got the root on hd, what now?
|
||||
|
||||
As you have probably noticed, you cannot get very far with the binaries
|
||||
found on the original root-diskette. So the first thing you want to do
|
||||
is to import some new binaries. To do this you need to tell linux what
|
||||
kind of floppies you have, as that's the easiest way to import things.
|
||||
|
||||
As with harddisk, floppies have device numbers, but this time major = 2
|
||||
instead of 3. The minor number is not as easy: it's a composite that
|
||||
tells which drive (A, B, C or D) and what type of drive (360kB, 1.2M,
|
||||
1.44M etc). The formula is 'minor = type*4+nr', where nr is 0-3 for A-D,
|
||||
and type is 2 for 1.2M disks, and 7 for 1.44M disks. There are other
|
||||
types, but these should suffice for now.
|
||||
|
||||
Thus if you have a 1.2M A-drive, and want to call it "floppy0", you have
|
||||
to tell linux so. This is done with the "mknod" command. mknod takes 4
|
||||
paramters: the unix name of the device, a "b" or a "c" depending on
|
||||
whether it's a Block of Character device, and the major and minor
|
||||
numbers. Thus to make "floppy0" a 1.2M A-drive, you write:
|
||||
|
||||
mknod /dev/floppy0 b 2 8
|
||||
|
||||
b is for Block-device, the 2 is for floppy, and the 8 is 4*2+0, where
|
||||
the 2 is 1.2M-drive and the 0 is drive A. Likewise to make a "floppy1"
|
||||
device that is a 1.44M drive in B, you write:
|
||||
|
||||
mknod /dev/floppy1 b 2 29
|
||||
|
||||
where 29 = 4*7 + 1. There are a couple of standard names, for users
|
||||
that are used to minix (major, minor in parentheses): /dev/PS0 is a
|
||||
1.44M in A (2,28), /dev/PS1 a 1.44M in B (2,29), /dev/at0 is a 1.2M in A
|
||||
(2,8), /dev/at1 is a 1.2M in B (2,9). Use mknod to make those that fit
|
||||
your computer.
|
||||
|
||||
After you have made these special block devices, you can now read a
|
||||
floppy under linux. The easiest way to import things into linux is by
|
||||
writing a tar-file to a floppy with rawrite.exe, and then using:
|
||||
|
||||
tar xvf /dev/floppy0
|
||||
|
||||
to untar it under linux. This way you can get the gcc binaries etc
|
||||
available from the linux-carrying sites.
|
||||
|
||||
Changes from 0.10:
|
||||
|
||||
- /bin/update is no longer automatically executed upon bootup: instead
|
||||
the file /etc/rc is evaluated by the shell. This file can then start the
|
||||
update process, mount andy needed filesystems, possibly fsck'ing them
|
||||
first. A minimal /etc/rc looks like this:
|
||||
|
||||
/bin/update &
|
||||
> /etc/mtab
|
||||
echo " Ok."
|
||||
|
||||
- init() restarts the shell every time it is exited: logout from the
|
||||
login shell results in a "child xxx died with error code yyy", a sync
|
||||
and then a new shell as root.
|
||||
|
||||
- floppies work a lot better than in 0.10. Even using two floppies at
|
||||
the same time seems to work out ok. Reading big chunks at a time is also
|
||||
faster then in 0.10 (I think).
|
||||
|
||||
- harddisk errors are handled better. Use the "-c" option in mkfs to map
|
||||
out all errors.
|
||||
|
||||
- linux accepts most video-cards: harcules, MDA, CGA etc seem to work.
|
||||
|
||||
- ^G beeps on the console, so command completion under bash etc will
|
||||
notify of errors.
|
||||
|
||||
- sticky directories, corrected handling of uid/gid bits, and better
|
||||
handling of protections when not root. Most of these won't be noticeable
|
||||
until we get a init/login.
|
||||
Reference in New Issue
Block a user