[TUHS] ANSI (C) vs IEEE (POSIX) Standards Body Selection
Heinz Lycklama
heinz at osta.com
Thu Jun 27 08:04:17 AEST 2024
Clem, you have a good memory of the early days of the
UNIX standards. Here is the set that I was involved with:
1. The /usr/group Proposed Standard published in January 1984
2. The /usr/group Standard published in November 1984
3. IEEE Trial Use Standard for POSIX published in April 1986
4. IEEE POSIX Standard P1003.1 published in August 1988
Heinz
On 6/26/2024 1:32 PM, Clem Cole wrote:
> Note: I am a founding and voting member of both the original
> /usr/group, IEEE P1003 (a.k.a. POSIX), and a commenter for ANSI
> X3.159-1989 (/a.k.a./ C89). Heinz Lycklama who is also on this list,
> was chair of the former and also a founder of P1003.
>
> Below are, of course, my opinions and my memory of times. Heinz
> please add color/corrections as appropriate.
>
> On Wed, Jun 26, 2024 at 1:56 PM segaloco via TUHS <tuhs at tuhs.org> wrote:
>
> Good morning, I was wondering if anyone has the scoop on the
> rationale behind the selection of standards bodies for the
> publication of UNIX and UNIX-adjacent standards. C was published
> via the ANSI route as X3.159, whereas POSIX was instead published
> by the IEEE route as 1003.1.
>
> Different groups and functions. More in a minute.
>
> Was there every any consideration of C through IEEE or POSIX
> through ANSI instead?
>
> Not really; each>>generally<< had a role that the other did not,
> although those lines can and have blurred.
>
> Is there an appreciable difference suggested by the difference in
> publishers?
>
> Yes -- again, more shortly.
>
> In any case, both saw subsequent adoption by ISO/IEC, so the track
> to an international standard seems to lead to the same organizations.
>
> Right, but you are ahead of yourself.
>
> Per Wikipedia:
>
> ANSI was most likely formed in 1918, when five engineering
> societies and three government agencies founded the American
> Engineering Standards Committee (AESC).[8] In 1928, the AESC
> became the American Standards Association (ASA). In 1966, the ASA
> was reorganized and became United States of America Standards
> Institute (USASI). The present name was adopted in 1969.
>
>
> Prior to 1918, these five founding engineering societies:
>
> * American Institute of Electrical Engineers (AIEE, now IEEE)
> * American Society of Mechanical Engineers (ASME)
> * American Society of Civil Engineers (ASCE)
> * American Institute of Mining Engineers (AIME, now American
> Institute of Mining, Metallurgical, and Petroleum Engineers)
> * American Society for Testing and Materials (now ASTM
> International) had been members of the United Engineering
> Society (UES).
>
> Leaving out a >>lot<< of detail, but under ASA was their directive:
> the /*Accredited Standards Committee X3 */
> This means that the US government, particularly the US War Department
> (late DoD), would accept their recommendations. However, a published
> set of rules for how standards would be created, agreed upon, /etc/.,
> for the USA became established.
>
> One of their early roles was creating standards for the computer
> industry, such as what would become ASCII,/a.k.a./, ASA X3.4-1963, and
> ASA X3/INCITS 40-1966 - 9-track mag tape.
>
> One of the things the folks at X3 had started working on we standards
> that allowed program/interchange/ between different manufacturers,
> although allowing manufacturers to be independent and add their own
> features but keep a core that a programmer could rely upon. So,
> their purvey included creating standards for FORTRAN, Algol, Cobol,
> and later C. They also developed test suites for many of their
> standards and offered services to firms like computer manufacturers to
> certify that their products meet the standard. Thus, a program that
> worked when compiled under different manufacturer compilers could be
> written.
>
> Note that AIEE/IEEE was a founding member of ASA, but it eventually
> became an accredited standards body independent of ASA/ANSI. The
> subtle difference was the idea of "sameness," which said this is
> functionally the same as something else made by two different
> electrical manufacturers and, as a result, could interoperate between
> them. This was important to the US DoD because they wanted more than
> one place to get similar products, at least ones that could play well
> together. So, they became where things like networking, power,
> /etc./, were defined and agreed upon. Of note, independent of IEEE, we
> were testing groups, but if you made an error, it was basically
> self-correcting -- people stopped using your product when it was
> discovered you could not handle back-back ethernet packets at full speed.
>
> So what happened...
>
> We graduated a bunch of young engineers of my generation who know C
> and UNIX. AT&T has made the sources to both technologies "open" and
> freely available (libre as opposed to beer). We take the knowledge
> with us, and they both start to be cloned. Since the microprocessor
> came in vogue around the same time, retargeting the C compiler at many
> places like Universities made sense - I did it (poorly) for the
> Dennis' compiler for what would become the 68000 @Tektronix in the
> summer of 1979. But if you look at the USENIX tapes from those times,
> you will see many different developer tools for those processors.
> However, since the AT&T tools were licensed, several implementations
> grew that were mostly, if not 100%, clean of any AT&T's IP.
>
> Since there was no standard for the language itself, and the
> processors were not PDP-11, many differences crept into the different
> compiler implementations. The biggest was support for the x86 and
> target platforms such as CP/M and DOS, which did not store files in
> the same format as UNIX and differentiated between text files and
> binaries like earlier 12/18/36-bit systems from DEC had.
>
> In the early 1980s, a group of compiler firms, originally from the PC
> business, applied to set up and create the ANSI X3.159 committee.
> [Thank the Lord, Dennis agreed to join it too, as he could rein in
> several of the worst proposals like near/far pointers, although the
> terrible text file support leaked]. It was a very slow process since
> a standard did not come about a vote until 1989 and was agreed upon
> until 1990.
>
> Meanwhile, in UNIX land there, USENIX had started [see my paper: C.T.
> Cole, UNIX: /A View from the Field as We Played the Game/, October 19,
> 2017, Le CNam – Laboratoire, Paris France], but that was primarily an
> academic organization. Firms like manufacturers DEC, HP, Tektronix,
> and IBM, as well as ISVs such as Heinz's Interactive System
> Corporation and Microsoft, needed an organization that focused more on
> their needs as commercial ventures. /usr/group (which was later
> re-branded as Uniforum) was created. For many reasons (many of which
> have been discussed here), the manufacturer's versions of UNIX had
> begun to differ. But they had a common language C, since many, if not
> most, used AT&T licensed C compilers, the compilers' input syntax was
> already mostly common, but one of the things that this group realized
> was it was still "work" for an ISV to move their UNIX based
> application between systems and they needed something more than just a
> language standard.
>
> To address this need /usr/group, formed a standard committee under
> Heinz's leadership. In 1985, we published the first UNIX standard.
> One of the members of the group, Jim Issak, who then was from another
> small manufacturer building a system with a UNIX-like OS, Charles
> River Data Systems (CRDS - BTW: pronounce that and smile -- marketing
> people are wonderful), realized that a /usr/group created standard
> was helpful to us in the USA marketplace since /usr/group was not
> accredited and thus our work would not be useful to be sent to the US
> Gov much less and alter International standards body such as ECMA or ISO.
>
> BTW: since our OS's were already getting different beyond the system
> call layer, we decided to start with just the system call API which
> was mostly common, plus agree to an interface standard to exchange
> magnetic media. But this is where things like the file <unistd.h> come
> from to help make the differences contained in a manner that a
> recompile allowed code to move from one vendor's system to another.
>
> By the early 1980 my former colleague, Maurice Graubie from Tektronix,
> had been the chair of the IEEE 802 committee, which had published its
> set of standards. BTW the number.Xstuff raised huge hackles at IEEE
> at the time. It had never been done. Maurice had come up with
> solutionas a way to keep the 801 standard together when it was
> beginning to diverge and fall apart with the Ethernet folks on one
> side and the IBM token ring folks on the other.
>
> Since the OS was similar to other electrical standards, allowing one
> manufacturer to build something the US government buys and knowing
> they could get something similar from someone else, Maurice introduced
> Jim to the folks at IEEE. Jim succeeded in putting together all of the
> paperwork, getting the proper sponsorship from IEEE institutional
> members, and forming a committee to create IEEE Proposal 1003.
>
> As the next /usr/group meeting approached, we were already starting to
> work on a revision. Jim explained the formal IEEE process. We
> officially voted to disband that meeting and reconvene as IEEE P1003,
> where Heinz graciously handed the gavel to Jim. It also set us back a
> bit because the /usr/group document was not in a form that IEEE could
> accept. So the first task was the rewrite (and use their voting
> process) to have it accepted. But because of Maurice's great
> compromise for the 802 committee, we started by saying this would be
> the first of N standards,/i.e/., 1003.1 for the system calls, and we
> would (like 802) create later standards for things like the commands.
> I know that both Maurice and Jim had a little pushback by IEEE NYC,
> but I am thankful that a good idea prevailed.
>
> It's possible ANSI might able to do the same thing that IEEE did. But
> the difference is that members of the/usr/group were all institutional
> members of IEEE, and the style of things we needed to do at the time
> was really the sort of thing IEEE was already accustomed to doing. As
> for the language, since ASA/ANSI was already doing things there - that
> made sense.
>
> BTW: it has been observed that IEEE is behind VHDL - which is a
> hardware description language. But against this more in their world
> -- it pushed to silicon manufacturers, so you know IP can be moved
> between different fabs. We can argue that it's a language, and ANSI
> would have been a good place for it.
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.tuhs.org/pipermail/tuhs/attachments/20240626/08aa2140/attachment-0001.htm>
More information about the TUHS
mailing list