From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: from minnie.tuhs.org (minnie.tuhs.org [IPv6:2600:3c01:e000:146::1]) by inbox.vuxu.org (Postfix) with ESMTP id 74099265CC for ; Wed, 26 Jun 2024 22:33:30 +0200 (CEST) Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 467284330B; Thu, 27 Jun 2024 06:33:26 +1000 (AEST) Received: from mail-vk1-xa2c.google.com (mail-vk1-xa2c.google.com [IPv6:2607:f8b0:4864:20::a2c]) by minnie.tuhs.org (Postfix) with ESMTPS id 7337B43303 for ; Thu, 27 Jun 2024 06:33:22 +1000 (AEST) Received: by mail-vk1-xa2c.google.com with SMTP id 71dfb90a1353d-4ef6f5e2e6cso1428125e0c.1 for ; Wed, 26 Jun 2024 13:33:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ccc.com; s=google; t=1719434001; x=1720038801; darn=tuhs.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=S1EVi9Gq7sefmA6CnF8tF3L5ptEcoES+wnWbfhwz+1c=; b=U+DFvbcimEj4Ky+4wGZPHGV6YYXnXJHTHte8dlXCCZ6ofRjdXYYHFIUnxmXHMuet7G a/36Ycaya4xqRwAWO8FMzOP9+jQiUEGND+38Pr0iO9Iy/ybeZXLC3Undbg/qhONqDZRu rDr1nxGsRaoo0PAQhFq2gavw5oCDRverZ/XYE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719434001; x=1720038801; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=S1EVi9Gq7sefmA6CnF8tF3L5ptEcoES+wnWbfhwz+1c=; b=lIiPF/dO4KMI4TasbLMSzlpMiw2aXz3M6zdX5IBCiGpqcfUKAMF7CuCUied5rqcqT6 yXGOOVK4G/z21oDTPoFvXoCkxmf0mlCu/XKSAweeTbenx+dpKVC4FhlWSZFt9ve7YrxO WdogNs6mz6o4k0MoY75jzy//SerwJUmgUUVDNnOXJSGmR17bV4gc6AYQ7Y98gwY+51ay sDn82a1zv4IuFMdEuhknOifbz2qBksMV5BYPZNrxNo9zeI9+NHCdEQzadphN5MPRgPkn ZYNI7Qj1S5/WUY+3xhV3qe6ApMU0W3DNfzZjts5BmoeDGrwG71y2/l7WMmGUarLoSS8Z PYqQ== X-Gm-Message-State: AOJu0YxjG7qybpwSDKCq0f3lTb+5JIEwP3Effou5zcKi30fhe59PHu97 rvo8Xc/uOzTz/u0/NOiiuWZRpugJ+9NZ3yoaEI8abFFtsMXk7KMsqpgVCxiSZzQoh8vMXfKNJVF gvJEzBQL66ZOJyJC7UuPT0n+vShv2HiEJNqdt X-Google-Smtp-Source: AGHT+IH0SN4/xAYPGRCQrU3eNzeC6n/Cb82UCINMazb/51rGv6rxkT/SAttAVklcZqzi9jKZR+Fu0bHRlqPzUA/tgb0= X-Received: by 2002:a05:6122:20a8:b0:4ef:53ad:97ad with SMTP id 71dfb90a1353d-4ef6d8096e5mr9773002e0c.6.1719434001066; Wed, 26 Jun 2024 13:33:21 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Clem Cole Date: Wed, 26 Jun 2024 16:32:44 -0400 Message-ID: To: segaloco Content-Type: multipart/alternative; boundary="000000000000d94805061bd0ecb3" Message-ID-Hash: L3FC5UQ6DFNHSDJBJVWSZHCRBBVOGV4S X-Message-ID-Hash: L3FC5UQ6DFNHSDJBJVWSZHCRBBVOGV4S X-MailFrom: clemc@ccc.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: The Eunuchs Hysterical Society X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [TUHS] Re: ANSI (C) vs IEEE (POSIX) Standards Body Selection List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --000000000000d94805061bd0ecb3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 Lyclama 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=E2=80=AFPM segaloco via TUHS w= rote: > 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 =E2=80=93 Laboratoire, Paris France], but that was primarily an academ= ic 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 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.X stuff raised huge hackles at IEEE at the time. It had never been done. Maurice had come up with solution as 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. --000000000000d94805061bd0ecb3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Note: I am a= =C2=A0founding and voting member of both the original /usr/group, IEEE P100= 3 (a.k.a. POSIX), and a commenter for ANSI X3.159-1989 (a.k.a= . C89). Heinz Lyclama=C2=A0who is also on this list, was chair of the f= ormer=C2=A0and also a founder of P1003.=C2=A0 =C2=A0

