An error occurred fetching the project authors.
  1. 23 Nov, 2007 29 commits
    • Linus Torvalds's avatar
      Import 1.1.50 · 2d8ead33
      Linus Torvalds authored
      2d8ead33
    • Linus Torvalds's avatar
      Import 1.1.44 · 2b130d1b
      Linus Torvalds authored
      2b130d1b
    • Linus Torvalds's avatar
      Import 1.1.42 · a6686074
      Linus Torvalds authored
      a6686074
    • Linus Torvalds's avatar
      Import 1.1.38 · e19a1bdb
      Linus Torvalds authored
      e19a1bdb
    • Linus Torvalds's avatar
      Import 1.1.37 · eebbb0b8
      Linus Torvalds authored
      eebbb0b8
    • Linus Torvalds's avatar
      Import 1.1.36 · ba00f557
      Linus Torvalds authored
      ba00f557
    • Linus Torvalds's avatar
      Import 1.1.35 · f48455d2
      Linus Torvalds authored
      f48455d2
    • Linus Torvalds's avatar
      Import 1.1.33 · 5079f36d
      Linus Torvalds authored
      5079f36d
    • Linus Torvalds's avatar
      Import 1.1.26 · 9f3c745e
      Linus Torvalds authored
      9f3c745e
    • Linus Torvalds's avatar
      Import 1.1.20 · 50198be8
      Linus Torvalds authored
      50198be8
    • Linus Torvalds's avatar
      Import 1.1.11 · b7c2deb6
      Linus Torvalds authored
      b7c2deb6
    • Linus Torvalds's avatar
      pl15a fixes the buffer cache growing problem, adds emulation for a · 17d2d71c
      Linus Torvalds authored
      few unimportant floating point instructions (i287 instructions that
      are No-Ops on the i387, so "emulating" them is easy :^) and fixes a
      silly bug when mmap'ing stuff write-only.  It also fixes a buggy lock
      in the networking.
      17d2d71c
    • Linus Torvalds's avatar
      This is a general announcement of the imminent code-freeze that will · 1f3d6740
      Linus Torvalds authored
      hopefully make linux 1.0 a reality.  The plan has been discussed a bit
      with various developers already, and is already late, but is still in
      effect otherwise.
      
      In short, the next version of linux (0.99.15) will be a "full-featured"
      release, and only obvious bug-fixes to existing features will be applied
      before calling it 1.0.  If this means that your favourite feature or
      networking version won't make it, don't despair: there is life even
      after beta (and it's probably not worth mailing me about it any more:
      I've seen quite a few favourite features already ;-).
      
      In fact, 1.0 has little "real meaning", as far as development goes, but
      should be taken as an indication that it can be used for real work
      (which has been true for some time, depending on your definition of
      "real work").  Development won't stop or even slow down: some of it has
      even been shelved pending a 1.0 already.
      
      Calling it 1.0 will not necessarily make all bugs go away (quite the
      opposite, judging by some other programs), but I hope it will be a
      reasonably stable release.  In order to accomplish this, the code-freeze
      after 0.99.15 will be about a month, and I hope people will test out
      that kernel heavily, instead of waiting for "the real release" so that
      any potential bugs can be found and fixed.
      
      As to where we are now: as of this moment, the latest release is the 'r'
      version of pl14 (aka "ALPHA-pl14r").  I've made ALPHA releases available
      on ftp.funet.fi almost daily, and expect a final pl15 within a few more
      days.  Testing out the ALPHA releases is not discouraged either if you
      like recompiling kernels every day or two..
      
      And finally: we also try to create a "credits" file that mentions the
      developers of the kernel and essential linux utilities.  The credit file
      compilator is jmartin@opus.starlab.csc.com (John A. Martin), and if you
      feel you have cause to be mentioned in it, please contact him.
      
                  Linus
      1f3d6740
    • Linus Torvalds's avatar
      [PATCH] Linux-0.99.14 (November 28, 1993) · 7e842588
      Linus Torvalds authored
      Original Changelog:
      
      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.
      7e842588
    • Linus Torvalds's avatar
      Import 0.99.13k · 537b6ff0
      Linus Torvalds authored
      537b6ff0
    • Linus Torvalds's avatar
      [PATCH] Linux-0.99.13 (September 19, 1993) · 4779b38b
      Linus Torvalds authored
      We get enable_irq()/disable_irq()
      
      The C++ experiment is not going well.  Get rid of the 'extern "C"', but
      replace it with an "asmlinkage" #define that allows us to experiment.
      
      ELF binary support it a notable change.
      
      Original ChangeLog:
      
       - 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.
      4779b38b
    • Linus Torvalds's avatar
      Very small patch to 0.99pl12 · 9dab425e
      Linus Torvalds authored
      I hate to put out patches this soon after a release, but there is one
      potentially major problem in pl12 which is very simple to fix..  I'm
      including patches: both in plain ascii and as a uuencoded gzip file
      (it's the same patch - the uuencoded one is in case there is any
      newsserver that messes up whitespace).
      
      The main patch is just the change from __get_free_page(GFP_BUFFER) into
      get_free_page(GFP_KERNEL), and the two minor patches just add checks
      that actually enforce the read-only nature of current file mmap'ings so
      that any program that tries to do a write mapping at least will be told
      that it won't work.
      
      I'd suggest anybody compiling pl12 should add at least the file_table.c
      patch: thanks to Alexandre Julliard for noticing this one.
      
                  Linus
      9dab425e
    • Linus Torvalds's avatar
      [PATCH] Linux-0.99.12 (August 14, 1993) · 9636d570
      Linus Torvalds authored
      CDU31A and MCD CD-ROM drivers.  Ahh, the bad old days of every sound
      card manufacturer having their own CD interface.
      
      Much nicer keymaps for keyboards.
      
      Many more network drivers by Donald Becker for the improving NET-2 code.
      
      Eric Youngdale makes executables and libraries use the new mmap()
      functionality.  The old special-cased sharing goes away.  Hurray! This
      also means that mmap gets a lot more testing.  It also means that NFS
      has to be fixed to allow mmaps. Done.
      
      "sys_modify_ldt()" appears, the extended DOS emulators want it.
      
      Still using C++ to compile the kernel.
      
      Original changelog:
      
       - 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)
      9636d570
    • Linus Torvalds's avatar
      [PATCH] Linux-0.99.11 (July 17, 1993) · d9f8e0ec
      Linus Torvalds authored
      Real file mmap with page sharing in the VM code.  We don't do writable
      shared mappings (and we won't do them for a _long_ time yet), but this
      is a big step forward!
      
      Note in the COPYING file that the GPL only covers the kernel, not user
      programs. People were starting to find Linux more and more interesting..
      
      Improved configure script.
      
      Use nicer "save_flags()/cli()/restore_flags()" macros instead of
      hardcoding the inline assembly.  Clean up other inline assembly usage
      too.
      
      Trying to compile the kernel with C++ compiler.  It will be a failed
      experiment.
      
      Original ChangeLog:
      
       - The keyboard is dynamically changeable (this is true of pl10 as
         well), and you need to get the "keytables.tar.z" archive to set the
         keyboard to suit your taske unless you want to live with the default
         US keymaps.
      
         Use the "loadkeys map/xxx.map" command to load the keyboard map: you
         can edit the maps to suit yourself if you can't find a suitable one.
         The syntax of the keyboard maps should be obvious after looking at
         the examples.
      
       - 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.
      d9f8e0ec
    • Linus Torvalds's avatar
      [PATCH] Linux-0.99.10 (June 7, 1993) · 9cb9f18b
      Linus Torvalds authored
      People finally gave up on net-1, Ross Biro grew tired of the flames, and
      net-2 appears with Fred van Kempen as maintainer.  This is the big
      switch-over version.
      
      fsync() isn't just a stub any more, and System V IPC is also showing up.
      
      The "struct file" filetable is made dynamic, instaed of a static
      allocation.  For the first time you can have _lots_ of files open.
      
      Stub for iBCS2 emulation code.
      
      [original announcement below]
      
      I've finally released an official version of linux-0.99 patchlevel 10:
      there have been various alpha versions floating around which differ in
      details (notably networking code), which shouldn't be used any more.
      The new linux version is available only as full source code: the diffs
      would have been too big to be useful.  You can find linux-0.99.10.tar.z
      (along with keytables.tar.z) on nic.funet.fi: pub/OS/Linux/PEOPLE/Linus
      and probably on tsx-11 and other linux archives within a day or two (so
      check there first if you are in the states).
      
      Linux-0.99 pl10 has a number of new features and changes in interface.
      The most notable of these are:
      
       - the networking code is reorganized (generally called "net-2",
         although unrelated to the BSD release).  The new code implements a
         lot of standard features lacking in net-1, and also changes the user
         interface to be closer to the BSD standards.  Notably, the old
         configuration binaries won't work, so to get the new networking to
         work you'll have to get the net-2 binaries as well.  The networking
         binaries are available on tsx-11.mit.edu (and mirrors) under the
         directory pub/linux/packages/net/net-2 (and the setup syntax has
         changed somewhat..)
      
         The networking code has been mainly organized and rewritten by Fred
         van Kempen, with drivers by Donald Becker.
      
       - serial line setup has been changed: linux 0.99 pl10 does *not* try to
         autodetect serial ports very agressively.  If you have other serial
         ports than the standard com1/com2, or nonstandard IRQ etc values,
         this means that it's less likely to work without any help.  The
         solution is not to recompile the kernel - you should get the
         "setserial" program available from tsx-11.mit.edu in the directory
         pub/linux/sources/sbin/setserial-2.01.tar.z that allows you to
         dynamically configure your serial ports to suit your setup.
      
         The main organizer behind the serial line changes is tytso (Theodore
         Ts'o).
      
       - Keyboard setup has changed: it is no longer hardcoded at compile
         time, but instead you can use the new "loadkeys" program to load in a
         new keyboard map on the fly.  The default keyboard map is the normal
         US keyboard (yes, I should have used the Finnish one by default, but
         after thinking of all the problems that would have resulted in I
         forgot about that idea).  The loadkeys code can be found in the
         "keytables.tar.z" archive, which also contains keymaps for most
         normal keyboard types.  To create a custom keyboard table is very
         easy - just take a 5 minute look at the existing map files (they
         resemble the ones used by xmodmap, so if you are familiar with
         those..)
      
         The loadable keymaps were mostly implemented by Risto Kankkunen.
      
      There are a lot of other internal kernel changes, but they should be
      mostly transparent, and noticeable only indirectly due to new features
      or (hopefully) better/faster/whatever operation.  These include:
      
       - the SysV IPC patches are in by default: Krishna Balasubramanian.
         If you need these, you know what it's about (notably, dosemu 0.49
         wants them).
       - inode handling is updated: inodes and files are now dynamically
         allocated within the kernel, and use a hash table for faster lookup
         (along with a NFU algorithm for the inode cache).  Steven Tweedie.
       - Updated FPU emulation: mostly exception handling changes, making the
         emulator handle most exceptions the same way a 486 does.  The
         emulator is written by Bill Metzenthen.
       - a few ext2-fs updates by Remy Card and Steven Tweedie.
       - support for the 'fsync()' function (Steven Tweedie)
       - various (minor) SCSI patches to catch some error conditions, add
         support for VLB adaptec controllers without DMA and so on (different
         people).
       - other changes - I forget.
      
      In addition to patches sent in by others, I've naturally made my own
      changes (often *to* the patches sent in by others :-).  Among other
      things, the pl10 buffer cache code now also tries to share pages with
      executables, resulting in better cacheing especially of binaries (giving
      noticeable improvements in kernel recompilation speed on some machines).
      Also, I've changed a lot of low-level things around to help the iBCS2
      project: this includes things like internal segment handling and the
      signal stack (which now looks the same as on SysV i386 unixes).  All in
      all, pl10 has a disturbing amount of new code, but will hopefully work
      well despite (due to?) the number of changes.
      
      The new networking code in particular will change the network setup a
      lot - it now looks more standard, but if you were used to the old way of
      doing things..  On the other hand, most people actively using the
      networking features have hopefully gotten warnings about this on the NET
      channel for the last few weeks.  Also, the networking code still isn't
      perfect: Fred is still working on it, but it seems to have reached a
      reasonably stable platform on which it will be easier to build.  Look
      out for the new-and-improved networking manual, hopefully out soon(?).
      
      Standard request: please try it all out, give it a real shakedown, and
      send comments/bug-reports to the appropriate place (I'm always
      appropriate, but you may want to send the report to the mailing lists
      and/or the newsgroup as well).  I apologize for the lateness of the
      release (forcing hlu to make interim gcc releases that relied on
      nonstandard kernels etc), and the changes are somewhat bigger than I'd
      prefer, so the more testerts that try it out, the faster we can try to
      fix any possible problems.  The new kernel has gone through various
      stages of ALPHA-diffs and some late ALPHA-pl10's, so there shouldn't be
      any major surprises, but alpha releases tend not to get even close to
      the coverage a real release gets...
      
                          Linus
      9cb9f18b
    • Linus Torvalds's avatar
      [PATCH] Linux-0.99.7 (March 13, 1993) · f65d0bc9
      Linus Torvalds authored
      Nigel Gamble makes lp driver able to use interrupts.
      
      The mmap() code is finally starting to really happen.  In particular,
      this means that "verify_area()" is doing more - it can check the actual
      areas that have been mapped, rather than just blindly assume that the
      user can access anything in the first 3GB.
      
      For now, the mmap code only does anonymous mappings and /dev/mem.
      Executables are still read into memory.  But the infrastructure is
      there.
      
      The VFS layer stops using names directly in user space - the race
      conditions were just too hard to handle.  So pathnames are copied into
      kernel space before they are looked up.
      
      Ext2fs (Remy Card) and xiafs (Frank Xia) are merged.  Both are much
      faster filesystems using bitmaps rather than freelists, and can handle
      big disks and big files.
      
      Ext2fs is based on extfs, while xiafs is a simpler straightforward
      extension of the old minixfs.
      
      Xiafs obviously was eventually dropped.
      
      [Original announcement below]
      
      It has been two weeks since the last release, so it's high time you
      should once more enjoy the pleasures of patching up your kernel to a
      higher version number if you are into those kinds of perversions.  Linux
      0.99pl7 is available as both full source and diffs against pl6 on
      nic.funet.fi: pub/OS/Linux/PEOPLE/Linus, and it will probably show up on
      the other major sites within days.
      
      As of pl7, I'm trying out a new format: both the full distribution and
      the diffs are now compressed with gzip as it is now available at most
      machines.  Also, the diffs are no longer context diffs: they use the
      smaller unified diff format.  At least the stock SunOS 'patch' binary
      seems not to understand them at all, but GNU patch has no problems, and
      unified diffs are a bit smaller (not that it matters much after gzip has
      done its deed on them).
      
      As to the changes in pl7: they are many and varied, and hopefully all to
      the better (-"Dream on Linus" -"Shut up").  Short list follows, hope I
      haven't forgotten anything major.
      
       - ext2fs is in: note that this is version 0.2c and that if you are
         currently using an older version there are some changes.  Small
         filesystems (< 256MB) should reportedly be automatically converted,
         bigger filesystems need some assistance. Ext2fs written by Remy Card.
       - xiafs is also in: again, the final version uses a slightly different
         layout to support exact file block counts, so if you use the xiafs,
         you should make sure you have the latest fs-tools.  Xiafs written by
         Frank Xia.
       - updated Ultrastor SCSI driver with scatter/gather by Scott Taylor.
         It should be much faster, as well as support the Ultrastor-34F.
       - major changes in the memory manager.  Yours truly got carried away,
         and finally cleaned up the mm layer due to pmacdona wanting mmap() on
         /dev/zero.  This means that the IPC patches won't go in, and need
         updating.  Krishna?
       - more big changes: I rewrote most of the VFS filename-handling.
         Filenames are copied into kernel space before being used, which
         cleaned things up somewhat, as well as simplifying some race-
         condition handling.  As a result, I was also able to easily expand
         the minix fs to cover the "linux" fs that some people have been using
         (same layout, but with 30-character names).
       - updated the printer driver: Nigel Gamble.  It is now able to use
         interrupts, although the default behaviour is still to poll.
       - serial driver updates by tytso (but no SLIP yet)
       - various minor patches for POSIX compliace: Bruce Evans, Rick Sladkey
         and me.
       - other minor patches all over the place: scsi, tcpip etc.
      
      All in all, the patches are almost half a megabyte even as unified
      diffs: getting the full sources might be easier than patching it all up.
      
      As always, some of the patches are actually tested by me, some aren't
      (and just because I wrote some of them doesn't mean I actually *tested*
      them: I have no idea if mmap() works on /dev/zero, although it should).
      I have neither a printer nor an Ultrastor controller, and I haven't got
      the diskspace to test out the new filesystems, so I can only hope they
      work "as advertized".  If you have problems, I want to hear about them,
      so keep the reports coming, and try to pinpoint the problem as well as
      you can ("when I do *this* it happens every time..").
      
                      Linus
      f65d0bc9
    • Linus Torvalds's avatar
      [PATCH] Linux-0.98.2 (October 18, 1992) · c96bf123
      Linus Torvalds authored
      Start virtualizing real mmap() functionlity in the kernel.  The first
      signs of me thinking about this already showed up as some unused header
      files earlier, this fleshes things out some more.  No actual filesystem
      code yet..
      
      This also removes my old simple math emulator, and introduces the new
      and much improved one from Bill Metzenthen.
      
      Bill originally wrote it for the djgpp suite (DJ Delories gcc port to
      DOS extenders).  It was much more accurate and well designed than my
      hackish one, and I was happy to throw my old code away.  The new math
      emulator also did things that I had never bothered with, notably the
      more complex i387 functions (exponentials and trig).
      
      I also fixed the static maximum memory limit: we now generate the kernel
      page tables dynamically rather than having a 16M or 32M static limit.
      
      SCSI updates: removable media support (which also implies re-reading the
      partition table etc)
      
      [Original announcement below]
      
      patch-2 is >150kB compressed, as it contains several big changes. Most
      notable are:
      
       - the new FPU-emulator by Bill Metzenthen.  It's bigger than the old
         one, but thanks to it, linux fpu emulation is no longer a quick hack,
         but a real emulator: it does all the 387(486) math instructions, and
         does them much faster than the old emulator + the soft library.
      
         The new math-emulator means that a separate soft-float library is no
         longer needed.  It also makes even a non-coprocessor system pretty
         useful for limited math-calcs - the complex functions are much faster
         when they no longer have to be calculated using simple functions, and
         even the simpler instructions that my old emulator handled are faster
         using the new one.
      
         The size of the new emulator may mean that people who have little
         RAM, but do have a coprocessor should probably recompile the kernel
         with the emulator disabled.
      
       - various minor mm fixes by me: trapping kernel NULL dereferences,
         cleaning up the page table initializations and the 16MB patches, and
         various other bugfixes.  get_free_page(GFP_ATOMIC) should preserve
         the interrupt flag, so malloc() should be safe now - hopefully no
         more of the tcp/ip memory management problems.
      
         The NULL pointer trapping may result in errors like:
              Unable to handle kernel paging request at address C0000???
              Oops: 0000
              ..... debugging info .....
      
         There were several NULL pointer dereferences in the serial and tty
         drivers, which should now be fixed.  I've also fixed any other errors
         I've seen, but if there are problems in the scsi drivers or similar
         things I cannot test, I'd like to hear about them.
      
       - scsi driver changes by Eric Youngdale.  Preliminary support for
         removable media, and some bug-fixes.  Due to white-space problems
         with eric's patches, the scsi patches are a bit bigger than
         necessary, but they should be ok even though I had to put them in
         partly by hand (and being unable to test them...)
      
       - The new tcp/ip patches that were sent to the NET channel not long
         ago.  Yes, they are alpha, but so is the whole tcp/ip directory, so I
         put them in even thought they haven't been extensively tested (and
         they did have a serious problem in the ioctl code, which I fixed).
      
       - psaux mouse patches by Dean Troyer, as well as the mouse.wait = NULL
         patch.
      
      Before (or after) patching, you should remove the old math-emulator (ie
      "rm -rf /usr/src/linux/kernel/math") as it is no longer needed.  You
      should also do a "make dep" to update dependencies: as usual, I edited
      out the dependancy-changes.  Do a "make clean", edit the main (and net)
      Makefiles to suit your system, and compile.
      
      And finally: I will no longer be making the bootdisks available -
      they'll be made by hlu/jwinstead and will probably be boot+root-disks
      using lilo, as done on the hlu disks.  That may mean that a bootimage
      won't be available at once, but most people who want to use the
      absolutely newest images probably compile them themselves anyway, so
      that shouldn't be a problem.
      
                      Linus
      c96bf123
    • Linus Torvalds's avatar
      [PATCH] Linux-0.97.5 (September 12, 1992) · 06d9f6ff
      Linus Torvalds authored
      SCSI CD-ROM support by David Giller (based on sd.c by Drew)
      
      Microsoft Busmouse support by Teemu Rantanen
      
      Do the same buffer cleanups to extfs that we just did to Minixfs.
      
      Efficient VGA emulation in dosemu wanted to know when we write
      to the pseudo-VGA memory area. Add vm86 mode hooks for that.
      
      [Original announcement below]
      
      Patch 5 fixes the extended filesystem problems (thanks to Remy Card), as
      well as including many smaller fixes (some more fs cleanups, the CDROM
      patches and several other minor changes).  Pl5 finally removes even the
      last few header-files that were incompatible with the normal headers, so
      the "-nostdinc -I$(KERNELHDRS)" stuff is gone.
      
      Patch 5 should also fix the problems with iopl() that resulted in the
      X8514-server having problems with 0.97.pl2 and above.
      
      In case people are wondering, my schedule for 1.0 looks something like
      this:
      
       - 0.98 out in about a week: this is essentially 0.97.5 + the tcp/ip
         directory, as well as any fixes that may come up.  I'll try to get
         the loadable driver interface into it too.
      
       - 0.99 out after 0.98 has been shaken down: a month or so.
      
       - 1.0 will be the same as 0.99: the only changes will be eventual
         trivial bug-fixes in case 0.99 has some problems.  This is just to
         try to get over the "X.0" bug syndrome.
      
      There are a few on-going projects: depending on circumstances these will
      be implemented sooner or later, so I won't give any promises.  These
      include: loadable drivers/fs's (alpha-patches already availabla), full
      support for different block-sizes (some work still required), and a
      extensive rewrite of the mm routines (I'll want to make a vmm interface
      similar to the vfs interface for the filesystem routines).
      
                      Linus
      06d9f6ff
    • Linus Torvalds's avatar
      [PATCH] Linux-0.97.3 (September 5, 1992) · fdb2f0a5
      Linus Torvalds authored
      Hey, we switched to the GPL several months ago, but only now do we
      include the license text itself.  Apparently everybody expected
      everybody else to just know what the GPL was..
      
      Add a README on compiling the kernel (by Lasu)
      
      Add PS/2 mouse driver, make generic "mouse" infrastructure.
      
      Add /proc filesystem, clean up minixfs block mapping.
      
      sys_wait4() and swapoff().
      
      VM gets a "secondary page free" list for things like interrupts
      that want a page _now_ and can't wait for the regular free list
      to fill up.
      
      [Original announcement below]
      
      Patch3 is almost 100kB even compressed, as there were quite big changes
      in the mm and minix fs.  No major new features: there are two new system
      calls: swapoff(const char * swapfile) and wait4(), and linux accepts
      several swap-files, but the rest of the thing is mostly bug-fixes or
      simply rewrites.
      
      Major changes:
       - new swap-page handling: linux no longer uses just one bit to keep
         track of used swap-space, but a counter for each swap-page.  This
         allows processes to share swap-pages after a fork(), and should
         result in /major/ performance increases on machines with less memory.
         I've seen better performance even with 8MB - I wouldn't be surprised
         if 4MB machines would re-compile the kernel noticeably faster under
         pl3.  I'd be interested to hear numbers.
       - The low 1MB memory that isn't used directly by the kernel is now
         swappable memory, instead of being hardcoded for buffer cache.  The
         patches for this were originally by tytso, and I expanded on it a bit
         more.  This might also help better performance on 2-4MB machines.
         Note that this does /not/ mean that you can use 1M machines for
         linux: linux still needs some extended memory.
       - the dosfs has been upgraded to dosfs.8 - patches by almesber.
       - I edited the minix fs pretty heavily to remove a couple of race-
         conditions.  The same races still exist in the extended fs, as I
         didn't have time to edit that yet.  The minix-fs took precedence as I
         know that better, and extfs isn't "official" yet anyway.
      
      other changes:
      
       - the mouse-driver now handles both Logitech (minor = 0) and PS/2
         (minor = 1) busmice.
       - there is a proc-fs for access to user memory/files etc.
       - better support for the tcp/ip patches (but see below...)
       - corrected symlink and /dev/[k]mem behaviour
       - Lars Wirzenius' README (with minimal comments by me) and the GNU
         COPYING notice are now part of the normal kernel setup, and can be
         found in the tar-archive.
       - the floppy ioctl() to get the FD parameters no longer requires root
         priviledges.  Thus, the msdos emulator runs even for a normal user.
      
      Some comments on patchlevel 3:
      
              mm:
      
      The swap-page handling resulted in a reduction of swap-file (or
      partition) size to a maximum of 16MB per file.  It's nothing inherent to
      the code, but it eased some algorithms, so I didn't bother coding around
      it.  After all, 16MB is enough for most people, and if you want more,
      you can have up to 128 swapfiles of 16MB each.  If I get enough
      hate-mail about it, I might just try to find the energy to correct it.
      Maybe.
      
      Bigger swapfiles will still work, but linux will take advantage of only
      the low 16MB.  Also, there is no nifty logic to try to optimize the
      usage of the swap-files: pages are simply allocated from one swap-file
      until it fills up, and then the next swap-file is used.
      
      The memory management changes break ps/free once more, but not very
      much.  Also, I changed the load-average counting, so 'w' also needs
      slight editing.  On the other hand, I made '/dev/kmem' mmap()able, and
      'ps' and 'free' should be edited to take advantage of that: it should
      result in much faster operation, as well as possibly using less real
      memory.
      
              fs:
      
      The fs changes should remove at least two races - the races don't happen
      very often, but they were theoretically possible, and might be the
      reason for some fs corruption problems that have been reported.  The
      changes are related to the use of bmap() - the bmap interface doesn't
      really lend itself to some things that it was used for.  Re-writing
      internal fs-functions not to use bmap not only should have removed any
      races, but also actually resulted in cleaner code.
      
      The proc-fs code isn't too beautiful, and I'll probably leave it out
      from 0.98 unless I can make it loadable.  We'll see.  If anybody wants
      to use it, you can do something like
      
        # mount -t proc /dev/ram /proc
      
      Instead of /dev/ram you can use any block device - it's not used, and is
      only a dummy as the proc-fs doesn't actually use any external device.
      (but note that the device is still marked as mounted, so you cannot
      mount it for anything else).
      
              kernel/mm/lib:
      
      The TCP/IP patches are also essentially in 0.97.pl3 - not the full
      TCP/IP directory, only the patches to the main kernel.  NOTE!! I don't
      like the 'grab_malloc_pages()' function, so I left that out, and added a
      GFP_ATOMIC priority to get_free_page() that should be used instead.  I
      hope this will be used (Ross?), as it's a lot cleaner.
      
      Also, I hope the tcp/ip people will clean up malloc() so that it doesn't
      panic instead of returning NULL etc.  Ugly, ugly.  This is related to
      the get_free_page(GFP_ATOMIC) changes, and I'd like to have patches as
      soon as possible - tcp/ip won't be part of the standard kernel until
      that can be cleaned up.
      
                      Linus
      fdb2f0a5
    • Linus Torvalds's avatar
      [PATCH] Linux-0.97 (August 1, 1992) · ddc733f4
      Linus Torvalds authored
      Move <xxx.h> to <linux/xxxx.h>
      
      Variable-sized buffer blocks and dynamic buffer cache allocation. The VM
      knows how to shrink it automatically!
      
      Add support for "fast" interrupt handlers for serial lines.
      
      Update copyrights to say 1992 too.
      
      Remove broken VESA video card handling.
      
      Separate out partition handling code ("genhd").
      
      Make init unkillable.
      
      Norwegian keyboard map.
      
      Future Domain SCSI controller driver by Rik Faith.
      
      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
      ddc733f4
    • Linus Torvalds's avatar
      [PATCH] Linux-0.96-pre (April 21, 1992) · d1e6fdb2
      Linus Torvalds authored
      More VFS layer work: remove more special cases, and take advantage of
      the virtual VFS functions (close and select).  Add fchown/fchgrp and
      [f]truncate.
      
      Orest Zborowski shows up, and works on porting X11 to X.  This needs a
      lot of infrastructure support: ioperm() for user-mode IO port access,
      and SVR style virtual terminal ioctl's to make porting easier.  Perhaps
      more importantly, the mmap() system call shows up, even if it right now
      is limited only to a direct /dev/mem remapping.
      
      [Original changelog below]
      
      - truncate/ftruncate/fchmod/fchown system calls
      
              note that there aren't any library functions for these, so they
              aren't very useful yet...
      
              [f]truncate needed a change in the logic of the internal
              truncate VFS call - anybody that has any nonstandard filesystem
              probably needs to look it up.
      
      - io-bitmap syscalls giving root-processes access to selected io ports
        from user space.  There is a "ioperm()" system call that lets the
        process select which ports it wants to enable/disable (all ports
        disabled as default) as well as a (standard sysv?) ioctl interface
        that X uses.
      
              again, no library stubs, but it allows things like reading and
              setting the cmos clock without using /dev/port, as well as
              control over the VGA registers...
      
      - mmap for /dev/mem
      
              more things needed for X...
      
      - the signal-handling fixes needed for gdb
      
              These aren't yet complete: serial lines still send signals under
              interrupts that can result in problems (ie ptrace doesn't
              correctly get them), but that's pretty unlikely (and will be
              fixed in the final 0.96).  Breakpoints should work etc..
      
      - multiple shared libraries
      
              Up to 6 simultaneous shared libraries/process: the patches were
              originally by pmacdona, but they were heavily changed by me, and
              I think they work in a more natural manner now.  One user-level
              change is that the libraries are now checked for read and
              execute permissions for safety-reasons.
      
      - cleaned up special files.
      
              read/write/ioctl no longer has special-case code: it is all
              handled with tables to functions.  This will mean that the SCSI
              patches won't patch in quite cleanly into 0.96: you'll need to
              add the code that sets up the functions.
      
              Again: device drivers and vfs-filesystem hackers need to look
              into the changes, although they are pretty logical (earlier
              versions just didn't implement all the vfs-routines)
      
              Note that the vfs-code for select is still not used: select is
              hardcoded for the devices it supports right now.
      
      - ptrace() has a new interface
      
              as gdb for versions < 0.95c don't work on the new version, and
              gdb won't work very well at all on 0.95c[+], there was no reason
              not to break ptrace.  Thus 0.96 has a new calling convention for
              ptrace, and the old ptrace library function no longer works.
              I'm including the new ptrace library function at the end of this
              post.
      
      - mount() takes 4 arguments, and checks that only the super-user can
        mount/umount things.
      
              Happily this shouldn't break any old binaries.
      
      - some general cleanups
      d1e6fdb2
    • Linus Torvalds's avatar
      [PATCH] Linux-0.96c (July 4, 1992) · 38da6b16
      Linus Torvalds authored
      Ext filesystem support! The VFS layer switchover was successful.
      Ext support is a more FFS-like filesystem, although still quite heavily
      influenced by my original Minix filesystem.  But it allows much bigger
      filesystems (minixfs was limited to 64MB) and many more files (minixfs
      had a 16-bit inode number).
      
      Named pipes by Paul Hargrove (using the regular pipe code for actual IO).
      
      [original announcement below]
      
      0.96c is actually what I called patch3 earlier this week, but as the new
      features were pretty big and the cdiff's are probably going to be bigger
      than the normal patches, I decided I might as well make it a totally new
      minor release and make a bootimage and complete source available.
      
      0.96c contains:
       - bugfixes (tty, console driver, pty's, sockets)
       - fifo's (names pipes - Paul Hargrove & editing by me)
       - the alpha extended filesystem (Remy Card)
       - st_blocks implemented (ie du, ls give reasonable if not exact values
         for disk-space used)
       - Makefile cleanups and warnings at compile-time removed
      
      Note that while the extended filesystem code is there, and this kernel
      successfully mounts and uses the new filesystem (with long filenames and
      >64MB partitions), it's still under testing: I haven't made the mkefs
      program available, and the extended filesystem features shouldn't be
      used for other than testing right now.
      
      Some of the changes are just cleanups: most of the warnings when
      compiling the new kernel should be gone (not counting the scsi code
      which is still the old non-cleaned-up version), and the make'ing of the
      kernel is more logical now.
      
      The bugfixes include the corrected console.c driver, the socket
      corrections (without which X sometimes locks up), some pty semantics
      corrections (although I'm still not certain it's correct) and some
      editing in the general tty driver (including fixing the bug introduced
      in 0.96b.pl2 that caused a reboot with uninitialized tty devices).
      
      While the extended filesystem support isn't "official" yet, I can
      happily report that my limited testing hasn't found any problems with
      long filenames etc.  It still needs a fsck program, but 1.0 looks like a
      real possibility soon.
      
                      Linus
      38da6b16
    • Linus Torvalds's avatar
      32-bit inodes: patch4 · a5dcf393
      Linus Torvalds authored
      Ok, patch4 implements 32-bit inode numbers (and thus the new
      stat/lstat/fstat system calls), as well as correcting the bad
      rs-performance on some machines that showed up in patch3. It's
      currently only on banjo, but I'll copy it around eventually.
      
      Again, you don't miss much if you don't use this patch: it's mainly for
      (a) the serial problems and (b) for hlu etc that want to test out the
      32-bit interface. It does some other magical tricks as well (uses less
      memory in the low 1M region by moving the screen and tty buffer to high
      memory), if anybody is interested.
      
                  Linus
      a5dcf393
    • Linus Torvalds's avatar
      [PATCH] Linux-0.96a (May 22, 1992 ??) · c27acf0e
      Linus Torvalds authored
      More VFS cleanups.  Minixfs code reorganized to be more logical, and
      split up into a few new files.
      
      SCSI support!!
      
       - Drew Eckhardt does the SCSI stuff, and does the ST01/ST02 lowlevel
         driver.
      
       - Ultrastor driver by David Gentzel.
      
       - Tommy Thorn shows up again.  He did the Danish keyboard tables, now
         he does the AHA 1542 driver.  Ten years later we ended up being
         co-workers at Transmeta ;)
      
      First networking code appears: X11 port needs UNIX domain sockets, and
      thus the "socketcall()" system call.  It's not really meant for real
      networking, although the code will eventually evolve to support that.
      Which explains some of the bad early decisions..  ;)
      
      Werner Almerberger starts taking over floppy driver maintenance.  Thank
      Gods!
      
      Johan Myreen translates my assembly-level keyboard driver into C code,
      and adds support for diacriticals.
      
      OMAGIC a.out format support
      
      Syslog support for the kernel appears.  If I remember correctly, this
      was Peter MacDonald, but no mention of that in the sources.
      c27acf0e