rburns%master@Sun.COM (Randy Burns) (09/17/88)
Have you ever wanted to OS perform operations through C more
easily than through the System command?
Have you ever wished calls to the system
command were portable accross operating systems?
Have you ever wished you could more easily transfer your
knowledge of unix into C programs(i.e. grep'ing or sed'ding a
string variable and return a pointer to a string)?
Have you ever wished for a familar way to do the
things you might do in operating batch file or
shell script on a system which does not support
a good shell script language (i.e. Apple Macintosh,
Tandem computers)?
Would you like to see a greater standardization of the
industry around Unix and C?
Have you ever wished you could get by with learning one
less language rather than struggling with a language like
the C-shell or bourne shell that you really don't know
very well?
Have you ever wanted OS functions called from C programs to occur
with a higher level of performance? (I have found this is especially
important when doing C programs which embed SQL database calls)
Have you been annoyed when you needed to create a shell script
to accompany a small program, needlessly creating an extra file
to confuse the user?
You may wish to consider an idea that just might provide this for us all:
The creation of a standard C library which provides direct calls
to a library containing functionality found in the most common
unix utilities (i.e. cp, mv, rm, tr, ls, grep, head, tail,cat,
sed, awk, date, cal,diff,df,du,mkdir, rmdir, cd, lpr, pwd,
dc, sort, more, find and possibly others).
The above commands are ones that might be made into library calls
fairly portable accross a *wide* range of existing operating systems.
Free or public domain versions of most of the utilities either exist
or will quite soon. I imagine that creating the library would take some
degree of work. The next trick would be to get the libraries commonly
included with C, C++ compilers and interpreters.
For example the functions might be declared as follows:
int sgrep(string,"pattern","filename");
int filegrep("pattern","filenamein","filenameout");
int sls(string,"filename or patten to be expanded");
int filels("pattern or file name in","filenameout");
Perhaps a C interpreter which provided these functions might become
quite popular among users of operating systems which are not as rich in
utilities as unix, or among unix hacks who need to move temporarily
to another operating system (if it could do simple command line
processing and was available in source form it would not need to be as
powerful as some of the existing interpreters to be quite useful).
The beauty of using C for these functions, is that the general purpose
nature of the language is even further expanded. I feel the operations
could be made even more powerful using C++.
A c++ interpreter using a standard operating system interface library
might even become signifantly more powerful and preferable to using
a shell like sh or csh.
I am considering starting by writing a more detailed article on this. I would
appreciate feedback from folks on this proposal. Has anyone else suggested
this before me? If so who and what have they written? Thanks for your help.
Randy Burns.
The above opinions are my own and not those of my employer or consulting
clients.
hwe@beta.lanl.gov (Skip Egdorf) (09/18/88)
In article <68769@sun.uucp>, rburns%master@Sun.COM (Randy Burns) writes: > ... [stuff removed ...] > > Have you ever wished calls to the system > command were portable accross operating systems? > > ... [grep sed find ] etc. > > The above commands are ones that might be made into library calls > fairly portable accross a *wide* range of existing operating systems. > Free or public domain versions of most of the utilities either exist > or will quite soon. I imagine that creating the library would take some > degree of work. The next trick would be to get the libraries commonly > included with C, C++ compilers and interpreters. > > ... > > A c++ interpreter using a standard operating system interface library > might even become signifantly more powerful and preferable to using > a shell like sh or csh. > > I am considering starting by writing a more detailed article on this. I would > appreciate feedback from folks on this proposal. Has anyone else suggested > this before me? If so who and what have they written? Thanks for your help. > > Randy Burns. Well, not in C. But it HAS been done very successfully 10 years (my God, has it really been 10 years?) ago. For a start, look at: [1] Software Tools; Kernighan and Plauger; Addison-Wesley 1976 [2] A Virtual Operating System; Hall, Scherrer and Sventek; CACM V23 N9, Sept 1980 [3] Several early 1980 Unix User's Group / Usenix procedings that include the Software Tools User's group papers. In the late 1970s, several groups took the software tools code, available from A-W and put it on a wide number of systems from CP-M to MVS, VM, and CTSS on the Cray (and most in between). This was because the Software Tools provided most of a Unix V6 environment on anything that had a FORTRAN compiler. A users group came together at the Toronto Unix User's group meeting in 1978 (or was it 79? My memory must be going) that produced a large amount of coordination and several more and more enhanced tapes. The purpose of this was very similar to what you discuss. We all worked on systems that were not as friendly as Unix, and the tools were very portable. There was not really any planning such as you propose. We all just responded to similar needs. I recall one Unix User's group meeting some time ago where one of the sessions was hot and heavy into Unix portability issues. (this was back when there were still few ports.) Mike O'dell stood up and politely chastised those discussing this for not learrning from the experience of the Software Tools folks who had faced and beaten most of the problems being discussed. I might suggest that you look in the same place for a start. Skip Egdorf hwe@lanl.gov