L i n u x N e w s A summary of the goings-on of the Linux community Issue #3, October 18 through 26, 1992 "The nightmare continues" **** Highlights in this issue - Kernel 0.98.pl2 is out, but not very usable due to new error trapping - ed is here, editor wars are over - man pages for SLS - Pirates BBS v1.9 available - new RaWrite available - xv 2.21 available - Newspak available - Kernel 0.98.pl3 is also out, with NULL pointer fixes - more magazine articles - Wizardly interview **** Editorial As you may have noticed, it isn't Saturday, which means that this issue is a bit late. Sorry about that. The reason (but not an aplogoy, I told you this was going to happen!) is that I decided I'd better keep deadlines for studies instead. (Incidentally, the same thing happened to Linus, which caused 0.98.pl3 to be a few days late.) Because of the lateness, and because I was somewhat busy and tired during the weekend (up for 32 hours Sunday to Monday, returned the report on the school project 5 minutes before deadline), I have probably not been able to catch many announcements. I have also not been very motivated today to write extensive summaries, so some of the announcements are very short (I slept for about 13 hours, but I'm still sleepy). For those waiting for a typeset version of Linux News: you'll have to wait some more. I have made typeset versions of issues 1 and 2, but the look is not necessarily what I want: it doesn't particularly look like a newsletter, nor is it particularly inviting. I will see if I can get some expert help in designing a better look (if you have experience with making a layout for newsletters, I'd like to hear from you). Issue 2 added an section that lists magazine articles that mention Linux. This issue adds an interview section. Hopefully this section will be appearing again, if I can get the energy to do a new interview (not that this one was particularly tiresome), and can find new victims. **** Notices Linux News is only a summary, if you want more information about a given subject, please see the source that is referenced at the end of each note (for Usenet articles, the reference is the Message-ID of the article). I try to include all the relevant information, including ftp sites and filenames, as given in the announcements (I probably won't have the time or energy to check filenames, or to find pointers to other ftp sites). If possible, I will try to indicate directories with a trailing /, e.g. ``pub/linux/SLS/''. I won't include announcements on mailing lists or testing releases, only things that are meant to be used generally (I admit that the line can be somewhat difficult to draw, since the whole system is pre-release). **** News section October 18. Linus released kernel version 0.98 patchlevel 2. He made available both the full source and diffs from patchlevel 1. New in this version: * The new version contains a new FPU-emulator by Bill Metzenthen. Bigger than the old one by Linus, but instead of only doing a few of the most important instructions, it emulates the whole 387 instruction set. It is also much faster than the old emulator + the soft math library. The new emulator will make a separate soft-float library unnecessary, which should simplify GCC distribution a bit. * Minor memory management fixes. Actually, one of the minor fixes, the trapping of kernel NULL dereferences, proved to break a lot code. While this is normally a bad thing, in this case it is very good, since it made a lot of kernel or driver bugs show up. Unfortunately, 0.98.pl2 is not necessarily usable on many computers, since the kernel bugs creep up too often. * SCSI driver changes by Eric Youngdale. Mostly bug-fixes. * Some TCP/IP patches. TCP/IP is still alpha, has not been extensively tested, and is probably not up to real use yet. * Psaux mouse patches by Dean Troyer. Starting with this version, Linus will no longer be making bootdisks. That task will be taken over by H.J. Lu and Jim Winstead. Note: 0.98.pl3 was also announced, see later in this issue. FTP: nic.funet.fi: pub/OS/Linux/testing/Linus/ (you need to cd to it blindly, since testing is unreadable). (Source: <1992Oct18.144546.28249@klaava.Helsinki.FI>) October 19. Peter Williams announced a debugged version of ed, the Unix line editor, courtesy of Bill Metzenthen. ed is used mostly by patch and shell scripts. In the early days of Unix (when paper teletypes were common) ed was used as the primary editor (these are referred to as ``the good old times''). Actually, that was the editor that the Linux News editor used when his modem was 1200 bps and his terminal program didn't work (these are not referred to as TGOT). FTP: archsci.arch.su.edu.au (129.78.66.1): pub/linux/apps/ed.tar.Z (both source and binary). (Source: <1992Oct19.232055.29209@ucc.su.OZ.AU>) October 20. Peter MacDonald announced an update to SLS. It contains manual pages that were accidentally removed in a previous release. FTP: tsx-11.mit.edu: disk b5 (presumably under pub/linux/SLS/) (Source: <1992Oct20.021600.28568@athena.mit.edu>) October 20. David Black announced Pirates BBS v1.9 for Linux. It is a multiuser bulletin board system. Working kernel TCP/IP is required, and 10 MB of disk space is recommended. FTP: sunsite.unc.edu:/pub/Linux/Incoming: pbbs-1.9.tar.Z (Source: ) October 20. Olaf Erb announced Wampes with Linux support. The announcement didn't describe what it was. FTP: ucsd.edu:/hamradio/packet/tcpip/incoming/wampes-921019.tar.Z (Source: <1992Oct20.180014.13048@rz.uni-karlsruhe.de>) October 20. Thomas Dunbar announced a port of GNU's free-standing info file reader. This package allows you to read the GNU on-line documentation, instead of doing it from within GNU Emacs. Also included are makeinfo and texindex, used for formatting info files from texinfo source code. FTP: tsx-11.mit.edu: /pub/linux/packages/TeX/Info.tar.Z (source code), Info.Z and makeinfo.Z (binaries). (Source: <8489@vtserf.cc.vt.edu>) October 21. Mark Becker, the author of RaWrite, announced a new version. The new version is supposed to run on ``nearly everything claiming to be compatible with the original IBM-PC''. RaWrite is an MS-DOS utility that is used to write out disk images (e.g. bootdisks) onto floppies. Under Linux the equivalent command is ``dd if=diskimage of=/dev/fd0'' (if you want to write to the first floppy). It is not possible to just copy the floppy image file to the floppy under MS-DOS, since that will require the floppy to have the DOS filesystem on it, which means that the disk will have extraneous stuff on it, not just the parts in the image file. FTP: ftp.ai.mit.edu: pub/mbeck/rawrite3.zip (Source: <29679@life.ai.mit.edu>) October 21. Larry Butler announced an upload of xv 2.21 binaries. There was trouble with his first upload (compiled with debugging and hence very large binaries), but that got fixed quickly. xv is a program for X that displays pictures in several different formats. FTP: sunsite.unc.edu: /pub/Linux/Incoming/ (Source: <1992Oct21.045610.5294@cs.tulane.edu>) October 23. Matthew Lewis announced an upload of dclock, an X clock with alarm. FTP: sunsite.unc.edu: /pub/Linux/Incoming/dclock.taz (Source: <1ca2b1INN1ht@usenet.INS.CWRU.Edu>) October 25. Toomas Losin announced tvgalib, a graphics library for Trident 8900C cards. This is based on the vgalib library, which is for generic VGA. Neither requires or has anything to do with X or other windowing systems. FTP: tsx-11.mit.edu (final pathname not given) (Source: <16746@mindlink.bc.ca>) October 26. Qi Xia announced a new program cksum, a (mostly) Posix conforming checksum program (not compatible with Unix sum). FTP: sunsite.unc.edu:/pub/Linux/Incoming (Source: <1992Oct26.172852.23913@sol.ctr.columbia.edu>) October 26. Vince Skahan announced an upload of Newspak v1.0. It is a package of programs related to Usenet news ported to Linux. The included programs are: C-news (12/22/91), tin (1.1pl4), trn (2.2), smail (3.1.28). Newspak uses programs from Mailpak (by Ed Carp), which provided uucp and mail for Linux. (You don't necessarily need Mailpak, if you have equivalent programs otherwise, e.g. from SLS.) FTP: sunsite.unc.edu:/pub/Linux/Incoming/newspak/ (probably moved elsewhere by the time you read this) (Source: <1992Oct26.153845.215@victrola.sea.wa.us>) October 26. Thomas Dunbar announced TeX packaged as an SLS package. FTP: tsx-11.mit.edu: /pub/linux/packages/SLS/t[1-5] (Source: <8748@vtserf.cc.vt.edu>) October 27. Linus Torvalds (a.k.a. the Grand Wizard) announced patches for kernel 0.98.3. No complete sources as of this writing (should come up soon). The new version should correct most of the kernel NULL pointer reference problems (see earlier announcement). FTP: nic.funet.fi: pub/OS/Linux/testing/Linus/linux-0.98.patch3.Z (Source: <1992Oct27.040101.28497@klaava.Helsinki.FI>) **** Xref section Last week I had compiled a list of magazines that mention Linux. I have since then received a couple of updates, listed below. I will make a complete list in some future issue. If you know of any additional articles, please send me a note that tells which magazine and issue the article is in. Page numbers would be nice too. I am usually unable to verify the information, since I have access only to a rather small number of magazines. CVu, the magazine of the C User Group (UK), has had regular articles (or columns) about Linux for about the last six months. I received an e-mailed copy of one article, which contained updates about various parts of and projects around Linux (TCP/IP, distributions, etc). The Computer Journal, a small American magazine, has also mentioned Linux in several issue. The magazine was described to me in a way that made it sound very much oriented towards hackers: one recent article described how to build an IDE disk controller for CP/M. (They obviously cover more than CP/M.) *** Interview Why is Linux News better than BYTE, CACM, the National Inquirer, and sliced bread? We interview Linus! In this first-ever, breathtaking, revealing interview, the Grand Wizard Linus tells it all! Well, almost... LN: Tell us a bit of yourself and your background. Age, education, occupation, family, pets, hobbies, computing history, etc. Linus: Hmm. I'm 22 (as some avid kernel source readers have already found out: there is a hidden clue in there somewhere...), and am (slowly) working my way towards a fil.kand (MSc? whatever) in computer science at the University of Helsinki. I'm currently in my fourth year (hmm.. fifth, but one was spent in the army) of studies, and I expect to sit here studying for a long time to come. I still live at home (which is why I can afford to work on Linux and study at the same time without working too) with my (100% white) cat (Mithrandir, but it's called everything from "randi" to "klomppen" depending on my mood) and my sister and mother. The fun never ends. I started with computers (a VIC-20) when I was about 11, first with BASIC, then learning 6502 machine code (assemblers are for wimps). I looked on with envy while my friends got their C-64's (I didn't have any more money then than I have now), but was eventually able to get a Sinclair QL and get some real programming done under a multitasking (albeit somewhat weird) system. On the sinclair QL I continued to program in assembly (The QL BASIC (SuperBasic) was ok, but I wasn't interested), and I wrote various more-or-less useless programs (ranging from a FORTH compiler and an editor-assembler system of my own to pac-man to a msdos compatible floppy disk driver). The QL was a fun machine, but there weren't very many of them in Finland, and although I was generally happy to write my own programs (still am), it did teach me to buy hardware that actually is supported. LN: When and why did you start writing Linux? Linus: I took this course on UNIX and C at the university in the fall of 1990, and I got hooked. I had naturally seen some of the PC-contemptibles running msdos, and I was relatively happy with my QL, although some of the 386's were a lot faster. But one of the books we read during the course was "Operating Systems, Design and Implementation" by Tanenbaum, and that way I learnt about Minix. I wanted my home machine to have a similar setup to the suns at the university, and Minix seemed like a good candidate. So when I had scrounged up enough money, I bought myself an AT-386 compatible machine (well.. I didn't have enough money, so I'm still paying on it, but it seems I'll get enough money for Linux to finally pay off the last rates). I had long since decided that anything less than a 386 wasn't worth it, and with Minix on it, I thought I'd have a nice enough system. As it turned out, Minix wasn't available in Finland (at least I wasn't able to find it easily), so while I got my machine on January 5th 1991 (easy date to remember due to the monthly payments :-), I was forced to run DOS on it for a couple of months while waiting for the Minix disks. So Jan-Feb was spent about 70-30 playing "Prince of Persia" and getting aquainted with the machine. When Minix finally arrived, I had solved "PoP", and knew a smattering of 386 machine code (enough to be able to get the machine into protected mode and sit there looping). So I installed Minix (leaving some room for "PoP" on a DOS partition), and started hacking. Getting Minix wasn't altogether a pleasant experience: the keyboard bindings were wrong, and it didn't exactly act like the suns I was used to (ugghh. I *hate* the bourne shell for interactive work). The keyboard was easy to correct (although I didn't like the Minix keyboard driver code), and applying Bruce Evans' 386-patches made the system a bit more "real". So somewhere around March-91, I had a 386 system running Minix-386, and I was able to install awb's gcc-1.37.1 port. After that, I was able to port bash to the resulting mess, and things looked a bit better. I also spent my time generally fooling around (porting gcc-1.40 and various other programs), and kept on learning about the 386 while doing so (writing small boot-disks that would set up a protected mode environment and print out various inane messages). I had noticed by that time that Minix wasn't enough even with the 386 patches (various troublesome problems: no job control, ugly memory management, no fpu support etc). So I slowly started to try to make something out of my protected mode trials, and the result is Linux. LN: Please give a short summary of the history of Linux. Linus: Difficult. "Linux" didn't really exist until about August-91 - before that what I had was essentially just a very basic protected mode system that had evolved from a glorified "Hello world" program into a even more glorified terminal emulator. Linux stopped for quite a while at the terminal emulator stage: I played around with Minix, and used my protected mode program to read news from the univerity machine. No down/upload, but it did a fair vt100 emulation, and did it by using two tasks which communicated from keybodard->modem and modem->screen. By mid-summer -91, "Linux" was able to read the disk (joyful moment), and eventually had a small and stupid disk driver and a simple buffer cache. So I started out trying to make a filesystem, and used the Minix fs for simple practical reasons: that way I already had a file layout I could test things on. After some more programming (talk about glossing things over), I had a very simple UNIX that had some of the basic functionalities of the real thing: I could run small test-programs under it. By that time I looked around for some standards texts - I decided early on that I didn't want to write the user-level programs, and that in order to easily port things I'd either have to make the new system compatible with Minix (ugghh) or follow some other kind of standard. What I wanted was a POSIX guide, not so much to be 100% posix, but in order not to do anything really stupid I'd regret later. My quest for the posix standards failed, as the posix standard committee sells the standard to feed itself as I found out, but I did get a good pointer to the (then very alpha and unsupported) GNU libc.a, which had an early manual accompanying it. The manual was of some help, but the biggest help was actually the contact to the person who pointed it out to me: arl@sauna.hut.fi. He was/is the organizer of the pub/OS subdirectory at nic.funet.fi, and was interested in giving Linux a home at nic. Back then, I was only idly thinking about making my system available (and I had no real time-table), but arl happily created a pub/OS/Linux subdirectory at nic, and thus also gave the system it's name. I wasn't really ready for a release yet, so the directory contained just a README for about a month ("this directory is for the freely distributable Minix clone" or something like that). Arl probably thought the project wouldn't come to anything. Anyway, around the end of August-91 or so, I had a system that actually worked somewhat: I was able to run the Minix shell (recompiled with new libraries) under it, and some other things also worked. I released Linux-0.01 in September, telling about it by mail to those who had shown interest in it when I asked around on the minix newsgroup. 0.01 was a source-only release, and I don't think anybody actually compiled it, but it was a statement of intent, and people could look at the sources if they wished. I don't think more than about 5-10 people ever looked at it - I wasn't yet too happy about it, so I didn't announce it publically anywhere. A few weeks later (October 5th by the minix news-archives), I had gotten my act together sufficiently to release 0.02, along with a couple of binaries you could run under Linux (bash, gcc, update and sync, I believe). It still needed minix-386 to compile the kernel, as the harddisk parameters were hardcoded into the hd driver, but I know some people had it up and running: arl even sent me some ftp-statistics about it (which I've sadly deleted by now). Gcc wasn't reliable under linux yet: it couldn't compile big files due to various buffer-cache problems, but you could get small programs going even under 0.02. Not much later, I released 0.03, which actually worked pretty well - the buffer cache mostly worked, as did most other things. Heady with my unexpected success, I called the next version 0.10, and by that time I already got comments from early beta-testers, as well as actual patches. The linux community wasn't much: maybe 10-20 minix users who enjoyed hacking a new kernel. After 0.10 came 0.11, and things were pretty much plain sailing. The system was stable enough to be used for further developement, and it was "just" a matter of correcting bugs and extending the system. I added swapping to the system in three days just before X-mas 91, and was finally able to say that I was no longer playing catch-up with Minix. The swapping code was ugly and not very well tested: it actually had bad bugs in it until I needed it myself when X11 came around, but it was something of a milestone. The next version (0.12) came out exactly (?) one year after I bought my computer (Jan 5th -92), and it was the version that finally got popular: by that time it was a very much valid alternative to Minix, and people started getting interested. Later versions (0.95 etc) have had a lot of new features, and quite a few bug-fixes. There have also been major re-writes (first the fs was slowly changed to have a vfs layer, then the kernel sleep/wakeup primitives got rewritten, and then the mm got restructured). In spite of that, I think 0.12 was what might have been called 1.0 - it had the basic features, and worked. LN: Have you enjoyed the past year and a half? Have you liked some things especially, have there been things you haven't liked? Linus: It's definitely been fun. Things have changed pretty radically: the early couple of months were solitary hacking runs with 5-10 reboots a day to check out bugfixes/features - seeing the system evolve noticeably in a relatively short time. Now, most of my Linux hacking time goes into design (new features do take some more thought now) and/or administrative things like keeping up with linux mails etc - it's seldom a question of 40+ hours a week of pure hacking. Getting mail (within limits) is fun: especially if it's 99% positive, as it has been. And people have been generally enthusiastic, sending patches, ideas, requests for features, etc. There are downsides: before the newsgroup got founded, I often got more than 70 mails a day. Things have calmed down significantly: while I still get 20-40 mails per day, many of them are from the mailing-lists and not to me personally, so that I can essentially ignore them if they aren't interesting. Negative things have been mostly due to driver problems: while people have been very nice about it, it's still not fun getting mail about "the system from hell that ate all their files". Especially if I haven't had a clue about what could be wrong. Other problems have included just lack of time and different priorities: some people have gotten impatient when I haven't included some special feature or other. I usually need some kick-starting if it's not something I'm especially interested in. LN: Why is Linux copylefted? The copyright was different in the early versions. Why did it change? Do you support the GNU view of software in general? What are your feelings about freeware, shareware, and commercial software? Linus: One of the basic principles has always been being that it should be freely distributable without any money-begging. I generally dislike shareware: I feel guilty about not paying, so I don't use it, but on the other hand it is irritating to know that it's there. Illogical, but that's how I feel. Early versions of Linux had a very strict copyright: it disallowed any payments at all (not even copying costs etc), while otherwise being similar to the GNU copyleft (ie freely distributable assuming full source is made available). It was probably an over-reaction to the dislike I felt against the way Minix had been set up: I thought (and still do) that Minix would have been better off had it been freely available by ftp or similar. The copyright got changed with version 0.12, as there were a couple of mails even back then asking about the possibility of a copying service or similar. After removing that clause from the copying conditions, I essentially had the GNU copyleft (without the legal verbiage), so I decided I might as well use the copyleft as-is. And as Linux depended (still does) heavily on copylefted programs, it's only natural that the kernel should be copylefted as well. LN: When are you planning the 1.0 release, and what do you expect it to include? Linus: I've planned the 1.0 release for a long time, and I've always waited just a bit longer. Right now my final deadline is "before X-mas", but I hope it would be ready before December. No major new features: I want some cleanups and to get rid of bugs, but it's nothing special I'm waiting for right now. LN: How do you feel about Minix, 386BSD, and Hurd and their authors? Are they rivals, or or allies? Linus: 386BSD and Hurd are most definitely allies - I'll be happy to help them any way I can (for 386BSD I was already able to help with the math-emulator, and I've been in contact with some others re: vm86 etc). If 386BSD had been available a year earlier, I would probably never have started on Linux, but as it is, I'm happy to say that 386BSD didn't automatically mean that Linux wasn't worth it. Both 386BSD and Linux have their points, and I naturally think Linux is more fun. As to Hurd, I don't know when it will be ready nor what it will look like. But it will be different enough that I don't think there is any point in considering it a rival. I doubt Linux will be here to stay, and maybe Hurd is the wave of the future (and maybe not), but at the very least it's an interesting project. Minix... Hmm. It's no longer a rival, unless ast does something really unexpected with it - the niches are simply too different. Linux won't work on many machines that Minix runs happily on (x86, x<3, amiga, mac etc), and even on a 386, Minix is still probably preferable as a teaching tool due to the book. But for anybody who used Minix to actually get a UNIX environment at home, I don't see any reason to stay with it, as both 386BSD and Linux are free and give much better features. On the other hand, I have to admit to a very unbecoming (but understandable, I hope) feeling of glee when I saw that c.o.linux had finally more readers than c.o.minix. There was a heated discussion about Linux on the Minix newsgroup back when c.o.linux (actually, alt.os.linux at that time) had just begun, and ast tried to ridicule it (one of his comments on c.o.minix being that I wouldn't have passed his course in OS design with such a bad system..). Ast and I mailed about it, and it left a slightly bitter after-taste. LN: The Jolitzes suggested a while ago a contest between 386BSD and Linux, what do you think about it? Linus: I don't necessarily think it would be a good idea: I cannot imagine how it would be "judged" or whatever. The only contact Linux and 386BSD has had has been only positive (aside from occasional flame-wars, but it's a religious argument..), and I don't think there is any need to try to get any kind of rivalry going. The argument seems to have been that such a contest would make both systems better, but I frankly doubt that is the case: both 386BSD and Linux will evolve even without any special contest held between them, and a contest would just result in more rivalry and flame-wars. Linux and 386BSD have totally different goals - 386BSD wants to be BSD, while Linux just is whatever we make of it. 386BSD was helpful in giving me some ideas (I read the Jolitz column in DDJ with interest), and while it's a bit scary to have a big and well known UNIX kernel that fills a similar niche as Linux, there is no reason to choose one over the other on a larger scale. People will prefer one or the other, and if either shows itself to be much better/popular, so be it. LN: What about the future? Are you planning to support Linux, or do you intend to retire and let it survive by itself? Linus: I'm most certainly going to continue to support it, until it either dies out or merges with something else. That doesn't necessarily mean I'll make weekly patches for the rest of my life, but hopefully they won't be needed as much when things stabilize. LN: Are you going to write a book about Linux? Or a detailed history, > with all the gory details revelead? Linus: I don't like writing documentation, and writing a book is certainly not planned. There is some pressure for me to write a history, hope this interview will server at least partly as one. And there certainly won't be any gory details: if there were, I've already forgotten them (or flushed them: I have sadly deleted my correspondence with ast along with all other old mail. I simply don't have room for it, and I'm too lazy to back it up.) LN: Is Linux your dream operating system? Are there things that you dislike, or would like to do differently, if you would start over from scratch? Linus: There are things I'd like to change - but then it wouldn't be UNIX any more. There are good points to a microkernelish design and distributed systems: I just haven't got the resources to do anything about it. I'd like to do a more exotic system, with better support for pending I/O, distribution of processes etc, but with just one 386 at home, I'm not likely to do anything about it in the next few years. And maybe I'll have found a new area of interest by then anyway.. But in general, I think Linux does what I was looking for pretty well. There are details I dislike in the kernel, but the basic ideas have worked well, and there are no major ugly warts in the Linux design. So in that way it is kind of a dream system - just enough problems to keep up the interest, and keep it evolving. No program is ever perfect, and operating systems are interesting programs: there are a lot of things you have to keep track of, and a lot of different ways you can solve the problems. Linux does it one way: 386BSD has many basic similarities in design, but some major differences in implementation. Then there are OS's like Hurd (well, Mach right now) and Amoeba which have a totally different design strategy, giving different problems and solutions. There may be one right way of doing things, but I doubt it: and Linux doesn't do too badly.