Linux and the Unix Philosophy

1.2 Developing Unix

People marvel at the portability of Unix, but it wasn't always portable. Thompson originally coded it in assembly language. In 1972 he rewrote it in a portable language called B as it became evident that he might want to take advantage of new hardware as it became available. Another member of AT&T's staff at Bell Laboratories, Dennis Ritchie, made extensive modifications to B in 1973, evolving it into the C language loved and despised today by programmers the world over.

Again, Thompson had set a precedent that was later adopted by Unix developers: Someone whose back is against the wall often writes great programs. When an application must be written, and (1) it must be done to meet a practical need, (2) there aren't any "experts" around who would know how to write it, and (3) there is no time to do it "right," the odds are very good that an outstanding piece of software will be written. In Thompson's case, he needed an operating system written in a portable language because he had to move his programs from one hardware architecture to another. No selfdescribed portable operating system experts could be found. And he certainly didn't have time to do it "right."

Ken Thompson played a limited role in the development of the overall Unix philosophy, however. Although he made significant design contributions in the areas of file system structure, pipes, the I/O subsystem, and portability, much of the Unix philosophy came about as a result of many peoples' efforts. Each person who worked with Unix in its early days helped to shape it according to his or her area of expertise. The following lists some contributors and their primary contributions:

Contributors

Contributions

Alfred Aho

Text scanning, parsing, sorting

Eric Allman

Electronic mail

Kenneth Arnold

Screen updating

Stephen Bourne

Bourne shell command interpreter

Lorinda Cherry

Interactive calculator

Steven Feldman

Computer-aided software engineering

Stephen Johnson

Compiler design tools

William Joy

Text editing, C-like command language

Brian Kernighan

Regular expressions, programming principles, typesetting, computer-aided instruction

Michael Lesk

High-level text formatting, dial-up networking

John Mashey

Command interpreter

Robert Morris

Desk calculator

D. A. Nowitz

Dial-up networking

Joseph Ossanna

Text formatting language

Dennis Ritchie

C programming language

Larry Wall

Patch utility, Perl command language, rn network news reader

Peter Weinberger

Text scanning

Although the above individuals are the earliest and most recognizable participants in the Unix phenomenon, the people who developed the Unix approach to computing eventually numbered in the thousands. Virtually every published paper on a major Unix component lists more than a handful of contributors who helped make it happen. These contributors formed the Unix philosophy as it is understood and propagated today.

Категории