Below are, of = course, my opinions=C2=A0and my memory of times.=C2=A0 Heinz please add col= or/corrections as appropriate.

On Wed, Jun 26, 2024 at 1:56=E2= =80=AFPM segaloco via TUHS <tuhs@tuhs.o= rg> wrote:
Different=C2=A0groups=C2=A0and functions. M= ore in a minute.

=C2=A0
=C2=A0 Was there every any consideration o= f C through IEEE or POSIX through ANSI instead?=C2=A0
<= font color=3D"#0000ff">Not really; each>>generally<< had a role= that the other did not, although those lines=C2=A0can and have blurred.

=C2=A0
Is there an appreciable difference suggested by the difference= in publishers?
Yes -- again, = more shortly.

=C2=A0
In any case, both saw subsequent adoption by IS= O/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 En= gineering Standards Committee (AESC).[8] In 1928, the AESC became the Ameri= can Standards Association (ASA). In 1966, the ASA was reorganized and becam= e United States of America Standards Institute (USASI). The present name wa= s adopted in 1969.

Prior to 1918, these five founding engineering societie= s:
  • American Institute of Electrical Engineers (AIEE, now IEEE)
  • American Society of Mechanical Engineers = (ASME)
  • American Society of Civil Eng= ineers (ASCE)
  • American Institute of = Mining Engineers (AIME, now American Institute of Mining, Metallurgical, an= d Petroleum Engineers)
  • American Soci= ety 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 Ac= credited Standards Committee X3=C2=A0
This means that the US government, particularly the US War Depart= ment (late DoD), would accept their recommendations. However, a published s= et of rules for how standards would be created, agreed upon, etc., f= or the USA became established.

<= /font>
One of their early roles was creatin= g 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, a= lthough allowing manufacturers to be independent and add their own features= but keep a core that a programmer could rely upon.=C2=A0 =C2=A0So, their p= urvey included creating standards for FORTRAN, Algol, Cobol, and later C.= =C2=A0 They also developed test suites for many of their standards and offe= red services to firms like computer manufacturers to certify that their pro= ducts meet the standard. Thus, a program that worked when compiled under di= fferent manufacturer compilers could be written.

Note that AIEE/IEE= E was a founding member of ASA, but it eventually became an accredited stan= dards body independent of ASA/ANSI.=C2=A0 The subtle difference was the ide= a of "sameness," which said this is functionally the same as some= thing else made by two different electrical manufacturers and, as a result,= could interoperate between them.=C2=A0 =C2=A0This was important to the US = DoD because they wanted more than one place to get similar products, at lea= st ones that could play well together.=C2=A0 =C2=A0So, they became where th= ings 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 whe= n it was discovered you could not handle back-back ethernet packets at full= speed.

So what happened...

We graduated a bunch of you= ng engineers of my generation who know C and UNIX.=C2=A0 AT&T has made = the sources to both technologies "open" and freely=C2=A0available= (libre as opposed to beer).=C2=A0 We take the knowledge with us, and they = both start to be cloned.=C2=A0 Since the microprocessor came in vogue aroun= d the same time, retargeting the C compiler at many places like Universitie= s made sense - I did it (poorly) for the Dennis' compiler for what woul= d 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.=C2=A0 =C2=A0 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 la= nguage itself, and the processors were not PDP-11, many differences crept i= nto 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 i= n the same format as UNIX and differentiated between text files and binarie= s like earlier 12/18/36-bit=C2=A0systems from DEC had.

