Known bugs and problems in the OSKit as of September 1, 2000.
I'm sure we've forgotten a bunch of others.
For some of these, more details are in the file `BUGS.details'.

Bugs:

* There is a linking problem with the `-loskit_startup' library when using
  GNU binutils 2.x ld in an a.out configuration, we think due to a bug in
  that linker.  (PR 220)

* The loopback interface does not work in the -lfreebsd_net stack.  (PR 11)

* A few device drivers don't pass our testing; see linux/dev/README
  for Linux device driver status.

Booting-related bugs:
  See BUGS.details for more info.  We have not had time to look into the
  DOS and Linux problems.  The third is elusive.

* The DOS boot adapter (dosboot.exe, in boot/dos) doesn't work.

Restrictions:

* The OSKit must be compiled with a mininum optimization of
  -O (-O1 or -O2) because of problems with inline functions.

* The POSIX threads code has suffered bitrot and does not currently
  run in SMP (Symmetric Multiprocessing) mode.

* Recently some of our libraries that are commonly used together have
  developed more interdependencies than desirable.  A result is that you
  may have to stick them on the ld line more than once.

* oskit_sendsig_init creates a libc-on-libkernel dependency that we
  should remove by replacing it with a dynamic interface or a
  function pointer.  For now, add another -loskit_kern.

* NetBoot (boot/net) uses a hardcoded name -> IP address table.  In the
  future it will use real DNS.

* The filesystem libraries (Linux and NetBSD) do permission checking.
  This can cause problems when file access routines are built on top
  of them.  For example, implementing open("foo", O_WRONLY|O_CREAT, 0444)
  in terms of the OSKit filesystem primitives doesn't work because
  first a file is created with mode 0444 and then it is opened for
  writing, which fails because the mode is 0444.  Linux and BSD have
  similar create and open VFS primitives but permission checking is
  done a layer up.  The OSKit interfaces should probably be like
  that but such a major change requires more investigation.

* The documentation suffers from a number of maladies; see doc/README.doc.

Basic missing features:

* Console code: there is no `pager' so info scrolls off before you
  can see it.  At Utah we always debug via serial lines to other
  machines, so we have not gotten around to adding this.
