summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorMichael I. Bushnell <mib@gnu.org>1996-07-18 04:35:29 +0000
committerMichael I. Bushnell <mib@gnu.org>1996-07-18 04:35:29 +0000
commit94cef36797600d11a50d09828fa80df8a73dfd1c (patch)
treeb7cba9afef95489eedef534d3e6946eb13f595ba /NEWS
parent88dbbbf9e48e24f1ac007c1e4eeffd9caf8e2fad (diff)
*** empty log message ***
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS575
1 files changed, 575 insertions, 0 deletions
diff --git a/NEWS b/NEWS
new file mode 100644
index 00000000..fe2f2649
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,575 @@
+-*- Text -*-
+
+April 15, 1995
+
+It's hard to summarize, so much has happened.
+
+We have NFS, a network, and jillions of stuff. Basically things just
+work. Except for a jillion little nits, this is very nearly an alpha
+release. Not quite, but nearly.
+
+
+
+
+The `boot' program now accepts an option ``-D DIR'' which specifies a
+directory prefix for the file names given in the boot script (hurd.boot).
+So the way to boot is now:
+ $ boot.a -D .../hurd-image hurd.boot sd0a
+
+
+October 5, 1995
+
+The Hurd distribution now uses a `configure' script in the standard GNU
+style. As with other GNU packages, you can configure in the source
+directory or in a separate build directory (though not both with the same
+source directory); all you should need to do is `configure i386-gnu'. The
+Hurd does not compile in any file names using $(prefix), so you can specify
+the prefix where you will install things with the `--prefix' option; e.g.,
+`configure --prefix=/gd4/hurdinst i386-gnu'. You should no longer need to
+edit any makefiles. You can choose the tool names by setting variables in
+the environment when running configure (CC, LD, AR, RANLIB, OBJCOPY, MIG);
+the default is to search your $PATH for HOST-TOOL (e.g. i386-gnu-gcc), and
+failing that just TOOL (e.g. gcc), so you will win automagically if you
+simply use the same host alias in the `configure' command line as you used
+for the target alias to configure gcc and binutils (i.e. i386-gnu).
+
+The file_truncate RPC (in fs.defs) has been renamed file_set_size and
+now is expected to extend files as well as truncate them, in the
+manner of recent BSD releases' ftruncate. file_pathconf has been
+moved from fs.defs to io.defs and renamed io_pathconf. The `core'
+interface has been renamed `crash'.
+
+We are now using a new terminal driver that is multi-threaded. It is
+also much more simple internally than the older version, but otherwise
+supports no new features.
+
+Everything is now dynamically linked except the bootstrap filesystem. Any
+old statically linked binaries should be replaced. WARNING: In the next
+snapshot changes in the exec server may prevent older statically linked
+binaries from running.
+
+The exec server by default now only supports ELF; if you have older
+a.out binaries you want to run, you need to reenable BFD support in
+the exec Makefile. (Old a.out binaries should be replaced anyhow,
+with dynamically linked ELF binaries, for the reasons in described in
+the warning above.)
+
+The bootstrap hack in the directory boot now understands boot scripts;
+this kind of boot script will also be used by an upcoming release of
+Mach4. Also, because the exec server is now dynamically linked, it is
+necessary to install the exec server itself on the Hurd partition (in
+/hurd/exec); that was not necessary before, so it is possible that old
+working Hurd partitions might not have it.
+
+Some problems and trivial bugs in fsck are fixed.
+
+A few bugs in libdiskfs, libpipe, pflocal, and trans were fixed of no
+particular consequence.
+
+Shutdown of filesystems now works reliably and safely.
+
+Libports now provides stubs to do the normal thing for the interrupt and
+notify interfaces. Because of the interruption semantic, cthreads
+multiplexing of multiple cthreads onto fewer kernel threads can no longer
+be used; this means that ports_manage_port_operations_multithread no longer
+pays attention to the WIRE_CTHREADS flag.
+
+Cthreads now supports an implication semantic for conditions; this
+enables a condition variable to be created which is the disjunction of
+other condition variables.
+
+Trivfs now supports errors and blocking on open much better.
+
+A rare but serious bug in the pager has been fixed; along with this,
+another minor deficiency in the kernel has become apparent.
+
+The Makefiles are more generic and deal with shared libraries better.
+
+A serious bug has been fixed in ext2fs.
+
+
+
+July 23, 1995
+
+Shared libraries now work; use -static to link programs and avoid the
+shared libraries. The Hurd programs are normally built static; this
+will probably change soon.
+
+The ext2fs server now works, as do the tools to manipulate ext2fs
+filesystems. A snapshot of the tools will be made soon under separate
+cover. Many thanks to Ted Ts'o for his valuable work on the tools.
+
+Readers of the Makefiles will notice that we now generate dependencies
+automatically.
+
+The old netserv library is gone.
+
+The `boot' hack has been modified slightly to avoid the normalq libc startup
+files, because they no longer work with UX.
+
+Some small bugs have been fixed in the devio server.
+
+The ports library has been totally rewritten; new features permit
+servers to have greater control over thread RPC's and port creation.
+
+The fshelp library now does most of the work for translator
+interaction; it's simpler now too. Filesystems have much less work to
+do; the relevant code in libdiskfs is now understanble instead of
+unparseable chaos.
+
+The ports library provides for timeouts; the diskfs library almost
+uses it, but because of a bug, it's disabled for now.
+
+Filesystems are now expected to sync themselves if necessary; the new
+fsys_set_options RPC provides for changeing (or cancelling) the sync
+intervale. The diskfs library does this for you. The update program
+is no longer necessary.
+
+A small bug in the proc server has been hacked around; the real fix
+will come later.
+
+Many important bugs in the C library have been fixed since the last
+snapshot; perhaps all of them. ;-)
+
+
+
+June 6, 1995
+
+The Hurd has switched to using the ELF object file format instead of a.out.
+You will need a very recent snapshot of GCC and binutils (we are using the
+950606 versions); the `i386-gnu' configuration now uses ELF, we are dumping
+a.out entirely.
+
+The exec server now understands the ELF format directly (not through BFD),
+because BFD has some deficiencies in its treatment of ELF. The direct
+support for a.out has been ripped out completely. The exec server can
+still support BFD as an optional addition, if compiled with -DBFD; this is
+now the only way to run a.out executables. But if you only want to run new
+ELF binaries, then you can omit -DBFD and needn't bother building the BFD
+library to build the Hurd. The support for gzip'd executables is now
+conditional on -DGZIP; it adds a pretty small amount of code. Our
+makefiles use both -DGZIP and -DBFD by default; edit exec/Makefile if you
+wnat to omit BFD or gzip support. (Probably soon we will omit -DBFD by
+default because it will make the exec server much smaller, but we just
+switched and still have run a.out binaries lying around we'd like to
+continue being able to run.)
+
+Because everything is now in ELF, the procedure to create an executable of
+the `boot' program that can run on UX is rather hairy. Do `make boot.a' in
+the boot directory and run `boot/boot.a', which is an a.out executable.
+`boot/boot' is a weirdo ELF executable that UX cannot understand.
+
+The startup sequence has changed; the exec server image is no longer
+embedded in the filesystem image. The `boot' program loads both the
+filesystem and the exec server into separate tasks and runs the filesystem,
+passing it the task port of the exec server, which it starts running when
+it's ready for it. This closey approximates the eventual plan for booting
+the system, wherein the boot loader will load the multiple program files as
+well as the kernel, and the kernel will set up the two tasks. However,
+changes are needed in the Mach bootstrap process to read ELF binaries and
+to start multiple servers, so for the moment native booting is broken.
+
+April 12, 1995
+
+Many bugfixes and changes. Now includes a fancy ps, settrans, and
+showtrans; separate translators for all the programs in /dev (and a
+MAKEDEV script). Also the provisional source for network servers and
+some other snippets of code are now being distributed. The trivfs
+library is now multithreaded.
+
+The old dev.trim is still being distributed, but you shouldn't use it.
+
+A serious bug that broke the filesystem's state after enough exec
+failures (of the bad format sort) happen. A deadlock or two was also
+found and fixed.
+
+December 13, 1994
+
+The exec server now recognizes gzip'd binaries and uncompresses them into
+memory to execute them. (This has allowed a useful number of binaries to
+fit on a 1.44MB floppy.)
+
+November 24, 1994:
+
+Program changes:
+
+term could hang in delivery of terminal signals; fixed.
+
+pipes now handles io_select.
+
+These fixes allow GNU Emacs to work under the Hurd, with subprocesses.
+
+November 11, 1994:
+
+Structural changes:
+
+Our sources are now under RCS. That shouldn't affect you at all,
+except that the file in the distribution will now be mostly mode 0444
+by default.
+
+
+Interface changes:
+
+`dealloc' flags have been added to many MiG interfaces broadly to fix
+a class of bugs.
+
+
+Library changes:
+
+Synchronous locks were hanging in some cases; to avoid it for now,
+they are never done at all. (Of course, this is really a bug that
+needs fixed; the current change is purely for the sake of running the
+system.)
+
+Some bugs in translator startup in libfshelp have been fixed.
+
+Bootstrapping in libdiskfs is cleared up. A bug in io_read that cause
+a crash if you gave an offset past the file size has been fixed.
+Non-root filesystems can now contact the execserver.
+
+
+Program changes:
+
+The `boot' hack can now start the first task in one of three ways: the
+way it was before, which is pretty Hurd-ish; just like the kernel
+starts the first task; and just like CMU's `boostrap' user program
+starts the CMU multiserver. Also, `boot' always passes a -f flag so
+that other programs can no we aren't really running native.
+
+The execserver now registers itself properly on /servers/exec and can
+thus be used by non-bootstrap filesystems.
+
+Init uses symbolic names for /bin/sh and /dev/console rather than
+hardcoded strings. The STANDALONE macro is gone; the behavior is the
+same but depends on the presence or absence of -f in the boot flags.
+
+Some minor bugs in proc have been fixed.
+
+The terminal driver now sends SIGWINCH properly. Changing to and from
+ICANON now moves the terminal input queues around properly.
+
+The filesystem now uses one pager to map the disk and little pagers to
+map files. Some hair is new to keep data from showing up in both
+pagers; generally the code is much simpler and cleaner now. (Faster,
+too.) The DT_* type information is currently unused due to an
+implementation difficulty. Some workarounds have been installed to
+avoid some kernel bugs.
+
+Large writes to the pipes server used to crash it; they don't any
+longer.
+
+The /dev server now has hardcoded into it more disks and it's easier
+to add more yourself. Also work around a kernel bug.
+
+New utilities: clri, sync, halt, reboot. The output of ps has been
+cleaned up a little.
+
+Fsck has been rewritten; there are still bugs in creating directories.
+(That code is only used if /lost+found is absent, so it's still
+useful.) The old version is renamed to bsdfsck.
+
+
+
+
+September 8, 1994:
+
+Structural changes:
+
+No significant structural changes have been made.
+
+
+Interface changes:
+
+term.defs has a new RPC `termctty_open_terminal', necessary for
+implementing /dev/tty.
+
+The filesystem lookup retry mechanism has been altered slightly.
+FS_RETRY_NONE is gone. If the retry pathname is empty, then no retry
+is necessary, and the returned port should be used, after
+reauthenticating it if FS_RETRY_REAUTH was set. Uniformly Hurd
+servers attach no special meaning to leading / in filenames, the
+result is that leading / (to Hurd servers) is a NOP.
+
+The authentication protocol now passes a second port for rendezvous
+rather than an int; this cleans up a slight security hole. The I/O
+and proc protocols have been changed accordingly.
+
+The args to file_set_translator have been cleaned up.
+
+All routines that used to say `path' no longer do; in GNU we always
+call these filenames.
+
+
+Library changes:
+
+libdiskfs and libfshelp now do passive translator startup properly.
+
+Setuid execution is now done by libdiskfs.
+
+A little work has been done in libpager towards implementing a default
+pager, bit it's not complete yet.
+
+
+Program changes:
+
+A braino in the auth server was fixed, and it uses the new auth
+protocol.
+
+The boot program no longer spins; it uses multiple threads. It also
+takes nice command line args. ufs and init only pause for debugger
+attach if you give boot the -d flag. Init now expects passive
+translators to be set for /dev and it looks prettier.
+
+The kludgy dev server now also works for (1) disk.
+
+Some exec server bugs in EXEC_NEWTASK were fixed.
+
+There is now a port of fsck, and two new programs: settrans and
+opendisk.
+
+The proc server now has a better prime number generator, and some
+small bugs have been fixed.
+
+The terminal driver now does job control and other signals correctly.
+
+Some minor improvements have been made in ufs.
+
+
+
+
+August 8, 1994:
+
+Structural changes:
+
+Makefiles have been vastly improved and are simpler. The programs
+`su', `ps', and `sh' have been moved from separate dirs into `utils';
+the programs `symlink' and `ifsock' have been moved into `trans'.
+
+Several changes were made to GCC use. You should definitely get GCC
+version 2.6.0 now. Version 2.6.1 will have distributed the proper
+`specs' file for the i386-gnu target, but it isn't quite ready yet, so
+you still have to copy hurd/gcc-specs into
+gcc-lib/i386-gnu/2.6.0/specs.
+
+
+Interface changes:
+
+The tioctl.defs suite is complete now.
+
+INTR RPC's have been changed; individual RPC's are no longer marked
+INTR. Rather, entire interfaces are marked `INTR_INTERFACE' if they
+conform to the library's signalling/interruption expectations.
+
+There is a new magical retry type (for dir_pathtrans and fsys_getroot)
+called `machtype' and a new one `/'; the former is for @sys tweaks and
+the latter cleans up the retry of root-based symlinks a bit.
+
+There is a new interface `login.defs'.
+
+The "dotdot node" is no longer passed at fsys_startup time; instead,
+it is passed by fsys_getroot.
+
+
+Library changes:
+
+The ports library now does death-timeouts for multi-threaded servers;
+it doesn't actually work right yet, however. Also the ports library
+has new features (soft vs. hard ports; no outstanding ports
+notifications) that enable server-death to be done cleanly. (I hope;
+libdiskfs and ufs haven't yet been changed to use it, so libports
+might not actually have the right facilities yet.)
+
+The translator startup routines in libfshelp have been vastly improved
+(so that they can actually be used).
+
+Numerous bugfixes in libdiskfs, particularly relating to translator
+usage. Use new magical retry type `/' when appropriate. Use new
+dotdot node protocol. O_FSYNC and O_NOATIME are now honored properly.
+Alternative methods of storing symlinks are now supported through new
+hooks.
+
+The new dotdot protocol is now used by libtrivfs. Also, users of the
+library are now able to set the atime and mtime when necessary.
+
+The special threads version of malloc has been placed back in
+libthreads now that the C library uses a Mach-safe version on its own.
+
+
+Program changes:
+
+The `boot' program no longer implements the tioctl interface now that
+the terminal driver works.
+
+A bug was fixed in the handling of pgrps in `proc'.
+
+Many bugfixes in term. The tioctl interface is now implemented. EOF
+processing is fixed; break characters now work right. Signals and
+interruption are now done correctly. VDISCARD works.
+
+Ufs has Some bigs fixed in dir.c. Filesystem upgraded to BSD 4.4.
+There are now some compatibility flags.
+
+New program dev.trim does a very minimal /dev (but doesn't work yet).
+New program dev is an initial (but poor) attempt at a real /dev.
+
+
+
+
+
+July 5, 1994:
+
+The Hurd now runs all the programs in the GNU fileutils, textutils,
+and shellutils distributions, with the exception of who. Most
+importantly it runs GNU Hello. Also, emacs works (with the kludgy
+`boot' terminal driver) and bash works.
+
+The simple pipes server works; it will be replaced eventually by the
+pflocal server (which isn't done yet). The terminal driver is limping
+but working. It doesn't support terminal ioctls yet. A minor bug in
+auth has been fixed. boot interprets more Hurd protocols; this was
+done to get emacs functioning. Some more-or-less serious bugs in exec
+were fixed; they were found by running emacs (a quite large executable
+indeed). At bootstrap time, init starts pipes and term itself;
+eventually these will be passive translators, but we don't want to
+write the new disk format until we're self-hosting or fsck and UX will
+get confused. The file proc/primes.c has been documented; thanks go
+to Jim Blandy. Some bugs in proc dealing with pgrp and wait were
+fixed; a nasty hash table bug was also fixed. The simple shell can do
+pipes. Several serious bugs in ufs were fixed dealing with extension
+of large files and writes of data not aligned on block boundaries.
+The ufs pager was over-serialized; that's been fixed. Directory
+lookups and modifications now use mapped I/O directly; this is an
+important speed-up. The structure of the pager lockes has been
+changed significantly. UFS now supports Mach copying mode
+MEMORY_OBJECT_COPY_DELAY; this significantly improves process startup
+time.
+
+Some minor changes have been made to several interfaces. The
+interface for fs.defs:dir_readdir has been totally changed. There are
+some new fs.defs interfaces: file_check_access, file_notice_changes,
+dir_notice_changes. The fsys.defs:fsys_getroot interface was changed
+to work correctly. process.defs:proc_setprocargs is renamed, and a
+fetch function proc_get_arg_locations is added. The ifsock.defs
+interface was simplified.
+
+Several bugs were fixed in libdiskfs. The new dir_readdir interface
+requires new support from format-specific code. Some race conditions
+have been fixed. dir-pathtrans.c now deals correctly with multiple
+slashes in a row. A new concept called "light references" allows
+pagers to remain active without preventing truncate-on-nolinks from
+working right. New interfaces in fs.defs are implemented (except
+file_notice_changes). Active translator usage has been fixed to work
+correctly, but passive translators are still untested. libdiskfs now
+thinks it supports S_IFSOCK nodes, but that's untested (of course)
+because pflocal isn't done yet.
+
+The passive translator startup interface in libfshelp has been
+radically simplified. The pager library now lets other code set and
+changee the attributes on objects, synchronously if desired. An
+init/terminate race condition was fixed. The ports library now
+allows single-threaded users to work right (they didn't before). The
+trivfs library works; see the ifsock server for a simple example of
+its use. See term or pipes for more complex examples.
+
+There is a task list in the file `tasks'; let me know if you are
+interested in working on one of these.
+
+
+May 17, 1994:
+
+The Hurd now runs all the programs in the GNU fileutils and textutils
+distributions. All the programs in shellutils run normally except
+who, false, groups, nohup, true, and nice. We can't tell if tty is
+working right because the necessary support isn't set up (so it just
+prints `not a tty'. Some minor filesystem bugs have been fixed,
+including several brainos in disk allocation and total lossage in
+symlink interpretation. No bugs are now known.
+
+The library now supports signals; the program `timertest' is one test
+program we've used.
+
+All the core servers register their version with proc and register
+themselves as essential tasks with init. This enables proc to compute
+proper uname version strings and enables init to crash the system if
+one of the core servers dies.
+
+Boot is set up with a special hack to detect the RPC's that emacs uses
+to go into and out of raw mode; this will hopefully enable us to run
+emacs soon.
+
+There is a kludgy server called `pipes' (not yet completed) which
+implements just those parts of the local-domain socket server that the
+library uses in implementing the `pipe' function. This will enable us
+to have a real shell somewhat before needing the local domain socket
+server.
+
+More work on trivfs has happened; this will be needed by pipes.
+
+Cthreads is now in the Hurd distribution; this will make it much
+easier to install. The GNU C library depends on some changes we have
+made to this version of C threads and will not work with other
+versions you might have. (Several files in other versions of CMU
+Cthreads are not in this distibution [notably spin locks]; those are
+now in the GNU C library.)
+
+The installation hints in README have changed considerably; read them
+again.
+
+I'm now keeping ChangeLogs; you can examine them for more detailed
+information.
+
+
+
+April 5, 1994:
+
+The Hurd now bootstraps. Auth and proc start successfully; init
+prints "Init has completed" where it would run the shell.
+
+There are the beginnings of some documentation in the new doc
+directory.
+
+
+
+March 25, 1994:
+
+The Makefiles now are set up for cross-compilation; see README and the
+comments in Makeconf and Maketools for more information.
+
+The new diskfs library is complete. The filesystem using it runs as
+well as the previous version. Interested folk: please examine the
+diskfs interface, and see if it can be used for your favorite
+filesystem; I'd like it to be as general as possible.
+
+The proc server and auth servers link completely but have not been
+tested. The init.trim directory holds a lightweight version of init
+suitable for use before the C library support for file descriptors,
+exec, and so forth works; this version of init compiles and links.
+The primary effort right now is booting init, proc, and auth.
+
+Work has been suspended on tmpfs for the time being, it not being
+necessary for a running system. Some new FS calls have been added,
+notably dir_mkfile.
+
+
+Feb 1, 1994:
+
+Much filesystem code has been split out into new libraries, most
+notably, libpager, which now contains the implementation of the
+complex multi-threaded pager previously in the filesystem.
+
+libdiskfs will continue this process, with everything related to
+filesystems based on disks (or other real substrates), but format
+independent. libfshelp will have routines for starting translators,
+keeping track of flock, and so forth; it will be useful for any
+implementor of the fs protocol. ufs currently does not use either of
+these, but will when they are done.
+
+tmpfs and init.trim are in progress. tmpfs will be memory-only for
+things like /tmp, and is currently waiting for the fshelp library to
+be finished. init.trim will be a scaled down init, useful for testing
+bootstrapping before there is enough library support to run the real
+init. Currently this is waiting on fixing some crucial ld bugs.
+(When those are fixed, work will begin in earnest on bootstrapping
+auth, proc, and init.)
+
+