From 94cef36797600d11a50d09828fa80df8a73dfd1c Mon Sep 17 00:00:00 2001 From: "Michael I. Bushnell" Date: Thu, 18 Jul 1996 04:35:29 +0000 Subject: *** empty log message *** --- NEWS | 575 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 575 insertions(+) create mode 100644 NEWS (limited to 'NEWS') 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.) + + -- cgit v1.2.3