266 lines
10 KiB
Plaintext
266 lines
10 KiB
Plaintext
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
|
|
@
|