Patches for POSIX.4 Extensions to Linux 2.1.43

Shyamalan Pather (spather@ittc.ukans.edu)
Tue, 8 Jul 1997 18:38:15 -0500 (CDT)


Hello,
We have recently completed a series of patches that implement
some POSIX.4(POSIX.1b) functionality on Linux 2.1.43. Specifically, we
have implemented POSIX.4 queued signalling, interval timers, and time
query functions.
The queued signalling patch implements a set of "real-time"
signals that behave differently than normal signals. These signals are
queued to processes, so that if more than one arrives before a signal
handler is called, they are all delivered to the process. Also, they
carry a four-byte data value that gets passed to their signal handlers
when they are delivered, and they have a guaranteed delivery
order. All these features make them well-suited to use in real-time
applications.
The interval timer patch implements interval timers according
to the POSIX.4 standard. This means that processes can have up to 32
interval timers, each of which is dynamically created and destroyed as
needed. Also, the new interval timers can be programmed to deliver any
signal when they expire, not just SIGALRM, as with standard
itimers. They can even deliver one of the queued real-time signals
described above. Also included in the interval timer patch are the
POSIX.4 system calls that relate to time querying/setting. These
system calls work with "struct timespec" instead of "struct timeval",
so they offer higher time resolution.
The above patches are designed to work with the "UTIME:
Microsecond Resolution Timers" patch released by our organization a
few days ago. With the UTIME patch in place,the resolution offered by
the time query calls and interval timers is much higher than it
otherwise is. However, the patches work just fine without UTIME.
The patches have been tested on our systems here, but we are
releasing them for more widespread testing. They are fairly stable (we
have not seen them cause any horribly ill effects on our
machines). There are still some issues to work out before these
patches reach the point of being ready to be incorporated into the
mainstream kernel. We do see incorporation into the mainstream kernel
as an eventual goal, since doing so would take Linux another few steps
forward towards full POSIX compliance.
The patches can be downloaded from our web page. We have not
included them in this mail, since they are fairly lengthy. Also on our
web page you will find the user-space libraries that contain the stubs
to the new system calls we have implemented. We have also included
some of the programs we used to test our system, as they provide an
easy way to see the new features in action. The URL is:

http://hegel.ittc.ukans.edu/projects/posix/

Also on the web page for each of the patches is a section
called "Implementation Issues". If you are a kernel developer,
**please** read these pages, and offer us your feedback. On these pages
we discuss some of the open-ended issues that need to be resolved in
order to improve our patches, and get them ready for inclusion in the
main kernel. Feedback can be sent to posix@ittc.ukans.edu.
Currently, the two patches are completely independent of one
another. However, we are working on a third patch that combines the
functionality of the first two, so that they can be used
together. This patch will be available early tommorrow.

Thank you.

Shyam Pather
Balaji Srinivasan
Douglas Niehaus

Information and Telecommunication Technology Center
University of Kansas
Lawrence, KS
http://hegel.ittc.ukans.edu