add directory Linux-0.10
This commit is contained in:
256
Linux-0.10/docs/FAQ
Normal file
256
Linux-0.10/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
|
||||
265
Linux-0.10/docs/FAQv.txt
Normal file
265
Linux-0.10/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
|
||||
@
|
||||
145
Linux-0.10/docs/INSTALL-0.10
Normal file
145
Linux-0.10/docs/INSTALL-0.10
Normal file
@@ -0,0 +1,145 @@
|
||||
Warning: I have personally not done this the hard way, so I don't know
|
||||
what problems could surface. In general, this version is still meant
|
||||
for people with minix: they are more used to the system, and can do some
|
||||
things that DOS-based persons cannot. If you have only DOS, expect some
|
||||
troubles. As the version number suggests, this is still not the final
|
||||
product.
|
||||
|
||||
This is a "fast hack", meant as a minimal guide to what you must do.
|
||||
I'll expand this as soon as people tell me what they have problems with
|
||||
etc etc. If somebody who has successfully installed the system wants to
|
||||
write something better, I'd be delighted. This guide stinks to high
|
||||
heaven.
|
||||
|
||||
|
||||
Installing Linux-0.10 on your system
|
||||
|
||||
|
||||
There are 5 major steps in installing linux on your system:
|
||||
|
||||
1 - BACK UP ANY IMPORTANT DATA. Linux accesses your hardware directly,
|
||||
and if your hardware differs from mine, you could be in for a nasty
|
||||
surprise. Doublecheck that your hardware is compatible: AT style
|
||||
harddisk, VGA controller. (If somebody has EGA, please tell me if the
|
||||
screen driver should happen to work)
|
||||
|
||||
|
||||
2 - Make a file-system on your harddisk. This is easy if you have
|
||||
minix, but if you haven't got minix, you'll have to get the minix
|
||||
demo-disk from somewhere (plains.nodak.edu is one place), and use that.
|
||||
There should be a manual accompanying the demo-disk, and you had better
|
||||
read that carefully. Although this version of linux will boot up
|
||||
without minix, a knowledge of minix would help. Especially if you have
|
||||
never done any unix work, you'll be very confused.
|
||||
|
||||
Making a filesystem means getting a empty partition (with DOS fdisk or
|
||||
similar), and using the 'mkfs /dev/hdX nnn' command to write out a empty
|
||||
file-system.
|
||||
|
||||
|
||||
3 - copy the diskimages to two floppies. Again, under minix (or any
|
||||
unix), this is easy, as you can just do a simple 'dd' to a floppy, but
|
||||
from within MS-DOS this might be a bit trickier. 'debug' should be able
|
||||
to write diskettes directly, or you could get the sources to "raw-write"
|
||||
from the same place as you got the minix demo disk, and modify them to
|
||||
write out any disk image (or do they do that already?).
|
||||
|
||||
NOTE! The floppies MUST be of the same type: even though the boot-image
|
||||
will fit nicely on a 360kB floppy, you have to write it to the same type
|
||||
of floppy as the root-image. That means a 1.2M or 1.44M floppy. The
|
||||
reason is that the floppy-type is determined at boot-time from the
|
||||
boot-floppy. Thus the same binary works on both 3.5" and 5.25" drives.
|
||||
|
||||
|
||||
4 - boot up from floppy. This should be obvious. Having a floppy as
|
||||
root-device isn't very fast (especially on a machine with less than 6MB
|
||||
total ram -> small buffer cache), but it works (I hope). Test the
|
||||
programs on the root-floppy (cat mkdir etc).
|
||||
|
||||
|
||||
5 - Mount the harddisk partition (I do it on /user: ie
|
||||
'mount /dev/hdX /user'), and copy the file system over to the new
|
||||
partition. The following is a example of how to do this:
|
||||
|
||||
$ cd /user
|
||||
$ mkdir usr
|
||||
$ for i in bin etc usr/bin usr/root mtools
|
||||
> do
|
||||
> mkdir $i
|
||||
> cp `ls -A /$i` $i
|
||||
> done
|
||||
$ mkdir dev
|
||||
$ cd dev
|
||||
$ for i in 0 1 2 3 4 5 6 7 8 9
|
||||
> do
|
||||
> mknod 'hd'$i b 3 $i
|
||||
> done
|
||||
$ mknod tty c 5 0
|
||||
$ mknod tty0 c 4 0
|
||||
$ mknod tty1 c 4 1
|
||||
$ mknod tty2 c 4 2
|
||||
|
||||
You should now have a filesystem you could boot from. Play around a bit,
|
||||
try to get aquainted with the new system. Log out when you've had
|
||||
enough.
|
||||
|
||||
|
||||
6 - Changing the boot-diskette use your new harddisk partition as root.
|
||||
The root device to be used for linux is encoded in a word at offset 508
|
||||
in the boot image. Normally this is 0, meaning that the root is to be
|
||||
the same type of floppy as was used in the boot process. This can be
|
||||
changed to whatever you like.
|
||||
|
||||
Use a short program like the one at the end to change the word (I assume
|
||||
everybody has access to some kind of C compiler, be it under dos or
|
||||
unix). You can then write out the new bootdisk, and boot from it, now
|
||||
using the harddisk as root (much faster). Once you have successfully
|
||||
done that you might want to install additional programs (gcc etc) by
|
||||
reading them from a dos-floppy with 'mcopy'.
|
||||
|
||||
|
||||
Linus (torvalds@kruuna.helsinki.fi)
|
||||
|
||||
|
||||
------ example program: use 'a.out < oldboot > newboot' ----
|
||||
#include <unistd.h>
|
||||
char tmp[512];
|
||||
|
||||
void main(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (512 != read(0,tmp,512))
|
||||
exit(1);
|
||||
if (0xAA55 != *((unsigned short *)(tmp+510)))
|
||||
exit(2);
|
||||
*((unsigned short *)(tmp+508)) = NEW_DEV;
|
||||
if (512 != write(1,tmp,512))
|
||||
exit(3);
|
||||
while ((i=read(0,tmp,512)) > 0)
|
||||
if (i != write(1,tmp,i))
|
||||
exit(4);
|
||||
exit(0);
|
||||
}
|
||||
-------
|
||||
|
||||
Devices:
|
||||
|
||||
Harddisks:
|
||||
0x301 - /dev/hd1 - first partition on first drive
|
||||
...
|
||||
0x304 - /dev/hd2 - fourth partition on first drive
|
||||
|
||||
0x306 - /dev/hd1 - first partition on second drive
|
||||
...
|
||||
0x309 - /dev/hd2 - fourth partition on second drive
|
||||
|
||||
0x300 - /dev/hd0 - the whole first drive. BE CAREFUL
|
||||
0x305 - /dev/hd5 - the whole second drive. BE CAREFUL
|
||||
|
||||
|
||||
Floppies:
|
||||
0x208 - 1.2M in A
|
||||
0x209 - 1.2M in B
|
||||
0x21C - 1.44M in A
|
||||
0x21D - 1.44M in B
|
||||
12
Linux-0.10/docs/README.images
Normal file
12
Linux-0.10/docs/README.images
Normal file
@@ -0,0 +1,12 @@
|
||||
This tar file contains new disk images for Linux 0.10 boot floppies
|
||||
|
||||
bootimage.Z Contains the Linux 0.10 boot floppy image, with the
|
||||
patch to buffers.c included to avoid disk corruption
|
||||
problems when two processes are thrashing the buffer
|
||||
cache.
|
||||
|
||||
bootimage-ncaps.Z
|
||||
As above, except it also includes a patch to keyboard.S
|
||||
so that the caps lock key acts as a control key.
|
||||
(You never need a caps lock key when you're using Unix
|
||||
anyway :-)
|
||||
Reference in New Issue
Block a user