ELKS 0.0.76 has been released and is available from the following URLs:-
ftp://ftp.ecss.oton.ac.uk/pub/elks/elks-0.0.76/
ftp://linux.mit.edu/pub/ELKS/kernel/elks-0.0.76/
The release directory contains the following files:-
elks-0.0.76.tar.gz - Kernel source
elks-0.0.76.diff.gz - diffs from previous version
images.zip - pre-compiled binary
System.map.gz - symbols of pre-compiled binary
This is a kernel only release. For userland sources and binaries, and disk
images please see release 0.0.75.
This release features two significant kernel feature updates:
There is now support for the select(2) system call. This code has been
debuuged and integrated. At the moment it supports the full Linux feature
set, but in future I plan to remove the feature which modifies the
timeout value to reflect the amount of time not slept. This is a feature found
only in Linux, and I don't think much software will rely on it. If anyone
thinks there are important reasons why this should be included please let
me know.
There is also support for the signal(2) system call including signal
handlers. I have tested this only to a limited extent but it does seem to
work reliably. I don't know what would happen if a signal was issued while
a previous signal was being handled as there is no masking or blocking
support. I would like to be able to add support for ^C and ^Z interrupts
from the keyboard but have not yet come up with a way of doing this.
In order to implement select(2) I had to debug the timer code which was
causing crashes before due to the way the scheduler works. In order to
fix this I have re-written the low level context switching code to work
in a more obvious way. Please look over the code to see if you agree with
the way I have done it.
For those interested in ROMable ELKS I have added a file to the
Documentation directory called cs_write which describes the code which
writes to the kernel data segment. Another way of dealing with this will
have to be implemented before ELKS can be installed in ROM.
Please give this kernel a try, and report any bugs or problems as usual to
the main mailing list.
Al