comparison cut.txt @ 22:4193939c6a24

Vorgeschichte um CB Unix erweitert Zudem noch fehlende Links eingefuegt.
author markus schnalke <meillo@marmaro.de>
date Sun, 31 May 2015 20:13:22 +0200
parents bac481be86d7
children a4ab235c304c
comparison
equal deleted inserted replaced
21:bac481be86d7 22:4193939c6a24
136 136
137 Geschichtliches 137 Geschichtliches
138 138
139 Cut erblickte 1982 mit dem Release von UNIX System III das 139 Cut erblickte 1982 mit dem Release von UNIX System III das
140 Licht der öffentlichen Welt. Wenn man die Quellen von System 140 Licht der öffentlichen Welt. Wenn man die Quellen von System
141 III durchforstet, findet man die Quellcodedatei cut.c mit dem 141 III durchforstet, findet man cut.c mit dem Zeitstempel 1980-04-11.
142 Zeitstempel 1980-04-11.
143 [ http://minnie.tuhs.org/cgi-bin/utree.pl?file=SysIII/usr/src/cmd 142 [ http://minnie.tuhs.org/cgi-bin/utree.pl?file=SysIII/usr/src/cmd
144 Das ist die älteste Manifestation des Programms, die ich 143 Das ist die älteste Implementierung des Programms, die ich
145 aufstöbern konnte. Allerdings spricht die SCCS-ID im 144 aufstöbern konnte. Allerdings spricht die SCCS-ID im
146 Quellcode von Version 1.5. Die Vorgeschichte liegt, der Aussage 145 Quellcode von Version 1.5. Die Vorgeschichte liegt, der Vermutung
147 Doug McIlroys 146 Doug McIlroys
148 [ XXX 147 [ http://minnie.tuhs.org/pipermail/tuhs/2015-May/004083.html
149 zufolge, in PWB/UNIX, das die Grundlage für System III war. 148 zufolge, in PWB/UNIX, dessen Entwicklungslinie die Grundlage für
150 (PWB 3.0 entspricht System III.) In den von PWB 1.0 (1977) 149 System III war. In den von PWB 1.0 (1977) verfügbaren Quellen
151 verfügbaren Quellen 150 [ http://minnie.tuhs.org/Archive/PDP-11/Distributions/usdl/
152 [ XXX 151 ist cut noch nicht zu finden. Von PWB 2.0 sind mir keine
153 ist cut noch nicht zu finden; von PWB 2.0 sind mir keine
154 verfügbaren Quellen oder hilfreiche Dokumentation bekannt. 152 verfügbaren Quellen oder hilfreiche Dokumentation bekannt.
153 PWB 3.0 wurde später aus Marketinggründen als System III
154 bezeichnet. Eine Nebenlinie zu PWB war CB Unix, das nur innerhalb
155 der Bell Labs genutzt wurde. Das Handbuch von CB Unix Edition 2.1
156 vom November 1979 enthält bereits eine Manpage für cut.
157 [ ftp://sunsite.icm.edu.pl/pub/unix/UnixArchive/PDP-11/Distributions/other/CB_Unix/cbunix_man1_02.pdf
158 Eine frühere Erwähnung von cut als diese habe ich nicht gefunden.
155 159
156 Nun ein Blick auf die BSD-Linie: Dort ist mein frühester 160 Nun ein Blick auf die BSD-Linie: Dort ist mein frühester
157 Fund ein cut.c mit dem Dateimodifikationsdatum 1986-11-07 161 Fund ein cut.c mit dem Dateimodifikationsdatum 1986-11-07
158 [ http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-UWisc/src/usr.bin/cut 162 [ http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-UWisc/src/usr.bin/cut
159 als Teil der Spezialversion 4.3BSD-UWisc, 163 als Teil der Spezialversion 4.3BSD-UWisc,
378 zwischen 25 und 30 Bytes je Anweisung. Die Heirloom-Implementierung 382 zwischen 25 und 30 Bytes je Anweisung. Die Heirloom-Implementierung
379 weicht mit nur 21 nach unten ab, die GNU-Implementierungen mit 383 weicht mit nur 21 nach unten ab, die GNU-Implementierungen mit
380 fast 40 nach oben. Bei GNU liegt dies hauptsächlich an deren 384 fast 40 nach oben. Bei GNU liegt dies hauptsächlich an deren
381 Programmierstil, mit spezieller Einrückung und langen Bezeichnern. 385 Programmierstil, mit spezieller Einrückung und langen Bezeichnern.
382 Ob man die Heirloom-Implementierung 386 Ob man die Heirloom-Implementierung
383 [ XXX 387 [ http://heirloom.cvs.sourceforge.net/viewvc/heirloom/heirloom/cut/cut.c?revision=1.6&view=markup
384 als besonders kryptisch 388 als besonders kryptisch
385 oder als besonders elegant bezeichnen will, das soll der 389 oder als besonders elegant bezeichnen will, das soll der
386 eigenen Einschätzung des Lesers überlassen bleiben. Vor allem 390 eigenen Einschätzung des Lesers überlassen bleiben. Vor allem
387 der Vergleich mit einer GNU-Implementierung 391 der Vergleich mit einer GNU-Implementierung
388 [ XXX 392 [ http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=blob;f=src/cut.c;hb=e981643
389 ist eindrucksvoll. 393 ist eindrucksvoll.
390 394
391 395
392 Die interne Struktur der Programmcodes (in C) ist meist ähnlich. 396 Die interne Struktur der Programmcodes (in C) ist meist ähnlich.
393 Neben der obligatorischen main-Funktion, die die Kommandozeilenargumente 397 Neben der obligatorischen main-Funktion, die die Kommandozeilenargumente
422 cut, wie sie sich in der Titelzeile der Manpages oder manchmal 426 cut, wie sie sich in der Titelzeile der Manpages oder manchmal
423 am Anfang der Quellcodedatei finden. Die folgende Liste 427 am Anfang der Quellcodedatei finden. Die folgende Liste
424 ist grob zeitlich geordnet und nach Abstammung gruppiert: 428 ist grob zeitlich geordnet und nach Abstammung gruppiert:
425 429
426 430
431 CB Unix cut out selected fields of each line of a file
427 System III cut out selected fields of each line of a file 432 System III cut out selected fields of each line of a file
428 System III (src) cut and paste columns of a table (projection of a relation) 433 System III (src) cut and paste columns of a table (projection of a relation)
429 System V cut out selected fields of each line of a file 434 System V cut out selected fields of each line of a file
430 HP-UX cut out (extract) selected fields of each line of a file 435 HP-UX cut out (extract) selected fields of each line of a file
431 436