-----BEGIN PGP SIGNED MESSAGE-----
On Wednesday 07 May 2003 6:11 am, Christian Schmidt wrote:
> ??What I understand POSIX is also the file system layout.
> For example a USR and DEV directory. However these can be emulated.
This is what the spec says
Directory Structure and DevicesDirectory Structure and Files
The following directories shall exist on conforming systems and conforming
applications shall make use of them only as described. Strictly conforming
applications shall not assume the ability to create files in any of these
directories, unless specified below.
The root directory.
Contains /dev/console, /dev/null, and /dev/tty, described below.
The following directory shall exist on conforming systems and shall be used
A directory made available for applications that need a place to create
temporary files. Applications shall be allowed to create files in this
directory, but shall not assume that such files are preserved between
invocations of the application.
The following files shall exist on conforming systems and shall be both
readable and writable:
An infinite data source and data sink. Data written to /dev/null shall be
discarded. Reads from /dev/null shall always return end-of-file (EOF).
In each process, a synonym for the controlling terminal associated with
the process group of that process, if any. It is useful for programs or shell
procedures that wish to be sure of writing messages to or reading data from
the terminal no matter how output has been redirected. It can also be used
for applications that demand the name of a file for output, when typed output
is desired and it is tiresome to find out what terminal is currently in use.
The following file shall exist on conforming systems and need not be readable
The /dev/console file is a generic name given to the system console (see
System Console ). It is usually linked to an implementation-defined special
file. It shall provide an interface to the system console conforming to the
requirements of the Base Definitions volume of IEEE Std 1003.1-2001, Chapter
11, General Terminal Interface.
> ??What about the ability to choose / install your own Shell and preferred
> scripting language?
Umm, I am not sure I understand you but sure the user should be able to
install whatever shell he wishes but to use some conforming applications, a
conforming shell might be required. (I think). What shell do you have in mind?
> ??What is the sourcelevel? Kernel? I think we should do a POSIX emulator.
> Else we will be tight to POSIX and the UNIX standards and can't do anything
> our own way.
POSIX specifies a standard interface to the operating system (we can use
this for between the application programs and the servers) for application
programs. So it is at source code level for application programs and not the
kernel neither the servers. What I mean for instance is that it specifies
there is an open() function defined as below
int open(const char *path, int oflag, ... );
It goes on to describe what the function should be used for but does not fix
the return value (e.g. 0,1,2,3 ... whatever) or give example code. This we
are meant to develop on our own so long as the above prototype remains valid
+ the purpose.
Not all functions are meant to interface with the os, other functions are
those for string manipulation, math etc
We don't have to be a stritcly conforming application, in fact the standard
A conforming implementation shall meet all of the following criteria:
4 The system may provide additional utilities, functions, or facilities not
required by IEEE Std 1003.1-2001. Non-standard extensions of the utilities,
functions, or facilities specified in IEEE Std 1003.1-2001 should be
identified as such in the system documentation. Non-standard extensions, when
used, may change the behavior of utilities, functions, or facilities defined
by IEEE Std 1003.1-2001. The conformance document shall define an environment
in which an application can be run with the behavior specified by IEEE Std
1003.1-2001. In no case shall such an environment require modification of a
Strictly Conforming POSIX Application (see Strictly Conforming POSIX
I do not recommend a tight conformance to the entire standard but taking a
look at the docs I see that we can be able to do out own thing. Remember,
this is just a definition of the interface b/n the os and apps at source code
level by defining function such as fopen(), fclose(), exit() that are
required. We can implement out designs and provide an interface to these
through these functions, besides when we port gcc (or whatever compiler)
we'll have to write these functions(e.g. fopen, exit, printf) and the
standard way to use them is in the specifications. I don't think we have to
implement all but we can use some flag to indicate what we support and what
You can get the specs here: http://www.unix-systems.org/version3/
Brian G. Muita
PS: I _ALWAYS_ sign my messages using GPG (Gnu Privacy Guard). My public key
can be found at http://www.strathmore.ac.ke/keys/bmuita_pub.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.0 (GNU/Linux)
-----END PGP SIGNATURE-----