Files
oldlinux-files/docs/mail-archive/linux-activists/Volume0/linux-activists.91
2024-02-19 00:23:35 -05:00

15655 lines
639 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[0001] tytso@ATHENA.MIT.EDU Linux_Activists 11/07/91 13:08 (4 lines)
Subject: Reason for this meeting
Linux_activists is a discuss archive of the mailing list about Linux,
a free unix-like kernel for 386-AT computers, coming with full source
code. It is meant for hackers/computer science students to use, learn
and enjoy.
--[0001]--
[0002] daemon@ATHENA.MIT.EDU (Robert Lund) Linux_Activists 11/07/91 14:19 (36 lines)
Subject: No subject found in mail header
Date: Thu, 7 Nov 91 14:19:23 -0500
To: linux-activists-mtg@tsx-11.MIT.EDU
From: Robert Lund <rml@bighorn.uswest.com>
Reply-To: tytso@Athena.MIT.EDU
Hello,
I have installed Linux 0.10 using the minix demo to build the root
file system on a hd partition. I couldn't figure out how to use the
mtools commands to get gccbin, utils, etc. from DOS to linux but I did
discover an alternate approach that might prove useful to others.
I happen to have a 1.44 drive as my A drive so ubder linux I did
mknod /dev/PS0 B 2 28
Next, I formated a 1.44 floppy under DOS.
Then, I uncompressed the tar files that I wanted to get from DOS to linux
(I actually uncompressed under UNIX but I assume that a 16 bit uncompress
utility under DOS would work).
Then, I used the rawrite command available with the minix demo to dump a tar
file, e.g. gccbin.tar, to the 1.44 floppy in the A drive (back under DOS
again)
Next, I booted Linux and did
tar -xvf /dev/PS0
and lo and behold, it worked; tar read the raw device and
successfully extracted the files.
Hope this helps someone.
Bob Lund
--[0002]--
[0003] tytso@ATHENA.MIT.EDU Linux_Activists 11/07/91 14:20 (90 lines)
Subject: Trying to answer ...
Date: Wed, 6 Nov 1991 13:58:52 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
Well, it seems people are starting to get some things working, and my
mailbox has certainly been busy.
> Does linux work on a SX?
Yes. I've personally tried it, and there were no problems. It seems
linux works on all members of the [3|4]86-family. Knock wood.
> How do the mtools programs work?
Urg. I fu**ed up. As has been pointed out, it is much easier to use tar
on a disk-image. Stupid of me not to think of that, even though that's
what tar is for. Even so, I should at least have done some kind of
readme for the mtools files.
If you want to read files from the DOS-partition, the mtools programs
should work. They need some setting up: you need to tell them what
devices A,B and C are. This is done by making the appropriate links to
/dev/dosX (X=A,B,C). A and B are assumed to be floppies or small
harddisk partitions, ie a 12-bit FAT. C is assumed to have a 16-bit fat.
To read a 1.44M dos-floppy in A:
mknod /dev/dosA b 2 28 # tell linux that A is 1.44Mb floppy
mdir A:
etc.
To read your DOS-partition (16-bit FAT):
mknod /dev/dosC b 3 1 # 1 partition on 1 drive: don't use 0
mdir C: # as that's the whole disk, not one prt
12-bit harddisk partition:
mknod /dev/dosB b 3 1
mdir B:
Note that if you have a small partition, you probably have a 12-bit fat
on your harddisk as well, and you should use A or B for it, not C.
If you don't know what type of FAT you have, try with both B or C.
Note that A/B/C has no relation to the MS-DOS devices, even though
that's the normal way of setting it up.
> Somebody had trouble, didn't even get a "partition table ok" with his
> IDE drive.
There /should/ be no trouble with IDE drives, so hopefully that isn't
the problem. One possibility is that everything works, but the
video-card isn't a colour-VGA. If you are using a mono-mode, the screen
map is elsewhere (I think, I'm not really used to the IBM video modes),
and linux happily writes to the wrong location. Thus the only thing you
see is "Loading system ...", which is written with BIOS-routines.
If this is indeed the problem, you should be able to test it by booting
up, putting in the root diskette, and pressing ENTER. Hopefully the
drive will run for a while, and then stop. Try doing something blindly
(write ls /mtools<enter>), and see if the floppy reacts. If the only
trouble is the video card, this will be corrected in the next version.
If it isn't the video, things are worse. Could the person please mail me
with more info (BIOS, type of computer etc)?
> nic.funet.fi is unavailable. What can I do?
As you probably have noticed, there is now another site available that
carries it. See my .plan if you missed the message. nic will give you
the files eventually, but there has indeed been something wrong with it.
> problems with gcc-1.37.1. Gives divide error (with the gnulib
> routine). Could the 16-bit object files be posted?
Arghhh. I haven't tested the gnulib routines (as gcc-1.40 never wants
the divide/mutliply routines), so they might be buggy. Silly me. I'll
certainly post the 16-bit object files (they are only a couple of
hundred bytes anyway), and anybody should be able to get linux
recompiled within linux (after some makefile-editing, so that make
doesn't try to recompile the bootblock etc).
> ESDI drives, shoelace, DLD?
These I know nothing about. ESDI drives should work ok, but ...
Shoelace? Anybody? I don't know how it works, though I use it for minix.
About DLD's: if somebody comes up with a clever way of implementing it
all cleanly, and can explain it to me, I could certainly look into it.
Even better would be if somebody else wrote it from scratch :-).
Linus (torvalds@kruuna.helsinki.fi)
--[0003]--
[0004] tytso@ATHENA.MIT.EDU Linux_Activists 11/07/91 14:22 (83 lines)
Subject: 16-bit binaries
Date: Wed, 6 Nov 1991 17:58:43 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
Ok, here's the 16-bit binaries of the bootsector and setup. They are 544
and 340 bytes respectively, but taring made them somewhat bigger (8192).
I decided to send them as a tar archive, as that increases the ways you
can import them to linux.
In order to use them, you have to edit the Linux makefile a bit: remove
(or comment) the lines that have the 16 bit dependencies on them (I'd
also suggest you change 'clean' so that it won't remove these binaries),
and install these binaries in the boot-directory. The bootblock is
compiled to load 196kB of the system (currently only 110kB is used), so
there is some room to grow before a new bootblock is needed. This of
course means that the load-time is slightly longer than necessary, but
it's still quite fast.
Also, as somebody commented, 'cp Image /dev/PS0' won't work with older
versions of GNU cp. Frankly I don't know if the version of cp that linux
uses is corrected, but a 'cat Image > /dev/PS0' or 'dd bs=8192 if=Image
of=/dev/PS0' should work (change /dev/PS0 to match your bootfloppy, of
course).
Additionally, I'd like to know if the floppy-driver works for 2 (or
more) drives? Nobody has commented on that yet. Do a sync before you try
it though (just in case...).
Linus (torvalds@kruuna.helsinki.fi)
------- uuencoded compressed tar-file starts here ----------------------
begin 644 bin16.tar.Z
M'YV08MZ\H3.GS!@Z !(J7,BPH<.'$"-*G$@1 (B+-VK4 &%1Q@T:,6)P!.%Q
M!HV-%B^J!!$#!@T8%VNTM %#AHR6-%32K&FQHL^?0(,*'4JTJ-&C2),J7<IT
M8H !$ AP5"C@9P"&N( =<(0-%P!(CH#E A @A;T4_^:54H<A(21&R+B&=02-
M%X!_NA+FJKH+@ !<! 0TFS!'05X 7@$,7F=.%F( " ;7 N BD0,@ ;R"!49K
M (Q_S2#D:KOK (!>0C('F!#:*X2PZ&8 0(>,<BA^ 7HDK(/!Q2(/F'$A$#!H
MWP,Z"W!Q(+Y/ IT!Z?K]<S$*M[J$(" 58,@(6*I_#^KXB[&MNVX@<@(,<Q$*
M\PH#F0 D"A8L7(( V>8DH',@!K 4V 2#3@+HU"!?, / 1]D.!F!6AP2X7/7>
M)@#40< _!G0"P"@4^C=*?/7=M\P<LG2WW6O D)>.*?] ,4444BQB@8:+.!!?
M$(A4(R.%B%CC6"#BD$6+8!/(48 666R!Q3")'388DDJFL\P_4N@BSP"P .".
M%L,DU( "3+P1!AEIN'$&"'/D,0<=9;0!@@MP?OEE4W36:>>="1DP0!6JX.GG
MGX &*NB@A!9JZ*&"%D1''7 @ZBAV&&DTDD<@B=31#2:AM-)*-< $P@RN52#
M#"_-<(-*-<P0@PP]/>KJJ[#&*FNL3T4UE457^92K0IIQU=EGH25B04*T(-),
M!:-4E1A7Q=A 0&9?A?4+( #D @$ \Y"R+#;-8@#M9K] 4NVUV7I5@2R!#&8D
M(/P,0 <$O0(3[KB/8:N*/HGQ$]:)ND%"AP-<H6766("HE0XZ_^"2'5</!.!!
M! $T;,$% :#S!0"P1&,.&>A@@?$WYH"!3A081V .".L D+(YH*2<,BP@F!."
MRQBC8$XH-,-"@,PY"W!SS@'PK#( /P\-RS]"KQQ*A T#,]UD V=,CEDH")
M'?9TZ= _IB6D"3!W=0V )& [A$ ^ B2P4)%')KEDDPD]Z;:45%J)I99<>@FF
MF&2:B:::;+H)IPMR*C#KX8@GKOCBC#?N^..01R[YY)17;OGE=H919AD 4 "
M 0DM0 L \A#!@!M(0!'&&R\P488:"!D1D&AUT8 $Z:E7N89K,]1QQL C ''
MZ0 LP T !!"3.V1KA"$'[&N\X89"AA?/#EE\C-$Y\L^K$08 :2"4$ ,*F6/&
M]@6X44<;;:0! !G? \" YP& ,P+JD-$1_1K1OPZ #&, GOQ00#H5L"IUKX-#
MF5[7!@!(SP[CXP%97&&@U-&!#FEH@_3*,#TXP(%S\F,"\B"@@^T9@ UIJ /_
M@"<^!H A(2AX ?X0H(;VK=!_' ! \8G/GTH889S<%X8W(!!-B0D 1Z3'R=(
M1XTAS/!U=I!>"N>0$ <HA &L()T :&#"-]@A#'-HWD(88)< ., )VR/ &5YW
M.C2L 80,@ 99Y'"#&;(I#:_;'/ZJQP!R^ 4!1)@A&A*X.O_)CUKRPP?R=*&]
MU(5A#6D(HO/<)S]*>(E\[SN#'0OB0=;%CP&H\!)'!,"+[Z5.#H3TY/@2TP N
M$D 2VTF=&M!0!CFTH0YN "$!C."E0!*-!28,(!M0.+TC>(D*9 &"#;9W #H0
MDPP<5$@#T$ 64D!AAG; HP?KX#\T:-!+?$B(($KH2#=\< X;3,@Q0N$E1HSP
M!.A[71WD +QCB,)+2Q2 )]; S#F\[I'1DV:6!D (*<QP#6QHTYKHF1 "H%&'
MQ$">!CR7NC6]00[0'*8#ZZ ]'6(#>8C( A AR08XI%.'U-3A]0!@"1_8,0RL
MH\-)"6!0 %@Q(?KH C/;0(='JK**UPH %:Q@0C74 0VN^QXR;4H"TMD">*EK
M ^O*$#OI >!: Z@B#LC"#*A"Y@U2)68T=5@V!R !>::8GN<,@(9')A4 S*AB
M$E7!!6:&H0[9S.7TJFA$ AA@"3,<X@738%+W>8X 50PG >CP &:J 0X)C1TE
M;2HN +BA"8+,PQ?EH$>;BM"FI$@(-XQHP3G@T0X<W*L#8%!%KP1 !"1+W1U@
MQX:%"I %[-I7 = #2W,$ [1(V+SII<&/8#0 <<3*N?6&L8\7/![E'3 ]0)
MC[-Z[@"US>!;$])8OW @#G:\J!OH^08JVA01W#VL'SXPPS;D$8.Y;"@('T!
M4N+AH,UCE ))&[6F27 _+BO[M(0O3"6B9G<%>'M?H ^-. 1A0G93M->* !H
M+&"&:E"#:<OPQ>G- ;+<;10 /' 5SQ7 >=D$WO.X2RT"+!%];<A#'E8LOJ99
MD@!@Z$!@X; H+QZX:6UI6BB%&H'V<G)U\47>7A_@6DT0=:U?C"GP!/B N I
M!U:,ZBV1JE< &-&\#P"'7[2AA]\ZCW^=?< +FP8/TB'!H-=]0YDVN->K*H01
MA7#L&R3[S81 @'ZX.,1O-8C'(>JR#GYN*BD)8<*V1K*M (#@5;<J %DTHKW.
M>Z_[L.KGSY+ATJE;0QW2T.%HID$,"H' "^LGB(.V-0P]]1YWCW=5\5E"7*EK
MJQR,VF7D[<'/Z 6 /MR9ZS(4FG_?X_15E^CB1P#Q#=!$)2[]?-^K9HD L(B/
M!7^7U[%"@+57!1L!()#GM:Z.GOZ3X%6I,4<1;EL.&-2<6@$@80B@XX^M/J6Q
MPVAH -"RHQ!09(6=O58W$)B;WSL? ") /@(@@MB04<.>PQ#6[]4R#PF) $=P
M3-&(UP&F;)#I7@E@B(QS,0#J\,03J8K!YADQJ!D_JU^],,,WK"&(KXN=G^VR
M\+H" !F-A$PV:[F^1YHPXXTR([529X<V&+Q-93 B',:0T@@P.@"00.8IR]33
MU7VO466+ ":0YX>21_4,]'0#4HVX<$Q*("$!<(6@93D'27)VKP/(,^;VSO>^
G^_WO@ ^\X =/^,(;_O"(3[SB%\_XQCO^\9"/O.0G3_G*6_[RF%<<
end
--[0004]--
[0005] tytso@ATHENA.MIT.EDU Linux_Activists 11/07/91 14:22 (127 lines)
Subject: Devices
Date: Wed, 6 Nov 1991 19:15:45 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
Before the actual article: a quick question. Are any of you using DOS
version 5.0 ? If I've understood correctly, 5.0 changes the disk-layout
rather heavily. I doubt mtools can handle the new DOS partitions, and
possibly even the partition table has changed. Again, I'd be interested
to know if everything works fine with DOS 5.0.
Mika Matti Jalava: "device numbers" (Nov 6, 18:08):
> Hi!
>
> Would it be possible to post some kind of a table of valid device
> numbers? [ for people not having minix ]
Ok. Here is a short table:
Memory devices: Major = 1 (characted devices)
minor
0 /dev/ram - not implemented (never will be, I think: minix special)
1 /dev/mem - not implemented (easy, seldom used)
2 /dev/kmem - not implemented (easy, but I haven't done it)
3 /dev/null
4 /dev/port (implemented, but untested - don't play with it)
example: "mknod /dev/null c 1 3"
Floppy disks: Major = 2 (block devices)
minor = drive + 4*type, drive = 0,1,2,3 for A,B,C or D-diskette
type 1: 360kB floppy in 360kB drive (5.25")
2: 1.2M floppy in 1.2M drive (5.25")
3: 360kB floppy in 720kB/1.44Mb drive (3.5")
4: 720kB floppy in 720kB/1.44Mb drive (3.5")
5: 360kB floppy in 1.2M drive (5.25")
6: 720kB floppy in 1.2M drive (5.25")
7: 1.44M floppy in 1.44M drive (3.5")
Thus minor nr for a 1.44Mb floppy in B is: 1 + 4*7 = 29, and to read an
old 360kB floppy in a 1.2M A-drive you need to use minor= 0 + 4*5 = 20.
Example: "mknod /dev/PS0 b 2 28" (b for block: 2 for floppy, 28 for 1.44
in A)
Hard disks: Major = 3 (block devices)
minor
0 /dev/hd0 - The whole hd0, including partition table sectors etc.
1 /dev/hd1 - first partition on hd0
...
4 /dev/hd4 - fourth partition on hd0
5 /dev/hd5 - The whole hd1, again including partition table info
6 /dev/hd6 - first partition on hd1
...
9 /dev/hd9 - fourth partition on hd1
NOTE! Be /very/ careful with /dev/hd0 and /dev/hd5 - you seldom need
them, and if you write to them you can destroy the partition tables:
something you probably don't want.
The only things that use /dev/hd0 are things like "fdisk" etc.
NOTE 2!! The names for hd's are the same as under minix, but I think
minix orders the partitions in some way (so that the partition numbers
will be in the same order as the partitions are physically on the disk).
Linux doesn't order anything: it has the partitions in the same order as
in the partition table (ie /dev/hd1 might be physically after /dev/hd2).
NOTE 3!! Somebody wrote he trashed his DOS-partition with mtools. Are
you sure you didn't do a "mkfs /dev/hdX" with the demo-minix, where the
X was a DOS-partition and not an empty one? One way to be sure to trash
a DOS-partition is to overwrite it with a minix filesystem. Not that
I'm sure that mtools works (/I/ didn't write it :-), just wondering...
Tty's: Major = 4 (character devices)
minor
0 /dev/tty0 - console
1 /dev/tty1 - serial 1
2 /dev/tty2 - serial 2
Example: "mknod /dev/tty2 c 4 2"
Personal tty: Major = 5 (character device)
minor: 0 /dev/tty - "linked" to the tty that your process has got:
normally /dev/tty0 in linux (until someone makes a init/login).
Example: "mknod /dev/tty c 5 0"
> I think I'll have to try a couple of old MFM disks, as my ESDI does
> not seem to like Linux. The test that someone suggested,
> cat </dev/hd1>/dev/null probably did not do what it should have done,
> it just hung the machine.
Don't be so sure: using direct reads/writes on a device is rather slow,
and on a bigger partition (>10M) this can take some time even for a
harddisk. I've never tried to optimize direct devices for performance.
If you can get out from the "cat" with ^C, it probably works. If ^C
doesn't kill it, ESDI drives probably won't work.
Another way to test the drive would be to write "cat /dev/hd1". This
prints anything it reads onto the screen: if nothing appears, linux is
unable to read the drive. Use ^C to break when you have got enough.
Again, if ^C won't work, the drive is unsupported. (note: pressing ^C
repeadetly may kill the shell, as it will catch only the first one).
Note to everybody: currently I have these debug-statements in the
kernel, so that when you try to read past the end of a partition or
diskette you will get "xxx I/O error". This is normal (but reading
beyond the end of the disk may not be :-).
> BTW, Is it possible to use a secondary HD controller? If not, will it
> be some day?
Not currently, and as I haven't got a second controller... It should be
relatively easy to add a driver for it: copy the code from hd.c to
hd2.c, change the MAJOR_NR to 6 (or something), and change all the IO
port addresses. That /might/ do it (VERY simplified explanation). I
won't be able to do it - no way to debug the thing.
Linus
--[0005]--
[0006] tytso@ATHENA.MIT.EDU Linux_Activists 11/07/91 14:27 (20 lines)
Subject: Re: nic.funet.fi unreachable
From: tytso@Athena.MIT.EDU (Theodore Ts'o)
To: linux-activists@joker.cs.hut.fi
A quick scan using Archie shows that none of the FTP sites for Linux
that it knows about are on the U.S. side of the Atlantic. In the hopes
of reducing inter-atlantic traffic and reducing the load on
nic.funet.fi, I've made Linux-0.10 available for anonymous FTP on
TSX-11.MIT.EDU (18.172.1.2). I will make an attempt to keeps things
reasonably current.
I've just recently heard about Linux from the Hurd mailing list, and
from looking at the source code it looks very, very exciting. I haven't
managed to install it on my hard disk yet (it looks like I'll need to
blow away OS/2 in order to reclaim one of the four primary partitions
--- shucks), but just from looking at the source code there are a bunch
of things which look like interesting projects --- like supporting DOS
extended partitions and multiple threads per task. Now, all I need to
do is find some time to do some playing.... :-)
- Ted
--[0006]--
[0007] tytso@ATHENA.MIT.EDU Linux_Activists 11/07/91 14:28 (40 lines)
Subject: Linux, minix, and a drive that is a wee bit 'Scuzzy'
Date: Wed, 6 Nov 91 20:30:11 PST
From: rafetmad@cheshire.oxy.edu (David R. Giller)
To: Linux-activists@joker.cs.hut.fi
Hi y'all.
I have recently joined this group, and am quite excited that someone
is involved in this project. Thank you all.
I have a few problems with joining the fray, myself. I have a 486
PC with an SCSI drive. A no-go with Linux, as of yet. Can I
A: play with Linux from the floppy, at first
B: get an additional AT or IDE drive, and be assured
(relatively) that Linux won't screw with my primary HD?
I keep alot of important information, and I don't want
to be in constant fear.
Failing all of this, is there anyone with enough experience to write a
driver for the Western Digital 1003 standard, if I provide the standard?
I can't provide a drive, and I don't have the time or experience to do this
myself, but if someone can get the framework down, I can play with it until
something works.
Note that I don't have a working copy of Linux. I can't even start the
installation, because I don't have minix, and have a 3.5" FDD. What is the
current copyright status of Minix? E.G., is it possible for someone to make
a demo copy for me that will image to a 1.44Mb floppy? I have the 1.2Mb
version, but can't use it.
Thank you,
-David Giller
PS: is there a manifesto for this mailing list? I don't want to step on
anyone's toes.
---------------------------------------------------------------------------
David Giller -- rafetmad@oxy.edu | "Some of us wake up, others roll over."
Box 134, Occidental College | "Shrouds, they have no pockets."
Los Angeles, CA 90041 | -John Lydon
---------------------------------------------------------------------------
--[0007]--
[0008] tytso@ATHENA.MIT.EDU Linux_Activists 11/07/91 14:28 (9 lines)
Subject: init/login and /etc/ttys
Date: Wed, 6 Nov 91 22:19:08 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
If no one else has volunteered yet, I will take a stab at modifying
init to read /etc/ttys and fork a login for each. This means of course
writing login.c as well. If someone else has started this already,
please stop me now!
--[0008]--
[0009] tytso@ATHENA.MIT.EDU Linux_Activists 11/07/91 14:28 (26 lines)
Subject: Re: Linux, Minix etc...
Date: Thu, 7 Nov 91 9:48:12 EET
From: Mika Matti Jalava <r36110m@kaira.hut.fi>
To: linux-activists@joker.cs.hut.fi
Hi there again
David Giller wrote:
> PC with an SCSI drive. A no-go with Linux, as of yet. Can I
> A: play with Linux from the floppy, at first
Yes, I do that all the time (I have an ESDI drive that does not seem
to like Linux). You should be able to use another HD with SCSI.
> Note that I don't have a working copy of Linux. I can't even start the
> installation, because I don't have minix, and have a 3.5" FDD. What is the
> current copyright status of Minix? E.G., is it possible for someone to make
> a demo copy for me that will image to a 1.44Mb floppy? I have the 1.2Mb
> version, but can't use it.
You can ftp the Minix demo diskette from various places. For instance
plains.nodak.edu in directory pub/Minix/????/demo (I haven't tried,
this info is from a posting by Linus). You get a rawrite program with
the demo that you can use to write the images on a diskette. 3.5" work
well.
Mika
--[0009]--
[0010] tytso@ATHENA.MIT.EDU Linux_Activists 11/07/91 14:29 (49 lines)
Subject: Installing Linux
Date: Thu, 7 Nov 91 10:08:32 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
To: linux-activists@joker.cs.hut.fi
Hi Linuxers!
Last night I started installing Linux on my Computer...well, tried to
install it:-(
First, for all of you out there trying to install Linux from DOS:
The bootimage works
(Use debug Bootimage, then in debug do "w cs:100 0 0 200" This write will
write from cs:100 200h sectors (512 bytes) of mem to drive 0, sector 0. Adjust
the 200, if the bootimage gets bigger, but at the moment you really need less
than 100h sectors. Its just to be on the safe side..
)
Forget about installing the rootfs directly from DOS with debug. It's too big,
so DOS can't load it. Something like rawwrite will do, I think. I did it from
Minix, smashing my Minix-bootdisk on the way. (Again, one of these 'tough guys
need no write protect'-story. But who needs a Minix-Bootdisk with Linux, I
thought. The answer is ME!
Linux just doesn't work on my machine. The same problem somebody else on this
list got.
It just booted up, showed Loading System, cleared the screen and then died.
Well, I think I found the reason for this, but I am not sure. Correct me if I am wrong.
Somewhere in the code, I found that the kernel reserves the first 640K of mem.
About 640K - 1M, I found nothing. Then, at 1 M the Linux mem starts.
And now main (linux/init/main) determines my machine has less than 4MB (it has 2MB) and just allocates 1MB. That sums up to say
0 bytes free, and I think that
this has to crash somehow.
But still it remains a mystery to me why I get no msg about the partition table
because this is still in the kernel, and kernel couldn't run out of space. (Could he?)
Now Linus, (and all others out there) what do you think about
reserving only say 384K for the kernel and use the remaining 256K as a cache.
This will at least leave 1 MB for running some processes in it. I know this
isn't much (too few for gcc, I think) but it should be sufficient when I come
up with my port of CvW's CC386. How I'll do this in 2 Megs? Simple, order
another 2 at my local shop :-)
BTW: Will the demodisk from plains do as a bootdisk for Minix?
OK, cu l8er
Robert
--[0010]--
[0011] tytso@ATHENA.MIT.EDU Linux_Activists 11/07/91 14:30 (43 lines)
Subject: init/login and /etc/ttys
Date: Thu, 7 Nov 1991 14:14:32 +0200
From: Ari Lemmke <arl@sauna.cs.hut.fi>
To: linux-activists@joker.cs.hut.fi
>If no one else has volunteered yet, I will take a stab at modifying
>init to read /etc/ttys and fork a login for each. This means of course
>writing login.c as well. If someone else has started this already,
>please stop me now!
I have started init/getty/login stuff ;-) mainly based on
bsd-reno stuff.
arl
BTW
> (NO, NO MORE nic.funet.fi unreachable STUFF, I CANT
> BEAR IT)
*FLAME ON*
I TOLD EARLIER THAT NIC.FUNET.FI IS HAVING
REORGANIZATIONS .. WHY DO YOU STILL CRY ? ;-)
*FLAME OFF*
nic.funet.fi is _absolutely_ the best FTP site.
Problems _are_ going to be corrected.
nic FTP file areas:
Filesystem kbytes used avail capacity Mounted on
/dev/rs4c 1015790 693649 322141 68% /ftp/disk1
/dev/rs2c 1015790 743216 272574 73% /ftp/disk2
/dev/sd0c 1374491 817095 557396 59% /ftp/disk3
/dev/rs3c 1009846 872018 36843 96% /ftp/disk4
/dev/sd2c 1374491 1193968 180523 87% /ftp/disk5
/dev/sd4e 913596 676080 237516 74% /ftp/disk6
so you might guess how big/huge 'job' is
reorganization.
arl
--[0011]--
[0012] tytso@ATHENA.MIT.EDU Linux_Activists 11/07/91 14:30 (19 lines)
Subject: hard disks
From: Patrick L. McGillan <pmcgilla@hp.uwsuper.edu>
To: linux-activists@joker.cs.hut.fi (Linux User Group)
Date: Thu, 7 Nov 91 8:33:57 CST
Hello,
I reckon the most important part of getting linux up is to use anything
other than HD partitions hd0 & hd5. After I reread the stuff I had, I
found that either one will destroy the partition table and linux will
not boot with out a valid partition table and a fs on it. So after
putting back the partition table with a 4 part partition and one
defined for the disk, I used the minix demo disk to place a fs on
hd1. After that things are working great.
--
Patrick L. McGillan
Computer Systems Specialist
University Of Wisconsin Ph: (715) 394-8191
Superior, Wisconsin pmcgilla@uwsuper.edu
--[0012]--
[0013] tytso@ATHENA.MIT.EDU Linux_Activists 11/08/91 15:43 (16 lines)
Subject: Symbolic link
Date: Fri, 8 Nov 91 17:44:52 WST
From: nicholas@cs.uwa.oz.au (Nicholas Yue)
To: linux-activists@joker.cs.hut.fi
G'day,
I am trying to port g++ to linux and have the problem of creating symbolic
links. It seemed that `ln' only support `hard link'. Quite a number of
packages (tar.Z files) require that in the Makefile. Can we modify ln or
is it something to do with the file system?
I have ported bison to linux, if anyone is interested. Is there a way
out of this "symbolic link" problem.
Thanks In Advance
nicholas@cs.uwa.oz.au
--[0013]--
[0014] tytso@ATHENA.MIT.EDU Linux_Activists 11/08/91 15:48 (87 lines)
Subject: Looking for a FAQ
Date: Fri, 8 Nov 1991 19:25:43 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
Right ho, the subject says it all ... Linux could definitely do with a
FAQ (Frequently Asked Questions for all you who haven't been on the net
all your life :-). And as I'm sure anybody who has read my "help-files"
would agree, I'm not the best possible person to write it. Thus a new
project: getting a FAQ done with help from the linux-activists.
I've talked (yes, you can try to talk with me if I'm logged in) with
Robert Blum, and he's promised to help. Our idea was to get as many of
the linux users/would be users to ask questions they think ought to be
in the FAQ, and hopefully you could try to answer them too (and don't be
shy just because you aren't certain you get it right - I'll go through
the FAQ for techical soundness anyway, but your answers will make
editing much easier).
I'm especially interested in some tutorials/"true stories" from people
who installed linux without the help of minix. Not only will they help
make the FAQ, but I could try to make things easier for the next
version. The FAQ should also contain some pointer to what people are
doing, and what has been done (like init/login, the bison port, g++,
etc).
I guess the easiest way to organize this thing is to mail me with a
subject containing "FAQ". I'll then compile it to one big thing and
send it out to whoever wants to edit on it. If you want to be one of
the people working on it, please mail and say so. I'll be happier the
less I have to do with this thing :-), and even if you just think you
could try to check for things you find incomprehensible, mail me and
tell me you'd like to help with it. Alternatively, you can mail Robert
Blum (whom I happily let take over the main responsibility for this
thing if he wants it) at "blum@messua.informatik.rwth-aachen.de".
If you can get your grubby little hands on the minix FAQ, you could try
to make a skeleton one for linux, trying to answer the questions
yourself first, and adding/removing questions of your own. Also, please
resend the questions you've already asked (and hopefully got answered),
as I really cannot sift through all my mail looking for questions, and
rewriting the answers (my mailbox is about 400kB - most of it on linux).
Editing the whole thing would probably be easier if you did some
pre-editing yourself: trying to get the thing to look like part of a
FAQ.
After we have gotten something that looks like a real FAQ (possibly
divided it into several parts: one general FAQ, one on installation
etc), I (or Blum) will post it to the mailing-list and set it up for
ftp. It will take some time: waiting for questions, then editing them,
mailing the new versions to the persons interested in this project,
revising them again after comments ... But hopefully we'll have a
better FAQ after that. I hope enough people mail questions/interest,
that I personally can get on to write the system programs.
I'd suggest a simple form for all the questions/answers: Something that
can easily be (semi-)automatically edited into something more
appropriate:
<empty line>
QUESTION: Xxx xx x x x xxx xxx xx xxx?
<empty line>
ANSWER: try to have some kind of skeleton answer here.
<empty line>
If you honestly haven't got a clue about the answer, please still ask
the question - nobody will flame you (sure, sure).
Linus (torvalds@kruuna.helsinki.fi)
PS. It seems most people who had problems have got it working now. To
summarize: It works on SX's and with only 2M of memory. It also "works"
with a monochrome card, but you won't be able to see anything. Mtools
doesn't understand DOS 5.0 (big partitions at least), but Linux seems to
boot ok anyway. Anybody who simply cannot get it to boot out there?
PPS. I wrote over my minix-partition yesterday (don't even ask why -
some things are better forgotten :-), and although I got minix-386 up
and running again, it's kind of limping now (no bash, no make). It seems
I'll have to write fdisk/mkfs/fsck for linux just so that I wouldn't
need minix any more. Something good came out of it.
PPPS. As there still isn't a fsck-program for linux, be very careful
about rebooting the computer without syncing. The buffer cache is /at
least/ 500kB, and 1.5M buffer-cache is normal for machines with more
memory, so if you don't sync, there could be A LOT of buffers that
aren't written out to disk.
--[0014]--
[0015] tytso@ATHENA.MIT.EDU Linux_Activists 11/08/91 15:50 (73 lines)
Subject: FAQ and a true story
Date: Fri, 8 Nov 91 13:17:14 CST
From: Patrick L. McGillan <pmcgilla@hp.uwsuper.edu>
To: linux-activists@joker.cs.hut.fi (Linux User Group)
Hi All,
First of all since my real job is administrator of a multi-server Novell
network, I need my DOS. So, I backed up my 70 meg drive and used fdisk
to create a bootable 20 meg partition and a 50 meg partition. After
booting back up with dos I reformatted the partition and placed a system
there then restore 20 meg worth of stuff. I am using Microsoft DOS 5.0,
by the way and would not give it up for anything.
Next, I downloaded from plains the demo_dsk.ibm file along with rawrite
and used that to create a bootable minix1.5 disk. Yes, rawrite can be
used to write any kind of file to a disk, just follow the prompts.
Using minix I wrote 50 meg fs to /dev/hd2 and then quit.
I then used my linux boot, made the same way as the minix boot, and booted
up the compter to the insert root system disk. Inserted said disk and let
it mount and I was up and running. Mounted /dev/hd2 to user and copied
over the stuff from the floppy root disk.
Back to DOS, and changed the bootimag file as per instructions so that it
would acces the hard disk upon bootup. Made a new boot disk and tried it.
Now when the boot disk finished reading it mounted the hd partition as the
root, mucho faster.
I then used the mread program to copy over all the *.tar files from the dos
partition on the hard disk. No problem! Untarred all the files to whatever
directories they wanted to go to.
Question 1 - after untarring the gccbin file into the gccbin directory,
where do I place the individual files so that gcc world.c will compile.
Question 2 - can all the files in the utibin tar file be copied to the
usr/bin file.
Comment 1 - most times when booting linux after running dos I get the
following error when booting the boot image disk.
--begin error--
invalid TSS: 0000
EIP: 0008:00006718
EFLAGS: 00007206
ESP: 000f:00006719
fs: 0010
base: 00000000, limit: 000A0000
Pid: 0, process nr: 0
cf b8 17 00 00 00 66 8e d8 66
Kernel panic: Trying to free up swapper memory
in swapper task - not syncing
---end error---
A second three finger salute will always work.
Comment 2 - rarely but it does happen, I will get the following error after
putting the root disk in drive a (when using the floppy root)
--begin error--
floppy I/O error
dev 0208, block 1
Kernel panic: Unable to mount root
--end error--
Well that's all got to say and would some please send back the
answers to my two questions.
--
Patrick L. McGillan
Computer Systems Specialist
University Of Wisconsin Ph: (715) 394-8191
Superior, Wisconsin pmcgilla@uwsuper.edu
--[0015]--
[0016] tytso@ATHENA.MIT.EDU Linux_Activists 11/08/91 15:51 (13 lines)
Subject: editor
Date: Fri, 8 Nov 91 13:21:33 CST
From: Patrick L. McGillan <pmcgilla@hp.uwsuper.edu>
To: linux-activists@joker.cs.hut.fi (Linux User Group)
Hi all,
I forgot to ask, what editor are some of you using under Linux?
--
Patrick L. McGillan
Computer Systems Specialist
University Of Wisconsin Ph: (715) 394-8191
Superior, Wisconsin pmcgilla@uwsuper.edu
--[0016]--
[0017] tytso@ATHENA.MIT.EDU Linux_Activists 11/08/91 16:32 (80 lines)
Subject: Re: Looking for a FAQ
Date: Fri, 8 Nov 91 15:43:20 -0500
From: tytso@Athena.MIT.EDU (Theodore Ts'o)
To: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
Cc: Linux-activists@joker.cs.hut.fi
I, too, I have managed to bring up Linux without the need of Minux. I
have a 40 MhZ AMD 386 with a 200 Meg clone. A couple of notes:
N1) The Minix demo disk which you can get from plains.novak.edu only
works for 5.25" disks --- this isn't documented anywhere, but I spent a
lot of time trying to get it to boot on my 3.5" A drive. It would print
the first message about "loading Minix system", but it would hang before
printing the menu. I finally had to give up, recable my drives so that
my 5" drive was my A drive to get Minix to come up.
N2) The numbering convestion for partition in Minix and Linux are
different!!! The way I dealt with it is to use a disk editor to write a
message "This is the Linux parittion" in the first sector of the
partition, and then use "head -3 /dev/hd[014]" to find the right
partition number on both Minix and Linux.
N3) I have MS-DOS 5.0, and the mtools worked just fine on my hard disk.
All of my partitions are less than 32 MEG, so I'm still using the FAT-16
filesystem. It would be nice if Linux understood the DOS extended
partitions, though. This would allow mtools could read my other DOS
partitions. In addition, it would mean that I could use one of the DOS
extended partitions as Linux partitions, so I could avoid chewing up
the 4 primary partitions available on my 200 meg drive.
[ Note: whoever decided that IBM hard disks only needed 4 partitions
should be condemned to recabling machine room floors; CP/M on
Heath/Zenith machines had 8 partitions available, and much more friendly
tools to modify said table! ]
N4) I have also experienced the panic which Patrick L. McGillan has
described. I suspect DOS setting some cruft which isn't getting cleaned
up. The panic happens happens right after the "Loading system" and
before the system has a chance to print the "Partition tables ok" message.
N5) I have managed to build the Linux kernel under Linux, using the 16
bit binaries which Linus provided. One little gotcha is that it is
necessary to rename the binaries provided in gccbin.tar.Z to the names
which the Makefile is expecting. Other than that, though, things went
very smoothly.
N6) It wasn't obvious that the "em" program in utilbin.tar.Z was
actually MicroEmacs. I was really happy once I found it, though!
Perhaps there should be a quick note mentioning this fact somewhere. At
the moment, the programs which I seem to be missing the most are 1)
more, 2) gdb, and 3) fsck. The first should be a lot easier to get
working than the last. :-)
And now, for some questions:
Q1) On nic.funet.fi, I found sources to shoelace, which seems to be a
way to boot Minix without needing a floppy boot disk. Is anyone working
on something similar for Linux? The other interesting thing about
shoelace is that it came with a file "shoefsck.c" which seems to contain
the necessary code filesystem checking for Minix. However, there's no
copyright notice on that file, and no email address for the author,
either. Does anyone know what the status of that code is? I was
considering trying to use that code to make a fsck for Minix.
Q2) Similarily, there are sources on nic.funet.fi for a fsck program for
Minix. It looks like it was derived from the Minix fsck, but since it
is available for anonymous FTP with no notices saying "don't touch
this", I wonder if would be consider fair play to base a fsck for Linux
on the code, and either distribute the code or patches to the code with
a note that you can get the rest of the program from nic.funet.fi.
Q3) Linus, can you provide the configuration files for gcc and friends?
It would be interesting to see what's necessary to actually compile
one's own version of gcc/gas/etc.
Thanks to everyone on the list! I don't think I would have managed to
get Linux up and running with out a lot of helpful hints which were
posted on the list --- and I've only been on the list for a couple of
days!
- Ted
--[0017]--
[0018] tytso@ATHENA.MIT.EDU Linux_Activists 11/08/91 18:19 (21 lines)
Subject: using em
From: Patrick L. McGillan <pmcgilla@hp.uwsuper.edu>
To: linux-activists@joker.cs.hut.fi (Linux User Group)
Date: Fri, 8 Nov 91 15:41:43 CST
Hi all,
Short note on getting em running on my machine. I used my minix demo
disk to mount my linux partition and then edited termcap with mined.
The entry
console:/
was changed to
console|dumb:/
Hope this helps others to.
--
Patrick L. McGillan
Computer Systems Specialist
University Of Wisconsin Ph: (715) 394-8191
Superior, Wisconsin pmcgilla@uwsuper.edu
--[0018]--
[0019] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 11/08/91 22:59 (15 lines)
Subject: shoelace and init
Date: Fri, 8 Nov 91 19:45:08 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
I too noticed that shoelace has code to do fsck and mkfs functions.
But fsck doesn't seem to work on my hard drive. I am also trying to
get it to load Linux as this would allow passing environment variables
such as video mode. Also nice to boot from multiple partitions.
To Ari Lemmke: If you need it, and haven't already considered it,
maybe fvk-crypt and getty as posted on plains can be used by init/
login/getty. Let me know if you wish to farm out anything like
ttys or ttytype.
--[0019]--
[0020] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 11/09/91 04:23 (22 lines)
Subject: shoelace: fsck lockup
Date: Sat, 9 Nov 91 01:19:04 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
It seems that the failure of shoelace to fsck on my hard drive
is due to the number of inodes. An alloc of memory is done which
wipes out the stack! Ouch. Bitten by the 16bit bug again (the
very reason why most of us are using minix). Anyways, if we
can find a way to reduce the memory requirements of shoelace,
then fsck and mkfs should work within shoelace. I suspect that
removal of this excess funtionallity is required. For example,
commenting out the single call to fsck in shoelace resulted in the
code size dropping from 49K to 30K!!!. Add stack and data to this
and join the over 64K club for a voyage into lala land.
Either way, the code to perform these functions already exists and can be
extracted from shoelace for standalone products. If no one objects
shortly I will begin this project.
BTW: Earl Chew is the author of shoelace and must be given credit for
its existance. Please speak up if you know if the code for fsck in
nic.funet.fi is PD. It appears to be suspiciously like Earls shoelace code.
--[0020]--
[0021] daemon@ATHENA.MIT.EDU (Patrick L. McGillan) Linux_Activists 11/09/91 11:39 (30 lines)
Subject: boot image
From: Patrick L. McGillan <pmcgilla@hp.uwsuper.edu>
To: linux-activists@joker.cs.hut.fi (Linux User Group)
Date: Sat, 9 Nov 91 10:37:09 CST
Hi all,
Well, I was able to run make and build a new boot Image file. Unfortunately
I am unable to copy it to a disk. Tried cp, dd and cat. The error message
from cat looks like this.
--error on--
bash# cat Image > /dev/at0
floppy I/O error
dev 0208, block 0
cat: write error: EIO
bash#
--error off--
Any thoughts anyone? Incidentally, I have a 1.2 meg as drive A: and a
1.44 meg as drive B:. Even tried writing to drive b with the same apprx.
error.
I suppose I could be wrong, but it would seem to me that it would be in
the best interest of the group if replies were also sent back to the
group, instead of to the person with the problem. I.E. Others may have
the same question, but are waiting for someone else to ask it.
--
Patrick L. McGillan
Computer Systems Specialist
University Of Wisconsin Ph: (715) 394-8191
Superior, Wisconsin pmcgilla@uwsuper.edu
--[0021]--
[0022] daemon@ATHENA.MIT.EDU (Christian J. Darken) Linux_Activists 11/09/91 14:34 (45 lines)
Subject: Elvis spotted on Linux!
Date: Sat, 9 Nov 91 14:32:50 EST
From: "Christian J. Darken" <darken-christian@CS.YALE.EDU>
To: linux-activists@joker.cs.hut.fi
I compiled elvis version 1.4 (a vi clone) under Linux today without
difficulties. I used the System V settings in the makefile, with the
following changes:
CC= gcc
EXTRA= tinytcap$O
LIBS=
PR2=
elvis v.1.4 is available from nic.funet.fi (/pub/gnu)
aeneas.mit.edu (/pub/gnu) cs.uni-sb.de (/gnu) and other
fine ftp sites near you.
I have some questions for you fellow linux fans out there:
First of all, by way of introduction, I am running Linux on
a 386DX 25MHz clone on a small partition (20M) of an IDE disk.
I don't have MINIX.
1) mv doesn't seem to move directories properly. It looks for
something called mvdir and dies. I want to fix this right away,
so I'm goin to start working on it unless one of you drops me a
line and explains what stupid thing I've done.
2) When recompiling the kernel, the makefile looks for chmem and
gar. Since the resulting image seems to work, I suppose these
things aren't necessary. But what are they? I'm curious.
3) Lately when I boot linux (with the hard drive as the root
device) I get the message "child 2 died with code 0000"
(or something of the sort). What process was child 2? Should
I be worried? Everything seems to work fine.
Thanks folks.
Chris
darken@cs.yale.edu
--[0022]--
[0023] daemon@ATHENA.MIT.EDU (Nicholas Yue) Linux_Activists 11/09/91 19:31 (30 lines)
Subject: Re: Elvis spotted on Linux!
Date: Sun, 10 Nov 91 08:31:16 WST
From: nicholas@cs.uwa.oz.au (Nicholas Yue)
To: darken-christian@cs.yale.edu, linux-activists@joker.cs.hut.fi
G'day,
In answering question 3,
>3) Lately when I boot linux (with the hard drive as the root
>device) I get the message "child 2 died with code 0000"
>(or something of the sort). What process was child 2? Should
>I be worried? Everything seems to work fine.
I had the same problem but was more serious, after the message
"child 2 died with code 0000", NOTHING happens. After I have copied
everything from the "floppy root file system" to the "hard disk root file
system", I FORGOT to do a sync. Syncing is VERY important, Linux uses
a 1.5 Meg buffer, there will be alot of information lost if a sync is not
done. Listen to the disk activity when you do a sync!
I even did a umount /dev/hd2 before I reset the machine. The bootimage
with 0x302 written at location 508 will mount the /dev/hd2 again.
Hope this is of help
nicholas@cs.uwa.oz.au
----
Department of Computer Science, _--_|\ Nicholas YUE Tan Meng
University of Western Australia, / \ "You THOUGHT!! BUT did you THINK!!"
Mounts Bay Road,Crawley, W.A. 6009 X_.--._/ E-Mail: nicholas@cs.uwa.oz.au
PHONE: +61 9 380-3816 v FAX: +61 9 382-1688 OR 380-2716
----
--[0023]--
[0024] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 11/10/91 05:09 (148 lines)
Subject: Linux fsck.c V0.10
Date: Sun, 10 Nov 1991 12:07:44 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
Ok, This is version 0.10 of the fsck program for linux. Everyone is
encouraged to use the (old) minix fsck program available on nic if they
want to, but as it isn't clear what the status of it is, I would rather
have one especially made for linux. This is it.
It's a fast hack (2 days), but it seems to work relatively well. It
doesn't repair a destroyed file-system, but it should tell you about
problems. Repair is on the way...
The reason I'm posting this is that I would like to get all the bugs
ironed out before it starts writing to a disk. Now it just reads, so
this version will not f**k anything up, even if it has bugs (and
hopefully there aren't any). Although it isn't commented, it might give
you an idea of what the file-system looks like.
This is NOT a standalone version to be used at bootup. It is meant to be
compiled and used under linux, on filesystems that aren't mounted. You
can use it on root, assuming there is nothing writing to the disk (and
this includes fsck itself: don't use "fsck -l rootdev > tmp" or
similar). This isn't recommended though (you might have two boot-disks,
one which boots from floppy just to use fsck on the normal
boot-partition).
Linus
--------- snip snip -----------------------------------------
begin 644 fsck.c.Z
M'YV0+U0H *$"A)DY8]:X& .B!8@P!M.P*0-B3IXY=,JT 3'FC9LY:3"6<3,F
M#T<T91*6D6/P#4LF:=S4P>-BH$""(% ,20$B1HX<,4# E#D'!!67=L*P(3/'
MA5$T(2-.!-$FC$DQ%.64(1.2CIPT8NID)/.P*)R5-D'002DTYDR.;^#D^7H&
M#9V:!%\H4! P+8P<+F+$< $41$/#5<E07$O13!HY&$'(J<.U31DZ8>28-%.'
M))TT'N?83!L#1N#!A0^#J .'3)BQ+$"0>5.FZ!B4"6.>B>WFC>0R<,(\+IKG
M,EX5"1),&4D'Q!NQ:GTSIBJ<C>X6UB.;<:FV]F<W9XZG37+"#D4T8<CV5IO&
M<O2'9,AV;&/9#9VB#M'$+<.9#1N3TW'F&6AN@.!&&):)AE-F%,U7WWT@C/1<
M74X%4=0=::SUD']246212!O=EM(:*\T1VUI1A3''''4DF%: $GEX448;115'
M'6G4-@9SA\WFQ@G-U3$'11DZ5R!$;3QGWU:RE6%'&CNFU=E$*X*0QW,<A5$@
M5A75H96!;XCQ!ADF177'5]^=\5Z1*&A)EE:6M8$52VN]IA9*:9$HAQMEL)%E
M@6=FN)AO1=Z!4H%%#IF9B$5MQY)C5*8@'DY5L!C&&67H8!!":X"P!7:9V3%'
M&UTT^624!"6 74LL091=FLZ9L:&?,$YTH(NIM@"1HP^)]495GS&D57##Y=1;
M<^W!,=&#6Z5@DZJ/<C>L<)#E%%-&<H0QQF?F\83"L2 DNRQSS3[;@AVL@F">
M'&(.F5-&_A6EWQW4N;%9C',XFVNCW+%XEAPMB,'&&PF%Z\9VYF[$:QLQI8$'
M=FF0"(((22H&9G-C3,0@&2* <$=F;NBFX$T%4<&68J=25-55%$$D,,&=H@PE
M1=Q!U-ZE-,OJ41FQA=4<BD6%]",=:8WDZ(YDH>!SN'2<4!2X;=1QFT&=&?G0
M29EIBZVI,X.@0PN2@F"37@J,$%/&E%'$ T9<O>$"&CZ4?38;:8/ 0V==D?%V
MW&:31+?%:WNEV]YR^UTW#V:,81\;A/>--N!L6R=&XW,?_N$+&+U&>.&/JVV=
M3'B\<-#F(RCF&)\@2/'$$U1\D8033_2T5^G\Q411%5! 4804*("D!\]N>-M[
M&K^O\&T+,:20P@O!EVVZ[2"\_@0117PQ11):%)&3[V6\84;O7DG='!E?Q#1F
M&<H[7SOJTE/_A1!,/#'$$E. @+ONO+=?Q!0LZ#_%%_A[7_SFYRS:G8XB^GM?
M%8Q@A-U9#WO:0T$"X2<_^N&$@O-[8/:<I;X#@D (2:#"_P*(P27DI(0:+ (/
M># ##F8N6%AC24'@((<WG"%;;?C"K2C2@XD=)"$BV($"7@BE&.)$9CO2(8)X
M" (G5($)3! B$1ERK>@Y08J8@6$5I_68'L @-F'P%;"@Y,78K*M=92@C"%ZE
MQCG,2XT?V],7*I9&&&#Q-46L(E>TLBV7Y$&-6CE#'=B0&36^+"$H4^-M,I/(
M+ZXQ)FN8@QKI\ ;,L,&+0NP@])H0!"Q\@7I0H (20% #& PQBWFTCX&6^ 7%
MP$%#/;3C*?'(D$6R9(=?>-46..E)4(JR"UMP0A":4#TF%,$)*XA!%S(Y12,6
MQ'R*^4)8S&"&E8"@ATZ$HA -"+TD],9B* @G1B:S+=F4[YL440%/H%D&:=:!
MFBM) ?*<U4Q;=NE?TAQ80MP)3SEL 877R]XR-8FZ*;#&FBA0 ?C(V1Q_K22?
M,"-("APJ!XCN<YK5E$,!G\<^V%&O?N'L#$C.P">R# P\*3#HOUPP!QVR,U\$
MI8@6GN"$_>4$!2)- TF9=-(SI/2@<F"I#O6P,YARDWV<A )(<?H1G99TC1[Q
MJ4I7(M2;P<&BD=SH^F2:U*7F=*<FC>I/5]I2/53EJH?,:DQ!8(0D2&$*5)AI
M36_ZU:?V=*Q4;:EC($,'UV"&J'S2J@?ENC\(TK6I8(4J2J<:U)8.[ Q? &P[
MN2?8378RH!%DZDCM*E;&"K4J>/@"9=?*R2,D80@Y\6Q+JW(&*%46=;"30A.^
MT-:WQI6F$93!"I+0U15HH;<3'"#]7(C*6J*')>R<8QC@\$_AIA G2?A"4JT7
M/Q$.M)['!8%DE<M<@!JV(%J0;A"@0%W636&@LX1A79EDSV>B\PL=Z4QSL/G$
M**:WB.N53W8+LMWXJI*^VMR+'=Z0AC>EQ$L@,0]\<;,&S3J5254T7PHR>52*
MB"%#<?G6$ED0%YYPX;Y4=,/GB*3*':*@O? A@QQ8D%^#-<<-&@7!A_<@8P54
M\0M?T,H<=E!C'*LHAU] @0C$0(>.Q65B("A!#%A0 AGP.#T9 P$)OE@"&'3L
MPSH000_.T#$4X%C''E9 EN7091BG@ 44Z[)"TZ-BY:'9RCF!@?)X_&&MT,%+
M!?IR;>BL@#[LY<*4A(/2,H1F$3@+T!D>$AT C>8Y&%H!B!9TQMA%:!&,X=$V
M%C'T(OS>F'Q!2&5P<&*K:&8%[$$!"; SGD$ :!0D]ZPL,+,0_9SI$;M8NSL[
MYZ>').JGDEJCID:UJO?$Z@RA8+NPAG$+:@M7PB9SPGT6\!L(^9FI#+C JYD#
MSE!P;3(XZ]0), ,-K_4]MJUDQ2*H%,XT58*B?(J0<A 5J4#P I0Q;XE<<(,(
M6$!#&^)0B9:!=@+*@ =C)V_6TJ9VC-1%8+)P)=0H'J=NOHUJ<7_%/N7NZ[G1
MW&Y-[;O?-T00P-$GQ'"/&^/@4XP<5BQQ\+ B>W<H< M3NZ4;UP$^39TR0EN
M<&C3.B:V[O9OTH/57D.XQ"MV9HJ!#>XTR H%(8 Q"/C !P.QQ <]).P4> +N
M!,1)T6V*SXJ_Z-T-ECS5E\%SR?V< *>?T+F858'40]!#-@RI# U^76S*7@2Y
M)WT*12C"$JQ7!"JD+SD/%_+=.V6&ZFQ%YZAV.PKX#@*Z#YT,$G0"&,6^=[A#
M\/ )2+P(.A,&@0WJ\JS6YQH@_W--HT[H9ST+^;1"]+0N5'SF9"=.V,D"5+>X
MB@); XQC@V(V,QW5]@Q^<RN80O2V_>G!AS$/;L!U5*.]]JIW-3I;X(,T1'9G
M6XB^'+K N,+'.UWWM/:42W^AO3P!B67O/AY4(,8R*#ZR:$]^6S/3NY[7[);
M< /D%WSGIW]%%U*(]51NY!+-H4X$&'YL('SC5WYB5X!IIWZHQG;MUP(]5'].
M)FQE@'TPHWWGXW_?QR=;@ ,#&($"9X"VAX";Q20+* <-F (/*'XOX($KN 8M
M&(+[EWTP^&!D,8,U>(,1"&,EH(,4V&8(IP!"9X"887ISP&T-1W%>IQ%@]VK+
MQ0)?Q#W>0X+1=%9SAFI?=QG'EFNPUH7$TSW?@VS+-8;/]W;,AUF55W>+EWF=
M-X<0%!N )WB$9WC.@G@YHGAE@'<&X7@<(W"21WF6IW]X>$\/E5;\E%%YF$&8
M!7JB1WJF]Q[Z!XDLD5:0%X<H4%JG58<@, 6XXT"DN!/6)WIBD![4T5H,(1-R
M8DTQX8D!HWJA*'E:9UB6!P-35W6,V$.E(0,T$(BA-X@B\ 0B9A(QT"EI-0<O
M(%E%X2]PP("/IXA/%P*\-5[U0W71TU4@X /1(U[D-075M76MJ(RO.(3E<U98
MU2@YLA0&@XN@J(TY$0*_Y8W!" +[J%3CZ(_F6%XBA(RN"(ME!8_1&!%]0A:W
M2%&Y"#.[^%X894T]5!7^03"9-SW5(P0+U$!2D$+X"'7)59' )HBAEFX'LHF4
M-"L$\QH6]DX9E2XO-9'G U]*,E_4D9%CL)$?-9(AD%S^10<&J8Q5L))3T9)*
MH4\PR6HR:4V\HGM#&8K]E9/7M)/ZA ):!Y15*5]%F9)'67I)Z1M+^9(9X93]
ME"Z2!1?RM8M/UXU*I0+#>'EXJ(5PT#]=)9>>MT%?*61AR9*^T8FZ=U9NF1/_
M. 5ZJ8?98XJ.J'=N>)>'F9B6^'E]J9)B>7J=N):$.9(3])$.1(>-Z(-U29%/
MN6*=R4"?29GK")9(B9D^:##GXV@C&5NSQ6RW-5>69YN$A8PG1P??(P)7 #*Z
MH2E&,!QTL):6YP0ND4-[A1&259B],R_XEP"]^9LEX)#H- <YUS\>M3_G5YU"
M=IVI!S/:J6\LL)5G!YXB4)Q\Y5=A(%D]()XH<)TIL)VZB5LL0)NTY5;-AEO?
M>7&^*61:4%1K&)]DL)U\MT*]:';6IYY-$ 9XP#T&NIV\=(GK1VOCA'ODHWL%
M@2ET<$[G8W38^6+'EP 96DX;BDZ[ATZ9)(I1QQ+@*'7DZ#_(.&P%DDWVE0"4
M9$DKL +QIZ(]Y$WG P(K8'7QMXU"F9-; &-=,)V2]S]), 5$X%9@6 8F2$>@
MEXQ\1$F:T:-GUR?N\J2N,P524 1'4*57>CY9&DB#E!E>:GU@2B1/!Z53, 1(
MP#O]UWUSI*;(F "VA#)OFAQQ&BYS.J;PLP1HJJ=8VJ=I!:@^FH$18G=E8'V?
M$TF!*GDAT*-)*E]+.G[(N*GVT:E=T (M4'(V"IN*T81")R+[5$.51(4%9H4G
M.CX@:C'N-:1!JJ)%JCJLXSJPTZ*8JGO@& )T.J5XNGV*RJ>K*62NBBPJ*C1
M<C5[E!)<F@>LMQ?-5$5L=H*A]GNJI >EUG3;"*XP6G7D.HY9AUOJF'\76""R
MY*(]VI6A2JY-:GWR2@=;0*^D:JKMVA--F*VJM*W;%1.8YZW-0:ZR6EQ&I'Q\
M-U!MITII *S;*+ [<VQF5J/]^JXNF'WDR@($6'*\XFI>! (\E@9V(X>3F3T^
MX /)0[+ATJ/(2+%\$DXB6A'Z08,2]8!IT*3\FGX%$@/_JK#:&A_<VDH$6[-5
MA+#!9J(*FWP1N'PI6P0.&V$2FX\R&VH(B[$^"P(:ZX-%U[$?6W'<(;+ 6+(G
M.WE[600KV[(E"[/6=[7GA'E!F%A$F+,LN 4[VX-;"[31YH0-=Q(CPJU3:+#A
MDK ,E7LJ>JNINA<N:K+@:+)89T4<N:[HIW:1]W2@BJ\[&Y#)DP ! 0+H81X>
MTR YR21 TR$;HG]Y\ -Y87TV^J.X&CVZ&BY'FH_%2J5YZGU8"@(F8 *51Z=E
M>J:YNZ>* 7JO*[8L0;8NFP;3M[QNFQQ7FZC_!WYY6W)P>[3#"X "*'!PRQ5N
M@'G9"WXJZ'/2AFV]^07!L1:PZFU+&V&8Q+B&LG"NQ@.XY$IKP9L ^ILO4 *!
M00..%FNLI$MIT*,\BVKJ^0+7ZK?8QJIK\ 60$FJSBKA#6A![%!N$ZST'<1D)
M2TL+^[0-6W(1G*(3C*IE\*/.^@8EAV([U**QMQ4YYK6V5\$8K&@OP'<>RX(E
MMT-7&7Q$FA,S?!E)]D%IRQ-%^H$/ZQL]5! U6[?J9"Q+U +W![L6TT,>6JNA
M)F&U"W4_3)0@T'7!NA[@.$YCT :")@(NL&\RUZ?J*02P.*U]I!F:<@(N< +A
M,@=#$Q%\E7/G-ZC'FP!L)WE;?$W$: -.BJ1@7'5B3,9"Y@)G#, !I\;Y*V1L
M['"/0:U^%,>,3,?0VE IX1$'JF][+*F_X;/KU[CHI+66*XJO4L@Y<49O,"20
M7',B4 (V0!95=@.^L6_FPP+#BZ7I":#H^QIH@ +_*<O\&P/^VV[;N4,L<+O'
M6H+)6KP_( )9EF6AR'8,++@D.)*ZU[NG.*;&*KW$BSZLK&&6T4K H2$\ *\
M]$E%$$I(T*?C1!)R8<[MI$OUF\YH0'[,C,SGE\^OA :!BG9C@&!IH& ,O,UG
M!]!KL:\9V+=/>&"0<=#ME-"$*V%+&\)6?$2/47(73$V*UJ)[=)5":C%%:CY9
M3*S@3*5[E*;%6YG7LA('XB?GYA*A&+*!'$LN&\CKW-)ZRCT[#=) O *#C(S9
M_, H(,-"392J^K?9/)13V&U62+6,&[)IT -!8;;K[#_.NP+E')2=Y@:[=L4\
MX<TE709XVP4NH+M#ZLUQ)-98:GW4&<DB<-9)1A9T=#$<H3%:\<FZ?'Z2EUR>
M!FJNE@(J<-9IO=8Z5*E%T0,]E+EIW:<=81]N4<(-2M=V?9WL%C0% FJ\P=@&
M2GRE2P83:I[6EP:\'-9C7=C33,TB<"S[AM@[J]BN%TF]EQR07;T/'6YC>]7W
M.5=:[8_JVM7E/+!B3=AIP!..C6M\@I.<FK=R/=G?40>6G1SJ.:"HH]E)QMG9
MQC-LN22D?9W;>=HL8-RKG=RMG66P7=ZY-I21?:'EJU\CLKY66(9T4*7.;1]<
MR)V3JP)>^#TJD+EP:-]GV-Q#N=]:Y]]K^(4J<*]PF,W4B *\VCK2TX,%/=$(
MS6 2OCH4#CL"]]0Y.87DFVG-414QH7W-D1EG, ;$MU\%H>)V,-5/I^(,X<TJ
M ./XZV\BI\-)#.-9G$!T6!#^ T .5$*FR'>5V8XD7!%K&(KQ.Q5M(@<K3JJ<
M.YTP/M"2!^-; / Q.6F> (M< )]*GDP-W)]F@!"LFWG-W"2*M>AYR0S,W)7
MJ>5<_J6B_.04D5 ]2N?UFAPFBB%T,#51?@9VL.5=WJ1=[.9CH"(4<0)L< *:
MPD9 RVJTMP9GEQR+[BXG$ :0WBN4-$9C@-4\QD5R(.J4'H*6KNB,#@(G( >=
M'D:?3DN8]!O$4NJ3+@:5?NE^NNKET>FN/"2FCNNHKNN9WNAST.D+> ?!GNNJ
MKNEMT.EO/<[+/NQN;CIAQ 9TH"EICBG$?.EL]\?;6.8R9WW;'FH"]SI7N1]N
MD-1PGD3,3.H_\ 1?( 5$< 52H /R3N\TQ019P)E.<+)RMJRCUYKOH>ZLWFXG
M$(I0>)DBGL(,EF-O\*H?KN$C^>OHD^C63=?Y1LL&)DCPUB'E*0+6-\NU+!N5
M_,8Y$O(CS_$QI#76!',@GW,K7_)IQ34[$O/Z-O,F!4DJGQPB0*I WP(R[_,L
M_\ A?]MHY_&9\7(G7ZTL\*=.<L,P@S)(S]A0K )N7*W)Q ([JA17G_5^]&RE
'?*HH(&<(!_&9
end
--[0024]--
[0025] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 11/10/91 11:18 (106 lines)
Subject: More answers
Date: Sun, 10 Nov 1991 18:09:31 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
Patrick L. McGillan writes:
> Hi all,
> Well, I was able to run make and build a new boot Image file. Unfortunately
> I am unable to copy it to a disk. Tried cp, dd and cat. The error message
> from cat looks like this.
> --error on--
> bash# cat Image > /dev/at0
> floppy I/O error
> dev 0208, block 0
> cat: write error: EIO
> bash#
> --error off--
> Any thoughts anyone? Incidentally, I have a 1.2 meg as drive A: and a
> 1.44 meg as drive B:. Even tried writing to drive b with the same apprx.
> error.
Urgh. This is definitely the kind of error I wanted least to show up.
The floppy driver is the least mature part of the system, and any errors
are likely to show up there. I'm unable to reproduce this error: the
only way this kind of write error could occur is if the floppy driver is
totally unable to read the first block. Normally write errors won't be
noticed by the writing process: it just writes to the cache.
This definitely looks like a driver bug: UNLESS you are using floppies
that aren't formatted? You have to format the floppies (currently
possible only under DOS) before trying to write to them. Please, please
tell me that was the reason :-)
Is somebody else getting this same kind of error? Could you please
report the hardware you are getting it on (5.25"? 3.5"?)? Are you able
to read the disk (as a root-image for example), and does the error
happen all the time?
> I suppose I could be wrong, but it would seem to me that it would be in
> the best interest of the group if replies were also sent back to the
> group, instead of to the person with the problem. I.E. Others may have
> the same question, but are waiting for someone else to ask it.
Yeah, I'm lazy. It's much easier to do a simple "reply", so that the
person with the problem gets it solved, but nobody else. I'll try to
reply to the mailing list in the future (unless it's something very
machine-specific.)
darken.@cs.yale.edu:
> 1) mv doesn't seem to move directories properly. It looks for
> something called mvdir and dies. I want to fix this right away,
> so I'm goin to start working on it unless one of you drops me a
> line and explains what stupid thing I've done.
This is a possibly deficiency in the linux kernel. I don't allow
links/unlinks to directories, as keeping track of the parent is too much
work. I /think/ it's impossible to allow a hard link to a directory,
but I'm not sure. Anybody with ideas is free to mail me.
I think the best solution is to write a "mvdir", which simply copies the
directory and removes the old one. Obviously I haven't done it. (Does
minix allow hard links to directories? How does it handle the '..' file
in such a directory?)
> 2) When recompiling the kernel, the makefile looks for chmem and
> gar. Since the resulting image seems to work, I suppose these
> things aren't necessary. But what are they? I'm curious.
Most programs starting with a "g" are GNU software. This is also the
case with "gar". Gar is just a shorthand fro "GNU ar", ie "ar" ie
"/usr/local/lib/gcc-ar". Likewise "gstrip" is the same as strip, "gas"
is the same as "as" etc. I have most of the gcc binaries linked to three
different names: /usr/local/lib/gcc-xxxx, /usr/local/bin/xxxx and
/usr/local/bin/gxxxx.
chmem is a Minix brain-damage. Ignore it. It isn't needed under linux.
(it tells the kernel how much memory to allocate to the program, as
minix doesn't allow a process to grow). Remove the line from the
Makefile if you are running totally under linux (and it's probably not
needed under minix either, if you have the right patches).
> 3) Lately when I boot linux (with the hard drive as the root
> device) I get the message "child 2 died with code 0000"
> (or something of the sort). What process was child 2? Should
> I be worried? Everything seems to work fine.
Linux has two special processes: The swapper (#0) and init. The swapper
is used as a "null"-process: When no other process wants to run the
swapper just sits and idles. It may not sleep.
Init (#1) is the real father of all processes. It should really do a lot
more than it does currently: execute the /etc/rc file and start logins.
Currently It just starts 2 processes: /bin/update (#2) and /bin/sh (#3).
It then just waits for any of these to exit, and syncs the filesystems
(Normally this happens only when /bin/sh exits, as /bin/update shouldn't
exit for any reason.)
What has probably happened is that you have deleted (or changed)
/bin/update so that it won't work any more (possibly due to a corrupted
filesystem). It isn't deadly, but it's a bit uncertain: The filesystem
is never synced automatically any more. Not even a "logout" syncs it,
as init synced it once when /bin/update exited, and thinks that is
enough. The possibilities for a upset filesystem are much greater...
Check for file system errors with the newly posted fsck (although you
are still unable to correct anything with it: backup and reinstall.)
Linus
--[0025]--
[0026] daemon@ATHENA.MIT.EDU (Patrick L. McGillan) Linux_Activists 11/10/91 11:21 (34 lines)
Subject: problems
From: Patrick L. McGillan <pmcgilla@hp.uwsuper.edu>
To: linux-activists@joker.cs.hut.fi (Linux User Group)
Date: Sun, 10 Nov 91 10:11:52 CST
Hi all,
Just an update on where I am at and the problems I am encountering.
By using my minix demo disk, I was able to create a new boot disk by
booting minix and mounting the hd parttition. Afterwards a
cp Image /dev/at0 created the boot disk. Clutzy, but it worked.
Using minix I made a fs on a 1.2 meg disk and copied some files to
it. When I try to mount it under Linux i get the following error;
--error on--
floppy I/O error
dev 0208, block 1
mount: error 16
--error off--
I also note than using the new fsck program which seems to run fine on
the hard disk I get a last line to the aboave error of can't read super
block.
I even unplugged my second drive and told the bios setup program that it
doesn't exist.
Any thoughts anyone?
--
Patrick L. McGillan
Computer Systems Specialist
University Of Wisconsin Ph: (715) 394-8191
Superior, Wisconsin pmcgilla@uwsuper.edu
--[0026]--
[0027] daemon@ATHENA.MIT.EDU (Marc CORSINI) Linux_Activists 11/10/91 18:31 (34 lines)
Subject: help installing linux on hd
Date: Mon, 11 Nov 91 00:23:34 EST
From: corsini@geocub.greco-prog.fr (Marc CORSINI)
To: linux-activists@joker.cs.hut.fi
Hi,
In fact the subject says it all
I've been able to get the minix demo disk from plains
also the different Image for linux
I was able to rawrite them on floppy quite easily. In fact the problems arised
when i wanted to put linux on my hd:
I used a 386Sx with 2Mo Ram, and 2 HD
the first one is a 120Meg, and the second one a 40Meg
The big one is a single partionned disk under DRDOS 5.0
The other is a 3 partitionned one
Using Minix I've tried mkfs /dev/hdX with Xgreater than 5
the only reponse i got was/is
no space on root device 1/0
Error: file system is too big for minor device
Line 1 being processed when error detected
Oh, the number after /dev/hdX was computed as in the manual of the demo
disk of minix 1.5
On the other hand I've tried under linux the
cat /dev/hdx for x in 0...9
some accesses were refused (since the partition does not exist)
cat worked on hd0, hd4, hd5, hd8, hd9
Question : Am I supposed to patiotion my first disk in 4?
[mmc]
le continuum spatio-temporel est une veritable passoire
--[0027]--
[0028] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 11/10/91 19:01 (43 lines)
Subject: Re: help installing linux on hd
Date: Mon, 11 Nov 1991 01:58:27 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
In-Reply-To: Marc CORSINI's message as of Nov 11, 0:23
To: corsini@geocub.greco-prog.fr (Marc CORSINI),
Marc CORSINI: "help installing linux on hd" (Nov 11, 0:23):
> Using Minix I've tried mkfs /dev/hdX with Xgreater than 5
> the only reponse i got was/is
> no space on root device 1/0
> Error: file system is too big for minor device
> Line 1 being processed when error detected
This seems like the error which happens when there is no /dev/hd?
special device, in which case the minix demo will make a normal file on
the root-device, filling it up totally. Thus the "no space on root
device".
What does "ls -l /dev/hd*" give you under demo-minix? Are all the listed
files block devices? I haven't used the minix demo for a long time -
could it be that it doesn't support hd5-9? I guess I'll have to make a
mkfs for linux in the near future, and make a new root-image with it, so
that we could scrap the minix demo. It is too confusing.
> On the other hand I've tried under linux the
> cat /dev/hdx for x in 0...9
> some accesses were refused (since the partition does not exist)
> cat worked on hd0, hd4, hd5, hd8, hd9
>
> Question : Am I supposed to patiotion my first disk in 4?
Don't use /dev/hd4 - that's probably your big DOS partition (and I doubt
you want to write over that?). Also *never* use /dev/hd0, /dev/hd5,
they aren't partitions at all, but the raw disk.
The partitions on your second drive are probably called /dev/hd6 and
/dev/hd7 under minix, /dev/hd8 and /dev/hd9 under linux. I don't see
why "mkfs /dev/hd6 blocks-in-partition" wouldn't work unless the
demo-minix cannot access the second harddisk. Some clever person used
minix/DOS to write some easily distinguishable string at the start of a
partition, and then "cat /dev/hdX" to find out what the partition
numbering was under minix/linux. A good idea.
Linus
--[0028]--
[0029] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 11/10/91 19:38 (329 lines)
Subject: patch to use shoelace with linux + fsck and mkfs
Date: Sun, 10 Nov 91 16:21:27 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
Following are patches to shoelace to allow it to boot the Linux
image (sorry, no building by parts cause there are no parts).
This also means that the fsck function of shoelace is available,
including fsck -m, or mkfs, which I have not tested. Please note
that by using strip on the shoelace executable, I was able to fsck
a 20Meg partition. 64Meg partitions, I doubt it can handle.
In this way, both minix and linux can be run from the same partition,
with a bit of mv'ing of directories like bin.
You will need minix to build these because of the 16bit assembler.
I also have not tried compiling laceup under linux yet (no disk space).
Perhaps some kind soul can do this and post executables for non-minixers.
If you are not already familiar with and using shoelace, please install
and learn it first!!! The following assumes this.
To use:
- Get shoelace from plains or wherever.
- Apply the mxvid50 patches (may not have to, but my diffs are against them)
- Copy makefile.bcc to makefile and then apply the patches in shoelace.pat.
- Put the bootsect.x file in the shoelace dir.
- Type make and cross fingers.
- Use strip, ie: strip shoelace
- Copy new shoelace to your root. (Might wish to try floppy first).
- Reboot, hit enter when shoelace prompt appears and type "load /bootimage" or
- If you want an automatic boot, edit /etc/config and set "load /bootimage"
You must also ensure config doesn't allow shoelace to find system,
fs, mm and init or it will boot from them by default. Either
move the executables or set them to a bogus path.
Why Use Shoelace:
1) has fsck and mkfs.
2) doesn't require a seperate boot partition.
3) allows passing environment variables to kernel (like video mode).
4) doesn't require kernel patch (byte 508) to indicate root device.
5) allow you to dynamically boot different partitions and different
images in the same partition.
Disclaimer:
This patch is a bit of a hack. You can set your rootdev in the config
file and it should work. But I didn't implement the bootdev.
I also did not try to pass on the environment to linux.
Acknowledgment:
Earl Chew for shoelace.
pmacdona@sol.uvic.ca
table
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 slpat.Z
M'YV09<:@>0,"#X@6(,2\>4-G3D Z+O H<$@&Q(D77K"\F/.BXPD0/A(N;/@Pz
M(@@>/"R^.*$ "Y^6?!(H9.AP#,0Y"1*@&)("1(P<.6* 8)+&39TY(*B\D6,Gy
M#!LR<V#"%$FS)-(T2-F\"4.F3,4P=$# P'-C# P8"?. H(.F3,(T;^:TF$,Gx
MC!PZ=>" D/.F#IVB9>:P !'&3<4V;^P$GHJU#!LS(/J&?0.9K=L[8=32(<B5w
MC)S 2,?F.'MV<.&*:NJT@8/4\F<74EV"2!+6LAL06KDB/>$0+YR/9-)\MLE&v
M;1@S=,K( 9&&Y&,0*$3#D'$VA6G#:]N"F).';IDV4\&*Q1.#-(S!1XN> 2$Du
MR9,IS-TDER,G;T,7(&+S >'D"94B(8 P1AWTE2%?<=MUEUP;S"$E'F)T@8"#t
M"C;44,,,-J257%9ON'$&?E2@@=5V ]7Q5$)NN?'&5'#P)08;WPU6AF*W%96=s
M6V;X16 9^"4! F;RK470&F64H5=SVZ6Q&HP@BHA4#3'( ,(:0DQ%I!QN.):Dr
M'F[-4>*)8KAE8%]GH"'C'' $E(93"(;1FI,@D/%&8&Z<$-88'=9EHV53B5&'q
M&68H)V 8 KGE9GP@M%%4&A*Y-%6(;N76U7)H'!JF@8ER92A2<R@)!XR$(05'p
M7)V^6,9U%>$I7U%UQ#759UR!H!Q?<B!U1QILL+%78":&96,8(-3AAABPKA&&o
MJ;@M! =^4I0Q4UABJ%6I83W2,96DHGY&!QUJF>$FM&J=4<:VZOTX$*@U;58Kn
M86$!^U<;E[65I6++C3I'J4RVU)(+R>%A+18N=&4&8"!\09===+#!:J/\EN&Om
MOEA,400554#!1!%.@- #"#3DE--^;BQ'V7;CYC770TM%A8403_@G\1$@:#P>l
M#&7!X/%^2Z5Q1E%.$4:&9Z!%!MFS)]NT5$M).)$$%2_'O+%T9]W\HUN(*495k
M6&U]=E!D?@E]XX^9M20QQ5 T_30>HU$G=6]Y;5?774AE78;864S1M-/CE1?Uj
MQPEZQZ"D7K&;MWG057BA#2G AL544K1,Q1=$%&&%#@F,1=K6<X0![UIYI.FUi
M&5K! 8=Q2#VK>$R5XS$##$(A-'"M8<&!<'-PW=8A"*]'Z%D:5H\[1DN-^P>Yh
MY#*/M;J4^QD/@PT0&_QVP@OKT!(("52=0!AXL# "RRX7<<3TU2>6 %0L8 ^^g
M]=AKG_32+Y\O?F#E-WK&&Y2CG_T8*H=OQ_B"F8^%_@F G__V X>N'6P,:Q"<f
M: !U%L4!\%[Q:\D#X:"]L1C!"'O;CUW$T!PYV$4M36%#'=SB Q] 2080>\,:e
MOB I@Y4,#M);G&R.,*XX826!N[.:[#P(K_D(9CMI&D,:!C8&-JDE9%Y+5\I>d
M0 </(A!B !1(!?%P%@DZ9#WX@\D#458K%HRA40!,WPC6QS3O2=!Z FP4Q*Q8c
M!BRJ+#S($11;Q(."&2DG#W_Q4+(T10;K3 T$J5F-D*9B&9+YI@5\\0O! %>1b
MX PG8<:)HQP(J9UGO>@-"(RA!-6PFC14C@5CJUC[9 BQ-LSA##&(80)<$*WDa
M^&0&+"B/!%W@)B&F 00B8,)6@J-'[O@-!"X(I@AFV4JWQ "6Y8DE,F$ L88]z
M# L&(D._Z!##@($E#"V))AFN64TQW"N;AO'F'*3W @4$9" %V5H;\&"'-)"Ay
M!LRDB$HRLI&.K 0DB6*G.^%YDI1<A"58, )?&)2E.\S!!56P0AK&X((A!"$$x
M=1##&%J OQ 45"X.88IR7( _.:2!7TO)TQM<X)4ZA$ A;G!#&GBD*CS)(3AAw
MX&@8("JL<86@#6!!@PMRU((PR4%A;@A8&2"J4CF%P%LCQ%((G% &@TY!.78(v
MP4#AI:LFW.ZI>@%!#GR22@OI8'4@@ (1J. 3H,2@)4&XRT)AI .N8FBK(\/3u
M:EP0%Q<H2J6-@D).VSJ'-[ !H0IEJ$,MVM2#)G2A#7UH1"=:T8N>3*-RX.@<t
M/ I2OLAGI"4]:8=4RM(.N12F,J5IENAPTYSNM X]50Y0A4I4=[[AJ&%(JAN6s
M6MBG,D6J;V@#55LBT-RV=:J. 4(2W&"&I>#T+VMP <5:T(01NJ%008T<=)80r
MAC2TH IW<(L4<DO5%+2$J08]0R)9TU:Y+JNN=V64V"*JAH>4MT,#.P.!CH6Nq
M,7P&4YWB$NZ6 H(F+,H@*)@!#A#7DB: )@SB:D$2B-!6'OPD*%C%@0NB=);Rp
MN& &,[C!#(1+7..")0W)76YS#01=%T3.!RTA EC*T%8<@ "K6A5*E'1P%AV4o
M!P1': (5Q!9-Y;3UHAPNKAR."V+E5H&YSBVQ=%$ 7J1,04'?\2X6GB"',Q0Fn
M#7KX<(?:2H5SJG0.A0)!%51*KT[5I88C?JZ\!D/#(1<F#RTA2I;&R3$8S !Bm
M/@)2<BJR&1!\*C.$221V;L46&P)*.08*"YCO>QO$= 4I0N[O^K! &.P45UADl
M: F2BJ(J&JTT2$[!3'>$)*!IB0L$*E (6U1 HCFQ@5"&PLZ5LL2&%ZBJKTP:k
M PM:,IS<P@%7L:X(4!/H.\6)C2 ^JI35!%(8<57$2ZZ&-:EAY*MVC6$,1FH7j
M" HJ(.Z>1I4B:&=7<ON&KIS$T64(R1:*&Z2VZ P-=.C",+&@:C0@JI"JBB_Ni
M@%WIBA1E/H3ZBV*:-"*YXA0[O7$0>]PSA9:(P4V!$W<9"(+N4$TM5Q8OY#3Wh
M&Z0^XV P,:!!9)83@PS]&@^.B=N[%0<ICF.M#._V%5+> (>_=,@I^ D"&_HZg
M&!\5L#9W($AO#&2';NOV-%>Y3;YU!NZANZ'HB_X"GG9^$CS@P0<BN)YA)"@"f
MIT/=OE_@BT%/DH<\8+TE=Q"10 +M%MG=*W!]+N2LM12M5CL&UOBI0J?TR):"e
M>QL[>>C+H-R0S>9DS9"$ 8'$*5YNMP@K#7%P2Y\#3R#%NW/B(K$+&08SASJLd
MW4U<7WS%,33O2%/!(7JDP>44HGFDH."8,L"##'#0$_X6\F"&T3P(K'"$(*S%c
M86&I.*'MC4TL!.?0GPD2NU\><\Y[GOA(P0$>/LX<DN('!V/A)[K!+?K&@V &b
M$IIW2R!U&Q\QVT.!FWNM;^U7ED+G,Z\6N.0)4L@.7<;PEK]+'9S2$O;#: X]a
MT6='X19-X5'T%1@O-@12\ 5#\ 1,, 6#,04*^ 6-<P7P<1H)N(!#@ 1!( 7Pz
M413>$2N4T7^B$R=E,#!SUB2!08!VL2:F8BN(YC-=P6=#HART]@)GH!4N0'S8y
M81==,BZ:=AOJ9VL'<Q<<Q1R5H1W')1#E0G3"T2'P$B0%Z(+_QW;[A6F*\P2Nx
M<2L.<2/&H34P@AR"8QG"88)(Q08- 1W8)WLUD#@0TW(<M![!D3EDT!3R@6!Nw
M@16#,4=A(8$:R($>V"#!(D^_XC;U81/]IG@M>( MT15C\&H>9'.W$6F%U$[Zv
MUS.+5B2WX2?(=U!)(3="YA;)%BL"V(7 4E"->(($XQKW5VB%$2RB(R@*@6F1u
M<1NW9U^:N"4\\HDL*$((:'X#$1=S@P64J(38HR2JL1VXB%]8YA:O-P-28A#Pt
MU!-%-(!?LTUUH8M>(W<VZ!@MT6?B]09WD!;?9P,)E':8DAYZ=&G+88EXT3/^s
MAX HD ,N4 ,)E";+D8D&LFM8\(Q2PFK\A!#8AVH@( -M2)!24DQ(L3%^0(_Vr
MF#B\^!FA" *4ER@Q!S8=1Q #^(UMT86R0P>%,G-N@"##EWC0^!:*!F4,@@(?q
MM8O^A5<M(& 9PE\M\@8/]R)J<3O%9P/8=Q9"\@8_,!MQTB%V,B4J,HY#E'_Op
MJ"OQ:"M+D4"W4T@\21J\\9-NB 60HA9R4B=A$71R<([X9QE=B%,&D5\(6)(Eo
MAY)A-03]]5_&A@5!(#H( FUWAVT!DY1]1I>OAFT^X0(P "P8J'YW61D$\0)'n
M(0<;(0=C\ +JUQ(8V&N=!"KJEXAZB7<@, 2FUB4#49=E4)5+MQZ11GF31(QAm
M8 =]X5&NM'B)TG@Y9QB#X2E+41?R,1A;691")BZU01 N]4A?@R<CT&\MH3"_l
MV1MY= 9)!P(OX#M,I!QM4$1Z$9JG^7M#QC.ZPBUI\I;4=4O8I5W<Y8U8 %QLk
M 1%(61$EEQXT0)MD&3R(E00,P(A\ (<Y 8;@08M\9LA,B(C BQ>XABZ8A=,j
M:#4H4)-DX'F!4W=>8A??5X\S(&7V21# YT2UH1T#4X5F,%#9D9^**2**P7FEi
MF8>YF7@3>BJ[4C7#^)MV) =X)")Z="R)(7G:(0+O&9_S*0*X03 LNJ&):)UNh
MT77V%J)?X ::4P8BH#@C4)^98FXPD ,O ,X\ (/)F.I) ,94@54P)9U!YY g
M !6=TD;*00<T8*13<)I\Z4A<I!:&.5D;@1=D\ +@R42K49]&ZC!849S[5H6Wf
M@G']059A$AGT<@>HF1RW(2S_AQ04)8AHHB8#XQ5PB@7V"2<'NARJHB=N,$Y&e
M"B,>4FBK:6XQLZG;%J1&V@*@&JH'$:JD"JJC6JJHFJJJNJJE:J0Q0QT#B4AWd
M(*NT"@)24 1!0 1-4 2N^GW+ WZT*@>S*JP((9C'UZL"]A,'0:S,.JMVMY<\c
M<JR,:J0]4*W6>JW6:JNXJJM%H#'8^JW5JFF5$1AAT0*0<0*WFJN[^A$M "Q8b
M( (D$ ,T&@(;\ZX4)0([<".$]S_G1! G8! (,0=KD :B4R[IRJW0803\YA2Pa
M0@9J(:=T 8 E7+#V*\6 ;"RXB\0:K#;NJO0T67^D@( )4^\@1$:<4\H81%3z
M (A?4 1/8 0?$1+HVK%%\!$F8 )(@Y%[1FI_]H5],6CX=WR!DGR*MHR-UGB0y
MQE]-,&F)>&E;AP6;]EP=XFF)1AAL(&JMH9N9B6KUQFJ5R9>!V8WKUR&XQE+\x
M")F_!BH8.&RR I**(T-A*I3*YA;GYVS/*FU]1FW,86W85G.)QVT&]VTM\3_Aw
M=GGD9FX\@&[JMGP@X&YE$F_S5F_WIAV?6:?!%A\ 9Q.\LXOWB12!BW#CHG#Mv
M\1X.!W$5H9H5=RC9A7&'HG' YW*D1GTA-W(^87*,DG*-NW+C)Z%YTK@P][B"u
M2'.2B',@H',\)Y0_MQ9!9TA$9W0'!Q6(\IDQ1+A>IXQR('5^A10\8'58IW69t
MA@74.R[-&W5BI[UE=W98D'8+17Q:XW;R%'?:,9D&NIG0FG=[MQY]Y[E_5Q$5s
M643["G.N@7C @KK>]WB11VJB:7GCEGDOY7R?IS*$VWWF1GHM87JHMQZJYY.Lr
M]U*N!WNR1WNT>WNRN4TOM7N]]WO^DJFM2'R-.$1#6[6,Z[CPYL#0)R'3]YK6q
M)R'9AQ;;-[@)4+CC-GKA-[B[BRG V&SI)[:V1K;M=X0H '\?9C7PZQ;V]R/Xp
MYX[[QP;]Q\3_%X :V853>(!.-H$-^( 1.($5>('8X8<,"(@?.*G)(8)F0()Zo
M(3" X8F0 L:+^()3HS6= 7<UB"6.@8,ZR(-?H36]$813HL3X\SQ'B)?&")(Jn
MNAY.:%E1&!9AS,<^>(74TA):F#5<Z*)E\(61<H+M$J$PMQP"$UMHZ'IK:)!7m
M*4-PJ#,V1(=V6!>GIH?9(1YLO($=^(%(,8#^=AOZV42>UR[8D<DPDHJ/:!=:l
M-HFVIQU8C(E&FQ!_,K1X#(I+(8J-2XI?;"C;UE2IB(*BK#4E^8IY@8\B08M1k
MJ1WZ>!MFJ8**Z(M( 8P+X1 5',U4<XSIR2#OK(W^F$[3."C66$C8J)_-N(WQj
M*[;?2!#A.(YUAR'G*"^#6"[LJ)19W&V3VGZNYY#W*"COS(\!#9!H(9!HP6JPi
MC) :@H ,Z=$0"2D2N<T4*7B* KQZ1FH;B05BV79@$9*U2)+X!RPGR4$I^4LLh
MF<,OR2@Q.6"T6Y,WB2 ZV1)3Z9.; 91"69MAL09'B808#8]<?)9/68M?,]4Pg
M4)55?959.91<^2-A79([G2EEV8RV@G]I2=1KV99X];9H)9=J\;71BI="1[_2f
M%@-^"9BR)K:#26IGBIB3M9B-B06/&1"^QF^3B8%^C1^8B<1WBVV>"5^T#)T$e
M4L&E>9K-08"&J\*MN7G,L1JQ61AT0)M$&1:W64-]MIL/T9MO\)NG$9QI,)SCd
M4IS'F9P@N9Q#YIS[M1P)/!]WU3,ZJM=8D)UBEEVVVIU:_)W4+9X=YF;(Q2^Hc
ME9XDMIY=(38LZ[)&T']HX&AB80/JK:WJVJU\\!+0)!#^^AET(=,C<[ >ZRW b
M1@8 =05C('4]( )@< =C<! %[D_X7;-@,&\;$A:P6M)E$ >X1 +^+74T^MX2a
M9+$SV]YME3,[ Z2Z8I8%R:3G(2 $0K2Z^!'P6N%C4'II0*W@BJV++,A_=7S>z
M&N/7*JZ_%R'F:A'&.D3LZJ[P*J\@0*\@8*\MGJ^VD>'R?;&8,[ %JT<_#ADHy
MH+!JRP8-^[!X,*<2FTT[5[%-_J];\Z !5RY3_K' )[(M0;(<04\HZT\KVX$Mx
M^[(QZ^.(?7PVB[-8H )\#@(Y.%)HX <)0 4C! )*8"(%"7XU1@,W8&,W4%9!w
MT1*B^N<[..B%?NBZ(@/@]Q,Z( ,Y0&,B]Z0MP>>D7NJFK@*CWN<T( ,LP.BHv
M1NJ2;JJKS@(!&:J#&S-%@)5%( 49\V^R8F4[X#$OP&HJX@9<PA=<'8^"Z#V^u
MIP+E!+ZXKNN\CKG*6!C8VQ7!G@##7NU*YWTC0R1JT2*@ <AN@S 6B5>H]NR4t
M!@*Y_A_3[NMS<)39ONW%?NP$D93_G"5>P2E;_1E5TS/.WA(K (C,$0",QM.s
M\!],\ 70V!Y,(_ 9.Q\U$B2][( 0F($4^ 06>,9_^,L[ /$C$$U#1,30CIRLr
M9F"(@:*ZZ(D!7_+MONL9(RR=<@994A' ]P7P8DK-&.S;OBA_X13-6!%UYR8.q
MT0:FDH_/TS9X8FXM3^H"4H00,0:"3NAN@>F)+A8PT.DSH ,7 NEGA06BVL@(p
MPU&67O6(KNEEU>DXH ,TX&*BON>G'O>H#O>LE@.PE ,N5NJQCA!V'TO+<ZHMo
M<.O4DY1U]'1Z8>1*L_!00 52T!-B8! ;\RQ?L$-!ZD.L! <&X[]+[Q8;LT)@n
M\09I4/AV <I\/$E'T"&+S,KA)M$AP(B4)/8=B]+(0*E+_@)0/A$=_@;D_A?m
ML/B-?S63[\P]I!P')0:8#_N@P5^=_P6?'_JY7_M8,/ %;P8'GS0*S_ RX/ -l
M%_W4L^V] 8L*C'F?.5^2F.X0C_JCK_I?P/I/Y_I1-W5S0/NF/_"W3^6Y7^2[k
MGP2*S_@]4?$/J/[-3_21OOE'/>[?\F-_=L#]@9WR)?_.'^Y+?8A/__4^_H?Qj
MTA@ W S.S_!!/_K7R]R8S/!_\('5L+$T1@!#GF$8>24O9O0!P1<SP(RUVWPRi
MX_&9/AGB].(11YEZE^[L;;I/-P-2R=][>V'OJY$]JF?H=&#:FSU:S^NE.KEGh
MZI8@"+ !L(0GO3H^M_>>("R)5;:NY!6\YR)"S,WKXPO)P2;LH'FS[K;@(ZH#g
M7G!;Y($Q2/*DG\$[00CO^C4\]@'Q8@84J )"@ DD ;;DZT"@S.!4V(< VD$\f
MJ ?Y(,5#8QH//FP,3F60!&%8(81[D-IUP%_V!V/&0$)I-< 1C@ [EB4P7A,(e
M O^#4_DC%3"-0![%JH,$CQ.Z!3_(J5HA]M%VK.8W,1L(1?S$&K *FZAY0V\d
MF+$)55$G'(&)L!6V0H,$"PE>C9HS8NT6,1KSQ_UXH2K$>+XL$ G#F($"_* (c
M1(06* 440UE8*6CANFAG7:*:Z<)-U0O)F2<$A0F 4TU"#V0*3^ <BWZ";]L-b
M ;(EF]*0,"-'^.:KQ0F/0B_P0\LK@\]P"'P!*[!@OL 42 ):H%MMJK% ':+&a
MMILZ2V$PX(!SM!0JPLA035(@"#0!9@@0?:%;: (#L2 >Q(3(J2Q'3RJ&B$%%z
M"(2!(J)D $4L81?QM&7$C=CTF& 3I'L@X ;$ !9P [:*WM."SS!R&($O8 28y
M0!5860SH/5"!=.@39$ Q7&6] G>($"_1;2+$/W2&'I$],($@, 260$Y8B,7Px
M11"*!+(Q(.)R0 LHX'9(KI0X4A*16>P)5S$59L4K@ 261A'XBC'C!A1#]>5*w
MRJ)?X2^/+BUN(H9@;]@B?L! ;Y$9(H1R2#!8X3348=NPU#@SFU +==(QS(7/v
M;C$^0V!H@1[CJZH!D1$7BJ2O\<]:GF;,BNL0/CS&:DC&+!Y!XHQ30!MN.VXXu
M&7U(,G1GXE#=845S> 2> %%\ E+@"G0@(N 9;8;WLR]^15<(&<Q0PN(B8^R$t
MO?$+" &NN 2$HQ0@CM,P!A3#19,<$\)89(X5P3D^PT^(!5J6!.I]':@)J,9-s
M51Z*H5$P>H)B9 0&Y_2#XD"2X6D\Q$'D"G$4.$RCJ<(!5]#%D*HE:!.I($Z,r
M 3?@!L02 #D%Y]ZZBQG;#@EH'N:('RL?\?.'NG%3^;JE< :R73&T%[3C=HR,q
MW'$GNB%^L!%C( \\HH5BS9 /1^14OFY U(JEX"&W'64P ]\OKA"(OK(<*E1Np
M&3GKH>4%B!8X$.Y"9.!$6R U=@&>QVJF68BK9IQH:+W(305MC*18= -K8 YLo
M@3P8!)S $I".56 HCL0BL"3#XC43%)&JNJ@4/7(E$\@L9'D9L@_,P"H8 P9,n
M+,D!4F) ID"3!P(DY$NAD'Y&^(FO6H$A62"UXY UDM6 R/(W(H5#A)B%)U+Im
MJ$B%4>"BI*"(BS$C1NY(&BGL6,V-S)&004;R2-QAH3@D,QR2K<9(VJ0_D20Gl
M$'DLD]O.25JO7&0IEP.F3)70XM5@22W));TDF!23")%,,LD6*273Y*)@D[K2k
M379#."GXY"3)BW,+B+R9-_2V/-;;F<-P\0V=G #ZIBZH&&0X<_H-1O"WEL#Bj
M MR *W"%RI],N1.PX+X1N?)54/ @1+@)Q^(N''P+(&%NRG4XC_+A,%%"6QU0i
M<##(2!1GEE0<A?MO+:Z"O3A&=>-PW,:X;#;.8>8XJ#6N>-RY@IA [B (N7@Uh
MK^J5"+A72DY>,#EMB;$$%L'Z-;U$L-DE&U?E%A:6*P-<0<MQ.34'3;Y<-@ESg
M&(O,::Z4&6U6)N$#672 9K(YD^41^HG*&F]T#I_P!I7YU\Q GFMA@,+ B0$Af
M,(X\W'R:$ROR"+F JQD0% 9'<8)6DRYES3&0 *: L'@Q1L(2OA(;DTIH0 U0e
M@F#/5&U-L>DUR:;9O TP1D*L34]'8S+$VRN0/]'IN4U:=])@7=Q$"(,32@ ^d
MP7<P_D*!,TWN9"^<32B EC2;)*,ME(%I #HM^X:)XN$G,]F7'2%HD,Y+>=Kc
MPYRO;G/.P!98%QRGX@%]H1-0D<[*^6\$9C=,G1NPW+E.T&E([$#%*9VU$W7Rb
M.=7).%LGBRP*C>='Y:.!< <<25BIG+42U1#/DN<Y'R?L#!:32GP]G>=I.FTGa
M@AJ>G)- %D@G: -R $\4.3]15-V \W #,H2>?) @8 ]T'=$Y(T3 8! !0&ISz
MC,Z%XA:H9 VI9%"H:M$%C[*BD,+^Q#;V\S'VAM'9!_@1_)2?,D][VH$$BC^#y
ME&?L"M1&3#R=)^0&+IDA4@\)U#-NJ@@J.QNHH92?+>+?$!T**D(W50H-$@"Tx
M@PK0)J(>XM]@:*%^AH"64'ZT"^,G$)LXZ(:"5IQU(Q^Z0 NL(02L*[P QK4%w
MFE3(<5(V0-[<T&G8&WQGXS&A>W(/E+@MN@)+GK,$7^+3)CI!&I #:D"KPWL-v
ML@J2404));;*^Q2&711^QE%.I2T(Q&V 02PBZX B#?LZJ#70J*G#=WXT6>Wu
M1[E?]7R=D;.*5APC( .Z9Z Y [I&>*H TU!E[("4&7A[P &VF]\%;^:? Z1Rt
MC[3 A02A<$FI1P+H#5_ BG8%%! [<(9L -;( 9T@>E92.D?X0NE^$1*E-($s
MD$FY7TZ086%A8[322KH%9, L)8 YX98"4V^E-]^;[[I(U<HGB!QGNDRC:5K:r
MI3D!E=J!Y8,"JNG&<#%!:2Q$"1#05KRI- 4!X90\"(6V(DYI0.Y, ',4!'11q
MH24UJ>;(T1E<,]]HS7P*7[XF3@R;FTF?VLVSF3?=WM:+ 6WS;0)!N<E/B0O9p
MNYMH,ZL8U$[WZ7Z@60FC3- ))D@6@ /^D>%4GPJ20;Y1W7D\@X1#\$_RP@X@o
MA=*),:P JO&>MO(U!0G-R3E9YX<I</!.@J[4RME27ZKPA*G2LZ:25.L9.4DHn
MT=FI**"G3E+A24N'*B*-G:K4+0#/RSD+<>><I)[&L\"-OTA4.U#-&" N<&#>m
ML9JM^LS\#.B3#Y=2W6%4N><$\20+R &/+GV:JKX'%!9G%IV?LC.$<BK\(4&Ql
MZ /%JZ-3KVXJODH'&*@#Y53RLSZX <':"A4K%NVA\E."":DIJDBOZ&'=5%HTk
MGGY1&@@X#:33@X(?QP;0 *$@5Q&":#T/ZBU/9D'X2?A0P&UXF# S0QU5T3<8j
M\J>(,IW24RQL3I#P-*0,_(P9=11+&**5*/I:@ \XJG!@"[B!+C 83D /. $]i
M8>#%@-6YJ8+K;4 !555SBH4\*O#XZ-S;A7\4DP72QC-(NZLAS:I/M7<NTD8:h
M/%UI),VN2]656E*(UTMMZ2:-.9[4E]Y2]XI/2.GY.Z7C(I6B&U:* 5DI,96Eg
MM/230@=<&A)TZ?FKKZ:TFK(+T&=@7VDQ/:;_59ERTF#Z34$ -=VPS'1V?5AHf
MNC&NZ7\%L'0@E7)3<PI.\X:4**<@UIJ*G'2*4,EIWG"GR%2S0DW(0%&F9M7De
MEURS?MF;N<DT=Q#8!+*7#0V438*:-O7F,;$Q6\]MPDU1161[)H]0LA"UH*[-d
M&5,#MLK?[*QS3W#N1,7Y$\N@&2(8.$5@?0&BAA30S1?X%V9V/(+"+Z 'O21\c
MJ+-?DCP*OM_T#)V 1BP"!C%8\H<_^P7T+!8($+^)TW3!';78$M-BPI%+#(ZQb
MP4-K#!4M&F2TA\G1+E&.T-S0P+Q!M/'A#'K!1MO8-BU\^A.3%M1:VE&;:4LMa
MI$6>72'55EHN>&EQ":E53*:V\^"C25L&*9;'R G;+JD9!,)& PR;T',,XFA*z
M)EI:B[@4AJ*X#V@ Q6C!4+MHS\U_B;1T80=)6U$U6FE=ZUBMO/#,=L(TNT+8y
MK I[LWM6W'[$.8MG[VS2R+.@,-WV64([)@?MKBJT\9;2+EM1NZ."B:F]-1#!x
MT[8$5<ML^^W6A+2=]M/.6GZ+2_PMI.5$LG;?5MLA=7 Y JR]L@I7XM9:BIMKw
M\\)&$;A:T-?^VF#[7_I2L4U$84(KC"/G2&UK+0]PMLWAH$3;=+MJW4+BNK8 v
M5]ONV'KZ8_'I93,(598S180CZW.++!Y8LGBSR4Y4A,KV0MU%/9S ),CBG:.;u
M997NWK0!7V4'1CJZ!SC'J!GE)Z658WQ=U0JJ;)\S@;,Q8Y4\0YRG)LVN*DP t
MJ=2=^+SS)U3,H0M)L5&5[JY=;;I\W&Y67'_C@H?X7;O;&P3OZ:N[@ 'NVKN<s
MMQ3@#-<=GP>RHR[(N/I1356=I $L0 ;4V)&: /# 4A@?V8,,-(IU=_OD0^J0r
M)24/OM$_3@('$@ N^A>UM&!HTQX&#WVIYY4#UR-[^ _Z5T1RA>N= W; O-(_q
M^]'J4(#QVZ7_YO0RD]J[>E>#Z]46PE?V!MAMFB=B2.SMO)\W?>Q>ZM%[V<#Op
M#;[,EWH07QI@?$G?^4,?9F($B-.O-WS%Q^.;(N9!D](!Y6M>22_K?;Y "(RFo
MW@1 0]H%8A 6DP$R&%YH.>?*&Q80"-12O64(C D9L*6&XY;V#3(P8-Q17<1En
M?T.8YI+ &;B38!$8,+MD<.\R6;G1>;GB$*:]')G^B@'O2YU!G;21"!:8)TZ m
M-B.#62\59C;9<F%A^;8$Z+:=IIMN\4XM8=OQ8.FV77XP&Q@,S46EK)U2M1>Nl
MVWCR,-OM/'DW-6,@A HS3#'O 9@$$T/U%UC7KN@9%:=#((ABAT@T41-Q;9AKk
M5MB'EC MR ",D .HPFIA+2N&<<($?L"AFZH%2(&CX! PSA7 %0I#<[R1Q5%.j
M+%;)++(?:2($CHM 3SA"T0P)E^TC&<U_X@3%9C]E*!YNT*&!.L ?$D->% N-i
MKN1P/:W[]425)7:H9#-$<&(GX(ESHEC8>EV6[;F]IPMFPVR?6Y\\D?(:2)NZh
M.Z^G>;$_0:)T#M!C)B""GY%<JL$3ODY/7OPYK^>SL*W<,QG?3O!I^I@Q4:T(g
MBC4:4]5I3%--7X XI#)/9]0\$U<@Y,/HY)Z@<WI^8_0:CFE>X,!-Y[AT9M=Ef
M[%1Y)V%M7E/U="ICZ&>-TRMAC<>T<QM_SVX\/9QJ3D6I1Y5[*E6@BHQGZO14e
MG^SST>G)?FR/?0TP#@O"V)@AHO^V0\)"0];'W)@>'U+>^8PM:#YFR 2Y<Z)7d
MWIF-3[(D5<?8<^:-XX&9: R"DC'T"] M.-Q#(]G!/><Q_RX'OOBZN62]W$Uc
M%LJ1\Q_[Y*(<DH/R(3W(LO7I(-6%_%.I74JNQ6,T!IC154=:#>>F8C7S\.ETb
MJ5JV!C:?#G@6'9G4 (L#FB)4@T\IR,PP9@Q<I[J3 P=--L<^&8.@ "DCE]==a
M+X615&X.E67O8P+ZY'"$'$E@"BP!*<-MM7*KT[QV]2M?IJDUE@6S64;+YJ[/z
MK.49P3^WC5M6#G"YY?5EG3RIQ+%=CL%XN>CH9;Z<'_PR7.9J*, R$V;#?!T1y
MLV*6,E@9)ZXZ\TD#9L#;_(F2>4\Y+3XC-P9#-TP5C:<BO$>?XB"TAC!3'%_Yx
MV8UFNER:W7%%Z,FJ.09@UVE,FV:$;67-!?DO:\@@,3K?HX<LAO)EW#42SLR7w
MEG-:5:.>KM7YYL@<,UB-</Y9Q!G1&&?=L_F4\V=>%YOL.8=FZ=R:2;-,?L?Tv
M,SMOY^_9G>W =R[(X?DU^[KRK!K.\[9+SV]G/;>3]OR?F:'3HTL<A:[PRP1Pu
M!0('*RXZ3U LK#UH]%5DS-,UQ9MI"&[B3HRB'QV3LC%8=]7!S=SL],J##8@Et
M-3;L^F@@378#GTJ^J<6+"!"!6V4WAL(N@0)GE0Z(57,1@_+6+OD:(2HN.]5<s
MM:2+0)-F M]"EW"%*?UJ(L0!(1(5(4N+9J=:5<4T&9@"SR-1[A%_@Q12@YE^r
M'N5B'#[E("%GZ@#DVZX0^DB[3@.1C'YQEI /2$'8ZI6[,"S5U]I)RU8Z5JSIq
M0SJ,-[(Q]LC"=@B8@; *;,>J9Y,O[2LS$P1)X:'!K!/4= I2!NCHL*OI/HZJp
M%CD3N3X3Z"[:EP<>62U_*F *=*BP'%^@0!,YRGWT0;*:)_!<1)E%$B]EM5*4o
MCEQT@@(%951MD8HOZ KWA8#@%U8(S;A#6&BN#D%P((VV+G]AXL.]";< *W2%n
M5X)*D$%2E MAJSAX=)\S2*S.(.GBN2>J#!+FE5(E+0O&#/$<,ZKJ9U(A<OI6m
M=]4LK4*T=+_^U.2OJWY5,Q"P$397O1WC,&;H:L7 JW6&KUX.&\,$+.RC7)#El
M85M (.4.9*,):;.F,R654]<=)DDB@2=0!+;B$""3+N!,,U,8T!-ZJ;MF-39@k
M>; &Q"D*Z]I35([NT[29X(4/!Y'TG@"T@4#A2@11]@&=*"6?IMQ8H@2[S$>j
MTL;R'7C QP:E5Z@'5/ST7B: =?DZ)^BO#?$*\IY.GB&C(#>LR60$M'/T7*K'i
M-U#?["<H Q2D:.W*N[@U"\-;B@*T@H?H"2B U:" L&V5 ;<)J)SS."&0OBW@h
M)W %&5BS$&>6@@#IRIH]HP@L D. "@#'0$L2C=S2;D8U>RX+PQ=*!\R ZRL!g
M^HNX4$HZ)>*>L':K'5Q@L0Z&$/6=O?$T]-MG@/76$?K >D%.3FZ%731 B.Y-f
MA2,1R!> 7AM#<!-N7Z==4<#A7M"VTO$M[L;]%""W0U@!QO1W<ZKBO4+@0(%+e
MWM!A>3MDZ/"\$_?Q9=QUP'%;[S*P F@ AJ6TVQO,K!#\(3.4=W4>Q\S;<"/Nd
M:2R]4P#Z5M\/YWI'T=\]O&.&\2L*?UIB9.[-/2:/L@H,U)S*^(FXA]F,*$/@c
M/KY;XX"[ 3Q@^D05%,2\ZDTBZVN]W0KY-NX&W/;[0 \SCZR_H7=N/=_4^W$'b
M\#(@N2GW:YZ&EWN!+Z!ZZ[F!C5D*W?";3[I0'6JZ10#JUFB@8Z&P[H3FNHE,a
MAXC="91V!RGMW0IQM^Z>%;W;)Y0^(3D-";<*: .=HXG(C,%]OP-'_B;?^_M[z
M]N\M $]PP/M&E7MU&H-QOL 09 8"G /5<%=_ZHO- D0 '2^L]9.* V;H,$#'y
MP&I 7-\)/3Q9Q%8-V<!;X5?/(QC[ D;^A(Y0Q#DF^H4!G%A&,EKSB3'HX_<x
M9$.'3B[&HRG-#N7Q$S;+YJX@9> X#@?CGEQF1 XK\ 60 !% "P,/,S-J5!XSw
M-+DKW]M4S@VX$*.Q+DIL&^+ED!R6E_+Q *MLMPCUY7B8E']RV1,#QH S!]ZHv
MO$__Z>F:S9]TE"X>:,,\7/,(CC+_-"C?Y/+TD5.L^(G*N??Q7D@$B8RK\,*-u
MQEVX=H7AZ;MZSW#L_<:GH3OWWO4[?)?Q%9Y;G7<:C]Z*VW_'\/7=OONY,'3Gt
M]!M\RW/33-";=_GFWPG]?^MSB+,"!O@XWU0:/(%C;LV]PX/E1P_>)/R!K[O7s
M+,$3&@7G$A8\U9"^#%[.3=_<%JT@O :@3Y_]!'$Q3Q+A9?>W=IO1L1D.^@O7r
M"[F\G \&-PVE@V=+YQ)!>7O[\(1V$"(?:]AY-]Q)<X6F'B16@%4W2XY0E*, q
M;0X";A9T8.I1NEI)AR%0'4HI8FW-/72OTAP\\@:,^CU'ZB]FI#/P8#D84 "7p
M9M*Q49R:APBDUTMZ0LR=PA"M^[JS41X:8EA/YT+=N@)J.0K!!^M<+^KV7'I/o
M;L6-P)>Z-P^>$]TZ8ZZ>\+FAN@.W7!/<)SA"PJ?-W3J5?!Y=&P^0;?@IV8OVn
M%SC:D>,HT^K6_*&-KHCV)"6Z(ISHF)$A-"_7:W0&:<J:JI^KB5=Q*[;1H9@&m
M=#JT\&4[ZQB] 1^G[?UFKTS" >P9"" J(^T2WYDX)OD&#]%&-F(-B(&Y?$HCl
M2NZ=(JJ';W@&FO,$18YZ9^^GX;V/@!8P%N)[ M@/@J:1B*-])=[%QQ?1'D.@k
M$"Z!*0 %=MT2J!*D-SUYWR\B-<Y[ZU8ZE#)+%F0 DD:DQJ/)(V7UBEPR-8K=j
M6QT.>)NQ>L-?$?"^X<>[1BSO_WTO: [T+H36.Z5M[V) OX^%5QCCY[M>B!(Ni
MYK[?^/PN1OC[]+$9,3[ #Z4[0.#%KX'/'B,@P>_!!=_@I<"#;_$FPO4>7?,^h
MXR^\@,CPX=W)[X\.+]_)%<\H?R(^T53B@%HW?_MW5\4T^A/3#!NSHF?QUH71g
M6+-N-O<X[XIA@'3W*EVONG==G'@#,&]/3*-0M]!SU'P=U!'K%AT,,&"W?]%:f
M'?&TML"&V!.[#%3L,W"QCS+H--ML_I:L9KEMJG$B@.2H>8^GXP#,.QJ&-NI4e
M[V0 22:-.T@%A$"8- *[;DR6R6(([C:8T#N3MI) 9\H@D08L-*LI"EW!(*QId
M5)CI-_W%EAD:^U.?=JB(AK9J&7#>GRFJI_3C!AU^SBQ$ 2<@=D/7?)6O@+C3c
MPRE$(D2QDFM#HDUT*\X0-YH&2/>3M% 1 KI713"BW0OW=Y_HFJZ-D1*"'O(Zb
M/8/$ GH@HD^[IW0SR8F#4I9B=(&C2V( 1QXA+K#A$WZ>_R@//Z!>8KLC\0L<a
MQ2>]%O\$R>\C1)?^G!@@^9LIYTU\]A[R%0680?ES0KGYT[X<,Z!57K!):J 'z
M) ";?UX*\JU0*<\"Y^M\NM06N )=L6) ?R30E2I(\ U^K,ZF"K^N-/PY ?.=y
M1<<' 1\?X=--C&]W!"K'/R@>O^+3)>Y=]4U^U5?Y8?_&MWRLP% R?LQG3D?Hx
M6:2+H;O2UQW/%_H['];DA:6_[GY^&@CZ8B#GA_RB3P:.OM\W'2OB\8I1G.B;w
M6QW>GGM:/^H?E,!&]2F_U9_\6%_LA_JC?XK- .??3!*?(&1]4SKV1[[E-_N6v
M7^6+?I9/EUP^)K8[,C_QTWQ@,@5N?1+ EZ:<AQ]DS#S@0D>H"LQ1%0U_M%*u
MGZ'^G%CXG[_RVYV(C_E'O_'OFA_%\NM3RQ_Z,S_(+_T()/FW$:UP\E/_=SCZt
G'S] /'_7K_UC_]68^[*?A+N VG]!;G_N7R4$@??_CG47$8"_ B@Gs
r
end
--[0029]--
[0030] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 11/10/91 20:34 (39 lines)
Subject: shoelace patch #2
Date: Sun, 10 Nov 91 16:57:48 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
There is a big difference between floppy the device numbers on linux and
on minix. In particular linux has fd0 as 0x208 while minix uses 0x200.
ie. linux /dev/fd0 == minix /dev/fd0-dshd5in
The following patch will keep linux from using 0x200, which it doesn't
know about and instead use 0x208 and 0x21c.
Apply this after all other patches.
pmacdona@sol.uvic.ca
*** shoe.c.bad Thu Nov 7 08:43:30 1991
--- shoe.c Thu Nov 7 08:52:27 1991
***************
*** 638,646 ****
longjmp(errjmp, 1);*/
unsigned *myptr = (unsigned int *) (&((char *) bp)[508]);
char *myroot = getenvs(SaveConfigPtr,"rootdev");
! if (strcmp(myroot,"bootdev"))
! *myptr = atoi(myroot);
! else
*myptr = 0;
if (*myptr == 0)
{ if (diskcode)
--- 638,645 ----
longjmp(errjmp, 1);*/
unsigned *myptr = (unsigned int *) (&((char *) bp)[508]);
char *myroot = getenvs(SaveConfigPtr,"rootdev");
! *myptr = atoi(myroot);
! if (0x200 == *myptr)
*myptr = 0;
if (*myptr == 0)
{ if (diskcode)
--[0030]--
[0031] daemon@ATHENA.MIT.EDU (Marc CORSINI) Linux_Activists 11/10/91 21:10 (14 lines)
Subject: help installing linux on hd
Date: Mon, 11 Nov 91 03:07:38 EST
From: corsini@geocub.greco-prog.fr (Marc CORSINI)
To: torvalds@cc.helsinki.fi, linux-activists@joker.cs.hut.fi
In-Reply-To: Linus Benedict Torvalds's message of Mon, 11 Nov 1991 01:58:27 +0200 <199111102358.AA06456@kruuna.helsinki.fi>
This is it, there is no hdX with X in 5..9, there is at 0 and 1
ps 0 and 1, tty, and some pat devices ??
aarrrggghhhh :-(
it seems that i have to keep on "playing" with linux OR <any idea
wellcomed except the "do a partition on ur big hd1">
[mmc]
La vie est un long fleuve tranquille ou il ne fait pas bon ramer
--[0031]--
[0032] daemon@ATHENA.MIT.EDU (Bruce Evans) Linux_Activists 11/11/91 01:06 (46 lines)
Subject: Re: Looking for a FAQ
Date: Sat, 9 Nov 91 18:16:35 +1100
From: Bruce Evans <bde@runx.oz.au>
To: Linux-activists@joker.cs.hut.fi
Ted Ts'o writes:
>N1) The Minix demo disk which you can get from plains.novak.edu only
>works for 5.25" disks --- this isn't documented anywhere, but I spent a
It should work on 720K disks. The Minix /dev/fd0 does not support 1.44M,
/dev/PS0 is needed for that, and the demo disk has fd0 hard-coded.
>N2) The numbering convestion for partition in Minix and Linux are
>different!!! The way I dealt with it is to use a disk editor to write a
The Minix hard disk drivers sort the partition table :-(. This problem
goes back to DOS 3.0 (3.2?) and before, which have a different idea
about the partition order than 3.3 (but I think it is just a straight
reversal, not a sort).
N3) ...
>It would be nice if Linux understood the DOS extended partitions, though.
>[ Note: whoever decided that IBM hard disks only needed 4 partitions
>should be condemned to recabling machine room floors; CP/M on
Kai Uwe Rommel says that extended partitions have worked to solve this
problem since DOS 3.3. I wonder where this is documented.
>Q1) On nic.funet.fi, I found sources to shoelace, which seems to be a
>way to boot Minix without needing a floppy boot disk. Is anyone working
>on something similar for Linux? The other interesting thing about
Since Linux uses the Minix file system, the shoelace binaries should work
immediately. The sources probably require changing because of different
header files.
>shoelace is that it came with a file "shoefsck.c" which seems to contain
>the necessary code filesystem checking for Minix. However, there's no
>copyright notice on that file, and no email address for the author,
This file was copied from the Minix fsck.c so it is presumably copyright.
Most of the rest of shoelace could be used by Linux without copyright
problems.
Bruce
--[0032]--
[0033] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 11/11/91 03:28 (24 lines)
Subject: help installing linux on hd
Date: Mon, 11 Nov 1991 10:24:45 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
Marc CORSINI: "help installing linux on hd" (Nov 11, 3:07):
>
> This is it, there is no hdX with X in 5..9, there is at 0 and 1
> ps 0 and 1, tty, and some pat devices ??
> aarrrggghhhh :-(
> it seems that i have to keep on "playing" with linux OR <any idea
> wellcomed except the "do a partition on ur big hd1">
Ok, here's one possibility: mount the /linux/ root-floppy from the
minix-demo, and use the devices on that.
mount /dev/fd0 /dir
mkfs /dir/dev/hd6 partition-size-in-K
^___ 6 or 7 (minix numbering)
This should work. (I hope). You should still check which partition is
which (unless you don't care).
Linus
--[0033]--
[0034] daemon@ATHENA.MIT.EDU (Kurt Wachmann) Linux_Activists 11/11/91 04:24 (55 lines)
Subject: About mvdir and linking directories
Date: Mon, 11 Nov 91 10:04:54 +0100
From: kw@dde.dk (Kurt Wachmann)
To: Linux-activists@joker.cs.hut.fi
In reply to your discussion about keeping track of parent
directories in the kernel; the answer is: DON'T.
The filesystem should work like this: Directories may be lin--
ked and unlinked by the superuser only. The filesystem code in
the kernel should not check the correctness of these opera--
tions, except for the root priviledge. The superuser is suppo--
sed to know what (s)he is doing.
The file "." is a link to the directory in which it resides,
and ".." is a link to the parent directory. This should at
least least be true after an mkdir operation.
When you issue the mkdir() system call, it should make the
directory and the "." and ".." before it returns.
The mvdir command must make a new link from ".." to the parent
directory, this is not a kernel task. The SVID manual also
states, that neither the old or new directory may be a subset
of the other. This must be checked by mvdir. The kernel should
check that the link is possible, i.e. the files are on the
same filesystem.
And by the way - yes you can have several links to a directo--
ry, though this is normally not wanted.
So the approximate code for the mvdir command is something
like this:
mvdir( old, new )
check uid == 0
check that old is not a part of new
check that new is not a part of old
link new to old - if this fails it's probably diffent
file systems
link the ".." to the parent of new.
unlink old.
Note also, that the rename() system call, should be able to
rename a directory, but not to move it.
I guess I have said enough for now - and that it makes some
sense. I do have one question though: Is there a reliable
ftp-mailserver out there? I can't do ftp, and I would like to
join your effort to make a PD real operating system.
Kind regards
Kurt \/\/achmann, M.Sc. EE/SE
--[0034]--
[0035] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 11/11/91 04:27 (76 lines)
Subject: Re: More answers
Date: Mon, 11 Nov 91 04:21:55 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
Cc: Linux-activists@joker.cs.hut.fi
In-Reply-To: Linus Benedict Torvalds's message of Sun, 10 Nov 1991 18:09:31 +0200,
Reply-To: tytso@athena.mit.edu
Date: Sun, 10 Nov 1991 18:09:31 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
darken.@cs.yale.edu:
> 1) mv doesn't seem to move directories properly. It looks for
> something called mvdir and dies. I want to fix this right away,
> so I'm goin to start working on it unless one of you drops me a
> line and explains what stupid thing I've done.
This is a possibly deficiency in the linux kernel. I don't allow
links/unlinks to directories, as keeping track of the parent is too much
work. I /think/ it's impossible to allow a hard link to a directory,
but I'm not sure. Anybody with ideas is free to mail me.
Actually, some friends and I spent a lot of time discussing the very
topic tonight. What we basically got out of it was this: 1) Allowing
links and unlinks to directories are a bad idea; it can potentially
completely ruins the fundamental assumption that the filesystem is a tree.
2) The right way to do this is with the (as yet unimplemented) rename
call. However there are a number of interesting locking issues that
come when you try to implement this cleanly.
There are a couple problems which rename has to check. If it is moving
directories around, then the source directory must not be a parent of
the destination directory. (If it were, there would be no way of
referencing that part of the filesystem after the rename.) It could
check to make sure this was the case, but unless you actually lock the
directories against another move, there could be a race condition which
could cause the source directory to be a parent of the destination
directory after the check but before the actual reaneme operation, and
bad thing would happen. There are also other race conditions (not as
sexy) that happen when two processes try to rename a directory at the
same time, and when an rmdir attempts to remove an otherwise empty
destination directory.
We talked about trying to fix this problem by adding a minimal set of
locks which would be required. One included just using a top-level lock
on the rename system call, so that only once process could call the
rename() call at any one time. This solved the problem, but at the
cost of losing parallelism for the rename call. We also discussed some
other designs, such as locking up to a common ancestor in the tree,
which might also work.
-------------------------------------------------
Speaking of hard disk corruptions, I've found an easy way to get Linux
to corrupt the hard disk. Simply follow the following instructions:
1) Copy a large compressed tar file (I used snapshot 312 of
gcc20.tar.Z, found on dg-rtp.dg.com) to your linux disk. I used kermit
to get it over to my PC and mcopy to get it over to my Linux partition.
2) Run "compress -d < /tmp/gcc20.tar.Z |tar xvf -"
3) Afther this completes (it will take a long time), run fsck and
notice that there are alot of unused inodes and zones which are marked
as used, and one or two inodes which marked as being free, but which are
actually being used to point data on them.
4) Do a "ls -lir" on the new directory created by tar. This will
almost always cause the kernel to panic: freeing inode: already free.
I suspect it has something to do with the extreme amount of cache
thrashing that has going on because gcc.tar.Z was a huge file. I
haven't had a time to look at it, but people should be aware that a
problem exists.
- Ted
--[0035]--
[0036] daemon@ATHENA.MIT.EDU (Kurt Wachmann) Linux_Activists 11/11/91 08:06 (22 lines)
Subject: About mvdir and linking directories
Date: Mon, 11 Nov 91 11:35:36 +0100
From: kw@dde.dk (Kurt Wachmann)
To: Linux-activists@joker.cs.hut.fi
In reply to tytso@ATHENA.MIT.EDU:
You can let the system call rename() do the trick for you, and
forbid linking of directories - correct. If you forbid linking
of directories, you see if one directoy is an ancestor of the
other *by looking at the names*. That will take away your
race condition for free.
We do however still have to avoid concurrent directory moves
from the same source directory - and into the old tree.
open()'s etc. are ok (I think), they must be atomic, and will
fail or succeed depending on how far the rename() operation
has come.
Kind regards
Kurt \/\/achmann, M.Sc. EE/SE
--[0036]--
[0037] daemon@ATHENA.MIT.EDU (Nicholas Yue) Linux_Activists 11/11/91 08:36 (16 lines)
Subject: Standard Conformance?
Date: Mon, 11 Nov 91 21:33:33 WST
From: nicholas@cs.uwa.oz.au (Nicholas Yue)
To: Linux-activists@joker.cs.hut.fi
G'day,
In Makefiles, there is usually a choice where we can specify what system
we are compiling the given sources, e.g.
SUN, USG, SGI , SYSV3, SYSV4, etc,...
My question is, what system is Linux conforming to? I read about POSIX
somewhere, but what does that means? USG? SYSVR4?
Thanks In Advance
nicholas@cs.uwa.oz.au
--[0037]--
[0038] daemon@ATHENA.MIT.EDU (Patrick L. McGillan) Linux_Activists 11/11/91 08:41 (15 lines)
Subject: floppies
From: Patrick L. McGillan <pmcgilla@hp.uwsuper.edu>
To: linux-activists@joker.cs.hut.fi (Linux User Group)
Date: Mon, 11 Nov 91 7:37:55 CST
Hi all,
Yes, Linus, I did format the disks under dos. In fact I made a bootable
and could not corrupt it with any kind of write action. Also tried
360k and 1.44 meg disks.
--
Patrick L. McGillan
Computer Systems Specialist
University Of Wisconsin Ph: (715) 394-8191
Superior, Wisconsin pmcgilla@uwsuper.edu
--[0038]--
[0039] daemon@ATHENA.MIT.EDU (Patrick L. McGillan) Linux_Activists 11/11/91 08:55 (14 lines)
Subject: more on floppies
From: Patrick L. McGillan <pmcgilla@hp.uwsuper.edu>
To: linux-activists@joker.cs.hut.fi (Linux User Group)
Date: Mon, 11 Nov 91 7:52:51 CST
Hi all,
I also note that a known dos disk with files on it gives back an error
with the usual stuff and a last line of mdir: Cannot initialize 'A:'
--
Patrick L. McGillan
Computer Systems Specialist
University Of Wisconsin Ph: (715) 394-8191
Superior, Wisconsin pmcgilla@uwsuper.edu
--[0039]--
[0040] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 11/11/91 08:57 (55 lines)
Subject: rename, file system errors
Date: Mon, 11 Nov 1991 15:53:55 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
kw@dde.dk (Kurt Wachmann), tytso@ATHENA.MIT.EDU (Theodore Ts'o) et al:
> Rename needed [rephrasing]
Yeah, it'll be implemented. Hopefully not even by me :-), as
darken-christian showed some interest. I'll do it if nobody else does,
but it will take some time. Currently you can always use "tar" and
"rm -rf" to move a directory (but look out for a full filesystem).
There are quite a few problems with rename, most of which have been
mentioned here (and that's why I left rename unimplemented :-). I
wouldn't say checking the filename is a good idea: it breaks when linux
gets symbolic links. I think the easiest way is to move downwards from
the "to"-directory via ".." until one hits root (or a mount-point) or
the "from"-directory. It shouldn't be hard, it's just SMOP.
tytso@ATHENA.MIT.EDU (Theodore Ts'o):
> Speaking of hard disk corruptions, I've found an easy way to get Linux
> to corrupt the hard disk. Simply follow the following instructions:
[ "Nice" little script deleted. ]
Happily, things aren't that bad (I think). I don't think it's a
buffer-cache problem (which is hell to find - lots of race conditions
etc. I kno - I had those kinds too), but a problem with handling "out
of disk space". That's still bad, but easier to spot. Could you
(tytso) check if the partition filled up? It's probably a bug in one of
tha namei.c-routines which want a new block, and crap out if they cannot
get it. I'll look.
I just tried copying my gcc-1.40 directory using tar, and it moved 9MB
of diskspace quite happily from one drive to another (ok, it took a
while, but no fsck errors).
somebody (my mind is going..):
> Do I use USG, SYSV or what when porting?
I've used USG/SYSV when porting everything, and have had no real trouble.
The biggest trouble in minix when porting was with the bad "termios" (ie
minix has no such thing). Linux has a relatively complete termios, so
that's no problem (and termio also works).
Thinks that need very SYSV specific things like shared memory or
whatever, are of course not currently possible to port easily.
Linus
PS. I'm still wondering about the floppy drivers. Has nobody else had
any problems with them? I haven't had an IO error in ages, and it seems
a bit weird as the floppy interface should be relatively similar across
all PC-clones. Oh, well, I'll look into it. I hope it isn't some timing
problem (which are "somewhat" difficult to spot).
--[0040]--
[0041] daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 11/11/91 12:58 (17 lines)
Subject: C-Compilers on a 2Meg-Machine
Date: Mon, 11 Nov 91 18:54:57 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
To: linux-activists@joker.cs.hut.fi
Hi Linuxers!
I recently ported CvW's C386 to Linux. I can do development on a 2Meg-System
too. (BTW Linus, that caused the gcc-errors..)
But C386 is non-ANSI. Now are we
a) Giving it an ANSI front end ? (any gurus out there?)
b) put an #ifdef _STDC_ in all includes
c) Forget about the 2Meg-machines (NO, PLEASE NOT:-()
What do you thinnk about it ?
Robert Blum
--[0041]--
[0042] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 11/11/91 13:55 (47 lines)
Subject: Re: C-Compilers on a 2Meg-Machine
Date: Mon, 11 Nov 1991 20:49:07 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
In-Reply-To: Robert Blum's message as of Nov 11, 18:54
To: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum),
Robert Blum: "C-Compilers on a 2Meg-Machine" (Nov 11, 18:54):
>
> I recently ported CvW's C386 to Linux. I can do development on a 2Meg-System
> too. (BTW Linus, that caused the gcc-errors..)
Wow. Things are moving along...
> But C386 is non-ANSI. Now are we
> a) Giving it an ANSI front end ? (any gurus out there?)
> b) put an #ifdef _STDC_ in all includes
> c) Forget about the 2Meg-machines (NO, PLEASE NOT:-()
a) Not very easy (mild understatement).
b) I *HATE* unclear include-files
c) No way.
I'd like to propose a following change to /usr/include/*:
Add a directory "/usr/include/non-ansi", and to each file (example
ctype.h, cdiff type adding):
#ifndef _CTYPE_H
#define _CTYPE_H
+ #if !defined(__STDC__) && !defined(__GCC__)
+ #include <non-ansi/ctype.h>
+ #else
... old ctype.h unchanged (except for the bug-fix, see below)
+ #endif /* __STDC__ */
#endif /* _CTYPE_H */
That way we can keep the non-ansi headers distinct. Anybody got
something against this? I'd suggest Blum do all the hard work :-) and
set cdiffs somewhere? No? The non-ansi files could be a part of the C386
package, and not everyone would need them.
At the same time you can correct a bug in ctype.h (I don't remember who
noticed this one, but it sure wasn't me): tolower has a '+' where there
should be a '-'. I never used it, so I never noticed. Urgh.
Linus
--[0042]--
[0043] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 11/11/91 14:06 (35 lines)
Subject: shoelace patch#3: put environment ptr where linux can find it.
Date: Mon, 11 Nov 91 10:58:22 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
I know, I know. Three patches in 24 hours... I plead end of term
instability. The following one line patch puts the environment
offset relative to the shoelace corpse which is located at segment 0x80000.
Thus, an offset of 0x1234 would put the address of the env at 0x81234.
This offset is stored at location 0x90506: ie. in the word before the
root device word (508) in the bootsect.s corpse.
By including the shoelace header file shoeconf.h, the linux kernel
could now read in any of the environment variables it wanted (including
scr_cols and scr_rows ;-)
BTW: Given Bruce Evans comments about shoelace:fsck ties to minix,
we may wish to remove it from the code. Who wants a facility that
only works with ~20Meg or less partitions anyways :-)
pmacdona@sol.uvic.ca
--PULL_TAB_HERE -------------------------------
*** shoe.c.bad2 Thu Nov 7 09:33:34 1991
--- shoe.c Thu Nov 7 09:45:28 1991
***************
*** 650,655 ****
--- 650,656 ----
else
*myptr = 0x21c;
}
+ *--myptr=(unsigned int)SaveConfigPtr;
Linux = 1;
LoadPoint = 0x90000;
bpinx = 0;
--[0043]--
[0044] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 11/11/91 14:18 (82 lines)
Subject: Re: rename, file system errors
Date: Mon, 11 Nov 91 14:12:19 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
Cc: Linux-activists@joker.cs.hut.fi
In-Reply-To: Linus Benedict Torvalds's message of Mon, 11 Nov 1991 15:53:55 +0200,
Reply-To: tytso@athena.mit.edu
Date: Mon, 11 Nov 1991 15:53:55 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
gets symbolic links. I think the easiest way is to move downwards from
the "to"-directory via ".." until one hits root (or a mount-point) or
the "from"-directory. It shouldn't be hard, it's just SMOP.
Well, the problem is that another rename() could be happening while you are
traversing up the tree (towards the root) checking to see if you hit the
"from" directory. The simplest case where you will have a problem is if
rename(/a/b, /a/c/d) and rename(a/c, a/b/e) are running in parallel.
Another problem is that two rename()'s could try to move the same
directory to two different places. Now, locking takes care of this
quite nicely, but the interesting CS question is how little locking can
you do and still be make things be "correct." Or, is there some way
that we can finesse the issue without using locks?
tytso@ATHENA.MIT.EDU (Theodore Ts'o):
> Speaking of hard disk corruptions, I've found an easy way to get Linux
> to corrupt the hard disk. Simply follow the following instructions:
Happily, things aren't that bad (I think). I don't think it's a
buffer-cache problem (which is hell to find - lots of race conditions
etc. I kno - I had those kinds too), but a problem with handling "out
of disk space". That's still bad, but easier to spot. Could you
(tytso) check if the partition filled up? It's probably a bug in one of
tha namei.c-routines which want a new block, and crap out if they cannot
get it. I'll look.
No, my partition didn't fill. Originally I tried it with a partition
size of 65535, so I had lots of free space. I then tried it with "mkfs
/dev/hd3 32768"; the problem still happened. The second time, I noticed
the following things:
* /etc/fsck reported that the disk was completely happy before I ran
"compress -d < /tmp/gcc.tar.Z | tar xvf -"
* During the untaring process, there was at least one time when tar
printed somthing like this:
./stbout.h
tar: Cannot change owner of stdbout.h: ENOENT
tar: Cannot change modification times of stdbout.h: ENOENT
tar: (One more error message which I don't remember): ENOENT
This tends to indicate that the file just disappeared after tar closed
it, so it couldn't adjust the ownership and mod times. Perhaps a
directory update is getting lost?
* After tar finished, I sync'ed the disks and tried running /etc/fsck
again. This time, it reported 10 "Inode not in use, nlinks=0,
counted=1" errors for 10 consecutive inodes starting at #82, and 9
"Inode in use, nlinks=1, counted=0" errors for 9 consecutive inodes
starting at #143. This persisted after I logged out and reboot the
system.
* Upon reboot the disk statistics which were printed were:
12876/32768 free blocks
10461/10930 free inodes
1500 buffers = 1536000 bytes buffer space
free mem: 14680064 bytes
* If you run a "ls -l" on the directory into which tar placed files
(where stbout.h disappeared), you will get a kernel panic: "free_inode:
bit already cleared".
I wonder if the problem is due to the fact that I was using the same
drive for both source and destination for the "compress -d | tar xvf -"
pipeline. I did notice that it was very slow, presumably because there
was a lot of buffer thrashing going on.
- Ted
--[0044]--
[0045] daemon@ATHENA.MIT.EDU (Lars Wirzenius) Linux_Activists 11/11/91 14:49 (41 lines)
Subject: Header structure for mixed Classic/ANSI
Date: Mon, 11 Nov 91 21:45:18 +0200
From: wirzeniu@cs.Helsinki.FI (Lars Wirzenius)
To: linux-activists@joker.cs.hut.fi
Linus:
> Add a directory "/usr/include/non-ansi", and to each file (example
> ctype.h, cdiff type adding):
>
> #ifndef _CTYPE_H
> #define _CTYPE_H
> + #if !defined(__STDC__) && !defined(__GCC__)
> + #include <non-ansi/ctype.h>
> + #else
>
> ... old ctype.h unchanged (except for the bug-fix, see below)
>
> + #endif /* __STDC__ */
> #endif /* _CTYPE_H */
>
> That way we can keep the non-ansi headers distinct. Anybody got
> something against this? I'd suggest Blum do all the hard work :-) and
> set cdiffs somewhere? No? The non-ansi files could be a part of the C386
> package, and not everyone would need them.
Wouldn't it be easier to make two header trees:
/usr/include/ansi
/usr/include/classic
and either use the -I option to select which tree is used, or put
files like this:
#if __STDC__ == 1 /* not: not just ifdef; see comp.lang.c FAQ */
# include <ansi/foo.h>
#else
# include <classic/foo.h>
#endif
into /usr/include.
This would IMHO be more neat than your proposed solution.
--[0045]--
[0046] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 11/11/91 16:12 (153 lines)
Subject: Weekend hacking and other randomness...
Date: Mon, 11 Nov 91 16:08:15 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: Linux-activists@joker.cs.hut.fi
Reply-To: tytso@athena.mit.edu
Over the weekend, I've managed to put together some stuff which other
people might find useful. First of all, I've managed to build GNU diff,
GNU sed, Larry Wall's patch and tr. They pretty much built without
needing to make any changes --- the only real problem which I
encountered while trying to build them is that the configuration progam
which you need to run to build sed itself wants to uses sed to build the
Makefile. Oops. :-)
In any cases, if anyone wants to just snarf the binaries, they can be
found via anonymous FTP on TSX-11 in /pub/linux/binaries. If you want
to submit some something Linux-related for the FTP site, you can put the
file(s) in /pub/incoming and send me a quick note describing what you
left there.
--------------------------------
I've made a quickie change to the tools/build.c program so that it can
optionally take a fourth argument which specifies what the root device
should be. Add to that a definition in the makefile for $(ROOTDEV), and
customizing kernels for a particular system becomes a snap! Since the
patch isn't that big, I'll include the diffs at the end of this message.
------------------------
Other comments; maybe I'm doing something stupid, but I can't seem to
get mtools to want to write a file from Linux land to MS-DOS land. The
other way works fine, but when I try something like "mcopy foo.tar
c:foo.tar", the program just returns to the prompt without actually
performing the copy. Another bug: if you do "mcopy c:foo.tar .", the
file which will be created in your directory will be "???.???".
So you can't just specify a unix directory as the target; you actually
need to give the name that you want in the directory or the name will be
unrecognizable. This also happens if you try "mcopy a:*.* .". Final
problem: the program will hang if the destination file already exists;
you need to control-C out of it when this happens.
----------------------------
Also, trying to compile RCS for Linux apparently tickles a compiler bug
in gcc. When you try to compile ci.c, gcc gets an "unrecognizable insn"
error. When I mentioned to a friend of mine who is a gcc expert, he was
a bit surprised because he thought all of these bugs had been fixed in
version 1.40. His suggestion was that I should try compiling GCC 2.0,
which led me to discovering the filesystem corruption problems. (Which
are very repeatable, by the way; I can start with a newly mkfs'ed
partition and corrupt it just by untaring GCC 2.0.)
Another problem which was uncovered by trying to compile RCS: In
sys/wait.h, the definition for WIFEXITED(s) is missing a close
parenthesis at the end of the line.
------------------------
That's all for now.... the patch tools/build.c are below.
- Ted
*** build.c.orig Sat Nov 9 21:50:51 1991
--- build.c Sat Nov 9 22:23:13 1991
***************
*** 17,24 ****
--- 17,27 ----
*/
#include <stdio.h> /* fprintf */
+ #include <string.h>
#include <stdlib.h> /* contains exit */
#include <sys/types.h> /* unistd.h needs this */
+ #include <sys/stat.h>
+ #include <linux/fs.h>
#include <unistd.h> /* contains read/write */
#include <fcntl.h>
***************
*** 25,30 ****
--- 28,36 ----
#define MINIX_HEADER 32
#define GCC_HEADER 1024
+ #define DEFAULT_MAJOR_ROOT 3
+ #define DEFAULT_MINOR_ROOT 6
+
/* max nr of sectors of setup: don't change unless you also change
* bootsect etc */
#define SETUP_SECTS 4
***************
*** 46,54 ****
{
int i,c,id;
char buf[1024];
! if (argc != 4)
usage();
for (i=0;i<sizeof buf; i++) buf[i]=0;
if ((id=open(argv[1],O_RDONLY,0))<0)
die("Unable to open 'boot'");
--- 52,85 ----
{
int i,c,id;
char buf[1024];
+ char major_root, minor_root;
+ struct stat sb;
! if ((argc != 4) && (argc != 5))
usage();
+ if (argc == 5) {
+ if (strcmp(argv[4], "FLOPPY")) {
+ if (stat(argv[4], &sb)) {
+ perror(argv[4]);
+ die("Couldn't stat root device.");
+ }
+ major_root = MAJOR(sb.st_rdev);
+ minor_root = MINOR(sb.st_rdev);
+ } else {
+ major_root = 0;
+ minor_root = 0;
+ }
+ } else {
+ major_root = DEFAULT_MAJOR_ROOT;
+ minor_root = DEFAULT_MINOR_ROOT;
+ }
+ fprintf(stderr, "Root device is (%d, %d)\n", major_root, minor_root);
+ if ((major_root != 2) && (major_root != 3) &&
+ (major_root != 0)) {
+ fprintf(stderr, "Illegal root device (major = %d)\n",
+ major_root);
+ die("Bad root device --- major #");
+ }
for (i=0;i<sizeof buf; i++) buf[i]=0;
if ((id=open(argv[1],O_RDONLY,0))<0)
die("Unable to open 'boot'");
***************
*** 72,77 ****
--- 103,110 ----
die("Boot block must be exactly 512 bytes");
if ((*(unsigned short *)(buf+510)) != 0xAA55)
die("Boot block hasn't got boot flag (0xAA55)");
+ buf[508] = (char) minor_root;
+ buf[509] = (char) major_root;
i=write(1,buf,512);
if (i!=512)
die("Write call failed");
--[0046]--
[0047] daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 11/11/91 17:58 (72 lines)
Subject: Diversification of development
Date: Mon, 11 Nov 91 23:56:40 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
To: linux-activists@joker.cs.hut.fi
Hello Linuxers!
Sorry for my last mail being very short, but writing mail at 300 baud *IS*
a pain. Now, there are a couple of things to be adressed.
1) Linux is undergoing a process of being spread across several countrys/
FTP-servers. I recently read in a posting: If you want the blah binaries,
just connect to the foo-server, etc.
To keep a common environment for Linux, especially now where it is still
say a bit more than beta, I'd suggest using a common set of tools. It
is a pain to search a bug in the kernel which is only caused by a
different cpp or else. To create this set of common tools, I am offering
the following to the Linux-community:
Everyone who creates a new binary and makes it/the sources to it available
to the net (via FTP) sends mail to me.
I then take these things (sources and/or binaries) and make them available
on tupac-amaru in a directory called beta. If the Linux community
likes these tools (discussion on this list ?), I will move them to
other subdirectories based on the subject. If the tools are replaced by
better ones/ prove as not useful for the whole community, they will
vanish from the server.
If you would like such a service or want it organized in another way or
anything else, just send mail to me or linux-activists for public
discussion. If the keepers(?) of the other two or three servers are
willing to provide this service too, we could exchange. (Less work
for me, more for you:-).
BTW,arl: The things I said about nic (NO MORE NIC PLEASE,etc.) weren't
meant as a flame. You *ARE* doing a very good job there. But I just
didn't know you were undergoing some reorganization, and I never have
more than 1K/s to nic funet.fi.
OK, feel free to mail me about the whole thing
2) I want to remind you about the Questions for a FAQ: What would you like
to see?
3) Header-Files: I like the idea with /usr/include/classic and /usr/include/ansi
with small files in /usr/include. If you like this too, I would start to
work on it. (In fact, half of the work has already been done for making
it possible that c386 compiles itself). Please mail, if you like this.
Hey Linus, what do you think ?
Another thing to suggest is defining a macro ARGS(x)
#if __STDC__
#define ARGS(x) (x)
#else
#define ARGS(x)
#endif
and declaring functions with
void function(ARGS(int x,int y,...));
This would keep the amount of work smaller for changes in the includes.
I personally prefer this even to /classic and /ansi because it's just
one readable file.
OK, Comments are welcome. As soon as the header files are ready, I will
make them and the c386-sources and binaries available on tupac-amaru
4) Who is working on what? Could we please start to compile a list?
I am currently working on
include-files classic style
c386
making Linux compileable with c386
Please mail, I'll compile the answers
OK, this was a long mail and I think it's enough for this time.
Hopefully wawaiting your comments and answers,
Robert Blum
--[0047]--
[0048] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 11/11/91 19:56 (36 lines)
Subject: nic.funet.fi Linux directory structure [Diversification of development]
Date: Tue, 12 Nov 1991 02:46:16 +0200
From: Ari Lemmke <arl@zen.cs.hut.fi>
To: linux-activists@joker.cs.hut.fi
In-Reply-To: Robert Blum's message of Mon, 11 Nov 91 23:56:40 +0100 <9111112256.AA17302@messua.informatik.rwth-aachen.de>
I try to keep track on Linux at nic.funet.fi, but help
is welcome ...
After some thinking, I changed Linux FTP directory
structure to be more understandable (just check nic's
Minix directory /pub/minix !-)
nic.funet.fi:/pub/OS/Linux
kernel has kernel kits and device driver
add-ons.
images for all image files.
bin binaries to /bin and /usr/bin
tools binaries not usable for 'common' user.
doc documents and man-pages.
lib /lib and /usr/lib libraries.
xtra stuff not in previous categories.
Comments are still welcome!
I try to keep "ls -laR" listing in file 'ls-laR'. Informative
README file is at main level. Fixes/suggestions to that are welcome.
It is possible to "put" with FTP your fixes and add-ons to the main
Linux directory - they will not be available/readable after
putting ... not until I enable them (I try to find right
place for them - still mostly to 'xtra' directory).
arl
--[0048]--
[0049] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 11/12/91 01:48 (45 lines)
Subject: Re: Weekend hacking and other randomness...
Date: Tue, 12 Nov 1991 08:39:35 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
In-Reply-To: Theodore Ts'o's message as of Nov 11, 16:08
To: tytso@athena.mit.edu, Linux-activists@joker.cs.hut.fi
Theodore Ts'o: "Weekend hacking and other randomness..." (Nov 11, 16:08):
> Other comments; maybe I'm doing something stupid, but I can't seem to
> get mtools to want to write a file from Linux land to MS-DOS land.
Urgh. I should never have included the mtools package :-). The problem
is that the root-diskette filled up, and mcopy is just the front-end for
other programs. mwrite, which actually writes to msdos, didn't fit.
The only reason I had even those small mtools programs was so that linux
wouldn't be a closed system in the way the minix demo-disk is. I don't
like the suite very much, but as I didn't think of tar ...
> Also, trying to compile RCS for Linux apparently tickles a compiler bug
> in gcc.
All bugs are probably of my doing :-( I've hacked the machine
description to add the string instructions, and that's probably the
thing that wen't wrong.
Another problem with gcc-1.40 for linux is that it sometimes can give up
while optimizing. I don't know if it me again, but this time I think
it's the soft-float: gcc runs out of registers when optimizing. It
hasn't happened wery often, but it's very confusing when it does happen.
I hope 2.0 has a corrected soft-float, so that there is no need for
hacking on that too.
Re: file-system corruption: You were right. I think I've found the bug,
and will send out corrected "buffer.c" sometime today. Hopefully that
cures the problem. First kernel patch for this version: not too bad. I
haven't found the floppy driver problem yet, though.
And lastly: Everybody out there making changes to the kernel, please
stand by for the next kernel update... It will probably be in early
december, and I'd suggest you mail me any cdiffs for the kernel before
the end of november, so that I can try to incorporate them into the new
version. 0.11 will not be a major upgrade, just some minor fixes + the
ability to handle other screens than VGA. If things work out with
rename, that might be incorporated :-)
Linus
--[0049]--
[0050] daemon@ATHENA.MIT.EDU (Bruce Evans) Linux_Activists 11/12/91 10:15 (36 lines)
Subject: Re: Header structure for mixed Classic/ANSI
Date: Wed, 13 Nov 91 00:28:25 +1100
From: Bruce Evans <bde@runx.oz.au>
To: linux-activists@joker.cs.hut.fi,
>Lars Wirzenius writes:
>
>Wouldn't it be easier to make two header trees:
>
> /usr/include/ansi
> /usr/include/classic
>
>and either use the -I option to select which tree is used, or put
No. Who adds -I to 1001 makefiles?
Who keeps all the versions up to date? There probably have to be minor
variations for classic-compiler1, classic-compiler2...
I use _P((arglist)) to hyde prototype args and don't think it is particularly
obscure.
>files like this:
>
>#if __STDC__ == 1 /* not: not just ifdef; see comp.lang.c FAQ */
># include <ansi/foo.h>
>#else
># include <classic/foo.h>
>#endif
It's not clear what happens to the header names if the user has maliciously
#defined ansi, classic, foo and h :-).
I think something like #include <__implementation.h> is required in many
header files. Just deciding what is quasi-STDC takes a lot of ifdefs.
Bruce
--[0050]--
[0051] daemon@ATHENA.MIT.EDU (Nicholas Yue) Linux_Activists 11/12/91 10:17 (11 lines)
Subject: Maths library?
Date: Tue, 12 Nov 91 23:09:03 WST
From: nicholas@cs.uwa.oz.au (Nicholas Yue)
To: Linux-activists@joker.cs.hut.fi
G'day,
It was mentioned that maths (software emulation I think) was available?
I don't seems to be able to get maths working.
Thanks In Advance
nicholas@cs.uwa.oz.au
--[0051]--
[0052] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 11/12/91 12:05 (22 lines)
Subject: Header structure for mixed Classic/ANSI
Date: Tue, 12 Nov 1991 19:00:30 +0200
From: Ari Lemmke <arl@sauna.cs.hut.fi>
To: bde@runx.oz.au
Cc: linux-activists@joker.cs.hut.fi, wirzeniu@cs.Helsinki.fi
In-Reply-To: Bruce Evans's message of Wed, 13 Nov 91 00:28:25 +1100 <9111121328.AA08248@runxtsa.runx.oz.au>
>Bruce Evans writes:
>>Lars Wirzenius writes:
>>
>>Wouldn't it be easier to make two header trees:
>>
>> /usr/include/ansi
>> /usr/include/classic
>>
>>and either use the -I option to select which tree is used, or put
>
>No. Who adds -I to 1001 makefiles?
No problem if we just used imake ;-)
arl
--[0052]--
[0053] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 11/12/91 14:57 (135 lines)
Subject: corrected buffer.c
Date: Tue, 12 Nov 1991 21:47:49 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
Ok, here's the new buffer.c-file, hopefully correcting the bug which
caused file system inconsistencies.
NOTE! This file is NOT official, and won't be used as a starting point
for future kernel cdiffs. Thus save the old buffer.c before using this.
It's just a temporary bug fix before a real release (which should come
out in December). Hopefully these kind of rather urgent bug-fixes won't
be too usual.
The changes are mostly to "getblk()", and are not final: it's a bug-fix,
and I'll have to tweak it a bit more for the real version. The current
version works fine, but it's a bit overzealous in trying to avoid
reclaiming dirty blocks: with this kernel patch the buffer-cache VERY
easily fills up with dirty blocks, at the expense of ordinary ones.
Thus "sync"ing is even more important with this fix: the dirty blocks
are kept around longer (too long in my opinion) with this routine.
Linus (torvalds@kruuna.helsinki.fi)
PS: Re: Math libraries. There aren't any. When I talk about gcc
soft-float, I'm just talking about the general idea - I haven't
implemented (or ported) any real math functions. The only floating
point math that gcc currently knows about is add/sub/neg/mul/div (and
only for doubles, not floats). Gcc in the original 1.40-version cannot
handle soft-floats correctly: linux gcc has this corrected (thanks
mainly to bruce evans), but not used very much.
There might be stubs for sin/ln etc in the library: they should just
return 0.0, and are there (if they are) to get gawk to compile (and yes,
it works - kind of). If you do find routines for floats you can use
(and they are available out there), you can add them to the library with
"gar d libc.a stubs.o" (remove old routines)
"gar rs libc.a sin.o ln.o ..."
------ snip snip ------------------------
begin 644 buffer.c.Z
M'YV0+U0H *$"! @V:=S4P?/"S)P78NJ8,5-&CHLQ P42-(AB2 H0,7+DB&&0
M2<(Z<T!0>2/'3A@V9.9D?*% 0<",!D]$G%CQX@D0:=K 85.F31DW=%+205,&
MQ$Z*<EJ,"3.&*0@S==R,H9/FC9LY+D!(H5I&JE<R:;AZ38DFC)TR.,64.0K"
M[9LT9,J0<9H'A),B5HI(.5B&#E<W9^H"15I13ATX=$!4#8.X:1BG$J&"0%$&
MSY@RD*^R!+$4[D8R8>B$80'BC1G);^K(F5,F!>N(D1/.H5,FS%ZBAA,F+BWY
M)5$Y(,B\ 4HGK),G5(J$ !$D94+><AQ#EKEQJAL0=\*L:?I8\50VQUG/>6-4
M,L(6N]. H!VGSM'/*</(:>IF;MZ]="Q751ECK"&:'#C-011H+7@EE7%@J<04
M;?.A$1M,3C75&1W[&<5&7_6E42!K2\5V!AJ;)0&"A7#4YL),-=VTT7/134<%
M4_L!E9)73:$UQQ@LH884"&Z\P=N*%96A@V1,%2C<56R\ 0<<:921DADLX>2C
M@9-5%M:-:5B7TATX-I7656FE)-=NK*FX5$)KL!:&=9'-86$=,.&4D$L(H79D
MEV?H!:64<.31PI8/#@@6C J,D- 8;-21%P@\[(::'&>X@(8/ S7Z:*23\H"0
M0@P!Z889:62ZJ:=:@=J4J"<Q]"-39&C*J:.M2OKJJ N],)X<_;%A*ZN0ZDKI
MG&V\,$<>NQ4U+*[%AHKL"UT-J\"&%7UW'0A'D;&# KLYMA5F/,GQ!5.^;;2;
M?G1\\51%(/2P6;AUC/NNN>CNI<)')G3[+;WV9E;1N;WIN^*<:'RAFAA$;>&$
M%%\@$<042'3QKVI<C3$?A_5&=B_!Z19DQGYE?('0;A>G)N+&XD:FVAQK? %P
M9 5]'-Z9\CI1!1-,?+OMPU\(48411@@V1;P@P/ MN!BOG-"H3=EQUUXWM^N5
MNP++@<+,Y$(%LL%BH)&" GLHD "D::"0PK<)D)D&49N%W8(/8IC\1H%C)Y"
M@G/!\857*)@@-]U?5+VVV?&I_6T?-6V[[!PRYZ$5"E+C-7;9"6R;!MM<?YSO
M1F$OO;?D8WR1T!MYS:&XW@&!)T=:3<666Y&I+Q9@UQ6EI )-"82-]+IRM'LO
MVU@BAT(:/< P@Y \0"TT$0;O3Q0*ZS 0MC5?X1YVV&D];<;6)>+0MB'ZYW&
M:^.C,7?=: 6?M][H?2'''>Y&62 *5TB11'37B\TVXPG8#QUD\QVE*8!Q"G <
MZ;Z0%SL<;T@-O)S9-,<YC@6L7%\#'1I$YSMY 4]X62/>:(Z7O.FEP7D0@U[1
MI' TYJ6A>OW+'@BV=[ZXJ8]P#01!".050;/IS52'L0_;N.>]J]TK?>7+'/H&
MQ[XRV"%>/'0B"$Q@ J?<D'UI<)\/$Q"_^=7O;FO G_[X1[[_(6Z!ITN=XLS6
MP8VQ*WQ0$:'QD*<\%Z(P:$-;80NI9SWLK4![/JQA^M;'0"GN,#E.?-_9O!+$
M,@RQ:M^#8T60.$1!,K&03^Q!%)](12L2LGUT4&07Z<<P,(IQ?T7H7_D *$ "
M)FUQ,=)(0<"4$CG(+B%-&5"!QL24TB#G,F:(TI3ZTA8US>4[@-*+G-Q !CVY
M@4]X28V5ZH(>W$5E*@-JP5$X5"7K?&<IJ2D.;;Z$AC#I*3\@V \;5/:6#\TG
M2G=(YRW[HY[EW*$I;7D+:9;#H;[<K@T)"4H:]$">.0A'3\V1$$J8HZ/BH$=0
M7G'G8[RBF!.T(39(^<EH3B"EHYR G.;<2)A(8Y4U128\?7$-;-H@AH B9CXM
M$A1E]E('KB"$#GEH$TGA]**-0*$,4H(;H)ZTI<+PQILD;0I R4 &N*F4,JUI
MD1Q41M'45>0M.+E=E-Y (1VT8&P$P0F-I$,=-I2H#B>2C&SV@Q1WODE,K7&#
M.XLWJ"EUDT16P4MO=)35MD2&,GWQ#5K4XH:7I+,H;W )PYI2R@(=RHDB:LH=
MWL8&$*"D*6^59TUQR0*<S)2DX;QH5NCP@HY^IS]Z<<,)(K.&(L43G)$))J&Z
M^0(R2?,MO]Q/@EHTAC2\I*>[4T#E]J++F&WI"\E\8&1ZB#D*(LZ"'LM:!FNV
MP9HH<3--"((2GB %%$10A_*2P?M:"2RV-; '34C"<[K[W2K" \PF,$.$M Z
MMU6EKH5J:%I^0!#>"3($LATF<MM2&>\F<KR%(:!YI<@'>;U7!C P8 +H2L(Z
M-@]H4Z@"% 1CPNP%$GU;>\S &KN&+:2A"RZ 7 [=BX>)Q#<%FNRAWA( AYK*
M3,1:FP..OU@@$Z-8Q8ED6QL_*$DYR'$S=#3A'54H/1?"T(^ -!^(+[GBI+78
M#"\&+R+MH$@@GL21/H2D$;-&R0]O9I XE"*+73R#CVARRXJ\Y&,"Y*>FR(O*
M68R,@\V(P!'D!57] <&Y$&8&-QC8#M>SWQH^@H)&9\6@9^@/&5)P:"^0. 4I
M* '0)$:QL?FY#(#&)\(.G6@P?J28"5M8PP9MIT*3^M)=J,FZ,K88J(%@N(>]
MZ%N^,#+V?*$^9;"/ZCHGW<]15X*MZU!BF]+K-AS,3BT MGWZ.\$E7O$+_<%#
M*'UXR6S3@9!PV$\F/4FX<#N1;9:\MKFYS&UUBYN0WD9:MS>$;O2A&LU-1/0E
M2>P&.;CYSF+SX;VI[,3^$9+?_I;WM;W]K60C5I_-O@K)#A(FFOD7?2' ]Q?6
MS6N2?80/?-"AQKW=\;E@VH=PH(R(4" "(TR<Q!3?#6RR,V>]B*!\E^3XR.8"
M[PV5W,[DKAO)=P[FWBW<YT0'M[A_KG"E._'G]=X,T4U6<2A:\7U3/YF>@XYM
MI),,EDQ3F<:>ALM;3VTQM F>Z9#RAE_;1]A;@ZXUIWMULMFD(#7^:V2ZU9K7
M$#WF%F?CT;7-='EEO>)"=O?3_VYXDE%]-TZW ]3-=GC(EWOI22?<T"<.<.(Y
M7NN1+[P5&X[WFB;5FHLA4AGBB>IHO]U,KSE3,173P,A2V^B11YK.>);XGFM;
M]SOK6;4W$P*"LUMOY'5#[S6_(:0-_-H--#CA$%Z^YW^RX/M6=+_=/'K!^_[;
MEY=BYP\HZZ9IC-@8-#::F%EDY6Z9-=NZ--GT]MR6S5W]=!"*Z"B<?S@X?]31
M=VG3TW]:MGM,,(!"@33]]WWO(T@+F&9V$&-J5D4/6#<(ITGR-V/)1QKZ9S8;
M:(!@)R,%<05HT!<(,1X[-0<ZA2[(D0>Q,1]AD <N,(,2TA3[,2<4-5)3]1EF
MP4QIT15? 5S4,28]XA6K=1!@9$TI@0)9011S0(1UD2,WB!9#4AIM@%?A%":V
MD2#L41CE]%( =2*1T1930A>W<R9N S?W]$Y]@V26<5B^H4W9D24;,5G55#R?
MP5!BX!LI %(I82<70@:J%1DWB![$% 9EB$QKM4T?<ALUU5>YA#IF4DL%(X,P
M@GY>HWZ!TBZHIC!AL%CN%WVVXQ2*)D%[(W>>4S :M'\CM ,[$&77A0(9%S8]
M &ADT'X!6(HGIX$)!BQ^$7Q#=$E ,EK5\TC=8S7@<T1E9&8:ET-OMF)5E'U@
MU&]6EX'(UXO?$3KM1DC#B!0MT )\%DLX\01QDH(-M8D,4XZ?=29A,HBW5A%]
M 2F](0=R<@;=\TW+\85Y@2 ;L8-E82J#!801T@1<%1DJ11Q ,BDC11LPP1Z6
M11MDP!K'8X.@T1N'<09;J"[+<2: B"=[(1<@T ;U@B(7E2.@ABJ]M4V@I2V1
ML55KL"AAM1$W8AEL< 8LD1;.-E+)1 9+(A>&41'+M!=050:18E#Z%!&)H6QO
M42L9H3=,( 14 !(QX (Q,)4C 2.?%FH@( 1!0 1_,053@$1GAD2?E&<\P ,Q
MD (K0):$4XI,8W^I&#(@@(YL$$;;$GWQYY:8@XD#@W]"P1K4M33[T2*IH0/#
MESY(LXFLEFJ?2!2OIHL^M(':F $V'AS\7AT8%[+04/H4X'(A5';-F->IA!%
M%XO%AR(@MY5=^95AV7\IP -<Z95% )9(!(M&IX =.&/_%9NLB0*NJ4B]<X-K
M,$0 U ?@44YPTVB5R8%P\'T_]Q&'5'FA%'6R2#XSY$-\ QK?$S@V<XQ)9).W
M,Y@6:49$A(SMMXRQ*(R@^3[@N1SBF1ILDX9-T8QY!HO+HA68U(Q!%F;'&$G*
MZ#_,J)ZCI4CM>5B$F9EFPSBM,U8A,!TD^#:2U11\$QI5\R1TE5DD5D]&(0:H
MTQ=$22%AB :!USHO,86'J$^")2@B\%8B0(I)>#L(215,$1;%Q5#!%8NVB(O8
M!YEZ4Z#OB:"M\P1+P!I&H%Y!P#-9 !Y-T5IO\%I^98[WTE#$$5$I%6@JE18G
MD!)KD! 126TDRDR@E1MTD*66I1 0&3>?.5K)8QMEJFB",CYV4R!K&I3NT1O?
M<:,"BA0]$ /+AT7!DSQ]^@5SACK2!*@>^' ETVQN%VQ64F:X!X$]T$"!>H$D
MAFY?41'M<AUM)VV-BIZ265T(A&MBH$ZT$7=P66RJ6#,288K_M1,(-D#E939B
MEHQDYJK4.8L2P8V@^8V[2&,J-P8L1P5RD =/<CM_]W?W<G/Q*1XE\QC<*5V&
M$X*RY!13J#9P&!.*,0>\=3Y5\I&*5A=@FGQ*45)9$Z:P@13WR!T%D19AD02$
MB(TI88! \1K$ 7/AD1)9,86-60; 11-\B2^I2JT%$XH%EY>F9G>G>*KI%[#:
M>)BSB 8]0)=AE(NFUJLIYP8K)P*C6C!+(K&'!:N2]HL\PP5NH*R'*6>00:B\
M\:JN-)FCQ&-A) 5%T)6JM*Q%1*OB@Y[I1DB#6F<LZXN3N;%L4*J>BHTB*WP(
M)((@0(ZWH:_%D8T%)5-J,H6.^%=,]8->81S^M!QMH!\&8B0X$A>*=B6C,85/
M,B=*BAYA401@2ASZ<09U8!1#HG7@D18H<AG]88]<@54;H1 LU1.7B(JH*I<;
MZQMA0+"(MBVH,AMTP!HSZ *FZ!*8&85G, <5I+"9R+!H )C])SJ2^T$H\+8J
MN+B[43[_E3X16QCI2&JD&TH6^ZLL5[@\.9>J6Y<?2T""8H D:[*FB;)T)DWO
M\[(DA@(R2[/H*9]GUKH](+EO&[J8HH+7@6D^L*;7J3?]E[ITL+K1U[I)Y(!"
M89O_Y9D]"[Q;Q$5L(#^DI&C$.[-$$ 0UNT6>V8W?!HX^5)QF([G=XKR56SZS
M>IX FI[7-KXK&YE&&[2D6@:.NH$H8("'$ZIG]S$!10<H$"4O]3'=8HK_2G<H
MXD&JH7;#<[]G5S.6FANB8TG2Q7=O%@-G"6'O(P9(0SDAS&@V0 ,PH (Q ,R
M0 /E\Z%PH3<N+"\PC!<$\1$6S$SQB9SS&3<@T +R(@1,\ 1#L 1?, 5)H 5%
M\!'3>V:XMB^;@08KD)8? 8O0)WZO)'!E&3Q((V$)<&WRF\9#=&W?NF=F3#@"
M#'1J?&U5 WR\-\="UWPY XQ\O''BIL?"IS?0EQJ7 <23@1Q<+ 9O''J,MR(M
MP*>!O'ESX7Q?_,;%Z$//DT=&L\E2IL1O%L3Z\A'O=<,1%F%Q]L);;,IX$ 2I
M+&$ I#[T.V&?5W4<_$8?;,N7"7KA)WF17%UK[)R1+)U'5F$[<$*;-C%(D,P>
09L@(XXF+Y6,] (('E * ,N7
end
--[0053]--
[0054] daemon@ATHENA.MIT.EDU (John T Kohl) Linux_Activists 11/12/91 15:34 (8 lines)
Subject: UseNIX BoF?
Date: Tue, 12 Nov 91 15:26:11 -0500
To: Linux-activists@joker.cs.hut.fi
From: John T Kohl <jtkohl@cs.berkeley.edu>
If any of you are going to be at UseNIX in SF in January, perhaps we
can arrange a BoF session to chat about Linux?
John
--[0054]--
[0055] daemon@ATHENA.MIT.EDU (Patrick L. McGillan) Linux_Activists 11/12/91 21:00 (18 lines)
Subject: startup file
From: Patrick L. McGillan <pmcgilla@hp.uwsuper.edu>
To: linux-activists@joker.cs.hut.fi (Linux User Group)
Date: Tue, 12 Nov 91 16:59:07 CST
Hi all,
Can there be a startup file for bash ( I never heard of it before Linux )
and if so what is its name.
I wrote a date function that prints current date instead of Ok. after
the kernel starts running. Could post a diff tommorrow if some one is
interested.
--
Patrick L. McGillan
Computer Systems Specialist
University Of Wisconsin Ph: (715) 394-8191
Superior, Wisconsin pmcgilla@uwsuper.edu
--[0055]--
[0056] daemon@ATHENA.MIT.EDU (Mika Matti Jalava) Linux_Activists 11/13/91 03:49 (14 lines)
Subject: Re: startup file
From: Mika Matti Jalava <r36110m@kaira.hut.fi>
To: linux-activists@joker.cs.hut.fi
Date: Wed, 13 Nov 91 10:45:22 EET
In-Reply-To: <9111122304.AA14190@joker.cs.hut.fi>; from "Patrick L. McGillan" at Nov 12, 91 4:59 pm
Hi,
> Can there be a startup file for bash ( I never heard of it before Linux )
> and if so what is its name.
It's .profile in your home directory, or in this case (you can only be
root) it is /usr/root/.profile
Mika
--[0056]--
[0057] daemon@ATHENA.MIT.EDU (nicholas@cs.uwa.oz.au) Linux_Activists 11/13/91 04:33 (28 lines)
Subject: Re: Diversification of development
To: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
Cc: linux-activists@joker.cs.hut.fi, nicholas@munnari.oz.au
In-Reply-To: Your message of Mon, 11 Nov 91 23:56:40 +0100.
Date: Wed, 13 Nov 91 17:26:33 +0800
From: nicholas@cs.uwa.oz.au
G'day,
On the previous mail you mention
-----------stuff deleted----------------
I then take these things (sources and/or binaries) and make them available
on tupac-amaru in a directory called beta. If the Linux community
-----------stuff deleted----------------
I don't see any directory?
Another thing, I proposed to torvalds@cc.helsinki.fi to have a TODO
list so that efforts are not duplicated in porting software. I have
not heard from since. Is it possible to maintain such a list, for
example, I have ported bison, anyone interested? I am trying gawk
but the maths library? Is anyone working on it?
If there is a list, I would know whether to develop the maths
library or wait for someone to finish OR help that person.
Regards
nicholas@cs.uwa.oz.au
--[0057]--
[0058] daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 11/13/91 06:30 (57 lines)
Subject: FTP server changes and a TODO file
Date: Wed, 13 Nov 91 12:28:16 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
To: linux-activists@joker.cs.hut.fi
Hi Linuxers!
I currently did some changes to the directory architecture of the FTP server
at tupac-amaru.informatik.rwth-aachen.de
It contains now the following directories
doc Documents concerning Linux, installation etc.
images The image-Files
binaries Binaries running under Linux
ofiles .o files (Currently, the 16-bit things)
installation Tools for installing Linux (Currently: rawrite)
src/kernel Sources for the kernel
src/utils Small utilities, currently fsck
The kernel sources *DO NOT* contain Linus' new buffer.c (accidentally destroyed), so be *WARNED*. Using the current images or the current kernel sources for
building a new kernel *MAY LEAD TO A CORRUPTED FILESYSTEM*
I hope Linus mails me the new sources and images as soon as V0.11 is available,
since I currently have no possibility to build a kernel. There are occuring
to much problems with the non-ANSI c386, but this bist is currently migrating toANSI, so things will change, I hope. (Other way to change would be to upgrade
to a 4Meg-Machine, but this would leave all those 2Meg freaks alone...).
Last way for c386 is the ansi2k&r converter, but to use this thing, Linus must
remove all inline-assembler from the includes, so I am waiting for his answer.
In the meantime: has someone some real mean ANSI-Prototypes to test the
prototypes implemented in c386?
Now, following is a first version of a TODO-File which is also available
at tupac-amaru (pub/msdos/replace is the linux-dir, BTW). I am awaiting your
comments.
OK, see you
Robert Blum
This files contains the status of several tools for Linux
Currently ported projects:
Name: ported by: available at
bison nicholas@ec.uwa.oz.au ????
===============================================================================
Projects currently under development:
Name: ported by: Remarks
c386 blum@messua.informatik.rwth-aachen.de Is working under Linux
Is currently teached
ANSI. Any help on this
would be appreciated.
gawk nicholas@ec.uwa.oz.au Still needs a working
mathlib.
--[0058]--
[0059] daemon@ATHENA.MIT.EDU (Peter Busser) Linux_Activists 11/13/91 07:52 (20 lines)
Subject: comp.os.linux?
To: Linux-activists@joker.cs.hut.fi
Date: Wed, 13 Nov 91 13:31:58 MET
From: Peter Busser <peter@idca.tds.philips.nl>
Hi!
I got a silly idea. Just ignore it if it's beyond the capacity of your
silly-mo-meter. ;-)
Don't you think it is time to get a real newsgroup for Linux or is that too
early? The traffic on the mailing list is more than we see in comp.os.misc or
comp.os.mach or comp.os.xinu... We could reach more people this way, as there
are net.people who still don't know what Linux is although they are interested
in the subject. It seems that not many people read the comp.os.minix newsgroup,
so the least we could do is posting some advertisements.
Greetings,
Peter Busser
--[0059]--
[0060] daemon@ATHENA.MIT.EDU (Lars Wirzenius) Linux_Activists 11/13/91 08:45 (22 lines)
Subject: Newsgroup
Date: Wed, 13 Nov 91 15:43:22 +0200
From: wirzeniu@cs.Helsinki.FI (Lars Wirzenius)
To: linux-activists@joker.cs.hut.fi
Peter Busser <peter@idca.tds.philips.nl>:
>Don't you think it is time to get a real newsgroup for Linux or is that
>too early? The traffic on the mailing list is more than we see in
>comp.os.misc or comp.os.mach or comp.os.xinu... We could reach more
>people this way, as there are net.people who still don't know what Linux
>is although they are interested in the subject. It seems that not many
>people read the comp.os.minix newsgroup, so the least we could do is
>posting some advertisements.
I doubt a regular newsgroup would make it (yet), but how about a group
in the alt hierarchy? Or at least I think they should be relatively easy
to create (no voting etc). Of course, they aren't quite as widely
spread, but perhaps they are spread widely enough?
But I like the idea.
--
Lars Wirzenius wirzeniu@cs.helsinki.fi
--[0060]--
[0061] daemon@ATHENA.MIT.EDU (Michael Callahan) Linux_Activists 11/13/91 11:27 (21 lines)
Subject: Re: Newsgroup
Date: Wed, 13 Nov 91 11:23:22 EST
From: michael@smectos.gang.umass.edu (Michael Callahan)
To: linux-activists@joker.cs.hut.fi, wirzeniu@cs.Helsinki.FI
I think it would be good to adjourn the discussion to comp.os.misc--if
the volume keeps up, it will be apparent to the net.community that a
separate newsgroup would be appropriate.
(Note that it is generally considered bad form to try to create a comp
group when there is not already sufficient *news* volume to justify
it. This is not true of the alt heirarchy, but then many sites don't
receive that.)
On the other hand, how many people are on the mailing list? If it's a
small group of people, a mailing list is appropriate.
A periodic posting to comp.os.minix as well as comp.unix.sysv386 (yes,
it's not system V--pity the name was changed from comp.unix.i386) might
help more people become aware of Linux.
Michael
--[0061]--
[0062] daemon@ATHENA.MIT.EDU (Patrick L. McGillan) Linux_Activists 11/13/91 12:22 (16 lines)
Subject: news vs mail
From: Patrick L. McGillan <pmcgilla@hp.uwsuper.edu>
To: linux-activists@joker.cs.hut.fi (Linux User Group)
Date: Wed, 13 Nov 91 11:17:36 CST
Hi all,
We for one, at this site, do not have a news feed. In order to stay
with the program I need the mail group postings. On the other hand,
down the road in the next six months, I will probably put a news
feed up.
--
Patrick L. McGillan
Computer Systems Specialist
University Of Wisconsin Ph: (715) 394-8191
Superior, Wisconsin pmcgilla@uwsuper.edu
--[0062]--
[0063] daemon@ATHENA.MIT.EDU (Mika Matti Jalava) Linux_Activists 11/13/91 14:10 (37 lines)
Subject: some problems
From: Mika Matti Jalava <r36110m@kaira.hut.fi>
To: linux-activists@joker.cs.hut.fi
Date: Wed, 13 Nov 91 21:05:48 EET
Hello there...
I have a problem with a probably corrupted file system. The setup is
like this:
/dev/hd1 is the root device
/dev/hd6 is mounted at /tmp
both are 20M MFM disks. Now I recompiled the system today with the new
buffer.c and also got the fsck program to work.
The problems began when I fsck'd /dev/hd6 (no errors) and went on
doing some compilations. A makefile happened to contain 'cc' instead
of 'gcc' at one point. Of course I got the error message telling that
cc can't be found, but immediately after that a kernel panic. Some
message telling about some inode problem (sorry, don't remember
exactly).
Reboot. Everything OK, but now fsck /dev/hd6 gives dozens of errors of
form
Zone XXXX: in use, counted=2
Now I think something blew up. Should I try to duplicate the situation
to get the exact error message when the kernel panics? Can the fs be
repaired (it seems to be alive)?
Then to another problem (it may be that I'm the problem, as I just
don't know how to do it). Can bad blocks be marked somehow? I have a
few on my root disk. Luckily they are currently all occupied by a
file. Can't run fsck on root, though, as it tries to read them.
Mika
--[0063]--
[0064] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 11/13/91 15:53 (90 lines)
Subject: The patch to buffer.c seems to work!
Date: Wed, 13 Nov 91 15:49:09 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: linux-activists@joker.cs.hut.fi
Reply-To: tytso@athena.mit.edu
Well, I tried compiling a kernel with the updated version of buffer.c,
and it does seem to fix the problem of "compress | tar" corrupting the
filesystem. It seems to work just fine! I was able to uncompress and
untar 10 megs of GCC source without causing the filesystem corruption.
Note that if you don't have the updated version of buffer.c, you can
avoid the filesystem corruption problem by not running two or more
processes at the same time which (1) doing disk I/O and (2) causing the
buffer cache to thrash. So in other words, I could have avoided the
problem by doing a "uncompress gcc.tar.Z" and then a "tar xvf gcc.tar",
instead of connecting the two with a pipeline.
I will make a patched kernel image available on TSX-11.MIT.EDU tomorrow
morning; I will also try downloading it to nic.funet.fi and
tupac-amaru.informatik.rwth-aachen.de. I will provide two versions. One
will be a standard version which has the patched buffer.c, and one that
also has a quick patch to the keyboard driver so that the caps_lock key
acts like a control key.
------------------------------------
Peter Busser writes:
>Don't you think it is time to get a real newsgroup for Linux or is that
>too early? The traffic on the mailing list is more than we see in
>comp.os.misc or comp.os.mach or comp.os.xinu... We could reach more
>people this way, as there are net.people who still don't know what Linux
There are lots of pluses and minuses of going to Usenet. Some of the
pluses are increased exposure and getting allowing more people to find
out about Linux. One of the disadvantages is that with more people
comes more noise --- if we turned this mailing list into a newsgroup, I
suspect that the signal to noise ratio would go way down, and the volume
would go way up. Another disadvantage is that not everyone who has a
mail feed can necessarily get a news feed.
One possible way of solving the last problem is to use a
newsgroup<->mailing list gateway such as the one which the Perl Users
mailing list use to connect themselves to the comp.lang.perl newsgroup.
It allows people who wish to get the mailing list to get digests which
contain several messages bundled as a single mail message, and replies
via either news or mail get getwayed correctly.
I suspect, though, that the volume and the number of people on this list
don't quite (yet) constitute enough justification to move to Usenet. It
would probably be a good idea for people to mention Linux and the
mailing list on Usenet, though, so that more do find out about it.
Also, once Linus moves out of Beta test, another possibility is to
distribute it via one of the Usenet comp.sources or comp.binaries
newsgroups.
--------------------------------------
Linus writes:
>Urgh. I should never have included the mtools package :-). The problem
>is that the root-diskette filled up, and mcopy is just the front-end for
>other programs. mwrite, which actually writes to msdos, didn't fit.
Well, I actually *like* the mtools package; it's awfully convenient for
me to be able to read/write files from MS-DOS filesystems. Since I
don't have a tar for MS-DOS, the only other way right now for me to
transfer files from Linux to my MS-DOS partition is to tar them onto a
floppy, take the floppy to work, read the floppy on my workstation in my
office, and then go back home and kermit it over dialup. Not very
satisfactory. :-)
I suppose the right way to do it would be to introduce a VFS layer into
the Linux kernel, and then have someone implement a DOS filesystem which
you could mount under Linux, but right now I don't have the time to
commit to a project like that.
In the meantime, would it be possible for me to get the sources to the
mtools package? You could either mail it to me, or drop it off via
anonymous FTP in /pub/incoming on tsx-11.mit.edu. I'll make it
available so that anyone else who wants to use it will be free to do so.
In the same vein, it would nice if I could get a copy of the GCC machine
discription file and other config files which you used to build GCC
1.40. That will make it easier for me to try to get GCC 2.0 up and
running.
- Ted
--[0064]--
[0065] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 11/13/91 22:52 (35 lines)
Subject: virtual consoles, shared text and paging
Date: Wed, 13 Nov 91 19:47:57 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
Following are the three things required before I would
consider leaving minix:
shared-text
virtual-consoles
9600 serial
Is anyone out there interested or working on these?
I would be willing to take a stab at say virtual
consoles ala Gordon Irlam, if I could get init/login/ttys
from Ari Lemmke first. Comments?
Next I want to babble about something I know nothing about: paging
For those of us with small disks, devoting some of our precious space
for a paging partition is undesirable. Which bring me to ask if we
truly need paging at all. Is it possible/practical/desirable to
try to page executables from the file system? A working set size
could be established and when ram got tight, little used pages
freed for data requirements. Maybe code blocks should only
be loaded on demand?
Perhaps on invocation, a map could be formed indicating where each
block of an executable was on disk. Of course, if the image file
were subsequently deleted, then you have a problem.
Since I am as near illiterate on OS paging system designs as
you can get, feel free to enlighten me.
--[0065]--
[0066] tytso@ATHENA.MIT.EDU Linux_Activists 11/14/91 13:34 (9 lines)
Subject: Re: startup files
Date: Thu, 14 Nov 91 10:39:00 CET
From: Wolfgang Thiel <UPSYF173%DBIUNI11.BITNET@FINHUTC.hut.fi>
To: linux-activists@joker.cs.hut.fi
Hi,
there are as well different startup files, bash is looking for depending
on whether it is called as a login shell or not. I could send you more
information if needed (my bash docs are at home, not here!).
Wolfgang
--[0066]--
[0067] tytso@ATHENA.MIT.EDU Linux_Activists 11/14/91 13:34 (40 lines)
Subject: About paging
Date: Thu, 14 Nov 91 10:02:06 +0100
From: kw@dde.dk (Kurt Wachmann)
To: Linux-activists@joker.cs.hut.fi
One tiny question first:
**************************************************************
* Any pointers to a working ftp mailserver?? I can't ftp!! *
**************************************************************
About swapping/paging:
I think demand paged virtual memory is a requirement for a
real OS. No more crammed "just a bit better than DOS" OS'es,
please! After all, disk memory is still cheaper than RAM.
Peter MacDonald asks if it's possible to demand pages from the
load-module: yes in deed. This is done in lots of commercial
systems; one reason being the startup time for large applica--
tions; e.g. emacs :-). You only need a few pages of 4kb to
start the monster. The system will seem much faster.
For this to work properly, a few things are needed. For in--
stance, the code segment of the load module must start at a
block boundary in the file system, eg. offset 2kb from the
start.
The file system must also be fast - pointers to physical disk
locations should be kept in RAM - in this way, it will not be
(much) slower than reading from a swap-disk.
Of course the load module must be locked while it's being
executed.
I still think we need to be able to swap out data - think
about running X-applications, with tons of data almost never
being used.
Kind regards
Kurt \/\/achmann, M.Sc. EE/SE
--[0067]--
[0068] tytso@ATHENA.MIT.EDU Linux_Activists 11/14/91 13:34 (17 lines)
Subject: mtools
Date: Thu, 14 Nov 91 11:02:52 CET
From: Wolfgang Thiel <UPSYF173%DBIUNI11.BITNET@FINHUTC.hut.fi>
To: linux-activists@joker.cs.hut.fi
Hi,
Has somebody been looking into the mtools sources? I had problems
with it and BIGDOS partitions: mtools did not look for the NumberOfSec-
tors at the right offset in the root sector. I now get the proper in-
formation concerning NofTracks/NofSectors for my big DOS partition, but
nevertheless, it is not working right for big sector numbers. After a
lot of printf's in the sources I now suspect there is an error in the
LINUX hd driver. Did somebody else had problems with big sector num-
bers? By the way: 16 bit INT'ers will have problems with instructions
like block = num >>BLOCKSIZE_BITS. This can lead to unwanted values
if the high bit is set, if I understand the C definitions of right shift
right.
Wolfgang
--[0068]--
[0069] tytso@ATHENA.MIT.EDU Linux_Activists 11/14/91 13:35 (49 lines)
Subject: mtools, demand-loading, paging
Date: Thu, 14 Nov 1991 13:22:37 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
Hi again. Several people have inquired about mtools. The sources I
used are available on nic.funet.fi: pub/unix/386ix/isc/source/mtools*.
I don't know if this is the most recent version. And no - linux
probably cannot read partitions >64MB. The reason is (partly) the minix
file system. See later.
Paging to disk has also come up: It will certainly be implemented (in
fact one of the bigger changes in the 0.10 fs was due to making ready
for this). There are no obvious problems with this, but unless somebody
else wants to try to implement it, it will take some time (I'm talking
March-92 at the earliest, probably not until summer). One of my problems
is (will be) lack of disk-space to try it out on.
As for demand-loaded executables... hmm. There are a couple of problems
with this: the minix filesystem wasn't meant for it, and it would be
MUCH easier to implement if BLOCK_SIZE was 4096 (= one page) instead of
the current 1024. This of course means waste of disk-space. The problem
with the minix filesystem isn't that serious: I'll have to move on to
something else anyway - 64M partitions can be limiting for those who have
disks big enough to hold them (and the afore-mentioned 64Mb limit even
for direct read/writes.. This I can try to do something about).
The more serious problem about demand-loading is that the fs isn't
really designed for it - I doubt the locking mechanism used currently
will suffice. If people would accept a non-locking demand-loading (ie
you could write to the file while it's in use etc...) I could possibly
try to implement it. Again - not until well into -92.
And a little small sad note: I know I said symlinks would probably be in
the next version, but unless I can get the higher priorities completed,
this will be left for later. The things now relatively certain (barring
acts of God etc) are: fsck, mkfs, badblocks, fdisk, non-VGA video and
finally the correction to the serial drivers to change speed by the
ioctl call. I'll look into extended partitions (fdisk will probably
report them), but I doubt they will be accepted by the kernel proper
until later.
Linus
PS. I try to answer all mail as soon as I get it, but I get MUCH mail.
If you think the mailing-list has been active: think again :-). If you
don't hear from me, I've probably forgotten to answer at once, and once
your mail is in my mailbox, it's likely to be lost among the multitude.
Re-mail your question, and make me feel guilty about not replying the
first time: that's the ticket.
--[0069]--
[0070] tytso@ATHENA.MIT.EDU Linux_Activists 11/14/91 13:35 (12 lines)
Subject: FTP mailserver
Date: Thu, 14 Nov 1991 14:31:39 +0200
From: Ari Lemmke <arl@sauna.cs.hut.fi>
To: Linux-activists@joker.cs.hut.fi
kw@dde.dk (Kurt Wachmann):
> Any pointers to a working ftp mailserver?? I can't ftp!!
Not to be announced publicly ;-)
try "mailserver@nic.funet.fi" and mail _body_ having "help".
arl
--[0070]--
[0071] daemon@ATHENA.MIT.EDU (Marc CORSINI) Linux_Activists 11/15/91 08:28 (103 lines)
Subject: True life story | FAQ how to install linux on hd
Date: Thu, 14 Nov 91 21:47:28 +0100
From: corsini@numero6.greco-prog.fr (Marc CORSINI)
To: Linux-activists@joker.cs.hut.fi
In-Reply-To: Ari Lemmke's message of Thu, 14 Nov 1991 14:31:39 +0200 <199111141231.AA12016@sauna.cs.hut.fi>
Hello happy lunixers,
don't know if the subject is still under interest, but since the
title is clear u can easily trash it.
I'm not a Unix guru, nor a C guru, nor even a Msdos guru (but who
cares), and I do not have minix. Ok, now about my hardware:
a 386 sx, 2Mo Ram, 2hd one single bootable partionned Dos (120Mo)
and a 2 partitionned 40Mo (8 for dos, 32 for linux). Drive A is 1.44Mo
and B a 1.2Mo. To install once linux it took me 3days (36hours), to
reinstall it a second time no more than 1/4 an hour :-))
So i think that the following menu might be interesting (for future
linuxers), for others just have a look on (II.a.2 and III.):
I. image to diskette
--------------------
a) First of all get the minix demo-disk on plains.nodak.edu in
pub/Minix/????/demo
b) *don't forget* the rawrite.c program
c) rawrite the demo_disk on a formatted diskette (if u have trouble
like I had comment the error detection !!)
d) get the linux image on nic.funet.fi or any other place
e) rawrite them on /identical size/ diskette (either 1.2 or 1.44)
f) choose a partition on (one of) ur hd(s)
that's all for dos time
II. unix for i386 ....
----------------------
a) boot on the minix demo disk
PAY ATTENTION this demo disk can ONLY access to the 1st disk so
a.1: if ur choosen partition is on hd0 (the first one) do
mkfs /dev/hdX where X is in [1..4] the partition *UNDER MINIX* are
ordered
a.2: u silly choosed a partition on the 2nd hd (hd1) in that case u
have to [thanks linus it was simple and efficient]
1) Mount the linux root Image
-- if u use a 1.2 Mo drive do /etc/mount /dev/fdX /yyy
where X is 0 for drive A and 1 for drive B
-- if u use a 1.44 drive do /etc/mount /dev/PSX /yyy
where X is same as above
/yyy is the directory where u mount
2) then Perform a mkfs
mkfs /yyy/dev/hdY
where Y is in [6..9]
THAT's all for minix
b) boot on the linux bootimage, if all is fine (it should be), put the
rootimage disk ok.
c) now mount the partition:
PAY ATTENTION under *LINUX* the partition numbering is NOT the minix
one try a "backward" numbering i.e. either from 4 to 1, either from 9
to 5.
d) copy the files/directories (easy, there is a bash script in
INSTALL-0.10 on nic.funet.fi).
III. How to change ur bootimage to access directly on hd
--------------------------------------------------------
Simple if u take the C program in INSTALL-0.10 *AND* if u know that:
the device number to use
#define NEW_DEV is_partition_number_under_linux
*AND*
if u DO NOT COMPILE THIS FILE ON SUN or OTHER UniX Station
OTHERWISE (* i was in that case *)
U HAVE TO CHANGE SOMETHINGS *only the diffs are pointed out* in what
follows (in french i would have said "inversion des bits de poids
forts et de poids faibles")
#define NEW_DEV 0x301 ---\ for DOS
|
/
#define NEW_DEV 0x103 --- for SUN/ALLIANT/...
[identical part deleted]
if (0xAA55 != *((unsigned short *)(tmp+510)))
||||
if (0x55AA != *((unsigned short *)(tmp+510)))
[rest is identical]
IV Enjoy this UniX kernel
-------------------------
--[0071]--
[0072] daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 11/15/91 10:56 (28 lines)
Subject: FTP-Server tupac-amaru
Date: Fri, 15 Nov 91 16:53:44 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
To: linux-activists@joker.cs.hut.fi
Hi Linuxers!
As arl pointed out in an earlier posting, there was no directory to put images
or files in on tupac-amaru. This has now changed, so if anybody wants to upload
something, just change to /pub/msdos/replace/incoming.
This should be writeable to the world. So arl, would you please be so kind
and upload the new images?
Thank you!
Oh, before I forget it: Is nobody out there working on concrete projects?
I've still got no mail with any extensions to the TODO list....
And again the question: Are any compiler gurus out there? need help in ANSI-
fication of C386. (Or somebody has to implement pagin *QUICK* :-). I want
to be able to do some kernel development, thats what I started using Linux
for....
End where do I end up: A C-Compiler.
OK, but another way I will certainly try is dj's port of gcc to MSDOS. This
one has already implemented swapping and I think it's one possibility to use
it to build a kernel instead of Linux gcc. If anybody is interested in an
experience report, just mail
CU l8er
--[0072]--
[0073] daemon@ATHENA.MIT.EDU (proven@Athena.MIT.EDU) Linux_Activists 11/15/91 11:44 (9 lines)
Subject: No subject found in mail header
From: proven@Athena.MIT.EDU
Date: Fri, 15 Nov 91 11:40:35 -0500
To: linux-activists@joker.cs.hut.fi
Ok, if no one else is working on a VFS layer, I will. I'll also try to
get a first cut done for the 0.11 release but I'll make no promisses.
CAP
--[0073]--
[0074] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 11/15/91 16:18 (18 lines)
Subject: linux, compilers and paging
Date: Fri, 15 Nov 91 13:11:35 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
One of the things I find anoying about minix is having multiple compilers
(just bcc and gcc). Just using one compiler (gcc in linux) really helps
adhere to the KISS principle. But as Robert Blum points out, gcc is
a hog. I guess this is why we see the 1.7 Meg buffer caches.
While paging might be nice, you still have to reload gcc N times to compile
an N module program, for the typical makefile. The only other way I see
around the huge buffer cache is to implement the sticky bit to keep a
programs pages in memory.
The other alternative, #ifdef GCC, #ifdef C386 etc throughout the code, and
having multiple object file types about, is even less savory. I would
rather live with setting and clearing sticky bits before and after heavy
compile sessions. I wonder what others think though?
--[0074]--
[0075] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 11/15/91 18:45 (64 lines)
Subject: Important! Bug in /usr/include/ctypes.h
Date: Fri, 15 Nov 91 18:42:58 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: linux-activists@joker.cs.hut.fi
Reply-To: tytso@athena.mit.edu
I found the problem which caused "mcopy a:*.c ." to files with
unreadable filenames. The problem was that it was trying to convert the
uppercase MS-DOS filenames to lowercase, and this was failing because
tolower() is incorrectly defined in ctype.h: the plus sign should be a
minus sign.
diff -r1.1 ctype.h
31c31
< #define tolower(c) (_ctmp=c,isupper(_ctmp)?_ctmp+('a'+'A'):_ctmp)
---
> #define tolower(c) (_ctmp=c,isupper(_ctmp)?_ctmp+('a'-'A'):_ctmp)
If you are trying to port programs to Linux, you should apply this patch
to your ctype.h --- it could save you a lot of aggravation. (I know
that it will cause problems with flex at the very least, and probably
many other programs.)
------------------------------------------
I agree with Peter McDonald's observation that it is extremely nice to
have only compiler for Linux, and it would be a shame if one needed to
have both compilers around, depending on which compiler was used by a
developer. At the very least, it would make the code uglier as people
put in porting #ifdef's. gcc has a lot to recommend it, especially
since version 2.0 gives you g++ and Objective C basically for free.
I note that once Linux has paging, gcc will be able to work with 2 meg
machines, although granted, it will be slower than normal. I don't know
what kind of speed hit gcc on a 2 meg machine with paging would take,
but perhaps this would be sufficient that we can just have one main
compiler for Linux.
Also, memory is getting relatively cheap these days --- we're talking
maybe US$30 to US$40 per megabyte if your machine can take SIMMS.
Upgrading a machine from 2 meg to 4 meg doesn't cost *that* much money.
As long as the system will run gcc (albeit slowly), would this alleviate
concerns about insufficient support of 2 meg machines?
----------------------------------------
Along the lines of having only one compiler for Linux, I am currently
looking into how it might be possible to assmeble the 16-bit binary
portions of Linux, so that we could just use gas to compile the boot
sector and setup code. There are a bunch of issues to deal with,
including modifying gas to emit 16-bit object files, which doesn't look
that hard.
Another problem is that the gas format is using a "source, destination"
convention, while the as86 assembler seems to be using a "destination,
source" convention. If absolutely necessary, I can figure some of the
unclear translations by looking at the object code in the boot sector
and the matching it up against the opcodes in the gas sources, but this
seems rather crude and unpleasant. Does someone have a quick conversion
chart between the two assemblers which they could send to me? This
would save me a lot of dirty work. Thanks!
- Ted
--[0075]--
[0076] daemon@ATHENA.MIT.EDU (John T Kohl) Linux_Activists 11/16/91 05:06 (11 lines)
Subject: Linux vs. 486/33
Date: Sat, 16 Nov 91 01:03:49 -0700
From: John T Kohl <jtkohl@Athena.MIT.EDU>
To: linux-activists@joker.cs.hut.fi
I just got a new 486/33 today, and linux only seems to want to boot if
the "turbo" switch is turned off. If I turn it once I'm running ,it
seems to cause no problems.
I'm booting off a 1.44MB 3.5" floppy.
John
--[0076]--
[0077] daemon@ATHENA.MIT.EDU (Johan Myreen) Linux_Activists 11/16/91 13:11 (20 lines)
Subject: Re: demand-loading, paging
From: Johan Myreen <jem@sauna.cs.hut.fi>
To: linux-activists@joker.cs.hut.fi
Date: Sat, 16 Nov 91 20:09:51 EET
In-Reply-To: <199111141122.AA04091@kruuna.helsinki.fi>; from "Linus Benedict Torvalds" at Nov 14, 91 1:22 pm
> As for demand-loaded executables... hmm. There are a couple of problems
> with this: the minix filesystem wasn't meant for it, and it would be
> MUCH easier to implement if BLOCK_SIZE was 4096 (= one page) instead of
> the current 1024.
One thing could be a problem with demand-loaded executables: finding
the page on disk means going through the file system, whereas paging
from a dedicated swapping partition could be a simpler and faster
operation. Admittedly, the first read must be done from the
executable, and demand loading from the file probably makes the load
process seem faster.
--
Johan Myreen
jem@cs.hut.fi
--[0077]--
[0078] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 11/16/91 19:33 (52 lines)
Subject: demand paging: proposal
Date: Sat, 16 Nov 91 16:28:57 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
I finally bit the bullet. Yup, I blew away my dos partition and
put Linux on it. Now I would like to start a project. I consider
virtual consoles to be high priority, but until init/login etc is
done, there is probably no use starting that.
Thus I am proposing to look at demand paging from the file system.
If Linus agrees to consider adding it to linux when it is done,
and nobody successfully shoots this proposal down, I will start
tuit suite.
If someone else wants to help (or do all of it) let me know.
I have broken it down into phases to clarify understanding,
not necessarily to imply they might be released in this order (if ever).
If you think this is a house of cards, let me know ASAP.
Proposed Design:
Phase 1:
- Upon loading an executable, create a map that is stored in the
process that locates all blocks on disk. Do not look at fs again.
- Load only the first 4K page and execute.
- Upon a code page fault load the required 4 blocks into ram.
- Make no attempt to lock file image (count on seg violation?)
Phase 2:
- Attempt to share executable images in ram (shared-text).
Phase 3:
- Attempt to implement the stickey bit, to pin an executable
in memory once loaded.
- Find a way to flush it (all) from memory when done.
Phase 3:
- Attempt to manage working sets in memory if data requirements
exceed available ram (down to ~15%).
Phase 4:
- Paging (writing) data to a partition or fixed size file.
- Locking paged image file.
Issues:
- Allocating/deallocating memory for the program maps.
- Enable/disable paging when booting from shoelace?
- Do not use working set with pinned pages?
- File locks held in ram only?
--[0078]--
[0079] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 11/16/91 20:10 (22 lines)
Subject: alternative to paging
Date: Sat, 16 Nov 91 17:07:24 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
I just downloaded sed, tr etc from TSX-11 and are they ever big!
An alternative to the demand paging scenario I just posted
would solve another, probably more pressing, problem.
9k : size of minix executable of diff
36k : size of gcc compiled executable of diff
4k : size of gcc compiled diff.o
It won't be to long before my disk flow'th over. Not to mention
ram requirments. Can anyone give me any advice on implementing
dynamic link shared libraries? I need to figure out:
- should the entire shared library be kept in ram? (simplest?)
- how best to map this into each processes code space?
- how to modify the linker and runtime loader?
--[0079]--
[0080] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 11/16/91 21:07 (18 lines)
Subject: Re: Linux vs. 486/33
Date: Sat, 16 Nov 91 20:58:55 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: John T Kohl <jtkohl@Athena.MIT.EDU>
Cc: linux-activists@joker.cs.hut.fi
In-Reply-To: John T Kohl's message of Sat, 16 Nov 91 01:03:49 -0700,
Reply-To: tytso@athena.mit.edu
Date: Sat, 16 Nov 91 01:03:49 -0700
From: John T Kohl <jtkohl@Athena.MIT.EDU>
I just got a new 486/33 today, and linux only seems to want to boot if
the "turbo" switch is turned off. If I turn it once I'm running ,it
seems to cause no problems.
Interesting.... I have no problems running at 40Mhz on my 386. How does
it die?
- Ted
--[0080]--
[0081] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 11/16/91 22:54 (102 lines)
Subject: Re: demand paging: proposal
Date: Sat, 16 Nov 91 22:47:00 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: pmacdona@sol.UVic.CA
Cc: linux-activists@joker.cs.hut.fi
In-Reply-To: Peter MacDonald's message of Sat, 16 Nov 91 16:28:57 PST,
Reply-To: tytso@athena.mit.edu
From: pmacdona@sol.UVic.CA (Peter MacDonald)
> - Attempt to implement the stickey bit, to pin an executable
> in memory once loaded.
Everyone should note that this is not the original meaning of the sticky
bit, in the BSD 4.3 sense. In the BSD sense, what the sticky bit means
is that after the program exits, its entry in the text table is not
purged and its swap space is not reclaimed. The program was _not_
locked into memory, and would get swapped out if demands were placed on
the VM system. The rationale behind this is that in a time-sharing
environment, programs like GNU emacs are almost in use by *someone*, and
in the case where the last person finishes running emacs, the program
should not be flushed from the text cache, swap space, and ram, in the
hope that another user would be starting an emacs before the unused
program got swapped out to disk. In that case, the user would win since
no disk I/O would be needed. However, in a single-user environment,
the value of the sticky bit is rather dubious, and Project Athena
workstations don't even bother using it for this reason.
That being said, I'm not too sure that pinning an executable into memory
is a good idea. Unless you have gobs and gobs of memory, you wouldn't
be able to "sticky bit" more than one or two programs before you run out
of physical memory, and in the meantime, locking down large amounts of
memory would increase the amount of VM thrashing when other programs
are running.
A better idea might be to not flush the text table entry once its ref
count goes to zero, but to rather wait until the last of its text pages
are paged out (which will happen sooner rather or later because there is
no program using the text). However, if the text is used by a process
before the last pages are reclaimed then you will win because some
number of pages won't need to be brought back in from disk. Thus, this
system will do the right thing for someone who has enough memory to keep
gcc, make, etc. in core at the same time during a build. The advantage
that this scheme has is that it will automatically adapt to whatever
text image is being repeatedly used --- you don't need to sticky bit a
limited number of processes. For this reason, it is also a much fairer
system.
------------------------------------
>9k : size of minix executable of diff
>36k : size of gcc compiled executable of diff
>4k : size of gcc compiled diff.o
>It won't be to long before my disk flow'th over. Not to mention
>ram requirments.
The culprit here is the floating point library (i.e., the soft floats);
even if your program isn't using floats, printf() drags large portions
of it in. The bottom line is that every integer-only executable will be
roughly 10-20k bigger than it has to be. That's most of the problem,
anyway; the most of the rest of it is due to things like gmalloc.o,
which is 4979 bytes. (malloc.o on the vax is 1176 bytes).
There are a couple of hack solutions, which I perhaps shouldn't mention
because they might actually get implemented :-) One way to do it would
be to include the soft-float library in the kernel, and map those pages
read-only at the top of the address space for every process. This has
the advantage that you don't need to run a linker at run-time, since the
addresses for the soft-float library would be well-known constants.
(you'd probably put a jump table at the tippy-top, and make all the
rum-time routines reference the jump table).
This is very ugly, and it is only (barely) justifiable because (1) every
single program is going to need the floating point library and (2) it is
unlikely that the FP library will be changing often, so requiring that
you recompile the kernel to replace the FP library isn't quite as nasty
as it first seems. It is definitely not something that you would want
to use for sharing copies of the dbm library or the X toolkit. The only
reason why I mention it is that doing shared libraries for real would
probably entail a lot more work. :-)
-----------------------------------
I've noticed that there is a bug in the system call waitpid() --- the
parent process gets told that exit code for the child process is always
zero. I've already sent a patch to Linus privately, but if anyone else
is interested in the batch, it is available on TSX-11.MIT.EDU, in
/pub/linux/patches/exit.c.patch .
I've also uploaded tar files containg the binaries and libraries of
Bison and Flex to TSX-11, nic.funet.fi, and tupac-amaru. Bison and
Flex are yacc and lex replacements from the GNU project. Flex passes
all but the COMPRESSION=-Cf and COMPRESSION=-CF regressions tests ---
however, it looks like it's not a fault of flex, but rather of GCC. It
looks like gcc is not compiling the resulting (very large) scan.c files
correctly. For normal usage, however, flex (and gcc) should work just
fine.
Enjoy!
- Ted
--[0081]--
[0082] daemon@ATHENA.MIT.EDU (John T Kohl) Linux_Activists 11/17/91 02:17 (50 lines)
Subject: more on 486/33 weirdness
Date: Sat, 16 Nov 91 23:11:47 PST
To: linux-activists@joker.cs.hut.fi
From: John T Kohl <jtkohl@cs.berkeley.edu>
Reply-To: jtkohl@cs.berkeley.edu
Here are more details on my problems with booting in turbo mode:
system config:
486DX/33, 256K cache, 8MB main memory
American Megatrends, Inc. BIOS
real-time clock
1 3.5" floppy (A:), 1 5.25" floppy (B:)
1 200MB IDE drive (connor)
C:, /dev/hd2, /dev/hd3, D: partitions (in that order)
SVGA: (Orchid ProDesigner IIs/1MB)
I boot off the 3.5" floppy, with root partition on /dev/hd2 and/or /dev/hd3.
sample errors when in "turbo" (33MHz) mode:
<startup stuff>
Partition table Ok.
general protection: 0000
EIP 0008:0000CBB3
EFLAGS 0010206
ESP 0300:0001D210
fs: 0010
base 04000000, limit 000A0000
Pid: 1, process number 1
f3 a5 50 e8 7d fb ff ff 83 c4
... or
general protection: 67b4
EIP 10008:00000004
EFLAGS 00010206
ESP 0020:000067B6
fs: 0010
base 04000000, limit 000A0000
Pid: 1, process number 1
07 20 00 00 27 30 00 00 07 40
sometimes I get two "general protection" errors (same process, usually).
When I toggle the turbo on & off while running, I don't observe any
change in running times of programs (but I can discern differences under
MS-DOS 5.0), even when I run programs which try to time themselves.
Any suggestions?
--[0082]--
[0083] daemon@ATHENA.MIT.EDU (Nicholas Yue) Linux_Activists 11/17/91 03:26 (31 lines)
Subject: Re: more on 486/33 weirdness
Date: Sun, 17 Nov 91 17:20:38 WST
From: nicholas@cs.uwa.oz.au (Nicholas Yue)
To: jtkohl@cs.berkeley.edu, linux-activists@joker.cs.hut.fi
G'day,
I had a similar observation when using the 386/387 assembly. I had wanted
a mathlib badly so I made try to compile the code from DJ's GPP (for MS-DOS).
The maths routine are written mostly in assembly language. I compiled the
C and assembly code and made libm.a, ranlib the things. All without problem.
I then proceeded to write a small C program with a sin() and tan() call.
That is when I had
device not available: 0000
EIP: 000f:00000060
EFLAGS: 00010246
ESP: 0017:03FFFED0
fs: 0010
base: 10000000. limit: 04000000
Stack: 00000044 66666666 40026666 03fffe48
Pid: 2123, process nr: 4
dd 44 24 04 d9 fe df e0 9e 7b
A wild guess, does it have anything to do with the fact that on the 486, the
maths coprocessor is already incorporated onto the chip it-self?
BTW, I am trying to compile the bsd-reno's maths library temporary. Anybody
with warning, advice, question please e-mail to me.
nicholas@cs.uwa.oz.au
--[0083]--
[0084] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 11/17/91 05:44 (136 lines)
Subject: demand-loding etc
Date: Sun, 17 Nov 1991 12:36:42 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
pmacdona@sol.UVic.CA (Peter MacDonald)
> Thus I am proposing to look at demand paging from the file system.
> If Linus agrees to consider adding it to linux when it is done,
> and nobody successfully shoots this proposal down, I will start
> tuit suite.
> Proposed Design:
>
> Phase 1:
> [deleted]
You don't start small, do you :-). If I /agree/ to add it to linux? If
anybody implementes paging, he's going to get 2 extra copies of linux
for free. How's that for an offer?
Seriously, adding demand-loading should be relatively easy. I wouldn't
suggest going past the filesystem, even for saving the block-numbers
somewhere (and a bit-map won't do it, block nr must be ordered). Having
the inode-pointer in the process table entry (and not releasing it
before an exit), and using that to find the blocks wouldn't be too hard.
A bit slower, but conceptually much easier. Then you can use the
routines already on hand (map() etc).
Note that the "relatively easy" must be taken with a bit of salt: you
have to add the routines to the paging unit etc etc. No major problems
at least. Also I'd like to keep linux simple even at the cost of some
speed hit, as otherwise it grows until nobody really understands it. I'm
kinda proud of my mm: it's not many lines of code (although it's not
very clear code.)
Re: sticky bits, shared text...
I don't like sticky bits (in the meaning that they lock something into
memory). I doubt it's really that useful on a small machine, that is
essentially single-user. It's easy to grow the cache to 6M or more if
you have the memory, and currently I don't see much unnecessary disk I/O
in a heavy 'make'. Besides - sticky bits are hard to keep track of.
Shared text and sticky bits have another shared problem: right now
linux allows writes to the code segment. This isn't a very big problem,
as the changes to 'mm' are minimal, but you'd have to check that the
code segment is a multiple of 4096 (I /think/ I made ld do this, but I'm
not sure).
The biggest problem however is the amount of data you have to keep track
of. You'll have to add a lot of structures to know which pages are in
which executable etc. I don't think it's worth it, especially if real
paging (with a partition of it's own) is implemented.
tytso@ATHENA.MIT.EDU (Theodore Ts'o):
>
> >9k : size of minix executable of diff
> >36k : size of gcc compiled executable of diff
> >4k : size of gcc compiled diff.o
>
> >It won't be to long before my disk flow'th over. Not to mention
> >ram requirments.
>
> The culprit here is the floating point library (i.e., the soft floats);
> even if your program isn't using floats, printf() drags large portions
> of it in. The bottom line is that every integer-only executable will be
> roughly 10-20k bigger than it has to be. That's most of the problem,
> anyway; the most of the rest of it is due to things like gmalloc.o,
> which is 4979 bytes. (malloc.o on the vax is 1176 bytes).
Yes. The right way to do this is to add an floating-point emulator in
the kernel, even if shared libraries are added. This is a real b**ch.
I'll probably take a look at the djgpp package, but I'd really rather do
it myself (it's an interesting project). I don't really have the time
though, so ...
> [bug in waitpid]
Yes, I got the fix, but for once I had the bug corrected already. Very
silly thing that came into the system with the "great reordering", when
I changed the process tables. Luckily it isn't very bad. Another related
bug was in crts.o, which always exits with a code of zero if main exits
with a return xx.
John T Kohl <jtkohl@cs.berkeley.edu>
> [486/33 bootup problem]
>
> When I toggle the turbo on & off while running, I don't observe any
> change in running times of programs (but I can discern differences under
> MS-DOS 5.0), even when I run programs which try to time themselves.
This would suggest to me that you have one of those braindead "slowdown"
devices which aren't really completely hardware, but due to some
software solution. At least some Gateway-2000's had this, which meant
that they couldn't run well in protected mode under windows either
(while accessing floppies or something like that). I don't really know
what to do about it, as I don't know the hardware enough (I've leart a
lot about PC's in the 11 months I've had one, but still...)
I assume linux is running at full speed all the time?
nicholas@cs.uwa.oz.au (Nicholas Yue)
> G'day,
> I had a similar observation when using the 386/387 assembly. I had wanted
> a mathlib badly so I made try to compile the code from DJ's GPP (for MS-DOS).
> The maths routine are written mostly in assembly language. I compiled the
> C and assembly code and made libm.a, ranlib the things. All without problem.
> I then proceeded to write a small C program with a sin() and tan() call.
> That is when I had
>
> device not available: 0000
> EIP: 000f:00000060
> EFLAGS: 00010246
> ESP: 0017:03FFFED0
> fs: 0010
> base: 10000000. limit: 04000000
> Stack: 00000044 66666666 40026666 03fffe48
> Pid: 2123, process nr: 4
> dd 44 24 04 d9 fe df e0 9e 7b
This should happen only on a 386-system with no 387. "dd 44..." is some
math instruction (fld? whatever). However, linux depends on the BIOS to
set the %cr0 bits for a coprocessor, and doesn't test for one itself, so
even with 387 you might get this error if you BIOS doesn't set it up
correctly.
If you have a 387 but this error still happens, contact me, I guess I'll
have to add the test-routine to linux.
Linus
PS. I now have a kernel that senses the video card (thanks to Galen
Hunt), and the current version of fsck tries to correct things. I'm
working on a "mkfs" that also senses bad blocks, as bad blocks have
wreaked havoc on at least one drive (instant mess). I have a simple
"fdisk" which doesn't try to change the partition tables, but at least
it tells which devices you can use. Anything else that would ease the
installation?
--[0084]-- (nref = [0085])
[0085] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 11/17/91 22:57 (29 lines)
Subject: Re: demand-loding etc
Date: Sun, 17 Nov 91 22:47:43 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: Linux-activists@joker.cs.hut.fi
In-Reply-To: [84]
Reply-To: tytso@athena.mit.edu
> The right way to do this is to add an floating-point emulator in
>the kernel, even if shared libraries are added. This is a real b**ch.
>I'll probably take a look at the djgpp package, but I'd really rather do
>it myself (it's an interesting project). I don't really have the time
>though, so ...
Did you mean implementing a 387/487 emulator, or something specific for
the gcc soft-float routines? I was wondering what sort of speed hit you
would take (in either case) if each floating point operation required a
trap to the kernel. That's why my previous suggestion had suggested
mapping certain pages into the processes address space, so that the
calling the FP routines wouldn't require a context switch.
I was thinking, however, that another, possibly more elegant solution
would be to assign shared libraries (including the FP routines) to a
segment which would be visible to all processes. Then all the stub
routines would need to do is to do a far call to a predefined segment.
What do people think?
- Ted
P.S. Having the kernel emulating 387 instructions would still be neat;
I was just wondering if it would be too slow for normal operations.
--[0085]-- (pref = [0084])
[0086] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 11/17/91 23:38 (21 lines)
Subject: updated nic.funet.fi
Date: Mon, 18 Nov 1991 06:30:07 +0200
From: Ari Lemmke <arl@sauna.cs.hut.fi>
To: Linux-activists@joker.cs.hut.fi
nic.funet.fi:/pub/OS/Linux
Check README and ls-laR files! These constantly change ..
lib contain new *.s (sig_restore.s and crt0.s) files,
without those would be hard to create sw to Linux.
bin has some new useful utilities, like kermit.
I hope I can get init/getty/login system out within week or
two. Earlier if there is a need for a really poor one ;-)
arl
--[0086]--
[0087] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 11/18/91 00:18 (19 lines)
Subject: protection violations
Date: Sun, 17 Nov 91 21:06:33 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
Now that I have my hard drive set up, I keep getting protection
violations. It mostly happens when using gcc. It is along the
lines of:
protection violation: 0000
The hex dump at the bottom is often different. Like ls began with "c3 ".
But this also happens when I boot up sometimes. Or use ls. But
then other commands like em work. I have no 80387.
Could this just be a problem with the bios not setting up the
%cr0 flag correctly? Basically, I haven't even been able to compile
the hello world program yet! Any ideas?
Is it time to get an 80387 (or is a 80287 sufficient).
--[0087]--
[0088] daemon@ATHENA.MIT.EDU (Wolfgang Thiel) Linux_Activists 11/18/91 04:11 (9 lines)
Subject: Include files
Date: Mon, 18 Nov 91 10:58:05 CET
From: Wolfgang Thiel <UPSYF173%DBIUNI11.BITNET@FINHUTC.hut.fi>
Reply-To: UPSYF173%comparex.hrz.uni-bielefeld.de@FINHUTC.hut.fi
To: linux-activists@joker.cs.hut.fi
Hi,
which include files should be used? The ones in include.tar.Z or
those in the kernel/mm/fs .tar file?
Wolfgang
--[0088]--
[0089] daemon@ATHENA.MIT.EDU (Bruce Evans) Linux_Activists 11/18/91 05:47 (91 lines)
Subject: Re: demand-loding etc
Date: Mon, 18 Nov 91 17:09:17 +1100
From: Bruce Evans <bde@runx.oz.au>
To: Linux-activists@joker.cs.hut.fi
Linus:
>Re: sticky bits, shared text...
>I don't like sticky bits (in the meaning that they lock something into
>memory). I doubt it's really that useful on a small machine, that is
>essentially single-user. It's easy to grow the cache to 6M or more if
Shared text helps a lot with recursive commands. I'm surprised linux
doesn't already have it. Fork is most naturally done by sharing text and
making it copy-on-write or no-write.
>you have the memory, and currently I don't see much unnecessary disk I/O
>in a heavy 'make'. Besides - sticky bits are hard to keep track of.
The cache i/o that you don't see hurts (there should be a LED for it :).
Building the library under Minix-386-cached-text takes 25% longer when
the shell is bash. The overhead is actually for something else - copying
40K data from the cache and zeroing 200K bss. Under another version of
Minix with copy-on-access forks, building the library takes another 10%
longer. There is only slightly less copying because a lot of text gets
copied, and more overhead from page faults.
The other thing that hurts without cached text is that heavily-used programs
will be duplicated in the disk cache and as text. Perhaps mapping the disk
cache to text instead of copying it would be almost as good as managing
text separately.
[big program sizes]
>> The culprit here is the floating point library (i.e., the soft floats);
>> even if your program isn't using floats, printf() drags large portions
>Yes. The right way to do this is to add an floating-point emulator in
>the kernel, even if shared libraries are added. This is a real b**ch.
You would need a printf-emulator in the kernel :-(. The floating point
emulation itself shouldn't be that big.
>I'll probably take a look at the djgpp package, but I'd really rather do
>it myself (it's an interesting project). I don't really have the time
The djgpp emulator (in 32-bit C) is 14+ times slower than my library
routines (in 32-bit asm) (the emulator in Turbo C++ is only 7 times
slower :-). It takes a large amount of code to the emulation compared
with doing the guts of the library.
>John T Kohl <jtkohl@cs.berkeley.edu>
>> [486/33 bootup problem]
>This would suggest to me that you have one of those braindead "slowdown"
>devices which aren't really completely hardware, but due to some
>software solution. At least some Gateway-2000's had this, which meant
This doesn't explain why the slow mode worked to boot. Perhaps the fast
mode is done in software ;-). I guess the bug is really in the BIOS+linux
with a hot interrupt.
>nicholas@cs.uwa.oz.au (Nicholas Yue)
>> I then proceeded to write a small C program with a sin() and tan() call.
>>
>> device not available: 0000
>This should happen only on a 386-system with no 387. "dd 44..." is some
>math instruction (fld? whatever). However, linux depends on the BIOS to
>set the %cr0 bits for a coprocessor, and doesn't test for one itself, so
>even with 387 you might get this error if you BIOS doesn't set it up
>correctly.
The error seems normal. You are lucky to get it instead of a crash. My
1987 Award BIOS and 1990 AMI BIOS can be relied on to set up the %CR0 bits
_incorrectly_ (Award always clears them, on a machine without an x87).
After booting, AMI on my 486 has set %CR0 to 0x10. The relevant bits are
0x01: MP (Math Present): should be set (WRONG)
0x02: EM (Emulation): should be clear to use x87/486
this is what gives the device not available trap -
linux must be setting it
0x04: ET (Extension Type): should be set (always set by 486 h/w so BIOS
gets this one right :)
0x08: NE (Numeric Error): 486 s/w should use this to get error reporting
via exception 16 instead of the crufty IRQ 13
necessary for 286-386/287-387 systems
Perhaps Linus meant the coprocessor bits in the parameter RAM. These had
a reuputation for being unreliable for distinguishing between 287's and
no-coprocessor but I think they are OK for 387's.
Bruce
--[0089]--
[0090] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 11/18/91 07:07 (123 lines)
Subject: anwering as best I can
Date: Mon, 18 Nov 1991 13:57:12 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
tytso@ATHENA.MIT.EDU (Theodore Ts'o):
>
> Did you mean implementing a 387/487 emulator, or something specific for
> the gcc soft-float routines? ...
Real emulation.
> ... I was wondering what sort of speed hit you
> would take (in either case) if each floating point operation required a
> trap to the kernel. That's why my previous suggestion had suggested
> mapping certain pages into the processes address space, so that the
> calling the FP routines wouldn't require a context switch.
System calls under linux never require a context switch. In fact context
switches are extremely rare: they happen ONLY when one process stops
running and another one starts. The floating point exceptions would be
slow, but that's mainly because they would have to decode the effective
addresses etc.. Not very much fun, but somewhat interesting.
Still, there are a lot of reasons to have a FP-emulator in the kernel.
If somebody wants fast floating point, he'd better get a 387, but I'd
like to be able to support all programs on all machines independent of
the 387. Currently the library is soft-float, which means that you
cannot reliably use it with a program that has been compiled with
"-m80387". Big drawback, as is the possibility that someone has a
program that uses the 387, and half the beta-testers cannot use it..
> I was thinking, however, that another, possibly more elegant solution
> would be to assign shared libraries (including the FP routines) to a
> segment which would be visible to all processes. Then all the stub
> routines would need to do is to do a far call to a predefined segment.
> What do people think?
This is the preferred solution: it's simple and easy to add to the
kernel. The routines in libc.a would just be stubs calling the "library
segment". No problem, except for the math's.
Also, I don't find the math-instructions that time-critical: they are
relatively few in most programs. If you do number-crunching, you have a
387 anyway (as they are quite inexpensive nowadays - I got one just to
be able to test the kernel routines).
Ari Lemmke <arl@sauna.cs.hut.fi>:
> lib contain new *.s (sig_restore.s and crt0.s) files,
> without those would be hard to create sw to Linux.
>
> bin has some new useful utilities, like kermit.
Kermit has a problem with ^C. I didn't even try to fix this, as I didn't
know if it should be fixed. Anybody know? It traps it nicely, and
exists, but somehow I expected kermit to ignore ^C when in terminal
mode. Oh well, I ported it so that I could download files, and it works
for that.
pmacdona@sol.UVic.CA (Peter MacDonald):
> Now that I have my hard drive set up, I keep getting protection
> violations. It mostly happens when using gcc. It is along the
> lines of:
>
> protection violation: 0000
>
> The hex dump at the bottom is often different. Like ls began with "c3 ".
>
> But this also happens when I boot up sometimes. Or use ls. But
> then other commands like em work. I have no 80387.
It's not the lack of a 80387 (and don't get a 287, I'm not sure I can
support it... working on it). It seems more like a corrupted filesystem,
but I have been known to be wrong (sometimes ;-). I'll post the (new)
fsck with binaries to nic some time today, and they might show up
sometime. Still even more beta than the system :-).
The "general protection violation" is a general error: it happens at
most programming errors (or if you try to use minix binaries, or if the
executable file is corrupted). You can see where it happens by looking
at the EIP:-line EIP: segm:address. segm =0008 means kernel problem,
segm=0017 means it happened in the user program. Note that kernel
problems don't necessarily mean that the bug was in the kernel: it might
be a user program that gave a bad pointer to a system-call.
Indeed pgv is so general that it might be anything: a unexpected
interrupt (but they should be trapped, so this isn't that probable) or
something like that...
Wolfgang Thiel <UPSYF173@DBIUNI11.BITNET>:
> Hi,
> which include files should be used? The ones in include.tar.Z or
> those in the kernel/mm/fs .tar file?
> Wolfgang
I use the ones in include.tar.Z, but they should really be identical.
This isn't absolutely true, but if there are differences, they should be
minimal. I'll have to consolidate them (no big problem now when I have
no minix include-files I can mess up with).
Bruce Evans <bde@runx.oz.au>:
> Shared text helps a lot with recursive commands. I'm surprised linux
> doesn't already have it. Fork is most naturally done by sharing text and
> making it copy-on-write or no-write.
Oh, shared test works fine after a fork (try running 10-20 bashes inside
each other), but not when executing a new program that already is in
memory. It should be easy to check for (especially once demand-loading
is in place), so this too will eventually be implemented (so that bash
doesn't have to be loaded completely if it is executed from within some
other program).
Linus (torvalds@kruuna.helsinki.fi)
PS. Small bug-report: signals weren't correctly reported as the cause
for exiting, but they are now (in my version). 287-coprocessors weren't
noticed at all (this was the problem with nicholas), and I'm not sure
the code uses them correctly now either, but at least it tries...
Coprocessor errors now correctly cause a SIGFPE, no longer the debugging
info. Likewise "not-present" errors.
Also, variable speed serial connections are now implemented, and seem to
work (testing from kermit). Direct reads/writes to a >64M partition
should also work now (thanks to who-ever. My mind is going... )
--[0090]--
[0091] daemon@ATHENA.MIT.EDU (John T Kohl) Linux_Activists 11/18/91 18:34 (22 lines)
Subject: BSD networking release 2 code
Date: Mon, 18 Nov 91 15:25:08 PST
To: linux-activists@joker.cs.hut.fi
From: John T Kohl <jtkohl@cs.berkeley.edu>
Reply-To: jtkohl@cs.berkeley.edu
I plan to (slowly) work on porting various bits of the BSD networking
release code to linux.
I have a running version of their make, but need to apply a patch I just
saw on the net today, and I'll upload it somewhere soon (watch for
details).
Perhaps the device drivers there for the i386 will be useful?
They include:
com port(s), floppy,
NE2000 Ethernet, WD8003E, WD8003EBT, WD8003S, WD8003SBT, WD8013EBT
console & keyboard
various disk & tapes
also might pick up VFS, bsd ffs (may be incomplete?)
John
--[0091]--
[0092] daemon@ATHENA.MIT.EDU (John T Kohl) Linux_Activists 11/18/91 18:57 (15 lines)
Subject: GNU emacs?; more 486/33 info
Date: Mon, 18 Nov 91 15:53:42 PST
To: linux-activists@joker.cs.hut.fi
From: John T Kohl <jtkohl@cs.berkeley.edu>
Reply-To: jtkohl@cs.berkeley.edu
Anybody working on GNU emacs? "em" is passable, but I'd like the real
thing...
In other news, I have now been able to observe program execution speed
differences when I toggle the Turbo switch (easiest to observe by
scrolling lots of text on the console). So it's probably some sort of
timing glitch that prevents booting at full-speed?
John
--[0092]--
[0093] daemon@ATHENA.MIT.EDU (Michael K. Johnson) Linux_Activists 11/19/91 00:25 (35 lines)
Subject: mtools
Date: Mon, 18 Nov 91 23:15:38 CST
From: johnsonm@stolaf.edu (Michael K. Johnson)
To: Linux-activists@joker.cs.hut.fi
Hello!
I am a new user of linux, and am trying to get up to speed. I began installing
linux on my system this afternoon after my new hard drive came, and have
now got things going so that my root device is my hard drive. I would
like to transfer some of the programs like gcc et. al. to my unix partition,
but I can't figure out how to use mtools. I have to read off floppies, due
to some craziness with my hard drives.
(Because my scsi device driver
for dos doesn't work with DOS4/5 large partitions, I cannot use both
Hard drives at once. I switch by going in and out of CMOS setup, telling
the computer that I do not have a hard drive if I wish to boot DOS and
use my scsi drive, and telling it about my IDE drive if I wish to boot
linux.)
This is working rather well, but I have no way to get the basic
binaries from the distribution onto my linux partition. I can't read a
floppy and so I can't get kermit to transfer by serial link. Catch-22,
or something like.
So, (the point of this long letter) I would appreciate any help with
mtools and any suggestions generally.
Thanks a lot!
michaelkjohnson
johnsonm@stolaf.edu
I don't do .sig's
--[0093]--
[0094] daemon@ATHENA.MIT.EDU (Nicholas Yue) Linux_Activists 11/19/91 01:29 (21 lines)
Subject: Maths library
Date: Tue, 19 Nov 91 15:12:42 WST
From: nicholas@cs.uwa.oz.au (Nicholas Yue)
To: linux-activists@joker.cs.hut.fi
G'day,
Is there anyone working on a maths library or are interested in the maths
library. I am attacking from a few directions concurrently :
(i) 80386 with 80287
(ii) 80386 with 80387
(iii) emulating the 80387
(iv) porting the BSD-reno math library distribution
everyone of them have their associated problems. I have been in touch
with linus over the last few days but I am afraid I will be slow down
his work on the kernel. So if anyone have any advise or suggestion, please
e-mail to me.
Thanks In Advance
nicholas@cs.uwa.oz.au
--[0094]--
[0095] daemon@ATHENA.MIT.EDU (John T. Kohl) Linux_Activists 11/19/91 02:37 (9 lines)
Subject: control-U kills console bash?
Date: Mon, 18 Nov 91 23:32:18 PST
From: jtkohl@antipodes.Berkeley.EDU (John T. Kohl)
To: linux-activists@joker.cs.hut.fi
Cc: jtkohl@cs.berkeley.edu
It seems whenever I type control-U while in a program, the console bash
dies and the system grinds to a halt. bug? feature?
John
--[0095]--
[0096] daemon@ATHENA.MIT.EDU (John T. Kohl) Linux_Activists 11/19/91 02:52 (9 lines)
Subject: control-U kills console bash?
Date: Mon, 18 Nov 91 23:32:18 PST
From: jtkohl@antipodes.Berkeley.EDU (John T. Kohl)
To: linux-activists@joker.cs.hut.fi
Cc: jtkohl@cs.berkeley.edu
It seems whenever I type control-U while in a program, the console bash
dies and the system grinds to a halt. bug? feature?
John
--[0096]--
[0097] daemon@ATHENA.MIT.EDU (Wolfgang Thiel) Linux_Activists 11/19/91 04:47 (144 lines)
Subject: mtools patch
Date: Tue, 19 Nov 91 11:14:31 CET
From: Wolfgang Thiel <UPSYF173%DBIUNI11.BITNET@FINHUTC.hut.fi>
Reply-To: UPSYF173%comparex.hrz.uni-bielefeld.de@FINHUTC.hut.fi
To: linux-activists@joker.cs.hut.fi
Following are patches for mtools2.0.4 to correct some minor bugs and to
read big partitions. Also included is a small patch for fs.h to make
this work and a patch to floppy.c to support these strange disk formats
Atari-St users love.
I hope this gets out ok from this EBCDIC mainframe.
Wolfgang
table
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 mtools.tar.Z
M'YV04HH$(=*D"("#"!,J7,BPH<.'$"-*1 BBH@T:-$ J,@1AD:.%3UN!%DQz
M!HP;&4'4B!%#1HP9,&;4N,'QQHT9,S;"F,BSI\^?0 '4F4,GC)R* .2\>4,Gy
M:$.E3)U*G4JUJM6K6'E205,&A)DW;-B\N9/&S1D0<,+0&<-U#@BC7>648:,Vx
MC9VN=-Z :),7[)P6,EQX3+L6#9LR=]F H.%"P=8R>4",>2-'[A@Z(.:\:=.Uw
M35G*(,34.>,6A1DV0]&4/4N4S)LZ=%*\=4/F;=BQ(/*\!I$7Q!W*:WRGH8-&v
M@9 D1X@\F8+6*)WA:=ZXF=,X">8T;L.PT0S"39DQ9>;,,9I'00O>>B=7_HZ9u
M>-<[2LU*II,'3AD7:$"@R"OV3ADY+^15!QSVR9&">>A)AD889G55%@AEC8$:t
M&66\P$99=>#Q@AG4Y?<@47+4<5EH=9AAQG]?<!5&;6)\(8988ZSAQE%F*-6&s
M A75,5T:9WA7VQQH4-:>7CK.P:./$+J!&8.U6;89'&D<QAM7(*SQGW=L-*9 r
M$F;DMML=#+9'Y0D@,GA&&2=X)1:!D7TE1QMJE39'&5U1:$<:X%$WAFRZU;'7q
M4$MN]X8"81#(1F3N-5=8> E:*0>6+[RXQA=DR&''AFO"D8<+8[@ PA-LU!8$p
M%4%(D40+4U !PE#_N>79&6C0H0 ;5DZIEI8)Y'H%6&:<828(6Z4QEP(*Y)K o
M@'/D848,-P$Q61MIR84'?G+HX8*.:;0@AK"'G1BJ"Q02F]6XY)9K[KGHIJONn
MNNRVN^YI;[#)*1EIF.'NO0MQ=%%&(W7T$4@BD5333!6MU%)+-]@@@T<@L+1Pm
M##KA*[%$@!J%%%1-787QQ!QW['%5*H2L9KR:<NJ"20E,H18(3KQA1T4R-"R#l
M#C/I0$,.#>>00PSFM7 >O/*.D8 1<J3!LLL-UP "###83(/-..2\LP(A5VWUk
MU2I0+7+"+. 0 PA6]WP>USADY+//.(*0P!X5W; P"R#DP((,+- PLQL #j
M'C+,H#<>,.2]-Q%&@- '"PF\H ((,]@ PQI")-FP"S(T$7FE=G6EP@MIK]TPi
M1G?'/7?7=Y?.M]][!_XWX88CKC@(;C\>^8,Q4&XY")C?!3;G%7DN PXXW!T#h
M#J,'K_??,0CQ-]-_#U'XX8DO7CM&M],[AY5TT*$YYRNHS78,-CB.]]UTXX#Zg
MWWTO+S@>K!^N0/>>@R^^2<6?O[<,02Q/]^#/L_"^]PW#@0QL@+>\E<]^?,M?f
MZO;'ON>EK0\[2)OBT@8V$$A!+0YRBT?<I!*FK4$,+Y@#W&+&09@\3@QP$&'#e
MO (:&=3@A"E4@$\XA)]YU>MC]](71O[EKWZ%A(<@><E*"N:PES -!C8H"0QJd
MX,*(X?!C%3N*1C:FL:5D[(E8S&(6J^:5#IT,!D,KVM%>%@.E,4T',YC9#*(6c
M YWQ[&Q=Q$\8C=8R,IJQ:3C10>"DQC.L^3%D6EN<#6[ @IN K6II Y&(,",:b
M$Z%(1;790^?88K'%M8@,:@G##HSU.CB\H2S:.TIO,%F4T, H."@PB0PR(H8\a
M:&\.LME<YXITI#+\*$AR8"2E$+/)Z.$.,7CJ"@H\T@.OR*4,L>1<"-1&RQ[9z
M,C.XU.6+WA"C&6WR==.,47?JT 8Q_&=WL]R1,VM#R:.T:$!Y(649(MB[9B*Iy
MG*&A5!IRV<O7P: %$BH#@_#6 GKE,C*R;*<XW[D@<WYA,CJB0ST7QRHYN&4Hx
MJYD2=DQ)S>#($HZ#+.0,0'"V%B22#B$:42-/)(<4Z3.2DRQH!2^9R5[ZTI.@w
M_.8H,TE1;:82!JL,C2O#D\QP&FF<T!12/.VTT%_>"3SZ(:8QZ=3391YKH,\$v
M93RS*2,Y7-.2I]QF-[\94&9"E9PJ/2<<THE!=GKUIP2UV"7GJ=!<V1.?A]EGu
M#/K)5H#R[JRU!*M:#_H:)16UH0\UDGR(,U&J@E.+B$VL8A7+EZ5LQX;V6NRXt
M=,@OD@0,8$ L"4I,0L2##? F26Q82VA@ R=*EEU1O)@5L4+%T[KVM5;A8A/"s
M8"4S1.D^"YOC&)/6,!O0+ 8Z< D?Q0:"V=;VMKJM(V^9%=RFQ2 C;9S:'_T8r
M2,;A+69AJ\@(TC8"!7TG.(D:@G1L>X8ZR,4KMV7A433#&1"4 0]A@-9AW/*&q
M+MDIF"V8@WW&4"\\9:8,=$ 6=T$@A/]8Z3!MHHL=*$/?+E7!#6G 0U#K$*HDp
M2:@.%.(H$80P!2)(+KQ&8$(0CC %!2PS;<X3,8D34,P6/"%M3""<BJ? 8H[.o
MP<0@B'&-QS &&"?!"52H\864E+8I(($)21 "BXN,A%+5&$@6:T$8B.NWEG#Tn
M;-P=,%N^.Z6NB-<-Y#5O5VPK)0ZRMROOC2\<Y@N"^AH5O_K]3G_'\-\ QU"[m
M!#;P7""CIC LV*%M=C"$)0RDUU0X0A/J2@LVW.$/4RG%(R[Q,H<P!! 4\PP\l
M1G&((UUC%\-8QIQN\8V7J>-+9[HB2 :RD$')9"0KN0=,=G(QH7P4*5>W+,,Qk
M66Z)1D>DE;&WO]4!9Z/[1I\E*=="X_5N?\U<&>0 C3$C=B"GBT@NTN_788/Cj
MM9/8T;1QET*V]0X(C% %)C#A"T/( A.^789P=^4*3Y "$5" !]F@ 5BL&(+i
M?%#O+<"@"R#HWKWSS91]]SL& .<!#T" @Q0<J'LC '=9NL*$)SCA"/3N#POPh
MH!I8I2 !]X:WO.G=<32D0.'@2P$?1#YO//3'X=[.T5>3A!DW</.@J)F#2U^7g
MEZ(HQN9;/8J;+TP4KMY5JD#_@AG4XE)?)@KHWA1ZEXPP*MZ$X46,DB6UKU;=f
M%[*@!DK+MK%7\G6:=+MW?>A<O?03 COM.W?(!($D>Y< ,\"A:$HR PI:\Q\Ye
MP$T$1"B:[DY0@C'H($UN8$IF!N3)7-J2"VX0 =S@GH((PB\!=OI"6;Z"@LIWd
M+@%R"?"C4NEYM'^>DXN+5QG<T.4W(U7K6Z^VR&H@-QN$'9$8S9L-<'9V$'S>c
M#?'M2C'?FQ;:H,#M/@ ^9TJOM@2L_=YFJ$TQ5>\&%"B_#'!KPQLRS >C[EO[b
M%'(X"!8. ]E(\O)UOSLH]<[WROR]!'. O.2[$WSF&ZM 2I$#"D2 :SKHH,WVa
M$7F>AWZ9MWEOT'EF92SO-1RDEX )D'9TAWIU]DM+1V&8$2W!%THJM';>84O/z
M!'NQES5<= ,UT#5?(W9C(S<YX!&]ERN0Y!;%Q'+6]X+VEP!S<AD,9FD@((/3y
MP1XU^'PO" (F8 +_A8,.]7#-=W[-5Q'/)X,IY(,'$H$@%08Q H,[&&_S]H27x
M(1LOH!_N9$OV%H2+<X-Y<826MX3NM1UE\#_&,H55J(,5=W$9-Q8;5W)<Z(5?w
M%88GY19CR!X,-H#-!X&^%X%N-88,,AR1L64Q$E%=E2M@00:4\@96" ,1%(* v
M9&TU0$#@<X*X9VS@4X+,\C4M^'S19VDM%@/F]WG/1W"8$0+%Y 3EQ@1"2(3(u
MYX9K $NG9W=X1P?L1P<4XGX@( (MLW@$(E0<5 *U88LJA(P@\()PPXQD"!K6t
M@SVO)']PHXQPXXQ%6(:P=(:Y4H!@=H U&'KF57VHF("":"R%.('><0?-(0<9s
MV"IPPX%T0B&U 8*Q5UW,0DC#LU'9U7Q+1P=?<!BL%X-8:!IJ09 UZ$]?0!3.r
MH8,!V9!%D4L!IQ^LN&]@MC*+$Y$*Z8 ,29 Z*(/^M'IT $L5U 1$D 12\ 53q
MD 1:4 0@T(4H\(5D(!M-, 5%, 14$&\LZ9)%$$%.E0!)1W0Z.),S!TKVYH1Dp
M*!OGP9 .29%-.4\#N7IW2'0-F09ZL$Z_=W,!J8,7F7P!B8YIHXOKMW>^V'=_o
MIXP]@(S9N(=K209P$XT.]99P8Y5&DI5TZ15J(9'.D9<<N7IYZ90320>!*94$n
MF9=#F7.(R95J\9;6R!OP6(5MN2(J))<J9)=8B7UZ*9!/20=P\Y=N,'E2V9FBm
M65($"3>).12HR9BQ$4':A@/\F /<AF5T!YHA>9 !V9&?)Y@/64P1V9D5B6_Zl
M!I8:N9E3Z08+:9BK=YLC-Y)*8I*+@Y(JV9,O&9-XB%9@6%PXJ9,\V9(O"93-k
MUX0'J86Q<2!!*90W1Y3%9)3861M(J1]*Z8,<A3NC.9CS^9%4:9V8F97@F2MSj
M,2<X9BRI:87LF5<T9V]QB'$N1X<<QR,F=Y_U^9!1:9KYV87[J95TEW1=64Q?i
MF9$*U3F"2)9Y9Y:_Z'?!J)9LV8QNF:*6F9<7ZI=[V9DP*I"'F:*\F4N%2:%Nh
ML)AM@'-#P:-*UYC(^)C8J**4&9=^Z%!UF7-7F96?&:.#^:0TNGJER9>Y5*6Gg
MJ54^JD(:JA:>9XDB*#+#$YO8U8GGL3#D@T17AC:UJ7XCVGXF*@)#D'.AE!F9f
M&6@@P(P311=R<":BM""L!R<2YF9#&GE+.A1-JCG:F9,[N9+>601PTP1!@ 7He
MQ@15D"I%( 4U*"&26 :F49,.6(JGZ(V8AQB:%XX(^'GD.'KG"*)JUR4H$ */d
M&(EN,817.'(W>)>RX8J+RIV.ZI.I"*;ZF -5E@-1@X(@L#"$Y!(;U8+IMXN]c
M6*)_-P5):J=9B:=ZZA:)AQESP'A"\GB&>JOSEJM8Z7 .R*ES\JDU**H<%0.Db
M"HZ<-XX 5HX-Z*J$Z$MF0&&*,09Y,&2_2"*.A'=G 8)[02%9TBF[)D;*Q6R^a
M]4+!A3/2!D=M8+"<DER^IC3@$VPUP$9N-&U;5UTYP(\X=4B !$<A.S[-2IO-z
MERO/YT_[IA8@)81+ SBH*'>GERMWH!I2$JN)=P9OD(KWF@!NRHO[!W__QP4By
M ']("R%N(1<KTF9N<"AP\Q]A,">SD0=@$ADHD <O@)P@\ /!"#=&<09VX&]=x
M@)IE< =DADRDJHXFDG-H0**OT9HWFRMG4I(HP"#=6+?.!ZMZ:[:F" (GD =Iw
MP@?=][?_%K@GD 4G$(4KJXYBX+1K4(DBTP9TX4T'2SE@I&P+B[$-BT<<.S42v
M>[ES4;&<>[' QD0TLU'2)JQ<9*PH2[)98[+$8Q)FH[)U^SI5&QP<U(X@0+J*u
MT8A#JW<B4 1*(E-4XKL+AAKM!;SZP1(*8A14J($I\'\B (AU=QJI(;>P87]Wt
M.P>F<5O79W^D*+[!![B\>@)< .-:[-TIU_0>F_PI *R85MX8$OOUP(L<3(Qs
M, ?SM[;C2[DAJ(\P(#<LD1'(RA+" SYKZE$1N(!T,$S,]WG#NW]$L&?: P++r
MRTU=X;Q;V[75&XS8F[UPR[UT2W??F[?3\8-^.QV VP/%-+B%>[@NG+@P++B,q
M"[0K"R)CH"GRJU+TBU[W"Y?Z,;^RL;Q?6KE.2P:ZMKD*B[H9Z["D-5P2N\2Fp
M^\1VE+I/0P.LV[&N*S(+0T NP8DE:VQA/#=6YJR^- 06ERIL[ 0>UH@XJ[/"o
M5+-S][@5+ )&D%Y(J[0BX%YX@!TE"3<N\Q_P,1S"Q+5>"[;S-Y%W.\*Y\K;;n
MVQIS6X-V"V#@J[>6W+?Z@;@ =\,GX 8S/!MS\,(Q[ 2-6[>K6GVP:&Y)O#AMm
M(!=NT,06F\51W#1,1,7&%LNK=\6]9LL-.P/"%KI]9(G5%3Z%1,:S:VS([#8-l
M_*KZP</0LA]E "UH>P>R8:MW(0?Y-B<Z/,?IQ;-OX+/?G"MY3 1ZT2=OP6-Ek
M,%8@T,?Q]\=5VWJ^"\#!IQ^*+!N,?,V0+,E 8L*6G,*:[("<K,*E;,,Q3+@@j
M8+BD;,HXG,J$&+GZ-+G5U09SX!I>E+"_O%PW(&S"O$:Z?!X6C=%R=+JVW-'.i
M1C/0Y<7&S$4T0#P;*[L^9:#PU(.7L04RT 5%1:U&. <!$ID6=5=/U9[1>Q1Nh
M\((XK=.^A 1["$X"1=0UC0:EG--%!77?Y&:J0084PGJ6^;7@Y%0T6=0@H 8Zg
ML@9;\-)4[4LYFQYP,0=@VU40Y&W+Q'/UX8%=LF!I4!LM>01?0 59 4_^=6\f
M4=?@1G,@L-=]_=<_&7,@, +U4M@<1@3LYFZ9 5)L<11E02%X0%POS0(V((HJe
M.]0TK5(V30=)O=-)ZM.VZ-1X!511O8>GO=1-W8AA'=53K=2^9-52UXQYO=7;d
MF(-OK4RMG59'0=9NL 8P<-H!6MLJM:!WH-Q@/7/PU*"P MW#_4SP9-QF30,)c
MH]2OL]:2T=;!_4!FA6/T81^%C==ZC1R)#=C@2=?HW6Z&C=A^[=ZLS5V/+=^1b
M/=D35]ER<-E)HMD5?<C:0\LFO5P-"UQ[%+&[3.#WD6Q8C."K:S-=+%TM+:8Da
MB#?!(]/:EN'# ]IL^KAKW,94\,9Q+-3JF+/A;,=\F\=[+"7PO+0+2!0J5,ARz
MX.#X#,)>W<AC"V"0;"S^'+>4W+T$;2P"O<)%SK(M?-"?',.BO- TS.2*B\KEy
MK(Y".<YZ44SN6EWWE2<&'N',UC2!8S,>P>!-"4Q>#N$;S6PX$%Q;3,P>2VW5x
M-0,TP (S@#/(2N=E]\P5$=?:M7KTTB6O,P504"J5UE7_X]C1)]]?,) 8@@>-w
M_C^*-")=7B=H'AY;\,DV"S][< )!< )_]P)V(NJ2& 0BD"MP P-, #<MD>IPv
M@P)2A0)!W'FR$3K&DZQP$S?NP^F>#NK!*.J(\0)J 0.GG@"IONHRX^KZ$>NSu
M+GZV'CITDS30PX:=_NFA/NH8'03F8Q*G?NRL'NVA ^M*HA_-7NMP8SXCQ.HPt
ML.O>T^O7'NS9ONTQT.U+@^RMOC2OSNSVYNSG[C>X+EKLOC8G( 2^+@+ ?BD8s
M+03%[NW)CN_+/NZRON_FSG#0GNLY$/"=3O#O?BE0, 7SCNKU_NW*+NZ8$?'Zr
MP>\4G^X-<P/3SNL:_^O8+HE"L.W$;NPAW_#AKN\G/_'H_N\F@?$#7_ '3^ISq
M,/,SP!+TKNHB[_ D3^X2[_ ]'^TL ?1#(/0Q/P=#L/ W#SXCK_.T[O .'SI+p
M _1$8/7P+HE$H/5*WUM=#_'E#O:A(_;K[C^\C@5FC_"2B 5J;^_@GN]N__1Ro
MK_)C3_?MSK@;3_19L/=+G_-_O_-P+_AS3^WJR[ZO;L0L$XL,'_=^7_)OK_EAn
MGW;=$]<0!^AK]SJ-GFI50*E? $[=@]^+[F!.D 18 5#@-]N<&$9Q@/)XM-Gm
M0"_41 =9@@8^8/NXWQ4\8 9CH"3!/_Q?O#@W44BW5\;GL3/C,YLA#GKS.GKEl
M9U:". *D+^B+4P6Q/_N'SCV^USU2!:_B^#]*:(,@M4BNISED <Z6.DZ]S]Lk
MJ.*'<7QP@)'U1^ULZ%F5)3A%^'(%X%D.>8K.%),'$V'RE/ZR 6ZA!,B VD %j
M@%H$G( @@*E1ICR% 7D:-^* +&(XN 6J0P7D3P!D ?/O[0@>[),"DT_PF3S]i
MSP<4J1:HC5J@98*!^R8B;8N2-,)6P J8?]X(]!D.&0);BJ 1/()(, DJP27(h
M!)N@$WR"4# *2L$I2 6KH!6\@E@P"VK!+<@%NZ 7_()@, R*P3%(!LN@&3R#g
M:# -JL$UR ;;H!M\@W P#LK!.4@'ZZ =O(-X, _JP3W(!_N@'_R#@# 0"L)!f
92 @+H2$\A(@P$2K"1<@(&Z$C?(20,!(^!(-Xe
d
end
--[0097]--
[0098] daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 11/19/91 04:48 (82 lines)
Subject: The new TODO list and a FTP-admin specific question
Date: Tue, 19 Nov 91 10:27:48 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
To: linux-activists@joker.cs.hut.fi
Hi Linuxers!
I am just mailing to remind you that there still exists this TODO-file.
If you have ported anything lately or can help me fill the questinable
things, please mail me.
Following at the end of the file is the latest release of TODO.
But before you start dropping this into the trashbin:
All FTP-Site-maintainers with Linux-specific stuff, please read at the end
of the mail!!
=============== Following is TODO =======================
This files contains the status of several tools for Linux
Currently ported projects:
Name: ported by: available at
bison nicholas@cs.uwa.oz.au tupac-amaru
nic.funet.fi
flex ?? tupac-amaru
nic.funet.fi
diff ?? tupac-amaru
nic.funet.fi
kermit ?? tupac-amaru
nic.funet.fi
===============================================================================
Projects currently under development:
Name: ported by: Remarks
c386 blum@messua.informatik.rwth-aachen.de Is working under Linux
A cc for this exists
Is currently teached
ANSI. Any help on this
would be appreciated.
gawk nicholas@cs.uwa.oz.au Still needs a working
mathlib.
VFS proven@athena.mit.edu VFS=Virtual File System
Will probably out with
Linux 0.11
Networking jtkohl@echidna.berkeley.edu Mainly the BSD code
Perhaps even ffs
=================End of TODO=======================
Now the stuff for you site admins out there:
What do you think of a kind of mailing list for new sources/binaries?
E.G:
You get the new kernel code. Instead of installing it directly, you post
it to the mailing list, and it will be automatically installed on all FTP
sites that have joined the mailing list, including yours.
So we could keep the whole archives consistent and thus spread the load.
Currently, the host who has it first will have the heaviest load.
(But wait, funet.fi is the one to have it first... I think we shouldn't
do the list :-)
You might even offer the linux community to join this list read-only, so
everybody who wants to, always finds the newest binaries in his mailbox.
Of course, this depends on
a) if you have to pay for mail
b) how much you have to pay
What do you think about this? Do you like the idea?
Please send in any replies/thoughts you have concerning this
OK, and thank you for listening
Robert Blum
--[0098]--
[0099] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 11/19/91 05:05 (98 lines)
Subject: general
Date: Tue, 19 Nov 1991 11:56:09 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
John T Kohl <jtkohl@cs.berkeley.edu>:
> Anybody working on GNU emacs? "em" is passable, but I'd like the real
> thing...
I'd be interested to hear about this too.. I haven't got the disk-space
to try to port it myself, but judging from the ease of porting other GNU
software it shouldn't be too difficult. Of course, emacs is rather big,
and probably wants some features... ? If anybody gets a working binary
(and no, I don't think we need all the features: gif-viewing, mail, news
etc :-), I'm sure it could be set up for ftp somewhere (both nic and
amaru accept incoming ftp: nic in /pub/OS/Linux (but it won't show up
immediately), amaru in msdos/replace/incoming or something like that).
> In other news, I have now been able to observe program execution speed
> differences when I toggle the Turbo switch (easiest to observe by
> scrolling lots of text on the console). So it's probably some sort of
> timing glitch that prevents booting at full-speed?
Do you have any problems at all using the floppy or harddisk later on?
It might be that linux uses the IO-ports too often (there are usually
(always?) two "jmp $+2" between IO instructions, but on a 33MHz 486 this
isn't too much of a delay). I cannot imagine what other timings might be
wrong (but if I have forgotten "jmp $+2" somewhere, it's probably in the
early code, ie the one that is used at bootup.. I'll check)
mgfrank@acsu.buffalo.edu (Marc G. Frank):
johnsonm@stolaf.edu (Michael K. Johnson):
> [ mtools ]
This has been said before on this forum, but it seems there are enough
new linux-activists to rehash the problems with mtools:
1 - you have to tell mtools which device to use. This is done by linking
(or mknod'ing) the files /dev/dos[A|B|C] to the correct device. (ie
mknod /dev/dosA b 2 28 for a 1.44M dos floppy in A etc).
2 - linux-0.10 doesn't support reading/writing from partitions >64M. Be
VERY careful if you write to such a partition: the blocks wrap around at
65536. This is easily fixed (I think): change the unsigned short b_blknr
in buffer_head to unsigned long, and recompile the kernel. I cannot test
it (both my harddisks are <64M), but this should work. Thanks to xxxx.
3 - due to the bug in /usr/include/ctype.h (tolower), mcopy isn't able
to do things like "mcopy 'a:*' .", as the names get confused. You'll
have to give the new names explicitly, or recompile the mtools with the
corrected ctype.h (mtools source can be found at nic.funet.fi:
pub/unix/i386/isc/source/mtools* and from several other ftp sites)
4 - /dev/dos[A|B] is hardcoded to 12-bit fats, /dev/dosC is hardcoded
for 16-bit fats. There is no /dev/dosD etc. If you have a small
harddisk (12-bit FAT), you have to call it A or B.
Btw, mtools is not really needed: you can write a tar-file to disk with
the rawrite program, and use "tar xvf /dev/xxxx" to untar it unto the
linux partition. Thanks to "whoever" for pointing this out (and I hope
nobody minds the fact that I never remember names)
nicholas@cs.uwa.oz.au (Nicholas Yue)
>
> (i) 80386 with 80287
I've tried to get a 287 working with linux, but no luck so far. Does
anybody know anything about the problems with 287? I tried to put it in
protected mode (FSETPM), but that didn't seem to help. I seem to be
able to correctly identify it (check for a x87, and if ET is cleared,
it's a 287), but it simply won't work it seems? Any pointers to it? Is
it at all possible to use a 287 in 386-protected mode?
Again I have the problem that I cannot test my changes: the few
(unsuccessful) things I tried had to me mailed to nicholas.
jtkohl@antipodes.Berkeley.EDU (John T. Kohl):
>
> It seems whenever I type control-U while in a program, the console bash
> dies and the system grinds to a halt. bug? feature?
This is an old debugging tool I think. I was testing the keyboard
interrupts, and got cc_c[VKILL] to send a SIGKILL to the processes in
the tty-group. I used ^U as I never use it myself for other things, and
thus promptly forgot about it when it worked. I should make VKILL work
the right way (ie just kill the line in cooked mode(?)), but an easy fix
to this would be to comment out the line in tty_io.c that calls
tty_signal or whatever, and recompile the kernel. Thus you could call
it a "feature", even though it isn't documented anywhere (unless you
count the sources as docs, which might not be a bad idea anyway).
Linus
PS. I think I have found the "Invalid TSS: 0000" error that a couple of
people have got after soft-booting from DOS: possibly the eflags NT-bit
was set, in which case an iret would try to change to TSS 0000, which
doesn't exist. It should be corrected in the next version (again, I'm
unable to test it - I don't get that error).
--[0099]--
[0100] daemon@ATHENA.MIT.EDU (Brian Syme) Linux_Activists 11/19/91 05:20 (18 lines)
Subject: Newcomer (sorry folks just bear with me for a min..)
Date: Tue, 19 Nov 1991 10:09:29 +0000
From: Brian Syme <gxlr07@udcf.gla.ac.uk>
To: linux-activists@joker.cs.hut.fi
Before I start pestering people with daft questions.. is there such a thing
as a Linux frequently asked questions list, or similar? Also, is there a
list of who is running the system, on what, etc.
For info: I'm on a 386sx/20 4MB RAM, 90MB IDE HD, Trying & failing to get
linux onto a third 20MB partition (/dev/hd3?), DOS 5 on the first two
partitions, [problem is that the minix demo mkfs refuses to create a file
system on /dev/hd3 - it complains about the size..]
I'll shuddup now.. :-)
Brian
--[0100]--
[0101] daemon@ATHENA.MIT.EDU (Brian Syme) Linux_Activists 11/19/91 10:19 (20 lines)
Subject: Newcomer.. a few questions..
Date: Tue, 19 Nov 1991 14:42:13 +0000
From: Brian Syme <gxlr07@udcf.gla.ac.uk>
To: linux-activists@joker.cs.hut.fi
..the first of which is: Is there a "Frequently Asked Questions" or similar
for Linux? If not,.. might be handy? Is there an archive of this mailing
list?
Is there also a list of who is running Linux, and on what? Might help in
targetting questions, advice, etc. For info:
I'm on a 386sx/20MHz (TOPCAT chipset), 4MB RAM, 90MB Seagate IDE HD, DOS 5
on 1st & 2nd partitions (FAT-12 then EXTEND, isn't fdisk a pain..) Linux
on a final 20MB partition..
Brian Syme
Glasgow University Library
gxlr07@udcf.gla.ac.uk
--[0101]--
[0102] daemon@ATHENA.MIT.EDU (Nicholas Yue) Linux_Activists 11/19/91 19:55 (31 lines)
Subject: GCC problem ?
Date: Wed, 20 Nov 91 09:52:10 WST
From: nicholas@cs.uwa.oz.au (Nicholas Yue)
To: linux-activists@joker.cs.hut.fi
G'day,
The following program does not behave as expected
----------------cut----------------------cut-----------------------------------
#include <stdio.h>
const static double testvalue = 1.234e-09;
int main(int argc, char **argv)
{
(void) printf("test value = %e\n",testvalue);
return(0);
}
----------------cut----------------------cut-----------------------------------
when compiled under linux's gcc, it prints
test value = 1.234000e+00
instead of
test value = 1.234000e-09
Anybody have any clues?
Thanks In Advance
nicholas@cs.uwa.oz.au
--[0102]--
[0103] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 11/20/91 00:40 (10 lines)
Subject: New binaries uploaded --- pmake and less
Date: Wed, 20 Nov 91 00:36:56 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: linux-activists@joker.cs.hut.fi
Reply-To: tytso@athena.mit.edu
Binaries for pmake (the make that comes with BSD 4.4) and for less have
been uploaded to tsx-11.mit.edu, nic.funet.fi, and tupac-amaru. These
binaries were supplied by John Kohl (jtkohl@cs.berkeley.edu).
- Ted
--[0103]--
[0104] daemon@ATHENA.MIT.EDU (Tony Travis) Linux_Activists 11/20/91 06:17 (30 lines)
Subject: Re: Newcomer.. a few questions..
Date: Wed, 20 Nov 1991 10:41:00 +0000
From: Tony Travis <ajt@rowett.scot-agric-res-inst.ac.uk>
To: linux-activists@joker.cs.hut.fi
Cc: ajt@rowett.scot-agric-res-inst.ac.uk, Brian Syme <gxlr07@udcf.gla.ac.uk>
>
> ..the first of which is: Is there a "Frequently Asked Questions" or similar
> for Linux? If not,.. might be handy? Is there an archive of this mailing
> list?
Lee McLoughlin <lmjm@uk.ac.ic.doc> is 'mirroring' the Linux archive on
<uk.ac.ic.doc.src> where there is already a Minix News archive.
I've saved all the mail on the 'activist' list since I joined if that's
any use? I could send you a tar of it if you like.
> Is there also a list of who is running Linux, and on what? Might help in
> targetting questions, advice, etc. For info:
(knee tremble) I'm thinking of zapping my Minix 1.5.10/386 in favour of Linux,
but I'm not sure! I've got an Elonex 386SX/B with two 40Mb IDE drives and 4Mb
RAM.
Tony
-------------------------------------------------------------------------------
Tony Travis <ajt@uk.ac.sari.rri> | Rowett Research Institute,
| Greenburn Road, Bucksburn, Aberdeen,
| UK. AB2 9SB. tel 0224-712751
--[0104]--
[0105] daemon@ATHENA.MIT.EDU (Robert Lund) Linux_Activists 11/20/91 11:18 (23 lines)
Subject: FIFOs
Date: Wed, 20 Nov 91 09:06:56 MST
From: Robert Lund <rml@bighorn.uswest.com>
To: linux-activists@joker.cs.hut.fi
Has anyone successfully used FIFOs. I have tried but I
get the error message:
(Read)inode->i_mode=010666
cat: fifo: EINVAL
when I try:
mknod fifo
chmod 666 fifo
cat fifo&
I can successfully write to it, although its size is always 0.
Any ideas.
Bob Lund
--[0105]--
[0106] daemon@ATHENA.MIT.EDU (Robert Lund) Linux_Activists 11/20/91 11:24 (14 lines)
Subject: Re: FIFOs question
Date: Wed, 20 Nov 91 09:14:19 MST
From: Robert Lund <rml@bighorn.uswest.com>
To: linux-activists@joker.cs.hut.fi
My example should have shown
mkfifo fifo
not
mknod fifo
Bob Lund
--[0106]--
[0107] daemon@ATHENA.MIT.EDU (Michael K. Johnson) Linux_Activists 11/20/91 13:31 (27 lines)
Subject: problems with binaries
Date: Wed, 20 Nov 91 12:18:00 CST
From: johnsonm@stolaf.edu (Michael K. Johnson)
To: Linux-activists@joker.cs.hut.fi
I am new to Linux, and have been having some problems. My main one right
now is that I have been bringing binaries from tsx-11 to my computer via
dos-formatted disks, and using mread to transfer them to Linux. They
uncompress without a hitch, but when I try to run the executable, Linux
complains that it cannot execute the binary file. I am also having trouble
doing porting work, because I have (as far as I can tell) no editor and
no pager. If I am wrong on either point, please point me in the right
direction. Even my binaries for sed and tr didn't work, so I can't even
use them as editors.
I have all sorts of ideas as to why the binaries don't want to execute,
but not enough knowledge. If I can get an editor or pager working, I
can look at the source to see why this is happening, but I have a chicken/
egg problem here.
Thanks for any help you can provide!
michaelkjohnson
johnsonm@stolaf.edu
I don't do .sig
's
(as you can tell here, I really don't do .sig's :-)
--[0107]--
[0108] daemon@ATHENA.MIT.EDU (Robert Lund) Linux_Activists 11/20/91 15:27 (9 lines)
Subject: fifos
Date: Wed, 20 Nov 91 13:16:10 MST
From: Robert Lund <rml@bighorn.uswest.com>
To: Linux-activists@joker.cs.hut.fi
Has anyone had any luck getting fifos to work. If so, I'd appreciate
hearing how.
Bob Lund
--[0108]--
[0109] daemon@ATHENA.MIT.EDU (0114) Linux_Activists 11/21/91 04:20 (47 lines)
Subject: keyboard.S with GEerman keyboard
Date: Thu, 21 Nov 91 10:09:42 +0100
From: 0114 <upsyf108@unibi.hrz.uni-bielefeld.de>
To: linux-activists@joker.cs.hut.fi
Cc:
Reply_To: upsyf173@comparex.hrz.uni-bielefeld.de
Hi all,
I think it's time for a GERMAN KEYBOARD DRIVER. So, here it is.
"Run this file through uud(ecode), uncompress it and feed it to
patch. Don't forget to save the old kernel/chr_drv/keyboard.S.
You should then #define KBD_GR in the config.h files and hit
make in the src/kernel/chr_drv and src directories to get a new
Image file".
BTW: I think keyboard.S should be changed to get different key-
codes for CursorUp / SHIFT+CursorUp / CONTROL+CursorUp ....
which could be defined in a termcap entry. Editors could pro-
fit from it. I'm new to GNU asssembler, so I couldn't do it
right now.
Wolfgang
upsyf173@comparex.hrz.uni-bielefeld.de
table
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 kybd.cdif.Z
M'YV0*@*"6%-&CILR;%Z,02/G"QDY=EX0S"/F31@Y9%Q,<1$#1H(I==R >#*&z
M#H@8,T[:T#%#AHX:,4[FR!%#08N; PL>3+BPX<.($RM>S#@E 14T=4 X>6,'y
MA(R8,&#HD'%#!PT:,FDJ",BUJU<56P7.F$&#Q=@<(+K:Q#FV[(P<,$#<O*D x
M!(@$+L3DH5,&Q D^=>^Z,).&#9N3,%C$8 $CL((5($8@3&,&!)DRA ^20;%$w
M")$O1Z2D> R"],0O;<+ T4$:KUZ^(!)3;>TBS)PQ:=* $!%#!MD:-F[@@,N%v
MRPD1M%_W[7V#10[:MG'K%A'G3D$Z>NJD>0,'R KDD%WO73Z#,?3;N7?;)F/Fu
M#!HU:]ALZ>(%O&#EL5F<&'%>^NX\>(QAAQANM,&""RW8)QYLB9V@ F-FR9! t
M B^H ,(,-K3P5EHOT$:882HIQMB$%5X81 LTH*5"A^'E-9Y?+4"86(,K4&@As
M#2?24 2'R;TXHXQ >E0B#4:T4$,-/+:(WPD\>%C881V)V!ADI)$V!QJ4T8&:r
M:JPIZ2,+L[4877HBA,"%"".04(()+Z"00@\_@*&@B[ QYUQ_9$9Q11%24*%%q
M%4D\ 45Q*LR)'TKFB8G>=$%,08011R"AQ!),[-&''X9^><()>$Z7!19#6"&$p
M$TWLH,,7F3*HWX.)M42BA1AJJ"*+@GT(I0U2OFHBBK/V"-L),?Y(HXT@X(CBo
MCBOZVI>P08XX9)%')GG?BR?XX"2(42XV96F0A<&&EJFMIFQ^V^(UYG1<P !$n
MNB2DF^X>\_517+JI+IOHM+\"T2RS_(Y[@A^*E5<NG?;RNZ^,X\Z8\,$&*^REm
MJL+J&NN&R;9H:XC:2IQCKP\7'*2NQNHH[8(>-TPLD48B63&^??UU+92):5NEl
I79*Q,4<9@4DFAQQOR+%;9T2T0$<></3EQALF7999&60@1W,9;I!!F0*)k
j
end
--[0109]--
[0110] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 11/21/91 05:21 (29 lines)
Subject: more "features" for linux
Date: Thu, 21 Nov 1991 12:13:11 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
And here's the weekly bug-report again (although this time it's mostly
harmless "features").
The current gcc for linux is buggy: it doesn't recognise exponents after
a floating point number. This isn't gcc's fault: my library-routines
are buggy. I've corrected this (I think this one routine was from the
estdio suite), and my gcc now handles the correctly. I hope that nobody
minds very much, and I'll upgrade the thing at the same time with
version 0.11. These kind of library bugs will hopefully disappear with
the GNU libc.a: I have a pre-release, and will slowly incorporate parts
of it. I hope arl will port the whole thing some day.
fifos can be made, but they aren't really supported. Sorry. I don't
think they will be supported in the next release either: be patient (or
implement them yourself: I'll be happy to use your code)
Creating a new file ignores the current euid and egid, and all files
will be owned by root/root. You don't ordinarily notice this, as you
cannot be other than root without some hacking.
Then to some happier things: I seem to have gotten the 287-support
working. nicholas@whatever is porting the bsd math-functions to linux,
and will make different libraries for none/287/387.
Linus
--[0110]--
[0111] daemon@ATHENA.MIT.EDU (Michael K. Johnson) Linux_Activists 11/21/91 10:04 (13 lines)
Subject: binary problems
Date: Thu, 21 Nov 91 08:56:26 CST
From: johnsonm@stolaf.edu (Michael K. Johnson)
To: Linux-activists@joker.cs.hut.fi
Thanks to all who helped me with my binary problems. Seems staying up all
hours makes one forget to chmod 755
I have also got editor and pager going, so I'm happy for now :-)
michaelkjohnson
johnsonm@stolaf.edu
I don't do .sig's
--[0111]--
[0112] daemon@ATHENA.MIT.EDU (Galen Hunt) Linux_Activists 11/21/91 11:03 (9 lines)
Subject: BSD Network stuff...
Date: Thu, 21 Nov 91 08:53:41 mst
From: Galen Hunt <g-hunt@ee.utah.edu>
To: Linux-activists@joker.cs.hut.fi
To the person that said he would work on the Berkeley network stuff, please
drop me an email message as I would like to help you out.
galen
g-hunt@ee.utah.edu
--[0112]--
[0113] daemon@ATHENA.MIT.EDU (John T Kohl) Linux_Activists 11/21/91 12:21 (16 lines)
Subject: re: BSD Network stuff...
Date: Thu, 21 Nov 91 09:09:40 PST
To: linux-activists@joker.cs.hut.fi
Cc: g-hunt@ee.utah.edu
From: John T Kohl <jtkohl@cs.berkeley.edu>
Reply-To: jtkohl@cs.berkeley.edu
Well, I may have *sounded* like I was going to tackle the BSD networking
stuff, but what I really intended to mean was that I'm tackling code in
the BSD "networking" release 2 (which includes a whole heap of code for
utilities and libraries). Anybody who wants to deal with the networking
code itself (sockets, tcp, etc) is welcome to look at that; for the
moment I'm more interested in getting various utilities and libraries
from BSD working (they seem to have a rather large C library; maybe even
complete!).
John
--[0113]--
[0114] daemon@ATHENA.MIT.EDU (tthorn@daimi.aau.dk) Linux_Activists 11/23/91 21:58 (24 lines)
Subject: Adaptech-1542 driver. Linking system.
From: tthorn@daimi.aau.dk
To: Linux-activists@joker.cs.hut.fi
Date: Sun, 24 Nov 91 3:47:35 MET
Hi Linuxers,
I'm in the unfortunate situations that I cannot boot
Linux:-< My problem is my Adaptech-1542 controler, that
Linux doesn't know about.
I set out to build a new kernel without harddisk driver using
my Interactive Unix 2.0.2 and the GNU tools as development
enviroment, but I ran into troubles: gld under ISC doesn't
seem to do the same as the Linux version. As pr. default
it originates the text at 0xc8 and the data at 0x400000.
I can set the text to 0x0, but what's the start of the data-
segment?
Are there anyone else out there with an adaptech controler
dealing with the same problem?
Any on the ST-02?
/Tommy Thorn
--[0114]--
[0115] daemon@ATHENA.MIT.EDU (Marc CORSINI) Linux_Activists 11/24/91 17:27 (27 lines)
Subject: Problem with less and elvis
Date: Sun, 24 Nov 91 23:21:42 EST
From: corsini@geocub.greco-prog.fr (Marc CORSINI)
To: linux-activists@joker.cs.hut.fi
I've got less.Z on tsx-11.mit.edu
each time i use it, it works fine until the last line where it just stops
at that time the only thing I can do is <CTRL> C and this only leads to
"child 3 died with code 0000". The only thing i can do is a 3fingers salute
About elvis, i've got it on amedeas, then i've done what C. Darken has
recommanded BUT
eval gcc -DDATE causes trouble "can't open /tmp/????? "
and then gcc regexp causes the following message:
invalid operand 0000
EIP 000f:0000C050
EFLAGS 00010202
ESP 0017:03FFF2A8
fs:0010
base:20000000 limit 04000000
Stack ....
PID 167 process nr8
f0 85 d2 0f 85 fe fe ff ff 89
any ideas
[mmc]
--[0115]--
[0116] daemon@ATHENA.MIT.EDU (Marc CORSINI) Linux_Activists 11/24/91 17:32 (11 lines)
Subject: mea culpae
Date: Sun, 24 Nov 91 23:28:06 EST
From: corsini@geocub.greco-prog.fr (Marc CORSINI)
To: linux-activists@joker.cs.hut.fi
How stupid am I, i've forgotten that less is vi oriented and so
at the end :q is a good exit
my only excuse is tht i'm used to utilize more on sun
still remains the problem of compilation of elvis
[mmc]
--[0116]--
[0117] daemon@ATHENA.MIT.EDU (Michael K. Johnson) Linux_Activists 11/24/91 21:06 (19 lines)
Subject: less
Date: Sun, 24 Nov 91 19:59:22 CST
From: johnsonm@stolaf.edu (Michael K. Johnson)
To: Linux-activists@joker.cs.hut.fi
I don't acually know if this will work on Linux, but I don't know
why it wouldn't -- it works on the suns... If you hate the way
that less makes you exit with :q, try adding these lines to
your .profile:
LESS="-e";
export LESS
Then less should automatically exit at the end of files.
Hope this helps those of us who are more or less annoyed with the
default behavior of less...:-)
michaelkjohnson
johnsonm@stolaf.edu
I don't do .sig's
--[0117]--
[0118] daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 11/25/91 03:32 (64 lines)
Subject: The latest TODO list
Date: Mon, 25 Nov 91 09:21:38 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
To: linux-activists@joker.cs.hut.fi
Hi Linuxers!
This is my weekly post (just to remind you that it exists, I get almost
no feedback :-() of the TODO list, which is also available on tupac-amaru
So if you have any additions to it please mail me.
I hope in one or two weeks, there will also be a first FAQ. Again, if you
have any ideas what should belong into it, please mail.
BTW: Has anyone succesfully crosscompiled Linux under another OS?
I tried it with DJGPP under DOS, and I can't get it running. *ANY* help with
it would be appreciated.
C U l8er,
Robert Blum
What follows is the new TODO-file:
This files contains the status of several tools for Linux
Currently ported projects:
Name: ported by:
bison nicholas@cs.uwa.oz.au
diff tytso@mit.edu
flex tytso@mit.edu
kermit tytso@mit.edu
less jtkohl@berkeley.cs.edu
pmake jtkohl@berkeley.cs.edu
All these programs can be FTPed as binaries from the following sites
nic.funet.fi
tsx-11.mit.edu
tupac-amaru.informatik.rwth-aachen.de
===============================================================================
Projects currently under development:
Name: ported by: Remarks
c386 blum@messua.informatik.rwth-aachen.de Is working under Linux
A cc for this exists
Is currently teached
ANSI. Any help on this
would be appreciated.
gawk nicholas@cs.uwa.oz.au Still needs a working
mathlib.
networking jtkohl@echidna.berkeley.edu Mainly the BSD code
Perhaps even ffs
Networking=
BSD networking Tape VOL2
mathlib nicholas@cs.uwa.oz.au Will be a library for
387/287/soft-float-code
VFS proven@athena.mit.edu VFS=Virtual File System
Will probably out with
Linux 0.11
--[0118]--
[0119] daemon@ATHENA.MIT.EDU (Tony Travis) Linux_Activists 11/25/91 05:32 (61 lines)
Subject: more or less
Date: Mon, 25 Nov 1991 10:06:00 +0000
From: Tony Travis <ajt@rowett.scot-agric-res-inst.ac.uk>
To: linux-activists@joker.cs.hut.fi
I've been reading the comments about vi and less in the last few messages on
this list. I much prefer ue (MicroEMACS) as an editor to be called from the
pager rather than vi. On Minix/Linux you could edit the sources, and recompile
but it's not so easy if you haven't got the sources and, under SunOS for
example, the path /usr/bin/vi is hard-coded into the more binary.
'good' programs read and respect the EDITOR variable in the environment, but
more seems to be a notable exception. Here is a vi stub that parses the goto
argument for vi and invokes ue instead. Install it as /usr/bin/vi :-)
Tony
-------------------------------------------------------------------------------
Tony Travis <ajt@uk.ac.sari.rri> | Rowett Research Institute,
| Greenburn Road, Bucksburn, Aberdeen,
| UK. AB2 9SB. tel 0224-712751
----- 8< ----- cut here ----- 8< -----
static char *sccsid = "@(#)vi.c 05-Nov-90 A.J.Travis";
/*
* kludge to call ue when programs exec vi (eg. more)
*/
#include <stdio.h>
#define SAME 0 /* strcmp() equal */
main(argc, argv)
int argc;
char *argv[];
{
char command[BUFSIZ];
int line = 1;
if (strcmp(getenv("EDITOR"), "vi") == SAME) {
fprintf(stderr, "vi: editor not available on this system\n");
exit(-1);
}
if (argc > 3) {
fprintf(stderr, "usage: vi [+line] [file]\n");
exit(-1);
}
if (argc > 2) {
if (*argv[1] == '+')
line = atoi(argv[1]) + 1;
argv++;
--argc;
}
if (argc > 1)
sprintf(command, "ue -v -g%d %s", line, argv[1]);
else
sprintf(command, "ue");
system(command);
}
--[0119]--
[0120] daemon@ATHENA.MIT.EDU (Galen Hunt) Linux_Activists 11/25/91 10:19 (30 lines)
Subject: Cross compiling Linux
Date: Mon, 25 Nov 91 08:03:38 mst
From: Galen Hunt <g-hunt@ee.utah.edu>
To: linux-activists@joker.cs.hut.fi
> BTW: Has anyone succesfully crosscompiled Linux under another OS?
> I tried it with DJGPP under DOS, and I can't get it running. *ANY* help with
> it would be appreciated.
>
> C U l8er,
> Robert Blum
I've successfully cross compiled Linux from the NeXT using GNU C which I had
customized for doing the 68040 to 80386 cross compile. If Linux isn't
compiling under DJGPP it probably has something to do with the wonderful 8
character dos file names.
If it won't run you probably have a problem of another color. It wouldn't run
for me at first until I discovered the following: Linux's a.out formatted files
use a segment size of 1024 bytes as opposed to most implementations of unix
which use either a 4096 or 8192 byte segment size. This will kill you in
two ways, first the build.c program put together the boot image for a 1K
segment size, this is very easy to get around, just touch up build.c.
Evidence of this problem is that when Linux boots, it displays the message
about loading the kernel goes out to disk for a few seconds and then either
hangs or reboots the computer. The second problem is in the kernel code which
loads executables because it once again looks at the 1024 segment offset to
load code.
The easiest approach of course is to simply recompiler GNU ld on your host
machine so that it uses 1024 byte segment sizes.
galen
--[0120]--
[0121] daemon@ATHENA.MIT.EDU (David R. Giller) Linux_Activists 11/25/91 20:13 (42 lines)
Subject: Re: Adaptech-1542 driver. Linking system.
From: rafetmad@cheshire.oxy.edu (David R. Giller)
To: linux-activists@joker.cs.hut.fi
Date: Mon, 25 Nov 91 17:02:20 PST
In-Reply-To: <9111240247.AA08306@ananke.daimi.aau.dk>; from "tthorn@daimi.aau.dk" at Nov 24, 91 3:47 am
> Hi Linuxers,
>
> I'm in the unfortunate situations that I cannot boot
> Linux:-< My problem is my Adaptech-1542 controler, that
> Linux doesn't know about.
I have some happy news for all you out there using an EISA bus PC with
a Mylex EICS SCSI controller (probably just me). This also applies to
all you with a SCSI controller that emulates IDE or ST-506.
Linux works with these drives! I am going to see if I can slink some
sample code from the Mylex people to include in my kernel to enable
things like hardware caching and 32-bit mode, but as it is, the drive
works.
I am not out of trouble yet, though. I found out that my Mylex emulates
IDE the hard way: I installed an IDE to coexist, and the combination trashed
my drive. Bummer. After the dust cleared, however, I had a drive that
was partitioned better and uses the controller features better under DOS and
OS/2.
Then, while trying to install Linux, to my dismay -- Minix no longer boots.
No matter what I do, on any disk I might try, I always get 'root filesystem
corrupted' and panic stop from the minix kernel on startup. Anyone have
any clues? This setup worked before... All I chaanged was the partition table.
Has anyone created a linux mkfs?
Thanks,
-Dave
--
---------------------------------------------------------------------------
David Giller -- rafetmad@oxy.edu | "Some of us wake up, others roll over."
Box 134, Occidental College | "Shrouds, they have no pockets."
Los Angeles, CA 90041 | -John Lydon
---------------------------------------------------------------------------
--[0121]--
[0122] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 11/25/91 22:36 (394 lines)
Subject: newest mkfs for linux
Date: Tue, 26 Nov 1991 05:22:04 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
Ok, here's a mkfs for those that want to try it out. It works on my
system (limited testing), and hopefully we can get possible bugs ironed
out in time for 0.11 (and currently I'm hoping to release that December
8th or something).
This mkfs has two modes: checking and reckless. On a disk that you know
has no problems, you just write "mkfs /dev/hdx size", and you should
have a new system (DON'T do this on a mounted drive: unlike fsck there
is NO way that will work, and you'll probably mess it up completely.)
On a disk with possible read-errors, use "mkfs -c /dev/hdx size", which
will read all the blocks and mark those unreable into a special file
"/.badblocks". I'm not making any guarantees. This is a fast hack
(mainly yesterday and today), and I have tested only on small
filesystems, faking errors by telling mkfs that the filesystem is bigger
than it actually is. If you think the algorithm for marking bad blocks
is weird: you're right.
Linus
PS. Using -c on a big harddisk or on floppies is slow, even though I try
to speed it up by reading 32kB at a time. Also, the current linux kernel
will print out error messages for all the IO errors - that's normal, and
that's what this mkfs should map out.
---------------- snip snip ----------
/*
* mkfs.c - make a linux (minix) file-system.
*
* (C) 1991 Linus Torvalds. This file may be redistributed as per
* the Linux copyright.
*/
/*
* 24.11.91 - time began. Used the fsck sources to get started.
*
* 25.11.91 - corrected some bugs. Added support for ".badblocks"
* The algorithm for ".badblocks" is a bit weird, but
* it should work. Oh, well.
*
* Usuage: mkfs [-c] device size-in-blocks
*
* -c for readablility checking (SLOW!)
*
* The device may be a block device or a image of one, but this isn't
* enforced (but it's not much fun on a character device :-).
*/
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <ctype.h>
#include <stdlib.h>
#include <termios.h>
#include <sys/stat.h>
#include <linux/fs.h>
#ifndef __GNUC__
#error "needs gcc for the bitop-__asm__'s"
#endif
#ifndef __linux__
#define volatile
#endif
#define ROOT_INO 1
#define BAD_INO 2
#define TEST_BUFFER_BLOCKS 32
#define MAX_GOOD_BLOCKS 512
#define UPPER(size,n) ((size+((n)-1))/(n))
#define INODE_SIZE (sizeof(struct d_inode))
#define INODE_BLOCKS UPPER(INODES,INODES_PER_BLOCK)
#define INODE_BUFFER_SIZE (INODE_BLOCKS * BLOCK_SIZE)
#define BITS_PER_BLOCK (BLOCK_SIZE<<3)
static char * program_name = "mkfs";
static char * device_name = NULL;
static int DEV = -1;
static long BLOCKS = 0;
static int check = 0;
static int badblocks = 0;
#define ROOT_INO_STRING "\001\000"
#define BAD_INO_STRING "\002\000"
static char root_block[BLOCK_SIZE] =
ROOT_INO_STRING ".\0\0\0\0\0\0\0\0\0\0\0\0\0"
ROOT_INO_STRING "..\0\0\0\0\0\0\0\0\0\0\0\0"
BAD_INO_STRING ".badblocks\0\0\0\0";
static char * inode_buffer = NULL;
#define Inode (((struct d_inode *) inode_buffer)-1)
static char super_block_buffer[BLOCK_SIZE];
#define Super (*(struct super_block *)super_block_buffer)
#define INODES ((unsigned long)Super.s_ninodes)
#define ZONES ((unsigned long)Super.s_nzones)
#define IMAPS ((unsigned long)Super.s_imap_blocks)
#define ZMAPS ((unsigned long)Super.s_zmap_blocks)
#define FIRSTZONE ((unsigned long)Super.s_firstdatazone)
#define ZONESIZE ((unsigned long)Super.s_log_zone_size)
#define MAXSIZE ((unsigned long)Super.s_max_size)
#define MAGIC (Super.s_magic)
#define NORM_FIRSTZONE (2+IMAPS+ZMAPS+INODE_BLOCKS)
static char inode_map[BLOCK_SIZE * I_MAP_SLOTS];
static char zone_map[BLOCK_SIZE * Z_MAP_SLOTS];
static unsigned short good_blocks_table[MAX_GOOD_BLOCKS];
static int used_good_blocks = 0;
#define bitop(name,op) \
static inline int name(char * addr,unsigned int nr) \
{ \
int __res; \
__asm__ __volatile__("bt" op " %1,%2; adcl $0,%0" \
:"=g" (__res) \
:"r" (nr),"m" (*(addr)),"0" (0)); \
return __res; \
}
bitop(bit,"")
bitop(setbit,"s")
bitop(clrbit,"r")
#define inode_in_use(x) (bit(inode_map,(x)))
#define zone_in_use(x) (bit(zone_map,(x)-FIRSTZONE+1))
#define mark_inode(x) (setbit(inode_map,(x)))
#define unmark_inode(x) (clrbit(inode_map,(x)))
#define mark_zone(x) (setbit(zone_map,(x)-FIRSTZONE+1))
#define unmark_zone(x) (clrbit(zone_map,(x)-FIRSTZONE+1))
/*
* Volatile to let gcc know that this doesn't return. When trying
* to compile this under minix, volatile gives a warning, as
* exit() isn't defined as volatile under minix.
*/
volatile void fatal_error(const char * fmt_string)
{
fprintf(stderr,fmt_string,program_name,device_name);
exit(1);
}
#define usage() fatal_error("Usage: %s [-c] /dev/name blocks\n")
#define die(str) fatal_error("%s: " str "\n")
void write_tables(void)
{
if (BLOCK_SIZE != lseek(DEV, BLOCK_SIZE, SEEK_SET))
die("seek failed in write_tables");
if (BLOCK_SIZE != write(DEV, super_block_buffer, BLOCK_SIZE))
die("unable to write super-block");
if (IMAPS*BLOCK_SIZE != write(DEV,inode_map,IMAPS*BLOCK_SIZE))
die("Unable to write inode map");
if (ZMAPS*BLOCK_SIZE != write(DEV,zone_map,ZMAPS*BLOCK_SIZE))
die("Unable to write zone map");
if (INODE_BUFFER_SIZE != write(DEV,inode_buffer,INODE_BUFFER_SIZE))
die("Unable to write inodes");
}
void write_block(int blk, char * buffer)
{
if (blk*BLOCK_SIZE != lseek(DEV, blk*BLOCK_SIZE, SEEK_SET))
die("seek failed in write_block");
if (BLOCK_SIZE != write(DEV, buffer, BLOCK_SIZE))
die("write failed in write_block");
}
int get_free_block(void)
{
int blk;
if (used_good_blocks+1 >= MAX_GOOD_BLOCKS)
die("too many bad blocks");
if (used_good_blocks)
blk = good_blocks_table[used_good_blocks-1]+1;
else
blk = FIRSTZONE;
while (blk < ZONES && zone_in_use(blk))
blk++;
if (blk >= ZONES)
die("not enough good blocks");
good_blocks_table[used_good_blocks] = blk;
used_good_blocks++;
return blk;
}
void mark_good_blocks(void)
{
int blk;
for (blk=0 ; blk < used_good_blocks ; blk++)
mark_zone(good_blocks_table[blk]);
}
inline int next(int zone)
{
if (!zone)
zone = FIRSTZONE-1;
while (++zone < ZONES)
if (zone_in_use(zone))
return zone;
return 0;
}
void make_bad_inode(void)
{
struct d_inode * inode = &Inode[BAD_INO];
int i,j,zone;
int ind=0,dind=0;
unsigned short ind_block[BLOCK_SIZE>>1];
unsigned short dind_block[BLOCK_SIZE>>1];
#define NEXT_BAD (zone = next(zone))
if (!badblocks)
return;
mark_inode(BAD_INO);
inode->i_nlinks = 1;
inode->i_time = time(NULL);
inode->i_mode = S_IFREG + 0000;
inode->i_size = badblocks*BLOCK_SIZE;
zone = next(0);
for (i=0 ; i<7 ; i++) {
inode->i_zone[i] = zone;
if (!NEXT_BAD)
goto end_bad;
}
inode->i_zone[7] = ind = get_free_block();
memset(ind_block,0,BLOCK_SIZE);
for (i=0 ; i<512 ; i++) {
ind_block[i] = zone;
if (!NEXT_BAD)
goto end_bad;
}
inode->i_zone[8] = dind = get_free_block();
memset(dind_block,0,BLOCK_SIZE);
for (i=0 ; i<512 ; i++) {
write_block(ind,(char *) ind_block);
dind_block[i] = ind = get_free_block();
memset(ind_block,0,BLOCK_SIZE);
for (j=0 ; j<512 ; j++) {
ind_block[j] = zone;
if (!NEXT_BAD)
goto end_bad;
}
}
die("too many bad blocks");
end_bad:
if (ind)
write_block(ind, (char *) ind_block);
if (dind)
write_block(dind, (char *) dind_block);
}
void make_root_inode(void)
{
struct d_inode * inode = &Inode[ROOT_INO];
mark_inode(ROOT_INO);
inode->i_zone[0] = get_free_block();
inode->i_nlinks = 2;
inode->i_time = time(NULL);
if (badblocks)
inode->i_size = 48;
else
inode->i_size = 32;
inode->i_mode = S_IFDIR + 0755;
write_block(inode->i_zone[0],root_block);
}
void setup_tables(void)
{
int i;
memset(inode_map,0xff,sizeof(inode_map));
memset(zone_map,0xff,sizeof(zone_map));
memset(super_block_buffer,0,BLOCK_SIZE);
MAGIC = SUPER_MAGIC;
ZONESIZE = 0;
MAXSIZE = (7+512+512*512)*1024;
ZONES = BLOCKS;
/* some magic nrs: 1 inode / 3 blocks */
INODES = BLOCKS/3;
/* I don't want some off-by-one errors, so this hack... */
if ((INODES & 8191) > 8188)
INODES -= 5;
if ((INODES & 8191) < 10)
INODES -= 20;
IMAPS = UPPER(INODES,BITS_PER_BLOCK);
ZMAPS = 0;
while (ZMAPS != UPPER(BLOCKS - NORM_FIRSTZONE,BITS_PER_BLOCK))
ZMAPS = UPPER(BLOCKS - NORM_FIRSTZONE,BITS_PER_BLOCK);
FIRSTZONE = NORM_FIRSTZONE;
for (i = FIRSTZONE ; i<ZONES ; i++)
unmark_zone(i);
for (i = ROOT_INO ; i<INODES ; i++)
unmark_inode(i);
inode_buffer = malloc(INODE_BUFFER_SIZE);
if (!inode_buffer)
die("Unable to allocate buffer for inodes");
memset(inode_buffer,0,INODE_BUFFER_SIZE);
printf("%d inodes\n",INODES);
printf("%d blocks\n",ZONES);
printf("Firstdatazone=%d (%d)\n",FIRSTZONE,NORM_FIRSTZONE);
printf("Zonesize=%d\n",BLOCK_SIZE<<ZONESIZE);
printf("Maxsize=%d\n\n",MAXSIZE);
}
void check_blocks(void)
{
unsigned int current_block=0;
int try,got;
static char buffer[BLOCK_SIZE * TEST_BUFFER_BLOCKS];
while (current_block < ZONES) {
if (lseek(DEV,current_block*BLOCK_SIZE,SEEK_SET) !=
current_block*BLOCK_SIZE)
die("seek failed in check_blocks");
try = TEST_BUFFER_BLOCKS;
if (current_block + try > ZONES)
try = ZONES-current_block;
got = read(DEV, buffer, try * BLOCK_SIZE);
if (got<0)
got = 0;
if (got & (BLOCK_SIZE-1))
printf("Weird values in check_blocks: probably bugs\n");
got /= BLOCK_SIZE;
current_block += got;
if (got == try)
continue;
if (current_block < FIRSTZONE)
die("bad blocks before data-area: cannot make fs");
mark_zone(current_block);
badblocks++;
current_block++;
}
if (badblocks)
printf("%d bad block%s\n",badblocks,(badblocks>1)?"s":"");
}
int main(int argc, char ** argv)
{
char * tmp;
struct stat statbuf;
if (argc && *argv)
program_name = *argv;
if (INODE_SIZE * INODES_PER_BLOCK != BLOCK_SIZE)
die("bad inode size");
while (argc-- > 1) {
argv++;
if (argv[0][0] != '-')
if (device_name) {
BLOCKS = strtol(argv[0],&tmp,0);
if (*tmp)
usage();
} else
device_name = argv[0];
else while (*++argv[0])
switch (argv[0][0]) {
case 'c': check=1; break;
default: usage();
}
}
if (!device_name || BLOCKS<10 || BLOCKS > 65536)
usage();
DEV = open(device_name,O_RDWR);
if (DEV<0)
die("unable to open %s");
if (fstat(DEV,&statbuf)<0)
die("unable to stat %s");
if (!S_ISBLK(statbuf.st_mode))
check=0;
else if (statbuf.st_rdev == 0x0300 || statbuf.st_rdev == 0x0305)
die("Will not try to make filesystem on '%s'");
setup_tables();
if (check)
check_blocks();
make_root_inode();
make_bad_inode();
mark_good_blocks();
write_tables();
return 0;
}
--[0122]--
[0123] daemon@ATHENA.MIT.EDU (Marc CORSINI) Linux_Activists 11/27/91 03:56 (58 lines)
Subject: help again and again
Date: Wed, 27 Nov 91 09:48:06 EST
From: corsini@geocub.greco-prog.fr (Marc CORSINI)
To: linux-activists@joker.cs.hut.fi
Hi, there
It seems that i have trouble with compilition under linux, these are
the things i've remarked.
first of all the config:
386sx, no 387, 2Mo ram, 30 Meg Linux partition on Hd
the soft config:
those on tsx11 mainly + those which appeared in this mailing list
ok, now the things i tried
compile fsck : noway (gcc -c works not the -o which complains in many
undefined symbols such as IN or inode-map zone-map super-block-buffer ....
the rest has been skipped
compile elvis: not yet fixed (i'll try some C. Darken proposal)
compile linux:
first i've changer the buffer.c
i've applied the build patch
i've done some ack on keyboard.S to have a more french oriented kbd
i've change the config.h for the kbd, and commented the lines in the
linux/Makefile (those for the 16binaries and the chmem)
and then just type make
- the (cd ?????;make) *DOES NOT WORK* in the sense that
it does not run the gcc -c commands, only the gld ones so ERROR
- then i tried a bottom up compilation of linux subtree, i.e apply
by hand the make on each subdirs, and then run make in linux.
the make in sub-dirs works fine, not the final linking in general
it complains about a lot of undefinde symbols
- finally i've tried the make clean command
funnily :-( it does not work, just clean the linux and boot directories
(the one without make)
THEN (again yes) i thought it was due to the place of the linux subtree
which is not under /, but under /usr/src so i've change all the path in
absolute path name. RESULT: NIET
THEN and LAST: i've changed in the subdirs the clean order from
rm -f blabla to rm -i blabla
in that case the global clean works fine, and asks me for the deletion
which i agree and it does clean.
so questions are:
has any one tried to compile linux under linux?
has any one had such experience?
has any one cast a spell on me? 8-)
what about make/
PS: i've tried some simple compilation as uudecode/wc which were ok
[mmc]
--[0123]--
[0124] daemon@ATHENA.MIT.EDU (Mika Matti Jalava) Linux_Activists 11/27/91 04:07 (21 lines)
Subject: Re: help again and again
From: Mika Matti Jalava <r36110m@kaira.hut.fi>
To: linux-activists@joker.cs.hut.fi
Date: Wed, 27 Nov 91 11:01:37 EET
In-Reply-To: <9111270848.AA17452@geocub.greco-prog.fr>; from "Marc CORSINI" at Nov 27, 91 9:48 am
> ok, now the things i tried
> compile fsck : noway (gcc -c works not the -o which complains in many
> undefined symbols such as IN or inode-map zone-map super-block-buffer ....
> the rest has been skipped
Do you have all the includes in place?
> has any one tried to compile linux under linux?
Yes, no problems (with compiling, that is, the compiled images work
great. I have had a LOT of problems with the file system but that's
probably because of my old drives)
> has any one cast a spell on me? 8-)
Not me...
Mika
--[0124]--
[0125] daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 11/27/91 05:17 (70 lines)
Subject: Re:help again and again
Date: Wed, 27 Nov 91 11:01:46 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
To: linux-activists@joker.cs.hut.fi
Hi Linuxers!
Today there was the following mail in my mbox:
>From corsini@geocub.greco-prog.fr Wed Nov 27 09:52:10 1991
>Subject: help again and again
and I think that the answer will be of (more or less) general interest,
so I decided to not reply personally and instead via mailing list.
Corsini wrote:
>Hi, there
>It seems that i have trouble with compilition under linux, these are
>the things i've remarked.
>first of all the config:
>386sx, no 387, 2Mo ram, 30 Meg Linux partition on Hd
And whoops, there's the problem. GCC dies silently if it has not enough
memory instead of issuing any warnings. It simply produces incomplete
.s/.o files, and nothing will work. If you think of it, it's quite simple:
Memory you have: 2000 KB
Kernel/Buffers: 1000 KB
bash: approx. 300 KB
cc1: approx. 500 KB
===============================
Free space: approx. 200 KB
And into these 200 KB gcc/bash have to squeeze their complete bss sections,
and I forgot make in the list of memory hogs. Seems a little bit tight, huh?
There are some solutions to it:
1) Buy another 2 Megs of memory, and all will work fine.
2) Wait for c386 to come out, it uses only 100 KB. I intended to make it
available as soon as it understands __asm__ and ANSI, but if there's a
real need for it, I could release it in its original version as a K&R
compiler. But this means: No kernel compiling, compilation of other
files only with tweaked #include-files
3) Join me in my efforts to make this beast ANSI conforming...
4) Try to cross-develop under DOS with DJGPP, but there are several obstacles
a) The gcc header of system seems only 32 bytes, so change build.c
b) gld links code starting at 0x1020, so give it a -Ttext 0
c) gld links data starting at 0x400000, so give it a -Tdata 15000
But even with these changes, my kernel does not work, so could anybody
help me with this, please ?
>so questions are:
>has any one tried to compile linux under linux?
Yes, and it worked no way.
>has any one had such experience?
Yes, not enough mem....
>has any one cast a spell on me? 8-)
Yes, GNU has cast the "eat lots of memory"-spell onto it's software
>what about make/
As far as I can tell from my experiences with c386, this seems to be
working, but you might try pmake...
>PS: i've tried some simple compilation as uudecode/wc which were ok
This is *REALLY* surprising to me, since gcc doesn't manage to create a
"hello world" program. Are the sources without any #include? Then it might
work, otherwise we are in trouble....
Hope this helps,
Robert Blum
--[0125]--
[0126] daemon@ATHENA.MIT.EDU (Marc CORSINI) Linux_Activists 11/27/91 05:41 (21 lines)
Subject: Re:help again and again
Date: Wed, 27 Nov 91 11:27:47 EST
From: corsini@geocub.greco-prog.fr (Marc CORSINI)
To: blum@cip-s01.informatik.rwth-aachen.de
Cc: linux-activists@joker.cs.hut.fi
In-Reply-To: Robert Blum's message of Wed, 27 Nov 91 11:01:46 +0100 <9111271001.AA26828@messua.informatik.rwth-aachen.de>
Thanks for the help,
about the uudecode and wc, indeed the includes are very few
stdio,ctypes and one or two more.
On the other hand i still suspect heavily the make since on elvis
compiling with make all works fine except
the gcc -O -o -c of cmd1.c
the gcc -o of virec
the gcc -o of refont
BUT when i do these commands by hand they work great so ..
i'll change to pmake
[mmc]
--[0126]--
[0127] daemon@ATHENA.MIT.EDU (Marc CORSINI) Linux_Activists 11/27/91 06:24 (12 lines)
Subject: elvis compilation/help again and again
Date: Wed, 27 Nov 91 10:18:45 EST
From: corsini@geocub.greco-prog.fr (Marc CORSINI)
To: linux-activists@joker.cs.hut.fi
Ok just tried the elvis compilation nearly good, just a
/tmp/cc000041.s can't open for Reading
about the include i've put the include.tar.Z where it is supposed to be
i guess in /usr/include, have i forgotten some thing?
[mmc]
--[0127]--
[0128] daemon@ATHENA.MIT.EDU (Nicholas Yue) Linux_Activists 11/27/91 09:53 (34 lines)
Subject: 486 problem
Date: Wed, 27 Nov 91 23:44:13 WST
From: nicholas@cs.uwa.oz.au (Nicholas Yue)
To: linux-activists@joker.cs.hut.fi
G'day,
Today, I upgraded my machine from a 386DX to a 486DX (using the old drives),
I had the following problem.
------cut------------cut-----------
Partiion table ok ......
W/X free blocks
Y/Z free inodes
HD-controller reset failed : 7f
501 buffers = 513024 bytes buffer space
Free mem: 3145728
Ok.
general protection: 0000
EIP : 000f:00000013
etc........
-------cut-----------cut-------------
and then it hangs!
I had it working beautifully on a 386DX, I don't have a 386 anymore!
Any opinion?
Thanks In Advance
nicholas@cs.uwa.oz.au
--[0128]--
[0129] daemon@ATHENA.MIT.EDU (Wolfgang Thiel) Linux_Activists 11/27/91 10:53 (11 lines)
Subject: Re: help again and again
Date: Wed, 27 Nov 91 11:36:37 CET
From: Wolfgang Thiel <UPSYF173@comparex.hrz.uni-bielefeld.de>
To: Marc CORSINI <corsini@geocub.greco-prog.fr>,
In-Reply-To: Your message of Wed, 27 Nov 91 09:48:06 EST
Hi,
I had absolutely no problems compilung linux under linux
(486, 8MB).
Sounds like gcc and/or make are running out of memory.
Wolfgang
--[0129]--
[0130] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 11/27/91 11:34 (36 lines)
Subject: Re: help again and again
Date: Wed, 27 Nov 91 11:25:02 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: blum@cip-s01.informatik.rwth-aachen.de
Cc: linux-activists@joker.cs.hut.fi
In-Reply-To: Robert Blum's message of Wed, 27 Nov 91 11:01:46 +0100,
Reply-To: tytso@athena.mit.edu
Date: Wed, 27 Nov 91 11:01:46 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
Memory you have: 2000 KB
Kernel/Buffers: 1000 KB
bash: approx. 300 KB
cc1: approx. 500 KB
===============================
Free space: approx. 200 KB
And into these 200 KB gcc/bash have to squeeze their complete bss sections,
and I forgot make in the list of memory hogs. Seems a little bit
tight, huh?
If this is the problem, one solution might be to modify the Makefile so
that instead of compiling and assembling a file at the same time, to
split it into two steps:
.c.s: ; cc $(CFLAGS) -S $*.c
.s.o: ; gas $(LDFLAGS) -o $*.o $*.s
That way, the compiler and the assembler won't need to be in memory at
the same time. Someone with two meg of memory should try this, and see
if this will free enough memory so that a compile happens.
Another solution, of course, is to implement paging under Linux. :-)
- Ted
--[0130]--
[0131] daemon@ATHENA.MIT.EDU (tthorn@daimi.aau.dk) Linux_Activists 11/27/91 12:25 (19 lines)
Subject: Building a hd-less bootimage..?
From: tthorn@daimi.aau.dk
To: Linux-Activists@joker.cs.hut.fi (linux)
Date: Wed, 27 Nov 91 18:17:33 MET
Hi all (yes, yes, it's me again:-) I still haven't seen Linux run.)
With the kind help of Galen Hunt, I've succed in building a new boot-
image. I'm aware that it's most likely my adaptech 1542B that kills
it, but just commenting hd_init out didn't help. The systems gets
as far as to 'move_to_user_mode' in main.c.
I would like to succed with a hd-less Linux, before attempting
an adaptech driver. Any clues on what to remove/how to build such
a kernel?
Sorry to have taken your time.
/Tommy "me again" Thorn
--[0131]--
[0132] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 11/27/91 12:46 (27 lines)
Subject: Re: Building a hd-less bootimage..?
Date: Wed, 27 Nov 1991 19:29:00 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
In-Reply-To: tthorn@daimi.aau.dk's message as of Nov 27, 18:17
To: tthorn@daimi.aau.dk, Linux-Activists@joker.cs.hut.fi (linux)
tthorn@daimi.aau.dk: "Building a hd-less bootimage..?" (Nov 27, 18:17):
> Hi all (yes, yes, it's me again:-) I still haven't seen Linux run.)
>
> With the kind help of Galen Hunt, I've succed in building a new boot-
> image. I'm aware that it's most likely my adaptech 1542B that kills
> it, but just commenting hd_init out didn't help. The systems gets
> as far as to 'move_to_user_mode' in main.c.
>
> I would like to succed with a hd-less Linux, before attempting
> an adaptech driver. Any clues on what to remove/how to build such
> a kernel?
You'll have to comment out all the stuff in "sys_setup" which concerns
harddisks. hd_init() just sets up the interrupt addresses and enables
them, but doesn't read the partition tables etc. The reason is simple:
hd_init() may not sleep, as it is called when we aren't really set up
yet, so it cannot read the disk, just set up for it.
sys_setup mounts the root etc, so you cannot just comment it out
totally, you have to comment out just the partition-reading etc.
Linus
--[0132]--
[0133] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 11/27/91 14:56 (20 lines)
Subject: X11R5 has 386/VGA support...
Date: Wed, 27 Nov 91 14:48:04 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: linux-activists@joker.cs.hut.fi
Reply-To: tytso@athena.mit.edu
FYI, in case anybody feels like tackling it, the X11R5 distribution
includes a 386/SVGA X server, with drivers to support the GVGA, PVGA1A,
ET3000 and ET4000 chipsets in 256 color mode. It's designed for SCO
Unix, but it shouldn't *too* hard to port it to Linux.... :-)
I imagine that the major problems involved in porting it to Linux are
(in order of severity) no FIFO support, no pty support, and no
networking interface. The last actually isn't very important (the
clients and the server could communicate through unix:0), but it would
be nice to have, eventually.
So, is anyone interesting in getting X11 to work on Linux? 'twould be
really neat!
- Ted
--[0133]--
[0134] daemon@ATHENA.MIT.EDU (Hakkarainen Kimmo) Linux_Activists 11/28/91 05:54 (15 lines)
Subject: kermit problem
From: h108373@cs.tut.fi (Hakkarainen Kimmo)
To: linux-activists@joker.cs.hut.fi (Linux activists)
Date: Thu, 28 Nov 91 12:40:32 EET
Hi linuxers,
My kermit program terminates in my linux machine when I
try to send CNTL-c to remote machine. Shouldn't kermit
operate in raw-mode instead of c-break-mode ?
Thank's in advance.
--
Kimmo Hakkarainen (h108373@cc.tut.fi)
--[0134]--
[0135] daemon@ATHENA.MIT.EDU (Nicholas Yue) Linux_Activists 11/29/91 19:47 (32 lines)
Subject: 2nd Physical Hard-Disk
Date: Sat, 30 Nov 91 09:18:22 WST
From: nicholas@cs.uwa.oz.au (Nicholas Yue)
To: linux-activists@joker.cs.hut.fi
G'day,
How do I mount the 2nd hard-disk (automagically ;-). The boot floppy can
be configured to mount the root file system form /dev/hdX
where 1<=X<=4 OR 6<=X<=9
I know I can mount the 2nd hardisk manually
mount /dev/hd6 /home (example)
Does this means that I have to have to
umount /dev/hd6 (example)
it everytime I reboot the machine or is it ok to leave it as it is?
On the Sun, there is a file call "fstab" which the boot process looks for.
Will there be a "shutdown" program to umount the hard-disk?
Thanks In Advance
nicholas@cs.uwa.oz.au
--[0135]--
[0136] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 11/29/91 21:52 (50 lines)
Subject: weekly (?) answers, bugreports etc
Date: Sat, 30 Nov 1991 04:46:48 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
nicholas@cs.uwa.oz.au (Nicholas Yue):
> G'day,
> How do I mount the 2nd hard-disk (automagically ;-). The boot floppy can
> be configured to mount the root file system form /dev/hdX
Minix does this in /etc/rc, but as linux currently ignores that, the
best way is to do it in your .profile (or /etc/.profile). You migh want
to use 'mount /dev/hdX /home &> /dev/null' so that eventual multiple
mounts won't print error messages. Likewise you can unmount in .logout,
but unmounting isn't really necessary (but do remeber to sync).
many:
>
> kermit works, but dies due to ^C. What's wrong? It also complains
> about not being able to lock the line.
This /seems/ to be standard behaviour of unix-kermit, and it is
certainly not of my doing. It's a nuisance. Line-locking is done by
creating a file in the directory /usr/spool/uucp/LCK, and unless that
directory exists, kermit isn't able to lock it.
Then to bug-reports and updates:
hd.c is buggy, and I'm investigating it. When read-errors occur, weird
things can happen, including writing to the disk. This might be the
cause of some peoples problems: there is no problem if you have a
sector-translating controller (eg IDE etc) that never returns errors. I
think I've gotten it working, and hopefully the 0.11 version (due out in
about a week) will be correct.
0.11 will also finally be totally self-sustaining: I have gotten the
source to bruce evans' assembler and linker, and at least I haven't
heard of many problems with mkfs and fsck. I didn't have time to
implement symlinks, so there are no real new features: just bug-fixes
and enhancements. Thanks to everybody who sent diffs etc. You know who
you are, and I've tried to accnowledge everyone in the source. Wolfgang
XXXX, who made the German keyboard patch, please mail me your last name.
Known bugs still unresolved: at least one machine has trouble reading
the floppy, and one 486 seems to have problems with the harddisk even
with my new patches. Another machine seems to get divide by zero
errors, and I have absolutely no idea why this happens. As it looks
now, these won't be corrected in 0.11 unless I can find the reason for
them within the week :-(
Linus
--[0136]--
[0137] daemon@ATHENA.MIT.EDU (Yanek Martinson) Linux_Activists 11/30/91 14:51 (26 lines)
Subject: HELP. Linux boot disk boots but does not display any prompt (shell?)
To: linux-activists@joker.cs.hut.fi
Date: Sat, 30 Nov 91 14:34:40 EST
From: Yanek Martinson <safe0!yanek@mthvax.cs.miami.edu>
I downloaded the boot-disk and root-disk from the mit ftp site. Also the
rawrite that comes with minix demo, and the minix demo itself. I wrote
minix demo out to a disk with rawrite, and it worked fine. I created a file
system on the hard disk. Then I copied the root and boot linux images to
disks (5.25" 1.2MB) and tried to boot from the boot image. It said "Loading
system......" and then when It was done loading it did nothing. I could
type anything, it would just echo the characters. When I pressed any of the
F-keys, it gave this:
0: pid=0, state=1, eip=0017:00000000
what does this mean? What can I do about it?
If it makes any difference, I was using the boot image that was supposed to
turn caps lock key into control key. That part worked. When I pressed
CAPSLOCK-N I saw ^N.
--
yanek@mthvax.cs.miami.edu
safe0%yanek@mthvax.cs.miami.edu
--[0137]--
[0138] daemon@ATHENA.MIT.EDU (Yanek Martinson) Linux_Activists 11/30/91 20:35 (19 lines)
Subject: linux problem (boots, no prompt)
Date: Sat, 30 Nov 91 20:31:15 -0500
From: Yanek Martinson <yanek@mthvax.cs.miami.edu>
To: torvalds@cc.helsinki.fi, torvalds@kruuna.helsinki.fi
Cc: linux-activists@joker.cs.hut.fi
I sent a message before but I don't know if you received it I addressed
it wrong. The problem is: I put the images of boot and root on disks,
and boot. It boots, displays "Loading System..." and then when it's
done there is no prompt. Whatever I type is echoed back to me. If
I press any of the F- keys, I get this:
0: pid=0, state=1, eip=0017:00000000
What does this mean?
Am I doing anything wrong?
Is the shell on root or on boot disk? At what time am I supposed to insert
the second disk?
--[0138]--
[0139] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 11/30/91 21:31 (36 lines)
Subject: Re: linux problem (boots, no prompt)
Date: Sun, 1 Dec 1991 04:22:30 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
In-Reply-To: Yanek Martinson's message as of Nov 30, 20:31
To: Yanek Martinson <yanek@mthvax.cs.miami.edu>, torvalds@cc.helsinki.fi
Cc: linux-activists@joker.cs.hut.fi
Yanek Martinson: "linux problem (boots, no prompt)" (Nov 30, 20:31):
> I sent a message before but I don't know if you received it I addressed
> it wrong. The problem is: I put the images of boot and root on disks,
> and boot. It boots, displays "Loading System..." and then when it's
> done there is no prompt. Whatever I type is echoed back to me. If
> I press any of the F- keys, I get this:
>
> 0: pid=0, state=1, eip=0017:00000000
This is a kind of debugging info: it just means that the swapper
(process 0) is the only task running. Normally state=1 means that the
task is waiting (but wakeable by signals), but the swapper is a special
case and simply ignores state. eip is useless: this value just means
that you have never made a task-switch, and thus saved anything in the
task-info.
> Is the shell on root or on boot disk? At what time am I supposed to insert
> the second disk?
The kernel should prompt you for it, but my guess is that the fork is
failing, as you only have the swapper task. This might happen if you
have only 1M of memory, and nothing above it. True? Even with 384kB of
extended memory (usual on 1M machines) the first fork should work, but
this looks like you have no extended memory at all.
If that wasn't it, please give more info on your hardware. Right now I
cannot think of anything else, as most things seem to work (keyboard,
screen -> interrupts work ok, no lock-up).
Linus
--[0139]--
[0140] daemon@ATHENA.MIT.EDU (Galen Hunt) Linux_Activists 12/01/91 23:37 (26 lines)
Subject: Display drivers, and no messages after "Loading System..."
Date: Sun, 1 Dec 91 21:30:03 mst
From: Galen Hunt <g-hunt@ee.utah.edu>
To: linux-activists@joker.cs.hut.fi
> I sent a message before but I don't know if you received it I addressed
> it wrong. The problem is: I put the images of boot and root on disks,
> and boot. It boots, displays "Loading System..." and then when it's
> done there is no prompt. Whatever I type is echoed back to me. If
> I press any of the F- keys, I get this:
>
> 0: pid=0, state=1, eip=0017:00000000
>
> What does this mean?
>
> Am I doing anything wrong?
>
> Is the shell on root or on boot disk? At what time am I supposed to insert
> the second disk?
I'd be willing to bet $50 dollars that you are trying to run Linux on
a machine that doesn't have a VGA or EGA monitor. The .10 release doesn't
have tty driver for monochrome cards (ala Hercules and MDA).
galen
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
galen c. hunt g-hunt@ee.utah.edu
--[0140]--
[0141] daemon@ATHENA.MIT.EDU (Yanek Martinson) Linux_Activists 12/02/91 00:46 (28 lines)
Subject: linux not booting and $50 and memory
To: g-hunt@ee.utah.edu (Galen Hunt)
Date: Mon, 2 Dec 91 0:39:06 EST
From: Yanek Martinson <safe0!yanek@mthvax.cs.miami.edu>
Cc: linux-activists@joker.cs.hut.fi
In-Reply-To: <9112020430.AA03364@cs.utah.edu>; from "Galen Hunt" at Dec 1, 91 9:30 pm
> I'd be willing to bet $50 dollars that you are trying to run Linux on
> a machine that doesn't have a VGA or EGA monitor. The .10 release doesn't
This is great. You can send a $50 check to
Yanek Martinson
1321 N 65 Way
Hollywood, FL 33024
Thank you.
This will help me pay for the extra memory I need.
The truth is, that I do have a VGA.
The problem is, as Linus guessed correctly, that
I only have 1MB of memory and that is not enough
for linux. Thus the first fork fails, and that
is why there is no init or shell or anything else.
--
yanek@mthvax.cs.miami.edu
safe0%yanek@mthvax.cs.miami.edu
--[0141]--
[0142] daemon@ATHENA.MIT.EDU (Marc CORSINI) Linux_Activists 12/02/91 19:18 (13 lines)
Subject: microemacs
Date: Tue, 3 Dec 91 01:08:10 EST
From: corsini@geocub.greco-prog.fr (Marc CORSINI)
To: linux-activists@joker.cs.hut.fi
Hi there,
I've got micro-emacs 3.9 sources (I know the actual are 3.11), and
tried to compile them (Now I've 386sx and 4Mo). I've selected USG
in estruct.h and TERMCAP as entry for terminal. The compilation works fine
but emacs doen't work. It seems that the system is not able to manage
the virtual screen. Any clue?
[mmc]
--[0142]--
[0143] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 12/03/91 07:24 (41 lines)
Subject: last call for diffs for 0.11
Date: Tue, 3 Dec 1991 13:57:58 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
Yow,
as the subject says, this is the last call for diffs for the 0.11
kernel. If you have bug-fixes or enhancements, I'll have to get them
before friday (6.12.91) in order for them to find their way into the new
kernel. I'll do the "last rites" for the new kernel during the weekend,
and put it out for ftp after that.
Changes between 0.10 and 0.11:
- fixed bugs in block-device drivers: floppies still have problems when
accessing 2 floppies at the same time, but otherwise everything seems to
work.
- german keyboard (thiel)
- console beeping (jtkohl).
- corrected owner checks, #!-recognition in execve (tytso)
- sticky directories (both me and tytso)
- demand-loading
- page-sharing between all processes.
I doubt demand-loading makes anything any faster, but it made
page-sharing possible, so it was "a good thing". Page sharing means that
when executing a new image, the pages aren't loaded from disk if some
other process has them. Especially on a multi-user setup (when we get
the init/login), this will speed things up and save memory.
I'll also release the bruce evans 86-assembler binaries at about the
same time as 0.11, as well as a new root-disk with the new system
binaries (mkfs, fsck and fdisk). Fdisk doesn't do anything, it just
checks the partition table and prints out the partitions.
Linus
--[0143]--
[0144] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/04/91 00:40 (14 lines)
Subject: compiling under minix?
Date: Tue, 3 Dec 91 21:26:28 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
Has anyone done this? When trying to compile Linux under Minix
I get a missing "divi.." or something on link. I assume these
to be soft floating point routines.
Why? I have a problem with the harddisk driver under Linux
being to fast. I had the same problem with minix, but being smaller
and slower, I was able to do enough compiling to put a delay in the
read function of wini.c. Linux uses GCC, which use causes so much
disk reading to happen, that compiling is out of the question.
--[0144]--
[0145] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 12/04/91 06:03 (24 lines)
Subject: Re: compiling under minix?
Date: Wed, 4 Dec 1991 12:57:53 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
In-Reply-To: Peter MacDonald's message as of Dec 3, 21:26
To: pmacdona@sol.UVic.CA (Peter MacDonald), linux-activists@joker.cs.hut.fi
Peter MacDonald: "compiling under minix?" (Dec 3, 21:26):
> Has anyone done this? When trying to compile Linux under Minix
> I get a missing "divi.." or something on link. I assume these
> to be soft floating point routines.
>
> Why? I have a problem with the harddisk driver under Linux
> being to fast. I had the same problem with minix, but being smaller
> and slower, I was able to do enough compiling to put a delay in the
> read function of wini.c. Linux uses GCC, which use causes so much
> disk reading to happen, that compiling is out of the question.
When compiling under minix, you are probably using an older version of
gcc (1.37.1 is the one that was on plains). Older versions are unable
to inline the integer division routines, and use a function found in
gnulib for division instead. Include gnulib in the final link, and all
should work. (Use the gnulib with minix - at least that one has been
tested with these functions).
Linus
--[0145]--
[0146] daemon@ATHENA.MIT.EDU (LCDR Michael E. Dobson) Linux_Activists 12/04/91 13:28 (25 lines)
Subject: cc1 fails silently
From: "LCDR Michael E. Dobson" <rdc30@nmrdc1.nmrdc.nnmc.navy.mil>
To: linux-activists@joker.cs.hut.fi (Linix Mailing LIst)
Date: Wed, 4 Dec 91 13:01:58 EST
Today when I had some time I wanted to try installing a pager and some
library routines. Imagine my surprise when nothing would compile! I could
not even get the very simple fixit.c program to compile, even gcc -c
fixit.c -o fixit.o produced nothing!! Using gcc -v and manually running
the indiviual steps, it seems cc1 is failing silently, ie, if I run the cc1
command from gcc -v on the output from cpp, I get no .s file produced!
This all used to work fine for me, I was even able to build the recently
posted mawk with little effort. Does anyone have a clue as to what is
going on?
I'd like to get this solved so I can get less up and move on to bigger
things. I'm looking to see what needs to be done to the posix/stdc lib
routines that came with the new pdksh sources. THey look to have at least
a complete string package which means I can then tackle uucp/mail/news.
Any suggestions greatly appreciated.
--
Mike Dobson, Sys Admin for | Internet: rdc30@nmrdc1.nmrdc.nnmc.navy.mil
nmrdc1.nmrdc.nnmc.navy.mil | UUCP: ...uunet!mimsy!nmrdc1!rdc30
AT&T 3B2/600G Sys V R 3.2.2 | BITNET: dobson@usuhsb or nrd0mxd@vmnmdsc
WIN/TCP for 3B2 | MCI-Mail: 377-2719 or 0003772719@mcimail.com
--[0146]--
[0147] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 12/04/91 14:33 (39 lines)
Subject: Re: cc1 fails silently
Date: Wed, 4 Dec 1991 21:13:38 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
In-Reply-To: "LCDR Michael E. Dobson"'s message as of Dec 4, 13:01
To: "LCDR Michael E. Dobson" <rdc30@nmrdc1.nmrdc.nnmc.navy.mil>,
"LCDR Michael E. Dobson": "cc1 fails silently" (Dec 4, 13:01):
> Today when I had some time I wanted to try installing a pager and some
> library routines. Imagine my surprise when nothing would compile! I could
> not even get the very simple fixit.c program to compile, even gcc -c
> fixit.c -o fixit.o produced nothing!! Using gcc -v and manually running
> the indiviual steps, it seems cc1 is failing silently, ie, if I run the cc1
> command from gcc -v on the output from cpp, I get no .s file produced!
> This all used to work fine for me, I was even able to build the recently
> posted mawk with little effort. Does anyone have a clue as to what is
> going on?
cc1 failing silently is usually due to out of memory errors, but as it
worked for you before, that probably isn't it. The only other solution
I can come up with is kernel bugs :-(.
It seems there are a few race-conditions left in 0.10, which can cause
filesystem errors. The worst of these was fixed with the new buffer.c,
and if you don't have the updated binaries, filesystem errors are a
certainty after a while (unless you are very lucky). Fsck is not (and
never will be) able to find errors that have creapt in into the
data-blocks of files - and as cc1 is the biggest binary linux uses,
that's the one most likely to catch these errors.
There was another race-condition I found only yesterday, but it
shouldn't cause too many problems, especially not for harddisks. That
one will be corrected in 0.11 (countdown: 4-5 days). I'm not even
certain this one can ever happen.
I'd suggest you verify your binary, and you might even upgrade to the
gcc-cc1 that understands floats with exponents, available from
Tupac-Amaru (incoming). If that doesn't cut it, I'd be interested in
what changes you have made to your hardware/system?
Linus
--[0147]--
[0148] daemon@ATHENA.MIT.EDU (LCDR Michael E. Dobson) Linux_Activists 12/04/91 16:27 (51 lines)
Subject: Re: cc1 fails silently
From: "LCDR Michael E. Dobson" <rdc30@nmrdc1.nmrdc.nnmc.navy.mil>
To: linux-activists@joker.cs.hut.fi (Linix Mailing LIst)
Date: Wed, 4 Dec 91 15:50:07 EST
In-Reply-To: <9112041942.AA05005@tsx-11.MIT.EDU>; from "Theodore Ts'o" at Dec 4, 91 2:42 pm
In response to my question about cc1 failing silently I received the
following:
>
> Date: Wed, 4 Dec 1991 21:13:38 +0200
> From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
>
> cc1 failing silently is usually due to out of memory errors, but as it
> worked for you before, that probably isn't it. The only other solution
> I can come up with is kernel bugs :-(.
>
From: <9112041942.AA05005@tsx-11.MIT.EDU>; from "Theodore Ts'o" at Dec 4,
91 2:24pm
> Have you checked to see if you've filled your hard disk? This is
> somewhat hard to check since there's no df utility. You can find out
> the number of free blocks of your root partition at boot time, though.
>
It appears you both were wrong and it is something more trouble, possibly
related to the race conditions Linus mentioned, but more likely some
subtle kernel bugs.
I forgot to mention I received a swapper panic when I soft booted from DOS
the first time and just redid the soft boot. Just a few minutes ago I did
a hard boot (ie hit the reset button) and saw the following at bootup:
Partiton table ok.
5278/9860 free blocks
2798/3294 free inodes
507 buffers = 519168 bytes free buffer space
Free mem: 3145728 bytes
Ok.
bash#
A "du" on / gave
8423 /.
The best part is that gcc now works just fine!! However, the make of less
failed because I don't have a sgtty.h Will grab the Minix version and see
what develops. It's also looking for libtermcap.a but we'll see ;-)
Regards,
--
Mike Dobson, Sys Admin for | Internet: rdc30@nmrdc1.nmrdc.nnmc.navy.mil
nmrdc1.nmrdc.nnmc.navy.mil | UUCP: ...uunet!mimsy!nmrdc1!rdc30
AT&T 3B2/600G Sys V R 3.2.2 | BITNET: dobson@usuhsb or nrd0mxd@vmnmdsc
WIN/TCP for 3B2 | MCI-Mail: 377-2719 or 0003772719@mcimail.com
--[0148]--
[0149] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 12/04/91 21:30 (42 lines)
Subject: Re: cc1 fails silently
Date: Wed, 4 Dec 91 21:13:22 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: "LCDR Michael E. Dobson" <rdc30@nmrdc1.nmrdc.nnmc.navy.mil>
Cc: linux-activists@joker.cs.hut.fi
In-Reply-To: LCDR Michael E. Dobson's message of Wed, 4 Dec 91 15:50:07 EST,
Reply-To: tytso@athena.mit.edu
It appears you both were wrong and it is something more trouble, possibly
related to the race conditions Linus mentioned, but more likely some
subtle kernel bugs.
Well, maybe. The swapper panic which happens after you type
ctrl-alt-del from DOS is standard in Linux 0.10 --- it's harmless, and
typing ctrl-alt-del after the panic will allow Linux to boot
successfully.
Partiton table ok.
5278/9860 free blocks
2798/3294 free inodes
507 buffers = 519168 bytes free buffer space
Free mem: 3145728 bytes
Ok.
bash#
A "du" on / gave
8423 /.
Remember that "du" outputs sizes in 512 byte blocks, courtesy of POSIX.
My personal opinion is that it's one of the stupidest mistakes POSIX
has committed, since most users care about file sizes in kilobytes, not
in 512 byte blocks --- but then, I can alias du to "du -k", so the only
losers are the innocent, naive users. [End of soapbox]
With that said, you may have a problem, but it looks like the standard
corrupted filesystem problem that happens when you are using a stock,
unpatched version of Linux 0.10. The number of free blocks as
caluclated by the "du" is (9860 - 8423/2) = 5644, which is larger than
5278, but only by 366k. I've seen that sort of lossage on the stock
Linux 0.10, and I haven't seen it once the bug fix to buffer.c was
applied.
- Ted
--[0149]--
[0150] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 12/04/91 22:31 (199 lines)
Subject: Re: cc1 fails silently
Date: Thu, 5 Dec 1991 05:15:29 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
In-Reply-To: Theodore Ts'o's message as of Dec 4, 21:13
To: tytso@athena.mit.edu,
Cc: linux-activists@joker.cs.hut.fi
Theodore Ts'o: "Re: cc1 fails silently" (Dec 4, 21:13):
>
> With that said, you may have a problem, but it looks like the standard
> corrupted filesystem problem that happens when you are using a stock,
> unpatched version of Linux 0.10. The number of free blocks as
> caluclated by the "du" is (9860 - 8423/2) = 5644, which is larger than
> 5278, but only by 366k. I've seen that sort of lossage on the stock
> Linux 0.10, and I haven't seen it once the bug fix to buffer.c was
> applied.
It does seem so, but always remeber that du doesn't count blocks
exactly: it uses a heuristic algorithm that doesn't work on sparse files
etc. I'd still check the filesystem - that's the most likely problem.
And then over to happier things: here's sources to mount and umount, as
corsini wanted something that keeps track of mounted devices, and as I
couldn't find anything more interesting to do I just hacked these
together . These versions keep the file "/etc/mtab" up-to-date, just
like real mount/umount should do. You can certainly confuse them, but
they are a bit better than nothing.
This is a 1/2 hour hack, so don't expect wonders, but my limited testing
hasn't shown any problems yet. /etc/mtab will later be needed for "df",
but as ustat isn't implemented yet, df won't work. Oh well. Meanwhile
you can get mount-info by "cat /etc/mtab".
Linus
---- mount.c ----------------
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>
#define TAB_FILE "/etc/mtab"
#define LOCK_FILE "/etc/mtab~"
int tab = -1;
int lock = -1;
volatile void die(void)
{
if (lock >= 0)
unlink(LOCK_FILE);
exit(1);
}
main(int argc, char ** argv)
{
int i;
char buffer[1024];
if (argc !=3) {
fprintf(stderr,"mount: usage: mount dev dir\n");
die();
}
lock = open(LOCK_FILE,O_CREAT | O_EXCL,0644);
if (lock < 0) {
fprintf(stderr,"mount: unable to open lock-file\n");
die();
}
chmod(LOCK_FILE,0644);
tab = open(TAB_FILE,O_RDONLY);
if (mount(argv[1],argv[2],0)) {
fprintf(stderr,"mount: error %d\n",errno);
die();
}
if (tab >= 0)
while ((i=read(tab,buffer,1024))>0)
write(lock,buffer,i);
i=strlen(argv[1]);
argv[1][i]=' ';
write(lock,argv[1],i+1);
i=strlen(argv[2]);
argv[2][i]='\n';
write(lock,argv[2],i+1);
unlink(TAB_FILE);
link(LOCK_FILE,TAB_FILE);
unlink(LOCK_FILE);
return 0;
}
----- umount.c ---------------
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>
#define TAB_FILE "/etc/mtab"
#define LOCK_FILE "/etc/mtab~"
#define CHECK 0
#define WRITE 1
#define NOWRITE 2
int tab = -1;
int lock = -1;
static int read_char(void)
{
static char buffer[1024];
static int i=0;
static int pos=0;
if (tab < 0)
return -1;
if (pos == i) {
i = read(tab,buffer,1024);
pos = 0;
}
if (i <= 0)
return -1;
return (unsigned) buffer[pos++];
}
static void write_char(int c)
{
static char buffer[1024];
static int i=0;
if (c<0) {
if (i)
write(lock,buffer,i);
i = 0;
return;
}
buffer[i++] = c;
if (i<1024)
return;
write(lock,buffer,i);
i=0;
}
volatile void die(void)
{
if (lock >= 0)
unlink(LOCK_FILE);
exit(1);
}
main(int argc, char ** argv)
{
int c,i,len;
int state;
if (argc != 2) {
fprintf(stderr,"umount: usage: umount dev\n");
die();
}
lock = open(LOCK_FILE,O_CREAT | O_EXCL,0600);
if (lock < 0) {
fprintf(stderr,"umount: unable to open lock-file\n");
die();
}
tab = open(TAB_FILE,O_RDONLY);
if (umount(argv[1])) {
fprintf(stderr,"umount: error %d\n",errno);
die();
}
len = strlen(argv[1]);
state = CHECK;
i = 0;
do {
c = read_char();
if (state==CHECK && !argv[1][i] && (c==' ' || c=='\n'))
state=NOWRITE;
if (c=='\n') {
if (state != NOWRITE)
write_char(c);
state = CHECK;
i = 0;
continue;
}
if (state == NOWRITE)
continue;
if (state == WRITE) {
write_char(c);
continue;
}
if (c == argv[1][i])
i++;
else {
for (state=0 ; state<i ;state++)
write_char((unsigned)argv[1][state]);
state = WRITE;
i = 0;
write_char(c);
}
} while (c >= 0);
write_char(-1);
unlink(TAB_FILE);
link(LOCK_FILE,TAB_FILE);
unlink(LOCK_FILE);
return 0;
}
--[0150]--
[0151] daemon@ATHENA.MIT.EDU (LCDR Michael E. Dobson) Linux_Activists 12/05/91 09:08 (57 lines)
Subject: Re: cc1 fails silently
From: "LCDR Michael E. Dobson" <rdc30@nmrdc1.nmrdc.nnmc.navy.mil>
To: tytso@athena.mit.edu
Date: Thu, 5 Dec 91 8:37:35 EST
Cc: linux-activists@joker.cs.hut.fi (Linix Mailing LIst)
In-Reply-To: <9112050213.AA05299@tsx-11.MIT.EDU>; from "Theodore Ts'o" at Dec 4, 91 9:13 pm
I previously said:
>
> It appears you both were wrong and it is something more trouble, possibly
> related to the race conditions Linus mentioned, but more likely some
> subtle kernel bugs.
>
To which Ted responded:
> Well, maybe. The swapper panic which happens after you type
> ctrl-alt-del from DOS is standard in Linux 0.10 --- it's harmless, and
> typing ctrl-alt-del after the panic will allow Linux to boot
> successfully.
>
Depends what you mean by successfully. If I can't run gcc after
ctrl-alt-del boot, I don't consider the boot successfull. Remember, I said
the cc1 failure disappeared when I did a hard boot, I did nothing else to
the system, did not reload the gcc binaries nor mkfs a new system. Now I
suppose it is therefore the in core image of the file system that was
corrupted and not the hard disk fs itself. I haven't attempted to build a
linux kernel myself yet so I didn't apply the buffer.c patch, will wait for
0.11 which will be able to compile itself without using Minix or some other
OS.
Ted then pointed out:
> Remember that "du" outputs sizes in 512 byte blocks, courtesy of POSIX.
> My personal opinion is that it's one of the stupidest mistakes POSIX
> has committed, since most users care about file sizes in kilobytes, not
> in 512 byte blocks --- but then, I can alias du to "du -k", so the only
> losers are the innocent, naive users. [End of soapbox]
>
Guess it's time to set up a "proper" .profile with a few aliases in it ;-)
Anyone know why the default TERM is "dumb" instead of "console"?
BTW, once gcc was working, I successfully built less using only
#define TERMIO 1
#define REGCMP 0
#define RECOMP 0
in defines.h and removing the reference to libtermcap.a in the Makefile.
I also was able to compile all the stdc routines from the pdksh src with
the exception of setvbuf.c, stdio.c (probably not needed) and vprintf.c.
I had to change the #include "stdh.h" to #include <string.h> in strstr.c
and one of the mem*.c routines. Anyone got a good exerciser for the mem*
and str* routines? These could be very useful additions to the Linux
libc.a NOTE, I used the *.h files that came with pdksh.
--
Mike Dobson, Sys Admin for | Internet: rdc30@nmrdc1.nmrdc.nnmc.navy.mil
nmrdc1.nmrdc.nnmc.navy.mil | UUCP: ...uunet!mimsy!nmrdc1!rdc30
AT&T 3B2/600G Sys V R 3.2.2 | BITNET: dobson@usuhsb or nrd0mxd@vmnmdsc
WIN/TCP for 3B2 | MCI-Mail: 377-2719 or 0003772719@mcimail.com
--[0151]--
[0152] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 12/05/91 14:42 (34 lines)
Subject: Re: cc1 fails silently
Date: Thu, 5 Dec 91 14:17:06 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: "LCDR Michael E. Dobson" <rdc30@nmrdc1.nmrdc.nnmc.navy.mil>
Cc: linux-activists@joker.cs.hut.fi
Reply-To: tytso@athena.mit.edu
From: "LCDR Michael E. Dobson" <rdc30@nmrdc1.nmrdc.nnmc.navy.mil>
Date: Thu, 5 Dec 91 8:37:35 EST
corrupted and not the hard disk fs itself. I haven't attempted to build a
linux kernel myself yet so I didn't apply the buffer.c patch, will wait for
0.11 which will be able to compile itself without using Minix or some other
OS.
Do you know about about TSX-11.MIT.EDU, or some of the other anonymous
FTP sites? There are precompiled boot images of Linux 0.10 which have
the patched buffer.c. There's also a pre-compiled image of less there
already. You might want to look around; there's binaries for kermit,
Bison (yacc), flex (lex), RCS, etc. Might help you from reiventing the
wheel. :-)
I also was able to compile all the stdc routines from the pdksh src with
the exception of setvbuf.c, stdio.c (probably not needed) and vprintf.c.
I had to change the #include "stdh.h" to #include <string.h> in strstr.c
and one of the mem*.c routines. Anyone got a good exerciser for the mem*
and str* routines? These could be very useful additions to the Linux
libc.a NOTE, I used the *.h files that came with pdksh.
I believe the Linux libc.a already contains the mem* and str* routines,
using the GNU libc routines. At least, the libc.a included in
gccbin.tar.Z already has those routines.
- Ted
--[0152]--
[0153] daemon@ATHENA.MIT.EDU (chrisa@extro.ucc.su.OZ.AU) Linux_Activists 12/05/91 19:24 (25 lines)
Subject: FAQ, port lists & shoelace
Date: Fri, 6 Dec 1991 00:11:49 GMT
To: linux-activists@joker.cs.hut.fi
From: chrisa@extro.ucc.su.OZ.AU
Hello *
A few questions
1) Has anything been done for a FAQ list as yet?
2) It seems that there may be a little reinventing of the wheel going on
in terms of porting stuff to linux. Maybe it would be a good idea to
compile a list of what has been ported so far, by whom, and where it is
(or patches to the original code) is available from. I guess if noone
else is willing, I could do this.
3) I have read about shoelace in the minix newsgroup before, but i only
have
macminix. Do you need to compile shoelace under minix to get it working
or can it be compiled under linux?
enuff for now...
chris.
--[0153]--
[0154] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 12/05/91 23:26 (26 lines)
Subject: Re: FAQ, port lists & shoelace
Date: Thu, 5 Dec 91 22:49:20 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: chrisa@extro.ucc.su.OZ.AU
Cc: linux-activists@joker.cs.hut.fi
In-Reply-To: chrisa@extro.ucc.su.OZ.AU's message of Fri, 6 Dec 1991 00:11:49 GMT,
Reply-To: tytso@athena.mit.edu
>2) It seems that there may be a little reinventing of the wheel going on
> in terms of porting stuff to linux. Maybe it would be a good idea to
> compile a list of what has been ported so far, by whom, and where it is
> (or patches to the original code) is available from. I guess if noone
> else is willing, I could do this.
blum@messua.informatik.rwth-aachen.de keeps such a list. Send mail to
him for more info. Stuff regarding Linux can be found at these
anonymous FTP sites: nic.funet.fi, tsx-11.mit.edu, and
tupac-amaru.informatik.rwth-aachen.de. New files that hit one site
generally hit all three (at least, I try to send binaries that get sent
to tsx-11 to the other two sites, and I try to grab anything new that
gets downloaded to nic.funet.fi and tupac-amaru). So you should also
try looking at one of the anonymous FTP sites to see if you can just
pick up the binaries.
- Ted
--[0154]--
[0155] daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 12/06/91 04:01 (46 lines)
Subject: The FAQ and other questions
Date: Fri, 6 Dec 91 09:52:11 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
To: linux-activists@joker.cs.hut.fi
Hi Linuxers!
Following are some answers to some questions recently mailed:
1) Has anything been done for a FAQ list as yet?
I am currently developing such a beast, and a LINUX Info sheet is already
done (mostly). If you are interested in helping with the FAQ, mail me and you
are on the list....
2) It seems that there may be a little reinventing of the wheel going on
in terms of porting stuff to linux. Maybe it would be a good idea to
compile a list of what has been ported so far, by whom, and where it is
(or patches to the original code) is available from. I guess if noone
else is willing, I could do this.
This list is available as TODO on
tupac-amaru.informatik.rwth-aachen.de:/pub/msdos/replace as are all the
binaries
3) I have read about shoelace in the minix newsgroup before, but i only
have
macminix. Do you need to compile shoelace under minix to get it working
or can it be compiled under linux?
I remember some patches for shoelace under linux sent out on this list,
but I didn`t get them
This leads me to an announcement:
I think next year I will start another service for LINUX. I will save
all the postings on the mailing list an make it available via anon ftp,
perhaps even via a mailserver with the ability to grep for keywords....
If you like this idea, have other ideas, or have set up such a service
yourself, please mail me
See you,
Robert "I'll do it ASAP" Blum
--[0155]--
[0156] daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 12/06/91 04:41 (67 lines)
Subject: The new TODO file
Date: Fri, 6 Dec 91 10:29:34 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
To: linux-activists@joker.cs.hut.fi
Hi Linuxers!
This is this weeks mailing of TODO :-)
If you have any additions, send mail (please!)
Robert Blum
This files contains the status of several tools for Linux
Currently ported/developed/compiled projects:
Name: ported by:
bison nicholas@cs.uwa.oz.au (binary only)
diff tytso@mit.edu (binary only)
flex tytso@mit.edu (binary only)
fsck torvalds@kruuna.helsinki.fi (source only)
gcc torvalds@kruuna.helsinki.fi (src &binary)
german kbd upsyf173@comparex.hrz.uni-bielefeld.de (source only)
id ???? (binary only)
kermit tytso@mit.edu (binary only)
less jtkohl@berkeley.cs.edu (binary only)
mkfs torvalds@kruuna.helsinki.fi (source only)
mount torvalds@kruuna.helsinki.fi (source only)
pmake jtkohl@berkeley.cs.edu (binary only)
rcs ???? (binary only)
umount torvalds@kruuna.helsinki.fi (source only)
whoami ???? (binary only)
All these programs can be FTPed as binaries/sources from the following sites
nic.funet.fi
tsx-11.mit.edu
tupac-amaru.informatik.rwth-aachen.de
Try your nearest site first! If you can't find them there, you'll find them
on tupac-amaru in every case.
===============================================================================
Projects currently under development:
Name: ported by: Remarks
c386 blum@messua.informatik.rwth-aachen.de Is working under Linux
A cc for this exists
Is currently teached
ANSI. Any help on this
would be appreciated.
gawk nicholas@cs.uwa.oz.au Still needs a working
mathlib.
networking jtkohl@echidna.berkeley.edu Mainly the BSD code
Perhaps even ffs
Networking=
BSD networking Tape VOL2
mathlib nicholas@cs.uwa.oz.au Will be a library for
387/287/soft-float-code
VFS proven@athena.mit.edu VFS=Virtual File System
Will probably out with
Linux 0.11
--[0156]--
[0157] daemon@ATHENA.MIT.EDU (LCDR Michael E. Dobson) Linux_Activists 12/06/91 10:42 (28 lines)
Subject: Possible bug in termios.h?
From: "LCDR Michael E. Dobson" <rdc30@nmrdc1.nmrdc.nnmc.navy.mil>
To: linux-activists@joker.cs.hut.fi (Linix Mailing LIst)
Date: Fri, 6 Dec 91 10:15:10 EST
While working on a port of UUCP, I came across what may be a bug in the
<termios.h> file. The values PARENB and PARODD where coming up undefined
even though termios.h had been included. Checking the source against POSIX
1003.1-1988 we find:
Linux 1003.1
c_cflag field c_cflag field
CPARENB PARENB
CPARODD PARODD
It seems that we should be using the mask name symbols PARENB and PARODD to
be compliant with section 7.1.2.4 of 1003.1
Any comments from the group?
PS: before flamming me for working on UUCP, I know we don't have
login/getty/uugetty nor do we have getlogin()/cuserid(), ttyname(),
cget*(), or cfset*(). Stay tuned!
--
Mike Dobson, Sys Admin for | Internet: rdc30@nmrdc1.nmrdc.nnmc.navy.mil
nmrdc1.nmrdc.nnmc.navy.mil | UUCP: ...uunet!mimsy!nmrdc1!rdc30
AT&T 3B2/600G Sys V R 3.2.2 | BITNET: dobson@usuhsb or nrd0mxd@vmnmdsc
WIN/TCP for 3B2 | MCI-Mail: 377-2719 or 0003772719@mcimail.com
--[0157]--
[0158] daemon@ATHENA.MIT.EDU (Marc CORSINI) Linux_Activists 12/06/91 12:18 (70 lines)
Subject: uemacs 3.11
Date: Fri, 6 Dec 91 17:55:42 +0100
From: corsini@numero6.greco-prog.fr (Marc CORSINI)
To: linux-activists@joker.cs.hut.fi
Hi,
I've compiled, nearly successfuly, micro emacs 3.11 under linux. To do
so,
1) get the sources from midas.mgmt.perdue.edu
2) apply the patches available from comp.emacs, for unix boxes (if
needed i can send it to this mailing list)
3) make the following changes:
-a- in eproto.h
line 24: change mlwrite(va_decl) to mlwrite(va_alist)
this makes the error to be only a warning
-b- in unix.c
to fit the def of rename() in /usr/include/stdio.h change lines 1241 and 1242
char * file1;
char * file2;
by
const char * file1;
const char * file2;
Moreover since linux has no ltermcap.a change also
#if HPUX || VAT
char PC, *UP;
short ospeed;
#else
by
#if HPUX || VAT || USG
char PC, *UP;
short ospeed;
#else
-c- finally set the following flags to 1 in estruct.h
USG
GCC
TERMCAP
supress the -ltermcap option when linking bin/emacs.exe
that's all. Hope this helps
[mmc]
PS1: the nearly success is caused by
when exiting emacs 3.11, the screen is not cleaned (apply cls by hand
is what i do). I still dig on it.
PS2: if u are interested, i can post the previous changes in cdif
form.
PS3: on MSX-11 there are a lot of patches, some were even not posted
on this list. My questions and "requierement" are
Are these patches also available on other sites (the european one)?, i
can't verify myself 'cause my site can't access them ('cause of money)
Would it be possible to make a README file for these patches where
there would be:
the order of apliance,
the things they cure
--[0158]--
[0159] daemon@ATHENA.MIT.EDU (Marc CORSINI) Linux_Activists 12/07/91 10:49 (12 lines)
Subject: micro emacs
Date: Sat, 7 Dec 91 16:40:22 EST
From: corsini@geocub.greco-prog.fr (Marc CORSINI)
To: linux-activists@joker.cs.hut.fi
Hi there,
it seems that the ^X^C is interpreted only as ^C which kill the emacs process
in fact ^X C do the thing that ^X^C is supposed to do. The called function are
correct, and there is no problem with the virtual screen functions.
[mmc]
PS as i mail with a blind terminal, the ^key must be read sa <CTRL><key>
--[0159]--
[0160] daemon@ATHENA.MIT.EDU (Marc CORSINI) Linux_Activists 12/08/91 10:40 (13 lines)
Subject: micro emacs again
Date: Sun, 8 Dec 91 16:31:14 EST
From: corsini@geocub.greco-prog.fr (Marc CORSINI)
To: linux-activists@joker.cs.hut.fi
Once again,
^X C is not a good solution, because it calls a sub-shell.
<ESC> X exit-emacs is correct, in fact it is the function bind to
^X^C, but the ^C is still catch by the system, and cause an
interruption.
[mmc]
--[0160]--
[0161] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 12/08/91 10:59 (33 lines)
Subject: linux-0.11 available
Date: Sun, 8 Dec 1991 17:51:24 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
The subject says it all: I have uploaded linux version 0.11 to
nic.funet.fi and tupac-amaru. They won't show up for a while on nic,
but are already visible in pub/msdos/replace/incoming at amaru. rtx-11
is so slow to use from here that I didn't upload them there: I guess
they'll show up within a couple of days (tytso?).
The files uploaded were:
bootimage.Z - US keyboard compressed bootimage
rootimage.Z - 1200kB compressed root image
linux-0.11.tar.Z - sources
as86.tar.Z - linux binaries for bruce evans'
16-bit assembler and loader.
INSTALL-0.11 - updated install-info
This version has a lot of corrections, and is stable at least on my
machine. I /hope/ every known bug is fixed, but no promises (and all
unknown bugs are still there, probably with reinforcements ;-). Those
who like to use caps lock as a ctrl-key, you'll have to re-patch the
kernel. It's not implemented in the standard version.
Linus
PS. I'll be a bit busy with the #"$/% physics-course I'm taking, so I
might not be as active on the net this coming week as I would like to.
PPS. corsini: the problem you have with the recompiled uemacs sounds
like it isn't resetting the ISIG bit in c_lflags when moving to raw
mode. Search for c_lflags in the source: it should effectively be set to
zero (I think) - no signals, no canonical mode etc.
--[0161]--
[0162] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 12/08/91 11:42 (21 lines)
Subject: ISIG bug already :-(
Date: Sun, 8 Dec 1991 18:34:04 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
It seems God hates me or something: 5 minutes after sending out
linux-0.11 I found a bug. This one also explains why corsini has had
problems with uemacs: I had the meaning of ISIG reversed in the kernel.
Happily the bug is not very important, and correcting it breaks /my/
version of uemacs, but I'm a bit shamefaced.
The bug is in linux/kernel/char_drv/tty_io.c: search for the line
containing "if (!L_ISIG" and remove the incorrect "!". I'll make a new
kernel binary available, as well as a new uemacs. Hopefully nobody ever
even gets to see the bad versions.
I guess we'll have to rename the system: wirzeniu already suggested the
name "buggyx" :-)
Linus
PS. Apologies to corsini for thinking he did something wrong.
--[0162]--
[0163] daemon@ATHENA.MIT.EDU (Marc Peters) Linux_Activists 12/08/91 18:16 (20 lines)
Subject: v 0.11 boot disk problem
Date: Sun, 8 Dec 91 15:01:30 -0800
From: mpeters@polyslo.csc.calpoly.edu (Marc Peters)
To: Linux-activists@joker.cs.hut.fi
I just downloaded the new improved v0.11, but it doesn't want to load on my
computer. It gives a couple errors similar to
HD controller reset failed: 000
Kernel Panic: HD controller not ready
and aborts the loading of the system. My computer has an MFM HD and
controller which may account for the problem, but v0.10 didn't seem to mind.
A friend has a machine with an IDE drive and controller, it gives the
first error but loads the system and seems to work fine.
If you could direct me toward a cure I'd be happy again, even if the cure
involves replacing my HD and controller. But I'm wondering what differences
could be in the new kernel that would obsolete my HD and if those changes
can't be re-changed.
Thank you for your time,
Marc Peters
--[0163]--
[0164] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 12/08/91 18:28 (16 lines)
Subject: RE: v 0.11 boot disk problem
Date: Mon, 9 Dec 1991 01:18:21 +0200
From: Ari Lemmke <arl@zen.cs.hut.fi>
To: Linux-activists@joker.cs.hut.fi
In-Reply-To: Marc Peters's message of Sun, 8 Dec 91 15:01:30 -0800 <9112082301.AA00933@polyslo.csc.calpoly.edu>
Linus downloaded new stuff .. so:
Linux 0.11 should now be available at nic.funet.fi ...
everything needed is in INSTALL directory (actually
stuff in INSTALL directory is hard linked from other
directories).
The main README file changes constantly ...
arl
--[0164]--
[0165] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 12/08/91 20:12 (51 lines)
Subject: hd_reset fails in 0.11
Date: Mon, 9 Dec 1991 02:57:40 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
Marc Peters: "v 0.11 boot disk problem" (Dec 8, 15:01):
> I just downloaded the new improved v0.11, but it doesn't want to load on my
> computer. It gives a couple errors similar to
> HD controller reset failed: 000
> Kernel Panic: HD controller not ready
> and aborts the loading of the system. My computer has an MFM HD and
> controller which may account for the problem, but v0.10 didn't seem to mind.
> A friend has a machine with an IDE drive and controller, it gives the
> first error but loads the system and seems to work fine.
Thanks, this is why there are still debug-statements in the code. There
are in fact two solutions (I hope) to the problem. Both of them require
you to change the file "linux/kernel/blk_drv/hd.c" which does the
harddisk specific stuff. As 0.10 doesn't try to reset the controller at
bootup, it seems to work, and you can still use it to recompile 0.11.
1 - set static int reset to 0 at startup (currently 1). This means
linux won't try to reset the controller in the beginning, but this is
just a temporary hack: if there are errors later on that need a reset,
you'll be in the same trouble.
2 - try to edit the timeouts in "reset_controller". If memory serves,
it's a line that goes like this:
outb_p(4,HD_CMD);
>> for (i=0 ; i<100 ; i++)
nop();
outb_p(xxx,HD_CMD);
Change the max value to 10000 or something, and try again. I have only
one controller to test, and timing-problems are always the worst kind.
There are a couple of other timing-values that are completely arbitrary
(guess a number between 1 and 100000, and if it works, it works :-), but
this is the first suspect.
I'd be very grateful if everybody who encounters this problem would try
out (2), and report to me how big the value had to be before the reset
made it (or indeed if it works even then). Don't do (1) unless nothing
else works. I'd also be interested to know what kind of machine you are
running (fast machine, slow disk?).
Linus
PS. I hope even old linux-users read the INSTALL-file: there is a change
in how linux boots up. No more /bin/update, instead linux executes the
shell script /etc/rc, which may mount/fsck etc, and start up update in
the background.
--[0165]--
[0166] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 12/08/91 21:02 (38 lines)
Subject: hd_reset fails in 0.11
Date: Mon, 9 Dec 1991 03:51:38 +0200
From: Ari Lemmke <arl@zen.cs.hut.fi>
To: Linux-activists@joker.cs.hut.fi
In-Reply-To: Linus Benedict Torvalds's message of Mon, 9 Dec 1991 02:57:40 +0200 <199112090057.AA06512@kruuna.helsinki.fi>
>2 - try to edit the timeouts in "reset_controller". If memory serves,
>it's a line that goes like this:
> outb_p(4,HD_CMD);
> >> for (i=0 ; i<100 ; i++)
> nop();
> outb_p(xxx,HD_CMD);
>Change the max value to 10000 or something, and try again. I have only
>one controller to test, and timing-problems are always the worst kind.
>There are a couple of other timing-values that are completely arbitrary
>(guess a number between 1 and 100000, and if it works, it works :-), but
>this is the first suspect.
I hacked one SCSI driver for Mach pc532 ... and there
was a lot of static wait loops (aaaaaargh) .. what we did was
changed wait loops as:
Wait_uSec( 100 );
and Wait_uSec function has loop .. where is (should be)
computed one uSec loop.
But we have all only 25MHz 32532 chips .. so it was
hard coded (ugh). There are many PC 386s around ..
like mine .. I'm running my 386/25 with 16 MHz CPU,
and don't have guts to run it full speed (gets really
hot, and don't have peltier element or any other way
to cool my machine just now ;-), so I'm running it
about 6 MHz speed (my board has dip for it).
arl
--[0166]--
[0167] daemon@ATHENA.MIT.EDU (Michael Kronvold) Linux_Activists 12/08/91 22:13 (16 lines)
Subject: Linux and SCSI (was: hd_reset fails in 0.11)
Date: Sun, 8 Dec 91 21:01:14 GMT-0600
From: kronvold@sumter.cso.uiuc.edu (Michael Kronvold)
To: Linux-activists@joker.cs.hut.fi
In-Reply-To: Ari Lemmke's message of Mon, 9 Dec 1991 03:51:38 +0200 <199112090151.AA26582@zen.cs.hut.fi>
> I hacked one SCSI driver for Mach pc532 ... and there
> was a lot of static wait loops (aaaaaargh) .. what we did was
> changed wait loops as:
> Wait_uSec( 100 );
> and Wait_uSec function has loop .. where is (should be)
> computed one uSec loop.
I'm trying (and failing miserably) to get Linux up on my 386-40
with a SCSI drive... Anything you have that I could use as a referance?
- Mike
--[0167]--
[0168] daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 12/09/91 03:49 (125 lines)
Subject: The Linux info sheet
Date: Mon, 9 Dec 91 09:06:54 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
To: linux-activists@joker.cs.hut.fi
Hi Linuxers!
Following is the first official version of a Linux info sheet. If you like
it, I'd suggest posting this thing to:
comp.os.misc
comp.os.mach
comp.os.minix
comp.os.coherent
comp.os.sysv.i386
comp.unix.programmers
comp.binaries.ibm.pc.d
Comments and suggestions are welcome.
Ciao,
Robert
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
--[0168]--
[0169] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/09/91 23:07 (8 lines)
Subject: linux-.11 cures unexpected interupt problem
Date: Mon, 9 Dec 91 19:56:31 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
Just a word of praise for linux-0.11. I still get unexpected HD interrupt
messages, but I could compile the system, and comment out that message.
Which means linux can live with my brain-dead IDE drive, something minix
couldn't do without my modifying the harddisk driver.
--[0169]--
[0170] daemon@ATHENA.MIT.EDU (Drew Eckhardt) Linux_Activists 12/10/91 00:23 (56 lines)
Subject: Re: Linux and SCSI (was: hd_reset fails in 0.11)
Date: Mon, 9 Dec 1991 22:15:17 -0700
From: Drew Eckhardt <drew@hazelrah.cs.Colorado.EDU>
To: Linux-activists@joker.cs.hut.fi, kronvold@sumter.cso.uiuc.edu
> was a lot of static wait loops (aaaaaargh) .. what we did was
> changed wait loops as:
> Wait_uSec( 100 );
Accomodating the BUS settle time is a real pain. In my linux driver I
am using small chunks of inline assembler to accomodate it and the glitch
detection discussed in the standard.
> and Wait_uSec function has loop .. where is (should be)
> computed one uSec loop.
I'm trying (and failing miserably) to get Linux up on my 386-40
with a SCSI drive... Anything you have that I could use as a referance?
Before any one else starts on this, I'm currently working on a Linux SCSI
driver (~60 - 70% complete).
A brief description of the project :
It's a multi-tiered design, with SCSI disk / tape
Linux block device drivers, a high-level host independant module
that has a generic interface to the low level module and host independant
initialization routines, and a low level, host specific implementation.
The interface between the low & high level part is through an array of
host structures, where each host structure has a pointer to a detect
function, an information function, and the actual SCSI command function.
Use of multiple host adapters is supported.
Code in the high-level SCSI initialization routine scans each present
SCSI host for devices - target ID 0-6, LUN 0-7 if LUN 0 is found.
Capacity of each device is determined, and a structure in either the
ST tape driver or SD disk driver.
This, in conjunction with the detect function supplied for each host,
allows the drivers to be 100% self configuring.
The SCSI disk and TAPE drivers simply pass SCSI commands through the
high level interface to their appropriate devices. The disk device
also automatically remaps bad sectors.
It will initially be bundled with a low-level driver for the
Seagate ST-01/ST-02 SCSI hosts - what I have. They're 8 bit,
can't run 1:1 on SCSI disks, but they're dirt cheap...
If any one has other hosts, and wants to volunteer to write a matching
low level driver, I can supply the interface specifications
for your driver now, and working disk block device driver within a couple
days when I'm satisfied with it.
--[0170]--
[0171] daemon@ATHENA.MIT.EDU (Michael Kronvold) Linux_Activists 12/10/91 02:30 (12 lines)
Subject: Linux and SCSI (was: hd_reset fails in 0.11)
Date: Tue, 10 Dec 91 01:16:26 GMT-0600
From: kronvold@sumter.cso.uiuc.edu (Michael Kronvold)
To: drew@hazelrah.cs.colorado.edu
Cc: Linux-activists@joker.cs.hut.fi
In-Reply-To: Drew Eckhardt's message of Mon, 9 Dec 1991 22:15:17 -0700 <199112100515.AA13922@hazelrah.cs.Colorado.EDU>
Well, I'm using a DTC controller, and I seriously doubt my ability to
write the low level for it... BUT, I'm willing to try just in case someone
else out there might have a similar controller. :)
- Mike
--[0171]--
[0172] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 12/10/91 02:55 (41 lines)
Subject: Signal handler compatibility?
Date: Tue, 10 Dec 91 02:47:13 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: Linux-activists@joker.cs.hut.fi
Reply-To: tytso@athena.mit.edu
Well, it looks like I have job control pretty much functioning with a
version of bash that understands job control, and it pretty much works.
One or two more days while I do more testing and packaging of diffs, and
I'll be sending the kernel changes to Linus, and making them available
on TSX-11 so that more adventurous souls who job control sooner rather
than later can grab it and try it out.
One of the problems which I've run into during my testing is that when a
read gets interrupted with a ^Z, when you restart it, the system call
that was in progress returns a -EINTR, and the program is supposed to
understand the EINTR and restart the system call. Well, the problem is
thatmost programs *don't* bother to understand EINTR, and so it is
highly desirable to have restartable system calls ala BSD 4.3.
Unfortunately, in order to do that, it will be necessary to change the
signal trampoline code so the signal handler exits, a sigreturn system
call is executed. This in fact will result in cleaner and clearer code
in the kernel, but since the signal trampoline code is part of libc.a,
it would mean that code which used signal handlers would need to be
recompiled. In other words, a kernel which used the new way of doing
signal handling would not be binary compatible with binaries that used
signal handlers.
Now, I can think of ways that would probably work in making the
resulting kernel be backwards compatible, but they all involve really
gross hacks that would be really painful, and I'm not sure that it would
be good thing to be introducing ugly hacks to maintain backwards
compatibility when Linux is still in beta test.
How do people feel about this one? How much code which has been ported
actually use signal handlers? Would people be willing to recompile them
with a new libc.a? Linus, would you be willing to take a change in the
signal handling code that might not be backwards compatible?
- Ted
--[0172]--
[0173] daemon@ATHENA.MIT.EDU (Patrick L. McGillan) Linux_Activists 12/10/91 09:19 (26 lines)
Subject: hd controller problem
From: Patrick L. McGillan <pmcgilla@hp.uwsuper.edu>
To: linux-activists@joker.cs.hut.fi (Linux User Group)
Date: Tue, 10 Dec 91 8:03:28 CST
Hi all,
Like others I had a problem when starting up Linux 0.11. The changes
suggested sort of worked, i.e. not doing a reset on boot did, but making
a bigger loop in reset_controller didn't. The method I used was to
increase the loop in drive_busy from 10000 to 100000. The loop in reset_
controller is back to 100. No problems.
Linus you asked about machines people are using that have the problem.
My motherboard is a 33mhz-64k cache board. The controller is a HD/FD,
with the HD portion locked to 1:1 interleave. As you may remember from
earlier discussion the FD portion wouldn't work under Linux so I disabled
it and put a floppy only controller card in. The Hard disk seems to be
sluggish and usually responds slow, so I imagine that is where the problem
is coming from.
Later,
--
Patrick L. McGillan
Computer Systems Specialist
University Of Wisconsin Ph: (715) 394-8191
Superior, Wisconsin pmcgilla@uwsuper.edu
--[0173]--
[0174] daemon@ATHENA.MIT.EDU (LCDR Michael E. Dobson) Linux_Activists 12/10/91 11:17 (26 lines)
Subject: Seg Faults under 0.11
From: "LCDR Michael E. Dobson" <rdc30@nmrdc1.nmrdc.nnmc.navy.mil>
To: linux-activists@joker.cs.hut.fi (Linux Mailing List)
Date: Tue, 10 Dec 91 10:44:17 EST
I seem to be having some trouble with Out of memory errors under 0.11 that
I didn't have under 0.10. Uncompress is failing with an:
Out of memory.
Segmentation Fault
error on even small files.
At bootup I show 3647 free blocks on the root hd device and 3145728 free
bytes of mem.
The cu from Will Rose's UUCP 1.2 package also fails with the above error
even though I now have it compiling and linking with only some incompatible
pointer type warnings, some unused variable warnings, and some implicit
function declaration warnings.
Can anyone shed some light as to what could be causing the above errors?
--
Mike Dobson, Sys Admin for | Internet: rdc30@nmrdc1.nmrdc.nnmc.navy.mil
nmrdc1.nmrdc.nnmc.navy.mil | UUCP: ...uunet!mimsy!nmrdc1!rdc30
AT&T 3B2/600G Sys V R 3.2.2 | BITNET: dobson@usuhsb or nrd0mxd@vmnmdsc
WIN/TCP for 3B2 | MCI-Mail: 377-2719 or 0003772719@mcimail.com
--[0174]--
[0175] daemon@ATHENA.MIT.EDU (d7stfax@dtek.chalmers.se) Linux_Activists 12/10/91 12:56 (29 lines)
Subject: IDE partitions larger than 65536?
From: d7stfax@dtek.chalmers.se
To: linux-activists@joker.cs.hut.fi (The Linux mailing list)
Date: Tue, 10 Dec 91 18:45:55 MET
I've finally come around to get Linux home (I've had other things to
do, and thought I'd wait till the 0.11 release anyway.), and
everything worked like a charm, until I tried the 'mkfs' it wouldn't
run, but stopped with a USAGE:! To make a long story short, I've now
found out that it was due to me wanting to use my entire 105 Meg hard
disk as one partition, mkfs won't allocate more than 65536 blocks.
My question is now simply, should I repartition my hard disk to two
partitions, or can I easily change the 16 bit block number limit (e.g.
DEFINE, and recompile)? I strongly suspect the former, but since I
haven't begun to read the sources yet I'm not 100% sure.
If it's repartition time could some kind soul point me to a good
(DOS?) program that does that? DOS fdisk doesn't seem up to it,
especially since the disk had only one 105 Meg Interactive Unix
partition on it. My setup is: 386-25, IDE Plus co. 105 Meg hard disk,
10 Meg memory, VGA controler.
I'm no MSDOS junkie, but I asked the ones here, and the above is as
far as I got.
Regards,
--
Stefan Axelsson, Chalmers University of Technology,
d7stfax@dtek.chalmers.se Sweden
--[0175]--
[0176] daemon@ATHENA.MIT.EDU (Michael K. Johnson) Linux_Activists 12/10/91 13:28 (17 lines)
Subject: DTC SCSI controllers
Date: Tue, 10 Dec 91 12:17:07 CST
From: johnsonm@stolaf.edu (Michael K. Johnson)
To: Linux-activists@joker.cs.hut.fi
I have a DTC SCSI controller, and would be willing to (as I become a bit
more proficient) write the low-level driver for it. However, there is
a catch -- I will almost assuredly, due to my schedule, not be able to
start till february or so. Sooooo, if anyone else wants to pick this
up, feel free:-)
If anyone needs to talk to them, I have voice and BBS numbers for their
tech support.
michaelkjohnson
johnsonm@stolaf.edu
I do not do .sig's
--[0176]--
[0177] daemon@ATHENA.MIT.EDU (Patrick L. McGillan) Linux_Activists 12/10/91 15:50 (14 lines)
Subject: printing
From: Patrick L. McGillan <pmcgilla@hp.uwsuper.edu>
To: linux-activists@joker.cs.hut.fi (Linux User Group)
Date: Tue, 10 Dec 91 14:36:28 CST
Hi,
Am I missing something or does linux have no way of printing something out.
I.E. how do others obtain print outs of their work.
--
Patrick L. McGillan
Computer Systems Specialist
University Of Wisconsin Ph: (715) 394-8191
Superior, Wisconsin pmcgilla@uwsuper.edu
--[0177]--
[0178] daemon@ATHENA.MIT.EDU (David Darknell) Linux_Activists 12/10/91 16:19 (11 lines)
Subject: Re: Linux and SCSI (was: hd_reset fails in 0.11)
Date: Tue, 10 Dec 91 13:04:50 PST
From: David Darknell <david@maxwell.ucsc.edu>
To: Linux-activists@joker.cs.hut.fi, drew@hazelrah.cs.colorado.edu,
YES! I am trying to write a driver for a FastCache High performance
SCSI controller (I used to have a ST-01/02) but I am in a catch 22:
I cannot run Linux on the drive without a driver, but cannot write the
driver without Linux. So here is my plan: Install MFM controller and
40Meg drive long enough to write the SCSI driver, then dump it. I
would
be happy to get anything you have that might make my job easier!
--[0178]--
[0179] daemon@ATHENA.MIT.EDU (LCDR Michael E. Dobson) Linux_Activists 12/10/91 16:31 (39 lines)
Subject: More Seg Fault troubles
From: "LCDR Michael E. Dobson" <rdc30@nmrdc1.nmrdc.nnmc.navy.mil>
To: torvalds@kruuna.helsinki.fi (Linus Torvalds)
Date: Tue, 10 Dec 91 16:05:11 EST
Cc: linux-activists@joker.cs.hut.fi (Linux Mailing List)
Linus,
I've found another set of conditions where I can reproducibly generate the
out of memory
Segmentation fault
messages using a simple command.
Environment:
drwxr-xr-x root sys /usr/spool
drwxr-xr-x uucp uucp /usr/spool/uucp
ls -l /usr/spool
from anywhere but within /usr/spool generates :
/usr/spool
total 1
out of memory
Segmentation fault
a plain ls /usr/spool generates:
uucp
with no errors
looks possibly like a EPERM problem during the stat of the directory.
--
Mike Dobson, Sys Admin for | Internet: rdc30@nmrdc1.nmrdc.nnmc.navy.mil
nmrdc1.nmrdc.nnmc.navy.mil | UUCP: ...uunet!mimsy!nmrdc1!rdc30
AT&T 3B2/600G Sys V R 3.2.2 | BITNET: dobson@usuhsb or nrd0mxd@vmnmdsc
WIN/TCP for 3B2 | MCI-Mail: 377-2719 or 0003772719@mcimail.com
--[0179]--
[0180] daemon@ATHENA.MIT.EDU (Marc Peters) Linux_Activists 12/10/91 16:33 (35 lines)
Subject: Serial Communications...
Date: Tue, 10 Dec 91 13:22:00 -0800
From: mpeters@polyslo.csc.calpoly.edu (Marc Peters)
To: linux-activists@joker.cs.hut.fi
I may have missed this discussion, but is anyone else having a problem with
modem communications? It seems that the serial communication is sending 16 bit
words rather than 8 bit characters (ie. it sends two characters at a time).
This works great if the command you send is of odd character length so when
you hit a carriage return it makes it even, but when you have an even length
command, you must hit return followed by say a <space> to have the return sent.
This happens in both V 0.10 and V 0.11 in both Kermit and Term.
Note: It happens when sending the "at" string to the modem as well as when the
modem is connected.
Also, I was able to fix the HD not ready error by changing the length of the
null loop in the hd_ready function (in hd.c) to 30,000. Changing the length
of the controller reset function didn't accomplish anything more than delaying
the time it took before it printed the error. I still get the controller reset
error but it isn't fatal so things keep moving. I have a 386DX-33 with a MFM
hard drive. The drive is pretty old so it is a little slow (which may be the
problem). I did try V 0.11 on a 386DX-25 that has a faster IDE controller
drive in it and it doesn't get the fatal error with the drive ready loop set
to 10,000. It still get the controller reset error though.
The last question I have is how do I change the source code to compile the
kernel to boot from Major 0 minor 0 rather than Major 3 minor 6? I tried
changing the defaults in build.c and changed bootsect.s to have 000 instead
for the root device (should give the floppy). However, when I compile the
kernel, the build program consistently uses (3, 6). What am I missing?
Marc Peters
mpeters@polyslo.calpoly.edu
--[0180]--
[0181] daemon@ATHENA.MIT.EDU (LCDR Michael E. Dobson) Linux_Activists 12/11/91 12:36 (42 lines)
Subject: Re: More Seg Fault troubles
From: "LCDR Michael E. Dobson" <rdc30@nmrdc1.nmrdc.nnmc.navy.mil>
To: torvalds@cc.helsinki.fi (Linus Benedict Torvalds)
Date: Wed, 11 Dec 91 12:02:13 EST
Cc: linux-activists@joker.cs.hut.fi (Linux Mailing List)
In-Reply-To: <199112102246.AA07956@kruuna.helsinki.fi>; from "Linus Benedict Torvalds" at Dec 11, 91 12:46 am
Linus,
I've done some more investigating and can give you detailed info that
should reproduce the bug on your system.
Entry from /etc/passwd that causes problem
uucp::5:5:/usr/lib/uucp **NOTE NO ":" on end of entry***
ls -l /usr/spool
drwxr-xr-x uucp uucp 48 11 DEc 10:53 uucp
/usr/spool
total 1
out of memory
Segmentation fault
ls -lR /usr/spool is ok!
cd /usr/spool
ls -l is ok!
Now for the interesting part:
adding ":" to end of uucp entry in /etc/passwd cures problem!!
So, you know the code involved, bug or "feature"?
--
Mike Dobson, Sys Admin for | Internet: rdc30@nmrdc1.nmrdc.nnmc.navy.mil
nmrdc1.nmrdc.nnmc.navy.mil | UUCP: ...uunet!mimsy!nmrdc1!rdc30
AT&T 3B2/600G Sys V R 3.2.2 | BITNET: dobson@usuhsb or nrd0mxd@vmnmdsc
WIN/TCP for 3B2 | MCI-Mail: 377-2719 or 0003772719@mcimail.com
--[0181]--
[0182] daemon@ATHENA.MIT.EDU (drew@anchor.cs.colorado.edu) Linux_Activists 12/11/91 18:57 (359 lines)
Subject: Re: Linux and SCSI
To: Linux-activists@joker.cs.hut.fi,
Cc: drew@anchor.cs.colorado.edu
Date: Wed, 11 Dec 91 16:41:04 MST
From: drew@anchor.cs.colorado.edu
--------
>
> Date: Tue, 10 Dec 91 12:13:59 CST
> To: drew@hazelrah.cs.Colorado.EDU
> From: johnsonm@stolaf.edu (Michael K. Johnson)
> Subject: Re: Linux and SCSI (was: hd_reset fails in 0.11)
>
>
> Return-Path: johnsonm@stolaf.edu
> Status: RO
>
> --------------------------------------------------------------------
> I am just learning unix systems programming with linux, but I have
> a SCSI hard drive and a DTC adapter, and would be very willing to
> write the device dependent stuff for it when I get to that ability
> level if no one else has done it be then. I will be taking an OS
> class next semester (starting february) so I could even use this
> as a project. So although I can't do this right now, I would like
> it if you could put me on your list to get the information, which
> I can save and then hopefully work on when I am able.
>
> Thanks a lot!
>
> michaelkjohnson
>
> Date: Tue, 10 Dec 91 12:17:07 CST
> To: Linux-activists@joker.cs.hut.fi
> From: johnsonm@stolaf.edu (Michael K. Johnson)
> Subject: DTC SCSI controllers
>
>
> Return-Path: johnsonm@stolaf.edu
> Status: RO
>
> --------------------------------------------------------------------
>
> I have a DTC SCSI controller, and would be willing to (as I become a bit
> more proficient) write the low-level driver for it. However, there is
> a catch -- I will almost assuredly, due to my schedule, not be able to
> start till february or so. Sooooo, if anyone else wants to pick this
> up, feel free:-)
>
> If anyone needs to talk to them, I have voice and BBS numbers for their
> tech support.
>
> michaelkjohnson
> johnsonm@stolaf.edu
> I do not do .sig's
>
>
>
>
> Date: Tue, 10 Dec 91 13:04:50 PST
> To: Linux-activists@joker.cs.hut.fi, drew@hazelrah.cs.Colorado.EDU,
> kronvold@sumter.cso.uiuc.edu
> From: David Darknell <david@maxwell.ucsc.edu>
> Subject: Re: Linux and SCSI (was: hd_reset fails in 0.11)
>
>
> Return-Path: david@maxwell.UCSC.EDU
> Status: RO
>
> --------------------------------------------------------------------
> YES! I am trying to write a driver for a FastCache High performance
> SCSI controller (I used to have a ST-01/02) but I am in a catch 22:
> I cannot run Linux on the drive without a driver, but cannot write the
> driver without Linux. So here is my plan: Install MFM controller and
> 40Meg drive long enough to write the SCSI driver, then dump it. I
> would
> be happy to get anything you have that might make my job easier!
--------
You don't have to compile Linux under Linux.
Another possibility is cross compiling. If you have access to another
little endian machine <The DEC-MIPS architecture fits this bill>, LSB
first, cross compiling is as easy as doing a make gcc with target machine
set to some tm-i386 file.
Depending on how the host system is set up, you may be able to use the
native ld / ar - and even if not, it is no problem to compile the
gnu binutils and have gcc/gas use them.
Anyways, here's my hosts.h file, the generic interface to the lowlevel
host specific drivers. There isn't much too it - the point here was
to keep things SIMPLE, flexible, and 100% self configuring so we aren't
recompiling just to get SCSI support.
This is pretty firm - I have one idea I may / may not want to implement
that I'll talk about in the end.
-- cut here - hosts.h --
#ifndef __HOST_H__
#define __HOSTS_H__
/*
File hosts.h
SCSI host adapter include file.
*/
#define MAX_SCSI_HOSTS 1
/*
The Scsi_Host type has all that is needed to interface with a SCSI
host in a device independant matter.
*/
typedef struct
{
/*
The name pointer is a pointer to the name of the SCSI
device detected.
*/
char *name;
/*
The detect function shall return non zero on detection,
and initialize all data necessary for this particular
SCSI driver.
*/
int (* detect)(void);
/*
The info function will return whatever useful
information the developer sees fit.
*/
char * (* info)(void);
/*
The command function shall return the SCSI return
code in the low 8 bits, a driver error in the high 8
bits. Target is the target ID, IN normal numbers - not a
bit. The cmnd is the variable length command to
be sent,
buff a pointer to the buffer which will be read from /
written to, and bufflen the length of that buffer
*/
int (* command)(unsigned char target, const void *cmnd,
void *buff, int bufflen);
/*
present contains a flag as to weather we are present -
so we don't have to call detect multiple times.
*/
unsigned char present;
} Scsi_Host;
/*
The scsi_hosts array is the array containing the data for all
possible <supported> scsi hosts.
*/
extern Scsi_Host scsi_hosts[MAX_SCSI_HOSTS];
/*
scsi_init initializes the scsi hosts.
*/
void scsi_init(void);
#endif
-- end --
And, for our return codes, useful SCSI stuff, etc, we have
scsi.h
-- scsi.h cut here --
#ifndef __SCSI_H__
#define __SCSI_H__
/*
For documentation on the OPCODES, MESSAGES, and SENSE values,
please consult the SCSI standard.
*/
/*
SCSI opcodes
*/
#define TEST_UNIT_READY 0x00
#define REZERO_UNIT 0x01
#define REQUEST_SENSE 0x03
#define FORMAT_UNIT 0x04
#define REASSIGN_BLOCKS 0x07
#define READ_6 0x08
#define WRITE_6 0x0a
#define SEEK 0x0b
#define INQUIRY 0x12
#define MODE_SELECT 0x15
#define RESERVE 0x16
#define RELEASE 0x17
#define COPY 0x18
#define MODE_SENSE 0x1a
#define START_STOP 0x1b
#define RECIEVE_DAIGNOSTIC 0x1c
#define SEND_DIAGNOSTIC 0x1d
#define ALLOW_MEDIUM_REMOVAL 0x1e
#define READ_CAPACITY 0x25
#define READ_10 0x28
#define WRITE_10 0x2a
#define SEEK_10 0x2b
#define WRITE_VERIFY 0x2e
#define VERIFY 0x2f
#define SEARCH_HIGH 0x30
#define SEARCH_EQUAL 0x31
#define SEARCH_LOW 0x32
#define SET_LIMITS 0x33
#define COMPARE 0x39
#define COPY_VERIFY 0x3a
/*
MESSAGE CODES
*/
#define COMMAND_COMPLETE 0x00
#define EXTENDED_MESSAGE 0x01
#define SAVE_POINTERS 0x02
#define RESTORE_POINTERS 0x03
#define DISCONNECT 0x04
#define INITIATOR_ERROR 0x05
#define ABORT 0x06
#define MESAGE_REJECT 0x07
#define NOP 0x08
#define MSG_PARITY_ERROR 0x09
#define LINKED_CMD_COMPLETE 0x0a
#define LINKED_FLG_CMD_COMPLETE 0x0b
#define BUS_DEVICE_RESET 0x0c
#define IDENTIFY 0x80
/*
Our errors returned by OUR driver, NOT SCSI message. Orr'd with
SCSI message passed back to driver <IF any>.
*/
/* NO error */
#define DID_OK 0x0000
/* Couldn't connect before timeout period */
#define DID_NO_CONNECT 0x0100
/* BUS stayed busy through time out period */
#define DID_BUS_BUSY 0x0200
/* TIMED OUT for other reason */
#define DID_TIME_OUT 0x0300
/* ERROR from TARGET */
#define DID_TERROR 0x0400
/* TARGET was busy */
#define DID_TBUSY 0x0500
/* TARGET disconnected prematurely */
#define DID_TDISCONNECT 0x0600
/* TARGET was off line */
#define DID_TOFFLINE 0x0700
/* TARGET wants US to send IT a message */
#defibe DID_TREQ_MSG_OUT 0x0800
/* TARGET parity error */
#define DID_TPARITY 0x0900
/* TARGET requested reselect */
#define DID_TRESELECT 0x0A00
/* TARGET was not in the range 0-6 inlclusive */
#define DID_BAD_TARGET 0x0B00
/*
SENSE KEYS
*/
#define NO_SENSE 0x00
#define RECOVERED_ERROR 0x01
#define NOT_READY 0x02
#define MEDIUM_ERROR 0x03
#define HARDWARE_ERROR 0x04
#define ILLEGAL_REQUEST 0x05
#define UNIT_ATTENTION 0x06
#define DATA_PROTECT 0x07
#define BLANK_CHECK 0x08
#define COPY_ABORTED 0x0a
#define ABORTED_COMMAND 0x0b
#define VOLUME_OVERFLOW 0x0d
#define MISCOMPARE 0x0e
/*
DEVICE TYPES
*/
#define TYPE_DISK 0x00
#define TYPE_TAPE 0x01
#define TYPE_WORM 0x04 /* Treated as ROM by our system */
#define TYPE_ROM 0x05
#define TYPE_NO_LUN 0x7f
/*
Every SCSI command starts with a one byte OP-code.
The next byte's high three bits are the LUN of the
device. Any multi-byte quantities are stored high byte
first, and may have a 5 bit MSB in the same byte
as the LUN.
*/
#endif
-- end --
I'll divert work from the low level routines <real pain> to the high &
mid level routines to have something to pass around for when people start
getting other low level drivers done.
I *REALLY* like the above interface in terms of meeting the design
criteria of simplicity, independance of the host-specific code,
and the ability for the routines to configure automatically.
The finaly interface will be almost identical to what is there now.
However, it might also be nice to be able to queue commands for use
with interrupt driven SCSI hosts that can function without the
computer controlling everything-
We may want to add a que_command call that will add a command to an internal
queue in the host specific driver. This would be something like the
command function, only it would also take a pointer to a routine
that was called on completion, like
int (*queue_command)(unsigned char target, const void *cmd,
void *buff, int bufflen, void (*complete)(int host,
int serial_no, int cmd_return));
Where it returns the serial number of the queued command, and calls the
complete function on termination <this would be called from an interrupt
service routine> with the SCSI message / return code , host # <from array>
and serial number of the command that terminated.
Other solicitations for opinions
1. Other peoples opinions on when to remap
2. What we want to do about sector sizes that are not 512 bytes
3. Currently, I use only 10 byte read/writes in my disk / tape drivers.
The rationale behind this is that 10 byte commands fall in the
same compliance level as INQUIRY and READ CAPACITY commmands,
and presumably a drive would have all.
Is this a valid ssumption? Does anybody see a reason for
me to bloat the code and check for 10 byte commmand failure,
and implement the 6 byte read/write if so?
--[0182]--
[0183] daemon@ATHENA.MIT.EDU (drew@anchor.cs.colorado.edu) Linux_Activists 12/11/91 19:39 (359 lines)
Subject: Re: Linux and SCSI
To: Linux-activists@joker.cs.hut.fi,
Cc: drew@anchor.cs.colorado.edu
Date: Wed, 11 Dec 91 17:17:25 MST
From: drew@anchor.cs.colorado.edu
--------
>
> Date: Tue, 10 Dec 91 12:13:59 CST
> To: drew@hazelrah.cs.Colorado.EDU
> From: johnsonm@stolaf.edu (Michael K. Johnson)
> Subject: Re: Linux and SCSI (was: hd_reset fails in 0.11)
>
>
> Return-Path: johnsonm@stolaf.edu
> Status: RO
>
> --------------------------------------------------------------------
> I am just learning unix systems programming with linux, but I have
> a SCSI hard drive and a DTC adapter, and would be very willing to
> write the device dependent stuff for it when I get to that ability
> level if no one else has done it be then. I will be taking an OS
> class next semester (starting february) so I could even use this
> as a project. So although I can't do this right now, I would like
> it if you could put me on your list to get the information, which
> I can save and then hopefully work on when I am able.
>
> Thanks a lot!
>
> michaelkjohnson
>
> Date: Tue, 10 Dec 91 12:17:07 CST
> To: Linux-activists@joker.cs.hut.fi
> From: johnsonm@stolaf.edu (Michael K. Johnson)
> Subject: DTC SCSI controllers
>
>
> Return-Path: johnsonm@stolaf.edu
> Status: RO
>
> --------------------------------------------------------------------
>
> I have a DTC SCSI controller, and would be willing to (as I become a bit
> more proficient) write the low-level driver for it. However, there is
> a catch -- I will almost assuredly, due to my schedule, not be able to
> start till february or so. Sooooo, if anyone else wants to pick this
> up, feel free:-)
>
> If anyone needs to talk to them, I have voice and BBS numbers for their
> tech support.
>
> michaelkjohnson
> johnsonm@stolaf.edu
> I do not do .sig's
>
>
>
>
> Date: Tue, 10 Dec 91 13:04:50 PST
> To: Linux-activists@joker.cs.hut.fi, drew@hazelrah.cs.Colorado.EDU,
> kronvold@sumter.cso.uiuc.edu
> From: David Darknell <david@maxwell.ucsc.edu>
> Subject: Re: Linux and SCSI (was: hd_reset fails in 0.11)
>
>
> Return-Path: david@maxwell.UCSC.EDU
> Status: RO
>
> --------------------------------------------------------------------
> YES! I am trying to write a driver for a FastCache High performance
> SCSI controller (I used to have a ST-01/02) but I am in a catch 22:
> I cannot run Linux on the drive without a driver, but cannot write the
> driver without Linux. So here is my plan: Install MFM controller and
> 40Meg drive long enough to write the SCSI driver, then dump it. I
> would
> be happy to get anything you have that might make my job easier!
--------
You don't have to compile Linux under Linux.
Another possibility is cross compiling. If you have access to another
little endian machine <The DEC-MIPS architecture fits this bill>, LSB
first, cross compiling is as easy as doing a make gcc with target machine
set to some tm-i386 file.
Depending on how the host system is set up, you may be able to use the
native ld / ar - and even if not, it is no problem to compile the
gnu binutils and have gcc/gas use them.
Anyways, here's my hosts.h file, the generic interface to the lowlevel
host specific drivers. There isn't much too it - the point here was
to keep things SIMPLE, flexible, and 100% self configuring so we aren't
recompiling just to get SCSI support.
This is pretty firm - I have one idea I may / may not want to implement
that I'll talk about in the end.
-- cut here - hosts.h --
#ifndef __HOST_H__
#define __HOSTS_H__
/*
File hosts.h
SCSI host adapter include file.
*/
#define MAX_SCSI_HOSTS 1
/*
The Scsi_Host type has all that is needed to interface with a SCSI
host in a device independant matter.
*/
typedef struct
{
/*
The name pointer is a pointer to the name of the SCSI
device detected.
*/
char *name;
/*
The detect function shall return non zero on detection,
and initialize all data necessary for this particular
SCSI driver.
*/
int (* detect)(void);
/*
The info function will return whatever useful
information the developer sees fit.
*/
char * (* info)(void);
/*
The command function shall return the SCSI return
code in the low 8 bits, a driver error in the high 8
bits. Target is the target ID, IN normal numbers - not a
bit. The cmnd is the variable length command to
be sent,
buff a pointer to the buffer which will be read from /
written to, and bufflen the length of that buffer
*/
int (* command)(unsigned char target, const void *cmnd,
void *buff, int bufflen);
/*
present contains a flag as to weather we are present -
so we don't have to call detect multiple times.
*/
unsigned char present;
} Scsi_Host;
/*
The scsi_hosts array is the array containing the data for all
possible <supported> scsi hosts.
*/
extern Scsi_Host scsi_hosts[MAX_SCSI_HOSTS];
/*
scsi_init initializes the scsi hosts.
*/
void scsi_init(void);
#endif
-- end --
And, for our return codes, useful SCSI stuff, etc, we have
scsi.h
-- scsi.h cut here --
#ifndef __SCSI_H__
#define __SCSI_H__
/*
For documentation on the OPCODES, MESSAGES, and SENSE values,
please consult the SCSI standard.
*/
/*
SCSI opcodes
*/
#define TEST_UNIT_READY 0x00
#define REZERO_UNIT 0x01
#define REQUEST_SENSE 0x03
#define FORMAT_UNIT 0x04
#define REASSIGN_BLOCKS 0x07
#define READ_6 0x08
#define WRITE_6 0x0a
#define SEEK 0x0b
#define INQUIRY 0x12
#define MODE_SELECT 0x15
#define RESERVE 0x16
#define RELEASE 0x17
#define COPY 0x18
#define MODE_SENSE 0x1a
#define START_STOP 0x1b
#define RECIEVE_DAIGNOSTIC 0x1c
#define SEND_DIAGNOSTIC 0x1d
#define ALLOW_MEDIUM_REMOVAL 0x1e
#define READ_CAPACITY 0x25
#define READ_10 0x28
#define WRITE_10 0x2a
#define SEEK_10 0x2b
#define WRITE_VERIFY 0x2e
#define VERIFY 0x2f
#define SEARCH_HIGH 0x30
#define SEARCH_EQUAL 0x31
#define SEARCH_LOW 0x32
#define SET_LIMITS 0x33
#define COMPARE 0x39
#define COPY_VERIFY 0x3a
/*
MESSAGE CODES
*/
#define COMMAND_COMPLETE 0x00
#define EXTENDED_MESSAGE 0x01
#define SAVE_POINTERS 0x02
#define RESTORE_POINTERS 0x03
#define DISCONNECT 0x04
#define INITIATOR_ERROR 0x05
#define ABORT 0x06
#define MESAGE_REJECT 0x07
#define NOP 0x08
#define MSG_PARITY_ERROR 0x09
#define LINKED_CMD_COMPLETE 0x0a
#define LINKED_FLG_CMD_COMPLETE 0x0b
#define BUS_DEVICE_RESET 0x0c
#define IDENTIFY 0x80
/*
Our errors returned by OUR driver, NOT SCSI message. Orr'd with
SCSI message passed back to driver <IF any>.
*/
/* NO error */
#define DID_OK 0x0000
/* Couldn't connect before timeout period */
#define DID_NO_CONNECT 0x0100
/* BUS stayed busy through time out period */
#define DID_BUS_BUSY 0x0200
/* TIMED OUT for other reason */
#define DID_TIME_OUT 0x0300
/* ERROR from TARGET */
#define DID_TERROR 0x0400
/* TARGET was busy */
#define DID_TBUSY 0x0500
/* TARGET disconnected prematurely */
#define DID_TDISCONNECT 0x0600
/* TARGET was off line */
#define DID_TOFFLINE 0x0700
/* TARGET wants US to send IT a message */
#defibe DID_TREQ_MSG_OUT 0x0800
/* TARGET parity error */
#define DID_TPARITY 0x0900
/* TARGET requested reselect */
#define DID_TRESELECT 0x0A00
/* TARGET was not in the range 0-6 inlclusive */
#define DID_BAD_TARGET 0x0B00
/*
SENSE KEYS
*/
#define NO_SENSE 0x00
#define RECOVERED_ERROR 0x01
#define NOT_READY 0x02
#define MEDIUM_ERROR 0x03
#define HARDWARE_ERROR 0x04
#define ILLEGAL_REQUEST 0x05
#define UNIT_ATTENTION 0x06
#define DATA_PROTECT 0x07
#define BLANK_CHECK 0x08
#define COPY_ABORTED 0x0a
#define ABORTED_COMMAND 0x0b
#define VOLUME_OVERFLOW 0x0d
#define MISCOMPARE 0x0e
/*
DEVICE TYPES
*/
#define TYPE_DISK 0x00
#define TYPE_TAPE 0x01
#define TYPE_WORM 0x04 /* Treated as ROM by our system */
#define TYPE_ROM 0x05
#define TYPE_NO_LUN 0x7f
/*
Every SCSI command starts with a one byte OP-code.
The next byte's high three bits are the LUN of the
device. Any multi-byte quantities are stored high byte
first, and may have a 5 bit MSB in the same byte
as the LUN.
*/
#endif
-- end --
I'll divert work from the low level routines <real pain> to the high &
mid level routines to have something to pass around for when people start
getting other low level drivers done.
I *REALLY* like the above interface in terms of meeting the design
criteria of simplicity, independance of the host-specific code,
and the ability for the routines to configure automatically.
The finaly interface will be almost identical to what is there now.
However, it might also be nice to be able to queue commands for use
with interrupt driven SCSI hosts that can function without the
computer controlling everything-
We may want to add a que_command call that will add a command to an internal
queue in the host specific driver. This would be something like the
command function, only it would also take a pointer to a routine
that was called on completion, like
int (*queue_command)(unsigned char target, const void *cmd,
void *buff, int bufflen, void (*complete)(int host,
int serial_no, int cmd_return));
Where it returns the serial number of the queued command, and calls the
complete function on termination <this would be called from an interrupt
service routine> with the SCSI message / return code , host # <from array>
and serial number of the command that terminated.
Other solicitations for opinions
1. Other peoples opinions on when to remap
2. What we want to do about sector sizes that are not 512 bytes
3. Currently, I use only 10 byte read/writes in my disk / tape drivers.
The rationale behind this is that 10 byte commands fall in the
same compliance level as INQUIRY and READ CAPACITY commmands,
and presumably a drive would have all.
Is this a valid ssumption? Does anybody see a reason for
me to bloat the code and check for 10 byte commmand failure,
and implement the 6 byte read/write if so?
--[0183]--
[0184] daemon@ATHENA.MIT.EDU (John T Kohl) Linux_Activists 12/12/91 00:12 (10 lines)
Subject: GNU awk (binaries & sources)
Date: Wed, 11 Dec 91 21:07:17 PST
To: linux-activists@joker.cs.hut.fi
From: John T Kohl <jtkohl@cs.berkeley.edu>
Reply-To: jtkohl@cs.berkeley.edu
I've had Ted Ts'o put my port of GNU awk (2.11, I think it was...) onto
tsx-11.mit.edu, in ~ftp/pub/linux/binaries & ~ftp/pub/linux/ports (the
latter has diffs from the FSF distributed sources).
John
--[0184]--
[0185] daemon@ATHENA.MIT.EDU (Marc CORSINI) Linux_Activists 12/12/91 10:18 (8 lines)
Subject: find-1.2 (binaries only)
Date: Thu, 12 Dec 91 15:47:53 +0100
From: corsini@numero6.greco-prog.fr (Marc CORSINI)
To: linux-activists@joker.cs.hut.fi
The port of GNU find-1.2, is available on tsx-11.mit.edu in pub/linux/binaries
[mmc]
--[0185]--
[0186] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 12/12/91 11:49 (40 lines)
Subject: find-1.2
Date: Thu, 12 Dec 1991 18:16:00 +0200
From: Ari Lemmke <arl@sauna.cs.hut.fi>
To: linux-activists@joker.cs.hut.fi
In-Reply-To: Marc CORSINI's message of Thu, 12 Dec 91 15:47:53 +0100 <9112121447.AA03130@numero6.greco-prog.fr>
> The port of GNU find-1.2, is available on tsx-11.mit.edu in
> pub/linux/binaries
Also available on nic.funet.fi:
/pub/OS/Linux/bin:
-rw-r--r-- 1 arl 51202 Dec 8 15:47 as86.tar.Z
-rw-r--r-- 1 arl 146964 Sep 17 17:24 bash.Z
-rw-r--r-- 1 arl 76265 Nov 17 04:01 bison.tar.Z
-rw-r--r-- 1 arl 90721 Nov 17 20:53 diffbin.tar.Z
-rw-r--r-- 1 arl 106429 Dec 12 03:56 find-1.2.tar.Z
-rw-r--r-- 1 arl 76925 Nov 17 04:08 flex.tar.Z
-rw-r--r-- 1 arl 7722 Dec 12 03:56 gawk-diffs
-rw-r--r-- 1 arl 68625 Dec 12 03:57 gawk.Z
-rw-r--r-- 1 arl 666231 Oct 2 14:49 gccbin.tar.Z
-rw-r--r-- 1 arl 87613 Nov 17 20:53 kermit.Z
-rw-r--r-- 1 arl 42737 Nov 20 07:31 less.Z
-rw-r--r-- 1 arl 262475 Dec 6 05:38 rcs.tar.Z
-rw-r--r-- 1 arl 91743 Dec 8 19:24 uemacs.Z
-rw-r--r-- 1 arl 930 Sep 17 17:24 update.Z
-rw-r--r-- 1 arl 898837 Oct 6 14:57 utilbin.tar.Z
/pub/OS/Linux/xtra:
-rw-r--r-- 1 arl 375 Nov 20 07:30 README.pmake
-rw-r--r-- 1 arl 6380 Nov 20 07:30 pm_supp.tar.Z
-rw-r--r-- 1 arl 72229 Nov 20 07:30 pmake.Z
/pub/OS/Linux/tools:
-rw-r--r-- 1 arl 16270 Nov 18 20:32 fsck.c
arl
--[0186]--
[0187] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 12/12/91 13:50 (31 lines)
Subject: Looking for alpha testers for job control changes
Date: Thu, 12 Dec 91 13:30:42 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: linux-activists@joker.cs.hut.fi
Reply-To: tytso@athena.mit.edu
I'm looking for a few people who are willing to take a look at my
changes to add job control to Linux and test them out. The ideal alpha
tester is someone who is willing to try out these changes and see if 1)
they can find some way of using job control which breaks my
implementation, 2) if they conflict with changes they are planning to make
to the kernel (mostly changes in exit.c and signal.c, with additional
changes in tty_io.c, tty_ioctl.c, sys.c, and open.c), and/or 3) if they
reasonably correspond with other implementations of job control,
particularily BSD 4.3 and Sys V.
I make no guarantees about the correctness of these patches, and any
future patches which I send out will be relative to Linux 0.11, NOT
to these alpha patches. The main reason why I want people to try them
out is that I've implemented job control almost entirely from the POSIX
spec, and I would other people to check to see if my interpretation of
the POSIX spec is compatible with the rest of the world.
If you feel up to trying them out, please let me know. If you want to
look at the changes before deciding, they can be found in
TSX-11:~ftp/ALPHA/jobcontrol. One generic bug which will hit when you
try this is out is that apparently there is a bug with how gcc handles
signals. If you send gcc a SIGCONT (you don't even need to stop it
first), it will die with an IOT trap. I suspect gcc needs to be
recompiled with a recent libc.a to fix this problem.
- Ted
--[0187]--
[0188] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 12/12/91 14:06 (42 lines)
Subject: "weekly" bugreport etc
Date: Thu, 12 Dec 1991 20:52:46 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
Well, time for my weekly bug-report again. Nothing too bad this time.
1) linux/kernel/signal.c kills a process with the wrong error code when
it gets a signal that the process doesn't handle. The easiest way to
test this is by sending a SIGQUIT to some running program (with ^|) -
bash will report that the program died due to "Illegal Instruction"
This bug already got corrected in some version, but it wiggled its way
back :-(. The line is something like this (in do_signal()):
if (!sa_handler) {
if (nr == SIGCHLD)
return;
else
do_exit(1<<(nr-1));
}
when it should be
if (!sa_handler) {
if ...
...
else
do_exit(nr);
}
2) As has been shown, you can get spurious "out of memory" errors if the
passwd file has the incorrect format. This wasn't a error in the
kernel, but in the library - I'll correct it by using the GNU lib etc.
I'll also make full library source available (not before sunday: I've
got 1e3 things to do). In the meanwhile, this bug isn't easy to
trigger, and not fatal even then, so...
Linus
PS. I'm interested in hearing about everybody that has problems with
either the harddisk or the serial line. There was a report that serial
lines sent out 2 characters at a time - does anybody else see this?
--[0188]--
*** /afs/net/tools/src/play/play.c Tue Jul 23 13:15:03 1991
--- play.c Wed Dec 18 17:38:06 1991
***************
*** 30,35 ****
--- 30,37 ----
#define OPTION_TICKLE_SSAVE 2
int Special_X_Error_Handler();
+ int (*Default_X_Error_Handler)();
+
int bad_window_found; /* This is set if a bad window error */
/* is ignored */
***************
*** 137,143 ****
/*
* Redirect the error routine so bad windows don't kill us.
*/
! XSetErrorHandler(Special_X_Error_Handler);
while (1) {
int no_state;
--- 139,145 ----
/*
* Redirect the error routine so bad windows don't kill us.
*/
! Default_X_Error_Handler = XSetErrorHandler(Special_X_Error_Handler);
while (1) {
int no_state;
***************
*** 413,516 ****
bad_window_found++;
return 0;
}
! if (_XPrintDefaultError(dpy, event, stderr) == 0)
! return 0;
! exit(1);
! }
!
! /*
! * Stolen from X11R4's XlibInt.c
! */
! int _XPrintDefaultError (dpy, event, fp)
! Display *dpy;
! XErrorEvent *event;
! FILE *fp;
! {
! char buffer[BUFSIZ];
! char mesg[BUFSIZ];
! char number[32];
! char *mtype = "XlibMessage";
! register _XExtension *ext = (_XExtension *)NULL;
! XGetErrorText(dpy, event->error_code, buffer, BUFSIZ);
! XGetErrorDatabaseText(dpy, mtype, "XError", "X Error", mesg, BUFSIZ);
! (void) fprintf(fp, "%s: %s\n ", mesg, buffer);
! XGetErrorDatabaseText(dpy, mtype, "MajorCode", "Request Major code %d",
! mesg, BUFSIZ);
! (void) fprintf(fp, mesg, event->request_code);
! if (event->request_code < 128) {
! sprintf(number, "%d", event->request_code);
! XGetErrorDatabaseText(dpy, "XRequest", number, "", buffer, BUFSIZ);
! } else {
! for (ext = dpy->ext_procs;
! ext && (ext->codes.major_opcode != event->request_code);
! ext = ext->next)
! ;
! if (ext)
! strcpy(buffer, ext->name);
! else
! buffer[0] = '\0';
! }
! (void) fprintf(fp, " (%s)\n ", buffer);
! if (event->request_code >= 128) {
! XGetErrorDatabaseText(dpy, mtype, "MinorCode", "Request Minor code %d", mesg, BUFSIZ);
! (void) fprintf(fp, mesg, event->minor_code);
! if (ext) {
! sprintf(mesg, "%s.%d", ext->name, event->minor_code);
! XGetErrorDatabaseText(dpy, "XRequest", mesg, "", buffer, BUFSIZ);
! (void) fprintf(fp, " (%s)", buffer);
! }
! fputs("\n ", fp);
! }
! if (event->error_code >= 128) {
! /* kludge, try to find the extension that caused it */
! buffer[0] = '\0';
! for (ext = dpy->ext_procs; ext; ext = ext->next) {
! if (ext->error_string)
! (*ext->error_string)(dpy, event->error_code, &ext->codes,
! buffer, BUFSIZ);
! if (buffer[0])
! break;
! }
! if (buffer[0])
! sprintf(buffer, "%s.%d", ext->name,
! event->error_code - ext->codes.first_error);
! else
! strcpy(buffer, "Value");
! XGetErrorDatabaseText(dpy, mtype, buffer, "Value 0x%x", mesg, BUFSIZ);
! if (*mesg) {
! (void) fprintf(fp, mesg, event->resourceid);
! fputs("\n ", fp);
! }
! } else if ((event->error_code == BadWindow) ||
! (event->error_code == BadPixmap) ||
! (event->error_code == BadCursor) ||
! (event->error_code == BadFont) ||
! (event->error_code == BadDrawable) ||
! (event->error_code == BadColor) ||
! (event->error_code == BadGC) ||
! (event->error_code == BadIDChoice) ||
! (event->error_code == BadValue) ||
! (event->error_code == BadAtom)) {
! if (event->error_code == BadValue)
! XGetErrorDatabaseText(dpy, mtype, "Value", "Value 0x%x",
! mesg, BUFSIZ);
! else if (event->error_code == BadAtom)
! XGetErrorDatabaseText(dpy, mtype, "AtomID", "AtomID 0x%x",
! mesg, BUFSIZ);
! else
! XGetErrorDatabaseText(dpy, mtype, "ResourceID", "ResourceID 0x%x",
! mesg, BUFSIZ);
! (void) fprintf(fp, mesg, event->resourceid);
! fputs("\n ", fp);
! }
! XGetErrorDatabaseText(dpy, mtype, "ErrorSerial", "Error Serial #%d",
! mesg, BUFSIZ);
! (void) fprintf(fp, mesg, event->serial);
! fputs("\n ", fp);
! XGetErrorDatabaseText(dpy, mtype, "CurrentSerial", "Current Serial #%d",
! mesg, BUFSIZ);
! (void) fprintf(fp, mesg, dpy->request);
! fputs("\n", fp);
! if (event->error_code == BadImplementation) return 0;
! return 1;
}
--- 415,420 ----
bad_window_found++;
return 0;
}
! else
! return(Default_X_Error_Handler(dpy, event));
}
[0189] daemon@ATHENA.MIT.EDU (Ken Corey, CSCI Major...) Linux_Activists 12/12/91 19:35 (35 lines)
Subject: Future Domain, SCSI, partition types, etc.
Date: Thu, 12 Dec 1991 18:27 CDT
From: "Ken Corey, CSCI Major..." <KENC@vaxb.acs.unt.edu>
To: Linux-activists@joker.cs.hut.fi
X-Vms-To: IN%"Linux-activists@joker.cs.hut.fi"
Has anyone had any luck installing Linux on a drive that uses a Future Domain
chipset?
I've got a 386/25 4MB ram, DOS 5.0, Maxtor 7120sr SCSI Hard drive, Future
Domain chipset SCSI controller.
I've gotten the boot and root disks to work, but when I run the fdisk, I get 5
errors. (I've got my drive partitioned into 4 32MB partitions)
I read that if FDISK cannot recognize my partitions, then I an "f**ked" (from
the documentation).
Basically, I'm asking if anyone has gotten such a setup to work, and if so,
what's the method. If not, is anyone working on a future domain compatible
version?
I understand that several people across the net are working on SCSI
implementations...do you think that they will work with a future domain
controller?
I'd dearly love to use Linux, (as it's a 32-bit OS from the start, rather than
a 16-bit emulating a 32-bit).
If anyone has run into this problem, either reply to the net, or to my 'home'
address.
Many thanks. Talk to y'all later.
, o <--- The too-many-hours-on-a-monitor blank stare
_ | Ken Corey aka kenc@vaxb.acs.unt.edu aka kenc@sol.acs.unt.edu
--[0189]--
[0190] daemon@ATHENA.MIT.EDU (John T Kohl) Linux_Activists 12/13/91 01:08 (17 lines)
Subject: uniq binary & source; perl?
Date: Thu, 12 Dec 91 22:01:08 PST
To: linux-activists@joker.cs.hut.fi
From: John T Kohl <jtkohl@cs.berkeley.edu>
Reply-To: jtkohl@cs.berkeley.edu
I've had uniq.Z and uniq.src.tar.Z (from the bsd-net-2 release) put onto
tsx-11.mit.edu:pub/linux/{binaries,sources} for your enjoyment.
Has anybody had luck in getting perl 4 working? I've tried various
things, most of which cause test/base/lex.t to fail.
-m80387 present/absent
-O/-g
-Dfloat=double
no combination of the above makes a working perl. ??
John
--[0190]--
[0191] daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 12/13/91 04:40 (125 lines)
Subject: New posting of INFO SHEET
Date: Fri, 13 Dec 91 10:28:00 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
To: linux-activists@joker.cs.hut.fi
Hi Linuxers!
This is the corrected (Thanks for proofreading, tytso!) Linux
information sheet. If there are no further remarks to it, I will
post it to the following groups:
comp.binaries.ibm.pc.d
comp.os.coherent
comp.os.mach
comp.os.minix
comp.os.misc
comp.os.sysv.i386
comp.unix.programmers
Thanks, and see you!
Robert Blum
LINUX INFORMATION SHEET
1. WHAT IS LINUX 0.11
LINUX 0.11 is a freely distributable UNIX clone. It is almost fully
System V and POSIX 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 System V and POSIX (well, almost..)
- 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 4 national keyboards: finnish/us/german/french
- 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 completely 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.3 Reno/BSD 4.4 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:/pub/linux
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
- POSIX job control (this is already alpha and will probably be
out with Version 0.12)
If you want to join the developers, join the mailing list
--[0191]--
[0192] daemon@ATHENA.MIT.EDU (Drew Eckhardt) Linux_Activists 12/14/91 15:07 (533 lines)
Subject: Dain bramaged boot sector and compatable clones
Date: Sat, 14 Dec 1991 12:57:14 -0700
From: Drew Eckhardt <drew@hazelrah.cs.Colorado.EDU>
To: linux-activists@joker.cs.hut.fi, torvalds@cc.helsinki.fi
Cc: drew@hazelrah.cs.Colorado.EDU
A few days ago, I mailed Linus about the bootsector not working on some
machines. Specifically, some 386/486 boxes with AMI BIOS, not exactly
rice paddy specials. The MS-DOS
boot sector handles reads in a similar way, and it worked fine.
The problem is some clones use the same messed up floppy disk parameter
tables that the original PC used. You have to change the byte
that reflects maximum sector number to something reasonable (18 works
good - #sectors on a 1.44, doesn't matter if its too high) to keep from
getting a sector not found error. MS-DOS does this, Linus's boot sector
didn't, and was dying.
I have changed the bootsector code to update this byte in the
diskette parameter table.
Also, I've made the following other changes :
- Added error dump code. The error code in ax is printed (in hex)
after any failed disk read. This contains an error code
in the high byte, sectors successfully read in the
low byte.
In the code that reads the kernel, an error also dumps the
registers that were used in the int 13h call - ie
an error code of 0407 - sector not found, read 7 sectors
might read
0407
AX:020F
BX:1400
CX:0001
DX:0100
- Added a Loading... where one dot is printed per track read.
Lets you know something is happening, and fills up some of
that vast empty space in the bootsector...
- Added conditional define to hard code #of sectors, and allow booting
from a 360K disk in a 1.2M drive, etc. The BIOS routines
return MAXIMUM number of sectors, not the actual count
of the media in the drive.
- Optimized. There are now two bytes free in the boot sector. Without
any optimization, there were negative bytes free.
The source code is currently only available in MASM format. This made
debugging under a monitor program loaded in high memory under DOS
quite simple.... some one (Eventually, I will. Before this is
finalized though, I'd like to look at booting of any drive) can
translate it back if they want it sooner...
The binary included below is set up with root=boot drive, autodetect floppy.
I had been testing it with HARD defined as 9, and root set as a 1.44 in
drive 1, a fairly normal configuraiton, so this explains any failures..
And, if you do get an error code, PLEASE report it.
-- bootsect.uue --
:
section 1 of uuencode 2.8 of file bootsect.bin by R.E.M.
begin 644 bootsect.bin
MN,`'CMBX`)".P+D``2OV*__\\Z7J&0``D/J,R([0O/3^,\".P`:[>``FQ3>,W
MR([`O_3^5[D&`/.E7R;&1002!R:)/XS()HE'`H[8CL#[,N0RTLT3,]*Y`@"[F
M``*X!`+-$W,24.A)`8OLZ%P!6#+2,\#-$^O?,M*X``C-$S+M+HD.[P&X`)"."
MP+0#,O_-$+D)`+L'`+WQ`;@!$\T0N``0CL#H/@#H/P&X#0Z[!P#-$+@*#LT0&
M+J'\`0O`=1<NBQ[O`;@(`H/[#W0*N!P"@_L2=`+K_BZC_`'J```@D`4`````,
M`(S`J?\/=?XSVXS`/0!`<@'#+J'O`2XK!MP`B\C!X0D#RW,)=`<SP"O#P>@)Q
MZ#D`B\@N`P;<`"X[!N\!=16X`0`N*P;>`'4%+O\&X``NH]X`,\`NH]P`P>$)'
M`]ESK(S`!0`0CL`SV^NA8%!3N"X.NP<`S1!;6"Z+%N``+HL.W`!!BNHNBQ;>*
M`(KR,M*!X@`!M`)245-0S1-R!8/$"&'#4.@,`#+D,M+-$X/$"F'KNKD%`(OLP
MZ!@`@/D%<R&*P;A%#BK!S1"X6`[-$+@Z#LT0N`T.NP<`S1"X"@[-$,.#Q0+HR
M!`!9XL[#N00`BU8`P<($M`Z*PB0/!#`\.78"!`>T#LT0XNG#4KKR`S+`[EK#Q
1```-"DQO861I;F<``!T"5:H"H
``
end
size 512
-- end --
You could write it with DEBUG like
DEBUG bootsect.bin
a 0300
mov ax, 0201
mov bx, 0100
mov cx, 0001
mov dx, 0000
int 13h
int 20h
^C
g=0300
q
And the source
-- bootsect.asm --
; Created by 2masm perl script by Drew Eckhardt
; bootsect.asm modified by Drew Eckhardt -
; support added for TRUELY compatable <And messed up>
; BIOS's as well as error dump code.
.286
;
; SYS_SIZE is the number of clicks (16 bytes) to be loaded.
; 3000h is 30000h bytes equ 196kB, more than enough for current
; versions of linux
;
SYSSIZE equ 3000h
;
; bootsect.s (C) 1991 Linus Torvalds
;
; bootsect.s is loaded at 7c00h by the bios-startup routines, and moves
; iself out of the way to address 90000h, and jumps there.
;
; It then loads 'setup' directly after itself (90200h), and the system
; at 10000h, using BIOS interrupts.
;
; NOTE; currently system is at most 8*65536 bytes long. This should be no
; problem, even in the future. I want to keep it simple. This 512 kB
; kernel size should be enough, especially as this doesn't contain the
; buffer cache as in minix
;
; The loader has been made as simple as possible, and continuos
; read errors will result in a unbreakable loop. Reboot by hand. It
; loads pretty fast by getting whole sectors at a time whenever possible.
_TEXT segment para public 'CODE'
assume cs:_TEXT
SETUPLEN equ 4 ; nr of setup-sectors
BOOTSEG equ 07c0h ; original address of boot-sector
INITSEG equ 9000h ; we move boot here - out of the way
SETUPSEG equ 9020h ; setup starts here
SYSSEG equ 1000h ; system loaded at 10000h (65536).
ENDSEG equ SYSSEG + SYSSIZE ; where to stop loading
; ROOT_DEV: 000h - same type of floppy as boot.
; 301h - first partition on first drive etc
ROOTDEV equ 21dh
start:
mov ax,offset BOOTSEG
mov ds,ax
mov ax,offset INITSEG
mov es,ax
mov cx,256
sub si,si
sub di,di
cld
rep movsw
db 0eah ; jmp INITSEG:go
dw offset go
dw INITSEG
go: cli
mov ax, cs
mov ss, ax
mov sp, 0ff00h - 12 ; arbitrary num - 512 - disk param size
xor ax, ax ; get diskette parameters from int 1eh
mov es, ax ; vector (or 78h)
push es ; save int table segment
mov bx, 78h
lds si, es:[bx] ; ds:si points to them
mov ax,cs ;
mov es,ax ; copy disk parameters
mov di, 0ff00h - 12 ; es:di points to dsk_tab
push di ; save dsk_tab offset
mov cx, 6h ; 12 bytes
rep movsw
pop di ; restore dsk_tab
mov byte ptr es:[di + 4], 18; set sectors
pop es ; reset 1eh vector
mov word ptr es:[bx], di ; offset
mov ax, cs
mov word ptr es:[bx+2], ax ; seg
mov ds,ax ; load seg regs
mov es,ax
sti
xor ah, ah ; reset FDC with no parameters.
xor dl, dl
int 13h
; load the setup-sectors directly after the bootblock.
; Note that 'es' is already set up.
load_setup:
xor dx,dx ; drive 0, head 0
mov cx,0002h ; sector 2, track 0
mov bx,0200h ; address equ 512, in INITSEG
mov ax,0200h+SETUPLEN ; service 2, nr of sectors
int 13h ; read it
jnc ok_load_setup ; ok - continue
push ax ; dump error code
call print_nl
mov bp, sp
call print_hex
pop ax
xor dl, dl
xor ax, ax ; reset the diskette
int 13h
jmp load_setup
ok_load_setup:
; Get disk drive parameters, specifically nr of sectors/track
IFDEF HARD
mov cx, HARD
ELSE
xor dl,dl
mov ax,0800h ; AH equ 8 is get drive parameters
int 13h
xor ch,ch
ENDIF
mov cs:sectors,cx
mov ax,offset INITSEG
mov es,ax
; Print some inane message
mov ah,03h ; read cursor pos
xor bh,bh
int 10h
mov cx,9
mov bx,0007h ; page 0, attribute 7 (normal)
mov bp,offset msg1
mov ax,1301h ; write string, move cursor
int 10h
; ok, we've written the message, now
; we want to load the system (at 10000h)
mov ax,offset SYSSEG
mov es,ax ; segment of 010000h
call read_it
call kill_motor
mov ax, 0e0dh
mov bx, 7
int 10h
mov ax, 0e0ah
int 10h
; After that we check which root-device to use. If the device is
; defined (; equ 0), nothing is done and the given device is used.
; Otherwise, either /dev/PS0 (2,28) or /dev/at0 (2,8), depending
; on the number of sectors that the BIOS reports currently.
mov ax,cs:root_dev
or ax, ax ; cmp ax, 0
jne root_defined
mov bx,cs:sectors
mov ax,0208h ; /dev/ps0 - 1.2Mb
cmp bx,15
je root_defined
mov ax,021ch ; /dev/PS0 - 1.44Mb
cmp bx,18
je root_defined
undef_root:
jmp undef_root
root_defined:
mov cs:root_dev,ax
; after that (everyting loaded), we jump to
; the setup-routine loaded directly after
; the bootblock:
db 0eah ; jmp SETUPSEG:0
dw 0
dw SETUPSEG
; This routine loads the system at address 10000h, making sure
; no 64kB boundaries are crossed. We try to load it as fast as
; possible, loading whole tracks whenever we can.
;
; in: es - starting address segment (normally 1000h)
;
sread dw 1+SETUPLEN ; sectors read of current track
head dw 0 ; current head
track dw 0 ; current track
read_it:
mov ax,es
test ax,0fffh
die: jne die ; es must be at 64kB boundary
xor bx,bx ; bx is starting address within segment
rp_read:
mov ax,es
cmp ax,ENDSEG ; have we loaded all yet?
jb ok1_read
ret
ok1_read:
mov ax,cs:sectors ; this is the number of sectors we will
sub ax,sread ; attempt to read
; mov ax, 1
mov cx,ax ;
shl cx,9 ; * 512 bytes
add cx,bx ; if overflow, then next segment
jnc ok2_read
je ok2_read
xor ax,ax
sub ax,bx
shr ax,9
ok2_read:
call read_track ; is called with num sectors wanted in al
mov cx,ax
add ax,sread ; add actual number read to ax
cmp ax,cs:sectors
jne ok3_read
mov ax,1
sub ax,head
jne ok4_read
inc track
ok4_read:
mov head,ax
xor ax,ax
ok3_read:
mov sread,ax
shl cx,9
add bx,cx
jnc rp_read
mov ax,es
add ax,1000h
mov es,ax
xor bx,bx
jmp rp_read
read_track:
pusha
push ax ; print loading...
push bx
mov ax, (0e00h + '.')
mov bx, 7
int 10h
pop bx
pop ax
mov dx,track
mov cx,sread
inc cx
mov ch,dl
mov dx,head
mov dh,dl
xor dl,dl
and dx,0100h
mov ah,2
push dx ; save for possible register dump
push cx
push bx
push ax
int 13h
jc bad_rt
add sp, 8
popa
ret
bad_rt: push ax ; save AX return -
; AH = errore code
; AL = successfully read.
call print_all
xor ah, ah ; reset FDC
xor dl, dl
int 13h
add sp, 10
popa
jmp read_track
;
; print_all is for debugging purposes.
; It will print out all of the registers. The assumtion is that this
; is called from the track read routine, with a stack frame like
; dx
; cx
; bx
; ax
; error
; ret <- sp
print_all:
mov cx, 5 ; error code +
mov bp, sp
print_loop:
call print_nl
cmp cl, 5
jae no_reg
mov al, cl
mov ax, 0e05h + 'A' - 1
sub al, cl
int 10h
mov ax, 0e00h + 'X'
int 10h
mov ax, 0e00h + ':'
int 10h
print_nl:
mov ax, 0e0dh
mov bx, 7
int 10h
mov ax, 0e0ah
int 10h
ret
no_reg:
add bp, 2
call print_hex
pop cx
loop print_loop
ret
;
; print_hex is for debugging purposes. It will print out the hex
; number pointed to by ss:[bp].
;
print_hex:
mov cx, 4 ; 4 hex digits
mov dx, word ptr [bp] ; load word into dx
print_digit:
rol dx, 4 ; will rotate, 4 bits will be highest
mov ah, 0eh ; nibble, lowest nibble, etc.
mov al, dl
and al, 0fh
add al, '0'
cmp al, '9'
jbe good_digit
add al, 'A' - '0' - 0ah
good_digit:
mov ah, 0eh
int 10h
loop print_digit
ret
; * This procedure turns off the floppy drive motor, so
; * that we enter the kernel in a known state, and
; * don't have to worry about it later.
;
kill_motor:
push dx
mov dx,3f2h
xor al,al
out dx, al
pop dx
ret
sectors dw 0
msg1 db 13,10
db "Loading"
org 508
root_dev dw ROOTDEV
boot_flag:
dw 0AA55h
_TEXT ends
end
-- ends --
Build with
MASM, link, then exe2bin
HARD may be defined with
MASM bootsect.asm /DHARD=9;
To get it to use the hardcoded sector count.
TASM should also work, a86 will work if you change to its conditional
define syntax.
There are a few glitches there <It works, but comments may have been garbled,
etc> from my 2masm perl script - but it will assemble without warnings.
Also note that the code will require more squeezing if more changes are made :
there are 2 bytes free.
--[0192]--
[0193] daemon@ATHENA.MIT.EDU (Drew Eckhardt) Linux_Activists 12/14/91 15:20 (15 lines)
Subject: DEBUG stuff from my post
Date: Sat, 14 Dec 1991 13:13:39 -0700
From: Drew Eckhardt <drew@hazelrah.cs.Colorado.EDU>
To: linux-activists@joker.cs.hut.fi
In hind sight, the
mov ax, 0201
should be a
mov ax, 0301 ....
Write, not read. 7:30 am finals sort of have a way of doing things to a guy's
mind....
--[0193]--
[0194] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/15/91 13:56 (7 lines)
Subject: Is anyone working on pseudo ttys
Date: Sun, 15 Dec 91 10:49:00 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
Please let me know if someone is working on ptys.
pmacdona@sol.uvic.ca
Peter.MacDonald@bcsystems.gov.bc.ca
--[0194]--
[0195] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 12/16/91 12:25 (56 lines)
Subject: Complete library source available
Date: Mon, 16 Dec 1991 19:07:47 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
Well, I just put out the full source to my library for ftp. Parts of it
have been available before, but the package "library.tar.Z" should
include everything.
The library is meant to be installed in /usr/src/lib, but use your own
directory structure if you find this impractical. It is further
subdivided into more or less (mostly less) logical subdirectories:
partly similar to minix, partly depending on where I got the source, and
partly just on how it happened to be written :-)
There are 4 major sources of library functions and they all have
slightly different copyrights, but all should be freely distributable
within the linux copyright rules:
- Earl Chews estdio (estdio)
- The GNU library (malloc, pwd, grp and misc)
- me (dirent, unistd, misc)
- some PD minix libs (at least termcap)
I haven't really ported as much of the GNU libc.a as I would want, as
it's not very interesting. Things that should still be done:
- time functions. I haven't got the slightest idea about how
they work, so the result is accordingly. GNU seems the best
bet to find correct functions.
- unistd will be slightly changed with the advent of job
control. I am assuming that tytso will send diffs, and that
some programs will have to be recompiled to correctly work
with the new signals (among them gcc).
- locale etc. Again gnu seems the best bet. Happily nobody uses
locale anyway, so this isn't that much of a problem :-)
Additionally I have also sent out a new include.tar.Z - it's mostly
bug-corrections and a few new files that the GNU library functions want.
Recompiling the library is easy: go to /usr/src/lib, and then do a make
in all the subdirectories. The result should be a Libc.a file in
/usr/src/lib. Run ranlib on it (ie "ranlib Libc.a"), and you have a new
library. Just move it to the library directory (usually /usr/local/lib,
but it depends on how you have installed gcc). It might be a good idea
to save the old libc.a, in case something has gone wrong.
Note that you probably won't really need to compile your own library:
this one is a bit better than the original, but the changes shouldn't
show up in normal circumstances. Recompilation of the library is
usually only needed if you change the kernel heavily (new system calls
etc) or if you find better routines for something. This release is more
for the "completeness" of source availability for linux.
Linus
--[0195]--
[0196] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/16/91 23:02 (14 lines)
Subject: man pages and ptys
Date: Mon, 16 Dec 91 19:19:01 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
I have put together some man pages for some the GNU utilities together
with a PD version of man. Ted was kind enough to put it on tsx-11.mit.edu
for any interested party.
Also, Matthias Lautner has provided me with the source to his minix
ptys and select patch to Minix. It still has a bug with losing
messages from tty to FS. But I am looking at how hard it is
to port his design to Linux.
--[0196]--
[0197] daemon@ATHENA.MIT.EDU (Pietro Caselli) Linux_Activists 12/17/91 00:12 (19 lines)
Subject: Linux 0.11 is hard to die !
To: linux-activists@joker.cs.hut.fi
Date: 17 Dec 91 00:14:28 MET (Tue)
From: zaphod@petruz.sublink.org (Pietro Caselli)
Yeaaaah ... just like a ninja Linux 0.11 refuses to die. When I logout
from bash I login into bash again, and again, and ... quosque tandem Linuxe !
I like tenacity, but ... there is a limit !!! :-)
Hmmm ... I passed from gremlins to ninja, with Linux 0.12 I hope not to
deal with Godzilla :-)
Happy hacking to everyone ... and Merry Christmas.
Pietro Caselli |
internet: zaphod@petruz.sublink.org | IF YOU MEET THE BUDDHA
: pietro@deis33.cineca.it | ON THE ROAD,KILL HIM.
Mail : V. Pietro Mattiolo, 4 |
40139 Bologna ITALY |
--[0197]--
[0198] daemon@ATHENA.MIT.EDU ("Mark W. Eichin") Linux_Activists 12/17/91 05:23 (26 lines)
Subject: getting started...
Date: Tue, 17 Dec 91 05:15:12 -0500
From: eichin@ATHENA.MIT.EDU ("Mark W. Eichin")
To: linux-activists@joker.cs.hut.fi
I'm going to buy myself a 386 system some time after 1992 Jan 1 mostly
for Linux hacking (if I can avoid DOS I will -- but I need a machine
big enough to do GCC hacking on :-) I'll probably work on getting a
socket library working, and probably stuff NOS or some of the other
Amateur TCP/IP code behind it.
I'm looking to spend between US$2500 and US$3000 on a system.
Since this is a good deal of money, I'd like to hear any stories
you've got (both good and bad) about buying such systems, and about
getting Linux up on them. (Note that I'm soliciting *information*
here, not actual systems, though of course you're free to send me
email about anything you'd like, within Acceptable Use constraints of
the networks you traverse...)
Since I'm in the US, stories from over here are probably more
useful -- but if you're outside the US and bought something from one
of the big mail-order places, I'd appreciate any comments.
Please be careful to email directly to me <eichin@athena.mit.edu>
rather than to the list at large; I'll summarize what info I get (so if
you've got a story you'd rather not have repeated, please note it in the
message.)
_Mark_ <eichin@athena.mit.edu>
MIT Student Information Processing Board
Cygnus Support <eichin@cygnus.com>
--[0198]--
[0199] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 12/17/91 10:02 (27 lines)
Subject: Linux 0.11 is hard to die !
Date: Tue, 17 Dec 1991 16:46:33 +0200
From: Ari Lemmke <arl@zen.cs.hut.fi>
To: linux-activists@joker.cs.hut.fi
In-Reply-To: Pietro Caselli's message of 17 Dec 91 00:14:28 MET (Tue) <9112170014.AA00046@petruz.sublink.ORG>
>Yeaaaah ... just like a ninja Linux 0.11 refuses to die. When I logout
>from bash I login into bash again, and again, and ... quosque tandem Linuxe !
That's because kernel init has while loop like (hey, that's
pseudo-code, not the real one!):
while (1)
{
exec("/bin/sh");
sync();
}
So actually that was, what I did for 0.10 '/etc/init',
because atleast my shell is (maybe with 0.11 was) constantly
crashing.
So it is safe to power off after first logout.
arl
--[0199]--
[0200] daemon@ATHENA.MIT.EDU (Michael K. Johnson) Linux_Activists 12/17/91 14:34 (20 lines)
Subject: compress/out of memory
Date: Tue, 17 Dec 91 13:13:35 CST
From: johnsonm@stolaf.edu (Michael K. Johnson)
To: Linux-activists@joker.cs.hut.fi
This may have already been discussed, but I can't find it:
uncompress gives me "out of memory" "segmentation violation"
errors on some files, for instance uniq.Z as found on tsx-11.
I am running .11 on a 386sx-16. Anyone have any ideas? I had
no problems with compress under .10...
Also, just a note to whoever wants to know -- I made a new filesystem
with the mkfs distributed with .11, and used the -c flag, which was
supposeed to eliminate all my hd i/o errors when I was through. Now,
it may well be my hard drive, but I don't know. If anyone working on
filesystem stuff wants any details, I will be glad to provide them.
michaelkjohnson
johnsonm@stolaf.edu
I don't do .sig's
--[0200]--
[0201] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 12/17/91 14:47 (21 lines)
Subject: Re: compress/out of memory
Date: Tue, 17 Dec 91 14:30:10 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: johnsonm@stolaf.edu
Cc: Linux-activists@joker.cs.hut.fi
In-Reply-To: Michael K. Johnson's message of Tue, 17 Dec 91 13:13:35 CST,
Reply-To: tytso@athena.mit.edu
Date: Tue, 17 Dec 91 13:13:35 CST
From: johnsonm@stolaf.edu (Michael K. Johnson)
This may have already been discussed, but I can't find it:
uncompress gives me "out of memory" "segmentation violation"
errors on some files, for instance uniq.Z as found on tsx-11.
One of the things that will cause that is a corrupted .Z file. Are you
sure you FTP'ed uniq.Z with the binary mode set? It is possible that
uniq.Z on tsx-11 is corrupted, but I would rather doubt it, since I've
been able to uncompress it using a unix zcat.
- Ted
--[0201]--
[0202] daemon@ATHENA.MIT.EDU (Michael K. Johnson) Linux_Activists 12/17/91 16:22 (20 lines)
Subject: kermit
Date: Tue, 17 Dec 91 15:13:15 CST
From: johnsonm@stolaf.edu (Michael K. Johnson)
To: Linux-activists@joker.cs.hut.fi
Regarding my mailing a few hours ago, apparently my "uniq.Z" was corrupted.
However, this is worth noting, because it is not corrupted on tsx-11, where
I got it, and it is not corrupted on the unix system I ftp'd to either. I
transfered it to my system using kermit, and it was apparently then that it
was corrupted. I used
kermit -i -s uniq.Z
to send the file, and thought that image or ascii is determined by the
sender. I *was* using the new kermit. Is this a misunderstanding, a bug,
or a feature?
thanks much!
michaelkjohnson
johnsonm@stolaf.edu
I don't do .sig's
--[0202]--
[0203] daemon@ATHENA.MIT.EDU (Ken Raeburn) Linux_Activists 12/17/91 17:04 (26 lines)
Subject: C++?
Date: Tue, 17 Dec 91 16:50:49 -0500
From: raeburn@ATHENA.MIT.EDU (Ken Raeburn)
To: linux-activists@joker.cs.hut.fi
Has anyone tried bringing up g++ on linux?
On a related note, are any other gcc2 developers or testers reading this
list, or should I start hacking on it when I get a machine (probably in
January or February)?
Ken
P.S. If I understand correctly, c386 works on the small-memory machines
but doesn't handle ANSI C. Has anyone tried using Ron Guilmette's
"unprotoize" program? It includes a set of patches to gcc 1.something
(which have also been incorporated in gcc2) and a program that can
rewrite source files to add or remove prototypes and change function
definition forms. A converted version of 0.11 might let the c386 users
get enough work done to get the VM system up to handling gcc. It'd just
require someone who can use gcc on their machine to do the conversion.
(I *don't* advocate making converted versions of every release, or even
necessarily more than one. If being able to use c386 is the goal, rather
than getting linux up so the VM system can be worked on, then c386 should
just be fixed.) I'd volunteer to do it myself, if I had a machine to
work on, and if I knew someone would do the VM work...unfortunately,
neither is the case right now.
--[0203]--
[0204] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 12/17/91 18:00 (81 lines)
Subject: one bug, possible other problems
Date: Wed, 18 Dec 1991 00:48:24 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
> This may have already been discussed, but I can't find it:
> uncompress gives me "out of memory" "segmentation violation"
> errors on some files, for instance uniq.Z as found on tsx-11.
> I am running .11 on a 386sx-16. Anyone have any ideas? I had
> no problems with compress under .10...
As already has been noted, this can be (and in this case seems to have
been) due to corrupted Z-files. However, if anybody else sees the "out
of memory" error, even though there should be enough memory there is
always another possibility: if your "/etc/passwd" (or possibly
"/etc/group") files are not in the right format, it triggers a bug in
the old library which will use up all your memory. Great fun. Check
that all entries in your "/etc/passwd" have the right nr of colons (even
if there is no shell name, the last colon is supposed to exist). This
same bug shows up in all programs that use the "getpwent()" library call
with the old lib: ls -l, chown et.al. Easy to correct the /etc/passwd
file, and then this should go away.
Then on to a /real/ bug, which needs kernel recompilation, but isn't
very noticeable: the execve system call incorrectly clears all signal
handler addresses. It should leave the "SIG_IGN" addresses as is: nohup
etc programs depend on that. The fix is easy:
linux/fs/exec.c: do_execve(), right after the comment "point of no
return" there is the for-loop that clears the sa.sa_handler entries.
Change it from (something like)
for (i=0 ; i<32 ; i++)
current->sa[i].sa_handler = NULL;
to
for (i=0 ; i<32 ; i++)
if (current->sa[i].sa_handler != SIG_IGN)
current->sa[i].sa_handler = NULL;
Additionally you need to include signal.h at the top of the file. (Note
that this "patch" may not be exact - this is from memory).
> [ kermit send/receive binary ]
I use kermit to receive files, and even for terminal emulation, now that
linux correctly handles the ISIG flag. I always "set filetype binary" in
both ends, but don't know if it's really necessary (but it's easy to
make a ".kermrc" file in your home-directory to do these kinds of setups
automatically). I'd suggest you do likewise: then I know it works.
> Has anyone tried bringing up g++ on linux? [ gcc2 and c386 ]
I've been thinking about this (hi tytso :), and I will port gcc-2.0 (or
1.99) as soon as it is available. That should contain g++. Probably in
january-february says tytso. During the holiday, I will implement VM
(real paging to disk): I've been going over the algorithms in my head,
and I think it can be done relatively easily, so hopefully we can scrap
the c386 compiler (sorry, blum). The paging algorithm will at least in
the beginning be extremely simple: no LRU or similar, just a simple "get
next page in the VM-space". Note that VM isn't (even with a good
algorithm) a "holy grail" - I don't want to be on the same machine when
someone uses gcc in 2M real mem. Slooooowww. 4M will definitely be
recommended even with VM, and 1M machines won't work with linux even
with the VM (you /do/ need some real memory too :-).
I have this small question when it comes to the swap-space setup - two
different possibilities:
1 - a swap-device of it's own (ie own partition)
2 - file-system swap-area.
There are a number of pros and cons: (1) is faster, easier to implement,
and will need no changes when the filesystem eventually is changed to
accept >64M etc. (2) has the good side that it means that it would be
easy to change the size of the swap-area, but if something bad happens,
it could probably trash the filesystem easily. I'll probably implement
only (1) for now, but I'd like to hear what you say (and ignore it :-).
Linus
--[0204]-- (nref = [0207])
[0205] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/17/91 18:16 (18 lines)
Subject: compress and VM
Date: Tue, 17 Dec 91 15:08:24 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
I have seen a small problem with compress. uncompress *.Z fails to
uncompress some of the files specified. Failure prints some
message like EINVAL or something (-; sorry, its been weeks)
But using uncompress afterwards on the individual file works.
I wouldn't mention it, but for the compress problems posted.
Certainly the easiest swap to disk to implement is the best,
but using fdisk can be traumatic. Perhaps the way MS Windows
(shudder) does it would be acceptable. ie. use the file system
but set the swap size at the boot up time (a number in the kernel
ala root device?) and allocate a single large file.
Thus changing the swap size
requires only a reboot - after modifying the kernel.
--[0205]--
[0206] daemon@ATHENA.MIT.EDU (Jim Winstead Jr.) Linux_Activists 12/17/91 18:52 (31 lines)
Subject: Re: compress, and other stuff
Date: Tue, 17 Dec 91 15:40:55 PST
From: "Jim Winstead Jr." <jwinstea@jarthur.Claremont.edu>
To: linux-activists@joker.cs.hut.fi
Peter MacDonald says:
> I have seen a small problem with compress. uncompress *.Z fails to
> uncompress some of the files specified. Failure prints some
> message like EINVAL or something (-; sorry, its been weeks)
I've seen this problem, too, but it's a little more consistent than
one might normally think: compress fails (EINVAL) on every other if
passed a wildcarded argument. That is "uncompress *Z" will give a
EINVAL error on every other file it tries.
> But using uncompress afterwards on the individual file works.
It also works to repeat the command, answering yes to the questions
it asks, as it will on try and decompress the files that have been
decompressed. It still misses every other file of the repeated
command, though.
Perhaps it's a bug in the port of compress?
Also, I've ported unzip, zoo, (un)yabba and a few other things to
Linux. Any interest in putting these on tsx-11? They were all pretty
painless, but it might save some people the trouble of compiling them.
---
Jim Winstead Jr. (CSci '95) 3 "We are only immortal
Harvey Mudd College 3 for a limited time..
jwinstea@jarthur.Claremont.EDU 3 when we are young."
Disclaimer: Mine, not theirs! 3 -Rush, Dreamline
--[0206]--
[0207] daemon@ATHENA.MIT.EDU ("Mark W. Eichin") Linux_Activists 12/17/91 19:02 (29 lines)
Subject: Re: one bug, possible other problems (Swapping)
Date: Tue, 17 Dec 91 18:52:53 -0500
From: eichin@ATHENA.MIT.EDU ("Mark W. Eichin")
To: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
Cc: Linux-activists@joker.cs.hut.fi
In-Reply-To: [204]
>> I have this small question when it comes to the swap-space setup - two
>> different possibilities:
>> 1 - a swap-device of it's own (ie own partition)
>> 2 - file-system swap-area.
I'd argue for both, but do swap partition first because it'll
be done sooner that way. Under SunOS, you get your swap partition
which is big enough for normal work (and I think is faster but I could
be wrong) and then when you need more space for a special project, you
just create a big file and swap from that until next reboot.
One of the biggest losses with the NeXT machine (at least up
to OS 2.1) is that it uses in-file-system swapping. When disk space is
tight, the OS heads for Mars... this is exacerbated by the fact that
NeXT OS can grab more space dynamically, but never gives it back, and
*can't control how much it will try to grab*. A good example of how a
well intentioned design can turn around and bite you.
_Mark_ <eichin@athena.mit.edu>
MIT Student Information Processing Board
(Another interesting feature of SunOS is the "tmpfs" temporary file
system... it's like a ram disk, but it's in VM so it can get swapped
out. It makes a rather fast /tmp since it doesn't have any of the
guaranteed write-to-disk semantics of UFS, and in fact any actual disk
writes get done "later". The problem is when you've got something both
memory *and* disk intensive using it.)
--[0207]-- (pref = [0204])
[0208] daemon@ATHENA.MIT.EDU (Tony Travis) Linux_Activists 12/18/91 06:23 (34 lines)
Subject: Re: kermit
Date: Wed, 18 Dec 1991 10:35:00 +0000
From: Tony Travis <ajt@rowett.scot-agric-res-inst.ac.uk>
To: Linux-activists@joker.cs.hut.fi
Michael,
In my experience, both ends need to be set to 'i'mage (binary) mode with
the single exception of MSDOS kermit which treats all files the same.
Tony
-------------------------------------------------------------------------------
Dr. A.J.Travis <ajt@uk.ac.sari.rri> | Rowett Research Institute,
| Greenburn Road, Bucksburn, Aberdeen,
| AB2 9SB. UK. tel 0224-712751
>
> Regarding my mailing a few hours ago, apparently my "uniq.Z" was corrupted.
> However, this is worth noting, because it is not corrupted on tsx-11, where
> I got it, and it is not corrupted on the unix system I ftp'd to either. I
> transfered it to my system using kermit, and it was apparently then that it
> was corrupted. I used
> kermit -i -s uniq.Z
> to send the file, and thought that image or ascii is determined by the
> sender. I *was* using the new kermit. Is this a misunderstanding, a bug,
> or a feature?
>
> thanks much!
>
> michaelkjohnson
> johnsonm@stolaf.edu
> I don't do .sig's
>
--[0208]--
[0209] daemon@ATHENA.MIT.EDU (John T Kohl) Linux_Activists 12/18/91 18:43 (13 lines)
Subject: GNU find 2.1 on tsx-11
Date: Wed, 18 Dec 91 15:25:23 PST
To: linux-activists@joker.cs.hut.fi
From: John T Kohl <jtkohl@cs.berkeley.edu>
Reply-To: jtkohl@cs.berkeley.edu
You'll find GNU find 2.1 and associated tools, a README file, and diffs
from the GNU distribution in
tsx-11.mit.edu:/pub/linux/binaries/find-2.1/
[yes, I know that gnu find 1.2 is also there, but I figured why not use
the latest & greatest]
John
--[0209]--
[0210] 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
--[0210]--
[0211] daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 12/19/91 01:42 (143 lines)
Subject: And another version of the INFO sheet
Date: Thu, 19 Dec 91 07:34:10 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
To: linux-activists@joker.cs.hut.fi
Hi Linuxers!
Here is the re-edited version of the Linux info sheet.
Thank you for all your replies, especially to the guy who sent me the
diff. (Sorry, forgot your name)
The list of groups it will be posted to has changed to:
comp.binaries.ibm.pc.d
comp.os.coherent
comp.os.mach
comp.os.minix
comp.os.misc
comp.unix.sysv386
comp.unix.programmers
gnu.misc.discuss
If you haven't any further additions or corrections, I'll send out the
INFO sheet thursday, the 26th of december.
Have a merry Xmas!
Robert Blum
LINUX INFORMATION SHEET
(last updated 19 Dec 1991)
1. WHAT IS LINUX 0.11
LINUX 0.11 is a freely distributable UNIX clone. It implements a
subset of System V and POSIX functionality. 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. LINUX runs only on 386/486 AT-bus machines; porting
to non-Intel architectures is likely to be difficult, as the kernel
makes extensive use of 386 memory management and task primitives.
Version 0.11 is still a beta release, but it already provides much
of the functionality of a System V.3 kernel. For example, various
users have been able to port programs such as bison/flex without having
to modify code at all. Another indication of its maturity is that
it is now possible to do LINUX kernel development using LINUX itself
and freely-available programming tools.
2. LINUX features
- System call compatible with a subset of System V and POSIX
- 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 'Bourne 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 4 national keyboards: Finnish/US/German/French
- 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
(Almost the entire suite of GNU programs has been ported to Linux.)
- 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 with an AT-bus. (EISA will probably work, also,
but you will need an AT-bus hard disk controller.)
Both DX and SX processors will work.
- A hard disk implementing the standard AT hard disk interface--
for example, an IDE drive. SCSI drives are not supported yet.
- A high-density disk drive--either 5.25" (1.2MB) or 3.5" (1.44MB).
- At least 2 megabytes of RAM. (LINUX will boot in 2 Mb. To use
gcc at least 4 MB are required.)
- Any video card of the following: Hercules,CGA,EGA,VGA
In addition, LINUX supports
- Up to two serial lines
- A real time clock
4. PARTIAL LIST OF UTILITIES INCLUDED IN OR AVAILABLE FOR LINUX 0.11
- The MTOOLS package (reading/writing to DOS filesystems)
- The complete GNU filetools (ls, cat, cp, mv, ...)
- The GNU C compiler with GNU assembler, linker, ar, ...
- bison
- flex
- rcs
- pmake (BSD 4.3 Reno/BSD 4.4 make)
- kermit
- Micro emacs
- less
- mkfs
- fsck
- mount/umount
5. LINUX BINARIES
The LINUX binaries and sources are available at three
anonymous FTP sites. These are:
nic.funet.fi:/pub/OS/Linux
tsx-11.mit.edu:/pub/linux
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. Unlike MINIX, however, it is 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@niksula.hut.fi". To subscribe to
this list, mail to "linux-activists-requests@niksula.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. For the current status of LINUX, do "finger
torvalds@kruuna.helsinki.fi".
8. FUTURE PLANS
Work is underway on LINUX version 1.0, which will close some of the
gaps in the present implementation. Various people are currently working
on:
- Math support/fp emulation in the kernel
- Page swapping (since paging is already implemented)
- A virtual filesystem layer
- STREAMS
- POSIX job control (This is already alpha and will probably be
out with Version 0.12.)
- init/getty/login
- symbolic links
- Interprocess communication
- IEEE POSIX P1003.1 / P1003.2 compatibility
- SCSI support
If you want to help, join the mailing list.
--[0211]--
[0212] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 12/19/91 13:25 (41 lines)
Subject: VM, version 0.12
Date: Thu, 19 Dec 1991 19:51:45 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
/\
/ \
/ \
/ \ Seasons Greetings
/ \
||
Ho, ho ho, and a happy X-mas/chanukah/whatever to you all. I'm probably
mailing to a lot of non-listening mail-boxes, but who cares.
This is a warning for all you out there making changes to the linux
kernel: if you want your changes to be in 0.12, I want them by early
January (5th-10th ta the latest). As it looks now, 0.12 will be out
about 15th of January, and will contain at least these new things:
- POSIX job control (by tytso, alpha-release available already)
- VM (by me - I'll probably make alphas available after X-mas)
- Various small corrections (by me, tytso, jtkohl, drew etc)
- Anything else people send me.
I got VM working today (not bad in two days if I may say so :-), but
haven't really tested extensively. I tried some compilations (I remade
uemacs) on a 2M machine (or rather a 8M machine, of which Linux sees
only 2M), and it worked (gcc, make, bash etc in memory ar the same
time), albeit slowly. There are probably still problems, but it seems
VM will definitely be in 0.12.
Note that the earlier I get your fixes, the easier it will be to
implement them all: if I get many fixes 0.12 may be a little late, so
the January 15th date isn't really fixed. Also, after releasing 0.12
I'll probably have to study a bit harder than I did this autumn (which
isn't hard per se :-), which may mean that the new releases won't be
coming once per month or so any more. Hopefully 0.12 will be good
enough to use.
Linus "Ugly X-mas trees are my speciality" Torvalds
--[0212]--
[0213] daemon@ATHENA.MIT.EDU (Pietro Caselli) Linux_Activists 12/20/91 00:07 (23 lines)
Subject: Re: Re: compress, and other stuff
To: linux-activists@joker.cs.hut.fi
Date: 18 Dec 91 19:22:50 MET (Wed)
From: zaphod@petruz.sublink.org (Pietro Caselli)
> From: "Jim Winstead Jr."
>
> Also, I've ported unzip, zoo, (un)yabba and a few other things to
> Linux. Any interest in putting these on tsx-11? They were all pretty
> painless, but it might save some people the trouble of compiling them.
> ---
I ported zip 1.0 if there is interest I'll post it on funet.
( Zip1.0 works great, I had just to discard encryption/decription from
it. )
Ciao.
Pietro Caselli |
internet: zaphod@petruz.sublink.org | IF YOU MEET THE BUDDHA
: pietro@deis33.cineca.it | ON THE ROAD,KILL HIM.
Mail : V. Pietro Mattiolo, 4 |
40139 Bologna ITALY |
--[0213]--
[0214] daemon@ATHENA.MIT.EDU (Pietro Caselli) Linux_Activists 12/20/91 00:09 (49 lines)
Subject: Re: one bug, possible other problems
To: linux-activists@joker.cs.hut.fi
Date: 18 Dec 91 19:18:14 MET (Wed)
From: zaphod@petruz.sublink.org (Pietro Caselli)
> > Has anyone tried bringing up g++ on linux? [ gcc2 and c386 ]
Hmmmm, I'd like to test myself on gcc2 but ... where can I find it ?
( I asked archie but got no response :-( )
> I have this small question when it comes to the swap-space setup - two
> different possibilities:
>
> 1 - a swap-device of it's own (ie own partition)
>
> 2 - file-system swap-area.
>
> There are a number of pros and cons: (1) is faster, easier to implement,
> and will need no changes when the filesystem eventually is changed to
> accept >64M etc. (2) has the good side that it means that it would be
> easy to change the size of the swap-area, but if something bad happens,
> it could probably trash the filesystem easily. I'll probably implement
> only (1) for now, but I'd like to hear what you say (and ignore it :-).
Ok, start discarding my hints :-).
Solution 1) is the best, is faster, cleaner and easyer to mantain. But with
the fu###ing limitation of four partition for HD it gives to me a lot of
trouble. ( And think to many other ) Now I've a Dos partition, 2 Minix
partitions ( root and /usr ) and a Linux partition. I can't add any more :-(
When Linux gets older, i.e when it'll have virtual consoles, pttys etc
I'll be pleased to kill minix but ... I know It needs time.
So, why not add both 1) and 2) ?
( Christmass holidays are long, I'll go skiing but I think you'll have
plainty of time to make both :-) )
> Linus
Ciao.
Pietro
Pietro Caselli |
internet: zaphod@petruz.sublink.org | IF YOU MEET THE BUDDHA
: pietro@deis33.cineca.it | ON THE ROAD,KILL HIM.
Mail : V. Pietro Mattiolo, 4 |
40139 Bologna ITALY |
--[0214]--
[0215] daemon@ATHENA.MIT.EDU (Hakkarainen Kimmo) Linux_Activists 12/20/91 06:12 (20 lines)
Subject: less version 177
From: Hakkarainen Kimmo <h108373@cc.tut.fi>
To: linux-activists@joker.cs.hut.fi (Linux activists)
Date: Fri, 20 Dec 91 12:59:21 EET
Hello,
I found sources for less 177 in garbo.uwasa.fi. I compiled it and
noticed it being better than the version we already have (0.97).
I will put both sources and binaries in nic.funet.fi. I hope
those will show up in couple of days.
BTW less 177 supports editor-escape (or what should it be called)
and I changed the default editor to be emacs not "vi". If you
have any questions, please feel fre to ask me.
PS. Merry christmas to everyone.
--
Kimmo Hakkarainen (h108373@cc.tut.fi)
Fire, walk with me.
--[0215]--
[0216] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 12/20/91 10:39 (22 lines)
Subject: less version 177
Date: Fri, 20 Dec 1991 17:29:19 +0200
From: Ari Lemmke <arl@zen.cs.hut.fi>
To: linux-activists@joker.cs.hut.fi
In-Reply-To: Hakkarainen Kimmo's message of Fri, 20 Dec 91 12:59:21 EET <9112201059.AA09690@cc.tut.fi>
Kimmo Hakkarainen writes:
>I found sources for less 177 in garbo.uwasa.fi. I compiled it and
>noticed it being better than the version we already have (0.97).
>I will put both sources and binaries in nic.funet.fi. I hope
>those will show up in couple of days.
Available in nic.funet.fi:/pub/OS/Linux/bin
less-177.bin.tar.Z
less-177.src.tar.Z
I really like version numbers within names ...
arl
PS. merry Xmas ...
--[0216]--
[0217] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 12/20/91 11:14 (26 lines)
Subject: Re: one bug, possible other problems
Date: Fri, 20 Dec 91 11:03:59 -0500
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: linux-activists@joker.cs.hut.fi
In-Reply-To: Pietro Caselli's message of 18 Dec 91 19:18:14 MET (Wed),
Reply-To: tytso@athena.mit.edu
X-Mailer: W-MAIL 3.64/MINIX (11/13/90)
Date: 18 Dec 91 19:18:14 MET (Wed)
From: zaphod@petruz.sublink.org (Pietro Caselli)
Solution 1) is the best, is faster, cleaner and easyer to mantain. But with
the fu###ing limitation of four partition for HD it gives to me a lot of
trouble. ( And think to many other ) Now I've a Dos partition, 2 Minix
partitions ( root and /usr ) and a Linux partition. I can't add any more :-(
When Linux gets older, i.e when it'll have virtual consoles, pttys etc
I'll be pleased to kill minix but ... I know It needs time.
One solution to this which I've been kicking about, but haven't had time
to implement, is run-time configurable partitions. So you could set up
a 96 meg partition for Linux (at least as far as the MS-LOSS
partitioning scheme is concerned) and have /dev/hd3 refer to it. Then
in /etc/rc, you call a program which configures /dev/hd16 to be the last
32 megs of /dev/hd3, using ioctl's. Turn on swapping on /dev/hd16, and
you're all set.
- Ted
--[0217]--
[0218] daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 12/20/91 14:05 (17 lines)
Subject: gcc barfs at string.h
Date: Fri, 20 Dec 91 19:56:31 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
To: linux-activists@joker.cs.hut.fi
Hi Linuxers!
While I was alpha-testing VM, the following occured:
I compiled the kernel, and the first file to include string.h wouldn't compile
at the line
extern int __res __asm("ax");
(just quoted from mind, may not be exact, can be found first with strcmp)
this gives a "parse error before )", and later on, an
undefined __res
Any clues what this could be? Is it me or is it a broken gcc or is it VM?
Thanks for your help, and have a merry christmas
Robert "blow it all" Blum
--[0218]--
[0219] daemon@ATHENA.MIT.EDU (Bruce Evans) Linux_Activists 12/20/91 22:17 (17 lines)
Subject: Re: less version 177
Date: Sat, 21 Dec 91 03:24:10 +1100
From: Bruce Evans <bde@runx.oz.au>
To: linux-activists@joker.cs.hut.fi
>I found sources for less 177 in garbo.uwasa.fi. I compiled it and
>noticed it being better than the version we already have (0.97).
I think version 0.97 is much better than 177 :-), mainly because my
version of it has hacks to read compressed files. I seem to remember
that the author of less strongly objected to such impurities, but
when your disk has a lot of compressed files it's nice to be able to
say "less *" and not get garbage or useless warnings about binary
files. I looked at putting decompression in version 177 but the
changes in buffering stdin made things too difficult considering
that 0.97 already works.
Bruce
--[0219]--
[0220] daemon@ATHENA.MIT.EDU (Jim Winstead Jr.) Linux_Activists 12/20/91 23:01 (31 lines)
Subject: Re: less v1.77
Date: Fri, 20 Dec 91 19:50:59 PST
From: "Jim Winstead Jr." <jwinstea@jarthur.Claremont.edu>
To: linux-activists@joker.cs.hut.fi
You can set up a small shell script to view compressed files via less, as
well. I have one called zless that is simply 'zcat $* | less', and it works
wonders.
Does the less v1.77 available include regular-expression searching? When
I tried compiling less v1.77, I found that I had to replace the included
regex.[ch] with ones from another GNU utility.
Speaking of GNU utilities, someone mentioned making find 2.1 available,
because it was the "latest and greatest". I looked on prep.ai.mit.edu,
the official distribution point of GNU stuff, and it has find-3.2.tar.Z.
Is there any interest in getting this ported to Linux?
Has anyone had any luck porting gawk more successfully? The current port
fails to pass the test programs included with the current GNU distribution,
and when I've tried to build that version (3.?), it fails on eval.c due to
error 32 or something nice and cryptic like that. I would assume it's trying
to compile floating-point stuff, and since I lack a math coprocessor....
My main interest in getting a (better-)working gawk is to use awf as a
replacement for nroff, at least until some maniac ports gtroff (which
requires porting g++ first :)
---
Jim Winstead Jr. (CSci '95) 3 "We are only immortal
Harvey Mudd College 3 for a limited time..
jwinstea@jarthur.Claremont.EDU 3 when we are young."
Disclaimer: Mine, not theirs! 3 -Rush, Dreamline
--[0220]--
[0221] daemon@ATHENA.MIT.EDU (John T Kohl) Linux_Activists 12/21/91 00:03 (61 lines)
Subject: Re: Serial Communications...
Date: Fri, 20 Dec 91 20:56:14 PST
To: mpeters@polyslo.csc.calpoly.edu (Marc Peters)
Cc: linux-activists@joker.cs.hut.fi
In-Reply-To: [180]
From: John T Kohl <jtkohl@cs.berkeley.edu>
Reply-To: jtkohl@cs.berkeley.edu
re: weirdness with 2-char things for serial lines.
I just saw the same thing for the first time. It appears to be a
problem with the both sending and receiving data, as I saw weirdness
with output from the far end of the call as well as weirdness with stuff
I typed.
To get the serial line in this pickle, I started up a tcsh shell on that
line while I had a terminal connected, and then I turned up the baudrate
to 9600. I then put my modem back on, ran kermit (which reset the baud
rate to 2400), and saw the problem. I then rebooted, and it cleared.
This is reproducible.
Linus (or anybody who knows details on the serial lines), is this enough
info to debug the problem?
John
P.S. If you have a terminal and want to spawn a shell on it, here's a
program to do that. Just running the shell with redirected input/output
doesn't work right, as the controlling terminal doesn't get set right.
#include <stdio.h>
#include <sys/file.h>
#include <errno.h>
extern char *sys_errlist[];
main(int argc, char *argv[])
{
if (argc != 3) {
fprintf(stderr, "usage: doshell <ttyname> <shellname> &\n");
exit(1);
}
/* close down fd's */
close(0);
close(1);
close(2);
/* detach from parent process's group */
setsid();
/* open new tty */
if (open(argv[1], O_RDWR, 0) == -1)
exit(2);
dup(0);
dup(0);
execlp(argv[2], "-", 0);
/* should appear on new tty...: */
fprintf(stderr, "can't exec shell: %s\n", sys_errlist[errno]);
exit(3);
}
--[0221]-- (pref = [0180])
[0222] daemon@ATHENA.MIT.EDU (Bruce Evans) Linux_Activists 12/21/91 10:14 (32 lines)
Subject: Re: less v1.77
Date: Sat, 21 Dec 91 15:25:34 +1100
From: Bruce Evans <bde@runx.oz.au>
To: linux-activists@joker.cs.hut.fi
Jim Winstead Jr. writes:
>You can set up a small shell script to view compressed files via less, as
>well. I have one called zless that is simply 'zcat $* | less', and it works
This doesn't work so well for browsing through a lot of files. Working
through the files in linear order is not so good either, but my system
is fast enough to skip through files (even compressed) with the N and P
keys - in less 0.97. Another thing I didn't like about 177 was the change
on these keys to be like more (:n and something or other).
>Speaking of GNU utilities, someone mentioned making find 2.1 available,
>because it was the "latest and greatest". I looked on prep.ai.mit.edu,
>the official distribution point of GNU stuff, and it has find-3.2.tar.Z.
Perhaps someone got the version numbers confused. 3.2 has been out for a
couple of months, and 3.1 was around for a long time before that. I have
3.2 on Minix.
BTW, bash-1.10 broke updatedb in find, because
x=y export x
fails to set x. updatedb has a statement like this to set the PATH. Isn't
this supposed to work? It worked for bash-1.08 and works for ksh on ISC
Unix. It doesn't work for bash-1.10 on Minix or ISC Unix.
Bruce
--[0222]--
[0223] daemon@ATHENA.MIT.EDU (Drew Eckhardt) Linux_Activists 12/21/91 14:13 (472 lines)
Subject: Boot sector
Date: Sat, 21 Dec 1991 12:05:12 -0700
From: Drew Eckhardt <drew@ophelia.cs.Colorado.EDU>
To: drew@ophelia.cs.Colorado.EDU, linux-activists@joker.cs.hut.fi,
Well, I was sitting around, running end-of-semester level 0 dumps on
several gigs of disk space, and started looking at converting my
MASM bootsector code back to the Unix assembler format....
To refresh everyone's memory :
The original Linux boot sector had problems on some clones. Basically,
what happens is the default floppy diskette parameter table specifies
a low number of sectors. A multi-sector read involving a higher sector results
in a sector not found error, and the boot sector goes into an infinite loop...
I sent out a boot sector that corrected this problem. For me, it
worked. I never got any complaints, so either it worked for other
people, no one tried it, or it got lost.
However, some how after I got the code working 100%, I dammaged
the error dump routine. No more errors, error dump nolonger called....
never saw the problem.
The following source code fixes the bunged error dump. With an
added push, it should be within 1 byte of overflowing..... almost time
for more pruning.
Unfortunately, my SCSI host / floppy controller fried itself. Although
Linux is on its own MFM drive - I can't boot the floppy , and can't run the
DOS stuff (including assembler) - meaning this is totally untested. If
some one wants to do the honors....
--bootsect.asm--
; Created by 2masm perl script by Drew Eckhardt
; bootsect.asm modified by Drew Eckhardt -
; support added for TRUELY compatable <And messed up>
; BIOS's as well as error dump code.
.286
;
; SYS_SIZE is the number of clicks (16 bytes) to be loaded.
; 3000h is 30000h bytes equ 196kB, more than enough for current
; versions of linux
;
SYSSIZE equ 3000h
;
; bootsect.s (C) 1991 Linus Torvalds
;
; bootsect.s is loaded at 7c00h by the bios-startup routines, and moves
; iself out of the way to address 90000h, and jumps there.
;
; It then loads 'setup' directly after itself (90200h), and the system
; at 10000h, using BIOS interrupts.
;
; NOTE; currently system is at most 8*65536 bytes long. This should be no
; problem, even in the future. I want to keep it simple. This 512 kB
; kernel size should be enough, especially as this doesn't contain the
; buffer cache as in minix
;
; The loader has been made as simple as possible, and continuos
; read errors will result in a unbreakable loop. Reboot by hand. It
; loads pretty fast by getting whole sectors at a time whenever possible.
_TEXT segment para public 'CODE'
assume cs:_TEXT
SETUPLEN equ 4 ; nr of setup-sectors
BOOTSEG equ 07c0h ; original address of boot-sector
INITSEG equ 9000h ; we move boot here - out of the way
SETUPSEG equ 9020h ; setup starts here
SYSSEG equ 1000h ; system loaded at 10000h (65536).
ENDSEG equ SYSSEG + SYSSIZE ; where to stop loading
; ROOT_DEV: 000h - same type of floppy as boot.
; 301h - first partition on first drive etc
ROOTDEV equ 21dh
start:
mov ax,offset BOOTSEG
mov ds,ax
mov ax,offset INITSEG
mov es,ax
mov cx,256
sub si,si
sub di,di
cld
rep movsw
db 0eah ; jmp INITSEG:go
dw offset go
dw INITSEG
go: cli ; don't want interrupts when stack moves
mov ax, cs
mov ss, ax
mov sp, 0ff00h - 12 ; arbitrary num - 512 - disk param size
;
; Many BIOS's default disk parameter tables will not recognize multi-
; sector reads beyond the maximum sector specified in the default
; diskette parameter talbes - this means 7 sectors :(
;
; Since single sector reads are ... slow, we must patch this. We
; simply set the max sector count to the most we will expect - 18.
; High doesn't hurt. Low does.
;
xor ax, ax ; get diskette parameters from int 1eh
mov es, ax ; vector (or 78h)
push es ; save int table segment
mov bx, 78h
lds si, es:[bx] ; ds:si points to actual parameter table
mov ax,cs ;
mov es,ax ; copy disk parameters to RAM
mov di, 0ff00h - 12 ; es:di points to dsk_tab
push di ; save dsk_tab offset
mov cx, 6h ; 12 bytes
rep movsw
pop di ; restore dsk_tab offset
mov byte ptr es:[di + 4], 18; set sectors
pop es ; set 1eh vector to disk_tab
mov word ptr es:[bx], di ; offset
mov ax, cs
mov word ptr es:[bx+2], ax ; seg
mov ds,ax ; load seg regs
mov es,ax
sti ; stack & disk parms are good.
xor ah, ah ; reset FDC with new parameters.
xor dl, dl
int 13h
; load the setup-sectors directly after the bootblock.
; Note that 'es' is already set up.
load_setup:
xor dx,dx ; drive 0, head 0
mov cx,0002h ; sector 2, track 0
mov bx,0200h ; address equ 512, in INITSEG
mov ax,0200h+SETUPLEN ; service 2, nr of sectors
int 13h ; read it
jnc ok_load_setup ; ok - continue
push ax ; dump error code
call print_nl
mov bp, sp
call print_hex
pop ax
xor dl, dl
xor ax, ax ; reset the diskette
int 13h
jmp load_setup
ok_load_setup:
; Get disk drive parameters, specifically nr of sectors/track
IFDEF HARD
mov cx, HARD
ELSE
xor dl,dl
mov ax,0800h ; AH equ 8 is get drive parameters
int 13h
xor ch,ch
ENDIF
mov cs:sectors,cx
mov ax,offset INITSEG
mov es,ax
; Print some inane message
mov ah,03h ; read cursor pos
xor bh,bh
int 10h
mov cx,9
mov bx,0007h ; page 0, attribute 7 (normal)
mov bp,offset msg1
mov ax,1301h ; write string, move cursor
int 10h
; ok, we've written the message, now
; we want to load the system (at 10000h)
mov ax,offset SYSSEG
mov es,ax ; segment of 010000h
call read_it
call kill_motor
mov ax, 0e0dh
mov bx, 7
int 10h
mov ax, 0e0ah
int 10h
; After that we check which root-device to use. If the device is
; defined (; equ 0), nothing is done and the given device is used.
; Otherwise, either /dev/PS0 (2,28) or /dev/at0 (2,8), depending
; on the number of sectors that the BIOS reports currently.
mov ax,cs:root_dev
or ax, ax ; cmp ax, 0
jne root_defined
mov bx,cs:sectors
mov ax,0208h ; /dev/ps0 - 1.2Mb
cmp bx,15
je root_defined
mov ax,021ch ; /dev/PS0 - 1.44Mb
cmp bx,18
je root_defined
undef_root:
jmp undef_root
root_defined:
mov cs:root_dev,ax
; after that (everyting loaded), we jump to
; the setup-routine loaded directly after
; the bootblock:
db 0eah ; jmp SETUPSEG:0
dw 0
dw SETUPSEG
; This routine loads the system at address 10000h, making sure
; no 64kB boundaries are crossed. We try to load it as fast as
; possible, loading whole tracks whenever we can.
;
; in: es - starting address segment (normally 1000h)
;
sread dw 1+SETUPLEN ; sectors read of current track
head dw 0 ; current head
track dw 0 ; current track
read_it:
mov ax,es
test ax,0fffh
die: jne die ; es must be at 64kB boundary
xor bx,bx ; bx is starting address within segment
rp_read:
mov ax,es
cmp ax,ENDSEG ; have we loaded all yet?
jb ok1_read
ret
ok1_read:
mov ax,cs:sectors ; this is the number of sectors we will
sub ax,sread ; attempt to read
; mov ax, 1 ; single sector read - testing only
mov cx,ax ;
shl cx,9 ; * 512 bytes
add cx,bx ; if overflow, then next segment
jnc ok2_read
je ok2_read
xor ax,ax
sub ax,bx
shr ax,9
ok2_read:
call read_track ; is called with num sectors wanted in al
mov cx,ax
add ax,sread ; add actual number read to ax
cmp ax,cs:sectors
jne ok3_read
mov ax,1
sub ax,head
jne ok4_read
inc track
ok4_read:
mov head,ax
xor ax,ax
ok3_read:
mov sread,ax
shl cx,9
add bx,cx
jnc rp_read
mov ax,es
add ax,1000h
mov es,ax
xor bx,bx
jmp rp_read
read_track:
pusha
push ax ; print loading...
push bx
mov ax, (0e00h + '.')
mov bx, 7
int 10h
pop bx
pop ax
mov dx,track
mov cx,sread
inc cx
mov ch,dl
mov dx,head
mov dh,dl
xor dl,dl
and dx,0100h
mov ah,2
push dx ; save for possible register dump
push cx
push bx
push ax
int 13h
jc bad_rt
add sp, 8
popa
ret
bad_rt: push ax ; save AX return -
; AH = errore code
; AL = successfully read.
call print_all
xor ah, ah ; reset FDC
xor dl, dl
int 13h
add sp, 10
popa
jmp read_track
;
; print_all is for debugging purposes.
; It will print out all of the registers. The assumtion is that this
; is called from the track read routine, with a stack frame like
; dx
; cx
; bx
; ax
; error
; ret <- sp
print_all:
mov cx, 5 ; error code + 4 registers
mov bp, sp ; first one starts sp + 1 word
print_loop:
push cx ; preserve count left
call print_nl ; new line for readability
cmp cl, 5 ; first one printed is error code - no reg
jae no_reg
mov al, cl ; convert number to first register letter.
mov ax, 0e05h + 'A' - 1
sub al, cl
int 10h
mov ax, 0e00h + 'X'
int 10h
mov ax, 0e00h + ':'
int 10h
no_reg: ; print the next register value
add bp, 2
call print_hex
pop cx
loop print_loop
ret
print_nl:
mov ax, 0e0dh ; CR
mov bx, 7
int 10h
mov ax, 0e0ah ; LF
int 10h
ret
;
; print_hex is for debugging purposes. It will print out the hex
; number pointed to by ss:[bp].
;
print_hex:
mov cx, 4 ; 4 hex digits
mov dx, word ptr [bp] ; load word into dx
print_digit:
rol dx, 4 ; will rotate, 4 bits will be highest
mov ah, 0eh ; nibble, lowest nibble, etc.
mov al, dl ; convert to digit representation
and al, 0fh ; mask low nibble
add al, '0' ; convert to 0 based digit
cmp al, '9' ; if overflow, then go to letter
jbe good_digit
add al, 'A' - '0' - 0ah
good_digit:
mov ah, 0eh ; print it
int 10h
loop print_digit
ret
; * This procedure turns off the floppy drive motor, so
; * that we enter the kernel in a known state, and
; * don't have to worry about it later.
;
kill_motor:
push dx
mov dx,3f2h
xor al,al
out dx, al
pop dx
ret
sectors dw 0
msg1 db 13,10
db "Loading"
org 508
root_dev dw ROOTDEV
boot_flag:
dw 0AA55h
_TEXT ends
end
-- ends --
Build with
MASM, link, then exe2bin
HARD may be defined with
MASM bootsect.asm /DHARD=9;
To get it to use the hardcoded sector count.
TASM should also work, a86 will work if you change to its conditional
define syntax.
--[0223]--
[0224] daemon@ATHENA.MIT.EDU (0114) Linux_Activists 12/21/91 21:06 (54 lines)
Subject: No subject found in mail header
Date: Sun, 22 Dec 91 03:02:42 +0100
From: 0114 <upsyf108@unibi.hrz.uni-bielefeld.de>
Apparently-To: linux-activists@joker.cs.hut.fi
Hi,
As a X-mas present, you get a termcap cdif to make uemacs recognize
these nice keypads like page-up, home and the like.
I added a new terminal type called memacs to the termcap entries.
To use it, enter TERM=memacs;export TERM
Wolfgang Thiel 12/21/91=linux0.11
upsyf173@comparex.hrz.uni-bielefeld.de
table
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 tcapdif
M*BHJ("]!+V5T8R]T97)M8V%P"5-U;B!$96,@(#@@,3,Z-3@Z,3D@,3DY,0HMz
M+2T@=&5R;6-A< E&<FD@1&5C(#(P(# V.C$P.C W(#$Y.3$**BHJ*BHJ*BHJy
M*BHJ*BHJ"BHJ*B U,BPU-" J*BHJ"BTM+2 U,BPX-2 M+2TM"B @"3II=",Xx
M.FMU/5Q%6T$Z:V0]7$5;0CIK<CU<15M#.FML/5Q%6T0Z:V(]7D@Z7 H@( DZw
M:&\]7$5;2#IK,3U<14]0.FLR/5Q%3U$Z:S,]7$5/4CIK-#U<14]3.G!T.G-Rv
M/5Q%33IV=",S.GAN.EP*(" ).G-C/5Q%-SIR8SU<13@Z8W,]7$5;)6DE9#LEu
M9'(Z"BL@"BL@(PHK(",@3F]W("T@;&EK92!C;VYS;VQE+"!B=70@=VET:"!Ft
M=6YC=&EO;B!K97ES"BL@(PHK(",@4W1A;F1A<F0@:V5Y(&-O9&4@9&5F:6YIs
M=&EO;G,Z"BL@(R!K=2QK9"QK;"QK<@ES96YT(&)Y('5P+2P@9&]W;BTL(&QEr
M9G0M+"!R:6=H="UA<G)O=PHK(",@:V()(" @('-E;G0@8GD@8F%C:W-P86-Eq
M"BL@(R!K,2XN:SDL:S @<V5N="!B>2!F=6YC=&EO;B!K97D@,2XN,3 **R Cp
M($LQ+BXU"2 @("!S96YT(&)Y(&ME>7!A9"!U<'!E<B!L969T+'5P<&5R(')Io
M9VAT+&-E;G1R92QL;W=E<B!L969T+&QO=V5R(')I9VAT"BL@(R!K82QK="QKn
M0B @<V5N="!B>2!C;&5A<BUA;&PM=&%B<RQC;&5A<BUT86(L8F%C:W1A8@HKm
M(",@:U0)(" @('-E;G0@8GD@<V5T+71A8BUS=&]P"BL@(R!K0RQK12QK4R @l
M<V5N="!B>2!C;&5A<BUS8W)E96XL8VQE87(M=&\M96]L+&-L96%R+71O+65Ok
M<PHK(",@:T0L:TP)(" @('-E;G0@8GD@9&5L971E+6-H87)A8W1E<BQD96QEj
M=&4M;&EN90HK(",@:V@L:T@)(" @('-E;G0@8GD@:&]M92QH;VUE+61O=VX*i
M*R C(&M)+&M!"2 @("!S96YT(&)Y(&EN<V5R="!C:&%R+V5N=&5R+6EN<V5Rh
M="UM;V1E+&EN<V5R="UL:6YE"BL@(R!K30D@(" @<V5N="!B>2!E>&ET+6ENg
M<V5R="UM;V1E"BL@(R!K3BQK4 D@(" @<V5N="!B>2!N97AT+7!A9V4L<')Ef
M=FEO=7,M<&%G90HK(",@:T8L:U()(" @('-E;G0@8GD@<V-R;VQL+69O<G=Ae
M<F0L<V-R;VQL+6)A8VMW87)D<PHK(&UE;6%C<SI<"BL@"3ID;SU>2CIC;R,Xd
M,#IL:2,R-3IC;#U<15M(7$5;2CIS9CU<140Z7 HK( DZ;&4]7D@Z8G,Z86TZc
M8VT]7$5;)6DE9#LE9$@Z;F0]7$5;0SIU<#U<15M!.EP**R ).F-E/5Q%6TLZb
M8V0]7$5;2CIS;SU<15LW;3IS93U<15MM.G5S/5Q%6S1M.G5E/5Q%6VTZ7 HKa
M( DZ;60]7$5;,6TZ;7(]7$5;-VTZ;6(]7$5;-6TZ;64]7$5;;3II<SU<15LQz
M.S(U<EQ%6S(U.S%(.EP**R ).FET(S@Z:W4]7$5;03IK9#U<15M".FMR/5Q%y
M6T,Z:VP]7$5;1#IK8CU>2#I<"BL@"3IH;SU<15M(.FM0/5Q%6S5^.FM./5Q%x
M6S9^.FM(/5Q%6UDZ:V@]7$5;2#IK1#U<15LS?CIK23U<15LR?CI<"BL@"3IKw
M,3U<15M;03IK,CU<15M;0CIK,SU<15M;0SIK-#U<15M;1#IK-3U<15M;13IKv
M-CU<15M;1CI<"BL@"3IK-SU<15M;1SIK.#U<15M;2#IK.3U<15M;23IK,#U<u
M15M;2CI<"BL@"3I+,3U<15M;2SI+,CU<15M;3#I<"BL@"3IP=#IS<CU<14TZt
M=G0C,SIX;CI<"BL@"3IS8SU<13<Z<F,]7$4X.F-S/5Q%6R5I)60[)61R.EP*s
$*R C"CIXr
q
end
--[0224]--
[0225] daemon@ATHENA.MIT.EDU (Yanek Martinson) Linux_Activists 12/22/91 21:35 (7 lines)
Subject: gccbin installation question
From: Yanek Martinson <yanek@mthvax.cs.miami.edu>
To: linux-activists@joker.cs.hut.fi
Date: Sun, 22 Dec 91 21:29:18 EST
Ok, I finally got the gccbin.tar to my linux system, and untar-red it.
Now, which files go where? Also what other files do I need for gcc to
work? What about header files?
--[0225]--
[0226] daemon@ATHENA.MIT.EDU (d88-man@nada.kth.se) Linux_Activists 12/23/91 05:47 (20 lines)
Subject: console
Date: Mon, 23 Dec 91 11:39:44 +0100
From: d88-man@nada.kth.se
To: Linux-activists@joker.cs.hut.fi
Hello Linuxers,
I have played around with the setup.s(/console.c) to initialize different
screenmodes with a supervga. Everything worked just fine, though 132x60 is a
bit hard to read :-) If there is interest I could write some general code to
detect what kind of SVGA-card installed and choose mode interactively.
I know it's kind of useless but it is rather neat (at least as I see it)
to have for example 80x43 mode which greatly improves the use of memacs
multiwindow feature. Suggestions welcome ! The question is do one want this
stuff in the kernel ? Is it usefull enough ?
/Mats Andersson (d88-man@nada.kth.se)
PS A merry christmas to all of you (probably not many reading their mail now
when you should be on holliday :-) and a happy new 1992
--[0226]--
[0227] daemon@ATHENA.MIT.EDU (Marc CORSINI) Linux_Activists 12/23/91 13:40 (21 lines)
Subject: gccbin installation question
Date: Mon, 23 Dec 91 19:32:50 EST
From: corsini@geocub.greco-prog.fr (Marc CORSINI)
To: yanek@mthvax.cs.miami.edu
In-Reply-To: Yanek Martinson's message of Sun, 22 Dec 91 21:29:18 EST <9112230229.AA18367@mthvax.cs.miami.edu>
Cc: linux-activists@joker.cs.hut.fi
About the headers just ftp-ize the include.tar from nic.funet.fi,
tsx-11.mit.edu or tupac-amaru.informatik.rwth-aachen.de
Another useful thing is to read INSTALL-0.11 0.10 and also linux.tex
also avilable on the different sites.
Finally (this was in an old post of Linus).
Most programs starting with a "g" are gnu software. U shoold have
unpack ur gccbin.tar in /usr/local/lib/gcc-xxx. U should link them as
/usr/local/bin/gxxx and /usr/local/bin/xxx
Hope this helps
[mmc]
PS1: Merry X-mas and happy new year.
PS2: May be this more or less should be added in the FAQ
--[0227]--
[0228] daemon@ATHENA.MIT.EDU (proven@Athena.MIT.EDU) Linux_Activists 12/23/91 16:56 (22 lines)
Subject: VFS
From: proven@Athena.MIT.EDU
Date: Mon, 23 Dec 91 16:49:41 -0500
To: linux-activists@joker.cs.hut.fi
For those interested, the VFS is currently in pre-alpha stage. I'll try to
have an alpha release Sunday night if anyone is interested. It's kinda messy
and half the files in the fs directory are unrecognizable from linux-0.11.
I plan to get it all cleaned up and ready for linux-0.12 release.
The VFS add functionallity to accomidate multiple filesystems, and I do plan
to implement a few when I'm done with the VFS. It will also have
functionallity for file types. It should contain all the functionallity
of the old linux fs and only two system calls will have different interfaces
mount and unmount. I have not put any hooks in for
select, so if someone wants to do them thats fine, but I'd suggest starting
with a kernel with the VFS in place or one of us is going to have
a royal good time incorporating the others modifications.
I'll work on additional fs functionallity when I'm done with the VFS, and
the list is quite long, but the first thing to do is finish what I've started.
CAP
--[0228]--
[0229] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/23/91 20:06 (37 lines)
Subject: virtual consoles working.
Date: Mon, 23 Dec 91 17:00:15 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
Hi and merry Xmas.
This note is coming to you from the virtual console of Linux.
Yep. I have virtual consoles working under linux.
Although this is based upon Gordon Irlams minix patches, virtually
no code from there was actually used. This is more a product of
minix's message passing kernel being so different from Linux's
unified approach than by design. But I am trying to adapt
as much of his setterm program as possible, so that a user interface
for setting colors and the like is available. To get around the
problem of no init/login I am using the "doshell" program
posted here earlier. Actually, for standalone machines I
think I prefer it over getty/login.
I will post the patches to 0.11 as soon as I have tested a little
more, and had a chance to bundle it up.
I also have done all of the design and coding, but none of the
testing on a select call, adapted from Mathius Lauttiners design.
But as Proven has requested, I will probably wait until after 0.12
is out before going any further with that. Getting a peek at your
VFS patches early, thought might help.
It's funny how things work out. I was working on select, started
eyeing how they might interact with pty's, and realized that
virtual consoles would probably still be desirable after ptys,
as well as being easier to do.
Anyways, have a good christmas all. I am heading to the ski slopes
so I know I'll have fun. Hope you do to.
--[0229]--
[0230] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/24/91 04:00 (632 lines)
Subject: virtual consoles: part 2
Date: Tue, 24 Dec 91 00:50:21 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
concatenate these to the previous message.
----SNIP HERE-------------------------------------
M"7!O<R M/2!X/#PQ.PI8(" )>#TP.PI8("!]"E@@( I8(2!S=&%T:6,@=F]If
M9"!D96PH:6YT(&-U<G)C;VYS*0I8("!["E@@( EI9B H>"D@>PI8(" )"7!Oe
M<R M/2 R.PI8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@,C,V+#(T-R J*BHJ"E@@d
M( E]"E@@('T*6" @"E@A('-T871I8R!V;VED(&-S:5]**&EN="!P87(I"E@@c
M('L*6" @"6QO;F<@8V]U;G0@7U]A<VU?7R@B8W@B*3L*6" @"6QO;F<@<W1Ab
M<G0@7U]A<VU?7R@B9&DB*3L*6" @"E@A( ES=VET8V@@*'!A<BD@>PI8(" )a
M"6-A<V4@,#H)+RH@97)A<V4@9G)O;2!C=7)S;W(@=&\@96YD(&]F(&1I<W!Lz
M87D@*B\*6" @"0D)8V]U;G0@/2 H<V-R7V5N9"UP;W,I/CXQ.PI8(" )"0ESy
M=&%R=" ]('!O<SL*6"TM+2 R-S8L,C@W("TM+2T*6" @"7T*6" @?0I8(" *x
M6"$@<W1A=&EC('9O:60@8W-I7THH:6YT(&-U<G)C;VYS+"!I;G0@=G!A<BD*w
M6" @>PI8(" );&]N9R!C;W5N="!?7V%S;5]?*")C>"(I.PI8(" );&]N9R!Sv
M=&%R="!?7V%S;5]?*")D:2(I.PI8(" *6"$@"7-W:71C:" H=G!A<BD@>PI8u
M(" )"6-A<V4@,#H)+RH@97)A<V4@9G)O;2!C=7)S;W(@=&\@96YD(&]F(&1It
M<W!L87D@*B\*6" @"0D)8V]U;G0@/2 H<V-R7V5N9"UP;W,I/CXQ.PI8(" )s
M"0ES=&%R=" ]('!O<SL*6"HJ*BHJ*BHJ*BHJ*BHJ*@I8*BHJ(#(V-2PR-S8@r
M*BHJ*@I8(" )"3HB8W@B+")D:2(I.PI8("!]"E@@( I8(2!S=&%T:6,@=F]Iq
M9"!C<VE?2RAI;G0@<&%R*0I8("!["E@@( EL;VYG(&-O=6YT(%]?87-M7U\Hp
M(F-X(BD["E@@( EL;VYG('-T87)T(%]?87-M7U\H(F1I(BD["E@@( I8(2 )o
M<W=I=&-H("AP87(I('L*6" @"0EC87-E(# Z"2\J(&5R87-E(&9R;VT@8W5Rn
M<V]R('1O(&5N9"!O9B!L:6YE("HO"E@@( D)"6EF("AX/CUV:61E;U]N=6U?m
M8V]L=6UN<RD*6" @"0D)"7)E='5R;CL*6"TM+2 S,#4L,S$V("TM+2T*6" @l
M"0DZ(F-X(BPB9&DB*3L*6" @?0I8(" *6"$@<W1A=&EC('9O:60@8W-I7TLHk
M:6YT(&-U<G)C;VYS+"!I;G0@=G!A<BD*6" @>PI8(" );&]N9R!C;W5N="!?j
M7V%S;5]?*")C>"(I.PI8(" );&]N9R!S=&%R="!?7V%S;5]?*")D:2(I.PI8i
M(" *6"$@"7-W:71C:" H=G!A<BD@>PI8(" )"6-A<V4@,#H)+RH@97)A<V4@h
M9G)O;2!C=7)S;W(@=&\@96YD(&]F(&QI;F4@*B\*6" @"0D):68@*'@^/79Ig
M9&5O7VYU;5]C;VQU;6YS*0I8(" )"0D)<F5T=7)N.PI8*BHJ*BHJ*BHJ*BHJf
M*BHJ"E@J*BH@,CDV+#,Q-R J*BHJ"E@@( D).B)C>"(L(F1I(BD["E@@('T*e
M6" @"E@A('9O:60@8W-I7VTH=F]I9"D*6" @>PI8(" ):6YT(&D["E@@( I8d
M(" )9F]R("AI/3 [:3P];G!A<CMI*RLI"E@@( D)<W=I=&-H("AP87);:5TIc
M('L*6"$@"0D)8V%S92 P.F%T='(],'@P-SMB<F5A:SL*6"$@"0D)8V%S92 Qb
M.F%T='(],'@P9CMB<F5A:SL*6"$@"0D)8V%S92 T.F%T='(],'@P9CMB<F5Aa
M:SL*6"$@"0D)8V%S92 W.F%T='(],'@W,#MB<F5A:SL*6"$@"0D)8V%S92 Rz
M-SIA='1R/3!X,#<[8G)E86L["E@@( D)?0I8("!]"E@@( I8(2!S=&%T:6,@y
M:6YL:6YE('9O:60@<V5T7V-U<G-O<BAV;VED*0I8("!["E@@( EC;&DH*3L*x
M6" @"6]U=&)?<"@Q-"P@=FED96]?<&]R=%]R96<I.PI8(" );W5T8E]P*#!Xw
M9F8F*"AP;W,M=FED96]?;65M7W-T87)T*3X^.2DL('9I9&5O7W!O<G1?=F%Lv
M*3L*6"TM+2 S,S8L,S<Y("TM+2T*6" @"0DZ(F-X(BPB9&DB*3L*6" @?0I8u
M(" *6"$@=F]I9"!C<VE?;2AI;G0@8W5R<F-O;G,@*0I8("!["E@@( EI;G0@t
M:3L*6" @"E@@( EF;W(@*&D],#MI/#UN<&%R.VDK*RD*6" @"0ES=VET8V@@s
M*'!A<EMI72D@>PI8(2 )"0EC87-E(# Z(&%T='(]*&ES8V]L;W(_9&5F7V%Tr
M='(Z,'@P-RD[8G)E86L[(" O*B!D969A=6QT("HO"E@A( D)"6-A<V4@,3H@q
M871T<CTH:7-C;VQO<C]D969?871T<GPP># X.C!X,&8I.V)R96%K.R @+RH@p
M8F]L9" J+PI8(2 )"0EC87-E(#0Z(&%T='(]*&ES8V]L;W(_9&5F7V%T=')\o
M,'@P.#HP>#!F*3MB<F5A:SL@("\J('5N9&5R;&EN92 J+PI8(2 )"0EC87-En
M(#<Z(&%T='(]*&ES8V]L;W(_*&1E9E]A='1R/#PT*7PH9&5F7V%T='(^/C0Im
M.C!X-S I.V)R96%K.R @+RH@;F5G871I=F4@*B\*6"$@"0D)8V%S92 R,CH@l
M("\J(&YO="!B;VQD("HO( I8(2 )"0EC87-E(#(T.B @+RH@;F]T('5N9&5Rk
M;&EN92 J+PI8(2 )"0EC87-E(#(U.B @+RH@;F]T(&)L:6YK:6YG("HO"E@Aj
M( D)"2 @8G)E86L["E@A( D)"6-A<V4@,C<Z(&%T='(]*&ES8V]L;W(_9&5Fi
M7V%T='(Z,'@P-RD[8G)E86L[("\J('!O<VET:79E(&EM86=E("HO"E@A( D)h
M"6-A<V4@,SDZ(&EF("AI<V-O;&]R*2!A='1R/2AA='1R("8@,'AF,"D@?" Hg
M9&5F7V%T='(@)B P>#!F*3L@8G)E86L["E@A( D)"6-A<V4@-#DZ(&EF("AIf
M<V-O;&]R*2!A='1R/2AA='1R("8@,'@P9BD@?" H9&5F7V%T='(@)B P>&8Pe
M*3L@8G)E86L["E@A( D)"61E9F%U;'0Z"E@A( D)"2 @:68@*"%C86YD;V-Od
M;&]R*0I8(2 )"0D@(" @8G)E86L["E@A( D)"2 @:7-C;VQO<B ](#$["E@Ac
M( D)"2 @:68@*"AP87);:5T^/3,P*2 F)B H<&%R6VE=/#TS."DI"E@A( D)b
M"2 @("!D969?871T<B ]("AD969?871T<B F(#!X9C I('P@*'!A<EMI72TSa
M,"D["E@A( D)"2 @96QS92 @+RH@0F%C:V=R;W5N9"!C;VQO<B J+PI8(2 )z
M"0D@(" @:68@*"AP87);:5T^/30P*2 F)B H<&%R6VE=/#TT."DI"E@A( D)y
M"2 @("![(&1E9E]A='1R(#T@*&1E9E]A='1R("8@,'@P9BD@?" H*'!A<EMIx
M72TT,"D\/#0I.PI8(2 )"0D@(" @("!V:61E;U]E<F%S95]C:&%R(#T@*'9Iw
M9&5O7V5R87-E7V-H87(F,'@P9F8I('P@*&1E9E]A='1R/#PX*3L*6"$@"0D)v
M(" @('T*6"$@"0D)(" @(&5L<V4*6"$@"0D)"6)R96%K.PI8(2 )"0D@871Tu
M<B ](&1E9E]A='1R.PI8(" )"7T*6" @?0I8(" *6"$@<W1A=&EC(&EN;&ENt
M92!V;VED('-E=%]C=7)S;W(H:6YT(&-U<G)C;VYS*0I8("!["E@K( EI9B Hs
M8W5R<F-O;G,@(3T@9F=?8V]N<V]L92D*6"L@"2 @<F5T=7)N.PI8(" )8VQIr
M*"D["E@@( EO=71B7W H,30L('9I9&5O7W!O<G1?<F5G*3L*6" @"6]U=&)?q
M<"@P>&9F)B@H<&]S+79I9&5O7VUE;5]S=&%R="D^/CDI+"!V:61E;U]P;W)Tp
M7W9A;"D["E@J*BHJ*BHJ*BHJ*BHJ*BH*6"HJ*B S,C L,S(V("HJ*BH*6" @o
M"7-T:2@I.PI8("!]"E@@( I8(2!S=&%T:6,@=F]I9"!R97-P;VYD*'-T<G5Cn
M="!T='E?<W1R=6-T("H@='1Y*0I8("!["E@@( EC:&%R("H@<" ](%)%4U!/m
M3E-%.PI8(" *6"TM+2 S.#(L,S@X("TM+2T*6" @"7-T:2@I.PI8("!]"E@@l
M( I8(2!S=&%T:6,@=F]I9"!R97-P;VYD*&EN="!C=7)R8V]N<RP@<W1R=6-Tk
M('1T>5]S=')U8W0@*B!T='DI"E@@('L*6" @"6-H87(@*B!P(#T@4D534$].j
M4T4["E@@( I8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@,S,S+#,S.2 J*BHJ"E@@i
M( EC;W!Y7W1O7V-O;VME9"AT='DI.PI8("!]"E@@( I8(2!S=&%T:6,@=F]Ih
M9"!I;G-E<G1?8VAA<BAV;VED*0I8("!["E@@( EI;G0@:3UX.PI8(" )=6YSg
M:6=N960@<VAO<G0@=&UP+"!O;&0@/2!V:61E;U]E<F%S95]C:&%R.PI8+2TMf
M(#,Y-2PT,#$@+2TM+0I8(" )8V]P>5]T;U]C;V]K960H='1Y*3L*6" @?0I8e
M(" *6"$@<W1A=&EC('9O:60@:6YS97)T7V-H87(H:6YT(&-U<G)C;VYS*0I8d
M("!["E@@( EI;G0@:3UX.PI8(" )=6YS:6=N960@<VAO<G0@=&UP+"!O;&0@c
M/2!V:61E;U]E<F%S95]C:&%R.PI8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@,S0Wb
M+#,U,R J*BHJ"E@@( E]"E@@('T*6" @"E@A('-T871I8R!V;VED(&EN<V5Ra
M=%]L:6YE*'9O:60I"E@@('L*6" @"6EN="!O;&1T;W L;VQD8F]T=&]M.PI8z
M(" *6"TM+2 T,#DL-#$U("TM+2T*6" @"7T*6" @?0I8(" *6"$@<W1A=&ECy
M('9O:60@:6YS97)T7VQI;F4H:6YT(&-U<G)C;VYS*0I8("!["E@@( EI;G0@x
M;VQD=&]P+&]L9&)O='1O;3L*6" @"E@J*BHJ*BHJ*BHJ*BHJ*BH*6"HJ*B Sw
M-34L,S8V("HJ*BH*6" @"6]L9&)O='1O;3UB;W1T;VT["E@@( ET;W ]>3L*v
M6" @"6)O='1O;2 ]('9I9&5O7VYU;5]L:6YE<SL*6"$@"7-C<F1O=VXH*3L*u
M6" @"71O<#UO;&1T;W ["E@@( EB;W1T;VT];VQD8F]T=&]M.PI8("!]"E@@t
M( I8(2!S=&%T:6,@=F]I9"!D96QE=&5?8VAA<BAV;VED*0I8("!["E@@( EIs
M;G0@:3L*6" @"75N<VEG;F5D('-H;W)T("H@<" ]("AU;G-I9VYE9"!S:&]Rr
M=" J*2!P;W,["E@M+2T@-#$W+#0R." M+2TM"E@@( EO;&1B;W1T;VT]8F]Tq
M=&]M.PI8(" )=&]P/7D["E@@( EB;W1T;VT@/2!V:61E;U]N=6U?;&EN97,[p
M"E@A( ES8W)D;W=N*&-U<G)C;VYS*3L*6" @"71O<#UO;&1T;W ["E@@( EBo
M;W1T;VT];VQD8F]T=&]M.PI8("!]"E@@( I8(2!S=&%T:6,@=F]I9"!D96QEn
M=&5?8VAA<BAI;G0@8W5R<F-O;G,I"E@@('L*6" @"6EN="!I.PI8(" )=6YSm
M:6=N960@<VAO<G0@*B!P(#T@*'5N<VEG;F5D('-H;W)T("HI('!O<SL*6"HJl
M*BHJ*BHJ*BHJ*BHJ*@I8*BHJ(#,W-2PS.#$@*BHJ*@I8(" )*G @/2!V:61Ek
M;U]E<F%S95]C:&%R.PI8("!]"E@@( I8(2!S=&%T:6,@=F]I9"!D96QE=&5?j
M;&EN92AV;VED*0I8("!["E@@( EI;G0@;VQD=&]P+&]L9&)O='1O;3L*6" @i
M"E@M+2T@-#,W+#0T,R M+2TM"E@@( DJ<" ]('9I9&5O7V5R87-E7V-H87([h
M"E@@('T*6" @"E@A('-T871I8R!V;VED(&1E;&5T95]L:6YE*&EN="!C=7)Rg
M8V]N<RD*6" @>PI8(" ):6YT(&]L9'1O<"QO;&1B;W1T;VT["E@@( I8*BHJf
M*BHJ*BHJ*BHJ*BHJ"E@J*BH@,S@S+#,Y-" J*BHJ"E@@( EO;&1B;W1T;VT]e
M8F]T=&]M.PI8(" )=&]P/7D["E@@( EB;W1T;VT@/2!V:61E;U]N=6U?;&ENd
M97,["E@A( ES8W)U<"@I.PI8(" )=&]P/6]L9'1O<#L*6" @"6)O='1O;3UOc
M;&1B;W1T;VT["E@@('T*6" @"E@A('-T871I8R!V;VED(&-S:5]A="AU;G-Ib
M9VYE9"!I;G0@;G(I"E@@('L*6" @"6EF("AN<B ^('9I9&5O7VYU;5]C;VQUa
M;6YS*0I8(" )"6YR(#T@=FED96]?;G5M7V-O;'5M;G,["E@M+2T@-#0U+#0Uz
M-B M+2TM"E@@( EO;&1B;W1T;VT]8F]T=&]M.PI8(" )=&]P/7D["E@@( EBy
M;W1T;VT@/2!V:61E;U]N=6U?;&EN97,["E@A( ES8W)U<"AC=7)R8V]N<RD[x
M"E@@( ET;W ];VQD=&]P.PI8(" )8F]T=&]M/6]L9&)O='1O;3L*6" @?0I8w
M(" *6"$@<W1A=&EC('9O:60@8W-I7V%T*&EN="!C=7)R8V]N<RP@=6YS:6=Nv
M960@:6YT(&YR*0I8("!["E@@( EI9B H;G(@/B!V:61E;U]N=6U?8V]L=6UNu
M<RD*6" @"0EN<B ]('9I9&5O7VYU;5]C;VQU;6YS.PI8*BHJ*BHJ*BHJ*BHJt
M*BHJ"E@J*BH@,SDU+#0P-" J*BHJ"E@@( EE;'-E(&EF("@A;G(I"E@@( D)s
M;G(@/2 Q.PI8(" )=VAI;&4@*&YR+2TI"E@A( D):6YS97)T7V-H87(H*3L*r
M6" @?0I8(" *6"$@<W1A=&EC('9O:60@8W-I7TPH=6YS:6=N960@:6YT(&YRq
M*0I8("!["E@@( EI9B H;G(@/B!V:61E;U]N=6U?;&EN97,I"E@@( D);G(@p
M/2!V:61E;U]N=6U?;&EN97,["E@M+2T@-#4W+#0V-B M+2TM"E@@( EE;'-Eo
M(&EF("@A;G(I"E@@( D);G(@/2 Q.PI8(" )=VAI;&4@*&YR+2TI"E@A( D)n
M:6YS97)T7V-H87(H8W5R<F-O;G,I.PI8("!]"E@@( I8(2!S=&%T:6,@=F]Im
M9"!C<VE?3"AI;G0@8W5R<F-O;G,L('5N<VEG;F5D(&EN="!N<BD*6" @>PI8l
M(" ):68@*&YR(#X@=FED96]?;G5M7VQI;F5S*0I8(" )"6YR(#T@=FED96]?k
M;G5M7VQI;F5S.PI8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@-# U+#0Q-" J*BHJj
M"E@@( EE;'-E(&EF("@A;G(I"E@@( D);G(@/2 Q.PI8(" )=VAI;&4@*&YRi
M+2TI"E@A( D):6YS97)T7VQI;F4H*3L*6" @?0I8(" *6"$@<W1A=&EC('9Oh
M:60@8W-I7U H=6YS:6=N960@:6YT(&YR*0I8("!["E@@( EI9B H;G(@/B!Vg
M:61E;U]N=6U?8V]L=6UN<RD*6" @"0EN<B ]('9I9&5O7VYU;5]C;VQU;6YSf
M.PI8+2TM(#0V-RPT-S8@+2TM+0I8(" )96QS92!I9B H(6YR*0I8(" )"6YRe
M(#T@,3L*6" @"7=H:6QE("AN<BTM*0I8(2 )"6EN<V5R=%]L:6YE*&-U<G)Cd
M;VYS*3L*6" @?0I8(" *6"$@<W1A=&EC('9O:60@8W-I7U H:6YT(&-U<G)Cc
M;VYS+"!U;G-I9VYE9"!I;G0@;G(I"E@@('L*6" @"6EF("AN<B ^('9I9&5Ob
M7VYU;5]C;VQU;6YS*0I8(" )"6YR(#T@=FED96]?;G5M7V-O;'5M;G,["E@Ja
M*BHJ*BHJ*BHJ*BHJ*BH*6"HJ*B T,34L-#(T("HJ*BH*6" @"65L<V4@:68@z
M*"%N<BD*6" @"0EN<B ](#$["E@@( EW:&EL92 H;G(M+2D*6"$@"0ED96QEy
M=&5?8VAA<B@I.PI8("!]"E@@( I8(2!S=&%T:6,@=F]I9"!C<VE?32AU;G-Ix
M9VYE9"!I;G0@;G(I"E@@('L*6" @"6EF("AN<B ^('9I9&5O7VYU;5]L:6YEw
M<RD*6" @"0EN<B ]('9I9&5O7VYU;5]L:6YE<SL*6"TM+2 T-S<L-#@V("TMv
M+2T*6" @"65L<V4@:68@*"%N<BD*6" @"0EN<B ](#$["E@@( EW:&EL92 Hu
M;G(M+2D*6"$@"0ED96QE=&5?8VAA<BAC=7)R8V]N<RD["E@@('T*6" @"E@At
M('-T871I8R!V;VED(&-S:5]-*&EN="!C=7)R8V]N<RP@=6YS:6=N960@:6YTs
M(&YR*0I8("!["E@@( EI9B H;G(@/B!V:61E;U]N=6U?;&EN97,I"E@@( D)r
M;G(@/2!V:61E;U]N=6U?;&EN97,["E@J*BHJ*BHJ*BHJ*BHJ*BH*6"HJ*B Tq
M,C4L-#4R("HJ*BH*6" @"65L<V4@:68@*"%N<BD*6" @"0EN<CTQ.PI8(" )p
M=VAI;&4@*&YR+2TI"E@A( D)9&5L971E7VQI;F4H*3L*6" @?0I8(" *6"$@o
M<W1A=&EC(&EN="!S879E9%]X/3 ["E@A('-T871I8R!I;G0@<V%V961?>3TPn
M.PI8(2 *6"$@<W1A=&EC('9O:60@<V%V95]C=7(H=F]I9"D*6" @>PI8(" )m
M<V%V961?>#UX.PI8(" )<V%V961?>3UY.PI8("!]"E@@( I8(2!S=&%T:6,@l
M=F]I9"!R97-T;W)E7V-U<BAV;VED*0I8("!["E@A( EG;W1O>'DH<V%V961?k
M>"P@<V%V961?>2D["E@@('T*6" @"E@@('9O:60@8V]N7W=R:71E*'-T<G5Cj
M="!T='E?<W1R=6-T("H@='1Y*0I8("!["E@@( EI;G0@;G(["E@@( EC:&%Ri
M(&,["E@@( I8(" );G(@/2!#2$%24RAT='DM/G=R:71E7W$I.PI8(" )=VAIh
M;&4@*&YR+2TI('L*6" @"0E'151#2"AT='DM/G=R:71E7W$L8RD["E@M+2T@g
M-#@W+#4R-2 M+2TM"E@@( EE;'-E(&EF("@A;G(I"E@@( D);G(],3L*6" @f
M"7=H:6QE("AN<BTM*0I8(2 )"61E;&5T95]L:6YE*&-U<G)C;VYS*3L*6" @e
M?0I8(" *6"$@<W1A=&EC('9O:60@<V%V95]C=7(H:6YT(&-U<G)C;VYS*0I8d
M("!["E@@( ES879E9%]X/7@["E@@( ES879E9%]Y/7D["E@@('T*6" @"E@Ac
M('-T871I8R!V;VED(')E<W1O<F5?8W5R*&EN="!C=7)R8V]N<RD*6" @>PI8b
M(2 )9V]T;WAY*&-U<G)C;VYS+'-A=F5D7W@L('-A=F5D7WDI.PI8("!]"E@@a
M( I8*R!S=&%T:6,@:6YT(&UY871T<CL*6" @=F]I9"!C;VY?=W)I=&4H<W1Rz
M=6-T('1T>5]S=')U8W0@*B!T='DI"E@@('L*6" @"6EN="!N<CL*6" @"6-Hy
M87(@8SL*6" @"E@K( EI;G0@8W5R<F-O;G,["E@K(" @(" @"E@K( EF;W(@x
M*&-U<G)C;VYS(#T@,#L@8W5R<F-O;G,\/4Y27T-/3E-/3$53.R!C=7)R8V]Nw
M<RLK*0I8*R )("!I9B H='1Y(#T](%1465]404),12AC=7)R8V]N<RDI"E@Kv
M( D@(" @8G)E86L["E@K( EI9B H8W5R<F-O;G,^3E)?0T].4T],15,I"E@Ku
M( D@('!A;FEC*")C;VY?=W)I=&4Z(&EL;&5G86P@='1Y(BD["E@K( EI9B Ht
M(6-U<G)C;VYS*2 @+RH@='1Y,"!A;'=A>7,@=W)I=&5S('1O('1H92!C=7)Rs
M96YT(&]N92X@*B\*6"L@"2 @8W5R<F-O;G,@/2!F9U]C;VYS;VQE.PI8*R )r
M96QS92 *6"L@"2 @8W5R<F-O;G,M+3L*6"L@( D@(" *6"L@(" @(" @("!Mq
M>6%T='(@/2!A='1R.PI8(" );G(@/2!#2$%24RAT='DM/G=R:71E7W$I.PI8p
M(" )=VAI;&4@*&YR+2TI('L*6" @"0E'151#2"AT='DM/G=R:71E7W$L8RD[o
M"E@J*BHJ*BHJ*BHJ*BHJ*BH*6"HJ*B T-38L-#8T("HJ*BH*6" @"0D)"0EIn
M9B H>#X]=FED96]?;G5M7V-O;'5M;G,I('L*6" @"0D)"0D)>" M/2!V:61Em
M;U]N=6U?8V]L=6UN<SL*6" @"0D)"0D)<&]S("T]('9I9&5O7W-I>F5?<F]Wl
M.PI8(2 )"0D)"0EL9B@I.PI8(" )"0D)"7T*6"$@"0D)"0E?7V%S;5]?*")Mk
M;W9B(%]A='1R+"4E86A<;EQT(@I8(" )"0D)"0DB;6]V=R E)6%X+"4Q7&Y<j
M="(*6" @"0D)"0D).CHB82(@*&,I+")M(B H*BAS:&]R=" J*7!O<RD*6" @i
M"0D)"0D).B)A>"(I.PI8+2TM(#4R.2PU,S<@+2TM+0I8(" )"0D)"6EF("AXh
M/CUV:61E;U]N=6U?8V]L=6UN<RD@>PI8(" )"0D)"0EX("T]('9I9&5O7VYUg
M;5]C;VQU;6YS.PI8(" )"0D)"0EP;W,@+3T@=FED96]?<VEZ95]R;W<["E@Af
M( D)"0D)"6QF*&-U<G)C;VYS*3L*6" @"0D)"0E]"E@A( D)"0D)7U]A<VU?e
M7R@B;6]V8B!?;7EA='1R+"4E86A<;EQT(@I8(" )"0D)"0DB;6]V=R E)6%Xd
M+"4Q7&Y<="(*6" @"0D)"0D).CHB82(@*&,I+")M(B H*BAS:&]R=" J*7!Oc
M<RD*6" @"0D)"0D).B)A>"(I.PI8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@-#8Wb
M+#0W-R J*BHJ"E@@( D)"0E](&5L<V4@:68@*&,]/3(W*0I8(" )"0D)"7-Ta
M871E/3$["E@@( D)"0EE;'-E(&EF("AC/3TQ,"!\?"!C/3TQ,2!\?"!C/3TQz
M,BD*6"$@"0D)"0EL9B@I.PI8(" )"0D)96QS92!I9B H8ST],3,I"E@A( D)y
M"0D)8W(H*3L*6" @"0D)"65L<V4@:68@*&,]/45205-%7T-(05(H='1Y*2D*x
M6"$@"0D)"0ED96PH*3L*6" @"0D)"65L<V4@:68@*&,]/3@I('L*6" @"0D)w
M"0EI9B H>"D@>PI8(" )"0D)"0EX+2T["E@M+2T@-30P+#4U," M+2TM"E@@v
M( D)"0E](&5L<V4@:68@*&,]/3(W*0I8(" )"0D)"7-T871E/3$["E@@( D)u
M"0EE;'-E(&EF("AC/3TQ,"!\?"!C/3TQ,2!\?"!C/3TQ,BD*6"$@"0D)"0ELt
M9BAC=7)R8V]N<RD["E@@( D)"0EE;'-E(&EF("AC/3TQ,RD*6"$@"0D)"0ECs
M<BAC=7)R8V]N<RD["E@@( D)"0EE;'-E(&EF("AC/3U%4D%315]#2$%2*'1Tr
M>2DI"E@A( D)"0D)9&5L*&-U<G)C;VYS*3L*6" @"0D)"65L<V4@:68@*&,]q
M/3@I('L*6" @"0D)"0EI9B H>"D@>PI8(" )"0D)"0EX+2T["E@J*BHJ*BHJp
M*BHJ*BHJ*BH*6"HJ*B T.#0L-#DP("HJ*BH*6" @"0D)"0EI9B H>#YV:61Eo
M;U]N=6U?8V]L=6UN<RD@>PI8(" )"0D)"0EX("T]('9I9&5O7VYU;5]C;VQUn
M;6YS.PI8(" )"0D)"0EP;W,@+3T@=FED96]?<VEZ95]R;W<["E@A( D)"0D)m
M"6QF*"D["E@@( D)"0D)?0I8(" )"0D)"6,].3L*6" @"0D)"7T@96QS92!Il
M9B H8ST]-RD*6"TM+2 U-3<L-38S("TM+2T*6" @"0D)"0EI9B H>#YV:61Ek
M;U]N=6U?8V]L=6UN<RD@>PI8(" )"0D)"0EX("T]('9I9&5O7VYU;5]C;VQUj
M;6YS.PI8(" )"0D)"0EP;W,@+3T@=FED96]?<VEZ95]R;W<["E@A( D)"0D)i
M"6QF*&-U<G)C;VYS*3L*6" @"0D)"0E]"E@@( D)"0D)8STY.PI8(" )"0D)h
M?2!E;'-E(&EF("AC/3TW*0I8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@-#DU+#4Qg
M,2 J*BHJ"E@@( D)"0EI9B H8ST])ULG*0I8(" )"0D)"7-T871E/3(["E@@f
M( D)"0EE;'-E(&EF("AC/3TG12<I"E@A( D)"0D)9V]T;WAY*# L>2LQ*3L*e
M6" @"0D)"65L<V4@:68@*&,]/2=-)RD*6"$@"0D)"0ER:2@I.PI8(" )"0D)d
M96QS92!I9B H8ST])T0G*0I8(2 )"0D)"6QF*"D["E@@( D)"0EE;'-E(&EFc
M("AC/3TG6B<I"E@A( D)"0D)<F5S<&]N9"AT='DI.PI8(" )"0D)96QS92!Ib
M9B H>#T])S<G*0I8(2 )"0D)"7-A=F5?8W5R*"D["E@@( D)"0EE;'-E(&EFa
M("AX/3TG."<I"E@A( D)"0D)<F5S=&]R95]C=7(H*3L*6" @"0D)"6)R96%Kz
M.PI8(" )"0EC87-E(#(Z"E@@( D)"0EF;W(H;G!A<CTP.VYP87(\3E!!4CMNy
M<&%R*RLI"E@M+2T@-38X+#4X-" M+2TM"E@@( D)"0EI9B H8ST])ULG*0I8x
M(" )"0D)"7-T871E/3(["E@@( D)"0EE;'-E(&EF("AC/3TG12<I"E@A( D)w
M"0D)9V]T;WAY*&-U<G)C;VYS+# L>2LQ*3L*6" @"0D)"65L<V4@:68@*&,]v
M/2=-)RD*6"$@"0D)"0ER:2AC=7)R8V]N<RD["E@@( D)"0EE;'-E(&EF("ACu
M/3TG1"<I"E@A( D)"0D);&8H8W5R<F-O;G,I.PI8(" )"0D)96QS92!I9B Ht
M8ST])UHG*0I8(2 )"0D)"7)E<W!O;F0H8W5R<F-O;G,L='1Y*3L*6" @"0D)s
M"65L<V4@:68@*'@]/2<W)RD*6"$@"0D)"0ES879E7V-U<BAC=7)R8V]N<RD[r
M"E@@( D)"0EE;'-E(&EF("AX/3TG."<I"E@A( D)"0D)<F5S=&]R95]C=7(Hq
M8W5R<F-O;G,I.PI8(" )"0D)8G)E86L["E@@( D)"6-A<V4@,CH*6" @"0D)p
M"69O<BAN<&%R/3 [;G!A<CQ.4$%2.VYP87(K*RD*6"HJ*BHJ*BHJ*BHJ*BHJo
M*@I8*BHJ(#4Q,BPU,3<@*BHJ*@I8+2TM(#4X-2PU.30@+2TM+0I8(" )"0D)n
M"7!A<EMN<&%R73TP.PI8(" )"0D);G!A<CTP.PI8(" )"0D)<W1A=&4],SL*m
M6"L@"0D)"2\J:68@*&,@/3TG6R<I"E@K( D)"0E[('-T871E/34["E@K( D)l
M"0D@(&)R96%K.PI8*R )"0D)?2 J+R *6" @"0D)"6EF("AQ=65S/2AC/3TGk
M/R<I*0I8(" )"0D)"6)R96%K.PI8(" )"0EC87-E(#,Z"E@J*BHJ*BHJ*BHJj
M*BHJ*BH*6"HJ*B U,C<L-3@W("HJ*BH*6" @"0D)"7-W:71C:"AC*2!["E@@i
M( D)"0D)8V%S92 G1R<Z(&-A<V4@)V G.@I8(" )"0D)"0EI9B H<&%R6S!=h
M*2!P87);,%TM+3L*6"$@"0D)"0D)9V]T;WAY*'!A<ELP72QY*3L*6" @"0D)g
M"0D)8G)E86L["E@@( D)"0D)8V%S92 G02<Z"E@@( D)"0D)"6EF("@A<&%Rf
M6S!=*2!P87);,%TK*SL*6"$@"0D)"0D)9V]T;WAY*'@L>2UP87);,%TI.PI8e
M(" )"0D)"0EB<F5A:SL*6" @"0D)"0EC87-E("=")SH@8V%S92 G92<Z"E@@d
M( D)"0D)"6EF("@A<&%R6S!=*2!P87);,%TK*SL*6"$@"0D)"0D)9V]T;WAYc
M*'@L>2MP87);,%TI.PI8(" )"0D)"0EB<F5A:SL*6" @"0D)"0EC87-E("=#b
M)SH@8V%S92 G82<Z"E@@( D)"0D)"6EF("@A<&%R6S!=*2!P87);,%TK*SL*a
M6"$@"0D)"0D)9V]T;WAY*'@K<&%R6S!=+'DI.PI8(" )"0D)"0EB<F5A:SL*z
M6" @"0D)"0EC87-E("=$)SH*6" @"0D)"0D):68@*"%P87);,%TI('!A<ELPy
M72LK.PI8(2 )"0D)"0EG;W1O>'DH>"UP87);,%TL>2D["E@@( D)"0D)"6)Rx
M96%K.PI8(" )"0D)"6-A<V4@)T4G.@I8(" )"0D)"0EI9B H(7!A<ELP72D@w
M<&%R6S!=*RL["E@A( D)"0D)"6=O=&]X>2@P+'DK<&%R6S!=*3L*6" @"0D)v
M"0D)8G)E86L["E@@( D)"0D)8V%S92 G1B<Z"E@@( D)"0D)"6EF("@A<&%Ru
M6S!=*2!P87);,%TK*SL*6"$@"0D)"0D)9V]T;WAY*# L>2UP87);,%TI.PI8t
M(" )"0D)"0EB<F5A:SL*6" @"0D)"0EC87-E("=D)SH*6" @"0D)"0D):68@s
M*'!A<ELP72D@<&%R6S!=+2T["E@A( D)"0D)"6=O=&]X>2AX+'!A<ELP72D[r
M"E@@( D)"0D)"6)R96%K.PI8(" )"0D)"6-A<V4@)T@G.B!C87-E("=F)SH*q
M6" @"0D)"0D):68@*'!A<ELP72D@<&%R6S!=+2T["E@@( D)"0D)"6EF("APp
M87);,5TI('!A<ELQ72TM.PI8(2 )"0D)"0EG;W1O>'DH<&%R6S%=+'!A<ELPo
M72D["E@@( D)"0D)"6)R96%K.PI8(" )"0D)"6-A<V4@)THG.@I8(2 )"0D)n
M"0EC<VE?2BAP87);,%TI.PI8(" )"0D)"0EB<F5A:SL*6" @"0D)"0EC87-Em
M("=+)SH*6"$@"0D)"0D)8W-I7TLH<&%R6S!=*3L*6" @"0D)"0D)8G)E86L[l
M"E@@( D)"0D)8V%S92 G3"<Z"E@A( D)"0D)"6-S:5],*'!A<ELP72D["E@@k
M( D)"0D)"6)R96%K.PI8(" )"0D)"6-A<V4@)TTG.@I8(2 )"0D)"0EC<VE?j
M32AP87);,%TI.PI8(" )"0D)"0EB<F5A:SL*6" @"0D)"0EC87-E("=0)SH*i
M6"$@"0D)"0D)8W-I7U H<&%R6S!=*3L*6" @"0D)"0D)8G)E86L["E@@( D)h
M"0D)8V%S92 G0"<Z"E@A( D)"0D)"6-S:5]A="AP87);,%TI.PI8(" )"0D)g
M"0EB<F5A:SL*6" @"0D)"0EC87-E("=M)SH*6"$@"0D)"0D)8W-I7VTH*3L*f
M6" @"0D)"0D)8G)E86L["E@@( D)"0D)8V%S92 G<B<Z"E@@( D)"0D)"6EFe
M("AP87);,%TI('!A<ELP72TM.PI8+2TM(#8P-"PV-C0@+2TM+0I8(" )"0D)d
M<W=I=&-H*&,I('L*6" @"0D)"0EC87-E("=')SH@8V%S92 G8"<Z"E@@( D)c
M"0D)"6EF("AP87);,%TI('!A<ELP72TM.PI8(2 )"0D)"0EG;W1O>'DH8W5Rb
M<F-O;G,L<&%R6S!=+'DI.PI8(" )"0D)"0EB<F5A:SL*6" @"0D)"0EC87-Ea
M("=!)SH*6" @"0D)"0D):68@*"%P87);,%TI('!A<ELP72LK.PI8(2 )"0D)z
M"0EG;W1O>'DH8W5R<F-O;G,L>"QY+7!A<ELP72D["E@@( D)"0D)"6)R96%Ky
M.PI8(" )"0D)"6-A<V4@)T(G.B!C87-E("=E)SH*6" @"0D)"0D):68@*"%Px
M87);,%TI('!A<ELP72LK.PI8(2 )"0D)"0EG;W1O>'DH8W5R<F-O;G,L>"QYw
M*W!A<ELP72D["E@@( D)"0D)"6)R96%K.PI8(" )"0D)"6-A<V4@)T,G.B!Cv
M87-E("=A)SH*6" @"0D)"0D):68@*"%P87);,%TI('!A<ELP72LK.PI8(2 )u
M"0D)"0EG;W1O>'DH8W5R<F-O;G,L>"MP87);,%TL>2D["E@@( D)"0D)"6)Rt
M96%K.PI8(" )"0D)"6-A<V4@)T0G.@I8(" )"0D)"0EI9B H(7!A<ELP72D@s
M<&%R6S!=*RL["E@A( D)"0D)"6=O=&]X>2AC=7)R8V]N<RQX+7!A<ELP72QYr
M*3L*6" @"0D)"0D)8G)E86L["E@@( D)"0D)8V%S92 G12<Z"E@@( D)"0D)q
M"6EF("@A<&%R6S!=*2!P87);,%TK*SL*6"$@"0D)"0D)9V]T;WAY*&-U<G)Cp
M;VYS+# L>2MP87);,%TI.PI8(" )"0D)"0EB<F5A:SL*6" @"0D)"0EC87-Eo
M("=&)SH*6" @"0D)"0D):68@*"%P87);,%TI('!A<ELP72LK.PI8(2 )"0D)n
M"0EG;W1O>'DH8W5R<F-O;G,L,"QY+7!A<ELP72D["E@@( D)"0D)"6)R96%Km
M.PI8(" )"0D)"6-A<V4@)V0G.@I8(" )"0D)"0EI9B H<&%R6S!=*2!P87);l
M,%TM+3L*6"$@"0D)"0D)9V]T;WAY*&-U<G)C;VYS+'@L<&%R6S!=*3L*6" @k
M"0D)"0D)8G)E86L["E@@( D)"0D)8V%S92 G2"<Z(&-A<V4@)V8G.@I8(" )j
M"0D)"0EI9B H<&%R6S!=*2!P87);,%TM+3L*6" @"0D)"0D):68@*'!A<ELQi
M72D@<&%R6S%=+2T["E@A( D)"0D)"6=O=&]X>2AC=7)R8V]N<RQP87);,5TLh
M<&%R6S!=*3L*6" @"0D)"0D)8G)E86L["E@@( D)"0D)8V%S92 G2B<Z"E@Ag
M( D)"0D)"6-S:5]**&-U<G)C;VYS+'!A<ELP72D["E@@( D)"0D)"6)R96%Kf
M.PI8(" )"0D)"6-A<V4@)TLG.@I8(2 )"0D)"0EC<VE?2RAC=7)R8V]N<RQPe
M87);,%TI.PI8(" )"0D)"0EB<F5A:SL*6" @"0D)"0EC87-E("=,)SH*6"$@d
M"0D)"0D)8W-I7TPH8W5R<F-O;G,L<&%R6S!=*3L*6" @"0D)"0D)8G)E86L[c
M"E@@( D)"0D)8V%S92 G32<Z"E@A( D)"0D)"6-S:5]-*&-U<G)C;VYS+'!Ab
M<ELP72D["E@@( D)"0D)"6)R96%K.PI8(" )"0D)"6-A<V4@)U G.@I8(2 )a
M"0D)"0EC<VE?4"AC=7)R8V]N<RQP87);,%TI.PI8(" )"0D)"0EB<F5A:SL*z
M6" @"0D)"0EC87-E("= )SH*6"$@"0D)"0D)8W-I7V%T*&-U<G)C;VYS+'!Ay
M<ELP72D["E@@( D)"0D)"6)R96%K.PI8(" )"0D)"6-A<V4@)VTG.@I8(2 )x
M"0D)"0EC<VE?;2AC=7)R8V]N<RD["E@@( D)"0D)"6)R96%K.PI8(" )"0D)w
M"6-A<V4@)W(G.@I8(" )"0D)"0EI9B H<&%R6S!=*2!P87);,%TM+3L*6"HJv
M*BHJ*BHJ*BHJ*BHJ*@I8*BHJ(#4Y,RPV,#<@*BHJ*@I8(" )"0D)"0E]"E@@u
M( D)"0D)"6)R96%K.PI8(" )"0D)"6-A<V4@)W,G.@I8(2 )"0D)"0ES879Et
M7V-U<B@I.PI8(" )"0D)"0EB<F5A:SL*6" @"0D)"0EC87-E("=U)SH*6"$@s
M"0D)"0D)<F5S=&]R95]C=7(H*3L*6" @"0D)"0D)8G)E86L["E@@( D)"0E]r
M"E@@( D)?0I8(" )?0I8(2 )<V5T7V-U<G-O<B@I.PI8("!]"E@@( I8(" Oq
M*@I8+2TM(#8W,"PV.#@@+2TM+0I8(" )"0D)"0E]"E@@( D)"0D)"6)R96%Kp
M.PI8(" )"0D)"6-A<V4@)W,G.@I8(2 )"0D)"0ES879E7V-U<BAC=7)R8V]No
M<RD["E@@( D)"0D)"6)R96%K.PI8(" )"0D)"6-A<V4@)W4G.@I8(2 )"0D)n
M"0ER97-T;W)E7V-U<BAC=7)R8V]N<RD["E@@( D)"0D)"6)R96%K.PI8(" )m
M"0D)?0I8*R )"0D)8G)E86L["E@K( D)"6-A<V4@-3H*6"L@"0D)(" @+RH@l
M1G5N8W1I;VX@2V5Y("HO"E@K( D)"2 @8G)E86L["E@@( D)?0I8(" )?0I8k
M(2 )<V5T7V-U<G-O<BAC=7)R8V]N<RD["E@@('T*6" @"E@@("\J"E@J*BHJj
M*BHJ*BHJ*BHJ*BH*6"HJ*B V,3DL-C(T("HJ*BH*6"TM+2 W,# L-S V("TMi
M+2T*6" @"7)E9VES=&5R('5N<VEG;F5D(&-H87(@83L*6" @"6-H87(@*F1Ih
M<W!L87E?9&5S8R ]("(_/S\_(CL*6" @"6-H87(@*F1I<W!L87E?<'1R.PI8g
M*R ):6YT(&-U<G)C;VYS(#T@,"P@:2P@:BP@;6%X:CL@"E@@( I8(" )=FEDf
M96]?;G5M7V-O;'5M;G,@/2!/4DE'7U9)1$5/7T-/3%,["E@@( EV:61E;U]Se
M:7IE7W)O=R ]('9I9&5O7VYU;5]C;VQU;6YS("H@,CL*6"HJ*BHJ*BHJ*BHJd
M*BHJ*@I8*BHJ(#8T-BPV-3$@*BHJ*@I8+2TM(#<R."PW,S0@+2TM+0I8(" )c
M?0I8(" )96QS90D)"0D)"0D)+RH@268@;F]T+"!I="!I<R!C;VQO<BX@*B\*b
M6" @"7L*6"L@"0EC86YD;V-O;&]R(#T@,3L*6" @"0EV:61E;U]M96U?<W1Aa
M<G0@/2 P>&(X,# P.PI8(" )"79I9&5O7W!O<G1?<F5G"3T@,'@S9#0["E@@z
M( D)=FED96]?<&]R=%]V86P)/2 P>#-D-3L*6"HJ*BHJ*BHJ*BHJ*BHJ*@I8y
M*BHJ(#8V,BPV-C<@*BHJ*@I8+2TM(#<T-2PW-3(@+2TM+0I8(" )"0ED:7-Px
M;&%Y7V1E<V,@/2 B*D-'02(["E@@( D)?0I8(" )?0I8*R )=FED96]?;65Mw
M7V)A<V4@/2!V:61E;U]M96U?<W1A<G0["E@K( EV:61E;U]M96U?=&5R;2 ]v
M('9I9&5O7VUE;5]E;F0["E@@( I8(" )+RH@3&5T('1H92!U<V5R(&MN;W=Nu
M('=H870@:VEN9"!O9B!D:7-P;&%Y(&1R:79E<B!W92!A<F4@=7-I;F<@*B\*t
M6" @"0I8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@-C<X+#8Y," J*BHJ"E@@( ESs
M8W)?96YD"3T@=FED96]?;65M7W-T87)T("L@=FED96]?;G5M7VQI;F5S("H@r
M=FED96]?<VEZ95]R;W<["E@@( ET;W )/2 P.PI8(" )8F]T=&]M"3T@=FEDq
M96]?;G5M7VQI;F5S.PI8(" *6"$@"6=O=&]X>2A/4DE'7U@L3U))1U]9*3L*p
M6" @"7-E=%]T<F%P7V=A=&4H,'@R,2PF:V5Y8F]A<F1?:6YT97)R=7!T*3L*o
M6" @"6]U=&)?<"AI;F)?<"@P>#(Q*28P>&9D+#!X,C$I.PI8(" )83UI;F)?n
M<"@P>#8Q*3L*6" @"6]U=&)?<"AA?#!X.# L,'@V,2D["E@A( EO=71B*&$Lm
M,'@V,2D["E@@('T*6" @+RH@9G)O;2!B<V0M;F5T+3(Z("HO"E@@( I8+2TMl
M(#<V,RPW.3$@+2TM+0I8(" )<V-R7V5N9 D]('9I9&5O7VUE;5]S=&%R=" Kk
M('9I9&5O7VYU;5]L:6YE<R J('9I9&5O7W-I>F5?<F]W.PI8(" )=&]P"3T@j
M,#L*6" @"6)O='1O;0D]('9I9&5O7VYU;5]L:6YE<SL*6"L@(" )871T<CTPi
M># W.PI8*R @( ED969?871T<CTP># W.PI8*R @(" @(" @('-T871E/3 [h
M"E@K( EQ=65S(#T@,#L*6"L@"6ES8V]L;W(@/2 P.PI8(" *6"$@"6=O=&]Xg
M>2AC=7)R8V]N<RQ/4DE'7U@L3U))1U]9*3L*6" @"7-E=%]T<F%P7V=A=&4Hf
M,'@R,2PF:V5Y8F]A<F1?:6YT97)R=7!T*3L*6" @"6]U=&)?<"AI;F)?<"@Pe
M>#(Q*28P>&9D+#!X,C$I.PI8(" )83UI;F)?<"@P>#8Q*3L*6" @"6]U=&)?d
M<"AA?#!X.# L,'@V,2D["E@A( EO=71B7W H82PP>#8Q*3L*6"$@(" )9F]Rc
M("AI/3$[(&D\3E)?0T].4T],15,[(&DK*RD*6"$@(" @(" @("![('9C7V-Ob
M;G-;:5T@/2!V8U]C;VYS6S!=.PI8(2 )("!V8U]C;VYS6VE=+G9C7V]R:6=Ia
M;@D]("AU;G-I9VYE9"!L;VYG*79C7W-C<F)U9EMI72YS8W)E96X["E@A( D@z
M('9C7V-O;G-;:5TN=F-?<V-R7V5N9 D]('9C7V-O;G-;:5TN=F-?;W)I9VENy
M("L@=FED96]?;G5M7VQI;F5S("H@=FED96]?<VEZ95]R;W<["E@A( D@('9Cx
M7V-O;G-;:5TN=F-?=FED96]?;65M7W-T87)T(#T@=F-?8V]N<UMI72YV8U]Ow
M<FEG:6X["E@A( D@('9C7V-O;G-;:5TN=F-?=FED96]?;65M7V5N9" ]("AIv
M(#\@=F-?8V]N<UMI72YV8U]S8W)?96YD(#H@=FED96]?;65M7W1E<FTI.PI8u
M(2 )("!V8U]C;VYS6VE=+G9C7W!O<SUV8U]C;VYS6VE=+G9C7W9I9&5O7VUEt
M;5]S=&%R=" K('DJ=FED96]?<VEZ95]R;W<@*R H>#P\,2D["E@A( D@(&UAs
M>&H@/2!V:61E;U]N=6U?;&EN97,J=FED96]?;G5M7V-O;'5M;G,["E@A( D@r
M(&9O<B H:CTP.R!J/&UA>&H[(&HK*RD*6"$@(" @(" @(" @(" @=F-?<V-Rq
M8G5F6VE=+G-C<F5E;EMJ72 ]('9I9&5O7V5R87-E7V-H87(["E@A(" @(" @p
M(" @?0I8("!]"E@@("\J(&9R;VT@8G-D+6YE="TR.B J+PI8(" *6"HJ*BHJo
M*BHJ*BHJ*BHJ*@I8*BHJ(#<P-RPW,3 @*BHJ*@I8+2TM(#@P."PY-3<@+2TMn
M+0I8(" );W5T8B@P># V+" P>#0R*3L*6" @"2\J(#$O."!S96-O;F0@*B\*m
M6" @"6)E97!C;W5N=" ]($A:+S@["0I8*R!]"E@K( I8*R *6"L@"E@K('-Tl
M871I8R!I;G0@:V)?86-K*"!I;G0@9&%T85]P;W)T*0I8*R!["E@K(" @:6YTk
M(')E=')I97,["E@K( I8*R @(')E=')I97,@/2 P>#$P,# ["E@K(" @=VAIj
M;&4@*"TM<F5T<FEE<R A/2 P("8F(&EN8E]P*&1A=&%?<&]R="D@(3T@,'A&i
M02D*6"L@"3L)"0DO*B!W86ET(&9O<B!A8VL@*B\*6"L@("!R971U<FXH<F5Th
M<FEE<RD["0DO*B!N;VYZ97)O(&EF(&%C:R!R96-E:79E9" J+PI8*R!]"E@Kg
M( I8*R!S=&%T:6,@:6YT(&MB7W=A:70H:6YT('-T871U<U]P;W)T*0I8*R![f
M"E@K(" @:6YT(')E=')I97,@/2 P>#$P,# ["E@K(" @=VAI;&4@*"@M+7)Ee
M=')I97,@(3T@,"D@)B8@*&EN8E]P*'-T871U<U]P;W)T*2 F(#!X,#(I*0I8d
M*R @(" @.PI8*R @(')E='5R;BAR971R:65S*3L*6"L@?0I8*R *6"L@+RH@c
M4V5T('1H92!,141S(&]N('1H92!C87!S(&QO8VL@86YD(&YU;2!L;V-K(&MEb
M>7,N( I8*R!S=&%T:6,@=F]I9"!S971?;&5D<R@@:6YT(&-U<G)C;VYS+"!Ia
M;G0@;VQD8V]N<R I"E@K('L*6"L@"E@K(" @:6YT(&QE9',L(&UO9&4L(&1Az
M=&%?<&]R="P@<W1A='5S7W!O<G0["E@K(" @97AT97)N('5N<VEG;F5D(&-Hy
M87(@:V)D7VQE9'-;,ET["E@K(" @97AT97)N('5N<VEG;F5D(&-H87(@:V)Dx
M7VUO9&5;,ET["E@K( I8*R @('9C7V-O;G-;;VQD8V]N<UTN<V%V96QE9" ]w
M(&MB9%]L961S6S!=.PI8*R @('9C7V-O;G-;;VQD8V]N<UTN<V%V96UO9&4@v
M/2!K8F1?;6]D95LP73L*6"L@("!L961S(#T@=F-?8V]N<UMC=7)R8V]N<UTNu
M<V%V96QE9#L*6"L@("!M;V1E(#T@=F-?8V]N<UMC=7)R8V]N<UTN<V%V96UOt
M9&4["E@K(" @:V)D7VQE9'-;,%T@/2!L961S.PI8*R @(&MB9%]M;V1E6S!=s
M(#T@;6]D93L*6"L@("!L961S(#T@*"@H;6]D93X^-BDF,BD@?" H*&UO9&4^r
M/C4I)C0I*3L*6"L@"E@K("-I9F1E9B!04U]45T\*6"L@("!I9B H<',I('L*q
M6"L@"61A=&%?<&]R=" ](#!X-C@["E@K( ES=&%T=7-?<&]R=" ](#!X-S([p
M"E@K(" @?2!E;'-E( I8*R C96YD:68*6"L@("!["E@K( ED871A7W!O<G0@o
M/2 P>#8P.PI8*R )<W1A='5S7W!O<G0@/2 P>#8T.PI8*R @('T*6"L@"E@Kn
M(" @:V)?=V%I="AS=&%T=7-?<&]R="D["0I8*R @(&]U=&)?<"AD871A7W!Om
M<G0L(#!X140I.PI8*R @(&MB7V%C:RAD871A7W!O<G0I.PI8*R *6"L@("!Kl
M8E]W86ET*'-T871U<U]P;W)T*3L)"E@K(" @;W5T8E]P*&1A=&%?<&]R="P@k
M;&5D<RD["E@K(" @:V)?86-K*&1A=&%?<&]R="D["0D*6"L@?2 J+PI8*R *j
M6"L@"E@K('-T871I8R!V;VED(&=E=%]S8W)M96TH:6YT(&-U<G)C;VYS*0I8i
M*R!["E@K(" @:68@*"AV:61E;U]T>7!E(#T](%9)1$5/7U194$5?14=!0R!\h
M?"!V:61E;U]T>7!E(#T](%9)1$5/7U194$5?14=!32D@)B8*6"L@(" @("AOg
M<FEG:6X@(3T@=FED96]?;65M7W-T87)T*2D*6"L@("![('5N<VEG;F5D(&QOf
M;F<@:3L*6"L@(" @(&D@/2!S8W)?96YD+6]R:6=I;CL*6"L@(" @(&UE;6-Pe
M>2@H=F]I9" J*79C7W-C<F)U9EMF9U]C;VYS;VQE72YS8W)E96XL("AV;VEDd
M("HI;W)I9VEN+"!I("D["E@K(" @("!M96UC<'DH("AV;VED*BDH*"AC:&%Rc
M*BEV8U]S8W)B=69;9F=?8V]N<V]L95TN<V-R965N*2MI*2P*6"L@(" @(" @b
M*'9O:60@*BEV:61E;U]M96U?8F%S92P@4T-27U-)6D4M:2D["E@K(" @?0I8a
M*R @(&5L<V4*6"L@(" @(&UE;6-P>2@H=F]I9" J*79C7W-C<F)U9EMF9U]Cz
M;VYS;VQE72YS8W)E96XL"E@K(" @(" @("AV;VED("HI=FED96]?;65M7V)Ay
M<V4L(%-#4E]325I%*3L*6"L@("!O<FEG:6X@"3T*6"L@("!V:61E;U]M96U?x
M<W1A<G0@/2 H=6YS:6=N960@;&]N9REV8U]S8W)B=69;9F=?8V]N<V]L95TNw
M<V-R965N.PI8*R @('9I9&5O7VUE;5]E;F0@/2!V:61E;U]M96U?<W1A<G0Kv
M<VEZ96]F*'9C7W-C<F)U9ELP72D["E@K(" @<V-R7V5N9 D]('9I9&5O7VUEu
M;5]S=&%R=" K('9I9&5O7VYU;5]L:6YE<R J('9I9&5O7W-I>F5?<F]W.PI8t
M*R @('1O< D)/2 P.PI8*R @('!O<SUO<FEG:6X@*R!Y*G9I9&5O7W-I>F5?s
M<F]W("L@*'@\/#$I.PI8*R @(&)O='1O;0D]('9I9&5O7VYU;5]L:6YE<SL*r
M6"L@?0I8*R *6"L@<W1A=&EC('9O:60@<V5T7W-C<FUE;2AI;G0@8W5R<F-Oq
M;G,I"E@K('L*6"L@("!V:61E;U]M96U?<W1A<G0@/2!V:61E;U]M96U?8F%Sp
M93L*6"L@("!V:61E;U]M96U?96YD(#T@=FED96]?;65M7W1E<FT["E@K(" @o
M;W)I9VEN"3T@=FED96]?;65M7W-T87)T.PI8*R @('-C<E]E;F0)/2!V:61En
M;U]M96U?<W1A<G0@*R!V:61E;U]N=6U?;&EN97,@*B!V:61E;U]S:7IE7W)Om
M=SL*6"L@("!T;W )"3T@,#L*6"L@("!B;W1T;VT)/2!V:61E;U]N=6U?;&ENl
M97,[( I8*R @('!O<SUO<FEG:6X@*R!Y*G9I9&5O7W-I>F5?<F]W("L@*'@\k
M/#$I.PI8*R @(&UE;6-P>2@H=F]I9" J*79I9&5O7VUE;5]B87-E+" H=F]Ij
M9" J*79C7W-C<F)U9EMF9U]C;VYS;VQE72YS8W)E96XL"E@K(" @("!30U)?i
M4TE:12D["E@K('T*6"L@"E@K('-T871I8R!V;VED('-W87!?<V-R965N*&ENh
M="!N=6TI"E@K('L*6"L@("!I9B H;G5M(#T](&9G7V-O;G-O;&4I"E@K(" @g
M("!R971U<FX["E@K(" @8VQI*"D["E@K(" @9V5T7W-C<FUE;2AF9U]C;VYSf
M;VQE*3L@"E@K(" @9F=?8V]N<V]L92 ](&YU;3L*6"L@("!T86)L95]L:7-Te
M6S!=(#T@)G1T>5]T86)L95MN=6TK,5TN<F5A9%]Q.R @"E@K(" @=&%B;&5?d
M;&ES=%LQ72 ]("9T='E?=&%B;&5;;G5M*S%=+G=R:71E7W$["E@K(" @<V5Tc
M7W-C<FUE;2AF9U]C;VYS;VQE*3L@"E@K(" @<W1I*"D["E@K(" @:68@*'9Ib
M9&5O7W1Y<&4@/3T@5DE$14]?5%E015]%1T%#('Q\('9I9&5O7W1Y<&4@/3T@a
M5DE$14]?5%E015]%1T%-*2 *6"L@(" @('-E=%]O<FEG:6XH9F=?8V]N<V]Lz
M92D["E@K(" @<V5T7V-U<G-O<BAN=6TI.PI8*R!]"E@K( I8*R!S=&%T:6,@y
M=F]I9"!C:&%N9V5?8V]N<V]L92AI;G0@;G5M*0I8*R!["E@K("\J($)R:6YGx
M('9I<G1U86P@8V]N<V]L92!N=6T@=&\@=&AE(&9O<F5G<F]U;F0L(&]R(&-Yw
M8VQE('1O(&YE>'0@8V]N<V]L92!I9@I8*R @*B!N=6T@:7,@+3$N"E@K(" Jv
M+PI8*R *6"L@("!I;G0@;F5W7V-O;G-O;&4L(&]L9%]C;VYS;VQE.PI8*R *u
M6"L@("!I9B H;G5M(#X]($Y27T-/3E-/3$53*2!R971U<FX["E@K( I8*R @t
M(&]L9%]C;VYS;VQE(#T@;F5W7V-O;G-O;&4@/2!F9U]C;VYS;VQE.PI8*R *s
M6"L@(" O*B!686QU92!O9B!F9U]C;VYS;VQE(&ES(&%C8V5S<V5D(&%S>6YCr
M:')O;F]U<VQY(&)Y(&ME>6)O87)D*"D@:6YT97)R=7!T"E@K(" @("H@<F]Uq
M=&EN92P@;F5E9"!T;R!P97)F;W)M(&QO8VL@8F5C875S92!U<&1A=&4@8V%Np
M)W0@8F4@9W5A<F%N=&5E9"!T;R!B90I8*R @(" J(&%T;VUI8RX*6"L@(" @o
M*B\*6"L@("!I9B H;G5M(#T]("TQ*2!["E@K( EN97=?8V]N<V]L92LK.PI8n
M*R ):68@*&YE=U]C;VYS;VQE(#X]($Y27T-/3E-/3$53*2!N97=?8V]N<V]Lm
M92 ](# ["E@K(" @?2!E;'-E"E@K( EN97=?8V]N<V]L92 ](&YU;3L*6"L@l
M"E@K(" @+RH@4V5T(&QE9',@86YD(&1I<W!L87D@9F]R(&YE=R!C;VYS;VQEk
M+B J+PI8*R @("\J('-E=%]L961S*&YE=U]C;VYS;VQE+&]L9%]C;VYS;VQEj
M*3L@*B\*6"L@("!S=V%P7W-C<F5E;BAN97=?8V]N<V]L92D["E@K('T*6"L@i
M"E@K( I8*R!E>'1E<FX@=F]I9"!S:&]W7W-T870H=F]I9"D["E@K( I8*R!Vh
M;VED(&1I<W!L87E?<W1A="@@;&]N9R!R96=E87@@*0I8*R![( I8*R @(&EFg
M("AR96=E87@\3E)?0T].4T],15,I"E@K(" @("!C:&%N9V5?8V]N<V]L92@@f
M<F5G96%X("D[( I8*R @(&5L<V4*6"L@(" @('-H;W=?<W1A="@I.PI8("!]e
M"E@J*BH@:V5R;F5L+V5X:70N8RYO<FEG"4UO;B!$96,@,38@,3,Z,S<Z,C8@d
M,3DY,0I8+2TM(&ME<FYE;"]E>&ET+F,)36]N($1E8R Q-B Q,SHS.#HU," Qc
M.3DQ"E@J*BHJ*BHJ*BHJ*BHJ*BH*6"HJ*B Q,C(L,3(X("HJ*BH*6" @"6EPb
M=70H8W5R<F5N="T^97AE8W5T86)L92D["E@@( EC=7)R96YT+3YE>&5C=71Aa
M8FQE/4Y53$P["E@@( EI9B H8W5R<F5N="T^;&5A9&5R("8F(&-U<G)E;G0Mz
M/G1T>2 ^/2 P*0I8(2 )"71T>5]T86)L95MC=7)R96YT+3YT='E=+G!G<G @y
M/2 P.PI8(" ):68@*&QA<W1?=&%S:U]U<V5D7VUA=&@@/3T@8W5R<F5N="D*x
M6" @"0EL87-T7W1A<VM?=7-E9%]M871H(#T@3E5,3#L*6" @"6EF("AC=7)Rw
M96YT+3YL96%D97(I"E@M+2T@,3(R+#$R." M+2TM"E@@( EI<'5T*&-U<G)Ev
M;G0M/F5X96-U=&%B;&4I.PI8(" )8W5R<F5N="T^97AE8W5T86)L93U.54Q,u
M.PI8(" ):68@*&-U<G)E;G0M/FQE861E<B F)B!C=7)R96YT+3YT='D@/CT@t
M,"D*6"$@"0E45%E?5$%"3$4H8W5R<F5N="T^='1Y*2T^<&=R<" ](# ["E@@s
M( EI9B H;&%S=%]T87-K7W5S961?;6%T:" ]/2!C=7)R96YT*0I8(" )"6QAr
M<W1?=&%S:U]U<V5D7VUA=&@@/2!.54Q,.PI8(" ):68@*&-U<G)E;G0M/FQEq
M861E<BD*6"HJ*B!K97)N96PO8VAR7V1R=B]K97EB;V%R9"Y3+F]R:6<)5V5Dp
M($1E8R @-" Q-3HP-SHU.2 Q.3DQ"E@M+2T@:V5R;F5L+V-H<E]D<G8O:V5Yo
M8F]A<F0N4PE-;VX@1&5C(#(S(#(Q.C4Y.C$R(#$Y.3$*6"HJ*BHJ*BHJ*BHJn
M*BHJ*@I8*BHJ(#(P."PR,C(@*BHJ*@I8(" @*B!T:&ES(')O=71I;F4@:&%Nm
M9&QE<R!F=6YC=&EO;B!K97ES"E@@(" J+PI8("!F=6YC.@I8(2 )<'5S:&P@l
M)65A> I8(" )<'5S:&P@)65C> I8(" )<'5S:&P@)65D> I8(2 )8V%L;"!?k
M<VAO=U]S=&%T"E@@( EP;W!L("5E9'@*6" @"7!O<&P@)65C> I8(2 )<&]Pj
M;" E96%X"E@A( ES=6)B("0P>#-"+"5A; I8(2 ):F(@96YD7V9U;F,*6" @i
M"6-M<&(@)#DL)6%L"E@@( EJ8F4@;VM?9G5N8PI8(" )<W5B8B D,3@L)6%Lh
M"E@M+2T@,C X+#(R,R M+2TM"E@@(" J('1H:7,@<F]U=&EN92!H86YD;&5Sg
M(&9U;F-T:6]N(&ME>7,*6" @("HO"E@@(&9U;F,Z"E@A( ES=6)B("0P>#-"f
M+"5A; I8(2 ):F(@96YD7V9U;F,*6" @"7!U<VAL("5E8W@*6" @"7!U<VALe
M("5E9'@*6"$@"7!U<VAL("5E87@*6"$@"6-A;&P@7V1I<W!L87E?<W1A= I8d
M(2 )<&]P;" E96%X"E@@( EP;W!L("5E9'@*6" @"7!O<&P@)65C> I8(2 )c
M:FUP("!E;F1?9G5N8PI8(" )8VUP8B D.2PE86P*6" @"6IB92!O:U]F=6YCb
M"E@@( ES=6)B("0Q."PE86P*6"HJ*B!I;FET+VUA:6XN8RYO<FEG"5-U;B!$a
M96,@,C(@,3DZ-30Z-3 @,3DY,0I8+2TM(&EN:70O;6%I;BYC"4UO;B!$96,@z
M,C,@,#DZ,S,Z,#(@,3DY,0I8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@,3<P+#$Wy
M-B J*BHJ"E@@( EI;G0@<&ED+&D["E@@( I8(" )<V5T=7 H*'9O:60@*BD@x
M)F1R:79E7VEN9F\I.PI8(2 )*'9O:60I(&]P96XH(B]D978O='1Y,"(L3U]2w
M1%=2+# I.PI8(" )*'9O:60I(&1U<"@P*3L*6" @"2AV;VED*2!D=7 H,"D[v
M"E@@( EP<FEN=&8H(B5D(&)U9F9E<G,@/2 E9"!B>71E<R!B=69F97(@<W!Au
M8V5<;EQR(BQ.4E]"549&15)3+ I8+2TM(#$W,"PQ-S8@+2TM+0I8(" ):6YTt
M('!I9"QI.PI8(" *6" @"7-E='5P*"AV;VED("HI("9D<FEV95]I;F9O*3L*s
M6"$@"2AV;VED*2!O<&5N*"(O9&5V+W1T>3$B+$]?4D174BPP*3L*6" @"2AVr
M;VED*2!D=7 H,"D["E@@( DH=F]I9"D@9'5P*# I.PI8(" )<')I;G1F*"(Eq
M9"!B=69F97)S(#T@)60@8GET97,@8G5F9F5R('-P86-E7&Y<<B(L3E)?0E5&p
M1D524RP*6"HJ*BHJ*BHJ*BHJ*BHJ*@I8*BHJ(#$Y-"PR,# @*BHJ*@I8(" )o
M"6EF("@A<&ED*2!["E@@( D)"6-L;W-E*# I.V-L;W-E*#$I.V-L;W-E*#(In
M.PI8(" )"0ES971S:60H*3L*6"$@"0D)*'9O:60I(&]P96XH(B]D978O='1Ym
M,"(L3U]21%=2+# I.PI8(" )"0DH=F]I9"D@9'5P*# I.PI8(" )"0DH=F]Il
M9"D@9'5P*# I.PI8(" )"0E?97AI="AE>&5C=F4H(B]B:6XO<V@B+&%R9W8Lk
M96YV<"DI.PI8+2TM(#$Y-"PR,# @+2TM+0I8(" )"6EF("@A<&ED*2!["E@@j
M( D)"6-L;W-E*# I.V-L;W-E*#$I.V-L;W-E*#(I.PI8(" )"0ES971S:60Hi
M*3L*6"$@"0D)*'9O:60I(&]P96XH(B]D978O='1Y,2(L3U]21%=2+# I.PI8h
M(" )"0DH=F]I9"D@9'5P*# I.PI8(" )"0DH=F]I9"D@9'5P*# I.PI8(" )g
M"0E?97AI="AE>&5C=F4H(B]B:6XO<V@B+&%R9W8L96YV<"DI.PI8*BHJ(&9Sf
M+V]P96XN8RYO<FEG"4UO;B!$96,@,38@,3,Z,S<Z-# @,3DY,0I8+2TM(&9Se
M+V]P96XN8PE3=6X@1&5C(#(R(#(S.C W.C W(#$Y.3$*6"HJ*BHJ*BHJ*BHJd
M*BHJ*@I8*BHJ(#$V-"PQ-S @*BHJ*@I8(" )"6EF("A-04I/4BAI;F]D92T^c
M:5]Z;VYE6S!=*3T]-"D@>PI8(" )"0EI9B H8W5R<F5N="T^;&5A9&5R("8Fb
M(&-U<G)E;G0M/G1T>3PP*2!["E@@( D)"0EC=7)R96YT+3YT='D@/2!-24Y/a
M4BAI;F]D92T^:5]Z;VYE6S!=*3L*6"$@"0D)"71T>5]T86)L95MC=7)R96YTz
M+3YT='E=+G!G<G @/2!C=7)R96YT+3YP9W)P.PI8(" )"0E]"E@@( D)?2!Ey
M;'-E(&EF("A-04I/4BAI;F]D92T^:5]Z;VYE6S!=*3T]-2D*6" @"0D):68@x
M*&-U<G)E;G0M/G1T>3PP*2!["E@M+2T@,38T+#$W," M+2TM"E@@( D):68@w
M*$U!2D]2*&EN;V1E+3YI7WIO;F5;,%TI/3TT*2!["E@@( D)"6EF("AC=7)Rv
M96YT+3YL96%D97(@)B8@8W5R<F5N="T^='1Y/# I('L*6" @"0D)"6-U<G)Eu
M;G0M/G1T>2 ]($U)3D]2*&EN;V1E+3YI7WIO;F5;,%TI.PI8(2 )"0D)5%19t
M7U1!0DQ%*&-U<G)E;G0M/G1T>2DM/G!G<G @/2!C=7)R96YT+3YP9W)P.PI8s
M(" )"0E]"E@@( D)?2!E;'-E(&EF("A-04I/4BAI;F]D92T^:5]Z;VYE6S!=r
M*3T]-2D*6" @"0D):68@*&-U<G)E;G0M/G1T>3PP*2!["E@J*BH@:V5R;F5Lq
M+V-H<E]D<G8O<V5R:6%L+F,N;W)I9PE-;VX@1&5C(#$V(#$S.C,P.C,T(#$Yp
M.3$*6"TM+2!K97)N96PO8VAR7V1R=B]S97)I86PN8PE-;VX@1&5C(#$V(#$So
M.C,T.C V(#$Y.3$*6"HJ*BHJ*BHJ*BHJ*BHJ*@I8*BHJ(#,X+#0U("HJ*BH*n
M6" @>PI8(" )<V5T7VEN=')?9V%T92@P>#(T+')S,5]I;G1E<G)U<'0I.PI8m
M(" )<V5T7VEN=')?9V%T92@P>#(S+')S,E]I;G1E<G)U<'0I.PI8(2 ):6YIl
M="AT='E?=&%B;&5;,5TN<F5A9%]Q+F1A=&$I.PI8(2 ):6YI="AT='E?=&%Bk
M;&5;,ETN<F5A9%]Q+F1A=&$I.PI8(" );W5T8BAI;F)?<"@P>#(Q*28P>$4Wj
M+#!X,C$I.PI8("!]"E@@( I8+2TM(#,X+#0U("TM+2T*6" @>PI8(" )<V5Ti
M7VEN=')?9V%T92@P>#(T+')S,5]I;G1E<G)U<'0I.PI8(" )<V5T7VEN=')?h
M9V%T92@P>#(S+')S,E]I;G1E<G)U<'0I.PI8(2 ):6YI="A45%E?5$%"3$4Hg
M1DE24U1?4T5224%,7T1%5BDM/G)E861?<2YD871A*3L*6"$@"6EN:70H5%19f
M7U1!0DQ%*$9)4E-47U-%4DE!3%]$158K,2DM/G)E861?<2YD871A*3L*6" @e
M"6]U=&(H:6YB7W H,'@R,2DF,'A%-RPP>#(Q*3L*6" @?0I8(" *6"HJ*B!Id
M;F-L=61E+VQI;G5X+W1T>2YH+F]R:6<)36]N($1E8R Q-B Q,SHT,#HR,R Qc
M.3DQ"E@M+2T@:6YC;'5D92]L:6YU>"]T='DN: E3=6X@1&5C(#(R(#$X.C,Pb
M.C,X(#$Y.3$*6"HJ*BHJ*BHJ*BHJ*BHJ*@I8*BHJ(#(Q+#(V("HJ*BH*6"TMa
M+2 R,2PS,R M+2TM"E@@( EC:&%R(&)U9EM45%E?0E5&7U-)6D5=.PI8("!]z
M.PI8(" *6"L@(V1E9FEN92!.4E]315))04P@,@I8*R C9&5F:6YE($Y27T-/y
M3E-/3$53(#0*6"L@(V1E9FEN92!.4E]45%E3("A.4E]315))04PK3E)?0T].x
M4T],15,K,2D*6"L@(V1E9FEN92!&25)35%]315))04Q?1$56(#8T"E@K("-Dw
M969I;F4@5%197U1!0DQ%*'1T>6YU;2D@*"@H='1Y;G5M*2 \($9)4E-47U-%v
M4DE!3%]$158I(#\@='1Y7W1A8FQE*RAT='EN=6TI(#I<"E@K('1T>5]T86)Lu
M92LH='1Y;G5M*2M.4E]#3TY33TQ%4RU&25)35%]315))04Q?1$56*S$I"E@Kt
M( I8(" C9&5F:6YE($E.0RAA*2 H*&$I(#T@*"AA*2LQ*2 F("A45%E?0E5&s
M7U-)6D4M,2DI"E@@("-D969I;F4@1$5#*&$I("@H82D@/2 H*&$I+3$I("8@r
M*%1465]"549?4TE:12TQ*2D*6" @(V1E9FEN92!%35!462AA*2 H*&$I+FAEq
M860@/3T@*&$I+G1A:6PI"E@J*BHJ*BHJ*BHJ*BHJ*BH*6"HJ*B U,RPU." Jp
M*BHJ"E@M+2T@-C L-C8@+2TM+0I8(" )?3L*6" @"E@@(&5X=&5R;B!S=')Uo
M8W0@='1Y7W-T<G5C="!T='E?=&%B;&5;73L*6"L@97AT97)N('-T<G5C="!Tn
M='E?<75E=64@*G1A8FQE7VQI<W1;73L*6" @"E@@("\J"6EN='(]7D,)"7%Um
M:70]7GP)"65R87-E/61E; EK:6QL/5Y5"E@@( EE;V8]7D0)"79T:6UE/5PPl
M"79M:6X]7#$)"7-X=&,]7# *6"HJ*B!K97)N96PO8VAR7V1R=B]T='E?:6\Nk
M8RYO<FEG"4UO;B!$96,@,38@,3(Z-3DZ,# @,3DY,0I8+2TM(&ME<FYE;"]Cj
M:')?9')V+W1T>5]I;RYC"4UO;B!$96,@,C,@,C,Z,#4Z-#0@,3DY,0I8*BHJi
M*BHJ*BHJ*BHJ*BHJ"E@J*BH@-#@L-30@*BHJ*@I8(" C9&5F:6YE($]?3DQ2h
M150H='1Y*0E?3U]&3$%'*"AT='DI+$].3%)%5"D*6" @(V1E9FEN92!/7TQ#g
M54,H='1Y*0E?3U]&3$%'*"AT='DI+$],0U5#*0I8(" *6"$@<W1R=6-T('1Tf
M>5]S=')U8W0@='1Y7W1A8FQE6UT@/2!["E@@( E["E@@( D)>TE#4DY,+ D)e
M+RH@8VAA;F=E(&EN8V]M:6YG($-2('1O($Y,("HO"E@@( D)3U!/4U1\3TY,d
M0U(L"2\J(&-H86YG92!O=71G;VEN9R!.3"!T;R!#4DY,("HO"E@M+2T@-#@Lc
M-30@+2TM+0I8(" C9&5F:6YE($]?3DQ2150H='1Y*0E?3U]&3$%'*"AT='DIb
M+$].3%)%5"D*6" @(V1E9FEN92!/7TQ#54,H='1Y*0E?3U]&3$%'*"AT='DIa
M+$],0U5#*0I8(" *6"$@<W1R=6-T('1T>5]S=')U8W0@='1Y7W1A8FQE6TY2z
M7U1465-=(#T@>PI8(" )>PI8(" )"7M)0U).3"P)"2\J(&-H86YG92!I;F-Oy
M;6EN9R!#4B!T;R!.3" J+PI8(" )"4]03U-4?$].3$-2+ DO*B!C:&%N9V4@x
M;W5T9V]I;F<@3DP@=&\@0U).3" J+PI8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@w
M.3 L.38@*BHJ*@I8(" )"7LP+# L,"PP+"(B?0I8(" )?0I8("!].PI8+2 *v
M6" @+RH*6" @("H@=&AE<V4@87)E('1H92!T86)L97,@=7-E9"!B>2!T:&4@u
M;6%C:&EN92!C;V1E(&AA;F1L97)S+@I8(" @*B!Y;W4@8V%N(&EM<&QE;65Nt
M="!P<V5U9&\M='1Y)W,@;W(@<V]M971H:6YG(&)Y(&-H86YG:6YG"E@M+2T@s
M.3 L.34@+2TM+0I8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@,3,W+#$T-2 J*BHJr
M"E@@( ES=&DH*3L*6" @?0I8(" *6" @=F]I9"!W86ET7V9O<E]K97EP<F5Sq
M<RAV;VED*0I8("!["E@A( ES;&5E<%]I9E]E;7!T>2@F='1Y7W1A8FQE6S!=p
M+G-E8V]N9&%R>2D["E@@('T*6" @"E@@('9O:60@8V]P>5]T;U]C;V]K960Ho
M<W1R=6-T('1T>5]S=')U8W0@*B!T='DI"E@M+2T@,3,V+#$T-2 M+2TM"E@@n
M( ES=&DH*3L*6" @?0I8(" *6"L@97AT97)N(&EN="!F9U]C;VYS;VQE.PI8m
M("!V;VED('=A:71?9F]R7VME>7!R97-S*'9O:60I"E@@('L*6"$@"7-L965Pl
M7VEF7V5M<'1Y*"9T='E?=&%B;&5;9F=?8V]N<V]L92LQ72YS96-O;F1A<GDIk
M.PI8("!]"E@@( I8("!V;VED(&-O<'E?=&]?8V]O:V5D*'-T<G5C="!T='E?j
M<W1R=6-T("H@='1Y*0I8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@,C(W+#(S,B Ji
M*BHJ"E@M+2T@,C(W+#(S-B M+2TM"E@@( EW86ME7W5P*"9T='DM/G-E8V]Nh
M9&%R>2YP<F]C7VQI<W0I.PI8("!]"E@@( I8*R C9&5F:6YE($E37T%?4T52g
M24%,*&-H86XI("@H*&-H86XI/CU&25)35%]315))04Q?1$56*2 F)B H*&-Hf
M86XI/#TH1DE24U1?4T5224%,7T1%5BLQ*2DI"E@K("-D969I;F4@25-?05]#e
M3TY33TQ%*&-H86XI("@H8VAA;BD\/4Y27T-/3E-/3$53*0I8*R C9&5F:6YEd
M($E37T%?5%19*&-H86XI("A)4U]!7U-%4DE!3"AC:&%N*2!\?"!)4U]!7T-/c
M3E-/3$4H8VAA;BDI"E@K( I8("!I;G0@='1Y7W)E860H=6YS:6=N960@8VAAb
M;FYE;"P@8VAA<B J(&)U9BP@:6YT(&YR*0I8("!["E@@( ES=')U8W0@='1Ya
M7W-T<G5C=" J('1T>3L*6"HJ*BHJ*BHJ*BHJ*BHJ*@I8*BHJ(#(S-"PR-#$@z
M*BHJ*@I8(" ):6YT(&UI;FEM=6TL=&EM92QF;&%G/3 ["E@@( EL;VYG(&]Ly
M9&%L87)M.PI8(" *6"$@"6EF("AC:&%N;F5L/C(@?'P@;G(\,"D@<F5T=7)Nx
M("TQ.PI8(2 )='1Y(#T@)G1T>5]T86)L95MC:&%N;F5L73L*6" @"6]L9&%Lw
M87)M(#T@8W5R<F5N="T^86QA<FT["E@@( ET:6UE(#T@,3!,*G1T>2T^=&5Rv
M;6EO<RYC7V-C6U9424U%73L*6" @"6UI;FEM=6T@/2!T='DM/G1E<FUI;W,Nu
M8U]C8UM634E.73L*6"TM+2 R,S@L,C0U("TM+2T*6" @"6EN="!M:6YI;75Mt
M+'1I;64L9FQA9STP.PI8(" );&]N9R!O;&1A;&%R;3L*6" @"E@A( EI9B Hs
M*"%)4U]!7U1462AC:&%N;F5L*2D@?'P@;G(\,"D@<F5T=7)N("TQ.PI8(2 )r
M='1Y(#T@5%197U1!0DQ%*&-H86YN96PI.PI8(" );VQD86QA<FT@/2!C=7)Rq
M96YT+3YA;&%R;3L*6" @"71I;64@/2 Q,$PJ='1Y+3YT97)M:6]S+F-?8V-;p
M5E1)345=.PI8(" );6EN:6UU;2 ]('1T>2T^=&5R;6EO<RYC7V-C6U9-24Y=o
M.PI8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@,CDS+#,P," J*BHJ"E@@( ES=')Un
M8W0@='1Y7W-T<G5C=" J('1T>3L*6" @"6-H87(@8RP@*F(]8G5F.PI8(" *m
M6"$@"6EF("AC:&%N;F5L/C(@?'P@;G(\,"D@<F5T=7)N("TQ.PI8(2 )='1Yl
M(#T@8VAA;FYE;" K('1T>5]T86)L93L*6" @"7=H:6QE("AN<CXP*2!["E@@k
M( D)<VQE97!?:69?9G5L;"@F='1Y+3YW<FET95]Q*3L*6" @"0EI9B H8W5Rj
M<F5N="T^<VEG;F%L*0I8+2TM(#(Y-RPS,#0@+2TM+0I8(" )<W1R=6-T('1Ti
M>5]S=')U8W0@*B!T='D["E@@( EC:&%R(&,L("IB/6)U9CL*6" @"E@A( EIh
M9B H*"%)4U]!7U1462AC:&%N;F5L*2D@?'P@;G(\,"D@<F5T=7)N("TQ.PI8g
M(2 )='1Y(#T@5%197U1!0DQ%*&-H86YN96PI.PI8(" )=VAI;&4@*&YR/C If
M('L*6" @"0ES;&5E<%]I9E]F=6QL*"9T='DM/G=R:71E7W$I.PI8(" )"6EFe
M("AC=7)R96YT+3YS:6=N86PI"E@J*BHJ*BHJ*BHJ*BHJ*BH*6"HJ*B S-# Ld
M,S0Y("HJ*BH*6" @("H@=&]T86QL>2!I;FYO8V5N="X*6" @("HO"E@@('9Oc
M:60@9&]?='1Y7VEN=&5R<G5P="AI;G0@='1Y*0I8(2!["E@A( EC;W!Y7W1Ob
M7V-O;VME9"AT='E?=&%B;&4K='1Y*3L*6" @?0I8(" *6" @=F]I9"!C:')?a
M9&5V7VEN:70H=F]I9"D*6" @>PI8("!]"E@M+2T@,S0T+#,V." M+2TM"E@@z
M(" J('1O=&%L;'D@:6YN;V-E;G0N"E@@(" J+PI8("!V;VED(&1O7W1T>5]Iy
M;G1E<G)U<'0H:6YT('1T>2D*6"$@>R!I9B H='1Y(#T](# I"E@A(" @("!Tx
M='D@/2!F9U]C;VYS;VQE*S$["E@A(" @96QS90I8(2 @(" @:68@*"AT='D^w
M/3$I("8F("AT='D\/3(I*0I8(2 @(" @("!T='D@/2!T='D@*R!.4E]#3TY3v
M3TQ%4SL*6"$@("!C;W!Y7W1O7V-O;VME9"A45%E?5$%"3$4H='1Y*2D["E@@u
M('T*6" @"E@@('9O:60@8VAR7V1E=E]I;FET*'9O:60I"E@@('L*6"L@("!It
M;G0@:3L*6"L@("!F;W(@*&D]3E)?4T5224%,.R!I/C [(&DM+2D@("\J($UOs
M=F4@<V5R:6%L('!O<G1S('5P+B J+PI8*R @(" @='1Y7W1A8FQE6TY27T-/r
M3E-/3$53*VE=(#T@='1Y7W1A8FQE6VE=.PI8*R @(&9O<B H:3TQ.R!I/#U.q
M4E]#3TY33TQ%4SL@:2LK*0I8*R @(" @='1Y7W1A8FQE6VE=(#T@='1Y7W1Ap
M8FQE6S!=.PI8*R @('1A8FQE7VQI<W1;,%T@/2 F*%1465]404),12@Q*2T^o
M<F5A9%]Q*3L@"E@K(" @=&%B;&5?;&ES=%LQ72 ]("8H5%197U1!0DQ%*#$In
M+3YW<FET95]Q*3L@"E@K(" @=&%B;&5?;&ES=%LR72 ]("8H5%197U1!0DQ%m
M*$9)4E-47U-%4DE!3%]$158I+3YR96%D7W$I.R *6"L@("!T86)L95]L:7-Tl
M6S-=(#T@)BA45%E?5$%"3$4H1DE24U1?4T5224%,7T1%5BDM/G=R:71E7W$Ik
M.R *6"L@("!T86)L95]L:7-T6S1=(#T@)BA45%E?5$%"3$4H1DE24U1?4T52j
M24%,7T1%5BLQ*2T^<F5A9%]Q*3L@"E@K(" @=&%B;&5?;&ES=%LU72 ]("8Hi
M5%197U1!0DQ%*$9)4E-47U-%4DE!3%]$158K,2DM/G=R:71E7W$I.R *6" @h
$?0HO"E1!g
f
end
--[0230]--
[0231] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/24/91 04:00 (716 lines)
Subject: virtual consoles
Date: Tue, 24 Dec 91 00:49:18 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
Here is PART 1 of the patchs to allow Virtual consoles under linux.
I am posting these patches because xmas is here, and I will not
be..., so use at your own risk.
They are mailed in two parts, because who knows what vicious
mailers await out there.
Concatenate the two file, uudecode them, then unshare them.
The readme file will guide you from there.
----SNIP HERE-------------------------------
table
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 vc.shar
M96-H;R!X("T@4D5!1$U%"G-E9" G+UY8+W,O+R\G(#X@4D5!1$U%(#P\("<Oz
M)PI81F]L;&]W:6YG(&%R92!P871C:&5S('1O(&%L;&]W($QI;G5X('1O(&AAy
M=F4@5FER='5A;"!#;VYS;VQE<RX*6 I81F]R('1H;W-E(&YO="!I;B!T:&4@x
M:VYO=RP@5D-S(&%L;&]W('-W87!P:6YG('-C<F5E;B!I;6%G97,*6'=I=&@@w
M:G5S="!T:&4@=&]U8V@@;V8@82!F=6YC=&EO;B!K97DL(&)E='=E96X@=FERv
M='5A;"!S97-S:6]N<RX*6 I80F5F;W)E('EO=2!G;R!A;GD@9G5R=&AE<BP@u
M=&AI<R!H87,@8F5E;B!T97-T960@;VX@;VYL>2!M>0I8;6%C:&EN92$@(%1Ht
M<F]U9V@@=&AI<R!D;V]R+"!Y;W4@96YT97(@=&AE('=O<FQD(&]F($)%5$$@s
M;&%N9"X*6 I8+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TMr
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*6 I85D,@8V]M97,@8V]Nq
M9FEG=7)E('1O('5S92 U,"!L:6YE(&UO9&4@;V8@82!61T$@=VAI8V@@<F5Qp
M=6ER97,@"EAT:&4@=7-E(&]F('1H92!S:&]E;&%C92!P871C:&5S('1H870@o
M22!P;W-T960@<V]M92!T:6UE(&%G;RX*6%EO=2!C86X@<')O8F%B;'D@9FENn
M9"!T:&5M(&]N(&YI8RYF=6YE="YF:2!O<B!T<W@M,3$N"EA)(&]N;'D@979Em
M<B!C;VUP:6QE9"!T:&5M('5N9&5R(&UI;FEX+"!S;R!)(&1O;B=T(&MN;W<Nl
M"E@*6$EF('EO=2!D;VXG="!H879E(&$@5D=!+"!O<B!S:&]E;&%C92!O<B!Yk
M;W4@:G5S="!D;VXG="!W86YT(#4P(&QI;F4*6&UO9&4L('1H96X@8VAA;F=Ej
M(&EN(&ME<FYE;"]C:')?9&5V+V-O;G-O;&4N8R!T:&4@8V]N<W1A;G0Z"EA/i
M4DE'7U9)1$5/7TQ)3D53(&9R;VT@-3 @8F%C:R!T;R R-2X@(%EO=2!C86X@h
M86QS;R!S879E('-O;64@"EAK97)N96P@<W!A8V4@8GD@8VAA;F=E($U!6%]3g
M0U)?4D]74R!B86-K('1O(#(U(&9R;VT@-3 N"EA-92P@22!L:6ME(#4P(&QIf
M;F5S+"!E=F5N('=I=&@@=FER='5A;"!C;VYS;VQE("AC;&%U<W1A<&AO8FEAe
M*2X*6 I806YY=V%Y<R!T:&4@<W1E<',@87)E.@I8"E@@(# @+2!"86-K=7 @d
M>6]U<B!S>7-T96TN"E@*6" @,2 M($%P<&QY('!A=&-H97,Z("!M;W9E('9Cc
M+F-D:68@=&\@>6]U<B!S;W5R8V4@9&ER96-T;W)Y("]U<W(O<W)C"E@);W(@b
M=VAA=&5V97(N("!K97)N96PL(&9S+"!I;FET+"!A;F0@:6YC;'5D92!M=7-Ta
M(&)E(')I9VAT"E@)8F5L;W<@=&AI<RX@($YO=SH*6 D)"E@)"7!A=&-H("UPz
M," \('9C+F-D:68*6 I8(" R("T@268@>6]U(&%R92!N;W0@=7-I;F<@-3 @y
M;&EN97,@*&%S(&%B;W9E*2P@961I="!C;VYS;VQE+F,@;F]W+@I8"4EF('EOx
M=2!A<F4@=7-I;F<@-3 @;&EN97,L(&UA:V4@<W5R92!T97)M8V%P(&5N=')Yw
M(&ES(&EN("]E=&,N"E@)06QS;RP@22!C:&%N9V4@5$5233UC;VYS;VQE-3 @v
M:6X@;7D@+G!R;V9I;&4N"E@*6" @,R M(%)E8V]M<&EL90I8"E@@(#0@+2!#u
M;VUP:6QE('-E='1E<FTN8R!A;F0@86YD(&1O<VAE;&PN8R!A;F0@<'5T(&5Xt
M96-U=&%B;&5S(&EN"E@)+W5S<B]L;V-A;"]B:6X*6 I8(" U("T@07-S=6UIs
M;F<@=&AA="!Y;W4@86QR96%D>2!H879E('1T>3$@86YD('1T>3(@9&]N92P@r
M=&AE(&9O;&QO=VEN9PI8"71T>7,@;75S="!B92!C<F5A=&5D(&%S(&9O;&QOq
M=W,Z"E@*6 D);6MN;V0@+V1E=B]T='DS(&,@-" S"E@)"6UK;F]D("]D978Op
M='1Y-"!C(#0@- I8"0EM:VYO9" O9&5V+W1T>38T(&,@-" V- I8"0EM:VYOo
M9" O9&5V+W1T>38U(&,@-" V-0I8"E@@(#8@+2!296)O;W0@=VET:"!T:&4@n
M;F5W($EM86=E+@I8"E@@(#<@+2!C:&UO9"!U*W@@<W1A<G1C;VYS"E@*6" @m
M." M($5X96-U=&4@<W1A<G1C;VYS"E@*6" @.2 M($EF('EO=2!W97)E('5Sl
M:6YG('-E<FEA;"!P;W)T<R!B969O<F4@*'1T>3$O='1Y,BD@=&AE>0I8"6%Rk
M92!N;W<@<F5N86UE9"!T;R!T='DV-"]T='DV-2X@"E@*6%EO=2!S:&]U;&0@j
M;F]W(&AA=F4@9F]U<B!V:7)T=6%L(&-O;G-O;&5S+"!S96QE8W1A8FQE('=Ii
M=&@@1C$M1C0N"EA)9B!Y;W4@=V%N="P@>6]U(&-A;B!M;V1I9GD@3E)?0T].h
M4T],15,@:6X@:6YC;'5D92]L:6YU>"]T='DN: I8=&\@86X@87!P<F]P<FEAg
M=&4@=F%L=64@86YD(')E8V]M<&EL92X@(%=I=&@@=&AI<R!I;7!L96UE;G1Af
M=&EO;BP*6#$R(&ES('1H92!L:6UI="!S:6YC92!T:&5R92!I<R!N;W0@=&]Ge
M9VQE(&ME>2X@($)U="!M;W)E('1H86X@,3$*6&UE86YS(&YO(&1U;7!I;F<@d
M<')O8V5S<V5S+B @"E@*6 I85&5C:&YI8V%L(&YO=&5S+@I8"E@@(%1H92!Tc
M='ES(&%R92!C:&%N9V5D.B!T='DP(&ES(&%L=V%Y<R!T:&4@8W5R<F5N="!Wb
M:6YD;W<L('=H:6QE"E@@('1T>6X@:7,@=FER='5A;"!T97)M:6YA;"!N('-Ea
M;&5C=&5D('=I=&@@9G5N8W1I;VX@:V5Y($9N+@I8("!T='DV-"]T='DV-2!Az
M<F4@;F]W('1H92!S97)I86P@<&]R=',N"E@@(%-T87)T8V]N<R!C86X@8F4@y
M<W1A<G1E9"!F<F]M("]E=&,O<F,L(&)U="!415)-/61U;6(N"E@*6%!R;V)Lx
M96US.@I8"E@@(%-T86YD;W5T('-E96US(&YO="!T;R!W;W)K('=I=&@@;&5Sw
M<RP@=FDL(&5M("QE=&,[(&5V96X@=&AO=6=H"E@@(" @<V5T=&5R;2!S:&]Wv
M<R!I="!T;R!B92!W;W)K:6YG(&9I;F4N"E@*6" @1G5N8W1I;VX@:V5Y<R!Eu
M<V-A<&4@<V5Q=65N8V5S('=E<F4@;F]T(&)E:6YG(&-A=6=H="!B>2!C;VYSt
M;VQE"E@@(" @*&5V96X@8F5F;W)E(&UY('!A=&-H97,I+"!A;F0@<F5S=6QTs
M960@:6X@8VAA<F%C=&5R<R!A;F0@8F5E<&EN9RX*6" @("!4:&5R969O<F4Lr
M($D@:&%V92!D:7-A8FQE9"!T:&5I<B!I;G1E<G!R971A=&EO;B!I;B!K97EBq
M;V%R9"Y3+@I8(" @($%S<V5M8FQE<B!I<R!N;W0@;7D@8F%G+"!A;F0@22!Dp
M;VXG="!K;F]W('=H>2!K97ES=')O:V5S+"!W:&EC: I8(" @(&%R92!I;F9Ro
M97%U96YT(&5V96YT<RP@;F5E9"!T;R!B92!H86YD;&5D(&EN(&%S<V5M8FQEn
M<BX*6 I8("!,961S(&%N9"!C87!S+VYU;2!L;V-K<R!A<F4@;F]T('-A=F5Dm
M+W)E<W1O<F5D(&-U<G)E;G1L>2X*6 I81V]A;#H*6 I8("!1=6%N=&ET>2!Nl
M;W0@<75A;&ET>2X*6 I806-K;F]W;&5D9V5M96YT.@I8( I8("!';W)D;VX@k
M27)L86T@;V8@8V]U<G-E+"!F;W(@=&AE(&]R:6=I;F%L+@I8"E@*6 I8"E@Jj
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJi
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*@I8"EAP;6%C9&]N84!S;VPN=79I8RYCh
M80I84&5T97(N36%C1&]N86QD0&)C<WES=&5M<RYG;W8N8F,N8V$*6 HO"F5Cg
M:&\@>" M(&1O<VAE;&PN8PIS960@)R]>6"]S+R\O)R ^(&1O<VAE;&PN8R \f
M/" G+R<*6"-I;F-L=61E(#QS=&1I;RYH/@I8(VEN8VQU9&4@/'-Y<R]F:6QEe
M+F@^"E@C:6YC;'5D92 \97)R;F\N:#X*6 I897AT97)N(&-H87(@*G-Y<U]Ed
M<G)L:7-T6UT["E@*6&UA:6XH:6YT(&%R9V,L(&-H87(@*F%R9W9;72D*6'L*c
M6 I8(" @(&EF("AA<F=C("$](#,I('L*6 EF<')I;G1F*'-T9&5R<BP@(G5Sb
M86=E.B!D;W-H96QL(#QT='EN86UE/B \<VAE;&QN86UE/B F7&XB*3L*6 EEa
M>&ET*#$I.PI8(" @('T*6 I8(" @("\J(&-L;W-E(&1O=VX@9F0G<R J+PI8z
M(" @(&-L;W-E*# I.PI8(" @(&-L;W-E*#$I.PI8(" @(&-L;W-E*#(I.PI8y
M"E@@(" @+RH@9&5T86-H(&9R;VT@<&%R96YT('!R;V-E<W,G<R!G<F]U<" Jx
M+PI8(" @('-E='-I9"@I.PI8"E@@(" @+RH@;W!E;B!N97<@='1Y("HO"E@@w
M(" @:68@*&]P96XH87)G=ELQ72P@3U]21%=2+" P*2 ]/2 M,2D*6 EE>&ETv
M*#(I.PI8(" @(&1U<"@P*3L*6" @("!D=7 H,"D["E@@(" @97AE8VQP*&%Ru
M9W9;,ETL("(M(BP@,"D["E@@(" @+RH@<VAO=6QD(&%P<&5A<B!O;B!N97<@t
M='1Y+BXN.B J+PI8(" @(&9P<FEN=&8H<W1D97)R+" B8V%N)W0@97AE8R!Ss
M:&5L;#H@)7-<;B(L('-Y<U]E<G)L:7-T6V5R<FYO72D["E@@(" @97AI="@Sr
M*3L*6'T*6 HO"F5C:&\@>" M('-E='1E<FTN8PIS960@)R]>6"]S+R\O)R ^q
M('-E='1E<FTN8R \/" G+R<*6"\J('-E='1E<FTN8RP@<V5T('1E<FUI;F%Lp
M(&%T=')I8G5T97,N"E@@*@I8("H@0V]P>7)I9VAT("A#*2 Q.3DP($=O<F1Oo
M;B!)<FQA;2 H9V]R9&]N:4!C<RYU82YO>BYA=2DN("!#;VYD:71I;VYS(&]Fn
M('5S92P*6" J(&UO9&EF:6-A=&EO;BP@86YD(')E9&ES=')I8G5T:6]N(&%Rm
M92!C;VYT86EN960@:6X@=&AE(&9I;&4@0T]065))1TA4('1H870*6" J(&9Ol
M<FUS('!A<G0@;V8@=&AI<R!D:7-T<FEB=71I;VXN"E@@*@I8("H*6" J(%-Yk
M;G1A>#H*6" J"E@@*B!S971T97)M"E@@*B @(%L@+71E<FT@=&5R;6EN86Q?j
M;F%M92!="E@@*B @(%L@+7)E<V5T(%T*6" J(" @6R M:6YI=&EA;&EZ92!=i
M"E@@*B @(%L@+6-U<G-O<B!;;VY\;V9F72!="E@@*B @(%L@+6ME>6)O87)Dh
M('!C?&]L:79E='1I?&1U=&-H?&5X=&5N9&5D(%T*6" J(" @6R M;&EN97=Rg
M87 @6V]N?&]F9ET@70I8("H@("!;("US;F]W(%MO;GQO9F9=(%T*6" J(" @f
M6R M<V]F='-C<F]L;"!;;VY\;V9F72!="E@@*B @(%L@+61E9F%U;'0@70I8e
M("H@("!;("UF;W)E9W)O=6YD(&)L86-K?')E9'QG<F5E;GQY96QL;W=\8FQUd
M97QM86=E;G1A?&-Y86Y\=VAI=&5\9&5F875L="!="E@@*B @(%L@+6)A8VMGc
M<F]U;F0@8FQA8VM\<F5D?&=R965N?'EE;&QO=WQB;'5E?&UA9V5N=&%\8WEAb
M;GQW:&ET97QD969A=6QT(%T*6" J(" @6R M8F]L9"!;;VY\;V9F72!="E@@a
M*B @(%L@+6)L:6YK(%MO;GQO9F9=(%T*6" J(" @6R M<F5V97)S92!;;VY\z
M;V9F72!="E@@*B @(%L@+75N9&5R;&EN92!;;VY\;V9F72!="E@@*B @(%L@y
M+7-T;W)E(%T*6" J(" @6R M8VQE87(@6V%L;'QR97-T72!="E@@*@I8("H*x
M6" J(%-E;6%N=&EC<SH*6" J"E@@*B!3971T97)M('=R:71E<R!T;R!S=&%Nw
M9&%R9"!O=71P=70@82!C:&%R86-T97(@<W1R:6YG('1H870@=VEL;"!I;G9Ov
M:V4@=&AE"E@@*B!S<&5C:69I960@=&5R;6EN86P@8V%P86)I;&ET:65S+B @u
M5VAE<F4@<&]S<VEB:6QE('1E<FUC87 @:7,@8V]N<W5L=&5D('1O"E@@*B!Ft
M:6YD('1H92!S=')I;F<@=&\@=7-E+B @4V]M92!O<'1I;VYS(&AO=V5V97(@s
M9&\@;F]T(&-O<G)E<W!O;F1I;F<@=&\@80I8("H@=&5R;6-A<"!C87!A8FELr
M:71Y+B @26X@=&AI<R!C87-E(&EF('1H92!T97)M:6YA;"!T>7!E(&ES(")Mq
M:6YI>"UV8R(L(&]R"E@@*B B;6EN:7@M=F-A;2(@=&AE('-T<FEN9R!T:&%Tp
M(&EN=F]K97,@=&AE('-P96-I9FEE9"!C87!A8FEL:71I97,@;VX@=&AE(%!#o
M"E@@*B!-:6YI>"!V:7)T=6%L(&-O;G-O;&4@9')I=F5R(&ES(&]U='!U="X@n
M($]P=&EO;G,@=&AA="!A<F4@;F]T(&EM<&QE;65N=&5D"E@@*B!B>2!T:&4@m
M=&5R;6EN86P@87)E(&EG;F]R960N"E@@*@I8("H@5&AE(&9O;&QO=VEN9R!Ol
M<'1I;VYS(&%R92!N;VXM;V)V:6]U<RX*6" J"E@@*B @("UT97)M(&-A;B!Bk
M92!U<V5D('1O(&]V97)R:61E('1H92!415)-(&5N=FER;VYM96YT('9A<FEAj
M8FQE+@I8("H*6" J(" @+7)E<V5T(&1I<W!L87ES('1H92!T97)M:6YA;"!Ri
M97-E="!S=')I;F<L('=H:6-H('1Y<&EC86QL>2!R97-E=',@=&AE"E@@*B @h
M(" @('1E<FUI;F%L('1O(&ET<R!P;W=E<B!O;B!S=&%T92X*6" J"E@@*B @g
M("UI;FET:6%L:7IE(&1I<W!L87ES('1H92!T97)M:6YA;"!I;FET:6%L:7IAf
M=&EO;B!S=')I;F<L('=H:6-H('1Y<&EC86QL>0I8("H@(" @("!S971S('1He
M92!T97)M:6YA;"=S(')E;F1E<FEN9R!O<'1I;VYS+"!A;F0@;W1H97(@871Td
M<FEB=71E<R!T;R!T:&4*6" J(" @(" @9&5F875L="!V86QU97,N"E@@*@I8c
M("H@(" M9&5F875L="!S971S('1H92!T97)M:6YA;"=S(')E;F1E<FEN9R!Ob
M<'1I;VYS('1O('1H92!D969A=6QT('9A;'5E<RX*6" J"E@@*B @("US=&]Ra
M92!S=&]R97,@=&AE('1E<FUI;F%L)W,@8W5R<F5N="!R96YD97)I;F<@;W!Tz
M:6]N<R!A<R!T:&4@9&5F875L= I8("H@(" @("!V86QU97,N"E@@*B\*6 I8y
M(VEN8VQU9&4\<W1D;&EB+F@^"E@C:6YC;'5D93QS=&1I;RYH/@I8(VEN8VQUx
M9&4\=&5R;6-A<"YH/@I8"E@O*B!#;VYS=&%N=',N("HO"E@*6"\J($MN;W=Nw
M('-P96-I86P@=&5R;6EN86P@='EP97,N("HO"E@C9&5F:6YE(%9#5$5232 @v
M(" B8V]N<V]L92(*6"-D969I;F4@5D-415)-7T%-(")M:6YI>"UV8V%M(@I8u
M"E@O*B!497)M8V%P(&-O;G-T86YT<RX@*B\*6"-D969I;F4@5$-?0E5&7U-)t
M6D4@,3 R- DO*B!3:7IE(&]F('1E<FUC87 H,RD@8G5F9F5R+B J+PI8(V1Es
M9FEN92!40U]%3E1?4TE:12 U, D)+RH@4VEZ92!O9B!T97)M8V%P*#,I(&5Nr
M=')Y(&)U9F9E<BX@*B\*6 I8+RH@1V5N97)A;"!C;VYS=&%N=',N("HO"E@Cq
M9&5F:6YE(%12544@(#$*6"-D969I;F4@1D%,4T4@, I8"E@O*B!+97EB;V%Rp
M9"!T>7!E<RX@*B\*6"-D969I;F4@4$,)(# *6"-D969I;F4@3TQ)5D545$D@o
M,0I8(V1E9FEN92!$551#2" @(" R"E@C9&5F:6YE($585$5.1$5$(#,*6 I8n
M+RH@0V]L;W)S+B J+PI8+RH*6"-D969I;F4@0DQ!0TL@(" P"E@C9&5F:6YEm
M(%)%1" @(" @,0I8(V1E9FEN92!'4D5%3B @(#(*6"-D969I;F4@645,3$]7l
M(" S"E@C9&5F:6YE($),544@(" @- I8(V1E9FEN92!-04=%3E1!(#4*6"-Dk
M969I;F4@0UE!3B @(" V"E@C9&5F:6YE(%=(251%(" @-PI8(V1E9FEN92!$j
M149!54Q4(#D@*B\*6"\J($-O;&]R<RX@*B\*6"-D969I;F4@0DQ!0TL@(" Pi
M"E@C9&5F:6YE($),544@(" @,0I8(V1E9FEN92!'4D5%3B @(#(*6"-D969Ih
M;F4@0UE!3B ),PI8(V1E9FEN92!2140@(" @(#0*6"-D969I;F4@34%'14Y4g
M02 U"E@C9&5F:6YE(%E%3$Q/5R @-@I8(V1E9FEN92!72$E412 @(#<*6"-Df
M969I;F4@1$5&055,5" Y"E@*6"\J($-O;G1R;VP@<V5Q=65N8V5S+B J+PI8e
M(V1E9FEN92!%4T,@(EPP,S,B"E@C9&5F:6YE($1#4R B7# S,U B"E@C9&5Fd
M:6YE(%-4(" B7# S,UQ<(@I8"E@O*B!3=&%T:6,@=F%R:6%B;&5S+B J+PI8c
M"EAC:&%R('1C7V)U9EM40U]"549?4TE:15T["2\J(%1E<FUC87 @8G5F9F5Rb
M+B J+PI8"E@O*B!/<'1I;VX@9FQA9W,N("!3970@:68@=&AE(&]P=&EO;B!Ia
M<R!T;R!B92!I;G9O:V5D+B J+PI8:6YT(&]P=%]T97)M+"!O<'1?<F5S970Lz
M(&]P=%]I;FET:6%L:7IE+"!O<'1?8W5R<V]R+"!O<'1?:V5Y8F]A<F0["EAIy
M;G0@;W!T7VQI;F5W<F%P+"!O<'1?<VYO=RP@;W!T7W-O9G1S8W)O;&PL(&]Px
M=%]D969A=6QT+"!O<'1?9F]R96=R;W5N9#L*6&EN="!O<'1?8F%C:V=R;W5Nw
M9"P@;W!T7V)O;&0L(&]P=%]B;&EN:RP@;W!T7W)E=F5R<V4L(&]P=%]U;F1Ev
M<FQI;F4["EAI;G0@;W!T7W-T;W)E+"!O<'1?8VQE87(["E@*6"\J($]P=&EOu
M;B!C;VYT<F]L<RX@(%1H92!V87)I86)L92!N86UE<R!H879E(&)E96X@8V]Nt
M=')A8W1E9"!T;R!E;G-U<F4*6" J('5N:7%U96YE<W,N"E@@*B\*6&-H87(@s
M*F]P=%]T95]T97)M:6YA;%]N86UE.PDO*B!497)M:6YA;"!N86UE+B J+PI8r
M:6YT(&]P=%]C=5]O;BP@;W!T7VQI7V]N+"!O<'1?<VY?;VXL(&]P=%]S;U]Oq
M;BP@;W!T7V)O7V]N+"!O<'1?8FQ?;VX["EAI;G0@;W!T7W)E7V]N+"!O<'1?p
M=6Y?;VX["2\J($)O;VQE86X@<W=I=&-H97,N("HO"EAI;G0@;W!T7VME7W1Yo
M<&4["0DO*B!+97EB;V%R9"!T>7!E+B J+PI8:6YT(&]P=%]F;U]C;VQO<BP@n
M;W!T7V)A7V-O;&]R.PDO*B!#;VQO<G,N("HO"EAI;G0@;W!T7V-L7V%L;#L)m
M"0DO*B!#;&5A<B!A;&P@;W(@<F5S="X@*B\*6 I8+RH@0V]M;6%N9"!L:6YEl
M('!A<G-I;F<@<F]U=&EN97,N"E@@*@I8("H@3F]T92!T:&%T(&ET(&ES(&%Nk
M(&5R<F]R(&9O<B!A(&=I=F5N(&]P=&EO;B!T;R!B92!I;G9O:V5D(&UO<F4@j
M=&AA;B!O;F-E+@I8("HO"E@*6'9O:60@<&%R<V5?=&5R;2AA<F=C+"!A<F=Vi
M+"!O<'1I;VXL(&]P=%]T97)M+"!B861?87)G*0I8:6YT(&%R9V,["0D)+RH@h
M3G5M8F5R(&]F(&%R9W5M96YT<R!F;W(@=&AI<R!O<'1I;VXN("HO"EAC:&%Rg
M("IA<F=V6UT["0D)+RH@07)G=6UE;G1S(&9O<B!T:&ES(&]P=&EO;BX@*B\*f
M6&EN=" J;W!T:6]N.PD)"2\J(%1E<FT@9FQA9R!T;R!S970N("HO"EAC:&%Re
M("HJ;W!T7W1E<FT["0DO*B!497)M:6YA;"!N86UE('1O('-E="X@*B\*6&ENd
M=" J8F%D7V%R9SL)"0DO*B!3970@=&\@=')U92!I9B!A;B!E<G)O<B!I<R!Dc
M971E8W1E9"X@*B\*6'L*6"\J(%!A<G-E(&$@+71E<FT@<W!E8VEF:6-A=&EOb
M;BX@*B\*6 I8("!I9B H87)G8R A/2 Q('Q\("IO<'1I;VXI("IB861?87)Ga
M(#T@5%)513L*6" @*F]P=&EO;B ](%12544["E@@(&EF("AA<F=C(#T](#$Iz
M('L*6 DJ;W!T7W1E<FT@/2!A<F=V6S!=.PI8("!]"EA]"E@*6'9O:60@<&%Ry
M<V5?;F]N92AA<F=C+"!A<F=V+"!O<'1I;VXL(&)A9%]A<F<I"EAI;G0@87)Gx
M8SL)"0DO*B!.=6UB97(@;V8@87)G=6UE;G1S(&9O<B!T:&ES(&]P=&EO;BX@w
M*B\*6&-H87(@*F%R9W9;73L)"0DO*B!!<F=U;65N=',@9F]R('1H:7,@;W!Tv
M:6]N+B J+PI8:6YT("IO<'1I;VX["0D)+RH@3W!T:6]N(&9L86<@=&\@<V5Tu
M+B J+PI8:6YT("IB861?87)G.PD)"2\J(%-E="!T;R!T<G5E(&EF(&%N(&5Rt
M<F]R(&ES(&1E=&5C=&5D+B J+PI8>PI8+RH@4&%R<V4@82!P87)A;65T97)Ls
M97-S('-P96-I9FEC871I;VXN("HO"E@*6" @:68@*&%R9V,@(3T@,"!\?" Jr
M;W!T:6]N*2 J8F%D7V%R9R ](%12544["E@@("IO<'1I;VX@/2!44E5%.PI8q
M?0I8"EAV;VED('!A<G-E7W-W:71C:"AA<F=C+"!A<F=V+"!O<'1I;VXL(&]Pp
M=%]O;BP@8F%D7V%R9RD*6&EN="!A<F=C.PD)"2\J($YU;6)E<B!O9B!A<F=Uo
M;65N=',@9F]R('1H:7,@;W!T:6]N+B J+PI88VAA<B J87)G=EM=.PD)"2\Jn
M($%R9W5M96YT<R!F;W(@=&AI<R!O<'1I;VXN("HO"EAI;G0@*F]P=&EO;CL)m
M"0DO*B!/<'1I;VX@9FQA9R!T;R!S970N("HO"EAI;G0@*F]P=%]O;CL)"0DOl
M*B!";V]L96%N(&]P=&EO;B!S=VET8V@@=&\@<V5T(&]R(')E<V5T+B J+PI8k
M:6YT("IB861?87)G.PD)"2\J(%-E="!T;R!T<G5E(&EF(&%N(&5R<F]R(&ESj
M(&1E=&5C=&5D+B J+PI8>PI8+RH@4&%R<V4@82!B;V]L96%N("AO;B]O9F8Ii
M('-P96-I9FEC871I;VXN("HO"E@*6" @:68@*&%R9V,@/B Q('Q\("IO<'1Ih
M;VXI("IB861?87)G(#T@5%)513L*6" @*F]P=&EO;B ](%12544["E@@(&EFg
M("AA<F=C(#T](#$I('L*6 EI9B H<W1R8VUP*&%R9W9;,%TL(")O;B(I(#T]f
M(# I"E@)"2IO<'1?;VX@/2!44E5%.PI8"65L<V4@:68@*'-T<F-M<"AA<F=Ve
M6S!=+" B;V9F(BD@/3T@,"D*6 D)*F]P=%]O;B ]($9!3%-%.PI8"65L<V4*d
M6 D)*F)A9%]A<F<@/2!44E5%.PI8("!](&5L<V4@>PI8"2IO<'1?;VX@/2!4c
M4E5%.PI8("!]"EA]"E@*6'9O:60@<&%R<V5?:V5Y8F]A<F0H87)G8RP@87)Gb
M=BP@;W!T:6]N+"!O<'1?:V5Y8F]A<F0L(&)A9%]A<F<I"EAI;G0@87)G8SL)a
M"0DO*B!.=6UB97(@;V8@87)G=6UE;G1S(&9O<B!T:&ES(&]P=&EO;BX@*B\*z
M6&-H87(@*F%R9W9;73L)"0DO*B!!<F=U;65N=',@9F]R('1H:7,@;W!T:6]Ny
M+B J+PI8:6YT("IO<'1I;VX["0D)+RH@2V5Y8F]A<F0@9FQA9R!T;R!S970Nx
M("HO"EAI;G0@*F]P=%]K97EB;V%R9#L)"2\J($ME>6)O87)D('1Y<&4@=&\@w
M<V5T+B J+PI8:6YT("IB861?87)G.PD)"2\J(%-E="!T;R!T<G5E(&EF(&%Nv
M(&5R<F]R(&ES(&1E=&5C=&5D+B J+PI8>PI8+RH@4&%R<V4@82 M:V5Y8F]Au
M<F0@<W!E8VEF:6-A=&EO;BX@*B\*6 I8("!I9B H87)G8R A/2 Q('Q\("IOt
M<'1I;VXI("IB861?87)G(#T@5%)513L*6" @*F]P=&EO;B ](%12544["E@@s
M(&EF("AA<F=C(#T](#$I('L*6 EI9B H<W1R8VUP*&%R9W9;,%TL(")P8R(Ir
M(#T](# I"E@)"2IO<'1?:V5Y8F]A<F0@/2!00SL*6 EE;'-E(&EF("AS=')Cq
M;7 H87)G=ELP72P@(F]L:79E='1I(BD@/3T@,"D*6 D)*F]P=%]K97EB;V%Rp
M9" ]($],259%5%1).PI8"65L<V4@:68@*'-T<F-M<"AA<F=V6S!=+" B9'5To
M8V@B*2 ]/2 P*0I8"0DJ;W!T7VME>6)O87)D(#T@1%540T@["E@)96QS92!In
M9B H<W1R8VUP*&%R9W9;,%TL(")E>'1E;F1E9"(I(#T](# I"E@)"2IO<'1?m
M:V5Y8F]A<F0@/2!%6%1%3D1%1#L*6 EE;'-E"E@)"2IB861?87)G(#T@5%)5l
M13L*6" @?0I8?0I8"EAV;VED('!A<E]C;VQO<BAA<F=C+"!A<F=V+"!O<'1Ik
M;VXL(&]P=%]C;VQO<BP@8F%D7V%R9RD*6&EN="!A<F=C.PD)"2\J($YU;6)Ej
M<B!O9B!A<F=U;65N=',@9F]R('1H:7,@;W!T:6]N+B J+PI88VAA<B J87)Gi
M=EM=.PD)"2\J($%R9W5M96YT<R!F;W(@=&AI<R!O<'1I;VXN("HO"EAI;G0@h
M*F]P=&EO;CL)"0DO*B!#;VQO<B!F;&%G('1O('-E="X@*B\*6&EN=" J;W!Tg
M7V-O;&]R.PD)"2\J($-O;&]R('1O('-E="X@*B\*6&EN=" J8F%D7V%R9SL)f
M"0DO*B!3970@=&\@=')U92!I9B!A;B!E<G)O<B!I<R!D971E8W1E9"X@*B\*e
M6'L*6"\J(%!A<G-E(&$@+69O<F5G<F]U;F0@;W(@+6)A8VMG<F]U;F0@<W!Ed
M8VEF:6-A=&EO;BX@*B\*6 I8("!I9B H87)G8R A/2 Q('Q\("IO<'1I;VXIc
M("IB861?87)G(#T@5%)513L*6" @*F]P=&EO;B ](%12544["E@@(&EF("AAb
M<F=C(#T](#$I('L*6 EI9B H<W1R8VUP*&%R9W9;,%TL(")B;&%C:R(I(#T]a
M(# I"E@)"2IO<'1?8V]L;W(@/2!"3$%#2SL*6 EE;'-E(&EF("AS=')C;7 Hz
M87)G=ELP72P@(G)E9"(I(#T](# I"E@)"2IO<'1?8V]L;W(@/2!2140["E@)y
M96QS92!I9B H<W1R8VUP*&%R9W9;,%TL(")G<F5E;B(I(#T](# I"E@)"2IOx
M<'1?8V]L;W(@/2!'4D5%3CL*6 EE;'-E(&EF("AS=')C;7 H87)G=ELP72P@w
M(GEE;&QO=R(I(#T](# I"E@)"2IO<'1?8V]L;W(@/2!914Q,3U<["E@)96QSv
M92!I9B H<W1R8VUP*&%R9W9;,%TL(")B;'5E(BD@/3T@,"D*6 D)*F]P=%]Cu
M;VQO<B ]($),544["E@)96QS92!I9B H<W1R8VUP*&%R9W9;,%TL(")M86=Et
M;G1A(BD@/3T@,"D*6 D)*F]P=%]C;VQO<B ]($U!1T5.5$$["E@)96QS92!Is
M9B H<W1R8VUP*&%R9W9;,%TL(")C>6%N(BD@/3T@,"D*6 D)*F]P=%]C;VQOr
M<B ]($-904X["E@)96QS92!I9B H<W1R8VUP*&%R9W9;,%TL(")W:&ET92(Iq
M(#T](# I"E@)"2IO<'1?8V]L;W(@/2!72$E413L*6 EE;'-E(&EF("AS=')Cp
M;7 H87)G=ELP72P@(F1E9F%U;'0B*2 ]/2 P*0I8"0DJ;W!T7V-O;&]R(#T@o
M1$5&055,5#L*6 EE;'-E"E@)"2IB861?87)G(#T@5%)513L*6" @?0I8?0I8n
M"EAV;VED('!A<G-E7V-L96%R*&%R9V,L(&%R9W8L(&]P=&EO;BP@;W!T7V%Lm
M;"P@8F%D7V%R9RD*6&EN="!A<F=C.PD)"2\J($YU;6)E<B!O9B!A<F=U;65Nl
M=',@9F]R('1H:7,@;W!T:6]N+B J+PI88VAA<B J87)G=EM=.PD)"2\J($%Rk
M9W5M96YT<R!F;W(@=&AI<R!O<'1I;VXN("HO"EAI;G0@*F]P=&EO;CL)"0DOj
M*B!#;&5A<B!F;&%G('1O('-E="X@*B\*6&EN=" J;W!T7V%L;#L)"0DO*B!#i
M;&5A<B!A;&P@<W=I=&-H('1O('-E="!O<B!R97-E="X@*B\*6&EN=" J8F%Dh
M7V%R9SL)"0DO*B!3970@=&\@=')U92!I9B!A;B!E<G)O<B!I<R!D971E8W1Eg
M9"X@*B\*6'L*6"\J(%!A<G-E(&$@+6-L96%R('-P96-I9FEC871I;VXN("HOf
M"E@*6" @:68@*&%R9V,@/B Q('Q\("IO<'1I;VXI("IB861?87)G(#T@5%)5e
M13L*6" @*F]P=&EO;B ](%12544["E@@(&EF("AA<F=C(#T](#$I('L*6 EId
M9B H<W1R8VUP*&%R9W9;,%TL(")A;&PB*2 ]/2 P*0I8"0DJ;W!T7V%L;" ]c
M(%12544["E@)96QS92!I9B H<W1R8VUP*&%R9W9;,%TL(")R97-T(BD@/3T@b
M,"D*6 D)*F]P=%]A;&P@/2!&04Q313L*6 EE;'-E"E@)"2IB861?87)G(#T@a
M5%)513L*6" @?2!E;'-E('L*6 DJ;W!T7V%L;" ](%12544["E@@('T*6'T*z
M6 I8=F]I9"!P87)S95]O<'1I;VXH;W!T:6]N+"!A<F=C+"!A<F=V+"!B861?y
M87)G*0I88VAA<B J;W!T:6]N.PD)"2\J($]P=&EO;B!W:71H(&QE861I;F<@x
M)RTG(')E;6]V960N("HO"EAI;G0@87)G8SL)"0DO*B!.=6UB97(@;V8@87)Gw
M=6UE;G1S(&9O<B!T:&ES(&]P=&EO;BX@*B\*6&-H87(@*F%R9W9;73L)"0DOv
M*B!!<F=U;65N=',@9F]R('1H:7,@;W!T:6]N+B J+PI8:6YT("IB861?87)Gu
M.PD)"2\J(%-E="!T;R!T<G5E(&EF(&%N(&5R<F]R(&ES(&1E=&5C=&5D+B Jt
M+PI8>PI8+RH@4&%R<V4@82!S:6YG;&4@<W!E8VEF:6-A=&EO;BX@*B\*6 I8s
M("!I9B H<W1R8VUP*&]P=&EO;BP@(G1E<FTB*2 ]/2 P*0I8"7!A<G-E7W1Er
M<FTH87)G8RP@87)G=BP@)F]P=%]T97)M+" F;W!T7W1E7W1E<FUI;F%L7VYAq
M;64L(&)A9%]A<F<I.PI8("!E;'-E(&EF("AS=')C;7 H;W!T:6]N+" B<F5Sp
M970B*2 ]/2 P*0I8"7!A<G-E7VYO;F4H87)G8RP@87)G=BP@)F]P=%]R97-Eo
M="P@8F%D7V%R9RD["E@@(&5L<V4@:68@*'-T<F-M<"AO<'1I;VXL(")I;FETn
M:6%L:7IE(BD@/3T@,"D*6 EP87)S95]N;VYE*&%R9V,L(&%R9W8L("9O<'1?m
M:6YI=&EA;&EZ92P@8F%D7V%R9RD["E@@(&5L<V4@:68@*'-T<F-M<"AO<'1Il
M;VXL(")C=7)S;W(B*2 ]/2 P*0I8"7!A<G-E7W-W:71C:"AA<F=C+"!A<F=Vk
M+" F;W!T7V-U<G-O<BP@)F]P=%]C=5]O;BP@8F%D7V%R9RD["E@@(&5L<V4@j
M:68@*'-T<F-M<"AO<'1I;VXL(")K97EB;V%R9"(I(#T](# I"E@)<&%R<V5?i
M:V5Y8F]A<F0H87)G8RP@87)G=BP@)F]P=%]K97EB;V%R9"P@)F]P=%]K95]Th
M>7!E+"!B861?87)G*3L*6" @96QS92!I9B H<W1R8VUP*&]P=&EO;BP@(FQIg
M;F5W<F%P(BD@/3T@,"D*6 EP87)S95]S=VET8V@H87)G8RP@87)G=BP@)F]Pf
M=%]L:6YE=W)A<"P@)F]P=%]L:5]O;BP@8F%D7V%R9RD["E@@(&5L<V4@:68@e
M*'-T<F-M<"AO<'1I;VXL(")S;F]W(BD@/3T@,"D*6 EP87)S95]S=VET8V@Hd
M87)G8RP@87)G=BP@)F]P=%]S;F]W+" F;W!T7W-N7V]N+"!B861?87)G*3L*c
M6" @96QS92!I9B H<W1R8VUP*&]P=&EO;BP@(G-O9G1S8W)O;&PB*2 ]/2 Pb
M*0I8"7!A<G-E7W-W:71C:"AA<F=C+"!A<F=V+" F;W!T7W-O9G1S8W)O;&PLa
M("9O<'1?<V]?;VXL(&)A9%]A<F<I.PI8("!E;'-E(&EF("AS=')C;7 H;W!Tz
M:6]N+" B9&5F875L="(I(#T](# I"E@)<&%R<V5?;F]N92AA<F=C+"!A<F=Vy
M+" F;W!T7V1E9F%U;'0L(&)A9%]A<F<I.PI8("!E;'-E(&EF("AS=')C;7 Hx
M;W!T:6]N+" B9F]R96=R;W5N9"(I(#T](# I"E@)<&%R7V-O;&]R*&%R9V,Lw
M(&%R9W8L("9O<'1?9F]R96=R;W5N9"P@)F]P=%]F;U]C;VQO<BP@8F%D7V%Rv
M9RD["E@@(&5L<V4@:68@*'-T<F-M<"AO<'1I;VXL(")B86-K9W)O=6YD(BD@u
M/3T@,"D*6 EP87)?8V]L;W(H87)G8RP@87)G=BP@)F]P=%]B86-K9W)O=6YDt
M+" F;W!T7V)A7V-O;&]R+"!B861?87)G*3L*6" @96QS92!I9B H<W1R8VUPs
M*&]P=&EO;BP@(F)O;&0B*2 ]/2 P*0I8"7!A<G-E7W-W:71C:"AA<F=C+"!Ar
M<F=V+" F;W!T7V)O;&0L("9O<'1?8F]?;VXL(&)A9%]A<F<I.PI8("!E;'-Eq
M(&EF("AS=')C;7 H;W!T:6]N+" B8FQI;FLB*2 ]/2 P*0I8"7!A<G-E7W-Wp
M:71C:"AA<F=C+"!A<F=V+" F;W!T7V)L:6YK+" F;W!T7V)L7V]N+"!B861?o
M87)G*3L*6" @96QS92!I9B H<W1R8VUP*&]P=&EO;BP@(G)E=F5R<V4B*2 ]n
M/2 P*0I8"7!A<G-E7W-W:71C:"AA<F=C+"!A<F=V+" F;W!T7W)E=F5R<V4Lm
M("9O<'1?<F5?;VXL(&)A9%]A<F<I.PI8("!E;'-E(&EF("AS=')C;7 H;W!Tl
M:6]N+" B=6YD97)L:6YE(BD@/3T@,"D*6 EP87)S95]S=VET8V@H87)G8RP@k
M87)G=BP@)F]P=%]U;F1E<FQI;F4L("9O<'1?=6Y?;VXL(&)A9%]A<F<I.PI8j
M("!E;'-E(&EF("AS=')C;7 H;W!T:6]N+" B<W1O<F4B*2 ]/2 P*0I8"7!Ai
M<G-E7VYO;F4H87)G8RP@87)G=BP@)F]P=%]S=&]R92P@8F%D7V%R9RD["E@@h
M(&5L<V4@:68@*'-T<F-M<"AO<'1I;VXL(")C;&5A<B(I(#T](# I"E@)<&%Rg
M<V5?8VQE87(H87)G8RP@87)G=BP@)F]P=%]C;&5A<BP@)F]P=%]C;%]A;&PLf
M(&)A9%]A<F<I.PI8("!E;'-E"E@)*F)A9%]A<F<@/2!44E5%.PI8?0I8"E@Oe
M*B!%;F0@;V8@8V]M;6%N9"!L:6YE('!A<G-I;F<@<F]U=&EN97,N("HO"E@*d
M6'9O:60@=7-A9V4H<')O9U]N86UE*0I88VAA<B J<')O9U]N86UE.PD)+RH@c
M3F%M92!O9B!T:&ES('!R;V=R86TN("HO"EA["E@O*B!0<FEN="!E<G)O<B!Mb
M97-S86=E(&%B;W5T(&%R9W5M96YT<RP@86YD('1H92!C;VUM86YD)W,@<WENa
M=&%X+B J+PI8"E@@(&9P<FEN=&8H<W1D97)R+" B)7,Z($%R9W5M96YT(&5Rz
M<F]R+"!U<V%G95QN(BP@<')O9U]N86UE*3L*6" @9G!R:6YT9BAS=&1E<G(Ly
M(")<;B(I.PI8("!F<')I;G1F*'-T9&5R<BP@(B5S7&XB+"!P<F]G7VYA;64Ix
M.PI8("!F<')I;G1F*'-T9&5R<BP@(B @6R M=&5R;2!T97)M:6YA;%]N86UEw
M(%U<;B(I.PI8("!F<')I;G1F*'-T9&5R<BP@(B @6R M<F5S970@75QN(BD[v
M"E@@(&9P<FEN=&8H<W1D97)R+" B("!;("UI;FET:6%L:7IE(%U<;B(I.PI8u
M("!F<')I;G1F*'-T9&5R<BP@(B @6R M8W5R<V]R(%MO;GQO9F9=(%U<;B(It
M.PI8("!F<')I;G1F*'-T9&5R<BP@(B @6R M:V5Y8F]A<F0@<&-\;VQI=F5Ts
M=&E\9'5T8VA\97AT96YD960@75QN(BD["E@@(&9P<FEN=&8H<W1D97)R+" Br
M("!;("UL:6YE=W)A<"!;;VY\;V9F72!=7&XB*3L*6" @9G!R:6YT9BAS=&1Eq
M<G(L("(@(%L@+7-N;W<@6V]N?&]F9ET@75QN(BD["E@@(&9P<FEN=&8H<W1Dp
M97)R+" B("!;("US;V9T<V-R;VQL(%MO;GQO9F9=(%U<;B(I.PI8("!F<')Io
M;G1F*'-T9&5R<BP@(B @6R M9&5F875L="!=7&XB*3L*6" @9G!R:6YT9BASn
M=&1E<G(L("(@(%L@+69O<F5G<F]U;F0@8FQA8VM\<F5D?&=R965N?'EE;&QOm
M=WQB;'5E?&UA9V5N=&$B*3L*6 EF<')I;G1F*'-T9&5R<BP@(GQC>6%N?'=Hl
M:71E?&1E9F%U;'0@75QN(BD["E@@(&9P<FEN=&8H<W1D97)R+" B("!;("UBk
M86-K9W)O=6YD(&)L86-K?')E9'QG<F5E;GQY96QL;W=\8FQU97QM86=E;G1Aj
M(BD["E@)9G!R:6YT9BAS=&1E<G(L(")\8WEA;GQW:&ET97QD969A=6QT(%U<i
M;B(I.PI8("!F<')I;G1F*'-T9&5R<BP@(B @6R M8F]L9"!;;VY\;V9F72!=h
M7&XB*3L*6" @9G!R:6YT9BAS=&1E<G(L("(@(%L@+6)L:6YK(%MO;GQO9F9=g
M(%U<;B(I.PI8("!F<')I;G1F*'-T9&5R<BP@(B @6R M<F5V97)S92!;;VY\f
M;V9F72!=7&XB*3L*6" @9G!R:6YT9BAS=&1E<G(L("(@(%L@+75N9&5R;&ENe
M92!;;VY\;V9F72!=7&XB*3L*6" @9G!R:6YT9BAS=&1E<G(L("(@(%L@+7-Td
M;W)E(%U<;B(I.PI8("!F<')I;G1F*'-T9&5R<BP@(B @6R M8VQE87(@6V%Lc
M;'QR97-T72!=7&XB*3L*6'T*6 I88VAA<B!T8U]E;G1?8G5F6U1#7T5.5%]3b
M25I%73L)+RH@0G5F9F5R(&9O<B!S=&]R:6YG(&$@=&5R;6-A<"!E;G1R>2X@a
M*B\*6 I88VAA<B J=&-?96YT<GDH;F%M92D*6&-H87(@*FYA;64["0D)+RH@z
M5&5R;6-A<"!C87!A8FEL:71Y('-T<FEN9R!T;R!L;V]K=7 N("HO"EA["E@Oy
M*B!2971U<FX@=&AE('-P96-I9FEE9"!T97)M8V%P('-T<FEN9RP@;W(@86X@x
M96UP='D@<W1R:6YG(&EF(&YO('-U8V@@=&5R;6-A< I8("H@8V%P86)I;&ETw
M>2!E>&ES=',N"E@@*B\*6 I8("!C:&%R("IB=69?<'1R.PI8"E@@(&)U9E]Pv
M='(@/2!T8U]E;G1?8G5F.PI8("!I9B H=&=E='-T<BAN86UE+" F8G5F7W!Tu
M<BD@/3T@3E5,3"D@=&-?96YT7V)U9ELP72 ]("=<,"<["E@@(')E='5R;B!Tt
M8U]E;G1?8G5F.PI8?0I8"EAV;VED('!E<F9O<FU?<V5Q=65N8V4H=F-T97)Ms
M*0I8:6YT('9C=&5R;3L)"0DO*B!3970@:68@=&5R;6EN86P@:7,@82!V:7)Tr
M=6%L(&-O;G-O;&4N("HO"EA["E@O*B!097)F;W)M('1H92!S96QE8W1E9"!Oq
M<'1I;VYS+B J+PI8"E@@("\J("UR97-E="X@*B\*6" @:68@*&]P=%]R97-Ep
M="D@>PI8"7!R:6YT9B@B)7,B+"!T8U]E;G1R>2@B<G,B*2D["E@@('T*6 I8o
M(" O*B M:6YI=&EA;&EZ92X@*B\*6" @:68@*&]P=%]I;FET:6%L:7IE*2![n
M"E@)<')I;G1F*"(E<R(L('1C7V5N=')Y*")I<R(I*3L*6" @?0I8"E@@("\Jm
M("UC=7)S;W(@6V]N?&]F9ETN("HO"E@@(&EF("AO<'1?8W5R<V]R*2!["E@)l
M:68@*&]P=%]C=5]O;BD*6 D)<')I;G1F*"(E<R(L('1C7V5N=')Y*")V92(Ik
M*3L*6 EE;'-E"E@)"7!R:6YT9B@B)7,B+"!T8U]E;G1R>2@B=FDB*2D["E@@j
M('T*6 I8(" O*B M:V5Y8F]A<F0@<&-\;VQI=F5T=&E\9'5T8VA\97AT96YDi
M960N("!68R!O;FQY+B J+PI8("!I9B H;W!T7VME>6)O87)D("8F('9C=&5Rh
M;2D@>PI8"7-W:71C:" H;W!T7VME7W1Y<&4I('L*6 D@(" @8V%S92!00SH*g
M6 D)<')I;G1F*"(E<R5S)7,B+"!$0U,L(")K97EB;V%R9"YP8R(L(%-4*3L*f
M6 D)8G)E86L["E@)(" @(&-A<V4@3TQ)5D545$DZ"E@)"7!R:6YT9B@B)7,Ee
M<R5S(BP@1$-3+" B:V5Y8F]A<F0N;VQI=F5T=&DB+"!35"D["E@)"6)R96%Kd
M.PI8"2 @("!C87-E($155$-(.@I8"0EP<FEN=&8H(B5S)7,E<R(L($1#4RP@c
M(FME>6)O87)D+F1U=&-H(BP@4U0I.PI8"0EB<F5A:SL*6 D@(" @8V%S92!%b
M6%1%3D1%1#H*6 D)<')I;G1F*"(E<R5S)7,B+"!$0U,L(")K97EB;V%R9"YEa
M>'1E;F1E9"(L(%-4*3L*6 D)8G)E86L["E@)?0I8("!]"E@*6" @+RH@+6QIz
M;F5W<F%P(%MO;GQO9F9=+B @5F,@;VYL>2X@*B\*6" @:68@*&]P=%]L:6YEy
M=W)A<" F)B!V8W1E<FTI('L*6 EI9B H;W!T7VQI7V]N*0I8"0EP<FEN=&8Hx
M(B5S)7,E<R(L($1#4RP@(FQI;F5W<F%P+F]N(BP@4U0I.PI8"65L<V4*6 D)w
M<')I;G1F*"(E<R5S)7,B+"!$0U,L(")L:6YE=W)A<"YO9F8B+"!35"D["E@@v
M('T*6 I8(" O*B M<VYO=R!;;VY\;V9F72X@(%9C(&]N;'DN("HO"E@@(&EFu
M("AO<'1?<VYO=R F)B!V8W1E<FTI('L*6 EI9B H;W!T7W-N7V]N*0I8"0EPt
M<FEN=&8H(B5S)7,E<R(L($1#4RP@(G-N;W<N;VXB+"!35"D["E@)96QS90I8s
M"0EP<FEN=&8H(B5S)7,E<R(L($1#4RP@(G-N;W<N;V9F(BP@4U0I.PI8("!]r
M"E@*6" @+RH@+7-O9G1S8W)O;&P@6V]N?&]F9ETN("!68R!O;FQY+B J+PI8q
M("!I9B H;W!T7W-O9G1S8W)O;&P@)B8@=F-T97)M*2!["E@):68@*&]P=%]Sp
M;U]O;BD*6 D)<')I;G1F*"(E<R5S)7,B+"!$0U,L(")S;V9T<V-R;VQL+F]No
M(BP@4U0I.PI8"65L<V4*6 D)<')I;G1F*"(E<R5S)7,B+"!$0U,L(")S;V9Tn
M<V-R;VQL+F]F9B(L(%-4*3L*6" @?0I8"E@@("\J("UD969A=6QT+B @5F,@m
M<V5T<R!D969A=6QT(')E;F1I=&EO;BP@;W1H97)W:7-E(&-L96%R<R!A;&P*l
M6" @("H@871T<FEB=71E<RX*6" @("HO"E@@(&EF("AO<'1?9&5F875L="D@k
M>PI8"6EF("AV8W1E<FTI"E@)"7!R:6YT9B@B)7,E<R(L($530RP@(ELP;2(Ij
M.PI8"65L<V4*6 D)<')I;G1F*"(E<R(L('1C7V5N=')Y*")M92(I*3L*6" @i
M?0I8"E@@("\J("UF;W)E9W)O=6YD(&)L86-K?')E9'QG<F5E;GQY96QL;W=\h
M8FQU97QM86=E;G1A?&-Y86Y\=VAI=&5\9&5F875L="X*6" @("H@5F,@;VYLg
M>2X*6" @("HO"E@@(&EF("AO<'1?9F]R96=R;W5N9" F)B!V8W1E<FTI('L*f
M6 EP<FEN=&8H(B5S)7,E8R5S(BP@15-#+" B6S,B+" G,"<@*R!O<'1?9F]?e
M8V]L;W(L(")M(BD["E@@('T*6 I8(" O*B M8F%C:V=R;W5N9"!B;&%C:WQRd
M961\9W)E96Y\>65L;&]W?&)L=65\;6%G96YT87QC>6%N?'=H:71E?&1E9F%Uc
M;'0N"E@@(" J(%9C(&]N;'DN"E@@(" J+PI8("!I9B H;W!T7V)A8VMG<F]Ub
M;F0@)B8@=F-T97)M*2!["E@)<')I;G1F*"(E<R5S)6,E<R(L($530RP@(ELTa
M(BP@)S G("L@;W!T7V)A7V-O;&]R+" B;2(I.PI8("!]"E@*6" @+RH@+6)Oz
M;&0@6V]N?&]F9ETN("!68R!B96AA=F5S(&%S(&5X<&5C=&5D+"!O=&AE<G=Iy
M<V4@;V9F('1U<FYS(&]F9@I8(" @*B!A;&P@871T<FEB=71E<RX*6" @("HOx
M"E@@(&EF("AO<'1?8F]L9"D@>PI8"6EF("AO<'1?8F]?;VXI"E@)"7!R:6YTw
M9B@B)7,B+"!T8U]E;G1R>2@B;60B*2D["E@)96QS92!["E@)"6EF("AV8W1Ev
M<FTI"E@)"0EP<FEN=&8H(B5S)7,B+"!%4T,L(");,C)M(BD["E@)"65L<V4*u
M6 D)"7!R:6YT9B@B)7,B+"!T8U]E;G1R>2@B;64B*2D["E@)?0I8("!]"E@*t
M6" @+RH@+6)L:6YK(%MO;GQO9F9=+B @5F,@8F5H879E<R!A<R!E>'!E8W1Es
M9"P@;W1H97)W:7-E(&]F9B!T=7)N<R!O9F8*6" @("H@86QL(&%T=')I8G5Tr
M97,N"E@@(" J+PI8("!I9B H;W!T7V)L:6YK*2!["E@):68@*&]P=%]B;%]Oq
M;BD*6 D)<')I;G1F*"(E<R(L('1C7V5N=')Y*")M8B(I*3L*6 EE;'-E('L*p
M6 D):68@*'9C=&5R;2D*6 D)"7!R:6YT9B@B)7,E<R(L($530RP@(ELR-6TBo
M*3L*6 D)96QS90I8"0D)<')I;G1F*"(E<R(L('1C7V5N=')Y*")M92(I*3L*n
M6 E]"E@@('T*6 I8(" O*B M<F5V97)S92!;;VY\;V9F72X@(%9C(&)E:&%Vm
M97,@87,@97AP96-T960L(&]T:&5R=VES92!O9F8@='5R;G,*6" @("H@;V9Fl
M(&%L;"!A='1R:6)U=&5S+@I8(" @*B\*6" @:68@*&]P=%]R979E<G-E*2![k
M"E@):68@*&]P=%]R95]O;BD*6 D)<')I;G1F*"(E<R(L('1C7V5N=')Y*")Mj
M<B(I*3L*6 EE;'-E('L*6 D):68@*'9C=&5R;2D*6 D)"7!R:6YT9B@B)7,Ei
M<R(L($530RP@(ELR-VTB*3L*6 D)96QS90I8"0D)<')I;G1F*"(E<R(L('1Ch
M7V5N=')Y*")M92(I*3L*6 E]"E@@('T*6 I8(" O*B M=6YD97)L:6YE(%MOg
M;GQO9F9=+B J+PI8("!I9B H;W!T7W5N9&5R;&EN92D@>PI8"6EF("AO<'1?f
M=6Y?;VXI"E@)"7!R:6YT9B@B)7,B+"!T8U]E;G1R>2@B=7,B*2D["E@)96QSe
M90I8"0EP<FEN=&8H(B5S(BP@=&-?96YT<GDH(G5E(BDI.PI8("!]"E@*6" @d
M+RH@+7-T;W)E+B @5F,@;VYL>2X@*B\*6" @:68@*&]P=%]S=&]R92 F)B!Vc
M8W1E<FTI('L*6 EP<FEN=&8H(B5S)7,E<R(L($1#4RP@(G)E;F1I=&EO;BYSb
M970B+"!35"D["E@@('T*6 I8(" O*B M8VQE87(@6V%L;'QR97-T72X@*B\*a
M6" @:68@*&]P=%]C;&5A<BD@>PI8"6EF("AO<'1?8VQ?86QL*0I8"0EP<FENz
M=&8H(B5S(BP@=&-?96YT<GDH(F-L(BDI.PI8"65L<V4*6 D)<')I;G1F*"(Ey
M<R(L('1C7V5N=')Y*")C9"(I*3L*6" @?0I8?0I8"EAV;VED(&UA:6XH87)Gx
M8RP@87)G=BD*6&EN="!A<F=C.PI88VAA<B J87)G=EM=.PI8>PI8("!I;G0@w
M8F%D7V%R9SL)"0DO*B!3970@:68@97)R;W(@:6X@87)G=6UE;G1S+B J+PI8v
M("!I;G0@87)G+"!M;V1I9FEE<CL*6" @8VAA<B J=&5R;3L)"0DO*B!497)Mu
M:6YA;"!T>7!E+B J+PI8("!I;G0@=F-T97)M.PD)"2\J(%-E="!I9B!T97)Mt
M:6YA;"!I<R!A('9I<G1U86P@8V]N<V]L92X@*B\*6 I8("!I;G0@8F%G7V%Rs
M9R ]($9!3%-%.PI8"E@@(&EF("AA<F=C(#P@,BD@8F%D7V%R9R ](%12544[r
M"E@*6" @+RH@4&%R<V4@87)G=6UE;G1S+B J+PI8"E@@(&9O<B H87)G(#T@q
M,3L@87)G(#P@87)G8SLI('L*6 EI9B H*F%R9W9;87)G72 ]/2 G+2<I('L*p
M6 I8"0DO*B!087)S92!A('-I;F=L92!O<'1I;VXN("HO"E@*6 D)9F]R("AMo
M;V1I9FEE<B ](&%R9R K(#$[(&UO9&EF:65R(#P@87)G8SL@;6]D:69I97(Kn
M*RD@>PI8"0D):68@*"IA<F=V6VUO9&EF:65R72 ]/2 G+2<I(&)R96%K.PI8m
M"0E]"E@)"7!A<G-E7V]P=&EO;BAA<F=V6V%R9UT@*R Q+"!M;V1I9FEE<B Ml
M(&%R9R M(#$L"E@)"0D@(" @("9A<F=V6V%R9R K(#%=+" F8F%D7V%R9RD[k
M"E@)"6%R9R ](&UO9&EF:65R.PI8"7T@96QS92!["E@*6 D)8F%D7V%R9R ]j
M(%12544["E@)"6%R9RLK.PI8"7T*6" @?0I8"E@@("\J($1I<W!L87D@<WENi
M=&%X(&UE<W-A9V4@:68@97)R;W(@:6X@87)G=6UE;G1S+B J+PI8"E@@(&EFh
M("AB861?87)G*2!["E@)=7-A9V4H87)G=ELP72D["E@)97AI="@Q*3L*6" @g
M?0I8"E@@("\J($9I;F0@;W5T('1E<FUI;F%L(&YA;64N("HO"E@*6" @:68@f
M*&]P=%]T97)M*2!["E@)=&5R;2 ](&]P=%]T95]T97)M:6YA;%]N86UE.PI8e
M("!](&5L<V4@>PI8"71E<FT@/2!G971E;G8H(E1%4DTB*3L*6 EI9B H=&5Rd
M;2 ]/2!.54Q,*2!["E@)"69P<FEN=&8H<W1D97)R+" B)7,Z("1415)-(&ESc
M(&YO="!D969I;F5D+EQN(BP@87)G=ELP72D["E@)"65X:70H,2D["E@)?0I8b
M("!]"E@*6" @+RH@1FEN9"!T97)M8V%P(&5N=')Y+B J+PI8"E@@(&EF("ATa
M9V5T96YT*'1C7V)U9BP@=&5R;2D@(3T@,2D@>PI8"69P<FEN=&8H<W1D97)Rz
M+" B)7,Z($-O=6QD(&YO="!F:6YD('1E<FUC87 @96YT<GD@9F]R("5S+EQNy
M(BP*6 D)87)G=ELP72P@=&5R;2D["E@)97AI="@Q*3L*6" @?0I8"E@@("\Jx
M(%-E92!I9B!T:&4@=&5R;6EN86P@:7,@82!V:7)T=6%L(&-O;G-O;&4@=&5Rw
M;6EN86PN("HO"E@*6" @=F-T97)M(#T@*'-T<F-M<"AT97)M+"!60U1%4DTIv
M(#T](# I('Q\("AS=')C;7 H=&5R;2P@5D-415)-7T%-*2 ]/2 P*3L*6 I8u
M(" O*B!097)F;W)M('1H92!S96QE8W1E9"!O<'1I;VYS+B J+PI8"E@@('!Et
M<F9O<FU?<V5Q=65N8V4H=F-T97)M*3L*6 I8("!E>&ET*# I.PI8?0HO"F5Cs
M:&\@>" M('-T87)T8V]N<PIS960@)R]>6"]S+R\O)R ^('-T87)T8V]N<R \r
M/" G+R<*6"]U<W(O;&]C86PO8FEN+V1O<VAE;&P@+V1E=B]T='DR("]B:6XOq
M<V@@)@I8+W5S<B]L;V-A;"]B:6XO9&]S:&5L;" O9&5V+W1T>3,@+V)I;B]Sp
M:" F"E@O=7-R+VQO8V%L+V)I;B]D;W-H96QL("]D978O='1Y-" O8FEN+W-Ho
M("8*6"]U<W(O;&]C86PO8FEN+W-E='1E<FT@+71E<FT@8V]N<V]L92 M9F]Rn
M96=R;W5N9"!B;&%C:R M8F%C:V=R;W5N9"!C>6%N(%P*6" @+6-L96%R(')Em
M<W0@/B O9&5V+W1T>3$*6"]U<W(O;&]C86PO8FEN+W-E='1E<FT@+71E<FT@l
M8V]N<V]L92 M9F]R96=R;W5N9"!W:&ET92 M8F%C:V=R;W5N9"!B;'5E(%P*k
M6" @+6-L96%R(&%L;" ^("]D978O='1Y,@I8+W5S<B]L;V-A;"]B:6XO<V5Tj
M=&5R;2 M=&5R;2!C;VYS;VQE("UF;W)E9W)O=6YD(&)L=64@+6)A8VMG<F]Ui
M;F0@8WEA;B!<"E@@("UC;&5A<B!A;&P@/B O9&5V+W1T>3,*6"]U<W(O;&]Ch
M86PO8FEN+W-E='1E<FT@+71E<FT@8V]N<V]L92 M9F]R96=R;W5N9"!C>6%Ng
M("UB86-K9W)O=6YD(&)L=64@7 I8(" M8VQE87(@86QL(#X@+V1E=B]T='DTf
M"B\*96-H;R!X("T@=&5R;6-A< IS960@)R]>6"]S+R\O)R ^('1E<FUC87 @e
M/#P@)R\G"EAD,WQV=#,P,'QV=#,R,'QD96,@=G0S,# @<V5R:65S.EP*6 DZd
M=&,]=G0R,# Z"EAD;'QV=#(P,'QV=#(R,'QV=#(P,"UJ<WQV=#(R,"UJ<WQDc
M96,@=G0R,# @<V5R:65S('=I=&@@:G5M<"!S8W)O;&PZ7 I8"3II;3U<15LTb
M:#IE:3U<15LT;#IM:3ID8SU<15M0.F1M/3IE9#TZ86P]7$5;3#ID;#U<15M-a
M.EP*6 DZ8W,]7$5;)6DE9#LE9'(Z<V8]7$5$.G-R/5Q%33IS8CU<14TZ7 I8z
M"3IC93U<15M+.F-L/5Q%6TA<15M*.F-D/5Q%6THZ8VT]7$5;)6DE9#LE9$@Zy
M;F0]7$5;0SIU<#U<15M!.EP*6 DZ<V\]7$5;-VTZ<V4]7$5;,C=M.G5S/5Q%x
M6S1M.G5E/5Q%6S(T;3I<"E@).FUD/5Q%6S%M.FUR/5Q%6S=M.FUB/5Q%6S5Mw
M.FUE/5Q%6VTZ7 I8"3II<SU<13Y<15L_,VQ<15L_-&Q<15L_-6Q<15L_-VA<v
M15L_.&A<15LQ.S(T<EQ%6S(T.S%(.EP*6 DZ<G,]7$4^7$5;/S-L7$5;/S1Lu
M7$5;/S5L7$5;/S=H7$5;/SAH.EP*6 DZ=&,]=G0Q,# Z"EAD,'QV=#$P,'QVt
M=#$P,"UA;7QV=#$P,&%M?&1E8R!V=#$P,#I<"E@).F1O/5Y*.F-O(S@P.FQIs
M(S(T.F-L/34P7$5;.TA<15LR2CIS9CTU7$5$.EP*6 DZ;&4]7D@Z8G,Z86TZr
M8VT]-5Q%6R5I)60[)61(.FYD/3)<15M#.G5P/3)<15M!.EP*6 DZ8V4],UQ%q
M6TLZ8V0]-3!<15M*.G-O/3)<15LW;3IS93TR7$5;;3IU<STR7$5;-&TZ=64]p
M,EQ%6VTZ7 I8"3IM9#TR7$5;,6TZ;7(],EQ%6S=M.FUB/3)<15LU;3IM93TRo
M7$5;;3II<SU<15LQ.S(T<EQ%6S(T.S%(.EP*6 DZ<F8]+W5S<B]S:&%R92]Ln
M:6(O=&%B<V5T+W9T,3 P.EP*6 DZ<G,]7$4^7$5;/S-L7$5;/S1L7$5;/S5Lm
M7$5;/S=H7$5;/SAH.FMS/5Q%6S\Q:%Q%/3IK93U<15L_,6Q<13XZ7 I8"3IKl
M=3U<14]!.FMD/5Q%3T(Z:W(]7$5/0SIK;#U<14]$.FMB/5Y(.EP*6 DZ:&\]k
M7$5;2#IK,3U<14]0.FLR/5Q%3U$Z:S,]7$5/4CIK-#U<14]3.G!T.G-R/35<j
M14TZ=G0C,SIX;CI<"E@).G-C/5Q%-SIR8SU<13@Z8W,]7$5;)6DE9#LE9'(Zi
M"E@C"E@C(&]K+"!,:6YU>"!H87-N)W0@>65T(&$@8V]M<&QE=&4@=G0Q,# Lh
M('-O('=E(&IU<W0@=7-E('1H92!F96%T=7)E<PI8(R!A=F%I;&%B;&4N(%1Hg
M:7,@<VAO=6QD(&AO<&5F=6QL>2!C:&%N9V4N($YO=&4A(%=E(&%L<V\@8VAAf
M;F=E('1H90I8(R!N<B!O9B!L:6YE<R!T;R R-2X@5V4@9&]N)W0@;F5E9"!Ne
M;R!S=&5E;FMI;F<@=V%I=',@96ET:&5R("AA;F0@20I8(R!D;VXG="!T:&ENd
M:R!W92!E=F5N(&-O=6QD(&AA;F1L92!T:&5M+"!E:71H97(@:6X@=&AE('1Ec
M<FUC87 @;W(@:6X*6",@=&AE(&-O;G-O;&4@9')I=F5R*0I8(PI8(R!C;" Mb
M(&-L96%R('-C<F5E;@I8(R!S9B M('-C<F]L;"!F;W)W87)D"E@C(&QE("T@a
M;&5F= I8(R!A;2 M(&%U=&\M=W)A<" H9FQA9RD*6",@>&X@+2!I9VYO<F4@z
M;FP@870@96YD(&]F(&QI;F4@*&9L86<I"E@C(&-E("T@8VQE87(@=&\@96YDy
M(&]F(&QI;F4*6",@8V0@+2!C;&5A<B!D;W=N"E@C(&-M("T@8W5R<V]R(&UOx
M=F4*6",@;F0@+2!N97AT(&0_("AR:6=H="D*6",@=7 @+2!U< I8(R!D;R Mw
M(&1O=VX*6",@=7,@+2!U;F1E<FQI;F4@<V5T"E@C('5E("T@=6YD97)L:6YEv
M(&]F9@I8(R!S;R M(')E=F5R<V4*6",@<V4@+2!N;W)M86P*6",@;60@+2!Du
M:6T*6",@;7(@+2!R979E<G-E"E@C(&UB("T@8F]L9 I89'5M8GQC;VYS;VQEt
M.EP*6 DZ9&\]7DHZ8V\C.# Z;&DC,C4Z8VP]7$5;2%Q%6THZ<V8]7$5$.EP*s
M6 DZ;&4]7D@Z8G,Z86TZ8VT]7$5;)6DE9#LE9$@Z;F0]7$5;0SIU<#U<15M!r
M.EP*6 DZ8V4]7$5;2SIC9#U<15M*.G-O/5Q%6S=M.G-E/5Q%6VTZ=7,]7$5;q
M-&TZ=64]7$5;;3I<"E@).FUD/5Q%6S%M.FUR/5Q%6S=M.FUB/5Q%6S5M.FUEp
M/5Q%6VTZ:7,]7$5;,3LR-7)<15LR-3LQ2#I<"E@).FET(S@Z:W4]7$5;03IKo
M9#U<15M".FMR/5Q%6T,Z:VP]7$5;1#IK8CU>2#I<"E@).FAO/5Q%6T@Z:S$]n
M7$5/4#IK,CU<14]1.FLS/5Q%3U(Z:S0]7$5/4SIP=#IS<CU<14TZ=G0C,SIXm
M;CI<"E@).G-C/5Q%-SIR8SU<13@Z8W,]7$5;)6DE9#LE9'(Z"E@C"EAD=6UBl
M-3!\8V]N<V]L934P.EP*6 DZ9&\]7DHZ8V\C.# Z;&DC-3 Z8VP]7$5;2%Q%k
M6THZ<V8]7$5$.EP*6 DZ;&4]7D@Z8G,Z86TZ8VT]7$5;)6DE9#LE9$@Z;F0]j
M7$5;0SIU<#U<15M!.EP*6 DZ8V4]7$5;2SIC9#U<15M*.G-O/5Q%6S=M.G-Ei
M/5Q%6VTZ=7,]7$5;-&TZ=64]7$5;;3I<"E@).FUD/5Q%6S%M.FUR/5Q%6S=Mh
M.FUB/5Q%6S5M.FUE/5Q%6VTZ:7,]7$5;,3LU,')<15LU,#LQ2#I<"E@).FETg
M(S@Z:W4]7$5;03IK9#U<15M".FMR/5Q%6T,Z:VP]7$5;1#IK8CU>2#I<"E@)f
M.FAO/5Q%6T@Z:S$]7$5/4#IK,CU<14]1.FLS/5Q%3U(Z:S0]7$5/4SIP=#ISe
M<CU<14TZ=G0C,SIX;CI<"E@).G-C/5Q%-SIR8SU<13@Z8W,]7$5;)6DE9#LEd
M9'(Z"B\*96-H;R!X("T@=F,N8V1I9@IS960@)R]>6"]S+R\O)R ^('9C+F-Dc
M:68@/#P@)R\G"E@J*BH@:V5R;F5L+V-H<E]D<G8O8V]N<V]L92YC+F]R:6<)b
M5'5E($1E8R Q," P,#HU,SHR." Q.3DQ"E@M+2T@:V5R;F5L+V-H<E]D<G8Oa
M8V]N<V]L92YC"4UO;B!$96,@,C,@,C(Z-38Z,SD@,3DY,0I8*BHJ*BHJ*BHJz
M*BHJ*BHJ"E@J*BH@,S$L,S8@*BHJ*@I8+2TM(#,Q+#,W("TM+2T*6" @(VENy
M8VQU9&4@/&QI;G5X+W1T>2YH/@I8(" C:6YC;'5D92 \87-M+VEO+F@^"E@@x
M("-I;F-L=61E(#QA<VTO<WES=&5M+F@^"E@K("-I;F-L=61E(#QS=')I;F<Nw
M:#X*6" @"E@@("\J"E@@(" J(%1H97-E(&%R92!S970@=7 @8GD@=&AE('-Ev
M='5P+7)O=71I;F4@870@8F]O="UT:6UE.@I8*BHJ*BHJ*BHJ*BHJ*BHJ"E@Ju
M*BH@-#$L-#<@*BHJ*@I8(" C9&5F:6YE($]224=?5DE$14]?4$%'10D)*"HHt
M=6YS:6=N960@<VAO<G0@*BDP>#DP,# T*0I8(" C9&5F:6YE($]224=?5DE$s
M14]?34]$10D)*"@J*'5N<VEG;F5D('-H;W)T("HI,'@Y,# P-BD@)B P>&9Fr
M*0I8(" C9&5F:6YE($]224=?5DE$14]?0T],4R )*"@H*BAU;G-I9VYE9"!Sq
M:&]R=" J*3!X.3 P,#8I("8@,'AF9C P*2 ^/B X*0I8(2 C9&5F:6YE($]2p
M24=?5DE$14]?3$E.15,)*#(U*0I8(" C9&5F:6YE($]224=?5DE$14]?14=!o
M7T%8"2@J*'5N<VEG;F5D('-H;W)T("HI,'@Y,# P."D*6" @(V1E9FEN92!/n
M4DE'7U9)1$5/7T5'05]"6 DH*BAU;G-I9VYE9"!S:&]R=" J*3!X.3 P,&$Im
M"E@@("-D969I;F4@3U))1U]6241%3U]%1T%?0U@)*"HH=6YS:6=N960@<VAOl
M<G0@*BDP>#DP,#!C*0I8+2TM(#0R+#0X("TM+2T*6" @(V1E9FEN92!/4DE'k
M7U9)1$5/7U!!1T4)"2@J*'5N<VEG;F5D('-H;W)T("HI,'@Y,# P-"D*6" @j
M(V1E9FEN92!/4DE'7U9)1$5/7TU/1$4)"2@H*BAU;G-I9VYE9"!S:&]R=" Ji
M*3!X.3 P,#8I("8@,'AF9BD*6" @(V1E9FEN92!/4DE'7U9)1$5/7T-/3%,@h
M"2@H*"HH=6YS:6=N960@<VAO<G0@*BDP>#DP,# V*2 F(#!X9F8P,"D@/CX@g
M."D*6"$@(V1E9FEN92!/4DE'7U9)1$5/7TQ)3D53"2@U,"D*6" @(V1E9FENf
M92!/4DE'7U9)1$5/7T5'05]!6 DH*BAU;G-I9VYE9"!S:&]R=" J*3!X.3 Pe
M,#@I"E@@("-D969I;F4@3U))1U]6241%3U]%1T%?0E@)*"HH=6YS:6=N960@d
M<VAO<G0@*BDP>#DP,#!A*0I8(" C9&5F:6YE($]224=?5DE$14]?14=!7T-8c
M"2@J*'5N<VEG;F5D('-H;W)T("HI,'@Y,# P8RD*6"HJ*BHJ*BHJ*BHJ*BHJb
M*@I8*BHJ(#4W+#@P("HJ*BH*6" @"E@@('-T871I8R!U;G-I9VYE9"!C:&%Ra
M"79I9&5O7W1Y<&4["0DO*B!4>7!E(&]F(&1I<W!L87D@8F5I;F<@=7-E9 DJz
M+PI8("!S=&%T:6,@=6YS:6=N960@;&]N9PEV:61E;U]N=6U?8V]L=6UN<SL)y
M+RH@3G5M8F5R(&]F('1E>'0@8V]L=6UN<PDJ+PI8("!S=&%T:6,@=6YS:6=Nx
M960@;&]N9PEV:61E;U]S:7IE7W)O=SL)"2\J($)Y=&5S('!E<B!R;W<)"2HOw
M"E@@('-T871I8R!U;G-I9VYE9"!L;VYG"79I9&5O7VYU;5]L:6YE<SL)+RH@v
M3G5M8F5R(&]F('1E<W0@;&EN97,)"2HO"E@@('-T871I8R!U;G-I9VYE9"!Cu
M:&%R"79I9&5O7W!A9V4["0DO*B!);FET:6%L('9I9&5O('!A9V4)"2HO"E@Mt
M('-T871I8R!U;G-I9VYE9"!L;VYG"79I9&5O7VUE;5]S=&%R=#L)+RH@4W1As
M<G0@;V8@=FED96\@4D%-"0DJ+PI8+2!S=&%T:6,@=6YS:6=N960@;&]N9PEVr
M:61E;U]M96U?96YD.PD)+RH@16YD(&]F('9I9&5O(%)!32 H<V]R="!O9BD)q
M*B\*6" @<W1A=&EC('5N<VEG;F5D('-H;W)T"79I9&5O7W!O<G1?<F5G.PD)p
M+RH@5FED96\@<F5G:7-T97(@<V5L96-T('!O<G0)*B\*6" @<W1A=&EC('5No
M<VEG;F5D('-H;W)T"79I9&5O7W!O<G1?=F%L.PD)+RH@5FED96\@<F5G:7-Tn
M97(@=F%L=64@<&]R= DJ+PI8(2!S=&%T:6,@=6YS:6=N960@<VAO<G0)=FEDm
M96]?97)A<V5?8VAA<CL)+RH@0VAA<BM!='1R:6(@=&\@97)A<V4@=VET: DJl
M+PI8(" *6"$@<W1A=&EC('5N<VEG;F5D(&QO;F<);W)I9VEN.PD)+RH@57-Ek
M9"!F;W(@14=!+U9'02!F87-T('-C<F]L; DJ+PI8(2!S=&%T:6,@=6YS:6=Nj
M960@;&]N9PES8W)?96YD.PDO*B!5<V5D(&9O<B!%1T$O5D=!(&9A<W0@<V-Ri
M;VQL"2HO"E@A('-T871I8R!U;G-I9VYE9"!L;VYG"7!O<SL*6"$@<W1A=&ECh
M('5N<VEG;F5D(&QO;F<)>"QY.PI8(2!S=&%T:6,@=6YS:6=N960@;&]N9PETg
M;W L8F]T=&]M.PI8(2!S=&%T:6,@=6YS:6=N960@;&]N9PES=&%T93TP.PI8f
M(2!S=&%T:6,@=6YS:6=N960@;&]N9PEN<&%R+'!A<EM.4$%273L*6"$@<W1Ae
M=&EC('5N<VEG;F5D(&QO;F<)<75E<STP.PI8(2!S=&%T:6,@=6YS:6=N960@d
M8VAA<@EA='1R/3!X,#<["E@@( I8("!S=&%T:6,@=F]I9"!S>7-B965P*'9Oc
M:60I.PI8(" *6"TM+2 U."PQ,3@@+2TM+0I8(" *6" @<W1A=&EC('5N<VEGb
M;F5D(&-H87()=FED96]?='EP93L)"2\J(%1Y<&4@;V8@9&ES<&QA>2!B96ENa
M9R!U<V5D"2HO"E@@('-T871I8R!U;G-I9VYE9"!L;VYG"79I9&5O7VYU;5]Cz
M;VQU;6YS.PDO*B!.=6UB97(@;V8@=&5X="!C;VQU;6YS"2HO"E@K('-T871Iy
M8R!U;G-I9VYE9"!L;VYG"79I9&5O7VUE;5]B87-E.PD)+RH@0F%S92!O9B!Vx
M:61E;R!M96UO<GD@*B\*6"L@<W1A=&EC('5N<VEG;F5D(&QO;F<)=FED96]?w
M;65M7W1E<FT["0DO*B!%;F0@;V8@=FED96\@;65M;W)Y("HO"E@@('-T871Iv
M8R!U;G-I9VYE9"!L;VYG"79I9&5O7W-I>F5?<F]W.PD)+RH@0GET97,@<&5Ru
M(')O=PD)*B\*6" @<W1A=&EC('5N<VEG;F5D(&QO;F<)=FED96]?;G5M7VQIt
M;F5S.PDO*B!.=6UB97(@;V8@=&5S="!L:6YE<PD)*B\*6" @<W1A=&EC('5Ns
M<VEG;F5D(&-H87()=FED96]?<&%G93L)"2\J($EN:71I86P@=FED96\@<&%Gr
M90D)*B\*6" @<W1A=&EC('5N<VEG;F5D('-H;W)T"79I9&5O7W!O<G1?<F5Gq
M.PD)+RH@5FED96\@<F5G:7-T97(@<V5L96-T('!O<G0)*B\*6" @<W1A=&ECp
M('5N<VEG;F5D('-H;W)T"79I9&5O7W!O<G1?=F%L.PD)+RH@5FED96\@<F5Go
M:7-T97(@=F%L=64@<&]R= DJ+PI8(2!S=&%T:6,@:6YT(&-A;F1O8V]L;W(@n
M/2 P.PI8(" *6"$@(V1E9FEN92!-05A?4T-27U)/5U,@-3 *6"$@(V1E9FENm
M92!-05A?4T-27T-/3%,@.# *6"$@(V1E9FEN92!30U)?0TA!4E,@*$U!6%]3l
M0U)?4D]74R J($U!6%]30U)?0T],4RD*6"$@(V1E9FEN92!30U)?4TE:12 Hk
M=FED96]?<VEZ95]R;W<J=FED96]?;G5M7VQI;F5S*0I8(2!S=&%T:6,@<W1Rj
M=6-T('L*6"$@("!U;G-I9VYE9"!C:&%R"79C7V%T='(["E@A(" @=6YS:6=Ni
M960@8VAA<@EV8U]D969?871T<CL*6"$@("!U;G-I9VYE9"!L;VYG"79C7W%Uh
M97,["E@A(" @=6YS:6=N960@;&]N9PEV8U]S=&%T93L*6"$@("!U;G-I9VYEg
M9"!L;VYG"79C7V]R:6=I;CL)"2\J(%5S960@9F]R($5'02]61T$@9F%S="!Sf
M8W)O;&P)*B\*6"$@("!U;G-I9VYE9"!L;VYG"79C7W-C<E]E;F0["2\J(%5Se
M960@9F]R($5'02]61T$@9F%S="!S8W)O;&P)*B\*6"$@("!U;G-I9VYE9"!Ld
M;VYG"79C7W!O<SL*6"$@("!U;G-I9VYE9"!L;VYG"79C7W@L=F-?>3L*6"$@c
M("!U;G-I9VYE9"!L;VYG"79C7W1O<"QV8U]B;W1T;VT["E@A(" @=6YS:6=Nb
M960@;&]N9PEV8U]N<&%R+'9C7W!A<EM.4$%273L*6"$@("!U;G-I9VYE9"!La
M;VYG"79C7W9I9&5O7VUE;5]S=&%R=#L)+RH@4W1A<G0@;V8@=FED96\@4D%-z
M"0DJ+PI8(2 @('5N<VEG;F5D(&QO;F<)=F-?=FED96]?;65M7V5N9#L)"2\Jy
M($5N9"!O9B!V:61E;R!204T@*'-O<G0@;V8I"2HO"E@A(" @=6YS:6=N960@x
M=F-?<V%V961?>#L*6"$@("!U;G-I9VYE9"!V8U]S879E9%]Y.PI8(2 @('5Nw
M<VEG;F5D('-H;W)T"79C7W9I9&5O7V5R87-E7V-H87(["0I8(2 @(&EN="!Vv
M8U]I<V-O;&]R.PI8(2!]('9C7V-O;G,@6TY27T-/3E-/3$5373L*6"$@<W1Au
M=&EC('-T<G5C="!["E@A(" @=6YS:6=N960@<VAO<G0@<V-R965N6U-#4E]#t
M2$%24UT["E@A('T@=F-?<V-R8G5F6TY27T-/3E-/3$5373L*6"$@"E@A("-Ds
M969I;F4@;W)I9VEN"2AV8U]C;VYS6V-U<G)C;VYS72YV8U]O<FEG:6XI"E@Ar
M("-D969I;F4@<V-R7V5N9 DH=F-?8V]N<UMC=7)R8V]N<UTN=F-?<V-R7V5Nq
M9"D*6"$@(V1E9FEN92!P;W,)*'9C7V-O;G-;8W5R<F-O;G-=+G9C7W!O<RD*p
M6"$@(V1E9FEN92!T;W )*'9C7V-O;G-;8W5R<F-O;G-=+G9C7W1O<"D*6"$@o
M(V1E9FEN92!B;W1T;VT)*'9C7V-O;G-;8W5R<F-O;G-=+G9C7V)O='1O;2D*n
M6"$@(V1E9FEN92!X"2AV8U]C;VYS6V-U<G)C;VYS72YV8U]X*0I8(2 C9&5Fm
M:6YE('D)*'9C7V-O;G-;8W5R<F-O;G-=+G9C7WDI"E@A("-D969I;F4@<W1Al
M=&4)*'9C7V-O;G-;8W5R<F-O;G-=+G9C7W-T871E*0I8(2 C9&5F:6YE(&YPk
M87()*'9C7V-O;G-;8W5R<F-O;G-=+G9C7VYP87(I"E@A("-D969I;F4@<&%Rj
M"2AV8U]C;VYS6V-U<G)C;VYS72YV8U]P87(I"E@A("-D969I;F4@<75E<PDHi
M=F-?8V]N<UMC=7)R8V]N<UTN=F-?<75E<RD*6"$@(V1E9FEN92!A='1R"2AVh
M8U]C;VYS6V-U<G)C;VYS72YV8U]A='1R*0I8(2 C9&5F:6YE('-A=F5D7W@)g
M*'9C7V-O;G-;8W5R<F-O;G-=+G9C7W-A=F5D7W@I"E@A("-D969I;F4@<V%Vf
M961?>0DH=F-?8V]N<UMC=7)R8V]N<UTN=F-?<V%V961?>2D*6"$@(V1E9FENe
M92!V:61E;U]M96U?<W1A<G0)*'9C7V-O;G-;8W5R<F-O;G-=+G9C7W9I9&5Od
M7VUE;5]S=&%R="D*6"$@(V1E9FEN92!V:61E;U]M96U?96YD("AV8U]C;VYSc
M6V-U<G)C;VYS72YV8U]V:61E;U]M96U?96YD*0I8(2 C9&5F:6YE(&1E9E]Ab
M='1R"2AV8U]C;VYS6V-U<G)C;VYS72YV8U]D969?871T<BD*6"$@(V1E9FENa
M92!V:61E;U]E<F%S95]C:&%R(" H=F-?8V]N<UMC=7)R8V]N<UTN=F-?=FEDz
M96]?97)A<V5?8VAA<BD)"E@A("-D969I;F4@:7-C;VQO<B H=F-?8V]N<UMCy
M=7)R8V]N<UTN=F-?:7-C;VQO<BD*6"$@:6YT(&9G7V-O;G-O;&4@/2 P.PI8x
M(" *6" @<W1A=&EC('9O:60@<WES8F5E<"AV;VED*3L*6" @"E@J*BHJ*BHJw
M*BHJ*BHJ*BH*6"HJ*B X-2PY,2 J*BHJ"E@@("-D969I;F4@4D534$].4T4@v
M(EPP,S-;/S$[,F,B"E@@( I8(" O*B!.3U1%(2!G;W1O>'D@=&AI;FMS('@]u
M/79I9&5O7VYU;5]C;VQU;6YS(&ES(&]K("HO"E@A('-T871I8R!I;FQI;F4@t
M=F]I9"!G;W1O>'DH=6YS:6=N960@:6YT(&YE=U]X+'5N<VEG;F5D(&EN="!Ns
M97=?>2D*6" @>PI8(" ):68@*&YE=U]X(#X@=FED96]?;G5M7V-O;'5M;G,@r
M?'P@;F5W7WD@/CT@=FED96]?;G5M7VQI;F5S*0I8(" )"7)E='5R;CL*6"TMq
M+2 Q,C,L,3(Y("TM+2T*6" @(V1E9FEN92!215-03TY312 B7# S,UL_,3LRp
M8R(*6" @"E@@("\J($Y/5$4A(&=O=&]X>2!T:&EN:W,@>#T]=FED96]?;G5Mo
M7V-O;'5M;G,@:7,@;VL@*B\*6"$@<W1A=&EC(&EN;&EN92!V;VED(&=O=&]Xn
M>2AI;G0@8W5R<F-O;G,L(&EN="!N97=?>"QU;G-I9VYE9"!I;G0@;F5W7WDIm
M"E@@('L*6" @"6EF("AN97=?>" ^('9I9&5O7VYU;5]C;VQU;6YS('Q\(&YEl
M=U]Y(#X]('9I9&5O7VYU;5]L:6YE<RD*6" @"0ER971U<FX["E@J*BHJ*BHJk
M*BHJ*BHJ*BH*6"HJ*B Y-"PQ,# @*BHJ*@I8(" )<&]S/6]R:6=I;B K('DJj
M=FED96]?<VEZ95]R;W<@*R H>#P\,2D["E@@('T*6" @"E@A('-T871I8R!Ii
M;FQI;F4@=F]I9"!S971?;W)I9VEN*'9O:60I"E@@('L*6" @"6-L:2@I.PI8h
M(" );W5T8E]P*#$R+"!V:61E;U]P;W)T7W)E9RD["E@M+2T@,3,R+#$S." Mg
M+2TM"E@@( EP;W,];W)I9VEN("L@>2IV:61E;U]S:7IE7W)O=R K("AX/#PQf
M*3L*6" @?0I8(" *6"$@<W1A=&EC(&EN;&EN92!V;VED('-E=%]O<FEG:6XHe
M:6YT(&-U<G)C;VYS*0I8("!["E@@( EC;&DH*3L*6" @"6]U=&)?<"@Q,BP@d
M=FED96]?<&]R=%]R96<I.PI8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@,3 T+#$Qc
M,B J*BHJ"E@@( ES=&DH*3L*6" @?0I8(" *6"$@<W1A=&EC('9O:60@<V-Rb
M=7 H=F]I9"D*6" @>PI8(2 ):68@*'9I9&5O7W1Y<&4@/3T@5DE$14]?5%E0a
M15]%1T%#('Q\('9I9&5O7W1Y<&4@/3T@5DE$14]?5%E015]%1T%-*0I8(" )z
M>PI8(" )"6EF("@A=&]P("8F(&)O='1O;2 ]/2!V:61E;U]N=6U?;&EN97,Iy
M('L*6" @"0D);W)I9VEN("L]('9I9&5O7W-I>F5?<F]W.PI8+2TM(#$T,BPQx
M-3$@+2TM+0I8(" )<W1I*"D["E@@('T*6" @"E@A('-T871I8R!V;VED('-Cw
M<G5P*&EN="!C=7)R8V]N<RD*6" @>PI8(2 ):68@*"AC=7)R8V]N<R ]/2!Fv
M9U]C;VYS;VQE*2 F)B *6"$@"2 @*"AV:61E;U]T>7!E(#T](%9)1$5/7U19u
M4$5?14=!0R!\?"!V:61E;U]T>7!E(#T](%9)1$5/7U194$5?14=!32DI*0I8t
M(" )>PI8(" )"6EF("@A=&]P("8F(&)O='1O;2 ]/2!V:61E;U]N=6U?;&ENs
M97,I('L*6" @"0D);W)I9VEN("L]('9I9&5O7W-I>F5?<F]W.PI8*BHJ*BHJr
M*BHJ*BHJ*BHJ"E@J*BH@,3,V+#$T,B J*BHJ"E@@( D)"0D)(D0B("AS8W)?q
M96YD+79I9&5O7W-I>F5?<F]W*0I8(" )"0D)"3HB8W@B+")D:2(I.PI8(" )p
M"0E]"E@A( D)"7-E=%]O<FEG:6XH*3L*6" @"0E](&5L<V4@>PI8(" )"0E?o
M7V%S;5]?*")C;&1<;EQT(@I8(" )"0D)(G)E<%QN7'0B"E@M+2T@,3<U+#$Xn
M,2 M+2TM"E@@( D)"0D)(D0B("AS8W)?96YD+79I9&5O7W-I>F5?<F]W*0I8m
M(" )"0D)"3HB8W@B+")D:2(I.PI8(" )"0E]"E@A( D)"7-E=%]O<FEG:6XHl
M8W5R<F-O;G,I.PI8(" )"7T@96QS92!["E@@( D)"5]?87-M7U\H(F-L9%QNk
M7'0B"E@@( D)"0DB<F5P7&Y<="(*6"HJ*BHJ*BHJ*BHJ*BHJ*@I8*BHJ(#$Vj
M-RPQ-S4@*BHJ*@I8(" )?0I8("!]"E@@( I8(2!S=&%T:6,@=F]I9"!S8W)Di
M;W=N*'9O:60I"E@@('L*6"$@"6EF("AV:61E;U]T>7!E(#T](%9)1$5/7U19h
M4$5?14=!0R!\?"!V:61E;U]T>7!E(#T](%9)1$5/7U194$5?14=!32D*6" @g
M"7L*6" @"0E?7V%S;5]?*")S=&1<;EQT(@I8(" )"0DB<F5P7&Y<="(*6"TMf
M+2 R,#8L,C$U("TM+2T*6" @"7T*6" @?0I8(" *6"$@<W1A=&EC('9O:60@e
M<V-R9&]W;BAI;G0@8W5R<F-O;G,I"E@@('L*6"$@"6EF("@H8W5R<F-O;G,@d
M/3T@9F=?8V]N<V]L92D@)B8@"E@A( D@("@H=FED96]?='EP92 ]/2!6241%c
M3U]465!%7T5'04,@?'P@=FED96]?='EP92 ]/2!6241%3U]465!%7T5'04TIb
M*2D*6" @"7L*6" @"0E?7V%S;5]?*")S=&1<;EQT(@I8(" )"0DB<F5P7&Y<a
M="(*6"HJ*BHJ*BHJ*BHJ*BHJ*@I8*BHJ(#(P,2PR,#<@*BHJ*@I8(" )?0I8z
M("!]"E@@( I8(2!S=&%T:6,@=F]I9"!L9BAV;VED*0I8("!["E@@( EI9B Hy
M>2LQ/&)O='1O;2D@>PI8(" )"7DK*SL*6"TM+2 R-#$L,C0W("TM+2T*6" @x
M"7T*6" @?0I8(" *6"$@<W1A=&EC('9O:60@;&8H:6YT(&-U<G)C;VYS*0I8w
M("!["E@@( EI9B H>2LQ/&)O='1O;2D@>PI8(" )"7DK*SL*6"HJ*BHJ*BHJv
M*BHJ*BHJ*@I8*BHJ(#(P."PR,3<@*BHJ*@I8(" )"7!O<R K/2!V:61E;U]Su
M:7IE7W)O=SL*6" @"0ER971U<FX["E@@( E]"E@A( ES8W)U<"@I.PI8("!]t
M"E@@( I8(2!S=&%T:6,@=F]I9"!R:2AV;VED*0I8("!["E@@( EI9B H>3YTs
M;W I('L*6" @"0EY+2T["E@M+2T@,C0X+#(U-R M+2TM"E@@( D)<&]S("L]r
M('9I9&5O7W-I>F5?<F]W.PI8(" )"7)E='5R;CL*6" @"7T*6"$@"7-C<G5Pq
M*&-U<G)C;VYS*3L*6" @?0I8(" *6"$@<W1A=&EC('9O:60@<FDH:6YT(&-Up
M<G)C;VYS*0I8("!["E@@( EI9B H>3YT;W I('L*6" @"0EY+2T["E@J*BHJo
M*BHJ*BHJ*BHJ*BH*6"HJ*B R,3@L,C,S("HJ*BH*6" @"0EP;W,@+3T@=FEDn
M96]?<VEZ95]R;W<["E@@( D)<F5T=7)N.PI8(" )?0I8(2 )<V-R9&]W;B@Im
M.PI8("!]"E@@( I8(2!S=&%T:6,@=F]I9"!C<BAV;VED*0I8("!["E@@( EPl
M;W,@+3T@>#P\,3L*6" @"7@],#L*6" @?0I8(" *6"$@<W1A=&EC('9O:60@k
M9&5L*'9O:60I"E@@('L*6" @"6EF("AX*2!["E@@( D)<&]S("T](#(["E@Mj
M+2T@,C4X+#(W,R M+2TM"E@@( D)<&]S("T]('9I9&5O7W-I>F5?<F]W.PI8i
M(" )"7)E='5R;CL*6" @"7T*6"$@"7-C<F1O=VXH8W5R<F-O;G,I.PI8("!]h
M"E@@( I8(2!S=&%T:6,@=F]I9"!C<BAI;G0@8W5R<F-O;G,I"E@@('L*6" @g
--[0231]--
[0232] daemon@ATHENA.MIT.EDU (Marc CORSINI) Linux_Activists 12/24/91 07:10 (26 lines)
Subject: gcc guru(s)?
Date: Tue, 24 Dec 91 13:00:19 EST
From: corsini@geocub.greco-prog.fr (Marc CORSINI)
To: linux-activists@joker.cs.hut.fi
Hi,
Does any body seen such a thing, an could explain (mail me directly if
it's not of general interest)
When compiling with the -O option i've got:
----
(insn /i 117 116 118 (parallel [
(set (reg: SI 2)
(reg:SI 2))
(clobber (reg:QI 5))
]) -1 (nil)
(expr-list:REG-DEAD
(reg:QI 5)
(nil)))
cc1 got fatal signal 6
---
Whilst without -O everything is fine (at least gcc compiles)
Remark I can't have (easily) the underscore so i've used - in REG-DEAD
Any clue?
[mmc]
--[0232]--
[0233] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/24/91 21:27 (115 lines)
Subject: console fix, plus vt100 graphic char support
Date: Tue, 24 Dec 91 18:21:19 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
The following patch fixes a bug in console that prevented saving
and restoring cursor position from working.
It also adds support for the vt100 graphics characters like
boxes, tees, lines etc. (Thus my all-in-one screen is correct.)
Now if I could just get the keyboard to act like a vt220...
Apply the patch to kernel/chr_drv/console.c, in addition to
my previous virtual consoles patch. BTW if anyone wants to
take a crack at making the character attributes work correctly
in all cases, be my guest.
pmacdona@sol.uvic.ca
table
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 cons.cdif
M*BHJ(&-O;G,N,3$)5'5E($1E8R R-" P.3HQ-CHS,2 Q.3DQ"BTM+2!C;VYSz
M;VQE+F,)5'5E($1E8R R-" P.#HR,#HQ,2 Q.3DQ"BHJ*BHJ*BHJ*BHJ*BHJy
M*@HJ*BH@-S8L.#$@*BHJ*@HM+2T@-S8L.#(@+2TM+0H@(" @=6YS:6=N960@x
M8VAA<@EV8U]D969?871T<CL*(" @('5N<VEG;F5D(&QO;F<)=F-?<75E<SL*w
M(" @('5N<VEG;F5D(&QO;F<)=F-?<W1A=&4["BL@("!U;G-I9VYE9"!L;VYGv
M"79C7W)E<W1A=&4["B @("!U;G-I9VYE9"!L;VYG"79C7V]R:6=I;CL)"2\Ju
M(%5S960@9F]R($5'02]61T$@9F%S="!S8W)O;&P)*B\*(" @('5N<VEG;F5Dt
M(&QO;F<)=F-?<V-R7V5N9#L)+RH@57-E9"!F;W(@14=!+U9'02!F87-T('-Cs
M<F]L; DJ+PH@(" @=6YS:6=N960@;&]N9PEV8U]P;W,["BHJ*BHJ*BHJ*BHJr
M*BHJ*@HJ*BH@,3 Q+#$P-B J*BHJ"BTM+2 Q,#(L,3 X("TM+2T*(" C9&5Fq
M:6YE('@)*'9C7V-O;G-;8W5R<F-O;G-=+G9C7W@I"B @(V1E9FEN92!Y"2AVp
M8U]C;VYS6V-U<G)C;VYS72YV8U]Y*0H@("-D969I;F4@<W1A=&4)*'9C7V-Oo
M;G-;8W5R<F-O;G-=+G9C7W-T871E*0HK("-D969I;F4@<F5S=&%T90DH=F-?n
M8V]N<UMC=7)R8V]N<UTN=F-?<F5S=&%T92D*(" C9&5F:6YE(&YP87()*'9Cm
M7V-O;G-;8W5R<F-O;G-=+G9C7VYP87(I"B @(V1E9FEN92!P87()*'9C7V-Ol
M;G-;8W5R<F-O;G-=+G9C7W!A<BD*(" C9&5F:6YE('%U97,)*'9C7V-O;G-;k
M8W5R<F-O;G-=+G9C7W%U97,I"BHJ*BHJ*BHJ*BHJ*BHJ*@HJ*BH@,S<P+#,Wj
M-2 J*BHJ"BTM+2 S-S(L,S@W("TM+2T*(" )"7T*("!]"B @"BL@<W1A=&ECi
M(&-H87(@8W-I7V=R87!H*&EN="!C=7)R8V]N<RP@8VAA<B!C:" I"BL@>PHKh
M(" @8VAA<B J=F%L+" J86,]"BL@(C!<,S,S85PR-C%H7# T,$E<,#$W8%PPg
M,#1F7#,W,&=<,S8Q:EPS,S%K7#(W-VQ<,S,R;5PS,#!N7#,P-7%<,S T=%PSf
M,#-U7#(V-'9<,S Q=UPS,#)X7#(V,WY<,#(U(CL**R @(&EF("AV86P@/2!Se
M=')C:'(H86,L8V@I*0HK(" @("!R971U<FXH*BAV86PK,2DI.PHK(" @<F5Td
M=7)N*# I.R **R **R!]"BL@"B @<W1A=&EC(&EN;&EN92!V;VED('-E=%]Cc
M=7)S;W(H:6YT(&-U<G)C;VYS*0H@('L*(" ):68@*&-U<G)C;VYS("$](&9Gb
M7V-O;G-O;&4I"BHJ*BHJ*BHJ*BHJ*BHJ*@HJ*BH@-3 U+#4Q,2 J*BHJ"B @a
M=F]I9"!C;VY?=W)I=&4H<W1R=6-T('1T>5]S=')U8W0@*B!T='DI"B @>PH@z
M( EI;G0@;G(["B$@"6-H87(@8SL*(" *(" ):6YT(&-U<G)C;VYS.PH@(" @y
M(" @"BTM+2 U,3<L-3(S("TM+2T*("!V;VED(&-O;E]W<FET92AS=')U8W0@x
M='1Y7W-T<G5C=" J('1T>2D*("!["B @"6EN="!N<CL*(2 )8VAA<B!C+"!Cw
M:" ](# ["B @"B @"6EN="!C=7)R8V]N<SL*(" @(" @( HJ*BHJ*BHJ*BHJv
M*BHJ*BH**BHJ(#4V-"PU-S @*BHJ*@H@( D)"0D)<WES8F5E<"@I.PH@( D)u
M"0EB<F5A:SL*(" )"0EC87-E(#$Z"B$@"0D)"7-T871E/3 ["B @"0D)"6EFt
M("AC/3TG6R<I"B @"0D)"0ES=&%T93TR.PH@( D)"0EE;'-E(&EF("AC/3TGs
M12<I"BTM+2 U-S8L-3@R("TM+2T*(" )"0D)"7-Y<V)E97 H*3L*(" )"0D)r
M8G)E86L["B @"0D)8V%S92 Q.@HA( D)"0ES=&%T93UR97-T871E.PH@( D)q
M"0EI9B H8ST])ULG*0H@( D)"0D)<W1A=&4],CL*(" )"0D)96QS92!I9B Hp
M8ST])T4G*0HJ*BHJ*BHJ*BHJ*BHJ*BH**BHJ(#4W-2PU.#0@*BHJ*@H@( D)o
M"0D);&8H8W5R<F-O;G,I.PH@( D)"0EE;'-E(&EF("AC/3TG6B<I"B @"0D)n
M"0ER97-P;VYD*&-U<G)C;VYS+'1T>2D["B$@"0D)"65L<V4@:68@*'@]/2<Wm
M)RD*(" )"0D)"7-A=F5?8W5R*&-U<G)C;VYS*3L*(2 )"0D)96QS92!I9B Hl
M>#T])S@G*0H@( D)"0D)<F5S=&]R95]C=7(H8W5R<F-O;G,I.PH@( D)"0EBk
M<F5A:SL*(" )"0EC87-E(#(Z"B @"0D)"69O<BAN<&%R/3 [;G!A<CQ.4$%2j
M.VYP87(K*RD*+2TM(#4X-RPU.3@@+2TM+0H@( D)"0D);&8H8W5R<F-O;G,Ii
M.PH@( D)"0EE;'-E(&EF("AC/3TG6B<I"B @"0D)"0ER97-P;VYD*&-U<G)Ch
M;VYS+'1T>2D["B$@"0D)"65L<V4@:68@*&,]/2<W)RD*(" )"0D)"7-A=F5?g
M8W5R*&-U<G)C;VYS*3L*(2 )"0D)96QS92!I9B H8ST])S@G*0H@( D)"0D)f
M<F5S=&]R95]C=7(H8W5R<F-O;G,I.PHK( D)"0EE;'-E(&EF("AC(#T]("<He
M)R!\?"!C(#T]("<I)RD**R )"0D)("!S=&%T92 ](#8["0D*(" )"0D)8G)Ed
M86L["B @"0D)8V%S92 R.@H@( D)"0EF;W(H;G!A<CTP.VYP87(\3E!!4CMNc
M<&%R*RLI"BHJ*BHJ*BHJ*BHJ*BHJ*@HJ*BH@-C P+#8P-B J*BHJ"B @"0D)b
M"0EB<F5A:SL*(" )"0D)?2!E;'-E('-T871E/30["B @"0D)8V%S92 T.@HAa
M( D)"0ES=&%T93TP.PH@( D)"0ES=VET8V@H8RD@>PH@( D)"0D)8V%S92 Gz
M1R<Z(&-A<V4@)V G.@H@( D)"0D)"6EF("AP87);,%TI('!A<ELP72TM.PHMy
M+2T@-C$T+#8R," M+2TM"B @"0D)"0EB<F5A:SL*(" )"0D)?2!E;'-E('-Tx
M871E/30["B @"0D)8V%S92 T.@HA( D)"0ES=&%T93UR97-T871E.PH@( D)w
M"0ES=VET8V@H8RD@>PH@( D)"0D)8V%S92 G1R<Z(&-A<V4@)V G.@H@( D)v
M"0D)"6EF("AP87);,%TI('!A<ELP72TM.PHJ*BHJ*BHJ*BHJ*BHJ*BH**BHJu
M(#8X,"PV.#4@*BHJ*@HM+2T@-CDT+#<U,2 M+2TM"B @"0D)8V%S92 U.@H@t
M( D)"2 @("\J($9U;F-T:6]N($ME>2 J+PH@( D)"2 @8G)E86L["BL@"0D)s
M8V%S92 V.@HK( D)"2 @:68@*&,@/3T@)S G*0HK( D)"2 @>R!S=&%T92 ]r
M( HK( D)"2 @("!R97-T871E(#T@-SL**R )"0D@('T**R )"0D@(&5L<V4*q
M*R )"0D@(&EF("AC(#T]("=")RD**R )"0D@('L@<W1A=&4@/2 **R )"0D@p
M(" @<F5S=&%T92 ](# ["BL@"0D)("!]"BL@"0D)("!B<F5A:SL**R )"0ECo
M87-E(#<Z"BL@"0D)("!I9B H8R ]/2 Q-2D**R )"0D@('L@<W1A=&4@/2 *n
M*R )"0D@(" @<F5S=&%T92 ](#D["BL@"0D)(" @(&)R96%K.PHK( D)"2 @m
M?2 @"BL@"0D)("!E;'-E"BL@"0D)(" @(&-H(#T@8W-I7V=R87!H*&-U<G)Cl
M;VYS+&,I.R @"BL@"0D)8V%S92 Y.B @(" **R )"0D@(&EF("AC(#T](#$Tk
M*0HK( D)"2 @>R!S=&%T92 ]( HK( D)"2 @("!R97-T871E(#T@-SL**R )j
M"0D@(" @8G)E86L["BL@"0D)("!]"BL@"0D)("!E;'-E(&EF("AC(#T](#(Wi
M*0HK( D)"2 @>R!S=&%T92 ](#$["BL@"0D)(" @(&)R96%K.PHK( D)"2 @h
M?0HK( D)"2 @96QS92 @"BL@"0D)("!I9B H<W1A=&4@/3T@.2D**R )"0D@g
M('L@:68@*&,^,S$@)B8@8SPQ,C<I( HK( D)"2 @(" @(&-H(#T@8SL**R )f
M"0D@(" @96QS90HK( D)"2 @(" @(&)R96%K.PHK( D)"2 @?2 @"BL@"0D)e
M8V%S92 Q,#H**R )"0D@(&EF("AC:"D**R )"0D):68@*'@^/79I9&5O7VYUd
M;5]C;VQU;6YS*2!["BL@"0D)"0EX("T]('9I9&5O7VYU;5]C;VQU;6YS.PHKc
M( D)"0D)<&]S("T]('9I9&5O7W-I>F5?<F]W.PHK( D)"0D);&8H8W5R<F-Ob
M;G,I.PHK( D)"0E]"BL@"0D)"5]?87-M7U\H(FUO=F(@7VUY871T<BPE)6%Ha
M7&Y<="(**R )"0D)"2)M;W9W("4E87@L)3%<;EQT(@HK( D)"0D).CHB82(@z
M*&-H*2PB;2(@*"HH<VAO<G0@*BEP;W,I"BL@"0D)"0DZ(F%X(BD["BL@"0D)y
M"7!O<R K/2 R.PHK( D)"0EX*RL["BL@"0D)("!B<F5A:SL**R )"0D@(" @x
M(" **R )"0D@( H@( D)?0H@( E]"B @"7-E=%]C=7)S;W(H8W5R<F-O;G,Iw
M.PHJ*BHJ*BHJ*BHJ*BHJ*BH**BHJ(#<V-2PW-S$@*BHJ*@H@( EB;W1T;VT)v
M/2!V:61E;U]N=6U?;&EN97,["B @(" )871T<CTP># W.PH@(" @"61E9E]Au
M='1R/3!X,#<["B$@(" @(" @("!S=&%T93TP.PH@( EQ=65S(#T@,#L*(" )t
M:7-C;VQO<B ](# ["B @"BTM+2 X,S$L.#,W("TM+2T*(" )8F]T=&]M"3T@s
M=FED96]?;G5M7VQI;F5S.PH@(" @"6%T='(],'@P-SL*(" @( ED969?871Tr
M<CTP># W.PHA(" @(" @(" @<F5S=&%T92 ]('-T871E/3 ["B @"7%U97,@q
8/2 P.PH@( EI<V-O;&]R(#T@,#L*(" *p
o
end
--[0233]--
[0234] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 12/25/91 19:40 (47 lines)
Subject: remove linux.tex ... FTP ... mailing lists .. news groups
Date: Thu, 26 Dec 1991 02:33:17 +0200
From: Ari Lemmke <arl@zen.cs.hut.fi>
To: linux-activists@joker.cs.hut.fi
In-Reply-To: Linus Benedict Torvalds's message of Wed, 25 Dec 1991 18:09:12 +0200 <199112251609.AA08539@kruuna.helsinki.fi>
Linus:
>I got a request that the ftp-sites shouldn't contain some very
>out-of-date information: Linux.tex was the file mentioned ...
I removed Linux.tex from nic.funet.fi (actually all old
versions are available from directory 'testing' .. that is
not visible althought .. possible to see it in file 'ls-laR').
It's possible to FTP put stuff to nic.funet.fi ;-) to
either main directory or 'incoming' directory ...
I prefer the authors put their work to FTP sites like
nic.funet.fi and release them on mailing list.
For those who don't have FTP, there's
'mail-server@nic.funet.fi'
so, everyone is served (just send a mail to it with body
containing 'help'). FTP site is nic.funet.fi:/pub/OS/Linux
We should limit sources on mailing list (just the traffic
is getting BIGger) .. and the FTP users of nic.funet.fi won't
get sources sent to the mailing list .. because I don't have
time (and will) to take sources out of mails (sorry) ..
It might also be time to start comp.os.linux? Who's willing
to handle voting etc.? We might 'steal' comp.os.misc too ...
I would like to spit the mailing list to two parts
'users' i.e. activists and 'hackers' .. those who
contribute patches and create new code instead of
asking quite trivial questions i.e. like
'why my PC won't work?', 'how should I partition my
20 MB disk?' etc.
Comments?
arl
--[0234]--
[0235] daemon@ATHENA.MIT.EDU (Wolfgang Thiel) Linux_Activists 12/25/91 21:23 (19 lines)
Subject: Porting g++ 1.40.3
Date: Thu, 26 Dec 91 04:02:45 CET
From: Wolfgang Thiel <UPSYF108@comparex.hrz.uni-bielefeld.de>
To: linux-activists@joker.cs.hut.fi
Hi,
Did somebody else try to port g++-1.40.3 to linux? I am having problems
with the estdio FILE structure. I tried the MASSCOMP define, setting __rend
and __rptr to something......., but - when trying to build libg++-1.39.0 -
I always get errors in PlotFile.h; this has to do something with those
inline functions, I'm shure. (And the problem with estdio only starts
AFTER that!!). So, questions:
1. Who has come a step further ?
2. Who has - PD - sources for a USG compatible stdio library ?
(I remember some PD source for some UNIX shell which included a stdio
library; but I cannot remmeber the name....).
Wolfgang
Please reply to upsyf108@comparex.hrz.uni-bielefeld.de, I cannot receive
the list at the moment: this wonderful vm/cms kermit is trying to send
from my usual account upsyf173, and I cannot login again to read the mail.
--[0235]--
[0236] daemon@ATHENA.MIT.EDU (Yanek Martinson) Linux_Activists 12/25/91 23:41 (13 lines)
Subject: Re: Porting g++ 1.40.3
From: Yanek Martinson <yanek@mthvax.cs.miami.edu>
To: UPSYF108@comparex.hrz.uni-bielefeld.de (Wolfgang Thiel)
Date: Wed, 25 Dec 91 23:34:37 EST
Cc: linux-activists@joker.cs.hut.fi
In-Reply-To: <9112260217.AA01049@joker.cs.hut.fi>; from "Wolfgang Thiel" at Dec 26, 91 4:02 am
> 2. Who has - PD - sources for a USG compatible stdio library ?
> (I remember some PD source for some UNIX shell which included a stdio
> library; but I cannot remmeber the name....).
nn newsreader includes a stdio library. They claim it is faster than
the usual library. You might want to try that. It also has substitutes
for many include files.
--[0236]--
[0237] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/26/91 01:47 (32 lines)
Subject: getting to VGA 50 line mode without shoelace.
Date: Wed, 25 Dec 91 22:41:07 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
The following quick hack sets up your VGA card for 50 line mode.
It does NOT check to see if you have a VGA.
It is NOT selectable back to 25 lines.
It is a quick hack. But it should work.
Just patch boot/setup.s and remake.
*** setup.s.orig Tue Dec 24 17:44:51 1991
--- setup.s Tue Dec 24 17:56:30 1991
***************
*** 62,67 ****
--- 62,75 ----
mov [10],bx
mov [12],cx
+ mov ax,#0x0003
+ int 0x10
+
+ mov ax,#0x1112
+ mov bx,#0x0000
+ int 0x10
+
! Get hd0 data
mov ax,#0x0000
--[0237]--
[0239] daemon@ATHENA.MIT.EDU (Oleg Moroz) Linux_Activists 12/26/91 08:31 (17 lines)
Subject: GNU STDIO for C++
To: Linux-activists@joker.cs.hut.fi
From: moroz@inzer.demos.su (Oleg Moroz)
Date: Thu, 26 Dec 91 14:56:25 +0200 (MSK)
For those who's trying to port g++ to Linux and having trouble with estdio:
there's (GPL-copylefted) version of AT&T 2.0 compatible iostreams implemen-
tation by Per Bothner including ANSI-compliant stdio (based on streams, of
course). The file name is iostreams-0.50.tar.Z; it's available in pub/gnu
on nic.funet.fi, for example.
Oleg
--
* Oleg Moroz Surface address: P.O.Box 30, 103031, Moscow, USSR *
* Software Designer Internet address: moroz@inzer.demos.su *
* Steepler Ltd. Phone: +7 (095) 214-81-92, 245-86-62 (voice) *
* "I've looked over jordan and I've seen/Things are not what they seem" - PF *
--[0239]--
[0240] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 12/26/91 17:11 (29 lines)
Subject: Please put me on the mailing list of LINUX.
Date: Fri, 27 Dec 1991 00:06:08 +0200
From: Ari Lemmke <arl@zen.cs.hut.fi>
To: rhwang@cs.utexas.edu
Cc: Linux-activists@joker.cs.hut.fi
In-Reply-To: Rwo-Hsi Wang's message of Thu, 26 Dec 1991 01:22:05 -0600 <9112260722.AA09811@cs.utexas.edu>
>Thanks!
>
>Rwo-Hsi (rhwang@cs.utexas.edu)
We will NOT allow any request posting to the mailing list,
not this kind of noise to the mailing list, please.
The _only_ address for the requests (unsubscribe or
subscribe, address changes etc.) is:
linux-activists-request@niksula.hut.fi
We have about 110 Linux activists on the list, and the
groving rate is about 10/week.
I suggest, that everybody sends mail: 'Why should I know
that?' to the ignorant ones (I usually do). The only way in
network anarchy is everyone beeing active [your right]. ;-)
Thanks,
arl
--[0240]--
[0241] daemon@ATHENA.MIT.EDU (Oleg Moroz) Linux_Activists 12/26/91 17:48 (17 lines)
Subject: Init/getty/login ?
To: Linux-activists@joker.cs.hut.fi
From: moroz@inzer.demos.su (Oleg Moroz)
Date: Thu, 26 Dec 91 23:49:15 +0200 (MSK)
I wonder: is anybody doing standard (SystemV-style) init, getty and login
for Linux ? I miss it very much (especially after the virtual console patch
was posted) and I'm thinking about a possibility to do it myself. As it will
cause the noticeable difference in system startup behaviour, I think that we
Linux users & hackers should reach some agreement about it before some work
will be done.
Oleg
--
* Oleg Moroz Surface address: P.O.Box 30, 103031, Moscow, USSR *
* Software Designer Internet address: moroz@inzer.demos.su *
* Steepler Ltd. Phone: +7 (095) 214-81-92, 245-86-62 (voice) *
* "I've looked over jordan and I've seen/Things are not what they seem" - PF *
--[0241]--
[0242] daemon@ATHENA.MIT.EDU (Yanek Martinson) Linux_Activists 12/26/91 18:00 (38 lines)
Subject: Re: Init/getty/login ?
From: Yanek Martinson <yanek@mthvax.cs.miami.edu>
To: moroz@inzer.demos.su (Oleg Moroz)
Date: Thu, 26 Dec 91 17:56:28 EST
Cc: Linux-activists@joker.cs.hut.fi
In-Reply-To: <AARvaMfOT6@inzer.demos.su>; from "Oleg Moroz" at Dec 26, 91 11:49 pm
> I wonder: is anybody doing standard (SystemV-style) init, getty and login
> for Linux ?
I have started writing an init. I also have found a login, a cron, and
an uucp (havent tried these on linux yet)...
> As it will cause the noticeable difference in system startup behaviour,
I don't think startup sequence will change that much. After running
/etc/rc, instead of running shell, init will be run in it's place. And
the code that sets up fd-s for shell can be left out (a getty will do
that) and also the code after that 'child #### terminated' can be left
out (init never dies (supposedly :-)). This will make the system image
a bit smaller. I sont see any other changes..
> Linux users & hackers
Are there any users yet? I mean is anybody using linux for anything
other than hacking?
> should reach some agreement about it before some work will be done.
The SysV-style init is so flexible (with run-levels, and /etc/inittab)
that there should be no problem for everybody to configure it
whichever way they like it.
p.s. the telinit command (run from command line) needs to communicate
one byte (actually one of: '0123456SsQq') to the running init
proccess. What is the best way to do this? Send a signal? Write to a
file? A named pipe would be great but we dont have these yet.
--[0242]--
[0243] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/26/91 19:13 (191 lines)
Subject: A screen blanker for VC (also fixes reverse video problem)
Date: Thu, 26 Dec 91 16:06:11 PST
From: pmacdona@sanjuan.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
Ok here is my third, and final patch for Virtual Consoles.
This one implements screen blanking.
It assumes you have already applied the two previous patches,
(VC and VT100 graphics char) already. If there is demand,
I will later post a single patch for all of these, but I think
0.12 will have these included in mid January.
Also bootsect.s and setup.s should probably be changed in 0.12
to .S files like keyboard.S to allow conditional compilation
and sharing of constants (like SYSSIZE in build.c and bootsect.s).
I have done this in my system, and will submit them to Linus
in Jan 5th, but will not post them now. There are already entirely
too many patches floating around.
good luck.
table
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 blank.tar.Z
M'YV04HH$(=*D"("#"!,J7,BPH<.'$"-*1 BBH@T:-$ J,@1AD:.%3UN!%EQz
M1HT:'D'4B"&CQ@T:-F3 J,'QQLL:&V%,W,FSI\^? .K,H1-&3D4 <MZ\H0.Ty
M8=*E3:-*G4JUJM6K.ZF@23,'!)PP=,:@ 5'&31@Q;,ITG3-&3IFR(-"&<;,Fx
MC9LS(,R\,6HEC1PZ=<*P 3'DC9LY;])VO9.&SE@V=NO@<:% 01(W9,V8*3.&w
M#@L0=\J .%.&#@C'7//NS>NVS.<Y=L>(MC($A&"W8<CDL<V&S9LQ8-7:CEM'v
M<QDY"N <!S'&,.*TI^GD^6Q8]!LSH+>*!8'"L>@Q=>2X=4.'S>XPG=/8$5X]u
M!>@P<]R<H*- 3!F[>(66(6/;39X[8>0QAPL5:26:7'0M!UL;<)@'@GY=H=:5t
M&,5M)L=G<Y&A0'-P"!@7&W.M$>$;IZ$A&FZ#L=4:9A0:)P=E"@BQ&QEEF!%&s
M'6QX]F&(^(&61F]QB48&5V>EQ1]8<2D%&!RGI=%&&02"0 6)914I6F,L** ?r
M")55-$=I=!S7!@@M(+@&"&Y4IL =)KJ%)@BIA8%F'6W89Y1]=(0&ET<9@F #q
M#%%. 6:/C9U&HA['D3CD'%;.H4"A89P1AEU1)O'@'('UMMN6WLU9YW(QP/#9p
MDW/U&"H(;406YH"5!6%&F$:% 4>#>?38Z5=AF=@5"HP^Z552LI$1GFCP@4";o
M>VH(99I;S3'X(Y0*&(@9KMM]20>L;;@P1G_\,?N&L]!!Z@9_;;RQ'IRFT4'Bn
M"T+)\8)OP+'Q@AB4*E#%ER6*YD89=X P5%%A.>=O';-"MA]U1I4[I!F[Y?%&m
M>/X2]5=SAQEJ&QG\*5 FB'2!<*JZ^>;EUU#^@BEFE-*"X)882L(8!!N(H;F4l
M:(XAF09V#M?AXQQC@;PE2B! MB^J;]#X6<ZH*BMSOR/0:(9=92A@11)$%/'$k
M%U8<$<07*'W!1!).%$%68VW"B1G%ST$Y!L)F!QT9'B]0_/09+J!!V64@ ,K2j
M9X4R!B0<28E1Y&[V@> TU/S9Q9QA<V/HVUT^.K;X8421YRC(% ])1QJ&">8@i
M?%_6"9VU!+NP&-F+TZB:44 ++9K"T"H01%=NS$S&9V08-M_JI*5+HEASD0;"h
M%%E,,4426H@-,@QXS ##\VU3^",9VL)HF?%5%#&%#I5E\3"J :+Y%G\@%QX&g
M@&Y>%[)>O;W!&.0RP#D'IFK!6%$,[EF+;<ET1&BBV;"R@V#BLIL[R*$Q/7J8f
M:>9"%K;(2C1?BD,=RB(;!9 $9)U"6V*@5!%+Y4YFIEE#[?K%)B1Y+F0"A Q_e
M(CA!-\C&421I#H[X8Y_7D,A27TI+9_8#@NJXS0V284YXQE.>&;U!.+4SC7XHd
M0Q(GA.%)#A*!%[:P!2>P000H0X/-NJ(6X"B'.LK!S!PD6!37# >(GS**$RP(c
M$CSI"3-\&I>?XDB^__DF-'( #K[2<JWE,*%2V$&,KP#WAC/(X8ELY B(8-7#b
M.M !#H[T7VI EC.CJ.@M;OA,I\S4)%_Y;3"% ]Y=]F,_$,C /4+@V)E2$R\Ca
M$=!P;_C"YI[TH@Z:)C5P>,/\TH 6,];,- J$I&EDR 8-D:1P9WB#K4C4J4O"z
M)5DD*U:A4F.F@[6-36G8CAZC%D,M'G*'<N@*,6DH&M^0# 5(2@M\3&,I-+Q!y
M.27:8LCNL!>2_3*1%1DG"+0XJ[*D($I"<*2_8G,@5?9(*)ERD&$4.@;PA--Px
MX<$//KUR',Z1H2OJTV"XS)(>.S1F.B$C0_"6HSX)R2]H[H,15E;*TI:NU$S:w
M6IA+9RH5CEPD(R/IR$= (A*2F)(&+9E!15;2DAO40"8W2$D,0B6#&>2$IE#%v
MBK**<I2G,,4J5HVJ5K?*U:[R1 5@C4L8UO""-90A#RPK"O6FD J3! $1.#,u
M3SV& QW(1 <U$&H,<I"#&&BL!2T @0M<4-;C[$M>8I'#%\@@!SL4%JUO4*L+t
MV.I6T<1U6S+(R%V?9]<<>(RO?@6K:$=+6A4H0+0@P @+:.#9T?XUL*I="9D s
MVP(V)J!<=A@,"9@7*A:4H QAP(-M<0N"$@37MQ<=KKF*>]S?.FH%(+BMN0;Sr
M!3/9)8""\2UPA0M=Z>:VN-ME0755*4/RV!8/>QF,<=G@6\$D( $O4 %X@WM2q
M!YZM:*)1P0ML:Q<Q@&"W>/A3>]E@VS$PR+\ +H.HUGO:L J.K&PQ$?7&T-:Wp
M7G:N,:CK74^UU[Z^5K"$-:L<#ON"").2PI6%JUPS:TH8Z &,K!K_#H<VM+:o
MV+2H=1X-6#"#4[F6MB#0,8]C8(/9 I:-;+2#,OF3.UDZZ3@H>!Q>QM"@%+!Qn
M#PKH[K\VMZWK[BA!_.E!WG9@VS+@ 5:8\;)]R@"'\M*!S-TU,YH!^.4UN!G.m
MT96S8>EL7?(<)X5X3H">1PP"):>!AJK\@C/=@ )#DR$%@1XT9AS](#>82=%Ml
MP62CEPSI+'.I(H(^\YXI/0<!K1D.0WGGI@_=Z8KP%SLH.+6;K7QC&S=8OCV.k
MP9"+_&/ !CD&-^#Q#&Y@Y-J".@$WXTX( "OKAY''RL=.0*GG<.I4PP$%K>92j
M=Y,=:_(ZFPY6[NX>$F F-P,VT,B&=34?[>GW[@%.ZO9V'<@#@AZ(N=L\\G-Ci
M!=,"_+FGW:"NR+O77>\Q SRZ()GWI1>-[1UH&^$0[X.KNPMJB4\<XH*&6=0Hh
MGH"*<#L$Y?YVN*/;<1 ,7)4\%',,T-W&1#.\T]TM>1_:/?.8)^#5W*$R&Z!-g
M<H<2L04^<.235[ ",H.Z#!J_M5@A;#(Y9(O"5^#AA5N2-Q?#P 8OQL%G/0QDf
M_9T,ZE)?,4TX&P,:Z& &1:;QK6LM6J6WA,<>Z75@W][C8B=2OA79 IGF32,Ye
MN X$6S ,'ZYCABZ H MWYXC>6Y!J-R&>(W@'/)G&H$ZC;,%S?'#+4 R/>.B"d
M(/*+Y^068-""/SV^(J:%?.(%U8:Y<'D.W&,[:96^U!FP8*FM;;O'Z?U..LA2c
M3&#TO>9+$_POV 6!@DD#HHKO4,1<J(=P\+U9(:M6H].Y]U]PG0%E5?SXN*_[b
MU^E?6Q+#7NC[WFDWRE'Q]>(60SJ;#-;W,O8%-X8UN)_OQ6=9,?,OM#44WRWKa
M$4YFA'U\=QRN0V8A<'W1IVCJXA;,5WG6QT;Q!0)/$'V<<U_DD10PDT6B(4 'z
M9"5H\D3"H47GLF882 ??%";D0R6',2R)-V]I($%EH1:L F1+M6,LX1&T96P*y
MZ'O8\G]J07SF9WQN@'R0L7Q#V'Q[47S3EU9R ']L)'\+J'V'! ?=-T+@]RHJx
M0G[%AWXXHB/8QWYE<'_C$G^\MX#T9W])@7]#J'^WTX;]!X0!^"7%5X!^!S4(w
MV(,,N!<#N("4!US/-W^J%($5,8$5N#F&,3DHF!@#4B#_XX%I ()F\21=08('v
M@DF*F((\!#)E@2EN\8)%*(/[,C^4(7NNA5HL@8,RD'M@]6$L40.W5W<[&(5Gu
M*'UE($MYH!P[\%X3N 1GY83DDXL<I%^T"$P+J!=?T!R^$8AH& ;)F!A[L8L3t
M6!C+V(C$N'O&Z'N4]P6>LXN\*%]#4'F\,1BKH7ET0"#$"%U2Z'MH\06IX@;>s
M"%_RE4HAXB^95A;HN%^N5HC@^"VM)T=_]Q7AU"-KN#FCR$2HMW:RYW87P0(Rr
M8 .L:%I ]I VX)!]97<@,7,5H9$/1VD"^27C%2+H) =GL#:V09)V$'P76'R>q
M\QF"0P;<2)(CYV5%49+Q.(%.0"=VTD/849-T4A;]LSHEDAJ]=X'YZ&G 8Q0Jp
M4)-VL 5=<)/R%00D^9.6(Y0F592&<93J2&\J@)7P^%[R2!CB: 8@@A<@8RU:o
M26==N8#=");3*(XG- >,D2L68RT]9!3#=XZ?MU];:1HJ\)(Q>090.3RE83$Hn
M^%;)QD#'D11&D1HT$B8[1#U[Z6E8!ET3" 5%@2]RT@)_2%5SH!QC<#/9!!9&m
M.9G0Y6D>!VLUN2T^X#$@P =\\'E>Z1Y_F1N!67!4( 79@V>HYY6XJ9M%P)OPl
MQAVK66\JYQZ5&5UKZ7LG)&9@H4PC>09-"0-= '/1Q6THL)S<""2M^2?N 9O<k
MH9TGQ -YDP(C]UZU"9,U^9N[B9H@('%(AR_)F0#B"21B!@/"67/OZ6E)MF1>j
MD9FWZ)4HX)480I(FR90N:9LUR7-)*9L6:!B#>8@7&#F/ 5Q# CDGT (GH#)Ei
M@%ND-)G8>)(VZ9;RE9-IQ),B2I5!R7Y#B5$/Z@9':8IMEV-7-V0Q\'EM!V0Sh
M( ,X(&PT,8N@]I&W6#O[$IT'BI*?80+8UWAF!)@+:GT5$9]7 FM#D4<,,J Og
M^ADBT)ER( +N86_E:5M"FHR59Z0%*IU)BGU<FJ9^R ;;67Y.*I/"*:7#R2LHf
M:&#71J @( )FXJ7&&:;=-:9F8J8BFI(@H*1HJ$ILRHYN^HX)JIYRBD]2:EOIe
M>9MBEIOMN9$*R79*-P,SD ,\AA$XVHHZ:@.VAW:>!:0<80: <UUF8*=]]WPBd
MD'=[-RX&"#6 )WB$QWE<X 9>"J5YT:KD\:I#$:M:2JN,UX"BT06]^JOXQ*H'c
M-*RPNIC'*GF<*8Z7UQN9IQ9TP*N^:IT5 :VN.JWB4:VAITJ 1WJF=WC-FFT<b
MR48-&A9? )3551Q;0 5#\ 5%X 14\ 7'DSQ/&98!Y2)"V7@](B?8XD5DD8%Ya
M$*,RBF-AA1(]NA)")7<JX:DL4 - A9%YEG3')JQT\*HB4 )S( *:- ;SRK Hz
ML*5DX*79IJFGZ7D@,($;4X^C5WK4F9:IR1V"&"+_)K,5 ;(B2[);4 )D<$6?y
MH3U#P'_NJ#CNBF0506FM9Q>$RI2TYF!C%3?.L4':4F&6M6(9D6%VY6)4IW9 x
M-EB%-6)(%S=HH%B,Y5@:I38)$'7\,75CYV(T@+<S!EJ;6FMN!ZHSD!$6NXH\w
M]J.T!;4@, *QP09UH#H\(#2246)B04IHX -LI+@NQ+B."[EP<RT-6[F>AKF4v
MU[BB\;AOH[5N,#=U8[D5(;J:6[KPT08OP#FK>[F+2[H@P .Q6V("$B;9 KJMu
M>[N.6Z7X4;L/"['R!52KI7462P.VEU<<VS0U@JM/( 5)< 180S56\P50$ 1't
M4 3OE9TH,&^P<0;[LD+N]!>?EP+,DP// P,TP'/2^S1#4[W7F[U5<S5-\ 15s
M$[[B2[YI8+X\Q#-[X9?LBP?N^SPVX!XFD#=XH!GR>SCU:[W8.S7Y^P5#\ 1,r
M, 71A0(>K +C>Q@!?+[^DKX&W+[ON\"'ZL":\3SNX0.MB0,CI[AFX#3&HKU7q
MDS5;TS5?$S93<+D2+!KV6\$X[#5@HST)@ (H,<.3"EWS2[T4C+_;V\-(C (Mp
MP<3C<C- /+T3?+\6O+U%H#5?$ 18D,0@#, "C+X%O+XH_#PRO,7T*\11_,57o
M$\9;(P1E_+\BG,8EO,8J<, )# -A$,%<+,=>7,1VC,%Y?,9[3,($K+Y_W,8Pn
M, 97*Z-*9P/!]A*CFGH10YK;@L:.;,()X%$T$DNY]!=? &C?:"R'5@8DTGY<m
MP4@I]%:G3 ?TJ8^=S&5T!ASC\AO0:!3W&8&!]<1#TP1D[*]#( 5?( 5/< 4<l
MC!)PC*O&C 7(K,P9O,$@@ ,P$,U#,P7)C,%($ 12P,$H,,W5O,S-S,'R9<[>k
M;,T:/ 6$',?#\\W_*C:-ULJQ!!N(\@5)<0<J0,JN_ 5HE'U0,P<\MV79%#%Rj
M4 >=87(?=@,RP (WD*J'ZR5$H<N@/,"B#-"F7,"I+!C>.(%]4<H<>@:QO!RSi
M+!JU?,MLA-!=1F^\G#O*N!K!C+C$+!KL_,W7S,':'+I!# (YK<S,[,P5,<12h
M?#54_,.M^]/M#,[B3,Y!C<Y$O<['W-0['<^XVM3US!T<K6C*=XO]_,_X+-!Tg
M0M"C>- 7G=!5RM"F@67'2WLQ (LYN,FN*!.WQZ/1^]-=?1SP<8L-RM4HBS9;f
MX'-HTP4N8 <HN]>'!)))F0(WM]2%+#\S;12-%MC.,=A#5-B'C;)<,=D\YV5Fe
M< ;/>!@;5'#XZ6DNS6<H!Y.A77#]AF=J9E#ZED*F#=OTEM%JK+XA-V^F4=/[d
MF,L)36JF]A;7YFC9UK<WUJDYL&.?&I$?EK<130-QS;'2MCD-QT;O"EVI;1=_c
M1VE;02/)&![.AP)>1MC.,7+SJ4!B\ 775G:?T=6US,]C:)T)H-[LC0+,HQDFb
MX,$JDK)DT )=_21MP( DP(PG ,I\-YC'=\I1-_VW=ZP6&@+[M'MY^".M-[7a
MEM]FL-^\TA;^#>!C+> $_A<&[@/XH^"ES-X>W>!XII\MG=;;0FF:ETOC0MXPz
MG=G.\1J'V=">RX +W=#RY;D\AV6@UJ#RQ21B%A!3 5/X 13$)S(;6NH1;$9y
MNU=T#6K)I"YXD <H8-Z'P0*,LAXPB0>O$09B_@5Y\+2NEH#;36]MD =@@8+6x
M1VD4\P4&U!AE8*<_GB[2X>-L_7G1D>97QE_TY@9R0&9 =E2@FE>&>V18OA1Ow
ML.5=CN-?'N;[\05D[B]F?NEI;GWOFH#]>6B38^<'%"9Z_N<]OM9 'NA#3NBFv
M8>AD]M93GED9.VQ7'ETL.NGB@3:U+42[[AP\T -.X,Y.KL':XW!>/@=$QW,Eu
MQVV>^Z=40 59\ 54$ 1"P 1%H.MY=-[,WD:XL0:(?IVPENP^,.P8W.138.SPt
MK#$0]Q5%. 8K6^=W'B8Z ">],88#Y+G."FH?E^SN,;-!+AU\P@8 XB'S+AP8s
M]#\^!Y0]M"]'F8 EE^P%%]JCG3;6EW'X8EOY1.ES<&Z)5')<$E@^51%O'N? r
M;!O7<NBV9>@%-P3A/,[=(1U =_!?$ ?9E@#8!!TH8.B A9RVE0#?BZ]($/-Yq
M,/.E?HMQP *4C.B^IK&B<A+QHZH)D.L2'\R^ONV'$>SFGL'%CNU3@.P<O^P:p
M7Z?/#J;1/NW5?NW9[N_=SA%B\.T7W^\<_^\3Z+D#7_"+<?0C$C(+SWL./YD0o
MO_&_7C'W1O%QZP,]X!$_D!>B';<@4._K]@6A??-T.O;)[O';!FO:CC:(O_7Hn
MKN[?&9N;#^PP8)X'Y^[9%.^&0>IX7N\_DA:2,ACZ_K(@O_(G[_)/3?1&C^<Um
M?_,Y+QH[+P<][]#'%O0NK_L^0/-)O_117EI*I['/*UNN%6U@F4M=T0)BUM7Zl
M#-;N<_%@^5YL\*K^[OU@.7,0__U?P(US,.!?L+*XY5_N".<I[UO&A0:]R@5Tk
M( (___TB@%O]4@+&A<R5@!AP__*? CA_WT\'Z 1$ 9F59=+</W/ 8*P1V; j
MK!^S^WX)8 $&EWU'<JJ?+@$!*T#,R #R]U[P -%A>H'E)$PL3$;=,*#U(Q/9i
M;ZQM/W[6_?8?6 I_H^\PW+SO9_XZX'M)?[$K_;D_<^%?2D!$ X!AP/ZY ?RGh
M_ZC?>^E_YN+_!4#?0@"7H %$@&!) 3) !TC)6$ $#$^\PH2M+PN8);#@$VP#g
M#M#D7< $R #Q =T@1\P!)H2$I@ 3&#1:7ZS9\KQ%1;P)VC"]/.!"4 @;0$Wf
M()"Z0.(C@82P*!Q"&[AERD /F %YZ/O%%VZS+>S-"=@")V -)H!WTPA[0 T@e
M@17A[0$7<&<#)8Y^"7F^Q@;$-3XH VZ4U/M^@C 1R@%#>-JHGRQ<A-2O$T+"d
M ^@#)^&X,TZ7,!-6!",P;])#(IH^-I 37C1'^ EM8"B$>Z5P+W$)61=6; .c
M %4027#E*%^35&#1#2 R+1 L;1,0< +JP G@'DXP 9@C/A3>Y$ .-&ATD-Q b
M0YOS7L;A"6 #Y[#=8$#L) BI$^(K?:])]/7#+A#LO--YPH G)]]@E\$@9I" a
M%E !?T(%#$1T\_U"H;RA-V*FSRQ$BEC^].'W$X5C91>50AL($DEAM!F'-2#Vz
M/"RE<P.&C42C 7Y0]P#"%XC])%R*FX']C [BP/$W$K$@$%Q_0A *V@'X5_+Fy
M'Q)4@DS0!B8 H2@%FTL53(IF4 LVP)R#!B @&@2#%' ,ZA)-F ';X!OT@%U!x
M#HY &V@'42 (,"J@Z@98PW#X7FAB#+R)7XT&W@&=*/[F'@GL@>A/_;&_(3@4w
MB\L1K'\%L D"0J987*;@ R,O! #2D4N6!6]X%447UGQCY'!Q,C_'J,:5(H:v
MT WNP+88!T4@"2R+>/ 4A16;8'ML O/:AH%EHE4D;1;U*EITZ6H#S75T!3%Cu
MU.B8$?-A%P^^10K10!OG6!'K7M\K-XXUOL;8O(EIPP,P **=MNZRVS!BG;DNt
M?P:DV1:<@P)J8Q';7U7C3]T Q[;*DH DZ0IRHES4CL3R+80$5V@0 6+Q7:/Hs
MXM96(FK) =:0!>2 &W :296OX2L1+53, *VCJD""5D,>14#-/1SNAJLHC7P1r
M<-;B#JP:_B!?Y@ +P&U]3'VMC?(F<BB3I_F)>W%+%1/$V%U$@%N QPRNHB q
M5".7]%]W68PY!P(2 0=HT+S@&.""%?)$;BDWZ 6'A+."+FX!,!":.=#B^!-Tp
MH30+YQXQ&O3V<'86O@$SD@\OM*9^,W) 0HX,#_#(/46^UB9F#-_62@O"J7=@o
M&J?3H5" E21M:0%<[9-6U@['VY=,&V+R3)8V,?/:W!."+ T*<D&NKP#7H:I+n
M7_L,S",YVK5YILRVFG5R<3_2/RD<ER,DL8V%E%G<9DKBA6!')O"'>ZH(3W+$m
M""<U"1TRXFI+DL))4;JVE>.>K,66%'!>LO%=R3(@)KE-5Y,.\ 1,V49I!P6*l
M@+[2&K4!/)U*8?2G5F46:)6O,@@T@9]%$CSE7@A@5(M2DDKAY"F5D#L4EG_2k
M1WX:X!;C_)-<DA5;4M-X&332ZD "MT$C?PI93A0.I2.C)$B@/&G@NB%*6",Lj
M_Q23?)25)DBNB.L&$K2DB@"5R-+A/"M1"29YHZ< 5D2AEQ"TH3!Z#(^8,0$]i
M+E^FA4%()U9 ##!LN $FQ0&',PW=8U@)%;T%8O(:F<B/^$?VV0]S8.?QBXJWh
M05A 8H!)<0O2@"B.\"SA0+0L"QKS#G#,,.GIV!WBDC2%QEFZ$Y6Y91;D<;-!g
MR5%4A JC8G>\BL_\F4 S: K-H5D5_L7$< Y$TZO4!%&54T+"3M$I39,C,!6:f
MH!)>T4L *BSA?C 5G9 WDF;2G"I&02-D%:RB)+RFV3R;:!, L(LYX"[@A6"8e
M%W;A!>0.GH%T!H/<+ ..Q7/%#[CI!DK,6# !"F!MMLW?\#;I1=^<FR8"2-S-d
MO"D=A K?])N'*G"VBW=!..6%X92;NB1QVDT:P3CS0$9XG#PC<@I.RADO0&?3c
M&1,M8'\XOA8@AL@0HD$/9Z),P$[7R1S@'&;@ A:D9G6,4W&M !&'(AFM:7&^b
M ,_E5T:GV[2<<=/K.!TRH3I')9EHG6M(CF"3,$$FTA#M1 MO!7=6A-Y)54Y(a
M\.2<PU,ZR #)R39)9^%,GJ>3>8J)R9$VGB<?NIZ,2S3(SOI#.\> [00!VG/Rz
MP"7N-+/ I^>: >1S<);.RZD\46?SK)?NL_U$3_Y@/QG(_%1#[^=#9$\VPCUCy
M!?\4GIZ+!BB M,E!.Z@'_: @-(2*T!%*0DNH"3VA*#2%JM 5RD);J M]H3 Tx
MALK0&4I#:Z@-O:$X-(?JT!W*0WNH#_VA0#2("M$A2D2+J!$]HD@TB2K1)<I$w
9FZ@3?:)0-(I*T2E*1:NH%;VB6#2+:M$7"C2(v
u
end
--[0243]--
[0244] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/26/91 19:27 (16 lines)
Subject: screen blanker minor bug note
Date: Thu, 26 Dec 91 16:25:04 PST
From: pmacdona@sanjuan.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
It is a law of hacking that 60 seconds after posting anything,
a bug will be uncovered. This one shouldn't really cause
anyone any problems, so you don't even have to do anything
about it if you don't want. But for the record...
Line 709 of console.c, the check should be
>= 0 && <= 60
not
>= 0 || <= 60
Right, so why am I wasting your time...
No ones going to try an invalid blank time now are they?
--[0244]--
[0245] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/26/91 21:18 (15 lines)
Subject: VC uploaded to nic:incoming + new patch
Date: Thu, 26 Dec 91 18:14:57 PST
From: pmacdona@sanjuan.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
Here is a new patch to VC to try checking if someone is currently
writing to a tty when a console switch or screen blank is detected.
For screen blank, it just waits another 20 seconds and tries
again. For console switch, it just fails. So you have to hit
function key Fn again.
For those of you getting sick of all these patches, I have
uploaded lvc.uue (Linux Virtual Consoles) as a single patch
to nic.funet.fi. Now it is up to ARL to make it available.
--[0245]--
[0246] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/26/91 21:19 (43 lines)
Subject: Oops, forgot the patch...
Date: Thu, 26 Dec 91 18:16:39 PST
From: pmacdona@sanjuan.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
here is the patch to watch for someone using the tty write
during screen blank and console switch.
I forgot it from last message.
table
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 inwrite.cdif
M*BHJ(&-O;G,N8RYB860)5V5D($1E8R R-2 P,CHQ,CHQ." Q.3DQ"BTM+2!Cz
M;VYS;VQE+F,)5V5D($1E8R R-2 P,CHP-CHT-" Q.3DQ"BHJ*BHJ*BHJ*BHJy
M*BHJ*@HJ*BH@-3,P+#4S-2 J*BHJ"BTM+2 U,S L-3,W("TM+2T*("!]"B @x
M"B @"BL@<W1A=&EC(&EN="!I;E]C;VYW<FET92 ](# ["BL@"B @=F]I9"!Cw
M;VY?=W)I=&4H<W1R=6-T('1T>5]S=')U8W0@*B!T='DI"B @>PH@( EI;G0@v
M;G(["BHJ*BHJ*BHJ*BHJ*BHJ*@HJ*BH@-3,W+#4T,B J*BHJ"BTM+2 U,SDLu
M-30V("TM+2T*(" *(" ):6YT(&-U<G)C;VYS.PH@(" @(" @"BL@(" @(" )t
M:6Y?8V]N=W)I=&4K*SL@"BL@(" @(" )"B @"69O<B H8W5R<F-O;G,@/2 Ps
M.R!C=7)R8V]N<SP]3E)?0T].4T],15,[(&-U<G)C;VYS*RLI"B @"2 @:68@r
M*'1T>2 ]/2!45%E?5$%"3$4H8W5R<F-O;G,I*0H@( D@(" @8G)E86L["BHJq
M*BHJ*BHJ*BHJ*BHJ*@HJ*BH@-S<R+#<W-R J*BHJ"BTM+2 W-S8L-S@R("TMp
M+2T*(" )"7T*(" )?0H@( ES971?8W5R<V]R*&-U<G)C;VYS*3L**R @(" @o
M( EI;E]C;VYW<FET92TM.R *("!]"B @"B @+RH**BHJ*BHJ*BHJ*BHJ*BHJn
M"BHJ*B Q,# T+#$P,#D@*BHJ*@HM+2T@,3 P.2PQ,#$X("TM+2T*(" *("!Vm
M;VED(&)L86YK7W-C<F5E;B@I"B @>R **R @(&EF("AI;E]C;VYW<FET92D*l
M*R @('L@8FQA;FMC;W5N=" ]($A:*C(P.PHK(" @("!R971U<FX[( HK(" @k
M?0H@(" @:68@*&)L86YK961?9F<@/B M,2D*(" @(" @<F5T=7)N.PH@(" @j
M8FQA;FME9%]F9R ](&9G7V-O;G-O;&4["BHJ*BHJ*BHJ*BHJ*BHJ*@HJ*BH@i
M,3 Q-2PQ,#(P("HJ*BH*+2TM(#$P,C0L,3 S,R M+2TM"B @"B @=F]I9"!Uh
M;F)L86YK7W-C<F5E;B@I"B @>PHK(" @:68@*&EN7V-O;G=R:71E*0HK(" @g
M>R!B;&%N:V-O=6YT(#T@2%HJ,C ["BL@(" @(')E='5R;CL@"BL@("!]"B @f
M("!I9B H8FQA;FME9%]F9R \/2 M,2D*(" @(" @<F5T=7)N.PH@(" @9F=?e
M8V]N<V]L92 ](&)L86YK961?9F<["BHJ*BHJ*BHJ*BHJ*BHJ*@HJ*BH@,3 Ud
M,2PQ,#4V("HJ*BH*+2TM(#$P-C0L,3 W,2 M+2TM"B @("HO"B @"B @("!Ic
M;G0@;F5W7V-O;G-O;&4L(&]L9%]C;VYS;VQE.PHK(" @:68@*&EN7V-O;G=Rb
M:71E*0HK(" @("!R971U<FX[( H@( H@(" @:68@*&YU;2 ^/2!.4E]#3TY3a
13TQ%4RD@<F5T=7)N.PH@( H[z
y
end
--[0246]--
[0247] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 12/26/91 21:30 (15 lines)
Subject: VC uploaded to nic:incoming + new patch
Date: Fri, 27 Dec 1991 04:26:47 +0200
From: Ari Lemmke <arl@zen.cs.hut.fi>
To: linux-activists@joker.cs.hut.fi
In-Reply-To: Peter MacDonald's message of Thu, 26 Dec 91 18:14:57 PST <9112270214.AA16543@sanjuan.UVic.CA>
>For those of you getting sick of all these patches, I have
>uploaded lvc.uue (Linux Virtual Consoles) as a single patch
>to nic.funet.fi. Now it is up to ARL to make it available.
Made patches available:
nic.funet.fi:/pub/OS/Linux/kernel/lvc.tar.Z
arl
--[0247]--
[0248] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/27/91 02:51 (18 lines)
Subject: setterm.c note
Date: Thu, 26 Dec 91 23:48:25 PST
From: pmacdona@sanjuan.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
Some may notice that setterm -background color doesn't work
from the command line, even though it works in the startcons
script. Thats true if your using VGA 50 lines with a
TERM=console50. There are two ways to get around this.
1) Change VCTERM_AM in setterm.c to "console50" (or whatever other
wierd console you are using) or
2) Use
setterm -term console -foreground color
I have done the first, and uploaded a new lvc.tar.Z to nic.
So once again ARL, could you replace the existing one, before
hoards of puzzled hackers besiege me.
--[0248]--
[0249] daemon@ATHENA.MIT.EDU (jim v5068vm.temple.edu) Linux_Activists 12/27/91 15:12 (18 lines)
Subject: Parallel printer support (TODO)
Date: Fri, 27 Dec 91 14:54:18 EST
From: "jim v5068vm.temple.edu" <V5068U%TEMPLEVM.BITNET@FINHUTC.hut.fi>
To: Linux-activists@joker.cs.hut.fi
Hi all;
Linux is an extremely interesting and well-designed OS!!! Congrats to Lin
us et. al.!!!
I just installed it on a 31 meg partition on a 210 meg IDE drive on a
486-33 MHz AT bus machine. I was able to get 90% of the system working and comp
ile the kernel in jus' a few days.
Anyway, is anyone working on lp support? I was able to put a stub in for
the lp major real easily in fs/char_dev.c & the parallel I/O seems basic enough
from the BIOS listing I have. Does anyone have a FAQ sheet or tutorial on the
GNU assembler? I am familiar with Intel syntax but am new to U**x.
Also, is anyone working on tape drive support, like for the mountain
60/120 Jumbo?
thanks in advance
jim wiegand v5068u@vm.temple.edu
--[0249]--
[0250] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/27/91 16:04 (16 lines)
Subject: lvc.tar.Z (binary) + a few more fixes
Date: Fri, 27 Dec 91 12:58:11 PST
From: pmacdona@sanjuan.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
ARL: I have uploaded a proper lvc.tar.Z to nic.
In it are a few more changes. First attributes should now be
being handled correctly, including restoring defaults.
Also setterm accepts the just the first 3 letters of commands
ie. -background or -bac
Also colors or numbers work
No difs this time. If you want them, get console.c and setterm.c
from nic (generate console.c from dif+0.11 console)
--[0250]--
[0251] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 12/27/91 16:07 (12 lines)
Subject: lvc.tar.Z (binary) + a few more fixes
Date: Fri, 27 Dec 1991 23:04:03 +0200
From: Ari Lemmke <arl@sauna.cs.hut.fi>
To: linux-activists@joker.cs.hut.fi
In-Reply-To: Peter MacDonald's message of Fri, 27 Dec 91 12:58:11 PST <9112272058.AA00895@sanjuan.UVic.CA>
Peter MacDonald:
>ARL: I have uploaded a proper lvc.tar.Z to nic.
nic.funet.fi:/pub/OS/Linux/kernel/lvc-3rd.tar.Z
arl
--[0251]--
[0252] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/29/91 01:02 (214 lines)
Subject: a select call for linux
Date: Sat, 28 Dec 91 21:48:13 PST
From: pmacdona@sanjuan.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
Here is an an implementation of the select system call adapted
for Linux 0.11. I have done only rudimentary testing on it,
but decided to post it, not because I expect too many people will
want to use it immediately, but rather to get some feedback.
Unfortunately, there are no test programs included.
If someone wants to write some test programs, or better still,
knows where to get ahold of some already written, that would
be great.
Myself, I am still trying to size up pseudo ttys, and would
rather devote time to that.
WARNING: Both the VC patches and this one patch kernel/sched.c
But this shouldn't cause any problems.
How to use it:
0) Backup your system
1) move select.c to lib/
2) move sel.c to fs/
3) patch -p0 < sel.cdif
4) remake
5) reboot
---------------------------------------------------------------
table
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 sel.tar.Z
M'YV04HH$(=*D"("#"!,J7,BPH<.'$"-*1 BBH@T:-$ J,@1AD:.%3UN!%DQz
M!HT8-2K6B"'#Q@P9,6;,N,'QQHV9&V%,W,FSI\^? .K,H1-&3D4 <MZ\H0.Ty
M8=*E3:-*G4JUJM6K.Y&4D5,&1)HY(,*X"3LV31LX;,JT*>.&*)TT;\:^,0."x
M#IJN<\JD'4,'Q)P\0]6"&!.&#9NP9,+ H5.&# @%9MX899+&31T\(&"XB!'#w
M1<4D(-"$L=.53-RN<=GD 2&G#AFS;(G*6<UX:.4S(.)ZI<-"@9@Z?<F4&9-&v
MN&,Z;T# >3-T-PL0;I:"$#,\C-"NH,O@@3.\+_+D;<2NYOX&;=<[:0PKN"/6u
M>_+KN[VV6?LZ#&/5SW_WE6/_KE'D()Q11E]SO+$6"&:4T9@888RQA@L**%"%t
M&Y')04<=;MBG5Q[/V;555T5U%5U=930'1U)G\-<&6)6-P89KC4&8!%T%KG4:s
M".RU!1: =\B1!F-^&=A5;7V=^$:*8:SXG&33#<B84;89UML:T=T!UAW^#9F<r
M@'V%@<8;;#@V5Y '%L95&&2LUN./C+G1H6A]W?%&'6'ZUE6*9=@'H0)- *:7q
M&<^!EJ1?;QE6UVRWU97<'&GHT54=<"B7EVO)T4$'8,^)Y9B<=#JF '\>&B6<p
M'4L-"9NB=<&YYV-7!"&%$TDX<80.%0FQ%!JI=F7%$,K9-\9=8&F:ZE>YN=$5o
M'+[BNL96QK+QPAR_QCB& D( -RQ8<WS9J1LG]$48?.(IEY08::VX)Q)OW($Jn
M?#_J$&%(*8 @1(-K0 I"'G-""1AC;;P+0@SQMO$&:7[IU9T+8Z#*1AIBO."Om
M# $/C)=>"*-JQAP.*U#1#/$B2\>O(+0 AT<\%,P&PJ^9X2\-\7(5WK+^UM!Rl
M&6(H18<"6.6L\\X\]^SS3WF=/$;*/Q?]$T<793121Q^!)!))_\I @TTJL>22k
M###0($-*_\)0 ]8Y&2VV5$+)=M133%F%]MALM^WVVP"H(+=7;K@(XPL+6X;'j
MLX"Y@(8+DJ5Q1@)4H%$'"$0,!T)+F>6@ PPVZ"!##O_FD$,,"K2@.=UV"X=Wi
M99?Q/8??"5S1&.**;UVY#C'@\#CE,5B.N=RTUVZ["@K0#L(-,+!P0TJU9[XYh
M[[[;$++F+6@,@G9/EM667X!],4=>=(0WQQHHI+"#\LPS2S>!T5//51W%9;]]g
M1=W+X3SX<T@_(%=GE*^] BLLCT?SWT/??M#=F:^\\F9PPQ<6HZ_V$<8P7R *f
MN<JPA2Z H <@V(/^W'<A.#SG+^W3SH\N&+T*K8&#[3L3&7I3$0Q^84V, >$7e
MRL,6%;J(.650(7M^!(?BN/!,O)E@WCZ8N]OY$'>ZP\$,6( #XP6OA-%CPQL<d
MI$*X\(4-*C3#&-H"Q0F>!0\JI!X<XC?""=+)+!M4G@DQE*08>M%Z'YS@K]"Fc
MPK+91X5D@)0,5,@E.-1PA&*,7AU39,$)4H]1730AH\[0H+?$)8M<0F,6J:=(b
M!83 C^\K _E&*,A(<A$$?=@>\D" QH0D2;(2QX2VZ=$)D[0B72HH@FE2$45a
M7C&+ ]JB#;VXL#:$<91?(.-:VJA(-:*!C5X<RALG&$<XS'&"=;PC"9$92S["z
MD@Z S*+@"@D7-_DQD6&XWB('U,A'5I(.X[/A-^$WRTKNI2^9[*$*0+"PAC4Ay
M#,LR0WK* #@?#:YPATM<PA@' \>UCG4RJ-SEA-<"=C+L!>^,YSP)9SC4[=-Xx
M_62=ZV2 X'.[H>W4^?B:L""&<0 !$<$00):D+ 6)(<$*@ <"$C @_]5Y E"w
M4,(4*@)!ON2!.RK]@@;IH%(6ND&E+\R+2K>BOC>H%(7T3$XQ5?K'XJB4"XX4v
MJ7:&0YJCAN%'3 7G;50:'L,L$7 N-:@87! &6I$ !3"5:0J4EX"SNJIE8P!+u
M.\FZ4K3&= IKW>36.OK14+*5I"$[:4I/VM***"^M,WW@8"Z%T^3H% ]838Y/t
M@:I$H2:'J-$YJH\8H]*E+FI @'QJ5!,PU3%4-3DSY.FBM.J&,W"U,*5DJL'Xs
M E;#5F2N9:TK8M=:D;:BX*VLB:M8Z7K6W6KT8@B%9QGDF99Z"JYTI]/G1E<'r
M ]?%@":Q&^@FD9O0Y2[4=(Z1KNIB][@;Z C%E4G1FFGT>NR0 8S "E[;0L"q
MQ/8@ 9--C@A/N-FDTNT-PE$I<\N0P# L4*6_,4."Y,!42&U%M+TEUQ+7\(51p
M 54T<JAP&>P@X'EJF,.KU=-E\3 <E=:PL= I8QI$^\@$B.%'X8&#@*>82I6Bo
M\F25:DW=-%3;QU3D8H SJUW5RM:S,H$(\6J!44R*H-&==,AX)>B_;O#>^/J5n
MOO;%+W=^JM\\D8&_/_)O90#LWP$7^,#)2?""&\P=!B<'JA$N)84MG)Q?%>7#m
M'4X+GD.L6ON5.#DG]F^&UK+B-X_VQ=53S(RI:.,EUCC'&"(,9S^+X[ "^0U"l
M-FYOC8SDD"TY.9?6[5W7JKL6O<AS&'P!8TOD-^<.#KP.G2YYM2:Y@&87<YLTk
M]=U2O>K1H0&ZX4U=2F8] QU\+;WKM9U&:3!$&AB1O9MDMN_ZBCRVVMDH9OB"j
M&9#EH"W8H OGPV2XZ0>"$0A'GL9*@!.$((0L) '"4C "]9IF390QRAC0C2+i
MQA*&Z>0!2"IP6/W(/6]R@Q0$4YAM7ZX#%D2# (U@&=. 02 <:/EH,9+9-SOCh
M<H;1&7R=A2M15\(SAJ2 )3QN2 ,<Z*0AO]0!9 Z7IU[( !84> A!\\0@OQ[>g
M().# #[7GD,*(%2_@QN!"%^80A&H,(4D:*$(/%\-=2CN76,Y1@RTN<O/\R*'f
M_%CKYN>V#AOZDJ6/^T5;86H2"'P P2= H0A.^$(3@H %$*"@EC_R]= _+O!Re
MG[LR94C T9.^]*8_/0%8(S>Y5WWNC;<V 6;X,AJW5S]S5[TK3CBZ$)+ ] 2@d
M@%&.F@L*(O\%-,9KG>MN=PKDO4Y]*V<K/+\>2/M.;LNC._!?N@/*\X "+-YKc
M]2@(/AY2L(+@YR$%+0!8"EZ @N.O=>#0K\M-&[/<! RE-7Q!T)>I%T%R0U[Rb
MV5S#]]NG[RWD?O<H&+S2F>[T(CPG\T38/--3 &YR]T'[%*3\8RK_]W2K?^DHa
M8$UP 'PH,( MX .11WYYMP4!N'SP)W]3X$!\ $$H\%$\4#+!YP;Q4@(@\("<z
MAU<I\'Q^=WF"AW1#P 12$(#/,8">5X#(AX T]P7EUX OX(%,YT F $%^4($@y
M<(%VUX @P($V"((B:'N 5X)?D 13L'XJJ!P$:( PJ(#0Q( :6(.:]X$X:'<6x
MB(% *(17.'\A6'O]UQ6#]W12\ 0NZ&*.DA3!=VT@E0(N>$&-4@:BIP(N&(8#w
M5Q$CP!8IHU&ZYCEOL1:M%CBO%EW"MCHTX$_Q=6M2]H=EH&JP03JP)E[#YCB)v
MJ ,S4%&,F&S!HSLR0&4O(5]R(V6?V%&@5&V]51G>T09?\!4T1P?AEDZ&53_7u
M]W+> 1MV4!C=5S\)H$2M51=VX#YCH'^]R'' F$MY,8SVIW_*\T(.DD"#(6<Ht
M0"K%,3\5$8@$=HMK87.P 8WK1 <#&&ZF40<+1'%IH&#8R(UK 8W8>$S8R(ZPs
M 3#;4VIU<VJ/B"%?00=D,(CV!&RQ-EZ**#D?Q8BY5H]W@X]#L8^_-HF'* ,Rr
M\#B1<VR;R(FCJ#LU,$0U4%'!LTD7R0(U0#E75FZ.V(.I)DP\A08^H#PC,)(\q
MP&NPX6LIJ8<LF6K ,0>#1D\H67LLB8U^$Y,B:9#"T8/ $8DY25\K&7G+!0)?p
M\ 5,D 1"( 6ND@5+J5[)UEZ3PP(QD1$;N3DQT3LQ83PA:83&HI1?X 12(#V,o
M%'X)8 ,YH))C2)9F24'A1 8)P#MN>7EP>9;B4P9<5)>8PW]XN91QR3]\49<Rn
M$%9BV172 Q@'Q 8P8'/3QP(W&2]P)GW<D6+;2(UD0)E4N5X:)34Y\%X7*8JXm
MHU<K(9JGJ#G*HXH!$DMW-(UO4(WA=D?0N$=R >P*9O*0YL$ EKEHYGS4WD[l
M290I63^L29AT@ *L22'/07K<IP*5T9S;-R @-2<YY)S4J0+:<4'@9(MU@8NZk
MJ )T8 <@8(T^5FY\>(X:M2SJHQ>BTY@NX&3]B$__"%$P8&PTP#H#*3M2QI[-j
M(CK\\@7P.0<,E4^I8Y_XB8F+R)\469%SDY$L<!&D*49AH&UL$ 8=IU@X0*%?i
MP!5#(1FP!T$L\3^/Y 89IG-J(:"P!180= .'25\%QQ'K] 1I!!I<TBO\81AZh
M(2ZJ"'L]*@>ML1A7@@;SM'6)<G-FH$1VM!H50B9E(&40*J$A.0<5FJ08RJ*<g
MQ*$>BAQ<810B^J*/4:(GNB\IVIA8>A-A%:,5,:,UVII%4A2PM:,G\J/?0U20f
M DTX0J1I8:2_B*1*"@=,RB0U\J2ZXY_N"2UWL8]CX&K^2(F9\9 P\) S4(G:e
MM3F&ZBR(*BV->HCDE9&LDQ$329'MA0,<%3L>L94%U3H<Y9!6AHHBE0#5 P<'d
M:))ET ,P$(O_4S^:^7!T\A:MV!9VNA@,HV=SD!9E <KY :?UYW91Q37(SW,c
MVA=R P<-]!S+*0<BN ?>QYIIP )YP1;$6(O-&G[0BGW2&JM;$)=N!W?UQXOGb
M:'<A,(#>EP!<<2'JPXSN2A<H, 9U *2Q\4 09 +*F7)T4&#7XP+.N@9X^*K(a
MDG)C@ (BD+!; ,.!$YY<*2+8JQP( +!*5+O&H!RP';J^G9.((+QUK!I\+ 1z
MJQ0\YP:T$7X[DK$*LK$="WE,HIRVN@->P0,FJK-IL (K8+(2A*YIX$ 09(?4y
M6K0UNZ8%N 5*VP/\ZJ]M08Q]0&Y<P1WVH0,)$+5<T1:SZA9= 4%4$ 13L 1)x
MZ 144 12( 55 54X)1,4 3A&BUQE!;^PXO?.A80=*O>UZ0X>ZL[V[-> ;0Fw
MFP ?B[1.VP7Q8@(F %)-J[0A4%/]VK5T$"_:RHOQA@)R\[B*.W2TFK/S:GT*v
MHK?_0HP)4+68JQ=Y,:\2A+A/ZP15P 1,8+H5\;%$J[BA>[M?JR&@B[FHZ['Zu
MFK>%>P9+T658"XOVIWAY" *[RA[+DDNX*:[>0:[2*U_R6A':FHKZ&BF,"U(#t
MV'UP$[[B.[X,$30(0[[ABS3HM30AT31,P[XE\34Q8#P@L!(MX5$N>ETE 0,Ps
M, ,T$#;H2[YN9!0:L39J8S,!G, *O, ,&\@4#C$,G%C$!=$41D[HG5&,@:-r
MT:\E@B!,<G.BX09DD#>X,2;(J3&X<W AMSQM,1O*$9LZ\CV50J1@,7$A@L(<q
M81KN<TY:VV85T@:Y@G!%$+=#0 7ZLW.-B<(9LY) V14\D#>A V0YR<2=X\10p
MO#>7VI,*0,7VV(-7K&J7HL5<#"->##I[DZD*F9)C')0\D$UM\"Q\N19M(<8Lo
MZ<8 JA9TW,0D"1BJ-GTPN<4SR5JN-<4L.<%N,!1Y7,4]B%E&1<AZS ,\Z<B*n
MW)*"DR$GDY-;_)9!@()-,'=EJX4]B(%-=P2;+ 5-D'QAF,EX*09K^ 8H,!@$m
M)(>.4IX/IQ;4LZ^Q? )< ,GX*USN%;I,Q:[V@:]F@:_^B1!^A8+)#T:FZS+l
M:JYU0;W1:KW5FC]N$(X18I(IFS_$/';&7*PSVXK9IA:+P7O5F[#EZIUR,X5=k
MP +7NE82M)R*%0/AYB)IX#\5T<V^^J/)/*P$!L['ZLS0))G8&FX?R[6Q,:N5j
MK(N-6\J=3+9+P%L1-!B3F] ^,$B6# (Y" )^X-">O 3A5A&DR[<54;4E]!;Xi
MS!H#TJ_*JH';4[4*H,T)PYJ6D@<[W#\8@M&G8V=NT"S6^CPJP$+8J@#::KC/h
M(T*KL;?;8WW37-/IG'W?>"F*1054()5C*P1QNZ\AW"SS8[CZRM/-(K)G2=59g
M,%-\P <@$ )"/3/V.A8M4 1",!!&L-2'*]0:+<1,<+;QH@ )4+OZ6@1-X+99f
M8'.7,JO#$1>),1MAV-<R:M<;[0=*E]>QLM3HPP9Y\1B,71%(#;3;P]=UW69We
M'=E?\ 150 5[S=@?:P2QRP2$G0<'B%1?$ >+#1)!#=J/+=JD3064O3R6_:29d
MK=)HD@><S=>U#7NW/<1?4 18L-3URM(H@-3S ],.7+T3IP+H]F7,A9N$ LVLc
M.&;"L4X7]]-]X7KPO)K/DP;AYK=ID+,[.[)PY[- 6Y[*X]=VA]!>BX#ID;0Xb
MV+C[6M'WG=V)>X#9-L$8TA>1FQF+:P+S#1+]+;5T(.#Y'> (^*MD!K"LH7()a
M7M_^_>#XS0;Z+>"E5^&-JV]A"#7-K3X-3KD0[N&):YXGKJRPDM=&D 1, 71z
M'7#^$M-NL<VL&6@WS1>O7+W='1U!J0+AG3_%C:T)0-3FO1]>EM298=#ZFN2Ay
MC=RQLE9>;7=0D 1OE]R!7=6:>W&+G0!4?MR2[00ZZ\#])D*# 5LX,B=I)V$.x
M,GM\K;J^K=E//MSTK;F.C=>C7=I8_K%;WN6J+;MACN%83N:.K8.X7=IIOD[]w
MAE1M;BAC8A_LE"?-$5!85QMOWBG3(6=T3EJ]S==X'MQZ7IVVS>C(K=R/#ATCv
MIL'"JALXCN=M_=Q/'MT1H@#'&3X*]\HY7<FGXXNXH0)J!GOE[<!0L!4_',3(u
M&8!=%)VY 1S/L9W &"\H"L3P2>?+208[@)W26AEPH+/>7IW $>[X]YS:8>[Gt
M#)Z'(9YV$.Z0,9U] >W6.>UXL#WC;L&C84;62:6D8>_^7@;;L^YKD8N',9[;s
M\^MG8'6.AQO8B._@)WN]!%(J]QRU;?''.O#37-W9#4X:S]T47N1C1D )?\C r
M[AC9(AGS'N+"L3VC HVCLCVL*=3/P:] O+?/84O6Y-0T=D&^Z2C/@=2*U3O q
MG29?$!URT%5#+_/G_1SUMCUNJ )C ._G+,W0O,YSD*YGN:Y.4'_"#AUEP!X7p
MFO1+$B:%411MT-DB[1@4J(HIP"7:1DH<AP+%+@>$:]#7K%BC)^]O"/<7\P7"o
M3O=UH&!;<??*8YV10H'CK@)O/R!Q#_AS7_>&CS[;H?>+W_@%^_>!+_E!&V[Cn
MF?AV1_ ;5AB,[_=RWUJ"3_@%O9I?#?I:711O^/D2+4'JS=YI0,FA9P8V9P?:m
M,[A!N^ 5$7RLR?@F,)XID+B*9?HR^&]E@,LKD ;F>8VG D'CB;#!F(P'AP1:l
M +UL_O6CXR*LT[:'R\OT#7\>_[;DY@@,'=8\ 50P)1/("MV!P-X8 3V?__Vk
MSP0A P)J<(XR)W0+SG:="K:S_NB.^X-_LB)>8"/%POX.(!.(?T=@_\6 V:4\j
M[H^=^TX' H(TP/?W &5%JZL,_2?,8$ Z9"UF'=@3>VA/L?0_!9,&2L0*>'ABi
MY.>%K1\DPE; #4@!/L '< PI5]]<7]1+ >!.HOV8F[7> -?M:RJ. K[]/JC1h
MAC#,&S(!^HXT'+^BE?P<W]_;=,UOZCT_\V3G%EP94EMH" H>LGUGG@Z:#W2"g
MC _Q"4$/9A3^EL]J23)0":[!X/?ZC +QZW=D$/E!$.6'!9T?] LW71 D?,$Sf
MA ), !Z4@CP0E^F]'YCNUF#M,X)P$)K,(3D(_'[0#S0!VB'@34&CY:8>7Q_4e
M@G^0>XPZ08ATS% 8S(1D4.U%BV>4@-Q%[2)=45#@503KI%@.H2S4#HH%%9(&d
MG76>YHU]XW#;9H<E$*D&09+/#@@XK"<L3(\ZL!9HQ8AX :,"C*T&$ZAR+%_$c
M6P-/L#+HK/)@#4M/^'F"UDEG':MNB$:>H';P?)="0#T/I:8\RJ&(2F]$<.EYb
MA1X$';B=[[-<"\ZNZ3WHQ+UBC\+Z 7XN5H 6D'2.,)GNVNF)S> MA4 01J=a
M;@N 4VX<-JZ$:-<8HI]C=0L.(MJ=M3;1'!B1N!;:A\Y!C8\U>O(;.%$LOW#%z
MZ;=XT0,@2(S[ C.NQN%#J%$1;)YB>6MQC0C,M4I8$<3 F5@#(8TCW)_S!!)&y
MWDF$(!U/#H X[R;P*N&\,8I*T0=\,[TP0))"PH @6.(-!,576![ R0&:BFQ x
MV[ ]KZ"S3&!19'DS$"I^1;1XUY+ %ZAJ;V<K>@5]I1:EX@!1.65@)M)$H6<1w
M?5RS@XK/P1""MNA'$DABGQ-M I$E[JW34PT?V^0! 0[,0U&GRH @+M2P<Q@Tv
M<2[^H,.(W'*;8D1PJ$ZCZ:#'&!E%3E^@A5;J,O)$S1A\.&->4VZTK"6"1NW$u
MO49C^&EUDK$OX,+4&.H^EEIK,PHPZ_&\M@"T.*' JHO&++40QI+&VR[;QS)Ft
M B,HR4:W. 20@*M(.F]G""2!3:87H<:HT'LOKW+]%P*R%O7 :9A8]2<SS@'Ts
M\#%P!0J8.TK@":2@41&"ND]FK(G9I"O4 %KAP*#AAI&&(O$^5H3O*+D<W &Jr
M::W.#+@Y590<S.)]](4;3L AJZ Q#*$<>@N0F9$P7+;\!!G7B7^T ](0"V2!q
M[><@,^/'HH_V44!R!)W' &.%?$0!]%$NFDA]%8"8H6)Q:LU.YP7&M18O"" ,p
MF(,JDB]"D*>W&J%&(%21(,$F#DEF*"-IHF&T;0'1"<3&Q4@4563K:HRV\7K@o
M1M-(-RHCAL*02+(N",=T2&.*HV(16&3M+08!K%8$4(#.>T')"+$5A3S@ C(8n
MX,M'R_$^FK0P^22-FY_SC!;N1U9) =FZN*%CO(T=4J5Q']1H&<$DDIQ"PY$.m
MF,F A0+2Y%7+:F_RM?67V%8GK>*=' IY,C,.Q2)9&&FD:TQN=><S"DK:*!HYl
M&FD$;UQR-S9*'/?;]MQOW I[#4E:P-[6$3UD-*QIBN5#O@#+8"A*Y'UDE8=2k
M2Y+*DK8LI\-/;)(#<KF(G;[@"E4DLLR20'$U[DF0L"LOFP1Q8$A/Z4T<)B'Gj
ML.$<X [$(3QA1IKHP,).KQJ(1>\Y2+HGL 2<WJL[5H9D+!C+/<</J]R9 Y(@i
M :D=/<G054[=2)QRAO)/ CI2*3##96$PF"3A6KK*VU@)MR4FR8@@H1Q>H'>Hh
M$=WD-Y2-@C)[D01W6+HJH<KA; H191XKB+DG[X\#:U)FD?7]H!!@\S(<"@@!g
MT$VC-:Y(J3-'X.Q+E-Q'+(2%L0?$A 5 @P,O(+4XROSAH7J57 03B8%HHL0(f
MZ0/.7M*3B[X1:EI-(';63N#6Y %:DV@"3(IF(*NFU!R286]KRL6F.784BS[[e
M9LWL'.F4LW I;,X<8 &1,D^F1+.9 B%(V$1[<G'>S*FV@#U$ -ND SV@!'01d
M8X$"DU[B["(K\/\]3B[@!D0 "SB<DBEM$DT6$#E;H- YANNR*.HKG%DB>M78c
M?'$HX$=B37W%.+>F#^B<)6)L$B\ L0HI3 *2BQ>0KZ%.U5D!_860+'HVS6&Rb
M@41(.H,;".B:-5-Y2!#463-Q%4@HC0*#8" GGB,'U@!8P'$.C".HM^A 0!0+a
M4_19W/,DE@PQ2&:TWMEZ D2@"$0@\-D5[=X2+)5V!SD*PPQFX;)BO)"?%))^z
M*K4 ^1ROF2,D@K8O$H(>6?BSWB=(6#F9C_PPO^!3!XE?9=B$+* )PC[&%P2Wy
M8")4@PON$;Y!)$A "5<E1*"><(%*4#EP!X$#!!VA:;#<$9]0N.<:808%H)"0x
M@U)"J %"KZ (;: I !,.G\0507%H([2@&%.EU3KH]M(B! ,[HD@TB2K1)4H5w
MD-/Y8J(Y0WTI#9+P-)R&^P(),2!K9(3Z937PET/B&EFT!L" & # H.C/&&!Gv
M X$=,*A@1MNH&_4)ZF\I-:6G%)6FTAIS8I%,C;$DA*2/M)BN>Q[-SIIUD<5'u
M-Z03!3DX]>[<92?[\1S$2%-C=P?'^!&UGV/R%EZP,T9U;PO4@/0X'0;?@D&/t
M>D_A,3QAEP)$6+C)I#& $Z( 47I)6PL0= .GU)-NA2T@ U0I*W4,I#0<*H],s
M.@-L:24=I1PG!9S#72I+Y< 6H &^5*?ATF"*\)0G??EZ2\E#\4+EL93<V%)Br
M7F#"/A0IB,6:2 #]PP$P0 08%L9&*T1 #P@#XA0%1-/8.4XK0CD-IW9',.DEq
MA9,"6( ($ /I].X$T]2W8$)0[SM/'VN=@@4?&2\P&ZUC:?&S+<0+@3I-T0>0p
M&A'%D*'2EQ<7,N@9?:E:, UGO-&-RE$[JD?]J" UI(K4D4I22ZI)/:DH-:6Jo
MU)7*4ENJ2WVI,#6FRM292E-KJDV]J3@UI^K4G<I3>ZI/_:E -:@*U:%*5(NJn
#4=VIm
l
end
--[0252]--
[0253] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/29/91 04:12 (11 lines)
Subject: select comment
Date: Sun, 29 Dec 91 01:08:21 PST
From: pmacdona@sanjuan.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
When you go to compile sel.c and it complains about an
error on line 84 (or something) just edit the file and
delete the preceding line, which looks something like
if (oper)
Peter
--[0253]--
[0254] daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 12/30/91 04:10 (11 lines)
Subject: Amaru Linux still not reachable
Date: Mon, 30 Dec 91 10:00:23 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
To: linux-activists@joker.cs.hut.fi
Hi Linuxers!
I am sorry to say it, but the linux part of amaru (in fact, all msdos stuff) still isn't reachable.
So please stick to nic.funet.fi, or tsx-11.mit.edu. I will try to bring this up as fast as possible.
C U l8er,
Robert Blum
--[0254]--
[0255] daemon@ATHENA.MIT.EDU (David Fenyes) Linux_Activists 12/30/91 15:13 (50 lines)
Subject: shoelace; compiling regex.c
From: David Fenyes <dfenyes@thesis1.med.uth.tmc.edu>
To: linux-activists@joker.cs.hut.fi
Date: Mon, 30 Dec 91 14:01:59 CST
Hello Linuxers,
I wanted to compare notes with some others who are running Linux,
since I'm new here :-)
summary:
386sx/4meg/20meg partition on drive 1.
no Minix.
1) Linux installson drive 1, but didn't want to work on drive 2.
both are RLL, same controller.
2) Does anyone have a compiled shoelace that can be made available?
3) gcc chokes on regex.c in the GNU dist,
a) is this happening to other people? (see error msg below)
b) can someone make available a working regex.o ?
4) Has anyone compiled Jove or Emacs? Jove chokes gcc also in
a manner similar to that of regex.c. Maybe one of these
editors could be made available. (I am now using uemacs).
gcc choking on regex.c:
gcc -O -g -I. -I../lib -I./lib -DSIGTYPE=int -DST_BLKSIZE_MISSING -DSTDC_HEADERS -DPOSIX -DUSG -c regex.c -o regex.o
regex.c: In function regexec:
regex.c:5285: The following insn was not recognizable:
(insn/i 117 116 118 (parallel[
(set (reg:SI 2)
(reg:SI 2))
(clobber (reg:QI 5))
] ) -1 (nil)
(expr_list:REG_DEAD (reg:QI 5)
(nil)))
gcc: Program cc1 got fatal signal 32.
Thanks very much,
David.
--
David Fenyes dfenyes@thesis1.med.uth.tmc.edu
University of Texas Medical School Houston, Texas
--[0255]--
[0256] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 12/30/91 16:58 (47 lines)
Subject: last call for 0.12 and gcc choking
Date: Mon, 30 Dec 1991 23:47:03 +0200
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
To: Linux-activists@joker.cs.hut.fi
David Fenyes: "shoelace; compiling regex.c" (Dec 30, 14:01):
>
> 1) Linux installson drive 1, but didn't want to work on drive 2.
> both are RLL, same controller.
Interesting.. Can anybody else report similar findings? What does linux
say on bootup - does it say "partition table" or "tables" (note the
"s")? What does fdisk report?
> 3) gcc chokes on regex.c in the GNU dist,
> a) is this happening to other people? (see error msg below)
yes. I f**ked up when I did some minor "enhancements" to gcc.
> b) can someone make available a working regex.o ?
compile without "-O", that should solve it.
> 4) Has anyone compiled Jove or Emacs? Jove chokes gcc also in
> a manner similar to that of regex.c. Maybe one of these
> editors could be made available. (I am now using uemacs).
Gcc choking is probably due to the small hack I tried out on it - the
string instruction recognition. When I get gcc 2.0 going, I'll leave it
as-is, so that these kinds of bugs don't show up. In the meantime, not
using "-O" for the files that result in errors usually cures the
problem.
I have also been adding 387-emulation to the kernel (+,-,*,/ and
comparisons mostly work now), so hopefully gcc 2.0 won't need even the
soft-float patches, but will compile and work without changes. Linux
0.12 won't have complete emulation yet, but I hope it will be good
enough for most things (ie no trig, exp, but most easy maths). I also
don't handle overflows/NaNs etc at all now.
And finally I just wanted to remind everyone that January 5th is the
deadline for things to be in 0.12 - I'll accept /small/ patches after
that, but nothing major. Note that if you have started on something,
don't feel forced to send in a half-ready patch - I'm sure there will be
more revisions to the kernel, 0.12 doesn't have to have everything that
people are working on right now.
Linus
--[0256]--
[0257] daemon@ATHENA.MIT.EDU (Yanek Martinson) Linux_Activists 12/30/91 18:27 (26 lines)
Subject: compiling regex.c
From: Yanek Martinson <yanek@mthvax.cs.miami.edu>
To: dfenyes@thesis1.med.uth.tmc.edu (David Fenyes)
Date: Mon, 30 Dec 91 18:21:49 EST
Cc: linux-activists@joker.cs.hut.fi
In-Reply-To: <9112302002.AA04802@joker.cs.hut.fi>; from "David Fenyes" at Dec 30, 91 2:01 pm
I had the same problem. The fix: compile without -O optimisation
option. Works fine.
> 3) gcc chokes on regex.c in the GNU dist,
> a) is this happening to other people? (see error msg below)
> b) can someone make available a working regex.o ?
> gcc choking on regex.c:
>
> gcc -O -g -I. -I../lib -I./lib -DSIGTYPE=int -DST_BLKSIZE_MISSING -DSTDC_HEADERS -DPOSIX -DUSG -c regex.c -o regex.o
> regex.c: In function regexec:
> regex.c:5285: The following insn was not recognizable:
> (insn/i 117 116 118 (parallel[
> (set (reg:SI 2)
> (reg:SI 2))
> (clobber (reg:QI 5))
> ] ) -1 (nil)
> (expr_list:REG_DEAD (reg:QI 5)
> (nil)))
> gcc: Program cc1 got fatal signal 32.
--[0257]--
[0258] daemon@ATHENA.MIT.EDU (John R. Schutz) Linux_Activists 12/31/91 11:44 (23 lines)
Subject: Problem with VCs and Kermit
From: john@csrnxt1.ae.utexas.edu (John R. Schutz)
To: Linux-activists@joker.cs.hut.fi
Date: Tue, 31 Dec 91 10:33:06 CST
Has anyone else noticed a problem in running kermit and VCs? I boot
up, run startcons, and then kermit. If I switch consoles at this
point, I can do anything I want, and no problems. But when I get
kermit to dial, if I switch to any other console and try to run, oh,
lets say ls, or sometimes if I don't run anything at all but just
switch to it, the system goes hog wild. I've had different results
ranging from a panic from the kernel to automatic reboots to even
zapping the drive information section of my CMOS. When this first
happened I thought that maybe I screwed something myself, so I
reinstalled a virgin copy of the linux source and repatched it,
installed the 50 line VGA patches, and tried again. Same schtuff.
Any ideas?
john
--
| John R. Schutz | Email&NeXTmail: |
| A learning NeXTie | john@csrnxt1.ae.utexas.edu |
| (512)328-0587 | "We are all victims of dead men." |
| 3009 Hatley Dr., Austin, TX 78746 | -Charles Fuller |
--[0258]--
[0259] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/31/91 13:45 (26 lines)
Subject: VC consoles problem.
Date: Tue, 31 Dec 91 10:34:53 PST
From: pmacdona@sanjuan.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
Sigh.
Regarding the serial/kermit problem:
I actually discovered this problem by inspection of the code,
before seeing any symptoms. I don't have time to do a cdif
to patch, because I am working fast and furious on finishing
VT100 emulation and psuedo ttys for 0.12. The latter is in
testing stages with select.
But if you want to fix it edit kernel/chr_drv/tty_io.c around line 348
and change
if ((tty>=1) || (tty<=2))
tty = tty + NR_CONSOLE;
copy_to_cooked(TTY_TABLE(tty));
to:
if ((tty>=1) || (tty<=2))
tty = tty + FIRST_SERIAL_DEV-1;
copy_to_cooked(TTY_TABLE(tty));
--[0259]--
[0260] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/31/91 19:11 (10 lines)
Subject: Re: VC prob fix, + VT100 emul
Date: Tue, 31 Dec 91 16:08:57 PST
From: pmacdona@sanjuan.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
As Linus has pointed out, || should be && in the tty patch.
On the brighter side, I now have VT100 emulation working well
enough to support the VAX full screen debugger. This, only
because I gave up trying to reverse engineer the VT100 escape
sequences and fetched a manual from work.
--[0260]--
[0261] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 12/31/91 20:52 (903 lines)
Subject: VC, select et all
Date: Tue, 31 Dec 91 17:40:22 PST
From: pmacdona@sol.UVic.CA (Peter MacDonald)
To: linux-activists@joker.cs.hut.fi
Well here is basically what I intend to submit to Linus
with possibly an additional patch or two to tty_io.c for
ptys, in the future.
If anyone installs these, let me know ASAP of any problems,
so as to make the integration as painless as possible.
Here is lvc 5.
Peter.
table
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 lvc.tar.Z
M'YV04HH$(=*D"("#"!,J7,BPH<.'$"-*1 BBH@T:-$ J,@1AD:.%3UN! DBz
M1@P:,&I4K!%#AHT;,&#(D'&#XXT;-6QLA#&QI\^?0(,"J#.'3A@Y%0'(>?.&y
MCM"&2YL^G4JUJM6K6+/V-/*&#9LW=]*X.0/B:!D0<,+0&8.FS!P0=-Z4]0H6x
M!!.Q=?# E8LFC)VS5M+(H5,G#!L00]ZXF=/5K0L%5-K..9MVK>2R<L[&!2'Fw
M;!@X<-BD*4.F[)DP8HN"^"MG3AK%(&"X,/E8 5>D=-"\F0S"35,08N&V!;'&v
M]QT6(*P,>6OXZQT0<^Y\AB.6[)PQF<NX =XFS!FW"L+F!J&&*!WAFM_480OBu
MC9FR(,S4<3.&SNOM:\KD0=Z9SITRVJTF&&&&0>>6:XK-45L0;#"&W!QU@/;&t
M8/%-F!P5,<0$PAER?(9&&F.\Q=91;_7U5F<!AD$&&:0AIQ8(;)011E$*:*?>s
M&6CL!0)1F@UG11!8Q%>'5]!A!^!V+(I1QQG?R5%;9&F\51E[AC&&UE)VI,'Br
M6]=EMYT8;(3AQAK558A48(,5=EABBS7VEG@YBN9&7H\EL5T99IA11GW(_;=Aq
M&>?E%J69\67WH%AC #;$7)FIF,=<7XVAEEOP*9EG&7(H >F((R18&-PT;%?p
M>VZ<Y1X(=WS('@JYG35&'7)DY@8=;#P:1GUI_/668F6D@.J,;IQ AP*=E<ECo
M:6+F(5T>"E84V5E@BID?4JZU$=JC/+XEZ(EU7"J'BVZ0H8"G<##+69AC:BM7n
MJR T>EB71W+6K9Y.*J" $(^R:$880]+!'[IDCH5J&D1V!@(9488!)FEEG2<&m
M4X3! 5<:;93A@K-R::=PC,#YJP"/(-A;T61TT(%I&R"T$.V8O=F;*J9G;3=Hl
M&+W5T49G2/7W7X >B5F:#;)5- 6@]@F<1J!RZ8&I7 C/L3%X1YN&FAL7@Y#$k
MCA VARUO[,YY,Z<9(E>QF&5F"$(;>)FL(&0?EC@CHS*2\2B*VZG(8FF;%774j
M6@D2FH=Z%]NK7*=O5"RB8F:D<0:LZ6%]E@PJR7E6&V^P6'42[_U=!PA]_06?i
M%4<$ 6YIFH<LW:PZ@ER#1Y*?77D9R+4J\^QCL%$'BR_(F=<+GKJ1^!DNH('<h
M?)ZV4?&L.MB;P CZB@58$D04\<07H ?QQ>I?,)&$$T5,82^#5E+N.<D1NJ"Ng
M@1&[, 5G>$[H&6BUELGNE&@\U@3L5L.81GX@K*Y_J7- 3AG^LATX"2A-!>H=f
M8SB&@MKQ2V]PT(T8TA"&%"R(2X4K Z]ZTY06'4PQPC+3=Y#6J;Z,Y2Q3R,(4e
MII $+11!1S# PPQBXI'@*(E@9'#!&&HCA/9E!@2E.X-<DB6DP;3E6\(9E(G8d
M%R"UF:PTL%%,K<[FO+*$2P$TT]-SQ-"A\:FG06>[U8< & )GH6$I2\K1MCXXc
M(>243CLFP\UP[C A-I1& :<20A&H$ 08^:PV+0BD( =)R$(:\I"(3&0B[?4Lb
MZ)@,#LS)3/(4$)*4@4 (MUI#A("H'FHQRV0H\YGK//>PIKR ?' PGXY*28=3a
M JI\4ZA-16)@R2# [U'T<XL.*B*^L[#!#CL< \+>LQG-4:N3B3J88/84%SD\z
MZ@5$D<,IY3 &!23 0JF:%&NJ-JU2L0$Y9@@@<-QPM-&-LW:WFYQYV-<NQ:%Ay
M6 GHC'.2V"P0. $LR4M JR9 /JE# X>X0&,@*G#8?*3DB1IPAO&5P8VZ%!'x
MX;1B:283H_H\=#.B$8,+]"DR$,C DICCY.9.1T+5L<YY;T'!VQ2VT%X)$&'Gw
M093M<*<[// .<8H+'@?O\)@$@$\NW>$?A'[(+@C!;S1X.YFD) 9'9P+G+<%Yv
M :!V:,V?(N=J(SHA"*A0!"DTH0<*;(S_@M.&1[D #DM)7(QD"8(96%(*>RH<u
M=6+4T8RT #%R)=A92!;'-CQ4E*(DPV[:XI6_A@LM=3A/&?"PI\0^#:INL"8Tt
MYR#-2!GF!1.,+$)5<M<@S %":!-8;EY4.L,T2FZ<\XMF1$5+498L#Q\5;*EBs
M-QR['>T^AK'F:T4D)G8::5*E$<.C%MO8HI&%78)M0W$J5R0YI $.=&"K#=Y:r
M!E8.;#Q=*\-SDM"=[["U)G=E"^5*4X<5Z$5O@U&@.7NI(ZFNI:,XL&01&/LJq
MDSER;PKL: Y FCGUH IF6"O39)Q;(#A,B XG\N%96,7:%[Q6!KYJ51ZL:9:=p
MMDMC%</;ND1U$0=SN :!4T 6_#L'W0RI-,9)K>?,T,D#$N@P88V1."G*S*==o
M-T=&B$$+C$"#.O5WI&+RET@[U=OQIL$,CW*"%+XPA"<X80I/8$+WQGG.F98An
M=WBQZ6N#IX#-]'8Z2T$K!>UK!\/4P3.'S4SQYFJQBESA:&IL&W="4X;C&<4^m
MBF&! EKR5/3H#VWG<0U]>@3@0?EF+TSB6'[R4#4A)-9U1#5A26*@@+$MAH,'l
MLQEU!(;6-R3JLXZIB+T@LR<TD%-2A_&-VMC:R-UBQE4F_ X9=OG:&C*'#<O2k
MUG!>%2LX#BQ<8.G3A^A:D=?*["U90N!A^BJ6 FV'QO5AF 'E0Q\\XT<_(# "j
MU1#ZV@YW6R453G%1,47!PQAX,&L3FE'2VS=)?6FOZWYBH0H' O>.X074Y,^Ci
MN>K5'I#!9AJU%Q26LK VS.$%2?CLF><P29(8@7C6)HY^WN*6I>ZU#'$X\Z#?h
M!&!5LZ],DDJCPQX5XS(@E",H&&" .L/B'Y85+6IABUM28,[,0(@-\@[.B#H4g
M[=9(E(F;!M[)S0BSEN/O:IT[2].>AK>V"&:<<40KH-1R'RHO^F%'R6$LAPX"f
MST[F9C%"BJ%_\W(Q>,><5Y-M")?[G%0]:M%%64I^Q)DJ$*&!ZQ46BQDRDW%?e
MJWQ6XBP5PS9C,!.2(4:E"<Z,OKZP>G&=":1ASF&7>G"OP<C3:XADS'[CM+^0d
M =]N:2;#>"TK6C&ZHQP96LE.ACY=GT4L<2SS882+*N<:MSV/[FW%/W/QO@^:c
MZYMA5\DO]T$.GH?MJ.K+>9KC9]EKR4"^_S37/75B]CU(+E>#MKPW6--.P:KTb
M4Q0LI3S.H\>0Q EAJ-@41>"%+6P!"SO(P@ZTP 815"TR+QK4[C>%G#=LZMD9a
M9Q8N4C-?@Q18P'4Z$R\]<UA \W/LXAR8(BF\$2.KAQ1,<'_#X34X\Q99(%%<z
MIP6O!@)8L (QX%:B-((Q4!,VMRFX\A>U8DX#YCEO(W-CL 8$N($A0Q*"EDQ'y
M!AT9="5OP"'I]U]$)1?J00=P\&CC%GV-8TS-=23( 7S#L3(V:!\5@RI?%%RPx
M)B:RAH&#$E24$C7S(1KY,46;P75] 1H!,A^P!T>XY16GQW5" #!]AFJ(QQGYw
M\@9?8(68<CDQ)26[X1H+0ULO<H1)>![49T<(>!9")#_K,ASP$B#EH1IO$S6#v
M0H4>%!QUQQX2:'(DL7.W$D>'4WT&\Q6JH5+G$2,S<AY(YW\]DG^NAX6M$2C*u
M-WU9F%IJZ 865!&.%FB( BT 8RQ9 X>D,D6>QFMO\6_.-19<MRG.53F[\AXEt
M-TZAF"M',RK(Q86<<BIK-"C.87X@@72J518KPC T0X-5*!>3\7KOH7.*\05Ws
M8'OXHR2T^"+=,6$DX7%T) <V6 (9(ANH)S0-Q4Q]YG'N,D7_021.Y$&B!%WFr
M\G<P<B ^V&B)A8"/(E.W(S]M@3+&@1QK1H%GD1E;HCB7=H_LY!=OH"6D 8X<q
M005TA!:BHGF0XFG =7WDL4[T4R:BI&9Y)2=DP2M<9R'^(1=J12D,E@=?\!HZp
MY"LE=HO-41=.I).'Q2)VT!7^9V>UH0!!4(/&@7C?86?)DX,@< 03(EM6(P=Ao
M@C*G0GVM@3\MYV<3HCC-YE (U01J(2AOPP3\0@>E@D1OJ7T_YY 'XQ8DN3:Cn
MI@ JD)B*N9B,V9B.^9B0&9F2F9CV @?=(4R*$09 L$ N4 =9$DQAH !0 "A]m
M:)=C0 29:4= ( 8A\DEUIB!"9 <NP)HZ%)H*H!6XF9NZN9N\V9M8D5S+10:^l
M.9Q"81,8\1$@(1(DH9PD,4LSD!']TQ(V\!(U, /5.4LP0 .0LQ/$V9U481Y'k
MD111X118,9[>>9[HF9[J"0#*Y1NE\0)4Z6%YX%9C (9,0.5%ISU%I^OE1'Uj
MF1$TD)_NN9\#))\7T2GV"0(7(:#,!9\%^FT(FA$V4 .WN9X6>J$8FJ$:NJ$<i
MFIN"56(-Y5!CT*'$R1$7D1$CT1'(J:(I"A(F01,KT1(U0 ,O00,U4!,E 0,Oh
M(0/<2:+K"9Y(H1'F69X0XZ-&>J3I.0(8R2(@P -%@3!O$#P^H !*2A]6UJ1Sg
MP"PO4)122J5+>A8\@"ERX!M=6B-X$$?;L7,@H )9.@=?(*:B411;T 4[8"_=f
M(18H 'N8<09CX)%]@10J<!1G8 =SF@(*L <!V8,J)0=\"@(AT -MY2N(F@!Fe
M(&:S8@8H\*1BBAPB0!3>40:[]*&$=1@\8&SI5P8^@*6CZ@:GFJHFP 5N( (Id
M4*<)L%A'@P(Q,*M#UP<!^0(JT"FFJ'1@L1UF0 8G\!8J\ )#5SN[408H .Zc
M"A+,.AFX&JT<,:W."F%U.G2^.IA&P1Y[1V]I47I ^&ES<*P;@D82DZQ#1S*Nb
M008HH*O<^JNNN!VE\AROM:;*"A**6J^+.JA;$ -=@!S3(P5$< 52@!S0"@(]a
M *DMD*O69*MT@ +:.G3_!@?/:JT5<;$96Z<@05RU@[&"2J@R,+ @( (M( (*z
MJ['U]JM-67W3(2-( 1OW&BJ,Y@(NL$OL"A*5NHQT@*F:&BN<ZFXA!++0,:J[y
M5 )S *LJ"QW,\J:Q$J=TL 5BZAM=P+(2BP(SH*N\6J%(^K5@&[9B.[9@^TO!x
M-$QDFQ4F>IPM&ALK6DEM>Q+::1(QZA(O 1,N@9TS6@,]FK:[":3B6:1$*A5^w
M6[B&ZQ"**7%CVE"\<T9?0 9R8 <WU29KM4-Q>08)0 5G!@)$L"<Y&ALPH /5v
MJ0,R$%\QD ,Y0&F"I+C>U+AR\+B1.[D+9#%CD !&X%R<Z[DP&@,XH ,P< ,Zu
M, ,U<;JIBYB329F)*P,YP (S,%V+J0"KJ[S,&U^#A% (5:7HQ*0\4%.G)',Yt
MA 936A'8>Z7;FV7RV:4K +CFTY-RKV]\SM=*KY?VJ0ST@8OH)3@>[WSRP/Us
M>TJNZ5?YF[[KJ[UQ5QWQ*Y:^>G*_^BR\46$DLR,20WOC%C$M@$9%XQD. S$Mr
MP(?)<[S(FYCV&0,L0 ,U\;RK2P,SP +76;WBVSRE @)/( 5)< 34 SW2\P50q
M$ 1'4 3ZA (J@ +SX1IG4"H3I1L4H@(I$$,Y0$,T8*@MC"=5%,,S7,/1,SU-p
M\ 31T\,^#,2+09(,TY1'G,1XL,0Q80.^8@*Q@0=YXL3JZ\)G(<4T; 4V/#U-o
MQ@3KDP HD,<_',1>7,0'MJ9B3,8Z>L9IG"<QX2L^D*HX8*@"?&3ZDAQS3#VAn
M<STPD#W;TST*(,!N#,,R',>1K#W<,P5XO#J,K+X--1G7N\EP3,4W#,K=@\>0m
M4\HCH!T&]<2)\\*K+,=5_ 5%,,E @L=[W,5#_,5&?!Y(K,0TM,BI#,6XW,FLl
M/#V];#U"@ 7 S,5"3,1'^\?'/,8T5$'+?,MO[,RZ?,/1S&34O,5\/,Q^',;(k
M'!-C8*@>K +&^ZLWR@(XX!'/*VHC<V<@LB/"C,T[EP!9PB)Z*"J;L@/ZU*U4j
MD >;TA[OT32A$09S4P;"2!H)L+/W91_UF<[8_!5C(= JJ8=>\P6>8CMML!@(i
MW:U. '#;2$R+A8A=83.+<='[FM']S-$,X]&8.] :] 6NH31?L!1W@- )T*WXh
MHC9HP2E"K4\8K3<:[<_7G-.*L=,A_04C+3ESD-*_NM(%Z-!P$7K_XQ9,7=-.g
M?=/_/'I_"M($_05I\1U$W:UV<EL%PM-RT=9E,-;0:],;?=:EH=-JW=,5TP8^f
M'6]:#0)3$&]>3=<@( 5!T 1X?5=EO==1W==3_==Z&-AO&BYO_:M%<%BGHMB,e
MW00@D*E_[!XI0-,(%=E0W<?9/!B6S=8'%M1E< :;G1PA?6%G$"5Q9" 5=1[Gd
M1@>HO<]4)]FL#<; 3=>P/1A?('NU'1@$C=NZS2FRM[F_C=IEI-HXO<['7=68c
M,B-E0-)_6MA#\*<K$ 0EXUQBH"/=S1MP$MPA<]W\3-SJ?'D??;EB4=M5,!FEb
M\9;1_ +5$Q^KV%Q=P0;6K=>K/=]^W26930:%G=\,P]^AX]^A ^"JT24#7N#8a
MS=?TC;D&EM4* -_#?> =7=EXP )Y4*<@_M39O>$)$!=PP (/4S*%@^(&ON()z
M?F=ET ,P0.,9/MDL[@;CR@+CN@5.D,-20*<?7N,:[M=]-P<ZSN/Q+>)H?10)y
M<)=RH.-X\+L>*Y:J797/UZ8H@K%>3@;6"KV!I* I7((>P<)<'N4K'M#(;=!Ex
M4-L+W="G M%A,M$530;NW>.L[=?(/=(E+=-97=1;S=(SZ])G2C@F/=/LFKY^w
MCN"5C=R8;7:34=N8Q!N??=N!/2&/\NA*[N. 7M68W5>UW=E0]!Z*W>E.U=1Nv
MON237M4__=U"C>EY@-3.V"Y@@=?"K>*P_M&!;C-?@-6%S=4XX]5.%-9SP.NAu
MSMIP7M5V7=MQ;1]S?=MVS>R1CLW&_=J_+=NTG="_ZMP:!-U%P2F 6=VN'N(Kt
MONW(W>W,#>ZV_=R9D=OECA3331D'AN%1KJ?N)E@E;2&0NN/66T;,P\QGT01 s
M\@53, 1+5L?K<\])7O#@# ((CP4*S_!?( 5/< 7KP\E3/,[3X\K>0_";O/ -r
MCP1!( 7K@P(5?_%+IO$<OZ84G_ FSV11-@6&2O(&;]@8ST(N--K(/>M!#18Jq
M$.R"C=4Y;^!QMQ[G@:AE5!%OGM; ] 563N-0K^%P/@:/BR=4?]Y6+^64#>Q:p
MW^1?;^.3KO5./>=)?O6B?O:RG?9E_^L[K?7H>-]K#_8L/O7V[0;XK=^$TM__o
MO2\5CAT7SJY/C_> CO;8L> -[O<0'@02WD>"'VB$[Q4%SO9_[O8='O=M+_9?n
M4.)3?^)W;_:>[^(L,/4Q'A=MP/F9[_E ?A2GK_5#7N0IC^2'3_ISO]RD7F>#m
MO3>%?=A[D]BW'=IX??MR+]!:3^F\3\NG[MFJ/OR-/=J,02&F??EX/_6=1QJ?l
MS_KSC?VJ109?(/K&[^/LGOS<W2&3 =Y'@=!WKZ=3'R7_+@<TW@>K0?=]0^0-k
M[V10)F538/M*3P=R@.F! *?'$=9=,7M"VF$+U+PA@/)4GO^C?]@/.U@*_&?Sj
MGDR4Z1[^+^)MLKV'QZ:> MD"I$>!= $7H/><2V[311IPYRDX6M8![=]B ('?i
M1P220,7WNFA9TI-X5:3#M4"2EB!@8*R0@5.OP]W 3>;B=N '#($)8@1./1<Wh
M!'=>ZBL<1K '(L'%H 2UWA-L TUPXN&!*/@"I^ <J(*?+PM6D3S !>> #Z0Fg
M27 &AC\Q^,+27AD\@T 0[>$X-AB20L^D>(->$ S:G#F8 B=>W7,#># &ID$/f
MV!9JD%B@@[UA7 7"'S@(M=[KDP.(4!&B \H!04A%52#XPH1-KE%B 8OX=1Ke
M<HC0RG'".-CU " BS'[@;PM.0A=H!O.@&D2%8; /5A%82 97(0_L@I;P"[["d
M[[<&9>$+4WZ"#;T -UMX!',A& 2&O6\P($)D2,N 'BN$@XU0]ZTUS&8#?:'2c
MX7JBD!A60D;H";6>OBB%D- :"HBUMMZ^FYIRAK>P%1I#-8C<RJ'Z@X3[1.=-b
M//AGE9""-L2%W% 7OK_K4 ^3GIXR V<@'8**@ ?E0IR>PD3@#R RK)01 VC<a
M00Q&LP)3R)Z%*/#*B)XR@'^,"E$?U$$0K5>OZV=CSFG-@3 W"5,2F=MR\VPRz
MS3,0@ -J M(76M*,7VS*A(0I@ 4T'\O1 1P 1@P V; %O@!#5$&C $1X!%;y
MECUY EREC B1N( ''H6@2!<@ \T+*/' QL=5-D5-LCP&3BQT#I"XE)\ TW1x
MFK$V/76O/A\+6'%D4;OTPHJ J"I" E!495$OI"JJ..A.VEO@ WR@-ZC%1^$#w
M(!551'H(19]D!L(PINK4ZBI!+O$DT!(VAP-?6$V\B4\F)^[$GO@3@^)0+(HJv
M#2D6 :78%,"B4QPCF2<J3L6J)NABFEWL,V\@*RJK%-?/N&(5\8J=,2SRNUR(u
M'-+B'3"+:!%UE,4\P,;:(@AXB^\!!<1%$# 72:.PJXN7!B_JQ=O(%_VB<3QZt
M*(6-"<974AA3HF1:B3F !K" ?Q03*9-;[' ]8.^!@/25!XJ>K$L#0$VHC<?1s
MA@=X _(55N.5XD:UEB?7.,O-(GHXPOLO9*H)7IC8*P=:2!>;;EKDEC$ %O#r
M53( .;2[V#;O=-5AQ C;T7^PN7ZR&\*C"0P.Y-$\KC6AIQ[3%PIHC^_16LG'q
M][85W4!7Q(\D0S]>2#>0IU"'%_2/;A% "LC >(0,),9J"0H2VC'(V::KXME*p
MS!#:\45U1WGF%HM"@!21 \_ A<0N$2'X(YE#* 00. *]JB;G&!:D GE?@ IDo
M 2A0!'A9Z%@4RC'.,;2ST+ @V2[3DES22S8VZ>@;]8FB"@$N#@28 #1V!:WDn
M..QI5RTZ#L# J$_$XPIPCAL2/=(ZL& 8SUP,F%';T0:XE0EI)&=D11B12:[+m
MH4CLT"1G8S[TCV5$2N8Q+V@G :) C!%G#(TEN010$?*8F&QH91)+HLDN&<W l
M9%X\E63R2D:R5:DFFT *N)6!L4UJ2CCI?^0DG6P*JL]._D4]J2NOR8H<CX"Rk
MIW%(0FD=(]./;%[;43L-23ZI3Q* "" "(D#Z+3Y:U@*"GJ <>G= .E;+!* #j
M1, 8P ,J2P0@#%DU(/4)K\J4^B1%[D=KY2Y!P"D["\7R"U"].2#8O@ *,)=Vi
M!%9Q 3I %-UBM10!F0$."$R":>;N"N^Z =LQ!RQ*04(M]<FUS):9:EN&BVYYh
M'M,C6!"7U;)<GLMTN2[II;L<E?$24*A(N<0B7V2[I'_W<D\:S 2@+^N7OOR7g
MM8,,+,R"^1L/9L+<F<T2,OW(E[ =<<*T=(LC$E+2Q]4P*>6 8+D#+'+,8<K?f
MJ*A@I9U4E5N257Y)$! FJ>28O)JS,FO62C;))VLFO[R9(N!) <V9B3#+@,)Te
M P.3*$8OWL4"9@)XH9A($Z$H3279-)\FB[24G7 .3$U-V4!R8:<,B"4G5))(d
M4CG:)J'71)6R\DR*S5;)-5_EXXR59O*&T<IH9BMQI5O4E6:S7_Y+M0DW&2;;c
M_)FEDRCZR.0% T28#/A=1_,W)LTD*2F?#QO 5%(32@9&194'2! /N(*2BD_Vb
MSA50*.\*Y$AAD&._3,C9.1_YINW$5(!3@<!(JAD<>V<,^)W LG $3X,Y/.O4a
MZ@1AKQ,'U,T4%#OU28=#EG=2#RW+H<8G!R.LX'N!\5W^1B:)L9!D\ZR=I<&Yz
M.,GIJ2GS@ ]@@C*S9^:!0%(\/0K0J)LV0'GBS9YY/O]D^O1IW[+6M4_J"#_Sy
M9J:DGX7S4L9'VAGE0J+^C)X)@G_RSO_I?[:G "6@0?,QK4090#=E0$\LGQ3Rx
M+;2 9*D^(RBS-)CNLSI:T/F)'?RFHP0!>Q-_=@HYL#]UYW?<#2D#4H'(AA@8w
MI:+ >Y0<-,2%1!;!!HHH6]R=P1$/F%#SB41GJ$<IH#0!!M3-EI@R%B@7E:$Tv
M%()Z3/:)0RGH@)2?":!+^%"7J3>CZ%,+B=BA12*B7,@_SZ<77:(#THENT/O9u
M0?$C%=6CWN=2&E'JR1ZW: Q-HE\TA3JF%0HM90 )*Y_,DT0*T1"1!KZ $D"Dt
MF7"1)@"=1CCFPWD(G6AS9-)+4BH,00 J]9?J,@VPRR091\7#JLB$ 52?=*+8s
MH ,,G;U$?V<A7*$,9"24,H;S4R9S(*)]NII6+3?B>8!4&;,&;DPAF,B8Z,QLr
MI9!J\S5,CX(#Q*?R4J"!)'[644(J1?$C)_6DB-0+UD;480="Z15UBZ34F;K2q
M?2DZS26Z7*53[;Y0B%?Z+TLF2KR@MC1'3$)<JBMW:>CRI>5PW@Q36#']U-LQp
MQ7,235]12WD*35?@--T-*:":MLLXBMBRZ6[PGAYLA4ZHNGD#G)=,-)@B$UVRo
M@%@Z2Z$H.;VCYM0U?($E $J/ O^,I^H!=?!3>]I2?R,K16P[U9_2TNAP-&ZIn
M3<VE"<"@]M)NE5"%:2)MJ)NA&9Z*UH'1JJ6BP@-]D2Z:QL4 ,A- #H6?JVL&m
MI"#F5;K*:#A%J3QUI0I5EZI)"^GS.:<T%80NAG5Z'MJI316E.-64SE.;"4M5l
MZ8#\J<$OJ,K2,@=0BZI M:N0$*DJ580*3!7J4RVF]O*84E5FZB:S:%9]CE61k
MT'75KPI2C]<*S0$V@'F1SWS6,U,JR1RL@Y1$XE&9V@:L:"[54VD );K%MY2Gj
MGEP:X $]X!'N@#2P E: N"2JEF&T#;DT<+7V)+Q,JMZ-EUHY+*?EN(B,6 ,Ti
MKIDFUQB@ Y9K#($!9F '.-<P %U1)G+E#32@NIXWYII=MVMW/:Z[%'A95SP h
M$[1KHSBO/?.[/@[U.EZOZPUPK\_U98[3MFH03>1K1)$JDY@2T=SY3G^CC*27g
M-?) GH0<N=:Z78,<D D68\60/&$"\EB'XYC3D/<)PXSJ W( S7F@[LXP.,@Sf
M]YS$)TI8<V:47*95EFH_56M,[:2M5:Z^!1&*.F)K4:14%J*V[KC;FEO'U6[Me
MK;\UH K7H[ %B&OP1*_)-70U# #H;["AUS.O.Z B="M]P2]PCD1%LKR!NB[9d
M*Y>G^.%7D ,_P,KQ@>O:N\3L=34#LPK*2ME?]3#LR)6-K[LTO&[9'F!FLUQ#c
M5+-&<3ZP"+141;2B=.4--6"7+-<Z>\_P*W>-LD813(B%@$$6_*PN3:[ :\ZBb
M(@#H'IL8'YBT<B"1-3%#"UW7K%X\#?;!<SA:^>I19("@':]6S@1,V/NJ9KN5a
MQVFSI2%9+<Y'RQLLZ:EELJEVPLXY/.MJ?X.>Q123U;ON4LAQ:Z]<KF6OY?6]z
M(MI>ZS#D!*-]LW]VOA;;)FL&P"&GC;+=JL/=%L]!,3X5M*6U9V$&Y(!IBVGEy
M9"&#5I?V&UHY<WMF9Q5G4+;"-KG2@'$K:=<M&FNWZ=;) D!VJ\:@592%LMZ5x
MRO:+Y'%<*\*;['>>IA]Z5Y < ON4XE_"Y&).EQ%A0*&:Q?HBS-$<59<(DM<w
M<>L,6&1)KUJ"A'4+3>WMN?45>7'CRH$BVP5:0,:-KOJD(L1,HXA):A"'R*FEv
M >*.6GX5'%4NR^V+*$'C6ES<2@- [L(E"21WM)G<=LLU&Z?%;0%!M]+J*H<Ku
M<QN$R3FN\03>&LQ,&BFCG)HZIT(H@J13VEA"PA-[2'H$L"*HJ:)G&)!#H!H#t
M/2#)B0 8P 5ZX@P( US )<0 -+ 344(2V(DI" SLQ.QD!NHN3#@#==<&Q Us
M4'?%ZAK(NS>!#31>&= &ZFY,@)LSI ;$ <M+ ^B Y9T!=2#O7@0[8'ECP!VPr
MO#( #XC>&> '=B+D$ %?[^ 6PH"1]$#"5VT@:&#J<H2J62 @5=QA"T3T5K q
MMH K#U]%N+T_3/:0H%OY]6ZOOR6124Y^=MW^>B*_7(!EJ!-B["K2*YJ^-"6Gp
M?%3Q 7%^"E"9R7[C\76C_U$T_% "20=L)*[2CB!V1YX!!%L@#^2$-0,5MN+No
M!@P+V#1LO.&P'I;!]K00RP9Z9$A-7#/@=9)5D^H=YZ=]^*%!U*WF3[=@8,)%n
MI@* O"U#+8 6!]DWFOAGVL7+2S$QX@34>()XXDCC'PRR@?<8J?O4[./9R$Dm
M?@@60=*P+Q&5L6AW5$;8]RN ]9"#Y9'1=0??W_QK4<D _[UL_G=O . /NR"5l
MF^S1O>S7_1[*'IS<Z("W@\)"6(WAWSQ6A(_P%\!L&[::,F$=Z81%[/Q+<BX8k
M).+'%:08X)6,?1 8N -KX*77@7_5!Q:E(5AB0"H2'!E1XO?\57:7>8G;\DDNj
MD%)<X(&ID30<I1:\-$-B:L 45GCGN-8V"5M[ !X8D!B10M !:]%_W&P:=8<[i
MIX!J)^V(PE#L636P_L<0ZR%/D8CAU0=.K6FX/CGBQ0")WZ'V#9PT-J988DRLh
MX8P;7.#$[<$3/U!0'-XD:6-:B<\)8EHGMT):$P#7;<3X\1$K-\DQB7<GZN@*g
M9,#T8>,K:(+/' HSL<=I>>[76,PTGX\TML+4& >+4CV%C;6Q'>'&UNL/MY4:f
MX!*;%P,FDK]Q&V?/-M #X+%;='$]0/2YQ3J91O,D (FN<G18K5^ W([]SX"\e
M@N'Q'>]C6 R-GP\5)4VVF,"^UAK+B\G? ?Q5>GBT96)CYBNTZ0FC42/L1IG5d
M%D C);*,X\?^^#<"9('\&PGR S7(;@$A]U"%3$?_L?^)R-G8(0=&B*R/7S)%c
M=IZEX2*;#%NLC@OL6^3(@7$DR[R0+!;GFR]&8FCAHQICQH2,<<+THB7-6 6$b
MY'8(3-_A41:B2OF[46.-3(FOL1UQQV0@)F]3&A5:2=A'F9!B>2&29>]FEL=Qa
M14[* VDIIV,7R4?7L5L.RB^N**L^/WR 0=C'36'B-B,T8\5<./KQ1 Z,,_DAz
M[V.]C%F)W:C$H/22(;]EH3R0]S%0CLD1N)R^59FJ%JHR-B.+X= IPT6D4!S7y
M6FFTBN+2#2"%@GP<MZJ'.V$W@!23T0E)F6'R9?;)<" @:^:7S)EML[#SS!>4x
M4F*LGBR3?W)#A@/+6?6=YN,,1.VH&E[-G;0UOV&\!YM%:'#4S<3Q)O=FW,PGw
MT3-O%FS(T</)8W'K$E&"9#ZIOS%FODG=G)MW<TD8D'6'@>CF0!)RG_* B<1_v
M"@)[9UG\8K.':V88Y7D=GV?:K)ZA(P#IS\T93SYGE"**<4!=S@&<Q8SJY^ 8u
M OAS>_;/UO0W!N@%,Z!;0($^Q[:8.J=FF J>'?1XSHWGP43+Y@F=GH?EA3[1t
M&5JD;>B#O)6?5^)""?7Y))3/$3W:2G1L[IGN^3\'QA4]VEKTBZ;%T]AY*.B7s
M^IUSKDR% @\Z\>C&)TV)>71MUM#PV3=CZ/><6>VB* :M*BPEK.3 R*11@)->r
MTU+:+5)IX2@'"#3*A-'46$8OZ'+LI3LIF+[1&BY"[^@J3:&U*GLVF%':41.Zq
MSJH2C_04'L5+VNH"!Q*MHZ$TB@;0PX9%]VD7C3+3LBUFQ$BY4\C4)A"FH4YOp
M(--8E%'WZ,X<'8$TF_;,JVMUA%:6$*)/<:W2U/OY2>N3*)VB$\">MM*E.C";o
MPP0MJ+DT@Z[1K!I1^SA%_5K-=(4>=K4:4OMG'YV3B[1,/-*08X3=A$S-&X)Un
M?^X!Q?I8C^H";:JI,:I6;7H*%@I2<ARO>6$>>')H^"]#!]52@P>L2>2?\GH7m
M!T9:J)S]<JK>@^ZC7U?C3/D5PZ*\?A#VN@57!#SZCN+1T7!6=#A0B(H-+ #Ml
ML*C(Q:\ZNGY=V?H;HS0#3'E3X"BU !]@L9=R'*"7ZII (]4=1@48H,IFV?+Hk
M"\2!X6LR@2M;N,"3XLC"V20;EN*K]_4!8M57=HKW2!,<J56UK#U 4MM%IUTMj
M]8(7E=HHK6*>44CJ+=<HS!V7MW/]CDLX.BYWJOA(;^"0!92 $A &^&[JU-K6i
M4GP\A[4=!DJ</P*:6%>?Z(!R&08PYCM;J6T 8_ZPJYP"A"#<YMOW=*-N;0<Jh
M Q1W L #O55QPTQ@'1SA;@]HVMXU7N(X=*VXZ[3E-AO*\7/3DM#=L%I"@:Z6g
M8=MDZA//7;JW5N9.JD14=?_J<EVY&U97"0)3H$N>;"FPB$^W/CFDLIMU]X!%f
MAE2?=B,MWE4;A>;J&+"K<8!=$=&4NTEWZF%]Y=)UJ&;4?AI>MFLMW:SY*XV>e
M*/R:U]QBZ2E* _8E'MCVNF"S57+L04-/PA;?3=FX_L:&G0<R:.!D 0][7WN>d
M-0B+TU?YA=<UU@W<PI9-)F-#G?+?Z4L[V(P!" *ZAV^0 ]WAFS3PH7$=D$/Wc
MF ,!*#-8\"DP0L:5..D>2]&#;W!J4X/T0Q1*7Q7A@A.-D['!24;8%1X3_(5Ob
M< Y1<38X27(?0/2 BR6*+< )^ 7FP!H;*65L#_RQ#7..EG^C\NOZ*8J($KNOa
MC-7A)*'\DH2G/,#E4>0.&2@<).R3[LLI(=5K6=G&QF;H\%WY(CUMK9D+N:;Vz
M7.SS(7R^CZ_A%1<#U#'.+C[:/&7)Z8L>X0>$WT]Y%G8)0OP" %%7==^867[Gy
M>"Y$H4Z\YWK!OJAD*N#^ZQXH-^5Z01X K4H9XTP+IP9G5FQYM$L(1HPX#<M&x
M5,Q2%,XXQ5(",-D-,&5_<9Q]L74VS+[>?%IFZTJ:;;-7.0'7V3R[7?IL- "Tw
M38;0CK83_(%'\*(]+A75&$#:M&1.+NV6< .HMJ;$JE$;L\9G9_ZXN;8T]\V.v
M^Y%>[8XY*-EGWAZEF(HZCTMG_+K-]D));R4@0=)MMQTWX;8(D-L@@&[;[1B u
MMXVVWN;;?IOFO'/!G:D^<N'&J'KFF^]SI7O>NJK>%@%UNZ>.\P8*J1JWUH;<t
MQ+-B3F[:/=HL-^;.VVFO!W2/BM.YHW<#*=T>@72CZ]&=%S\WA'G=85N<5TOAs
M78)\-^RVW]*SHU/TCZ[1&5ON9C(-L'>_[D.JTE>W1[?<Q+M85M;C+=3U"1Y r
MH?*XZ&K'&O Z8:CQ_I ^ &L+3N1MU*VY<T[35C&;^]$TNCZ_-NK&5+*;G,],q
M7=H#<H#DMI<_O6$U<ZT-Y@!$_53<#7=H9UF":[0S>D4TVL:\89V +7 "7'I&p
M=^A85WB?@"+0UU\W_7Y6)F[Y>G7!W@0*>][6GU!XI:?U'G "B(!CM^>I>[%/o
M]A.@!2[[.&?#%O@59^XZ+14I^PWP[.,R^RGLR.[39WII/P$X +572X2=&58[n
M7(>W6/9Q$/-JV7*$X[AZ<H^0!] ^*; #'B&0U=I#[A%V 7P]UA\AOL:Z&7T&m
M*&Y%U>1Z $T_ 3^@KQOTN [,9\!N'^K7?0>< *4=W(?[PW+FQCVBC_6LFU^Wl
M:0U(72Q@.O5JEKS>KVI4O^:XF:I7\VU^U=MTUE[OVIRKVU!O;L_!.4P/H8Y[k
M1(YSN&O6)3I:G^F6>ZVO][;N-F=D]XVY^?FGV\F38,DQ? +8 R5D3P2,B#O&j
M/7RO*^![<%*4>,9)SB\\B_?<&[X&='@6KW9G;W#HB&.=NX/;"5YQZ'IJW]PHi
M(,6;#-O-P6W.&/@!(+Q#1! =X, G1 1G[;74L%9TWQTE12Z1X0U[_03X^!\_h
M*33Z%,#@A2$S>'7V?F@SM]I-KH-=RQOVV%B_U:D8M9Y0GLS#UW%YYK%\8]_Rg
MLSU TM&\K>,Q_"ZM[&H^;Z=T/CKF^_P<1_.='<]/QV3:A@_\7!7M?!ZW&^TZf
M?Q9.P&E7]'$T?,,*1R\X"[VDI_-7OM+'=DQ/V\WAIM_S]MS04WH0< )0@)9?e
M]7T]T$]ZCL!1)\5"5.%TX(43M=>MZD,]JX<"LA[4%TD<=^N__ J'X(C6S-/Zd
M7O_G1T"PM_*UWKXX+(D[Z^4\HHV'L_[/CX%G7RU7.;/9#3HD*9F!,$$6(%42c
M8'A.@ EX]7\L*L#XR7@-"D+KN0=ROQ"?P$V< E2 #S@9)L#PUKT#MO602L@7b
M\"8/P0W#F(^3'9'/;^9;S:%Y_:<7N=WJS_N 5U\1N!JYJ4^+)BW$VM4XZ2,^a
MFJ?LNZ0BV)+0<#$ROHKXMNYRG^3XAT]J+W@&!U45L[<[]QU7WHU<<1]7QWV]z
M)_=QM=R?J-&>^5X]HX-P0.'!O;HQMY)9WE<8Q8=3;:K.HD'Y'SZCY;CN0<(7y
MC;\W]/3/E#_UZG[=L[OG3/4L?Y<.?21$(KZ[]]7KXIV\CROA;N3..U5/[XX;x
MX,ICIB[":@ .*&'X>6P_>'94T?OB"8 !XUV9CP'<>@)R0%^GZCO_*"SW#"&6w
MB:QR7P%CH 7\_1,0]UF^,][[4K\'T("O'6<5O5U7W+N\@3CS/W\$7OV?!P-Jv
M'L KJB$' XHKZV^Y+6#,)X##_OI-7%BW]EK[SP>!U%_@W^3K+\E$MO5'[M<]u
M^]G\AS1Q+>#W9W. N][_O! P_6B^#/#^<;XK?S_,6;G"/Z)_\\->XGJG\H?;t
MS-^>__DA /VQ?!B8_N/<]P=_U[_^A__V-_Z0N_;SQN6O=<4_FK?L9A^\AP#Ks
M__K=?X'G_LG?^F?[T7_M7?.'YA%V^5_UM_X!?]A?%^#_47^'W9NW GQ_ %[Xr
MM^"A>48 ^E?,D6C\7_NG_?U_QM^;%P V@+>?!3@N_7G&2@*X^BV U]\6T/JAq
M4.\?4U2_E3@48(%G @)S)P 24/Y5>F: !OC4=8 -( JE^@5'0X[ P@ &++"?p
M[$?[$5D"BY"S !* 99X!B.4I =Q>,R53?5(U(/5W ^YX)\ 24 7J4C(5394%o
MCG-;(*EU C !7V!2)5,Q 3Y7ZU<"UG\7H)V7!IY3K-H8."Z5@7\>L(?IJ8&&n
M6AMXM4"!W9446.D! 7,@:S:QV('5$AZ(YK4!A2",);;=@7#@"8CFR0$^('@'m
M!+J 2> V-9V$5C= C:GC743'=_70/A]@)_2-OA1=H:?,Y?XR0&+'PS0^*U<l
MCU_D-_E5?NT=UA4*9GX@7%-0],5;O$$N2/:U!IX?D"?P$7DTW'6 Y!5Y'@*3k
M-P4(<V98Q13ZO3-4'>FW [)ZJ)\*2 2R@*\?# @"RH"<GA/8 Z X%\DB /Nj
M?M9@DW8)9G]*H/&G3G5_(R F^ 86@/8?EO?\[1)_GO17#MIIYZ #^ %"@.H@i
M;=3]38!/8#@(#\:!E1[Y1P^B>>??/;C_88,>8#K(#:Z# .$W./\)A%%@/%CIh
MX7]PF_I' K: Z"#Q=]BM@^U@ZP<.5H#B(!>( &:$'"!#V ^@./<1T@;28"(g
MH#ZA"&)Y&:!"F ^RA..22Y@/L0 B8$R(^PF"K%X*B!(.61MA-AC[>83]X$Y(f
M P:$).% * EB>3K@08CE]8#W8#XH!/9^U^#*902V@ *+-L@//H2T41$XL/B$e
M,V&E1P7N@>?4)Z5.D84EH1GH!:*%86 WR!8ZA3@@&@@7=E)LX%K(%-J ;>&?d
M=^<1?W2@7+@7:H%](9JG!P*&7YI@2 ("@H[;GT<(WH5=CV+H#C*&N=\BV A^c
M89S>.U@1$H2L'B58%:J$F"!2UYC1,Q)3? <[-6/CG()'!A:&6-ZYL@>J=N*;b
M9A@(6H2L7AV0!I9ZMAU%.!N.;7R2@@='I4@"UI:&P,@SJTLG*#[A ##*A)0:a
MZH:-(9KG&A)_L.&I1^@QAY4AEF<;[H&XH?C6TR6"\):+QP6R :]>MT*%0!T2z
M48$@QZ5_/=?KA\<)7>L?;@4TS'A6GC+GVX4G?9%'$2H5<N-<J>1S=84MG9UDy
M_2ES^"&H9V$1627+P]+,^8<+H*\0(%9+(!X65^!5!%1(&Q*Y]%X@ !*@!:@ x
M0,,KB FN>%:>1I13/5/G@K0@(3(W"^+)! HNB "7BR?V30%5GWZ0/+AX$&)Ww
M*->=!;A>7Q'R=2NJ1U\A)#1]"4(<IZS B+M7Y68GG0!30&$')+)%@TFUE715v
M/0%B<[*7I3]J"C3U)"YK1X&JE>6L,4T7"J!NG3?NT2*SXH$$65^3R!'<2V*Bu
MP24DEDEGH)$87S4GV)8*(#G$(Y\!J2!K.8A67M7%&]")&)Z96-$-B>#AC,<Ft
MMBQOHI+GT)@!<V*9*/45>\P@&Y#L 8EX5H"X(KIP2AX:\"*NB9O:GH@F GY^s
M(@-GS-EX*-"1R!&D/<6>KF<HDHF>XHF'*#IY!I^A*/"%BI'BEPA$B1I (JE(r
M*1Y]:.+SERF:B@&?'23M!7.HHJ(H)J:(,V(,%RE.BL!<DM?CB8FK(J22Y'D(q
MKB*M"*D<2DI?MX+JI"L> HB K/R(E"*(]P<Q<88BJ*@L+H.]HJL8([9W0&*8p
M&"MJ>&42A^=I 3\4P@MG+4I40**VR"F2>(8BL&CEF8N4(HQ7)F%N\>*A^"URo
M=*JBKCCP%7D HZ=H+V)XO J0R!Y *F!7I-@-OC.+XJQ8N>5>"Z)]%\WU=]/<n
MGN0=[G=L6GS&(09X#U175R(.>AK4@I@P&FWFG!V SJES;!L[QS!MC._<0C&Wm
ML6WS'-"T,>YM")W?EGL!;OP<X28$Z1DP8^!&T)E")2+B-LH9;0Q=).4=0G2Nl
MXL&8 A<. >QB.&E/<,?HZALP8J4(D@@)O:&XM0%=7VU!MD7JC?%B055W,5&k
M0(DED-*:Y:U],+^*XK6\V "6U+2TNN XI8]8Z-\@K_1O!/=( 513W@2!@Q(j
M:Q=$A91L"?4)I"("_ "(XP\ >_U'?\J:(CBR-0#0&"=C442U$7*@!H@-=9L:i
M$&7=6%)=O2?.1#(.SX#4M75S09I5LYX1.C*/0R>/P8TND:*$S\A$<R-*UA+=h
M9684M_860"JYS"=SR4P!HB.TXVWACI_C+I/#[#"](SE4ED6):<SO\CJ-<1ZBg
M7@6I1(@1T83H*[I%L1H*D#ON,E=,]& G-7/5$ERC:\P,KH-O 'S]((*C'E=5f
M(2JK(THVH8!EL..9XZ$=A\$9WBC697B3 ?4'[X04JD9M](<P.A."CY@KX8<(e
M%\3U++9+R! VE<:( ?=,3$! DF%6V+R3 0\,@09L/GQ24V8%29[/)!IS Q d
M!M0 E-IUE+A,)PG2=(+W429S8TMDS^0 M*.O]KM%"<K4UG,=+$0B@ HP!(0.c
MB^/6)4YU7\B0I5/ %9"$32&'#.F(:10UI-G<6-T*Y$&+G 4\ E+ =A00R@=Qb
M(!:D.LB4,G4P.!>LP7\1@A %94)5M3;*,Q_D#2 ^)5"O8P,61VE,?$X0F811a
M".F+[2CSC([@TH!4!.%X-=D^AD':CO_4_&;\K3)8 NPRF0!]%**! !]!E\ z
MJ.6LQ! L% M@ EP=;T#6D91$CP$0=$%_M5\'DEC@?A&2N8J56*SPA'@ "T4Oy
MA0$]@"1I?^$!BM<CZ7Z% 6,6'G#/8)*A9!!6(*D4J"1\M%]U*TZ5&# '&&&Ex
M AW0 IA:$I6HL;HL,2F,Q)1"TG<\E#151CY08!ABDT;2:@#$&LG-M9&8F?^!w
M0?I\\80<R? 1:5E<E5-?93GWE13W&VV)3)9]!<4U)Q>&MX@+@HL%GZ^8Q34Gv
MVV)'U'TU.=RB$^=E 3P&'"VE$]YO>*0>Z<SPD0.2'ZGD!9*3PK.228HPAZ1^u
M@'4X38MD'-%(T@&B9"3I!DR2_V0*8$F2 9BD)CD@<9*>I(0%2KJ2;M$.1DK&t
M$*=D#)%*ZF#UE\C22NI>LU6.E09P;L"!<)?_6$#\3Y3%6_E6=T]S N)10B\0s
M<:67/4.M7W0UL3U#Q)4:Q %!4[A/"A !R0$34$\9B<!/F=).F0ZQ7*\0&3E'r
M\I1@D)]TK6$URF2@Y+6-2DKE!]133CT\9/#C%T&5/N6*I%/6/TOE5FG^9%B"q
M33,$3:4!(( >1U.:06:E3T-&@@"[Q ]Y,D!A664/%%>"1V\E4\E5[C[!D#$)p
M1&A(RM* MQY]2.Z1*YE4AA%X@!I0.N)D<P!A*:1A=9,:5DDHH !JP)-#'O o
MW4%C&66I <>=\05.*I5=0E$Y AV56X :T 64CL38^A-3D@29%"RY%* ,LB0Mn
M"2C<DCI+3;-%KD0P <1T Y@-)LR9DQTM+R8!"B,_UDC^I(ZBL. !V@F]U*W$m
M "] ?#$9] X;WU#FUE%4%:(6$%VR/^G+R5A^?9>0SKZ#.JP!!E(F@0*X:F2 l
M6A &5&&E#**2Q>DI@Y%ST:TA<!Q!?#D:W(YIS#\B\&1Q>UH@85]2"N"71Z#,k
M591:HGK)7CHJ$*01$ 18<D2-+R4=1 UO228!+]:7%%20!RC(EYT>O.,;N %*j
MPU)0*4J8:@9%XWE,F-YE>-E?'1\&TH,YL<1K=P91P%Z67^[E[H4Z_)?X90RAi
M7WZ3>QH*X%]>F/<E@AD;:%P$IE/C8OXVA,QU!6&4,B#!-WE[T9B"7'=&7^*(h
M@(*?(640 ;O"=B!\? 9O0:1@@X@2EH>6*7$P"X&#B?F]Y4>(QQQP7HYG[)@=g
MH4" .TE>"ECIB*1A]CP.B 'Z:514(7!86K!D'E@?),O#::P'?2-2J08 /Z4f
MF5M R<)GGBE^)MZCII"7X,]X4084FD@.?9E7OD#8F R4_=PAD JC.>Q$'ANBe
M-ME75III4/;C:"Y$FJ:CV6EF<67F3;E4ND*7)FGP38Z:7^6JN0Z)FJ_#-ZEId
M$IJMWT)49MJ:@N87]CI@@@N1H_E-IIK05![C:"8R9HP) &%DB2C L>D#R'@Fc
M0!/39)9?2DJQ@B> %# %) E70%/@#:Y^DUU,>;3:&#^-A01*(D#C'%"IIM"b
M;D*0-X!#E\7=@M0F+7-D:)/A9IVY7JZ;:0S0@&ZVF.KF'P-!7@3?9(G)$9"7a
M\ AJ,+&DF^PE=\D1[&#VYIV9QA0!1$"361$0G.9EPTEDZG#:),&I8O9R>J8Rz
MI'!6! SGN'E@( =EIL1)')27-4B!:6=>G!Q%=SEANIE"U @A5T)P=<;X%D+!y
MF-YFSV4UI4IA4YI$.75-:TV5Q'-*3CYGZ& K^4K:9*DD'H%?7:4RA&0R<+@/x
M</!-&EP+41>V]TR=9T.=,0:4"Z82?H3$#)43D!TW?I4!IZ61H!T@!TX2(+/Ww
MU$9L)M89V&R=]1O08Q(A,7D,[G44?)TT4-@I?E$N9*?Y8';J(BM &D!S))THv
M1TCT=0*67X .B1S4/#Y/$= "")X!IS8I*X($;R?7F7;BG3.GWLG'E9U> M (u
M3EZ>0B7BJ7CR/$M&XVERBD</I*>)>!J0K9I.(U3FG=W"%B!V\IV<YY'P33)#t
MAX49&5CN#2O K.,>V$*E9>SI!GZ31=@<N7H*EFKDK\)&2E!97!'T3'Z3X)%4s
M61XMGW6!A[1$F9Q7D/'9WWEFW27,*8'E1UU"8&-S<E4X9Q;7=(*(.:1W<WLBr
MGFHE,<G[F#K:Y$_I?NZ>@P'QZ53JGLG0>7!,;I\H15596%Z5S:<S^7QJD]GGq
M-)F3.8@50?1Y+&5(U.=S8'TFEB9GY5F_@9[IYV2 =AJ>KV?F&7O.GK-+[7EVp
M$IZ,9PM1!#29 B<,1JC)/($-R7 '7)[0P5G4BQU ?0J_\R&VF>G+3I4SV8R_o
M4=OT-K5SW5?:%!=$!T11]X4S]FU3WDJ%+4D_^MQ05-'-H(6<::56H5;EUU<%n
M'>AP F=(1(7,G$="O )C(J"58HM4-OIR]&:(."9@EQ:B"K \$IZ<%1=Z,NJ)m
M*, ?IQ"E*N<=&HI^97%N:+FWQY4<WZ3,&7[6G!QH8V!RSF"F'MA(1/6AH-(Wl
M28@6< _+J_F: HK* 4J>GHWRZ7R*$:1G@J/"-IVEE]5*'XT'URA1Z46FK[$k
MF&PHV=@[$'!/)XC7/')$V:49NE^2!&FH-KF&=J%U:),R[3V=YQ=A!#]E<8?Hj
M0E2'?I.QZ+1'?*I,>VAK=8B:G%73Y00V$9U:4Q#@*CU00F?DI#E-3D:G@GA.i
MYD?[T3#ZBT9B-A@*8(UBHF[F__9]1@> 9"=*%MD,-&B06*4M<&72,"J'VJ+?h
MY('U32HJN6B9%(=.HYLHP("%:@<6'D>@AV('XJ<URH7&HP3(-VD4+ S8FIR2g
M:T(J)H &-I#&"%N UT""C$"GA<X6,18;3T-!.K4(+ M10KJQ+:2/ID,JL+@ f
MMUP<<(W.G/WHWCF[N%O:9*-$C 9'.Z<S.CUL3EL3T-G3-*.9TTL*C:Y)7.C(e
MH#)5HR:I'SJ2!H=> PGJ?:IF.5>L80Z-G8A44%I^TES+"%F0;+P8A /?28#Hd
M".R"T7%SZ5G]!U(P!N0!M4/C4"HL.M/(O(G"_2J6QZ#PL#P&8RFVZ&WJ1FI1c
MR=&)@3]X:,XYVHBBB@$INHZ^3YNCI-F%6A[U82/79+"4D-R%P8ZZF2"G'<''b
M+41ET30"J1RB&&<6UZU8 6:&J? >Y*(SPQA@KI@C60I]<$8H!NK!'#!%T!Z(a
M9-81KY"'L4*$,"R<D[^*!>,\( >"AX:1U,@!+0?*X&5V!B$';Q AU)FN@I@0z
M0A@,B\-1$&0 "*YI9Y!T_BIJ0>$ (J"E( &HPX9:'O)HKJ(QEFQMZ=A9-3)2y
MPE%T*I7VI2OE(X?S+$>'J3K)$82"A5QB.G8BIF(<86H4J1X1"1D@>21E+&2>x
M0RC4+,/'A.EII4AE9G5Z&[FEV!@?YVXII]"!= 'W*,LDGC*=PJE]&6?.::<w
MH$W);>34[$^-Z0GZ."ZH&PYN(R/H!>TE%ZJHS#L3JDKIR%U . _AF55\!WS<v
M>8FAUFUM)Q<Z>7Z*NH&">F<H:(E+-\&X %^PB^02FCI-ZH,+<+DD %< P]"Yu
MU"<)RJ'DNP O[UU)@+JH+F>.B\H&N"XQZ@LPHVH=F<OFLJ-Z%!G!Z^2[A"[*t
MBY!:O"1UI-A^$5S>%1 22R _B@^' 0E@8XI1)<"$&AB)#_%<W::VJ:=GZD*1s
MIMIMX$'W!::Z4M!C[-%VE:EU6R$WI^*I)4[B"3 X4TU4'9&F?A-L&X'C2_&Ir
M?<9UT%MX"DQ*525)@@!B*BA)IN86,9*UD-Y$JF7 I,H&[):LDS<U$\1.'IB<q
MH9J^,(:'C+$CX@JP =RAP-0T))R/EX24&(<!GQH8O:IH0*RZ)^ !LRI14*O&p
M<Z0!KIHIV2&N5(+:^PP+1U1HP*N2 ;AJL6JKGDNCDH%AK,JJ%U0=( 9<JC'$o
M#" $J&VY1::D!J0WM P@1SS\1Y8JI+J\%*J!T;9J*JP!WBI],+!)JY<JW42Nn
MSDUBU$PPWRDP](2NDUA4$:4JI4#"11RJ*D> T;2JGQF["JE6J]<JN:JM<JOAm
M0KI:37Q'NNJRFJS^1K2JK8JL-JL-*Z^:I_ZJS,?CTIY*-,-JL^I_V*IYJK)Zl
MK#ZL%-*S>JN.2FJ M2!S):PD'+@*!URJXRJE^AN9J^T!NMJR%DD"*PG@KN86k
M+:J?^:(Z+I"+Y#)@E!LZA(UJ B4 "L5V\*0R;R6!=S=#!"\9 ?%"I-X51BJ2j
M&K2Z$@2&B&*[X"Y/ZN[BW;%0HHOI,J1RJHZ9B:42D%9M4HH$>[PN@J0_:4FQi
M *U!#%!0BBFF:1^I,JVM_*3)X+:F,*V!##"WEJ:.9'0E%MPJ"NG3@ 2Z !%Ih
M'. "V)M0V. ZL12N"P.DB;C&#3K;XJI>BI(M$D.I25J)10#$1$FV8&&5V8HWg
MIJUWZZS MO:3A*1V%+?^K0>EW6J%X:UM*R')M\X!?JN$V+H*KN3$Q$(%:$E9f
M4A @!$@9*( 1D 2H/%2 PM-5) %! !/P!40/5D *L+(EKI:K4="XYJXHP.Z:e
M!?2NOVL1$+P.K_B>\2K#)*_+:Q%@!2Q?SROEJK@RKA#6*DE@?JZ<J^?:4,)Bd
M/>OB<J3"J%>K!J:46"Y':]*:N]0G3&M+(+J,6QJ"U+I-5:WT:^QBOT8IM<OMc
MPE9VK<-+[S*CZ "\BY5*:21UXM.,$CLU1F_,%Y#N!014P")&,TT/1@ 3H,/Db
M,1^8'KG![A%L# 8+PV0/0T 5, 1XL%\ ""O"'@$D[,>F1_)[+BP;TW4!<38+a
MQR:';:2&ZVH)J;1)NM(><.Y) >D>"P#O?*BO!WU@G H,#(^.D.[EDCV3O?<$z
MX'OZ7KK'\"BQ$9]1BGOD>BF)P##%;@;H'A,@49TP%>QTP1BI,AHL$\#!PK Ry
M[ B[B)FP;BP*.Q/A,BRL"PO'?@$AK!Q;PD89+>P0H,/"-SSL'!:'&3-[R,;Vx
M%:1&$4*AF1-D0(1L!K:Q#7&0*T/:R%FO_<]"1,3R249L&:O$^E),[#GQQ)(%w
M4>QF,,5650F %8O%[GM;+"CKQ1XAC8@8:\:2L4BL&<NNR&-+S$MTCW&R8E0Ov
MRQ.N5"* ;Z@W&4;#(;W:*C0PD89F\%@X#L'%9S0YB!%5!*-Z%N2KK0%+\JN4u
M#N[&G!$CV!EHP61P.[P!&XRH@*Y8"(Q!Q? 4D06TQX=:'6Q3*.1+=#>%4_)8t
M"0(QG01G:]ZGDL)B$QM^I&("<A/"%Y#QV1QF)EOVF<4(;I.X]Z98"Z(""J"1s
M&F*&:^MG/L05X<)1,!&N;_GL6Y6*[2&K&%.0'\ KE.PD>\@2<;S1-E6"B$\Gr
MP3L+3')41U+_9B\AF@?J/]23Q@A;3DBTS[8<_JQ^('5\%@O;_$30_J='QD'Kq
MD"BTE>RC>8@^I \M=2G12FPG:"&&T2)B&^T/)\D*<1^MQQ;2RF-V4]WD"6ZIp
MI=;R8DF9M%,:=_7=-$D+[<HV7;9A$NU9L11H/5)+"Z;)[#Q)@+9I/>1NWVM>o
M:$+X"G5G5I%1]0#"*_'JO2*ORBOSJCAQ 87<IC37\@#;JUX+U_*UX>OXVL@=n
MMLGKK23+;#)M[1=@/?RECYS=J8LT3G8M;N67ZC\<ZF/+UKJU. SOBO#@>UV%m
M94O7"K9BPEV;UW:O4(!HB[OQ&XGM7QO8FK:$[6I;O+:VU^MH"]LRKRM (X?;l
MXCRXTEH[\42VU@-NJ_"(L%: ]FK7-DZF;5]DVX:VU^L4@-QV27ZMT@;8=E^Hk
MK2Y2VW*OMRWO*MT& <EM8MO;+AF_K6-+;4*VH"UN:]J.-L0M=/L%Z+:E[7*Kj
M'+6WQNUWF]R:MI[M< O:6J_K+0K0WE*V%]!Z.]^"MHRM7)O:5DX@P'7[&]&Wi
M6A)^.Y2^8/[5"Z.G."3PB#SBU/ZP4"T/RZ;D&XY$(>O1:KCJZ7DP;1I<J(,&h
M=EJT:EF%-^&GA"=L5K= 5[UJ -M':\AJN#9+!^DL)2_/2=U$ ["/8J2>$EI0g
M##8#"\"'L #CGG? W/E4^10V9A@<!:L/+;4IB@G>A _P42A'NADEYRM(H8GHf
MJ)2O(*1!+0AD0G@32$Y&:4<LN1#<0D1ZP!$K&YG;Y/YC%$,!ER$P 2J M_?Ne
M@7MTSQBP!5@!5$ 24!"$N;_1C]L&H*,VB[L'P<%[X9YE>N<V =L#DA.]S%MUd
MDTHV(?FX@^N?VP8(N6TND4ON';FC5)([YH8)R)Z3VW.% .TM?YOB-A2W$H);c
MY4(KEB662^VU.*+"0F2]8J_ ZZA;@$%8FRZ3:^:Z<;-"FLOIKKDR69L;<<$ b
M<*Z<.^C2N22-G8OGZKE% )^; /BY@*ZPBS80NX:N%8#H.@%(#E5+CR%0'P5Ja
M^!/V3(I*$= $J+>KW%@;T3H3D=QHH[P. 4& $^!D+&)(I\$$)[5[/H"XFUXZz
M$]$KS:#,21E&0 <;[D*T\RYO).56<O);M>29NG4&;9WQTX:U\2Z_>]1R?HI!y
MT7!FZ%<&DV!1O-%R2,#-)N]*M+G<-D43N$[=E/PH$T:"W>ZWV^#NNT8MN8O@x
MH@#G;KJ[[GY@[6[/].X.4 EOR<MHV)M*&[ZK[\*[%R^Y^^^6NE4>SS7:>'NBw
M@M?@W'*W[BU\NV14MR@32 #B=;09;L?6%!P1,%=SHJ@ O7F T(O7$KWU[70;v
MVR:]X.33RRE *J\N'Y&]WFQA7!O0 EP$D5US0LC!2Z.EU^N?A;V^*_!*]3JDu
M:&_42Q+X?AN;#^?V"KD?6X$V6@Z\!6U/:_ FM": V[NRA:1I[R?2\.(%<\ZLt
M!29B>%SOR+#3%KP(;?V&\.:\$R';>ZTLOG."VF-#1KQR0;%$\5J\"J\SD?%2s
MM:7A#!%&XF,<E8?;]-9A-2[C:':Y76) /]8MU)'>UY?;4$BYIJX<8.4*IN\3r
M0Q1=;;EEEQO@3:Q'02VHIE<P:C[ PJ(K ;X\;;4E'W@%0"V\B_BV2\8<KFM+q
MQKLDB8BU38E5RTL"IL::44RO#VO,Q+XQ4N/8IZPIM:^E@/M27*#N?MO@RKJEp
M+I7K^RXLJN[PV^J"O;RKV!OKZKZS[I0&R^EFS:\C!?T:M--O%87P7K]\4O;;o
M:^2ZW.\0X_W.9R@!\S)O@:IV6%.@-8P3XB,<8<W6-%-40;.QV:ZF*2)UAY41n
M49)2>XBQ8DUM4+L"B'84;5(+M X0B^2M(M!"46'5=#+"7,!LC@>F 1,C8D$'m
M/"M\P A%")S((B4D,'1A A=Q*' 7NN4&/+471T#\#K74GIUX==V]/==KT1<Yl
MI_+A:X%;'9FO9;&Q_]HLZ]%S6^ FMEGNX:,"9[2M6/7:_\:]VNL'IM:>H!1Nk
M=U#O^'#E[Q 7YWYL.EQ(1.%ZIJH%'BSC?K@=FVCGOU6T1>GK0I74P!.+0/M>j
MUE@L@.:H3=)6)^6.DU)"#C: 2WG<3:-'\+"CT3:R-J5W6A%TPHNL)@$' )M>i
M'!"[, BDJC!#ZM"6O>TD1T )]P"+[?&:O+J4S:]+*;,910H%0Y&U9F7H!@3Ch
M/V9Q(%Z7N]D"IE- X"G$]K <*<N%=9+"G_ I; ;;PGVM^!IX/BS+L M\#&NGg
M@2?6:0QGIQRJ,NP"P,*0RC0<UXJW:4"6^VYBC17!+-P0I92T,#C<4@('FS!'f
M4 RWPH]F*,P,-[21)DD #3.RI[ ^[ +;6--HE]M3DL-2IRO*#L,%%:G4@@K+e
M26[P]>K_:J^Y2OFJ(KAR>:D4W!#K-DA@1AH1P[H4L?/*RKEL*&GSN1'+*26+d
M1PSWCKWF,&+KUUK$X,_+EA%3I 2I0SP#+,,5UDH,O+;$X.M+/!)_-S(Q%\J1c
M6J1; V $W_$$W%AV[V>P;QM1>P#)*XEL49<$W/$-<!1K!-KKSQQ-3R^.L77b
M[S]J4FJ6MY5OJR7QCO0P3$D,DP<+$6^U#8?#M7!<2X(\PQI8*0P*KP#/K7%Ka
M]":VV3 ^O )(P@4Q/IQ:YL4,;>2:4Q*>7:YJ.0X'O8 N;U47N[:D[=$KOGK#z
M?K%A3, M1'7P*H(I$'!8)^'I6#I08K$* 1<KLM%PD4478[W>K=;+O +&>\C3y
ML!=#QH$Q0ZI:+D1=[F#<%[?&CZ9AC! KQJ1Q=&L:/\:$<60\ DW&V=0D&R;\x
M!9BQ0NP@"IP 7.LPX>:]%FX>'-52%NNO<PSBJ@85ZEIZQ+$ V)ANUHZJO]]Dw
M=NR?H7(H6Z9"31R^.9M,K$VJ:P5P&$IX*BI&0!7 !+"!(2Y,[,HI;>WQ>ZPEv
M%@5B;>G+&TFCX"2P"!+L:2% ?0P?X\=/L?FJ.!' J.XT"N*-OM Q>=S*[6P0u
M(^%9$4 !54#-5O'V*?%Q@7P1F\?3:$70HF&=^**T<M&NP!JM(A;BFIROZ.WEt
M'?L _!D5ZF8J-))!;AHLG <'21YB1=PZ8\09X)$\$)0!<WRQ$1E>@3BQ!C.Us
MI$'2N8GD"':(MF#]RB/F!&S@)] 1U<<BFTI4!'9"N7/RL0N* 5&0= X*$0)Lr
M8.+&#3J"6%"5\ \4+@$W#&N-:21^5!G?P<WQ(/SZ&C-WV">J369;/K+>^EJPq
M %<QV8L8MP$K -J[GV*+F>CS\0</Q]I%F^SZFK]K2IS,P,W)(%F=[*S<R7GRp
MW&LSG+W29I2%T? J\6OKTJ;8(>:#T:HX9"YHP.;0M4X7,8'H$E[1+0+LZE*Uo
MMBF@!$G3')@/H+*HK+N0RJ'+ _M"";!SWQ=YGS5@3@,@1^[AESA :K->EGHHn
MF@R0).EF/LW_XBH'R0M1NXD9X6,RSQ.P!EP5?X)OXYMZ!0W%E2 ADJ8'Y9MPm
MO6&1HL5P,.[Y'^4"H5#.FARYFJZ,-_;*1>X9 "P+RV^/Z%$L'\NO"ZO,^R3)l
MS3)^HL^T+/2JM$PMCQ#77W.0+5LJNTT2C& D'\LON'Q<B,M? 6CP*/PE&<1*k
M5+5*+$7KC:J_+JW310D2O O>4NJ7*3ZK$<JQ9S <JVZR_#RM5)7*($$2[;^j
M*BU!@M02Q!?-V'.16-AO:*X/ +(X%@L#O73F0L W,T=*"[O'ZE[UN#-OOZK(i
MGF4*:K]@7*M;'Z*Z\%*7.S0GS7G " 0'< @A&32IJ(0)14%J/ >@J\?"%Z86h
MY AETM L+F'-5IA1L#5_ 5US=S >0"I. - \(#G I<?*5C1C"H;*8303;$=Eg
MU:-[B-#,/#-]@3,7HO\1TFPS^\T^<]O\'K_-E9O@/#<C!8*?X)RO+,T%6I[\f
M-/]/']O*-C7+ 54SXCS:D,U:,]>LWWC-:S/#J/V.S:M(YXPV?\YJ,]AL3[C-e
M0K/B'#?0S1(SR-R]M 4Y!/[Z*>>HI4'7JA+(!+Z+J66=J,RJLNQ\'=#..L36d
MNL"6S$TKZ8(R>P2X\FA8$IB0I\OJ*]*:D#/!Q*1";F)P@%B[N?E\D%*:_'S\c
MN3A')V4PIP$$Z0&L&%RX@<*,@*[JP6+9G/+BFFARLA,'":\CMZ@#5LBJSXARb
MG&LM4$#V7A% [4J.'&"'QUFYF=Z7]FLG55B.:^<\#JO/P2T#13:, ?^2V;P&a
M )L 4![@B$ '.^W1J"D1P/%P#,LE.0$='B8'(D303$$8X08X1>KS^0#]:M"Sz
ML"5\6VG'9;$E5PSOS_KP#Q,0_X&%7$5@0[-<*0!8H?V.<2=CPB0CT &]U.0Ly
M3O(14\ 2\ 5L#_R&%% %M+9)0/:*;GHO0X*STF3&4?&"=XICV4.5L$O) \#0x
M+V6'IZCLT$:6TD9&7RW@E]C\G%9+/LP9?2N9#]OSBD<_TXL7WLG8VID<%QZ(w
MYT;_S(<S?LB&8L\\=( (2!-7VG.7MXJ>3(F<]',D='A?T86Q*:@%+C)]603Kv
MLUXMVHRQ4++X,_L,!YAGPI49O4GO2?-9=B):2<]AE?!B 8-3P.0D;9$5-&TNu
M$15/A0;^4?<%P#5;T@+# $?6*BSM[. P7)<?XAAGH.K28N@:X$SYTKFTJU:Gt
MEH?F9'Y63%NA]F@G*C41TVC*"5J/2@L *H/Z7;I%OS2"RBR$.46!_V%-[\N:s
M4ICC3,$SSK-8)<*(5;ML6+4Z,"\P@<?[)@42XC03>DUMTVY=-_W662^)=!OZr
MIS*AW=<>$$_LTZ84(L?M!D<(48<'XBDJI^@S!4T=T]+C><<?TW@,'$(4"T/4q
M5P\G^G<*2'2B6_0H88TL7M:74=./>+3YQ3B]20EUAX<D2M0#I!_-$5C47D(^p
MBC 6<G8T1^$6&7.P-)\T.=^K%</PATU;72N1X_H"W"E4@^V,N4P!\\'^6FH)o
MJ::RZ,(\CZVKBT\-5!?/%[/NXE; .-63]0[J\SQ+$Q0-.VR,S7J0!U E#86n
M.(U*=)W/!U9F D NN<)WHW>\ 5#8_M0>_!__DH,BN=0:*DO!<K D+/Y68.16m
M<RQYM5NT5S=)?37$ZK-@*B) "1!<S N8 GYI6.,A2(VE0"] !VE!HB PR0$Jl
M2R,G!%0!1H 1T%5, 7K&8:15IR#CKZ\VX6H)+$!8;<J-U:"GG(16_P6+)(O1k
M5DM-;S4^*@+(U?))#%!79SQW-4](+_W5$M9N#5OSU?02P4Q8+]:.=6*]$!'7j
MMPZE4%Q3"Y%U&3!95]9+QF6=66_6>D8\FQW531H":NC[]4?%&[;2L7C7\)%Wi
M7;%<4X#"NS(C'5=NM;\R6_,GH@(,<%L;+ B+;KU1\=8="[5$7P?6U=*;@@?<h
M*B#+7Q!79Q:G!!J@LHPL+(!VT$XQ7R+M=?TZF6(G;?7'71=+WK6_!5[/*N*Ug
MZN:N: GG=7R57L/5Z_6#PEJ\U[DU?MW#_-: M>IV7ZMN^C5_35_XU[,U@%UBf
M#-B,BAU08+L!![8!]JMD%"^ 79(?<"DW:F0@*]<G>0M5#<'V+GR&QWQ7X-@Ze
M-A03(\3*1G60/6[Q+J2+V'JE.L_A6M+6C+4 ]4D+(!>0 "J C0JI\@!%T1,@d
M!"@!'0_#*.=XV2EV=&&$_!]>-K;B95<M48I<8"8S#>6#.E)>:PE>-F";*?77c
M%H.<;7!ZV07,6.!E1W"1@HU:%&44+D 8L$N0 -;CF-VAND6,=LISY88(^H-&b
M03,PVF(VF5TWGSE5]F)D1F'9*<.6W65OV6#VOIQIE]F=PIDM%Z397G:]TF8'a
M*V]VK$"FR-GRB)=]L0#:=W8.(1?HV<KTGO 7>-DJ)J - !DP0,538KGP-LR$z
MH;TO(]J*-J3::&O:@5&D+05,VEDF^9QH.]NG-CG]JX03+X"K+50CK; !QIP\y
M"R\Z0,IL9,<'!X>WC:/JJ+J+2G"ZE-N!UHZ+53O/S%N0U$YKU\$1PJ,$Q# Mx
MTNNPLG52>@"OX XV+$U,\08WU\R+\]'\ &^_7K#S6S%-SL3OM,MOBP7^M@\ w
M< O<PV?FYC0[SJ*"U$PUW[H+M^5,-6]4JN$MJ*CHVQ.W>U(&_-M?0,!=*@S<v
M/8",1RT=W!!PPQT\'4870='$8#? ^780L&_S;A0WB\!RN]R/IAM(<#MM-#?1u
M_#HSSF@,Q"TJ_+Y"G=/]*$ J$C?0K7(/W1@W#HUU2<X<-V\D<F/.('?<[ -<t
MSM@9M51R8WXGM\^=<E?<%_?+;73'W"!3T@TU0]TK$;>=9//81RONW&2[VP Ls
MD3V\,-5GCMWMU18EZW;NW&XCU;]+N1VUCJU9M54;.R$4IW8/<$VPV7)!1#IGr
MCQ.O@Y==E*3&"X.7O5P#VA%"'[)K#V5:YM8CF\@%.X?IK7GK%:JW.G)GO-GTq
MA9=-'6P*7C:K4C&D 7GVJ#1!;&*?@>8]!LP*#H5<\!K4!\$W7! T0>3@K(Mp
MEH03-NJB_6P_VK\1H\T$1)PI U*@9:/;7C:F[6AOV@X3Q.1"X8V0MZ,M>;O:o
ME3?E>GD'W7UV?,!Z<Z2>-V+M)*@CH??[G>"2WIA'ZUUV*<(#Q.H=(]C?3@WLn
MO2?(WL]%^FU[4S2Y=Z:T>W<'J011\GO3"E[V\,V KPO'MZ1@,N#:P7=1Q'R_m
M <YWMAUMH[S4=P43:F/?6_;SK6U7&>D$EC$G:!FB0O#@*6,N437_FC%[=R@!l
MZ>)6G-M?B@F^.VP9: "3/2I/&J(+\#*(-<^>5?+B.J73G/8Y/:^FO^')!/3Jk
M2M>5J O!Y_8!35P;L_.TQ7RM1W'>3N'R\)01H BW541GO#X8RUSX"W/)CL6Cj
M#16>O(ZW&RK_0X*@X;^M&9K?5A%9<6*KH&SA4OC$LQCGMJ]M5R&'O\Q7N!V>i
M&Q^WX"UU*[XF *<+&%Z'5Q%Y<E ZVOS#IG!#:C-<+=?T(?["; \O; 71.%GBh
MQ68%L7R96Q\Q$]YX.M1W[%D0/53BIRTF?HD[KUSP:+.$8]9-N..9JZ2PFXRWg
MJ]Y:XGE,!1$\@,EEDDIA01@%!(.V7:F!,.NTW2<WGCGO'0O03J]@AW+?L;DDf
MKOFDFZRSG1F;2TC:C"?CT/C%(?-*CB7NGOQ&D6S9M'3\U'+>#&D_W(T[X\KXe
M61#GGL13BSA>3'OC=1@CWLABPGPN0N&K/&5,EA<P!.@3&<?1T -X 7S Z@9,d
M-5D$#IG@%>SC50"=YA[LXT2 /F$'\"$]P$XDT(06#7D,$"^=*7#73M136RDEc
M./?2IJC@/7:HW&23R@"L#4"Z[!<T.$9.4Y@O&WD.KG?KSD@UE$U5S]M!. BCb
M51M-6.U,'EH#D]ETO/:T@!J\]];\0^7DJ$.;XM-<F&5 '8!A6RM >:"QDQ/Ea
MN0V\TF0FY2+14-[;_% (A1D@P$$7GH2;8H> XX_F,KST+N41PX/PM$@L8KF;z
MTG),RU'Y::%GC Q/"P%7ENM'_\=;CJV\Y2KF5RV7-PI"AE#N;%77SC/=:,]Py
MU5&YEOF6.^ 2G%!N!BS@A?G38BV4.%$YR3 UD]91^9! ,903J<W3,A^<*F^Yx
MS: ^R^6;:5.0F3LU;_G%DB!%Y1V<75Z9NRD='-7\EE_8$&5CKCA4(WE&8SY"w
MV,%HN5#.D]/F 5UC3I0;Y1"E;<Z4/Q]0^#;EO-DS7"U;[J8(YE$Y8?Z6'^; v
M]UN^F*_F1%]3GIF+!H#&6AZ9#^"9.6X>E8^/GGED#II'Y:+Y6UZ:D]:G>2 9u
MG6/.T#F" 9G;YJ\YJNH&K.:S^6;>F),,N'FD!)9G!KPY_G:?SS;K^5+>V^1Pt
M%WGV<F6T*0[&F*0@U \WZDI^>+_;V@GI\E&4Y *Z_W)PR#D'NO'<9)O,$*Q(s
M#@-(V1.L\XS"C#!$.)>:POR6\J.:(OU&UA.T#?"$1^$8; +@! @!0D 6D #@r
M !HFHN/5[-Z01:607+^<Z4L",Y8:-@-)!Y8M< 91 VT>C:C?' /AZ%Q %Q-"q
MCJ[3K T_.@/SS!(^;T%W0$XD(6&"?0$AL >[M_K=4*BG/Z^XK%?8RRC#9;(4p
MO 4@P\XA."&G,H\10 08KU1 XQE&3#1)HO/0S/H92:2^<40FB576>7!$A-0Ro
MS\OB9AD,]6'_[ 2\MT#"YCR9(QC!@P4AQ8$Z+;J;#J<WG@G Z^1FRCF/C%]3n
MK'C-6[,.I\(Z 6ZZ$) $Q.EXC.^)J6SJM+FOL-7 Z'RD+X6COZ9AQ-;,HTOBm
M=TV*:J7/@&[$:5-W:E$K0![C=;_B+P *L!]WH^D+IHXGM+X"T*;^P(2;J+KZl
M3*FHIXGGT6 &V>K)0O#ZIN=N<;H(BAR ZD2 J!ZGIP#],/VCK ,*GOHF(P9Tk
MF&] Q04 X6^"DJ^0@@(*ZOJW($;-.F]XJ6"[7.M[A'"$'&S2>$S%)1(7*VX*j
MCKX%"$<IP O K7OKF2P? $W1$NY1XW39E@#V1*@^J@.W]?I=(ZD/ 6ZLOHX6i
MZ.K^^LH&L$?K",; KHL8[!)[G+Y:F@"0BA^ JS0I D4>\[!'[-WZQ&[>AN$6h
M^YO>UF+K&CN_;F']Z]"ZP$ZPD^PQN\G.B3/L+3O!'L_![ C[S$ZK9QMON@NAg
M\?CK\02ZCMH"*BF OWXH* V_IPVMM%\O\J89$*!;&0Y&F\N1Y]WL-I#-=Y?;f
M3_8,#GC?%34X'Q(\%-Y[-U(];P4O'/K*[%$H8]EN^V@\*6/%.=54X@HV44*(e
M&Q]%X91LFSL1A9ND%!U@!PSE8\ 8E[@O[CQ"XXZ)8IQJ5^F-B&B9W_3$4#'Ld
M(9K[H]SF<NYVV":]Y0@6TFJ2?F28 7P(J_"Y!PIM[FC.AW#N?(@KF;C4X&S(c
MDS*VW\YENT=QMFO,+!3P?.;0[N2$[:Z2Y^Z00ZGENXCD3!U,_HO3,RF,,([5b
M5B<J#"JMOYCD8 J!WG_G+_(+]8ZE:"E\R($>OJ@O^PN!GEC, 0,X^@*^:^^Ea
MBMB.O9_O GJ3@E-;#.N[_F)MO@?ZDO8@!# V4L#U^@78[2T!<?F<#.,.TPRQz
M'34O>*,*JR\U<K>YLYY A>+S% *_FVL)"0!,P, ?\$L&R: W\CF_91]>15#Py
M4CDS$<$;R_NR ;\I-P<P *LP)K$ [BO -@6&U_3 .Y6 [94+:-[/ 'PNKOKx
MY.@N4'K*> ZO/-,(Q5?-N:?FF'/F[L,'&KFV-=W(H.]N>P#CJFD?2:D9 $Z w
M/P^,"B 6//%#N3%SA%#Q4?QB 8<5LH:[>:BX7Z(A?->^$MW=>L4*WJ2*XKI+v
ME.K=^:A!ZKE-QB_9F@L:#V2K\<&+J74H*>\>) AC0BXQ-/P>?Y-OX+B;A^8Ku
M7-^LA"N1/L@%A3PJ83YLX-.W()\RR%"(/,1@R&\2B?PKD8#CTYR!)*_(,QS1t
MI"FAR*\/-;C[@E, #W=']\5H#P%0 !0PR/^1,,4;DLE[\I:\^O"!5_+IPQS@s
M9A;RK,1T&5UP\K@\Q*#+R_*AO/GRON04I7STC0*@\JI\RL#*WQ:IR2O?2N3Rr
MR?;Z0,A+\M"\16'+'\+./&;ARS,3O50OWQ3\\K8\I(T"!/)FS"Q/S6_S%D4Dq
M;TI4\[L\(T\$./(M "2?S;/S\SPZKV;;[2#:=M0Z$6(O@C>/8"3;;T$B\XNEp
M$N&\6-*5B@D^7IG; KP'W(6W-07\+RX C[0>\W\@Z?P0_CSNGPVCTH$1@I]o
M.Y*[^BI>=ES0%1P<9/I>,-)C%D;YH"[)C]IZM3!Q-JP^8 BP(B.@0'ZU2Q].n
M[ Q_4&/ AU&K9,^3[V841)X/?_- _3$4:J"/2_R^[).G]"C# N]U=!=H! 0m
MO42//5/TK@(.A]$3)+3\)L%KRX2:?"Q?T'M53+U'?S2 ].L"4] @2.B@A$E_l
MUM\0*KTIP=+7]*6!\8#3>[4R?6K;TN\W64U.KXJ@0(E+5D_0F_%Q?),=M0(Ok
M&('H0DN<VWZ]^G#&"_8>!0Q>53_HC#>]C3SE[0U8"% 4E1'J;E*T5<3(J846j
M4H&P$T7%J5(6Y.CLO/E@V3=/V\/$WLM4!!"D(), E!%^ GMA7?SIEL01@NS,i
M$1)-DI-"K!"K/6N?7](0K[U(E-9_!2J".7(>C*DTQ&@SH50G9LQC4$9@ZT]Th
M[G8$E)M+S.L4W'<CL<C0;""< 79&4>0"G %? 9C /IP!)L.9PA_,-O;F>7\&g
MR)+B!"U3W@L9M$QZ'UG%99\%0C$.OS0B+?)D/0.3I[U8@MEK1F6$E-[9LP^?f
MO<$0VE\AE<B78,^;]M3F_B+*^P[$_/>>Y*3V<7IO#ZE$#T; $NT$J/9'0' ?e
MV[<4SCSG &#<%;8]-X+;3QC/O0HAW7,$%WX1D.'O]M)]<%_2$_=W0\/PVR?Wd
M*,!RW[PXZL_]'A'=K_8M_HOOXV>;O<QU+V<,"FW<PKW==_?[\G<?WL\>L\U[c
MK][+]YW!>O]9"!#A@I0_W\OWM Q[;]^_]W:[XA7?C9"LK_B0 &P!.,# $K+Vb
MN0O%F9\A#"QB ,EJY@<L)<OPY:OZ]V-)E(D&D $>@;UY8YGY:NH(<%W1$)I@a
M@E12?:EM/IJOYLOYB?Z;#^,P^G: FU_G,ZN94L3CR%R;6%+U0,E8,J$,ML?Fz
M1_J!_J#/$ZT]]'@",*:2^J0^H%_B"/IX@$G0$J3Z;7Z<SP*P^C0$#$#JPQZFy
M?JMOZQ,\8GQ%4$8< 7H^GW\PJ)=_?IL?ZF<YA/[AHNPO^\Q^LR\4@"&08Q[@x
M[ ,%-@$]]K:X+6T+<T(2'$IW?'1BM^ $-(I'D*.XCGW+M#\5 "Y"BN!R%0PIw
MYGZ[;Z2T)PT*>\W0> 3_24E0NC H[XF\#P?0$O5^_X[O$RASM4'S4?3[,\2_v
M3UN_%G ?=*CBE4&O[[OGRS\QC*\G^][V R-2D#PXR<2/\ OG\ !TP7!'Z!Du
M_ >_05,3$/P4"LBO[\<7!+\-T/!3_'# ?D'PWP K?\#/T)PC"W^P;/*S_.D-t
MP9\#Q/P;?WW2[Z,$/#_"GW/UJ#MNT%\E_?P1OWX2\C,TT@C1CY_P_ X)0!&As
M"*E)_X!"6T?]_'Z/*C%!_0+_U'^Z?/Q*?WP2]2O\BW?)'_87*%'_P[]XJ_PWr
MO^02]5O\6C_,W_:_ %%_QZ_UV_QGO]LO\GO]J O7S]"@_ G*@NWWM_Q3_^M$q
M:<S]43_-'Z7*!(-_SA_XC_J(OT'C\S_^8+_5+_8;-$/_XF_V6_YH_]'_^+/]p
M>3_=;] T_8L_S#\NH 'CA8(RG6C\4;\\(UXP%YN@QH_PRS->B[MO^P<%%(4.o
M<?OW!&L+BK*<7/O:/D=P*(&0=8L(2:/<C3E*2D #E/N[?T^ [BL%ZKY5P.XWn
M_]1_>@(C#PI%253*BU\:\\-92QHP#F_!6\(NE*IEPJF@?5 21-(",QPT%;A$m
M&'LPPQZ/"/:__)H%Z#]'(%AT\/5!+^6,Q*9^1NXF90P!5 #A7IT!2+:IDJAXl
M*=!WW OF6_YB@ &FX%X8J;H4#,#VA?D"!S>EB "6+TYPL[.5Q )P?]&_F QPk
M]SQ@&T#T70<0HA<";-\Y*;AW!CH(8/ANV"9H*P&2+Q0(T047(/LB3"%KBU+(j
M +472;P*8/BN^^50R%]0*389R2NOPFAK"3#:(-J--E@(H0,W5A, %&>FB*:%i
M1,!G]@'6E6F*?+9_,Y^Q2#!I9S--FOO,50/DD%?,TLX&_8).R@%,\%7Y0I\Qh
MQ+* 4:TXEQED8!&A.:CI1NA%E;N4%D(!"B@^8R1- <MGDZ_S&8(!A0<)V7+(g
MW2)@K(K# !HC"-@$& +V1A(I8K=K1H$ 90<"\ ,0 H> 6PX/&;>(K7+/0BC<f
M7G01=8JNQ1=P#A.DFUCTC8Q?#847EPK %1$.F53 E^(&4[=X$K(.PY4_(X/Qe
MOR1B<##+EC=!5[$KR5<H1T( I, K%P4E95 $$ (,!(P M(HQ&BG0W.+_T_ Id
MB$9JP1%)61N !W"'0]0UQK9>I9PNE"QNY(7STH_A2J*!.K1A("/0#U ,W![0c
M*CX6FAIK0G/BM- ]$0?N?<R!2R]GG![,[?4--$?IR:I>-H.AEUXKZQ6(@P8Vb
M)]Q>KJXWV-A+&4@IHP6" U$9V,#V0*O@[:4/E'O!N\I>?;)-BSE03S3:F 9Fa
M 4A?,B_%B4/P9@,54]HL!#D"$T'#UT_,E6.H" B. G,=V\!NH!.@'6@%"QD$z
M!,F!PQ_&B4<M9&!-$ :"! T;10#EU1.@0G8,9$,)R&XVB*^.8')*&YBR*P;.y
M!*D [4 R4300)1C1N6CP!!N!Q< B /S!FK!D0@5R+>P%W8HA3O9/!7#+2(@0x
M## 6'2X!".!.Y9::>BZ\N%YUA@K?"&QER]%"\Z(U<@QUFK#T!1N##34Y4RO<w
MT)0V?+/MEUN0Y>*QXX'H50),]Z'/4UOP*D@7] %46]!O=I(EG<9E+\@&N*'5v
M!4=-=!)IW=?']E)A(@S>T*P5MY<-G_)*>,4$4.5E MD5UHLOX.SMN\'$RPIVu
M8+:"KX,UQ9).%)@+W">(!6=,J,!)8!?J(\@I0&.(!#N"B@HH0!+ YR3R>@BJt
M 2#'4&C($BP)Q@3U/"UB> #IP4"(!:"%.%E8E?,;DP.C!.BH!\P.,(:9)S!s
M!&6"-,&68'!$-I@FN0G>!I\+UT#=8&N0-P@=! H:16@&DS%@U:G@1:"*4 U\r
M%(0+2 THV:"N.*BL. Z: Y6#"(7FH)R$.\C+@#\810X-BX5$ 72AZH#1: HZq
M"IZ"]@*=G)NB,QAU4@$LU]A,APH%0+=B- &;<O+X&9AXX8)U2O\AL2! 8,PIp
M[I@2_PL"H/^(+,+@&-<9,\0"V)GX !0ORC0*3"R$"#V$:XK%0HBP<%<QF(C$o
MN=HI=0H4X13OBU4AC!&."&,*BP'5PH00P: C7&EE/^H4+,(!0H% <5>GB#KQn
M(6R$G#H;A'9N3>$57%/X']PN;A,@X4=K*N@6C!PI (8XH,%&%<4-*U<D?$']m
M,6 LM28%P"+L/$"5J%.P8YP1'@E UR0JM! [V-@LX!X$=S:E 7* '$@YNC Xl
M"JP:O2)N$6R%-56>6KMLG:2$]S,TH(9+#<@_^Z A.4@I]PHUUUM*S;6M\)"5k
M!M9*LX(4@,PIG. )&PNTH=QO0!8_()!C(:*-NA$",B:%Q[FIQJ706Y I1"@8j
M(CB%*$(D!JBP4G@&&!72"TJ%,A<\ %4F52@I5)E0"G4:KD), :P0+M!.X10&i
M"64/JD);8:C04KA<LU;0U#B%:Y<4@.)NDP8EN2QUT5)*ICI6@1W W1)&XSHTh
M3O042(R$U+20Y;(0616B!YT56Z? $\N"#P$;DTTH[AAW,@\+T6%)<3<.@]Q-g
ME]*%6@!?P0L@^5?KJU.HL%H>4(#L@9-ANN=/RJSY"_V%9JR[@AK@='=?6@LZf
MP7Q=]2%\H;[0"7 $B##XNJAN"8]\(1-@7VA)B $$S39J,1-R(<30XB$QW!?^e
M!I](S(P?&1_"MH?12!3NNA8B \,\P7WI!=;FVG)<V)0&G$+A"!E@!=#,261Ld
M+9:#%1VJ3+(01&@P+ M""^.$C:]J87-B:@?(, &D!E0+*0!N(:3"6YA<:R# c
M <2%6PXR$4A 4N>T>P(HM(Z&?P%C8>5&9]@X0F(8(GJ&7S$7FI,":)@6-!CJb
MAY*%A:_Q'=)0:5@M ^0$[)J&X4+($T)!:L@1H!IV%:R&:4,>8=809^@T1!9Va
M#5, *D*P(1<-+#8V5,\I#<J&UD*B8;9PL9#]2!KJPYB&>JNX(5*.IS8U;-K=z
M#15:C$.D8:,0'0'(44\5;6X\XX0?(<CIT0"I.$*(#A<+"Y',X5\@V;-F:0O^y
MIR@*1["%2"(J6>%+63S8#$ 5F(:E'Q7KN8 J;#2ISXJ&]XVW6N\P25@T/$)$x
M6=PFPT/:7-%PL;#ET, LX%2#RL.46CO,I,3$ 0XT*7H##(X86@ %Y)3KX!1*w
M\20&:(Q4G1Y')$A7BB?YO'P8O9+P(0,MMH84<*#X!"MDD<#5(/)0?;@U\Q4,v
M ]V'O4&E8/QPZ-"O<$9(*HPBR8XU0K&"BG4^U$9=!?<MHK.0FU^0+UA&*Y-(u
M!OE828#*H D%G03H:@'T G^!\4.&2_T'3+0OXU?X!K!R"Y$J89_&+[A("A,Vt
M)WP56T( ",L-=MAI*!PE']X &43,&U9NA=A0Z!RFQ2QE-0U^A:^)20&I2"&.s
M$,&$3 HT1A(@2Y(UB2$J*GR(++?-X 21%94:=*!L!O%_*Z8/XKI.3C(,9%D4r
M$+6!ST$-'YO)3K*P^![.!QN!M+G?H,TARA0<:)<1$+%@C1,LXON0"N K*)-Tq
M$=.'*;LPHE%DC'@>L.V9$3$:4J^>BQHQ?Q@D:"-"P5*$X,,XHOI,C.@6B#*Ap
M#N^([<$W22X0+F &<1[."GHK1S$DHL6MX'0TL"*^BNHT0$3,R1!Q=Z/PX)(,o
M ?A:2T20 %6"4S@F]!5($MMN13<^5W-BES/:0+GQ;J@2/"]KH;0BN1)H,8KHn
M#O&(HZ7!A!T@[%8S>RW\!O<%1 +XWQEQM.2K<!U*Y6*'/40<HBSQ6B%OV25Tm
M*Y9^6( L @"ESA:4E3 $K>'N41> NBPZJ8E&B!8$JN)/1?F5 ^+B<<FI"+Zl
M#Q$94+!EXFB)3NA \1K$$$=+=,-LHK0"T.5.5">B$?,8>T3EU?9@B^A&5!#)k
M$^UA3,) (AAQD#A'+"3B".,#]!YJHCPQ9.=(I - $E5B!4'M56A!)(;Y,FMYj
M&BQ2WT1PTHCDGTAQR2?&L&B"7$1_XC^1@?,1_"+Z >2(W0HZXA<+H>@=&"8Ni
M%!N);L)'X@K *A91;#8=0AQD+AN+(EI+MY%1;$Z$B4:*72@4@$=1*<A/_".Jh
M .:'@L1.74'Q@7%(3"CF$'.)MR 0SS-1WK<0H:W-"8@$"L71TE%1H'A2'"3:g
M$]DJV<3PSV@):G0>*-ID$[>*)L4PXC)QH_B=POQ(%<E2><+LGX4 3(!Y@*SMf
M"<H-+D5/"UFQ?*B64^/8%YX 2P#65,8 #Z ?C#AD%5>#O$/78&]P>V V9"+>e
M"1-%.C5PDDN0&-@;_ DV%AF#C\5>462Q.8%6W :J%7V*NXJAP]!!>>@>D1ZZd
M Z.'?T3?".7I=VA:Y%<\#8DG;[4KCMMDL]B=V:C!DBP$>$2$ OSK58 %@0N&c
M ,B!BI.&HM*&#W$(C I&F;X,)T-1 O3K!:!B<BF> F\.=( 8HI+K9)A %+LQb
M"JV%BL1:5YF+RJ5=4'/Q *:+3*[+(B*P9J;F0DQU%W==,42;0[\@V!0&]&E,a
MOLB /ZT]8$/1DC@Y*R^6#K6+O"Z0@*^"8+8&^)>H%W$./0##&FOJO,CD"C"Vz
MYE*&B0.W@(&1:0&W<@OT"U!X!$8(3B2,8#ASV $H%-\D_T6$TC+1^6))A(M$y
M&-L /@ $8\%PF=A(XQP"[&*(A!RO2H4IL-:U.+\X"M GY$ \83F);_A;3 V&x
M;LA1S<+;"V^QQ>)IR0RP%P 3W0%^Q+5(0?BKD(69E*2(_AGTFTL)R7@]-!JJw
MW"@@VP,L!@9DR>A_ (#D?.Z)I\1C8@O13I(J8*O)$%6(DT06XEFK>HC1.")Vv
M 8<./L/;RLLP:'AE! D<(MR&B:>FX=0N6W@(8;FP !2'*0">(=10MQ@<^1JBu
M&<.&7K0U(^*P.?%FI!1^"^M:?XILX1'"<3BPF#.F +Z&>T8V5.#PSS@X%!L*t
M&F-HUL)"X]M0;^5H- $L%AB-=T:[DQP B1$XC#1R!"R!%2;@8B;07N#NTS[Hs
M_JI_#('>'_!OUMBVP$X<)[Q]QK_I!'0B0\ 2T G$!F"-SC_T0N""<+'NB_X!r
M&X^-O D#GB7C?I?RT-\= $V .<!G(_FB=D<'^%Y,*10 \9I.X)E)-]*:2Q6.q
M$[!X)$(:H8BPBB?ST.*U.;AX+4+S$*\P+(CXR*<LU[8 5;$MQ[OQ("62D7NDp
M (9($"+W6T<,J&1OM'OD&[T%D"9.85#)>(A0>#?>Q 2.]D;F8<%1WV@40SAVo
M/N8O1,)FH5B"E*(OL3FP#O<J9Y,O -,D2[?\^I?H*2)5]XQLB4FP(K!+$ '0n
M63 F%<>9@ZB!<5)R=*\MXC18%;Q.H#Y'#( Q00&XGG*%D!#FR[Y,49%R#.C]m
M$4>.P*\#E1[%5]!SO#C"V62'1<=]6?YK7\:KZ%K4_I"-4,>HH]1QZC@5X"N<l
M#%Z-4$=98[:/UMB<0-(H2HI_-0J<P$<A1X$3B $P_ZB.!X'GW_2O*K!V1#NZk
M'7\"QL4*A%\A.A9E8C8$ K<LY+/$@F, _5?_2PR4"TP@[X31AB#+2N41($LXj
M36 #20"TQ! "!2!$.#R2$X (8+.1!C 1J4'2+35 781>(5P 3/OTG JX!&Li
MY7X51H;$@03N/E!S( WH-M ;]RK80(6A=[#]@]!8F<1T'(,F Q0@"]#)0 ($h
M $<+Q*IMFY-'2A#\,/$-"IH&PS9ZQ'W _)#^J_\]]&8%=9NP1/H/?=!7J/]5g
M!+8 RCS6@]W1,&#5$.UU 9R/( #H8P7#H @"N#[*/)Z/*0/'5;E!4-)]Q#YJf
M'P4LV4?% !_ /6 &6"UY'XN,V<>4P9(*+3 &6#^*!OX")8,T !_@WV 9X /Te
MF<(%#(/W(T= ^Q@HBA-M =2/[$?WH_GQD9=B.$"Z =:/>0(%Y/<Q_AC/<P\@d
M&"H?AP$') 2R_5A^G$!J'_>* DCPXT+/?7"5.BQ$"VH0? "1!!^ AJ,=X /Dc
M 4(48 $^ )C@S, '>.HA'_D 6RDQ 1^@[F RV#_B"?IT'4CXH_;1[&!S02.8b
M(,,$*$@5) OR ?F"I O< 620MH,R0 WR4W&#S$$^('F04D@0Y )298"-23\^a
M(!.00<@!9,I T<(RT$""(4.0%,C, &N -V"&C$"&(460OQ8^RPNC#<F!1$-Jz
M'[MI/P0[9,K@H(<4V (T!U*0H0<)I!!R#$F'< &=O5H_?,<UA?&QSA!DL!8Iy
M'Q>1<D>_(J4@;V 4&'=!$4R$N8?[6RC"W,$"7)B]",("P40:6R(&/5#_2Z;<x
M%1.,285!U]UQJ: P(!C<%D(-(( K &VOPR&(6'[U%98*=8@$0;]@\/ &J/]5w
M!1^$G<C4P62@:C %^$%4&>\#)0*P@,H!*2#Q\CA8]$ [" /1PA"A_G>+C!.Qv
M(B<(HH$4')7L]3@HV*7T(-@%T\=EP]=D4/#.&5P==8 )38L)0?VO'$E..$=*u
M"H1&185@).YQG# FFT1"(E@01P:D I$A+8"-?$56F?P,4( A0/VO"6".=#&Ht
M":)2LXLI4EI-[+ KP$1&%RH"3X#]8-]@'AEN^ U0#.@,=H8BF<Q#@C$<"$>&s
M(&XX(@GB8_VOD<!B<$*6_R22EX:*I!M RR8&R!)TID22$\@-!NLAFV4P.!;Hr
M"%H*L0*5A)^!WR#:,+ )!A0#W*PR X&A\Y:(A#]N'Q\8@J-8A$=2I1AHTY$Aq
MS-@#!@T0P0:,CNAZP#Y*P=X]=\?-@+0N*_,?F%D\&W <,$FCI/C1,$!^3$KZp
M&3R28TG1@!Z Z@ ;:$H*&^P.< &&AE02#F&5U$D=S,"16$G# +I"5K!G.4E:o
M&\0)H@1\H)4C[XC4"#ZT!>J2?+KUXKTCW;!\K BT /:*[HJS9%X2//06X$N2n
M&P0&Q\B)Y"/B&K(O4$Q&IAB3V,=XGNC!D> ^4$I.)M$5VCW+9%/JK?:7'.WYm
M&<B*B,G%)/%162%M3"<X*:J-B+8;8!G@-@FE4 %2[W@ ]8$QB6]20%>J4"KTl
MWGR W0HV@=X \. _(C*" )8 QH%G SYR2#B9C$MN"IH%[ H5EG* )PD2,)>,k
MG8@BVDD 8%>A"2#9$FUX)_E.JP.BB'.2"F"<E!C (,,V$EEA0JK9O,%\,19j
MHC($EA1?RA2 _,B-:$]J+7P%GS>)RGQR",#+< (4K^1TJP-XQWX29MB?A. Li
M%?Z3D94*FKS 6]"<[%8 ^_H2"80$026242>@W&10 9QH+X22P ]PYZ%@LF.\h
M$&Q]SLDE@$ ID>0TL4Z&&K*3FXR )*G$UJ?"BC(D 9);NZNK :5!A44$J) Qg
M0$ "QC(5EE*0J^ $B!X0 =H*4,%?16+@RQ*?)#*.*"<>ORME%!$P)/"DI(E f
MG+9]5<H7QA$@(. _XP@$*3<968"8X,3P"E 1P$^HL'Y758 0944@0'$OU&'Xe
MS_@(_8,LY5E@") %2'>!!%1^*JPK !)@5*>FA/GQ*%U\00#W6 !02Z6L2$[6d
M0YJ49TH1UA!@2AD;D%->$I@ :4H7A:-R2UD$Z%)6!+Z4.P\ZI9TR 6"FW&0$c
M!(Z4( $VY28#X;'#,%#V$2@4*JPPY7MLXV$1<%3J*?F4-@%')88O4,D$&%0Fb
M*3./ )"N /1!X_!I\!\)*1<>)XO)R P /+G)( (, =8'.A&>R P "D"LW'G@a
M>RH"R<J>"!> "Z">Q!%U4(X"%(2%09/R]!>>6 LDGF)/]$G[I!.NL,&>=%#&z
MB0*4F,%N140RXM NJR>@I[Z1PX',Y+%AE=#$JD?F$"0J9\*R&0N'-?GV !3Ty
M'Z +C+#QHYR07RE@^5=:89949L)K#,"R /GBX%>2[X(-#DL+I(7#*V"PW'ITx
M)G$.%4NKE!&2P8%M5%A:88B0:X 29&NNRIAXPL94+,F0:#F2I1HRL88_(%G&w
M(24'"<LZ(L 2#]FR!%CR(4^6 (-MA;H2):G]6PHT"# 0,1ALI8UA .<V("7$v
M"UB// =Y0U1E,< XJ/^Q(7P/!X+9)+<24$&R7,J$(ZN/%0-R976R?(>O]%C6u
M8/0C[SE^I6@ ;%FQ)-^1+2.69TN2Y<,@;0FP!!. +6.6_,K:3FS.92G 40P4t
M-H0 9KV97G_*L/*B5%;D*VM:>X@Q26U#19D'&"CA#82374N9I16&Q5 5:2/Ps
M*\T.C4OYAR]E2=FDVQ!Z+6L'5 ^O0(,I.:F*0 HP'RP$>Q#+I>+23_6%N6]Tr
MCWX5<PAI 0*$:F -%0:#T0)K0,/3IE@5+5W5$3*/.X)]H5YI"5"\O!+60H@q
M!2),&X*TVG9 7DFOI$>V8B -KXCAY:!!:JD \(.1"+X;?85_Q?J+P,::)#WRp
M*_L*_(&+F*#"4*&G$%0T[DZ7]@0;W7B047$[!#P0"M8(\DK_T=IE9#&GV%S^o
M*H( Y$L[0_A/*"%G2%\F+IV$*$GWY5:!]6!&S!L "M277<./H+X2V0/O*%>&n
M%IP-HCW_Y4.278$M-#N /P05^DOT5/ A ,+WT3W$"BP$OT?21+3A7LFN0%0Lm
M")^7\ &99)G+%#D&R$>.'A4#S4DVE/?2QT32P5]:&U1U#DRJ!Z/"U06BW'((l
M,*L.8*\:)I]1Z<*H*!P]BX(GNL$!)LH 4L&^'(Q!4;H6SLNV!)ZP5""]=!'$k
MV R6ULL8YO:R8[E\Z&'J+XT=+8T]1?GR8";^JU^B) &8+"[V)9T"? F_7!S(j
M+\^77DQK@^C2A7D?T%^N*ZL._4L[VP+3;XDZ,!!J+QD5$<RZ(P1N<]&#L&#Zi
M+OL,+ *3P0;3?^3!_%5 4"8-(-QQ:DBCB!CX!+@(T6/;$G6)690A=G#]#&%h
M=/(B-TS% SSCFF'^E"F*6V8Q,L<YB=3 8#$5),]+WT: 94FYIY"QE:]G%L"g
M+&-S4DQ&!?<2=>"]O&**+]\#@HHMYOQ2CC HL%^R*]:7,;;V)1DS?@E'V&76f
MJWR9=$PK7OX2?/G&A W$,=$':TP!YML2?(FW; ST%HB7K$0%9GL *4!'C&;&e
M,K\="DH]IO&-CXG+O!-<,!F2W@IFPDI"HE+(Q#8A,E]Y>[W1AF*@VX8E(F&:d
M,".9*<PNU HS5='"S&1>MNR8#\P9IBBS" #*Y%D.-/F&*\QT$1!34?%[L1;\c
M*P@5(J&3A6) 5A%2Y"=(,V$#!\V(A4>GH2FR"&9&-$4 [$>*9C_1HDFRQ&AFb
M&Y)7N1M:A5#PHO'-I&&.,C&&FII)Q45S.Y#1/&+:"Y*8Z8\EE2J3>BFOK%@Na
MJ;*7 <WY"Q5S3_&]A'=@,1,=6LPS9A>SE_G%E*@ ,P$68TQX1QE3EXG&9&JJz
M,>^7_DS])>'2<,E2/"[(,:.9)$N$);QCJ\FB/%PV-!28WDQ.9AZ3A("!J6":y
M,_^8&4Q!YA.!D.F</&2V)4*8\T=[)B3SJCG)U&=6,L$O_4QYY28SJ.G2)&C&x
M!T.96P4=)B6S4:'0W)-H2CB:#TU,$*<"#C 4\2/^F$B: ,OY(Z0B(*G2W&@"w
M0,8 #LTBILD"I'E_)!H,5BJ:3(VPYHHRZU#OT1[@*/-<G<V9#F13M,FIX#^Rv
M!42:Z<349F9SM=FBO/#Y*)$ L4U1T&S3HSG:_#_>#7";ETW=YL&2M_DH;.!@u
M 8B41LK@ID6SI5G3[,Z4,@5E1X'(Y4[SB=G*#%N2+.,?0$T9IE"S>VG%!%\>t
M-;T:N4RE)OW2JCE\=&IV#<68^LNIIGJ3E[DK:&HR,.N8\DK])>7R=TGO06MBs
M-;^;]1#]9CU$1T R2&L&-=>:5"D*YH?IK8G!3$9H,.>:[,RZYCMS!#GOV%ANr
M,\>0F021I5VQA+G7;&_V-145*TS )H++GSG8%&\6-@N:$8?J)HBSDMG8- 4&q
M1X:; (N/Y@ER#8#<1'4I-R.7"Y$HY:(RN-F%@G%"-$>;(HD:9VY0FBE 6FQ p
MG'B<#,W/9FB3N,FI6$(*.3&;D9@!)Z2"4ND_0W*^.)6<'<T8YVBS">D<>'+>o
M.(N<JLHQI953^H'EC&S*.*.07LX@)HX34H&F-&P>!WN<94[:YLG"!FD42',2n
M.:6<,X]2)1]AS/G# 6UF.7^<0XL\@)C S@G@_+(L1#25(T&-IFPSSLGD/%E@m
M(0F=-DL\YZN2J\#G]'%*-D\69$5(9Y33T!GDHU4"!16=HJ# G5QB8B':= ?Il
M!/U5A4YX4G$J0"+:I 7.7%:.+$U.YHFSCG+=+ UX<,PAG<OMYJ "BNG*M,(Tk
M!\*;4TSR)I_"EMG5&%^:,8N95<WZ)E]36?'4)%1$-7TI\DUDYU)3V>GA3&:Rj
M,>V6X,LA0.>RJTG@_%_^-P&6S0']YK:3^9#-E&->.+N96,UO)H)S@DG.M"+Ti
M+AN<Z<Q!9H3S@WG7I!E@V;:=>DVIY+*SH[#B;%3P,T><@DWVEZRSNNG/G'4Nh
M-GV8)8&%YI63FK#DU')R*IH#FL[,Y6$@H_GF3'(R//^<E\ZV25$@XLE\*(>Ag
M--V<*TV IHFSNAE5M"9(,SN>B<V7IG7SIFG*5&)2(72=K,R>)K_RU\D9X&3.f
M,JN8PT[SYBTSJ2GM7&]2.U&8[LTP9C#SV=FMB'::+Z>=W4VPYC(3WJ'ME%EPe
M._V;]TUEIJ]3<YGM''<2"<J=Z(-SIT'1P"G>7'?N,=V:[TYT9B!3G<G!5%:Td
M,^V:#8P])+[SD:GOK';R.X,C^\R2 , 3)5GB%%08/*^=-,V4IV'SX+GA 6*>c
M/(D$1,RX *N3N$D+I+C\/0\#J8KWT,GK\'D]K.1,-P>>>L_XB%O1Y$FR1'ERb
MSTB9]@(5%KY'"C $^';]<$08<8=E4]R!/N#0C#N /@$@"1+73?.RY9G^D%<*a
M%5&23DP^1>R3E?G--%2L7?*;S$R>I0&A:%8F. %(?BX,O82RYU"SEJGS+';Bz
M,HF91T^?9](SZ FH@&\.,X^=R4_ZYO(SZBGP/'""+R687\\%9]@3D/G@7&=Vy
M,"6<]4[H0'6 8Y#O/&%*,FF3;*C-9^<33"/S% 'T%;R<M\X]Q,D YHD<*'P!x
M++&7YD1]I?Q3%4E]Q,[5/(.:D\.9COK3\]G^I"/"/T^9&R9GA?=R]EG_5%D:w
M%(&=LLRHH4=G ,K^A'V>+-*2@I(#J!(S 4K_S'\&+,F2 \O:IP14 /JA7'^^v
M/JT-0PL;C 8T_1'Z68"N,AN@-DL;# P4&W6V%('.#2>@)5 "J 54!+"D6H%^u
M-W2:+E#JI?USN5FX+&O.0 &7<@X(Z/QE!"H*HH">0*V7(@"&I0\4E6E8Z8 .t
M0;$U]PHESQ%T; G+M'DR0;M03M#VY\/R#C %;8'V,!F@'M QZ!'4;-D%!8!^s
M01458= =*&, =3>QK#]8-FV<\4\SJ.SS!9H&E5AB(->@>H@VJ'@S -H$S8%6r
M0%&@F,X?9+]@"LH!#8)R-Z^@9$4E*"$4#&H(?8+&YD0 &DN<BP94N^D(W75Zq
M0#.A6*E/:$;KRR()?8,&1^*@B% 1 ,A29+D)C7]80=66&<Z-Y1$4<@G>_'\.p
M0DVA1\!*:/L3UE(&365V0EF95U!8RRPT$!JVM(&6!.&@NM =*,JR%UH%_87.o
M0O=R'E"WI2!T>XD+10&@0J&@*\NV!#/4,O *!5AF0RU0'E"Y93'4"WH#)8%Rn
M/G6@J="7I?-@&_JS<89Z0-6ALX5W:-UR'.H&+8<60L^AAU H*,V2$<HKZ(9:m
M86B6I5![*"44'VH)#5L"3&064U ^I#^4I-&Y/()B+FF>QE"TVRDT&9H*I4),l
M05^>[M!@*,#@&5JZI(?>0NVA)D_J9N03\^F<G!:M)0H'5KJ^1@Z$1#"[/$*@k
M%)J3(1%/Q7>@XK(4"(BD\*:6:XI.@TWT5%';0#]<(7R/4H*::(? KS#O-&3Zj
M++:?A@.GP7>@+/ PR#T@/_> #HA= TK49X"NR$P9!? ^<R>!>P!:%%MW%2<i
M+)06NP2CIV+AG#D\4(HZUV(5^[J:*-:R5T 6%*Y=8/8L2 2=2*S"6J$5O52\h
M1;VBA;6E!5H4"+$3K1C01=VB08NXJ A21W2U',!U'YD6?]'!VEU4:'&R$$&Jg
M%+L B-&VJ&(T,,JI$$%B0&&&D-&Y:)VB6Q$? (QV11FC(L?SHPW&"[F!=#]&f
M1JMRGE&X:&64 CD&)8V>(4^C[;#4*%Y4!#D'O4#Z+#.0"$@W9&:TIU(7_5DLe
M1@6C%,CY(V73_IA6RS_N'Q,+; '_(Z() %D:V(W^R5"CD]'/*'"4 .D\@!-)d
M#.B0IE'-*'1T*_H;78U^(!6A5A;GJ&24.TH9;8Q2($&A1\A, A22!KF$Q$$*c
M.A^0*D@Z9]^&%M@;Y8JJ1D\6+D@8Y!,2"^F#O%B>!\2CVU&[:'DT-(KA+$+Bb
M7$)$*,@9I!2R/6J%!$22 ::0WP'DXRR%4B$;!8WF1YV0.\@/00\2! D;[8Q&a
M1^^C!%(NI)L%.WH8U8[&1C^DLU$*),K2-:H;[9#61[NCYE'MXS?T+$ B!9">z
M2,FCTE'O:,H 'DHCS8W6(5VD%=+IZ"-O-&DC]9#B2$&D(D@^9/;Q#[D'R8[Ry
M1H.D.E*502$2!G"(=)(""-44WDHXPK?2#+ %H$^^*5MQ8TRCAOO-7-9,T$E\x
M-<R53 73%:/! +AVR9*J284CIPK;9]=P *>_-&#B(J^1KLA65U-21R 7FY)]w
M/[L5< 5;U(.0[3EX:$]VN*H#62EWY^#K4; G[4$<&K9T:H3V9/T/3YJ-'"[Lv
MUXH"C$GTY_V-_=4M@!PA<1:.U180HA='ZZ$E=7_M,%D%(X2X YRT8E#_M!1Xu
M2BV;AC,F0(2!5#HKV)(^Q$X .Q'*#ZI14.HF_5C>ODBB?C!,06QJ*,>$6(7Tt
M%6Z>]0]3Q_63C.C2X'\>!L!'3ZF#9'SJ3VK(%)8Z",<-O0V&@;QR6^EI.4IZs
M.\N,?49OJ$$1B.D6S8LV+7JES@3_XAQ 5H$DD<?]*AY/N2N!99L!7"K/!%A>r
M1GL%CLURJ=+B7$HKK:!Y'->E"#8HBKMT#SD:Q8[ZC]A0WTT;C,*S7DH#U63Rq
M$_2EZ]+80;\T72H"^ NP2Z6;YA/%J+E48IK9\)=63 <K[=)NJ7"T_M@5*([:p
M!XZC_4?CYCHS.5"?D"*L23$:*,1P*1&4JZG, 28<2QV;K,03*!)T3 +$G"7Ro
M!@*2^81^@L94:4$TC9AR+HZ5G(HEU5EA*+)X8B/2*G _T<!=BHWRM9D$")I"n
M3(NF30MC)6?M9*$T+9GB'^T#30M\#RT0:NHS%<7]-JVF0],Y -84.: U39HRm
M-Q=7R%$!6]-T; IPB9HF5X:4_C,C)=J4.YH779L>3;>F/-"WJ<J4#! V=9KRl
M$^JF21,#8+>48<DB;3]6#:P +5,3R<NTIM$_1,=41P5%-=.>0V_1Q<DPQ=: k
M+7.#$%,F0-;T6.EN\55P*AB6-JJ]J-C4PM@>7&E"3.L/;%/2Z6\P"GHY[;V%j
M-.>FK-,ZRL TGM> ])&.0"H"D--BQ.34.=F%(EFV1C.G-U/.J<Z4#8H"R9CRi
M38NF^]+8*>!T#)HZ+9RZ.GEJSE.[:-]4;6HT;9N>+*BGMU/#AN'T4=+7[%94h
M(.F@&,C&Z>^492H\/9BV+"JG/@T_Z&U4:6,SO2LY-N&GC('/Z<,T;>HW]9ZFg
M3>2G X[J*>X4U+D_?9YR3Z.G?U-.16VT#FJCRA-83^,CY=-W*5GQ<5J?B$SNf
M%?F2F\?^PT P+, ;X$/>&@J .C2\(SVB=JE#HYS*3"V6?;J%J;'TKE1 U9[Ze
M3;L'0P!.A0LH<',]!0@*30VH_-*.*<6T8G QU9UV2]&CP04DY!K 0;J"]!)<d
M2)T#ZU$II'S4/:J#Y(].4.E5P5.7*1$,80JP!*+23S6GY%+^J=IT#(! A:'*c
M4(>5R(')SWJ$9,FXK(7N<T*F1A&502ST0#KC)**V1[F<,4@%*804CD!*:I Zb
M4<&CT04H:N2T5C!%+9ZV+=>H>I8K:O+4FG UW:)V41<>,E0:0--"C)J^@(5&a
M+CD5--0-RNX4UJ(^I:"R#Y(.S &*@ZR0[*E!/2)P4"53Q(3W233":^>O@A2(z
M4/6.Z882ZJE4;8F-4:&R4O6GV5/?Z,84+C QK=^\<PBG"+8WYZ1"4U(_A>#Dy
M!F^H+E3N:=/"BWJR*#117B:D[L%J"<0TA\K^^Y?P4'.ILY-)JK.ED@H\K4]Tx
M!C"IKDD5(2=5(.A)C1* 4N$"HM1!$;V*^3"8'*&F4G>')U24I2NU;<D&@*4"w
M4V6I"%1TJ2WU9M!#U:7R$ZHF6%1^PCMUN"9,W>#$4(NID(-(*C]AI;E/_9?$v
M4VNISM0R0#TUFMHMG9%24]FGUU350B9UI<6">")T4B]CWM1!$3AU3%'0DWFPu
M'TVIY514:A\5?CHC7:<VD+X;#M-8*C^5F?HF?>=0UG*I,9-=*C[U6*I/+:0.t
M4Q&I -4;@$#UCE9339NR5#VFSU1:($,UC<HCI:;22W6F/%*3*MIL'@HZ]:ERs
M3)NIG0J :0T5.5A0G:7*4_\E9X8>JL"T6TJSM*1*4=&IG5.:I2#5?EK(K*I"r
M3[NG2-.3!095C4DR>*!*5,RJ<X IP.@4YR%)[98J2?V07@% 9%'@=WI4_6YVq
M+I6J#U&O0%,5A_I4;:G6#NJIKE.G*BU5AVI+%29H5;LSTE35I2$2:,!7-:%Vp
M3JD0(L4$5-IT"V!8VP%T5@UKL-,)SC]5;=E.+2>25CNB)(@4QFDUM$""J D o
M")^ 4P.8)[*TEHD3#50,/>L4IT&'@5IS61I3> ^(*3"8=8.G:).2Q(7SE#,-n
M$T8#2)P:#XM+65K K$Z>V7:'[!3-*8+S&UF=A)8."*2E8Z=\YD'$.S#R/&F:m
M*!N%?LU&A4!AV202]60:-@>F:$_/@' U*YICL7L.D/84U\-:I@K5M@JP$%0(l
ML2 5OL_##Z*"GT#O3'L*&L![I@+[)FU2GT!;"3TB5Q<B=L_TQ3O,P,HI$"C4k
M,ET'QU5=H6_%L0G>H:\2*ABLK* AD>0'0 EO.9F83TZ9KD_VI7UU/2+"@+#Fj
M(SD%=P6[I\-$SU GJ@B8 $2L,TP%J\G"!& #U2>X5TVL"48DSN4GIJH\B"= i
M/LVK3U-!14IPJ-JM( )LK!BE5:^K:-;IL^!MZ4'\5L4.P57H)X?RPTE0LWDZh
M-F6B"E#"ITISOS:QP"A!5CTM1H GTDK1(\FUI+)V3@>I+0[60^GP_@F]G$RNg
M126?/-8T:YEK:4B:H+']2WB2$]*IEYJ5;08T V)22%&DH%&P**2*.SEV(!,:f
M/'((#,95YF1HH,IEK5;0*HBLOXHPZV&A&IDFK:!I5Y.!(P0X JO "N+B.I/Ve
M%@&;0,P7Z8!4T)H8J#YX''Z1E-8(I5/A+:&T< $P&/D)<LYCZ9;U5N%E;3&>d
MIP $E2*\I+.TST SB)9F**52X<A\9B]UB$GFO'BR"O:5V\GQY!VTW-7G=&CBc
M/Y.M7H7RY+(5O+H@M):6N;"E9,_N)K?T-34LG0P42X>M\HI8X:TBK\:K>#NNb
M)S9Y!84C [)1Z_C[VSK6&M>4P@NP(TY@AN!6F#30!&X 9T>TH]K1V$@5:#N:a
M6_^M#X'$!;JUQ^:D2N.5! A[X14OU;EMD[?8ZUH-]D07(KD9 A[OQ@7"@!N-z
M^6AX%M?XT81DSN?HB_.UJ2)]=+Z!!;.*';;L,O:M^D1]^ E2#J[OU$?*D>*4y
M7$%])]=6WXO"Y6KFD_71^@A]*M=90:XO0Q")^_4%^_I\Q#YPFJIOUB?JL_4!x
M7(^N5P%AB )!ZFB<\/TE)[B.S8D,@>)%WLH24-),&F0"?(M?(\!UWTILE/[Qw
M6Y&N8->#P&2ALD"3.%(!V$05(0K9GZC@HX!9$ L$V.0D"L)H0NZ@[-IV=0/ v
M)P8+:=>EGUNA[OIV-0'$72D+<U=4 ]\5[4HD6/IE!/BN)0:XZ]@U\'I9<+$=u
M>YAZ.J)I!(5SMF'AG'$62$.6%DXKY/QM2(K#D9*J+LT&]TZGYQXD/;/THS0Lt
M7BT+9E>WJ]51H1=Y'4]-7C6<6,C+JX930;IY%4WB<-2>3D_F0ZIBZ6<L.[W2s
M71VOD4@1YC#%]6I%I;VJ40VD@53-ZPK/]OI#P+WZC8@$NU=Y'W["]RIX!;[Jr
MB(2O"$E0P>LU\_H>E;U67J.0M5>QJO/5<PE]5;OF 0(48=?TJ_IU_;J>H+12q
M'=FM3U=W*S@)(X#\8PE\^^ROM(0<!4; U\@3V+H*&]-]75>VX]>5_6IN)0/,p
M /@ "SG5%P*6#I" @0'X(&4Q#%@-P=!*EP#8(I>L!:(V=( %6_+@\+" 7;!Uo
M8%\G'=B80 M #3 '^,!224FP#]C50 96 DMNH!08$,H#*JLZJ Z@ JL#H!@Tn
MY(H 13%)$47C!EL48P/H - &.@ R0$4.!PL%",+R8W0 I($>0'6%#<"#90($m
M89FP7 <;!-@!FM-T &$"'BP)8 TP&<5<J$#F .8 6ZP1( N[)4C"CN%'8G<l
M8*>P--A$ 0]V"6"%A<+B8)$ 4=@M@!+ "DL&X,'.84&;6%@M+(/#L(8$T &$k
M"WBP0P =0(2 !QL$H,*22Q@#/%B=:A<VQQ&'I0FT 02Q3HXX+ W@$7MFX,%:j
M4AZQ--@V0!TV#AL#>,2V <:P.%A%[,V !UL#\,0R8G&PF-@J;)3@!NL#B,/^i
M &8 DA<<[ ^ !A"+_8G4 &JQ/X ; -]%%HL#V,4&+'8 EA0Y0"-V\Q,#Z,/2h
M8%L#K%A7+"S6%4N+=<7>8EVQNEA7;"_6$*L#N, NY/X1&U@'[#4V)K" _4>Tg
M -(/W=B8 #B610"!Q<;28 4+^[@[[!M@!'#/T &(!D8 MI;:0<R-[H*#W0' f
M87&P,H YK!<VYA:%#</28&,$^[@^K"RINO*(Q</6 .*P6=@M;!_V#RL#B,,&e
M8@>Q#5D<;"$V#9OCF '$8=FPPH1Y;!Q6'_L&N-S$816QDP&/+"H6$BN2+8I1d
M8G,<$=DM0"J67**)+<EV8G^P5XZ4K"BV]I62+<7^8%&R<=A'["J6$PN,I0$(c
M8_&QQ%AC;!46-M4#6+R6&,P"6 8Q@(-!84 R> %L8T,7Q]A(;!&@%2N+7<;*b
M8INQLMAGK"PV&LN+E11E'GBP0)%=K!(V/P"6C0'$8GT U%A-P@WV"5"(70-La
M8J4'0@ =P!H %/L$",2N =RP6 RY;.W+"R"4)9?H!GBP?=@U0 Q@+5N$70/(z
M -:R40"Y[ Q@+2L%D,O2 -:R4P = '1!#,N/]7;I !9R(P#O#A[ #4"-O0[<y
M8($7U(0;;._B"HN0U<-Z5KFP5 HJ1<T*.7 7.,&E%LAW(807Y/*!<& M $FHx
M8/\1-@D_P23B/ RJ$H-T<!_JEF_ &H@3-!YV^P-"@1UI0'=P*8@ 49R,$I=w
M#'"798 R0HYJ+F E"&6U"E2SZ)FI2O]I,P YN!A,9]4..1K@%*:AW*$=>+:Hv
MF"@.< 9.@4KAL) $4,V"9Y,(+ ,_ 40B$9&<]1EP#%H%DRY[27H6RBJ91)->u
M.,4"JEGAPWAJM08[&P&H9FL'E@0EZ5%)->N%M2340<T$T@&GB6J68W!DPQ,,t
M"T8 90&F7ED@L0#.LH[6<<@]A@H,[6;6D@"2C!D<!EX$4I7W0.M &P6B/=">s
M!<(+V\ZE)11)<G"@+0W :)V>?I,#K886_=A+P,[::/4BBPXR@!XGR.-.T#!Br
M:#<)=X4(@7M6+G!7R-$>:64H_HP]2^N 9*":W5PD:0&0<DA0*H.627MA6$.:q
M'#"TO(&[0J)(-:N)M20@#-H 9%KK6Y>694FF36_<%6 M8D* PYR[$2-1<=Zp
M =2Q[-C0Q3N6V"*/C</>8^6P7=@O;#^6&@N0Y<OJ :RZ0<K+#^F-*N0]<.^o
M9;< #]GD3!QV(EN%5<->9.FP=M@N;$?V(_N(#<GF9$FRDMB3+ ]V)?N#?=2^n
M9#^QB5A/;.TK#FN3K1B,:FNP4ME?+.3@)^O(V@$48ZFQ1P-VK%RV#D"(E<L^m
M:N.R<UE K%S6#;L%",.2EP*RU-B_K)]6+CN8C<+:>^2RAUEG;6)V#;"8==8Vl
M9M< CUEG;61V,DM9.,->9ND F5D=P&:6&HN,C<*. 3JS0UC0[!!V-!NK3<CNk
M85&S!MI_P\U@=3"G14]"9:NP=EH\;3OV';LZ:,,"9C>R@5HP+*$VQV&H1=06j
M9!>U.%AW[6EV(?NHC=3V:BFR:UA,+< 6$<NI7<2^:HD"/-A)K"#V%*N2I<:Vi
M9#FQGEA0[!9@)DN*-<6^:G>R.-B&R.J 5KLZL-7V96NPX-K>A5IV4NNKY<$"h
M:T6V=EEBK;%V+_NR5=:^89FUA%EH+6)6,<N8=<Q"9B6S1+1N+1GV6QNN'==&g
M96^PYUH:K&<V"JNN%<U:8=NUIEG#FAP@>4" [=IZ;;^V8-NPK=AV;$NV+=N:f
M;<^V:-NTK=IV;<NV;=NZ;=^V<-NXK=QV;DNWK=O:;>^V>-N\K=YV;\NW[=OZe
M;?^V@-O K>!V<$NX+=P:;@^WB-O$K>)V<<NX;=PZ;A^WD-O(K>1V<DNYK=Q:d
%;B^WD5O c
b
end
--[0261]--
[0262] daemon@ATHENA.MIT.EDU (David Fenyes) Linux_Activists 12/31/91 21:09 (21 lines)
Subject: sigsetmask()? (LINUX)
From: David Fenyes <dfenyes@thesis1.med.uth.tmc.edu>
To: linux-activists@joker.cs.hut.fi (Linux mailing list)
Date: Tue, 31 Dec 91 20:02:55 CST
Hello LINUXer's :-),
A simple question:
Is there a sigsetmask.c?
Is sigsetmask() equivalent to ___ssetmask() ?
PS. If anyone has a compile shoelace, I'd be very interested in a copy,
since making it seems to require Minix.
Gratefully,
David.
--
David Fenyes dfenyes@thesis1.med.uth.tmc.edu
University of Texas Medical School Houston, Texas
--[0262]--