An update on UNIX Standards Activities
Moderator, John S. Quarterman
std-unix at longway.TIC.COM
Sat Sep 3 09:38:38 AEST 1988
From: Shane P. McCarron <ahby at bungia.mn.org>
[ This report was commissioned by the USENIX Association. -mod ]
An update on UNIX Standards Activities
August 1, 1988
Shane P. McCarron, NAPS International
This is the third in a series of reports on standards bodies
relating to the Unix community. Before I start, I would
like to take a couple lines to thank all of those readers
who were kind enough to drop me a line of either criticism
or encouragement; both are greatly appreciated. In the
future please feel free not only to comment on the articles
here, but also on standards issues. I am more than happy to
try and answer any of your questions either individually or
through this column.
To business: the most important item to report (from my
perspective) is that the Usenix Association has formed a
Standards Watchdog Committee. The charter of this group is
to keep an eye on as many of the standards efforts as
possible, and report the progress of those efforts back to
the membership. In addition, the group will be looking for
important or contentious decisions, and trying to determine
a Usenix position where it seems appropriate. The group
will also be looking to you, the members, for input.
Everyone has opinions, and the Watchdog Committee, through
its standards committee representatives, can serve as a
channel to get your ideas to the appropriate groups or can
put you in contact with the appropriate people. For more
information, please contact:
John S. Quarterman
Texas Internet Consulting
701 Brazos, Suite 500
Austin, TX 78701
(512) 320-9031
jsq at usenix.org, uunet!usenix!jsq
As always, the standards bodies have been pretty busy during
the past quarter. Busy, that is, in standards body terms.
There is often a great deal of heat, but very little light.
I have remarked in the past that these committees can take a
long time to complete things. In some future issue, maybe I
will take a few inches and sketch out how a full standards
working group meeting really goes :-). Not this time though
- there is too much real news to get to:
P1003.0 - The POSIX Open Systems Environment Guide
The IEEE 1003.0 working group met on July 12 & 13, 1988 in
Denver, Colorado. The purpose of this meeting was to have
- 2 -
the group members, who had volunteered during the March
meeting to work on certain portions (sub-groups) of the
POSIX Open Systems Environment guide document, present their
material for review and critique by the group. This was
accomplished on day 1 and the morning of day 2. The sub-
groups that were discussed included:
1. Operating System
2. Database Management
3. Data Interchange
4. Network Services
5. User Interface
6. Languages
7. Graphics
The remainder of the meeting focused on goals and objectives
for the next meeting in October. There was strong consensus
within the group that the next goal should be a very rough
draft document. Volunteers were assigned to each sub-group
above with the purpose of putting into narrative form the
material that had been presented. It was also agreed that
distribution of this draft prior to the October meeting
would be essential in order to allow for good, well
thought-out discussion during the meeting.
The group has targeted October, 1989 as a goal for beginning
the balloting process. This is aggressive, but possible,
assuming that the effort between meetings can be maintained
at its present level.
Overall, the meeting was very productive and is drawing more
participation from a good cross-section of vendors and
users.
P1003.1
The big news this month is, of course, that as of August
22nd the POSIX System Services Interface standard is finally
complete. By the time you read this final drafts should
have been circulated to all of the POSIX working group
members, and copies of that draft should be available from
the IEEE office in New York. While you can obtain a copy of
the final draft now, you would do well to wait for a couple
of months and pick up a real, hard-bound version of the
standard from the IEEE. To order a copy of the final draft,
- 3 -
contact:
IEEE Standards Office
345 E. 47th St.
New York, NY 10017
(212) 705-7091
Since the last installment in this series, the 1003.1
standard has gone through not one, and not two, but three
more recirculations. As you may remember, the second
recirculation was scheduled to take place in May, and it
did. This one went as well as expected, and generated some
excellent feedback. The changes from that recirculation
were assembled and sent back to the balloting group for
review at the end of June. As a result of that
recirculation, there were yet more changes to the standard,
and those changes had to be recirculated as well. The final
recirculation took place at the end of July, and generated
no substantial changes. At that point the standard was
released to the Technical Editor for final copy editing, and
has now been balloted on and approved by the IEEE Standards
Board!
This is actually good and bad. It is good for all the
reasons you would suppose. It is bad because the standard
is not perfect; there are things that shouldn't be in it
that are (e.g. some weird timezone stuff and read() and
write() functions that allow broken behavior), and things
which should be in it but are not (like seekdir() and
telldir()). Even though the standard is not perfect, at
least we now have a foundation upon which additional
documents can be based. In the future this standard will be
extended and revised, but for now (in combination with
Standard C), it's the best thing we have for application
portability.
In the mean time, the .1 working group has not been idle.
Although the initial work on the Services Interace standard
was completed some months ago, there are always new areas to
work in. I gave a detailed description of these new areas in
the April update; the following is only information on
developments where they occured:
Clean Up
There are some issues that were not handled to the
satisfaction of the working group in the first cut of the
standard. A small group is working on sifting through the
unresolved balloting objections (there were several) and
identifying those items that can be rectified through
modification to the standard. It turns out that many of the
- 4 -
unresolved objections were very reasonable items, but were
introduced too late in the process to be placed in the
standard. Those items will be looked at and possibly added
to the standard in a supplement.
Language Independent Description
While little progress has been made in this area by the .1
working group, it turns out that there has been quite a bit
of work done by other working groups and technical
committees. The /usr/group technical committee on
Supercomputing, in particular, has produced a Fortran
language description of the .1 interface. In the process
they have come up with a number of items that can be used by
the .1 people to develop their language independent
description.
Terminal Interface Extensions
The Working Group looked at the various requirements
necessary for a terminal interface standard (a terminal
interface standard is something like the Terminal Interface
Extensions in the SVID, better know as curses/terminfo).
The group determined that there is little or no way to get a
single interface standard that will satisfy the needs of the
entire community. Those people with bit mapped displays can
do things better, and we should let them. Those people with
block mode terminals have special needs that should not have
to be addressed by Joe Portable Application. The majority
of users that we are trying to satisfy, those with character
based terminals, have well defined needs that are already
being addressed by existing practice.
What's the solution? Well, none was really proposed, but I
would guess that the people in the bit mapped world are
going to care a lot more about Open Look and Presentation
Manager (bite my tongue) than they are about something based
on terminfo or termcap. For the other 90 percent of the
Unix using community, while terminfo/termcap may be what
they are used to seeing, it is hardly attractive enough to
make them sit up and take notice. They are looking for
flashier, better, faster applications, and the traditional
interface is not going to be enough. For application
developers, the functionality which can be achieved via
terminfo is fine but hardly adequate for building the
products that the user community is coming to expect.
I would guess that the POSIX committees will settle on some
subset of the terminfo interface as the standard, and that
no one will use it. Sure, it will be on every POSIX
conformant system, but who cares? It is a lame interface,
- 5 -
and someone will come up with a better one soon enough.
New Archive Format
As I mentioned previously, the ISO has asked P1003.1 to come
up with a new archive format that will not have the
deficiencies of tar or cpio and will be able to take the
security concerns of the P1003.6 group into consideration (I
assume that by this they mean access control lists,
mandatory access controls, and the like). Little was done
on this topic between meetings, but at the July meeting the
committee discussed ways to extend the cpio archive format
to take these things into consideration. While the
technical details of this extension are clear, they are also
boring. Suffice it to say that the filename field in the
archive can be extended through a kludge and that it would
be backward compatible.
This met with mixed reactions, and I believe that in the end
it will not be used. This discussion (popularly known as
Tar Wars) has been very religious and contentious, and I
don't think that a format based on either will be able to
get popular support from the working group. There is now a
small group of people (from both camps) working on another
new format, and I am certain that they will come up with
something for the October meeting.
P1003.2 - Shell and Tools Interface
This group is actually a little bit ahead of schedule.
Forget all the nasty things I have said about their schedule
being too tight and optimistic - they are actually going to
do it! You're not as impressed as I am, I can tell. Some
people are just never satisfied. Okay, here's some evidence
for you:
Functionality was frozen at the March meeting. This means
that no additional commands or concepts could be added to
the standard. It also means that the working group members
were free to concentrate on the content of the draft,
instead of looking at new proposals for additional commands
all of the time. This has turned out to be very profitable;
the draft has been cleaned up to the point where it can be
submitted (to the working and corresponding groups) for a
mock ballot in September. A mock ballot is just that - a
process during which the draft is picked apart as it would
be in the balloting process, with changes submitted through
formal balloting objections. This may seem a little
excessive, but it has proven effective in the past.
- 6 -
Assuming that all goes well, and the objections from the
mock ballot are resolved at the October meeting, the group
could go to a full ballot as early as January. A less
optimistic scenario shows the group working on resolution of
the mock ballot for two full meetings, with the real ballot
occuring in February or March. Either way, the group is on
schedule for a full use standard before the end of 1989.
In addition to this good news, there were a few key
decisions made at the July meeting:
This side of the Tar Wars is apparently at an end. There
were two aspects to the war - user/program interface and
actual archive format.
The interface side of it seems to have been settled by the
introduction of a command called pax (latin for peace :-).
This command will be able to read and write both types of
archives and has an interface that is acceptable to both
camps. While this has not been agreed upon by the balloting
group, or even by the full working group, the interface is
pretty familiar, and I believe it will be approved with
little change.
The group also concentrated on trying to remove anything
that might be considered implementation dependent from the
draft. This included removing the octal modes from chmod,
and the signal numbers from trap and kill. In their place
go all of the mnemonic command line arguments that have been
in those commands all along, but aren't used by anyone. As
a committee member I can see what they are trying to do, and
even agree with it. As a user, however, I wish they would
have placed requirements that, say, kill -9 would always map
to SIGKILL. At least that way I wouldn't have to fix every
shell script I have ever written.
P1003.3 - Testing and Verification
This working group is progressing well on their verification
standard for 1003.1. They are planning to have a version to
ballot in January or February of 1989. That would make the
standard available just about the time that the major
vendors are finishing their .1 conformant implementations.
The group has also started supplying liason people to each
of the other working groups. These people, with their
experience writing a testing standard for .1, are proving
very valuable in designing testable standards.
New POSIX Work Items
- 7 -
In addition to all of the committees you have heard about in
past articles, there were several new working groups
proposed to the P1003 steering committee:
System Administration
The committee recognizes the need for a standard interface
to many of the system administration utilities that we are
plagued with. While there was a considerable amount of
skepticism exhibited from the members, the steering
committee has agreed to let work progress on this topic.
Consequently, a PAR was filed by Steve Carter of Bellcore,
and the new working group will start meeting in October.
This group has a lot of work ahead of them; The
difficulties of designing standard interfaces to things like
fsck and fsdb may prove impossible. Also, from an system
implementor standpoint, I would hate to have the
administrative functions I can provide limited by something
that a standards committee is going to generate based on
existing practice. This is not an area in which there is a
huge body of existing applications, so implementors should
be allowed to innovate and improve if they like.
On the other hand, the computer users of the world are
probably pretty sick of having to learn a new way to enable
printers on every system they purchase. For those people,
having a standard is going to be a big win. This is one of
those times when the saying "be careful what you wish
for..." comes into play. The ultimate, generic system admin
interface may prove to be so restricted or brain-dead that
it is of no use to anyone. The .1 standard was nearly that
way.
Networking
Another new working group will be focusing on the services
and service interfaces for a networked POSIX conformant
system. While the exact charter and goals of this group are
not fully established, what they are not trying to do is.
They are not trying to overlap the work of the ISO-OSI
committees, nor are they trying to supplant the work being
done by IEEE 802. Their plan is to spend two years defining
the services and service protocols, and maybe an additional
year defining interfaces to those protocols.
User Interface Commands
If you have looked closely at the 1003.1 and .2 standards,
you will notice that there is nothing in either of them
about User Interface. Well, you're not alone, and someone
- 8 -
is finally going to do something about it. A sub-group of
the Shell and Tools committee has beenformed to codify the
interface of many of the classic Unix commands (vi, ed,
etc...). In addition, the group will be defining the user
interface aspects of those commands already in the .2
standard which have traditionally had user interfaces as
well as their programmatic ones.
This group is going to work somewhat in a vacuum - since
there is no standard for terminal interface, the user
interfaces defined are not going to have a way,
programmatically, of being put on the screen. Terminfo will
of course work for this, but it is not a standard.
Hopefully the .1 committee can get a supplement out
regarding this before the .2 sub-group finishes its work
describing the utilities.
X/Open
The X/Open group is just about to release version 3 of the
X/Open Portability Guide. This set of manuals is a must for
any application developer or system implementor planning on
marketing products in Europe. Version 3 will encompass all
of the .1 standard, but will not contain any of the items
proposed in the latest drafts of .2 - that document is too
immature. The XPG also has language definitions, database
interface specifications, and many other things that a
growing programmer needs in the Unix world.
NBS - Federal Information Processing Standard
I have written about this in each issue of this report, and
each time I say that it is almost here. Well, I am done
making predictions. The federal government has a shield
that my crystal ball just refuses to penetrate. I have
heard recently that the FIPS for the .1 standard is within
the Commerce department somewhere, but I have no proof.
When it does finally come out, it will be based on a version
of the standard that is almost a year out of date. Draft 12
of the .1 standard resembles the final standard about like a
caterpillar resembles a butterfly. This is very
unfortunate, as the vendors that are serious about selling
computers to the feds are going to have to conform to that
standard, and not the real one. Note that while the NBS did
try to jump the gun a little bit, they forced the .1
committee to work harder and faster. Without their
encouragement the standard may well never have been
finished.
Of course, the NBS has indicated that they will start making
the FIPS conform to the final standard just as soon as it is
- 9 -
out (now, that means). But, given the amount of time it
took them to get the first standard out the door, I'm not
holding my breath. It could be deep into 1989 before we see
a revised FIPS hit the Federal Register's list of
announcements.
In the mean time, the NBS is proceeding in its specification
of other interim FIPS. Just until there are real standards
in these areas, of course, we are going to see FIPS on Shell
and Tools, User Interface, System Administration, Terminal
Interface Extensions, and probably shoe lacing. The NBS
people are very busy cranking out standards that federal
government departments can cite when generating bid
requests. Unfortunately, in those cases where the
committees aren't far enough along yet, these standards are
going to be based on the SVID. And if the SVID is used as a
base document by the Feds, you can be sure that it will also
be used by any standards committees that come along later
and want to "codify existing practice". Just another
example of the Federal Government guiding the standards
community.
The NBS is putting on a series of workshops this fall to
address some of these issues, and get input from the
community. The first of these workshops, a seminar on
"POSIX and other Application Portability Profile Standards"
will be September 22nd and 23rd. For more information, you
should contact Debbie Jackson at (301) 975-3295. She will
be happy to send you registration materials, as well as give
you information about future workshops being put on by the
National Bureau of Standards.
X3J11 - ANSI C Language Standard
This standard is pretty important to everyone in the Unix
community. Unfortunately, that means that everyone has to
get involved in the development of it, and that takes time.
The document has now entered its third public comment period
(July 1st -> August 31st). From what I gather, the
committee will be very reluctant (read "it will never
happen") to make any substantive changes to the standard as
a result of this period. What they are looking for is
affirmation from the public that the changes made in round
two were adequate to remove most of the outstanding
objections.
The good news here is that the "noalias" keyword has been
removed from the draft. This was a very contentious issue,
and was introduced very late in the process. In simplest
terms, noalias would allow the programmer to specify that
the program, for that statement, would do exactly what it
- 10 -
was supposed to do. Pretty silly, when you get right down
to it. Anyway, its gone now - like a bad dream.
In addition, a number of simple editorial changes were made.
Most of these are transparent, and just made the standard a
little more readable. Unfortunately, it is still a standard
written by programmers, for programmers, and is a little
hard to read. There is even rumor of a x3speak program,
like the valspeak of a few years ago, about to come out in
comp.sources.misc. This would take any prose and render it
senseless through the addition of legalese. My advice to
future readers of the standard is this: Don't go into the
water alone. Use the buddy system, and take a readers'
guide with you.
Assuming all goes well at the September meeting, the ANSI C
Language Standard should be published later this year.
Well, that's about it for this month. Remember, keep those
cards and letters coming to:
Shane P. McCarron
NAPS International
117 Mackubin St.
Suite 6
St. Paul, MN 55102
(612) 224-9239
ahby at bungia.mn.org
Volume-Number: Volume 15, Number 4
More information about the Comp.std.unix
mailing list