Release Notes For Linux v1.0

Posted on In Linux, Linux Kernel

This is the release notes for linux release v1.0 (source code: linux-1.0.tar.gz) 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 since 0.99 patchlevel 15:

  • removed all the bugs, of course.
  • networking fixes.
  • more changes than I really wanted..

CHANGES since 0.99 patchlevel 14:

  • too many to count, really. Besides, I’ve lost my notes.

CHANGES since 0.99 patchlevel 13:

  • new kernel source layout: drivers separated
  • lots of networking bugs fixed, and new network card drivers (Alan Cox, Donald Becker &co)
  • sound driver added to the default source distribution (Hannu Savolainen)
  • updated SCSI driver code (Eric Youngdale, Drew Eckhardt &co)
  • readonly OS/2 filesystem support (HPFS) added (Chris Smith)
  • NTP support (Philip Gladstone, Torsten Duwe, ??)
  • fixed 16MB swap-area limit
  • lots of minor cleanups, buxfixes etc.

CHANGES since 0.99 patchlevel 12 and earlier:

  • the bad memory management one-liner bug in pl12 is naturally fixed.
  • compiled with plain C by default instead of C++
  • ELF binary support (Eric Youngdale)
  • Quickport mouse support (and some changes to the PS/2 mouse driver) by Johan Myreen and co)
  • core file name change (“core” -> “core.xxxx” where xxxx is the name of the program that dumped code). Idea from ???. Also, core-files now correctly truncate any existing core file before being written.
  • some mmap() fixes: better error returns, and handling of non-fixed maps for /dev/mem etc.
  • one kludgy way to fix the wrong arp packets that have plagued net-2d (resulting in arp packets that had the first four bytes of the ethernet address as the IP address).
  • I fixed the mount-point handling of ‘rename()‘ and ‘unlink()/rmdir()‘ so that they should now work and/or give appropriate error messages. An early version of this patch was already sent to the KERNEL channel, which fixed the rename problem but not a similar bug with unlink.
  • packet mode fixes by Charles Hedrick. Sadly, these are likely to break old telnet/rlogin binaries, but it had to be done in order to communicate correctly with the rest of the world.
  • FPU emulator patches from Bill Metzenthen. The fprem1 insn should be correct now (not that anybody seems to have seen the incorrect behaviour..)
  • a few fixes for SCSI (Drew and Eric)
  • signal.c changes to handle multiple segments (for Wine) correctly.
  • updated drivers from Donald Becker: 3c509 and AT1500 drivers, but also some other drivers have been edited, and some networking fixes.

CHANGES since 0.99 patchlevel 11 and earlier:

  • The memory manager cleanup has continued, and seems to be mostly ready, as proven by the ease of adding mmap() over NFS with the new routines. So yes, the pl12 kernel will demand-load your binaries over NFS, sharing code and clean data, as well as running shared libraries over NFS. Memory management by Eric and me, while the NFS mmap code was written by Jon Tombs,

  • IMPORTANT : The keyboard driver has been enhanced even further, and almost everything is completely re-mappable. This means that there is a new version of ‘loadkeys’ and ‘dumpkeys’ that you must use with this kernel or you’ll have problems. The default keyboard is still the US mapping, but if you want to create your own mappings you’ll have to load them with the new binaries. Get the ‘kbd.tar.gz’ archive from the same place you get the kernel.

    The new keymappings allow things like function key string changes, remapping of the control keys, and freedom to remap any of the normal keyboard functions: including special features like rebooting, console switching etc. The keyboard remapping code has been done mostly by Risto Kankkunen (Risto.Kankkunen@Helsinki.FI).

  • updated network drivers by Donald Becker

  • updated serial drivers – tytso@Athena.mit.edu

  • updated 387 emulation (Bill Metzenthen). The updated emulator code has more exact trigonometric functions and improved exception handling. It now behaves very much like a real 486, with only small changes (greater accuracy, slightly different denormal NaN handling etc – hard to detect the differences even if you are looking for them).

  • network timer fixes by Florian La Roche (much cleaned up net/inet/timer.c and some bad race-conditions fixed).

  • Scsi code updates by Eric Youngdale and others

  • Sony CDU-31A CDROM driver by Corey Minyard added to the standard kernel distribution.

  • The Mitsumi CDROM driver is now part of the standard kernel. Driver by Martin Harriss with patches by stud11@cc4.kuleuven.ac.be (yes, he probably has a real name, but no, I haven’t found it) and Jon Tombs.

  • various other minor patches (preliminary ldt support etc)