In the early= 1980s, a group of compiler firms, originally from the PC business, applied= to set up and create the=C2=A0ANSI X3.159 committee.=C2=A0 [Thank the Lord= , Dennis agreed to join it too, as he could rein in several of the worst pr= oposals like near/far pointers, although the terrible text file support lea= ked].=C2=A0 It was a very slow process since a standard did not come about = a vote until 1989 and was agreed upon until 1990.=C2=A0

Meanwhile, = in UNIX land there, USENIX had started [see my paper:=C2=A0C.T. Cole, UNIX:= A View from the Field as We Played the Game, October 19, 2017, Le C= Nam =E2=80=93 Laboratoire, Paris France], but that was primarily an academi= c organization.=C2=A0 Firms like manufacturers DEC, HP, Tektronix, and IBM,= as well as ISVs such as Heinz's Interactive System Corporation and Mic= rosoft, needed an organization that focused more on their needs as commerci= al ventures.=C2=A0 /usr/group (which was later re-branded=C2=A0as Uniforum)= was created. For many reasons (many of which have been discussed here), th= e manufacturer's versions of UNIX had begun to differ.=C2=A0 But they h= ad a common language C, since many, if not most, used AT&T licensed C c= ompilers, the compilers' input syntax was already mostly common, but on= e 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 ne= eded something more than just a language standard.=C2=A0

To address= this need /usr/group, formed a standard committee under Heinz's leader= ship.=C2=A0 In 1985, we published the first UNIX standard.=C2=A0 =C2=A0One = of the members of the group, Jim Issak, who then was from another small man= ufacturer building a system with a UNIX-like OS, Charles River Data Systems= (CRDS - BTW: pronounce that=C2=A0and smile -- marketing people are wonderf= ul),=C2=A0 realized that a /usr/group created standard was helpful to us in= the USA marketplace since /usr/group was not accredited=C2=A0and thus our = work would not be useful to be sent to the US Gov much less and alter Inter= national standards body such as ECMA or ISO.

BTW: since our OS'= s were already getting different beyond the system call layer, we decided t= o start with just the system call API which was mostly common, plus agree t= o an interface standard to exchange magnetic media. But this=C2=A0is where = things like the file <unistd.h> come from to help make the difference= s contained in a manner that a recompile allowed code to move from one vend= or'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.=C2=A0 BTW the number.X stuf= f raised huge hackles at IEEE at the time.=C2=A0 It had never been done. Ma= urice had come up with solution as a wa= y to keep the 801 standard together when it was beginning to diverge and fa= ll apart with the Ethernet folks on one side and the IBM token ring folks o= n the other.

Since the OS was similar to other electrical standards= , allowing one manufacturer to build something the US government buys and k= nowing they could get something similar from someone else, Maurice introduc= ed Jim to the folks at IEEE. Jim succeeded in putting together all of the p= aperwork, getting the proper sponsorship from IEEE institutional members, a= nd forming a committee to create IEEE Proposal 1003.

As the next /u= sr/group meeting approached, we were already starting to work on a revision= . Jim explained the formal IEEE process. We officially voted to disband tha= t meeting and reconvene as IEEE P1003, where Heinz graciously handed the ga= vel to Jim.=C2=A0 It also set us back a bit because the /usr/group document= was not in a form that IEEE could accept.=C2=A0 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 c= ommands.=C2=A0 I know that both Maurice and Jim had a little pushback by IE= EE NYC, but I am thankful that a good idea prevailed.

It's pos= sible ANSI might able to do the same thing that IEEE did.=C2=A0 But the dif= ference 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 so= rt of thing IEEE was already accustomed to doing.=C2=A0 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 de= scription language.=C2=A0 =C2=A0But against this more in their world -- it = pushed to silicon manufacturers, so you know IP can be moved between differ= ent fabs.=C2=A0 =C2=A0We can argue that it's a language, and ANSI would= have been a good place for it.=C2=A0 =C2=A0


--000000000000d94805061bd0ecb3--