The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Heinz Lycklama <heinz@osta.com>
To: tuhs@tuhs.org
Subject: [TUHS] Re: ANSI (C) vs IEEE (POSIX) Standards Body Selection
Date: Wed, 26 Jun 2024 15:04:17 -0700	[thread overview]
Message-ID: <9ca62def-3600-4b3d-a5d7-fcbd21fc6b18@osta.com> (raw)
In-Reply-To: <CAC20D2OghS=CsM+auPiVbeq9Nu3OFwZ8=8bwp1ancPQddg8uMQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 11245 bytes --]

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@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.
>
>
>

[-- Attachment #2: Type: text/html, Size: 23539 bytes --]

      reply	other threads:[~2024-06-26 22:04 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-26 17:56 [TUHS] " segaloco via TUHS
2024-06-26 18:32 ` [TUHS] " Ori Idan
2024-06-26 18:42   ` Marc Rochkind
2024-06-26 20:07   ` Aron Insinga
2024-06-26 23:28   ` Peter Yardley
2024-06-26 18:35 ` Marc Rochkind
2024-06-26 18:43   ` James Johnston
2024-06-26 18:52     ` segaloco via TUHS
2024-06-26 19:34       ` Heinz Lycklama
2024-06-26 20:01         ` Charles H Sauer (he/him)
2024-06-27  2:36           ` [TUHS] Re: arithmetic, " John Levine
2024-06-27  3:41             ` Charles H. Sauer
2024-06-26 20:29         ` [TUHS] " Marc Rochkind
2024-06-26 21:17           ` Rich Salz
2024-06-26 21:20           ` Alan Coopersmith via TUHS
2024-06-26 21:28             ` Warner Losh
2024-06-26 21:49               ` Rich Salz
2024-06-26 21:53               ` Steffen Nurpmeso
2024-06-27  0:44                 ` Clem Cole
2024-06-27  1:11                   ` [TUHS] Origin of the name POSIX (was: ANSI (C) vs IEEE (POSIX) Standards Body Selection) Greg 'groggy' Lehey
2024-06-27  2:12                     ` [TUHS] " Ron Natalie
2024-06-27  2:37                       ` Warner Losh
2024-06-27 14:19                       ` Steffen Nurpmeso
     [not found]                     ` <CAC20D2M+75ohjTPcTBmBkejeaWjQQjWCkf=4ZYrP4Bk0MCamKA@mail.gmail.com>
2024-06-27  3:02                       ` Clem Cole
2024-06-27  3:03                         ` Clem Cole
2024-06-27  3:08                         ` Clem Cole
2024-06-27  8:20                     ` Eric E. Bowles via TUHS
2024-06-27 11:56                       ` John S Quarterman
     [not found]                         ` <CAEoi9W4ZSVCVsJJ8pdBuBobeeXOkwsey0kM6DWBnPiuSd_7TQA@mail.gmail.com>
     [not found]                           ` <CANCZdfoghuf4n=HDgRJXDJ5VqZ=rCtmq_0WadaR6kj8QmcoVQQ@mail.gmail.com>
2024-06-27 13:42                             ` John S Quarterman
2024-06-27 11:58                     ` Dan Cross
2024-06-27 14:34                       ` Clem Cole
2024-06-27 15:05                         ` [TUHS] Re: Origin of the name POSIX Heinz Lycklama
2024-06-27 13:57                   ` [TUHS] Re: ANSI (C) vs IEEE (POSIX) Standards Body Selection Steffen Nurpmeso
2024-06-27 14:22                   ` Chet Ramey via TUHS
2024-06-27 14:29                     ` Andy Kosela
2024-06-27 14:59                       ` Clem Cole
2024-06-27  4:12             ` Wesley Parish
2024-06-27  4:52             ` G. Branden Robinson
2024-06-26 19:47     ` Aron Insinga
2024-06-27  5:02       ` Nevin Liber
2024-06-26 20:36   ` Stuff Received
2024-06-26 22:33     ` James Johnston
2024-06-26 20:32 ` Clem Cole
2024-06-26 22:04   ` Heinz Lycklama [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9ca62def-3600-4b3d-a5d7-fcbd21fc6b18@osta.com \
    --to=heinz@osta.com \
    --cc=tuhs@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).