NOTABLE changes since patchlevel 10 or earlier:

  • The memory manager has been cleaned up substantially, and mmap() works for MAP_PRIVATE. MAP_SHARED is still not supported for anything else than /dev/mem, but even so it actually is usable for a lot of applications. The shared library routines have been rewritten to use mmap() instead of the old hardcoded behaviour.

  • The kernel is now compiled with C++ instead of plain C. Very few actual C++ features are used, but even so C++ allows for more type-checking and type-safe linkage.

  • The filesystem routines have been cleaned up for multiple block sizes. None of the filesystems use it yet, but people are working on it.

  • named pipes and normal pipes should hopefully have the right select() semantics in the presense/absense of writers.

  • QIC-02 tape driver by Hennus Bergman

  • selection patches in the default kernel

  • fixed a bug in the pty code which led to busy waiting in some circumstances instead of sleeping.

  • Compressed SLIP support (Charles Hedrick). See net/inet/CONFIG

  • the ‘clear_bit()‘ function was changed to return the previous setting of the bit instead of the old “error-code”. This makes use of the bit operations more logical.

  • udelay() function for short delays (busy-waiting) added. Used currently only by the QIC driver.

  • fork() and sheduler changes to make task switches happen only from kernel mode to kernel mode. Cleaner and more portable than the old code which counted on being able to task-switch directly into user mode.

  • debugging malloc code.

ASCII formatted “Release Notes For Linux v1.0”

Following is the original ASCII formatted version of the “Release Notes For Linux v1.0”.

CHANGES since 0.99 patchlevel 15:

 - removed all the bugs, of course.
 - networking fixes.
 - more changes than I really wanted..

CHANGES since 0.99 patchlevel 14:

 - too many to count, really.  Besides, I've lost my notes. 

CHANGES since 0.99 patchlevel 13:

 - new kernel source layout: drivers separated
 - lots of networking bugs fixed, and new network card drivers (Alan Cox,
   Donald Becker &co)
 - sound driver added to the default source distribution (Hannu
   Savolainen)
 - updated SCSI driver code (Eric Youngdale, Drew Eckhardt &co)
 - readonly OS/2 filesystem support (HPFS) added (Chris Smith)
 - NTP support (Philip Gladstone, Torsten Duwe, ??)
 - fixed 16MB swap-area limit
 - lots of minor cleanups, buxfixes etc.

CHANGES since 0.99 patchlevel 12 and earlier:

 - the bad memory management one-liner bug in pl12 is naturally fixed.
 - compiled with plain C by default instead of C++
 - ELF binary support (Eric Youngdale)
 - Quickport mouse support (and some changes to the PS/2 mouse driver)
   by Johan Myreen and co)
 - core file name change ("core" -> "core.xxxx" where xxxx is the name
   of the program that dumped code).  Idea from ???.  Also, core-files
   now correctly truncate any existing core file before being written.
 - some mmap() fixes: better error returns, and handling of non-fixed
   maps for /dev/mem etc.
 - one kludgy way to fix the wrong arp packets that have plagued net-2d
   (resulting in arp packets that had the first four bytes of the
   ethernet address as the IP address).
 - I fixed the mount-point handling of 'rename()' and 'unlink()/rmdir()'
   so that they should now work and/or give appropriate error messages.
   An early version of this patch was already sent to the KERNEL
   channel, which fixed the rename problem but not a similar bug with
   unlink.
 - packet mode fixes by Charles Hedrick.  Sadly, these are likely to
   break old telnet/rlogin binaries, but it had to be done in order to
   communicate correctly with the rest of the world.
 - FPU emulator patches from Bill Metzenthen.  The fprem1 insn should be
   correct now (not that anybody seems to have seen the incorrect
   behaviour..)
 - a few fixes for SCSI (Drew and Eric)
 - signal.c changes to handle multiple segments (for Wine) correctly.
 - updated drivers from Donald Becker: 3c509 and AT1500 drivers, but
   also some other drivers have been edited, and some networking fixes.

