Linux v. 0.97 is out

Linux version 0.97 is available as both a complete source-tree
(linux-0.97.tar.Z) and a bootimage (bootimage-0.97.Z) on the normal
ftp-sites. It's in incoming on tsx-11.mit.edu, so it will take a day or
two to actually show up, but it's available right now on

	nic.funet.fi:
		pub/OS/Linux/testing/Linus/
	banjo.concert.net:
		pub/Linux/Linus/

The nic.funet.fi-directory is under 'testing' not so much because this
would be a testing-release, but because the directory-setup is in
testing :-). I think 'testing' is unreadable, so you have to cd to the
directory blindly.

There is also a kernel-compilation README (written by Lars Wirzenius),
as well as a COPYING (which is just a pointer to the GNU copyleft). The
latter not because anything has changed, but because I got a few mails
pointing out that the copyright of linux wasn't too clear. That also
resulted in changing the '(C)'s in the source to 'Copyright'.

Changes in 0.97:

 - The VESA-support was removed. I'd be happy to put it back once it
   works on all hardware. Instead of the VESA-code, I finally put in
   the automatic SVGA setup patches. See the top-level Makefile.

 - The IRQ code has solidified, and should work on all machines. Not
   all of the SCSI drivers use it yet, so I expect patches for that..

 - Serial interrupts are handled slightly differently, and performance
   should be up. I've sent out a few alpha-releases, and testing seems
   to indicate that's actually true this time. Reactions have ranged
   from "nice" to "wonderful" :-)

 - The buffer-cache and memory management code has been edited quite a
   bit. ps/free etc programs that reads kernel memory directly no
   longer work, and even a recompilation won't be enough. They actually
   need editing before they work.

   The buffer-cache now grows and shrinks dynamically depending on how
   much free memory there is. Shift+PrintScreen will give some memory
   statistics. (Ctrl+PrSc gives task-info, ALT+PrSc gives current
   register values).

   The mm code changes removed some race-conditions in the VM code, and
   I also tried to make the Out-of-swapspace error less severe (better
   thrashing-detection etc).

 - The super-block code has been cleaned up. Especially the extended fs
   needs to be edited a bit to take advantage of the new setup, and I
   expect Remy Card will have a patch out eventually.

 - include-files have been moved around some more: there are still some
   names that clash with the standard headers, but not many.

 - Unswappable processes implemented: by default only 'init' is
   unswappable. This is a bit safer in low-memory conditions, as at
   least init won't die due to low memory. I also made killing init
   impossible: if init doesn't recognize a signal, it simply won't get
   it. Some other changes ("while (1) fork();" won't kill the machine
   for non-root users etc)

 - The new SCSI drivers are in. These make the kernel noticeably
   bigger, but you can leave them out if you don't want them.

 - The floppy- and hd-drivers print out more debugging-info in case of
   errors: this might be irritating if you have hardware that works, but
   often gives soft-errors. On the other hand, some old debugging-info
   was removed - notably for user-level protection errors etc.

 - Various minor fixes. I haven't made cdiffs (and I haven't gotten any
   requests for them, so I probably never will), but they would be
   pretty big.

Things that I didn't have time for:

 - I wanted to rewrite the tty drivers to be more "streams-like" (ie not
   an actual streams-implementation, but some of the ideas from
   streams). I never got around to it: there was simply too much else
   to do.

 - I got a lot of patches, and some went in, others didn't. If you
   think your patch was important, please re-send it relative to the new
   version.

I'd like comments on the new system: performance / clarity of code etc.
0.97 should correct all known bugs (at least the ones I know about), but
I guess that's just wishful thinking.

Note that the dynamic buffer-code also handles differently-sized
buffers, but that the rest of the system (block device drivers,
filesystem code etc) cannot yet take advantage of this - there is still
some coding needed.

		Linus
198 files changed
tree: d98963643d94ad6edce0b75cc62ac162dca870ad
  1. boot/
  2. fs/
  3. include/
  4. init/
  5. kernel/
  6. lib/
  7. mm/
  8. net/
  9. tools/
  10. Makefile
  11. makever.sh