Release Notes For Linux v0.97

Posted on In Linux, Linux Kernel

This is the release notes for linux release v0.97 with format adjusted by removing/replacing tabs/spaces/new lines. This notes document can give us an understanding of the early development of the Linux kernel. The original ASCII formatted version is at the end of this post.


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


ASCII formatted “Release Notes For Linux v0.97”

Following is the original ASCII formatted version of the “Release Notes For Linux v0.97”.

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

Leave a Reply

Your email address will not be published. Required fields are marked *