CHANGES since 0.99 patchlevel 11 and earlier:

 - The memory manager cleanup has continued, and seems to be mostly
   ready, as proven by the ease of adding mmap() over NFS with the new
   routines.  So yes, the pl12 kernel will demand-load your binaries
   over NFS, sharing code and clean data, as well as running shared
   libraries over NFS.  Memory management by Eric and me, while the NFS
   mmap code was written by Jon Tombs,

 - ** IMPORTANT **: The keyboard driver has been enhanced even further,
   and almost everything is completely re-mappable.  This means that
   there is a new version of 'loadkeys' and 'dumpkeys' that you must use
   with this kernel or you'll have problems.  The default keyboard is
   still the US mapping, but if you want to create your own mappings
   you'll have to load them with the new binaries.  Get the 'kbd.tar.gz'
   archive from the same place you get the kernel.

   The new keymappings allow things like function key string changes,
   remapping of the control keys, and freedom to remap any of the normal
   keyboard functions: including special features like rebooting,
   console switching etc.  The keyboard remapping code has been done
   mostly by Risto Kankkunen (Risto.Kankkunen@Helsinki.FI).

 - updated network drivers by Donald Becker

 - updated serial drivers - tytso@Athena.mit.edu

 - updated 387 emulation (Bill Metzenthen).  The updated emulator code
   has more exact trigonometric functions and improved exception
   handling.  It now behaves very much like a real 486, with only small
   changes (greater accuracy, slightly different denormal NaN handling
   etc - hard to detect the differences even if you are looking for
   them).

 - network timer fixes by Florian La Roche (much cleaned up net/inet/timer.c
   and some bad race-conditions fixed).

 - Scsi code updates by Eric Youngdale and others

 - Sony CDU-31A CDROM driver by Corey Minyard added to the standard
   kernel distribution.

 - The Mitsumi CDROM driver is now part of the standard kernel.  Driver
   by Martin Harriss with patches by stud11@cc4.kuleuven.ac.be (yes, he
   probably has a real name, but no, I haven't found it) and Jon Tombs.

 - various other minor patches (preliminary ldt support etc)

NOTABLE changes since patchlevel 10 or earlier:

 - The memory manager has been cleaned up substantially, and mmap()
   works for MAP_PRIVATE.  MAP_SHARED is still not supported for
   anything else than /dev/mem, but even so it actually is usable for a
   lot of applications.  The shared library routines have been rewritten
   to use mmap() instead of the old hardcoded behaviour.

 - The kernel is now compiled with C++ instead of plain C.  Very few
   actual C++ features are used, but even so C++ allows for more
   type-checking and type-safe linkage.

 - The filesystem routines have been cleaned up for multiple block
   sizes.  None of the filesystems use it yet, but people are working on
   it.

 - named pipes and normal pipes should hopefully have the right select()
   semantics in the presense/absense of writers.

 - QIC-02 tape driver by Hennus Bergman

 - selection patches in the default kernel

 - fixed a bug in the pty code which led to busy waiting in some
   circumstances instead of sleeping.

 - Compressed SLIP support (Charles Hedrick). See net/inet/CONFIG

 - the 'clear_bit()' function was changed to return the previous setting
   of the bit instead of the old "error-code".  This makes use of the
   bit operations more logical.

 - udelay() function for short delays (busy-waiting) added.  Used
   currently only by the QIC driver.

 - fork() and sheduler changes to make task switches happen only from
   kernel mode to kernel mode.  Cleaner and more portable than the old
   code which counted on being able to task-switch directly into user
   mode.

 - debugging malloc code.

Leave a Reply

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