|

Release Notes For Linux v1.0

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.

Similar Posts

  • Chinese Charactor Configuration on Fedora 11

    最新的更新版本请看: Fedora 中文字体设置. 使用Linux时我个人倾向使用英文环境系统,而Fedora11在英文环境下中文字体有时会不太好看,经常遇到需要字体优化美化的问题。 以下是我的配置方案,经测试效果还算不错,解决了Fedora 11 中文字体难看的问题: 方案1:使用uming和ukai字体,即AR PL UMing CN等。 关键是使用的字体包如下: 首先要安装这两个字体: cjkuni-ukai-fonts cjkuni-uming-fonts 然后配置一下~/.fonts.conf文件. 使sans-serif serif monospace字体中文使用uming/ukai即可. 我的.fonts.conf文件可以从这里下载(两种选择, 我喜欢前者): https://github.com/zma/config_files 使用Liberation和uming/ukai字体: .fonts.cofn.liberation 使用dejavu和uming/ukai字体: .fonts.conf.dejavu 下载后放到自己的$HOME下改名为.fonts.conf就可以了。 使用uming字体效果如下(请放大后看效果): 方案2:安装文泉驿字体,这个非常简单,安装相应包即可了。 如果喜欢其它的字体选择性的安装上就可以了,只要注意只安装自己需要的就行了。有人使用微软雅黑字体,首先这是侵权的,其次开源的字体做得其实已经很不错了。 最后将字体平滑选项打开, KDE和gnome都有相关设置方法。 以上内容只是针对使用xft字体系统的设置。对于使用核心字体系统的X程序来说字体依然会出现很丑的情况。 下面是针对emacs的设置方法: 首先需要安装这个字体包: xorg-x11-fonts-misc 注意到在中文系统下emacs的中文显示非常好,而在英文环境中去非常差,我们可以利用这一点,在运行emacs前首先将系统环境设为中文即可。 在~/bin/下建立一文件ema 内容如下: #!/bin/bash rm -f ~/.emacs ln -s ~/.emacs.x ~/.emacs LANG=zh_CN.UTF-8 emacs –fullheight -r $* 然后加入执行权限即可: chmod +x…

  • How to run gitbook on a headless server (make Calibre run in headless server)?

    When use gitbook to generate ebook, Calibre reports this: RuntimeError: X server required. If you are running on a headless machine, use xvfb After xvfb is installed, it does not work either. How to make gitbook/Calibre work on a headless server? You need to wrap the command ebook-convert with xvfb-run. However, in gitbook (lib/generate/ebook/index.js), ebook-convert…

  • How to convert all text from upper case to lower case on Linux?

    How to convert all text in a file from upper case to lower case and vice versa on Linux? Convert from upper case to lower case: tr ‘[:upper:]’ ‘[:lower:]’ < input.txt > output.txt Convert from lower case to upper case: tr ‘[:lower:]’ ‘[:upper:]’ < input.txt > output.txt Read more: How to convert a string to…

  • How to sort all files recursively by modification time in a directory on Linux?

    How to sort all the files in a directory and subdirectories recursively by modification time on Linux? You can make use of find (GNU find, or plus stat), sort and sed together to achieve recursively sort files by modification time: find . -type f -printf ‘%T@ %pn’ | sort -k 1 -n | sed ‘s/^[^…

  • How to make Fedora Linux not clean some files in /tmp/?

    On my Fedora 41, I find that the system automatically clean up file under /tmp/. This is convenient. However, it cause some problems for some programs. For example, HDFS puts its DataNode pid file under /tmp/ by default like hadoop-hadoop-datanode.pid. After it is cleaned up, the hadoop-daemon.sh script will consider there is no DataNode running….

  • Conferences on Cloud Computing 2013

    This post lists important conferences related to Cloud Computing in year 2013. SOSP 2013 SOSP’13: The 24th ACM Symposium on Operating Systems Principles. November 3-6, 2013, Nemacolin Woodlands Resort, Pennsylvania. The biennial ACM Symposium on Operating Systems Principles is the world’s premier forum for researchers, developers, programmers, and teachers of computer systems technology. Academic and…

Leave a Reply

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