POSIX in the Cloud
Oct. 2nd, 2011 09:10 amTerminology used below is defined in the corresponding chapter of the XBD volume.
Task statement: implements IEEE 1003.1 with all the options disabled and system limits set to their minimum acceptable values.
Requirements:
- Implementation is real-time in the sense of implementation-defined system clock which need not correspond to real-time clock.
- Implementation supports exactly one user ID, namely zero. Every possible login name (see
_POSIX_LOGIN_NAME_MAX
) has the same user ID and its home directory set to/
. - Implementation supports multiple logins.
- System boot has finished exactly once before any login until a system crash. Any system crash shall be followed by system reboot.
- Implementation has exactly one file system with its root at
/
which may be non-conforming.
Means:
- One Google AppEngine application on the server's side.
- HTML5 and ECMAScript with AJAX extension on any client's side.
Rationale: since C-Language Development Utilities are optional functionality, and the c99
utility is the only way to compile an application, System Interfaces are not required to be actually implemented. That is, mandatory Shell and Utilities are the only functionality which is required to be implemented, of course, in conformance with Base Definitions and System Interfaces. The file system may be non-conforming (for example, legacy file systems for which _POSIX_NO_TRUNC
is false, case-insensitive file systems, or network file systems) because any Strictly Conforming POSIX Application is required to tolerate and permitted to adapt to the presence or absence of optional facilities, and the latter include non-conforming file systems. Taking into account mandatory IPv4 support and that no other hardware interfaces are specified, the only user interface for UNIX that can be implemented as a Strictly Conforming POSIX Application is a Web terminal. System clock is not required to correspond to wall clock in order to allow implementation to stop background processes when no login is being used.
Implementation described above is a combination of the following ideas: Web console as the only interface for UNIX and minimal POSIX implementation as a test suite for checking Strictly Conforming POSIX Applications. A Google AppEngine application called uniwebcore
has been reserved for this task.