1CHANGES since 0.99 patchlevel 15: 2 3 - removed all the bugs, of course. 4 - networking fixes. 5 - more changes than I really wanted.. 6 7CHANGES since 0.99 patchlevel 14: 8 9 - too many to count, really. Besides, I've lost my notes. 10 11CHANGES since 0.99 patchlevel 13: 12 13 - new kernel source layout: drivers separated 14 - lots of networking bugs fixed, and new network card drivers (Alan Cox, 15 Donald Becker &co) 16 - sound driver added to the default source distribution (Hannu 17 Savolainen) 18 - updated SCSI driver code (Eric Youngdale, Drew Eckhardt &co) 19 - readonly OS/2 filesystem support (HPFS) added (Chris Smith) 20 - NTP support (Philip Gladstone, Torsten Duwe, ??) 21 - fixed 16MB swap-area limit 22 - lots of minor cleanups, bugfixes etc. 23 24CHANGES since 0.99 patchlevel 12 and earlier: 25 26 - the bad memory management one-liner bug in pl12 is naturally fixed. 27 - compiled with plain C by default instead of C++ 28 - ELF binary support (Eric Youngdale) 29 - Quickport mouse support (and some changes to the PS/2 mouse driver) 30 by Johan Myreen and co) 31 - core file name change ("core" -> "core.xxxx" where xxxx is the name 32 of the program that dumped code). Idea from ???. Also, core-files 33 now correctly truncate any existing core file before being written. 34 - some mmap() fixes: better error returns, and handling of non-fixed 35 maps for /dev/mem etc. 36 - one kludgy way to fix the wrong arp packets that have plagued net-2d 37 (resulting in arp packets that had the first four bytes of the 38 ethernet address as the IP address). 39 - I fixed the mount-point handling of 'rename()' and 'unlink()/rmdir()' 40 so that they should now work and/or give appropriate error messages. 41 An early version of this patch was already sent to the KERNEL 42 channel, which fixed the rename problem but not a similar bug with 43 unlink. 44 - packet mode fixes by Charles Hedrick. Sadly, these are likely to 45 break old telnet/rlogin binaries, but it had to be done in order to 46 communicate correctly with the rest of the world. 47 - FPU emulator patches from Bill Metzenthen. The fprem1 insn should be 48 correct now (not that anybody seems to have seen the incorrect 49 behaviour..) 50 - a few fixes for SCSI (Drew and Eric) 51 - signal.c changes to handle multiple segments (for Wine) correctly. 52 - updated drivers from Donald Becker: 3c509 and AT1500 drivers, but 53 also some other drivers have been edited, and some networking fixes. 54 55CHANGES since 0.99 patchlevel 11 and earlier: 56 57 - The memory manager cleanup has continued, and seems to be mostly 58 ready, as proven by the ease of adding mmap() over NFS with the new 59 routines. So yes, the pl12 kernel will demand-load your binaries 60 over NFS, sharing code and clean data, as well as running shared 61 libraries over NFS. Memory management by Eric and me, while the NFS 62 mmap code was written by Jon Tombs, 63 64 - ** IMPORTANT **: The keyboard driver has been enhanced even further, 65 and almost everything is completely re-mappable. This means that 66 there is a new version of 'loadkeys' and 'dumpkeys' that you must use 67 with this kernel or you'll have problems. The default keyboard is 68 still the US mapping, but if you want to create your own mappings 69 you'll have to load them with the new binaries. Get the 'kbd.tar.gz' 70 archive from the same place you get the kernel. 71 72 The new keymappings allow things like function key string changes, 73 remapping of the control keys, and freedom to remap any of the normal 74 keyboard functions: including special features like rebooting, 75 console switching etc. The keyboard remapping code has been done 76 mostly by Risto Kankkunen (Risto.Kankkunen@Helsinki.FI). 77 78 - updated network drivers by Donald Becker 79 80 - updated serial drivers - tytso@Athena.mit.edu 81 82 - updated 387 emulation (Bill Metzenthen). The updated emulator code 83 has more exact trigonometric functions and improved exception 84 handling. It now behaves very much like a real 486, with only small 85 changes (greater accuracy, slightly different denormal NaN handling 86 etc - hard to detect the differences even if you are looking for 87 them). 88 89 - network timer fixes by Florian La Roche (much cleaned up net/inet/timer.c 90 and some bad race-conditions fixed). 91 92 - Scsi code updates by Eric Youngdale and others 93 94 - Sony CDU-31A CDROM driver by Corey Minyard added to the standard 95 kernel distribution. 96 97 - The Mitsumi CDROM driver is now part of the standard kernel. Driver 98 by Martin Harriss with patches by stud11@cc4.kuleuven.ac.be (yes, he 99 probably has a real name, but no, I haven't found it) and Jon Tombs. 100 101 - various other minor patches (preliminary ldt support etc) 102 103NOTABLE changes since patchlevel 10 or earlier: 104 105 - The memory manager has been cleaned up substantially, and mmap() 106 works for MAP_PRIVATE. MAP_SHARED is still not supported for 107 anything else than /dev/mem, but even so it actually is usable for a 108 lot of applications. The shared library routines have been rewritten 109 to use mmap() instead of the old hardcoded behaviour. 110 111 - The kernel is now compiled with C++ instead of plain C. Very few 112 actual C++ features are used, but even so C++ allows for more 113 type-checking and type-safe linkage. 114 115 - The filesystem routines have been cleaned up for multiple block 116 sizes. None of the filesystems use it yet, but people are working on 117 it. 118 119 - named pipes and normal pipes should hopefully have the right select() 120 semantics in the presence/absence of writers. 121 122 - QIC-02 tape driver by Hennus Bergman 123 124 - selection patches in the default kernel 125 126 - fixed a bug in the pty code which led to busy waiting in some 127 circumstances instead of sleeping. 128 129 - Compressed SLIP support (Charles Hedrick). See net/inet/CONFIG 130 131 - the 'clear_bit()' function was changed to return the previous setting 132 of the bit instead of the old "error-code". This makes use of the 133 bit operations more logical. 134 135 - udelay() function for short delays (busy-waiting) added. Used 136 currently only by the QIC driver. 137 138 - fork() and scheduler changes to make task switches happen only from 139 kernel mode to kernel mode. Cleaner and more portable than the old 140 code which counted on being able to task-switch directly into user 141 mode. 142 143 - debugging malloc code. 144

