Minix POSIX conformance - Minix

This is a discussion on Minix POSIX conformance - Minix ; Hi All! I have several questions. It's written on main page that Minix this POSIX-compatible system. So, the first question: Was Minix tested for POSIX compliance (there are test suites)? I think not, because such functions as glob are absent. ...

+ Reply to Thread
Results 1 to 8 of 8

Thread: Minix POSIX conformance

  1. Minix POSIX conformance

    Hi All!

    I have several questions. It's written on main page that
    Minix this POSIX-compatible system.

    So, the first question:

    Was Minix tested for POSIX compliance (there are test suites)?
    I think not, because such functions as glob are absent. And no POSIX
    extensions are implemented. So, why do you call it POSIX-compliant
    system? As stated in POSIX:
    "The system shall support all the mandatory functions and headers
    defined in IEEE Std 1003.1-2001...".

    PS: Also, TIOCMGET and TIOCMSET are absent in implementation of RS-232
    (serial port) driver. This is not POSIX, but a practically necessary
    thing (for instance, they are needed for communication with many
    devices
    used in embedded development).


  2. Re: Minix POSIX conformance

    Just bitching about gets nothing done. Either do something about it and
    shut up, or get added to my killfile.
    ntcross@046.ru wrote:
    > Hi All!
    >
    > I have several questions. It's written on main page that
    > Minix this POSIX-compatible system.
    >
    > So, the first question:
    >
    > Was Minix tested for POSIX compliance (there are test suites)?
    > I think not, because such functions as glob are absent. And no POSIX
    > extensions are implemented. So, why do you call it POSIX-compliant
    > system? As stated in POSIX:
    > "The system shall support all the mandatory functions and headers
    > defined in IEEE Std 1003.1-2001...".
    >
    > PS: Also, TIOCMGET and TIOCMSET are absent in implementation of RS-232
    > (serial port) driver. This is not POSIX, but a practically necessary
    > thing (for instance, they are needed for communication with many
    > devices
    > used in embedded development).
    >


  3. Re: Minix POSIX conformance


    Segin writes:

    > Just bitching about gets nothing done. Either do something about it and
    > shut up, or get added to my killfile.


    Just being rude gets nothing done. Answer the OPs questions and shut
    ip or get added to my killfile.

    Man, Segin. Learn to behave yourself.

    Regards -- Markus

  4. Re: Minix POSIX conformance


    ntcross@046.ru writes:

    > Hi All!
    >
    > I have several questions. It's written on main page that
    > Minix this POSIX-compatible system.
    >
    > So, the first question:
    >
    > Was Minix tested for POSIX compliance (there are test suites)?
    > I think not, because such functions as glob are absent. And no POSIX
    > extensions are implemented. So, why do you call it POSIX-compliant
    > system? As stated in POSIX:
    > "The system shall support all the mandatory functions and headers
    > defined in IEEE Std 1003.1-2001...".


    Minix has not been tested for compliance as far as I know. I think, up
    to Version 1.5 the goal was to get something as similar a possible tu
    Unix V7. After that (Versions 1.7 to 2.x) the goal seems to have been
    POSIX.2 compliance. POSIX.2 is from 1992. The IEEE Std 1003.1-2001 is
    AFAIS POSIX.3, so it might be that Minix 3 is not (yet) POSIX.3
    complaint and glob() is not in POSIX.2?

    Perhaps it is compliant (at least as far as library functions are
    concerned) if you use glibc + gcc at Minix :-), but I don't know about
    the tools.

    More about the POSIX standards (and their relation to the Unix
    standards, where Unix 2001 and 2004 are basically POSIX.3) you can
    find here:

    http://www.unix.org/version3/ieee_std.html

    The core of the Single UNIX Specification, Version 3 is also IEEE
    Std 1003.1. The latest 2004 edition incorporates IEEE Std
    1003.1-2001 and two technical corrigendum. IEEE Std 1003.1-2001 is a
    major revision and incorporates IEEE Std 1003.1-1990 (POSIX.1) and
    its subsequent amendments, and IEEE Std 1003.2-1992 (POSIX.2) and
    its subsequent amendments, combined with the core volumes of the
    Single UNIX Specification, Version 2. It is technically identical to
    The Open Group, Base Specifications, Issue 6; they are one and the
    same documents, the front cover having both designations. The final
    draft achieved 98% approval by the IEEE ballot group and was
    officially approved by the IEEE-SA Standards Board on December 6th
    2001.


    I quoted a lot of that stuff from memory, so don't rely on it
    :-). Wether POSIX.2 / Unix 2004 compliance is a goal for Minix I don't
    know. Perhaps some of the developers can say something about that if
    its not already in the FAQ.

    Regards -- Markus

  5. Re: Minix POSIX conformance

    M E Leypold wrote:
    > ntcross@046.ru writes:
    > > Was Minix tested for POSIX compliance...

    > Minix has not been tested for compliance as far as I know...


    Between 1994 and late 1996, while Minix 2.0 and OSDI/2 were being
    prepared, part of my job was to try to verify that Minix 2.0 would be
    POSIX compliant. The available document was the ISO/IEC 9945-1,
    ANSI/IEEE standard 1003.1, published in December 1990. Working via
    e-mail with Kees Bot, I checked out every relevant part of Minix and
    Kees corrected the code as necessary (there wasn't too much need for
    that).

    Now, I have to admit that standards testing is something I was
    learning on-the-fly at that point. So there could have been tests not
    done or exceptions we missed. But I think it is safe to say that Minix
    2.0.0 was POSIX-compliant. At least, we made a good attempt.

    I did not consider verifying POSIX compliance to be practical
    when preparing OSDI/3, based on Minix 3. There was not nearly as
    much time between the release of a stable version of Minix and
    completion of the book in 2005 as there had been in 1996. There
    may have been some testing done by the developers in Amsterdam,
    but I suspect the rate at which changes were being made precluded
    extensive testing.

    With that said, I doubt that the revisions of Minix 2 (through 2.0.4)
    had any effect on POSIX compliance, and I suspect that Minix 3
    inherits the work done on Minix 2. But unless someone I don't know
    about is already working on this I think verification of Minix 3
    compliance in some kind of formal way is still to be done.

    - Al


  6. Re: Minix POSIX conformance


    awoodhull@hampshire.edu writes:

    > M E Leypold wrote:
    > > ntcross@046.ru writes:
    > > > Was Minix tested for POSIX compliance...

    > > Minix has not been tested for compliance as far as I know...

    >
    > Between 1994 and late 1996, while Minix 2.0 and OSDI/2 were being
    > prepared, part of my job was to try to verify that Minix 2.0 would be
    > POSIX compliant. The available document was the ISO/IEC 9945-1,


    Well of course. I admit I hadn't mentioned that, but I was aware of it
    since I've been following Minix development around that time.

    I assumed that the OP asked for a formal compliance testing (which I
    think would be something different involving an official approval from
    some POSIX certification organisation -- or am I wrong? My impression
    is based on how it works with the "Unix brand", it might be different
    for POSIX).

    > ANSI/IEEE standard 1003.1, published in December 1990. Working via


    POSIX.1 then?

    > e-mail with Kees Bot, I checked out every relevant part of Minix and
    > Kees corrected the code as necessary (there wasn't too much need for
    > that).


    > Now, I have to admit that standards testing is something I was
    > learning on-the-fly at that point. So there could have been tests not
    > done or exceptions we missed. But I think it is safe to say that Minix
    > 2.0.0 was POSIX-compliant. At least, we made a good attempt.


    BTW: Did you use some standard test suite or did you read the standard
    and make up you own testing suite?

    > I did not consider verifying POSIX compliance to be practical
    > when preparing OSDI/3, based on Minix 3. There was not nearly as
    > much time between the release of a stable version of Minix and
    > completion of the book in 2005 as there had been in 1996. There
    > may have been some testing done by the developers in Amsterdam,
    > but I suspect the rate at which changes were being made precluded
    > extensive testing.
    >
    > With that said, I doubt that the revisions of Minix 2 (through 2.0.4)
    > had any effect on POSIX compliance, and I suspect that Minix 3
    > inherits the work done on Minix 2. But unless someone I don't know
    > about is already working on this I think verification of Minix 3
    > compliance in some kind of formal way is still to be done.



    Thanks for the explanation -- Markus


  7. Re: Minix POSIX conformance


    > Perhaps it is compliant (at least as far as library functions are
    > concerned) if you use glibc + gcc at Minix :-), but I don't know about
    > the tools.


    Where is glibc for MIINIX, then?


  8. Re: Minix POSIX conformance


    ntcross@046.ru writes:

    > > Perhaps it is compliant (at least as far as library functions are
    > > concerned) if you use glibc + gcc at Minix :-), but I don't know about
    > > the tools.

    >
    > Where is glibc for MINIX, then?


    As Al Woodhull already elaborated, Minix should be POSIX.1
    compliant. With my statement about glibc I wanted to suggest a way to
    get POSIX.3 / Unix 2003 compliance. I assumed that glibc has already
    been ported, but if I were wrong, please forgive me. :-)

    Still the suggestion stands: POSIX.3 is huge if compared to POSIX.[12]
    and Unix 2003 is also huge. But these 2 standards practically define
    the modern Unix API. If one wants compliance in that direction,
    perhaps the best way would be not to develop everything from the
    scratch, but port an existing libc (either glibc or from some
    *BSD). After all, those standards basically define a library
    interface. During the porting some system calls will be found missing
    and prove to be impossible to emulate by adding some glue
    functions. These would give rise to the necessary kernel extensions.

    Of course I'm talking purely speculatively: I won't do it myself and
    have no insight wether anything of that kind is planned by the team
    from VU. But I have the impression that full POSIX.3 compliance is
    rather low in priority. After all, most of the open source
    applications existing in the wild don't want full POSIX.3 yet
    (remember, most of them have a history of being able to compile on
    SunOS, Interactive, Xenix, Coherent, whatever) so a conservative
    incremental from case to case extension of the existing libc would
    bring all the benefits without requiring a major effort.

    Note that my original answer was not geared toward discussing the
    merits and dis-merits of POSIX.[123] compliance or defend Minix against
    possible accusation of not being compliant. I only wanted to point out
    that when talking about "POSIX compliance" it is necessary to indicate
    which POSIX version you're talking about.

    Regards -- Markus




+ Reply to Thread