Misplaced Pages

Brian Kernighan

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

Brian Wilson Kernighan ( / ˈ k ɜːr n ɪ h æ n / ; born January 30, 1942) is a Canadian computer scientist . He worked at Bell Labs and contributed to the development of Unix alongside Unix creators Ken Thompson and Dennis Ritchie . Kernighan's name became widely known through co-authorship of the first book on the C programming language ( The C Programming Language ) with Dennis Ritchie. Kernighan affirmed that he had no part in the design of the C language ("it's entirely Dennis Ritchie's work").

#548451

73-453: Kernighan authored many Unix programs, including ditroff . He is coauthor of the AWK and AMPL programming languages . The "K" of K&R C and of AWK both stand for "Kernighan". In collaboration with Shen Lin he devised well-known heuristics for two NP-complete optimization problems: graph partitioning and the travelling salesman problem . In a display of authorial equity, the former

146-492: A domain-specific language for describing the picture. In addition, there is a command soelim that removes .so inclusion directives from the input text. A typical structure of the pipeline might be: soelim file | refer | ideal | pic | tbl | eqn | troff Yet more preprocessors allow the drawing of more complex pictures by generating output for pic . Several other front-ends have been developed that are intended to be friendlier interfaces to troff. One of them

219-429: A time-sharing configuration, as well as portability. Unix systems are characterized by various concepts: the use of plain text for storing data; a hierarchical file system ; treating devices and certain types of inter-process communication (IPC) as files; and the use of a large number of software tools , small programs that can be strung together through a command-line interpreter using pipes , as opposed to using

292-484: A time-sharing operating system for the GE 645 mainframe computer. Multics featured several innovations , but also presented severe problems. Frustrated by the size and complexity of Multics, but not by its goals, individual researchers at Bell Labs started withdrawing from the project. The last to leave were Ken Thompson , Dennis Ritchie , Douglas McIlroy , and Joe Ossanna , who decided to reimplement their experiences in

365-519: A 1999 interview, Dennis Ritchie voiced his opinion that Linux and BSD Unix operating systems are a continuation of the basis of the Unix design and are derivatives of Unix: I think the Linux phenomenon is quite delightful, because it draws so strongly on the basis that Unix provided. Linux seems to be among the healthiest of the direct Unix derivatives, though there are also the various BSD systems as well as

438-460: A convenient platform for programmers developing software to be run on it and on other systems, rather than for non-programmers. The system grew larger as the operating system started spreading in academic circles, and as users added their own tools to the system and shared them with colleagues. At first, Unix was not designed to support multi-tasking or to be portable . Later, Unix gradually gained multi-tasking and multi-user capabilities in

511-527: A doctoral dissertation titled "Some graph partitioning problems related to program segmentation" under the supervision of Peter G. Weiner. Kernighan has held a professorship in the department of computer science at Princeton since 2000. Each fall he teaches a course called "Computers in Our World", which introduces the fundamentals of computing to non-majors. Kernighan was the software editor for Prentice Hall International . His "Software Tools" series spread

584-597: A document-formatting system for the Bell Labs patents department. This first formatting program was a reimplementation of McIllroy's roff , written by Joe F. Ossanna . When they needed a more flexible language, a new version of roff called nroff ( newer "roff" ) was written, which provided the basis for all future versions. When they got a Graphic Systems CAT phototypesetter , Ossanna modified nroff to support multiple fonts and proportional spacing . Dubbed troff , for typesetter roff , its sophisticated output amazed

657-405: A new project of smaller scale. This new operating system was initially without organizational backing, and also without a name. The new operating system was a single-tasking system. In 1970, the group coined the name Unics for Uniplexed Information and Computing Service as a pun on Multics , which stood for Multiplexed Information and Computer Services . Brian Kernighan takes credit for

730-533: A page, even overlapping them, and has a fully programmable input language. Separate preprocessors are used for more convenient production of tables, diagrams, and mathematics. Inputs to troff are plain text files that can be created by any text editor. Extensive macro packages have been created for various document styles. A typical distribution of troff includes the me macros for formatting research papers, man and mdoc macros for creating Unix man pages , mv macros for creating mountable transparencies , and

803-490: A pipe. CADiZ also contains its own set of macros, called .ZA through .ZZ . Unix Early research and development: Merging the networks and creating the Internet: Commercialization, privatization, broader access leads to the modern Internet: Examples of Internet services: Unix ( / ˈ j uː n ɪ k s / , YOO -niks ; trademarked as UNIX )

SECTION 10

#1732790636549

876-512: A potential universal operating system, suitable for computers of all sizes. The Unix environment and the client–server program model were essential elements in the development of the Internet and the reshaping of computing as centered in networks rather than in individual computers. Both Unix and the C programming language were developed by AT&T and distributed to government and academic institutions, which led to both being ported to

949-462: A priority. Ossanna died before this task was completed, so Brian Kernighan took on the task of rewriting troff . The newly rewritten version produced a device-independent code which was very easy for post-processors to read and translate to the appropriate printer codes. Also, this new version of troff (often called ditroff for device independent troff ) had several extensions, which included drawing functions. The program's documentation defines

1022-420: A reference directory layout for Unix-like operating systems; it has mainly been used in Linux. The Unix system is composed of several components that were originally packaged together. By including the development environment, libraries, documents and the portable, modifiable source code for all of these components, in addition to the kernel of an operating system, Unix was a self-contained software system. This

1095-504: A representation like Un*x , *NIX , or *N?X is used to indicate all operating systems similar to Unix. This comes from the use of the asterisk ( * ) and the question mark characters as wildcard indicators in many utilities. This notation is also used to describe other Unix-like systems that have not met the requirements for UNIX branding from the Open Group. The Open Group requests that UNIX always be used as an adjective followed by

1168-449: A set of cultural norms for developing software, norms which became as important and influential as the technology of Unix itself; this has been termed the Unix philosophy . The TCP/IP networking protocols were quickly implemented on the Unix versions widely used on relatively inexpensive computers, which contributed to the Internet explosion of worldwide, real-time connectivity and formed

1241-487: A single monolithic program that includes all of the same functionality. These concepts are collectively known as the " Unix philosophy ". Brian Kernighan and Rob Pike summarize this in The Unix Programming Environment as "the idea that the power of a system comes more from the relationships among programs than from the programs themselves". By the early 1980s, users began seeing Unix as

1314-544: A single nine-track magnetic tape , earning its reputation as a portable system. The printed documentation, typeset from the online sources, was contained in two volumes. The names and filesystem locations of the Unix components have changed substantially across the history of the system. Nonetheless, the V7 implementation has the canonical early structure: The Unix system had a significant impact on other operating systems. It achieved its reputation by its interactivity, by providing

1387-479: A uniform interface, but at the expense of occasionally requiring additional mechanisms such as ioctl and mode flags to access features of the hardware that did not fit the simple "stream of bytes" model. The Plan 9 operating system pushed this model even further and eliminated the need for additional mechanisms. Unix also popularized the hierarchical file system with arbitrarily nested subdirectories, originally introduced by Multics. Other common operating systems of

1460-508: A versatile document preparation system, and an efficient file system featuring sophisticated access control, mountable and de-mountable volumes, and a unified treatment of peripherals as special files ." The latter permitted the Network Control Program (NCP) to be integrated within the Unix file system, treating network connections as special files that could be accessed through standard Unix I/O calls , which included

1533-402: A wider variety of machine families than any other operating system. The Unix operating system consists of many libraries and utilities along with the master control program, the kernel . The kernel provides services to start and stop programs, handles the file system and other common "low-level" tasks that most programs share, and schedules access to avoid conflicts when programs try to access

SECTION 20

#1732790636549

1606-521: Is Sanscribe , originally developed at Berkeley and then enhanced during the 1980s by several users including Intel and InterACT . Used for writing memos, reports, documents, Sanscribe is built upon basic troff commands as well as the me macros and various pre- and post-processors such as soelim, eqn, tbl, grap, and pic. However it is a main program binary, not a preprocessor. The conditional inclusion capability renders it especially useful for maintaining multi-platform reference manuals. However, Sanscribe

1679-767: Is a family of multitasking , multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson , Dennis Ritchie , and others. Initially intended for use inside the Bell System , AT&T licensed Unix to outside parties in the late 1970s, leading to a variety of both academic and commercial Unix variants from vendors including University of California, Berkeley ( BSD ), Microsoft ( Xenix ), Sun Microsystems ( SunOS / Solaris ), HP / HPE ( HP-UX ), and IBM ( AIX ). Early versions of Unix ran on PDP-11 computers; Unix

1752-450: Is a sarcastic variant of the original "What You See Is What You Get" ( WYSIWYG ). Kernighan's term is used to indicate that WYSIWYG systems might throw away information in a document that could be useful in other contexts. In 1972, Kernighan described memory management in strings using "hello" and "world", in the B programming language , which became the iconic example we know today. Kernighan's original 1978 implementation of hello, world!

1825-409: Is fragile and prone to giving cryptic errors or producing weirdly formatted results. A special-purpose front-end is vgrind , which generates nicely formatted source program listings, with such features as putting comments in italics, keywords in bold, and function names highlighted in margins. It can run either as a filter or as a main program with its output being passed to troff. It has support for

1898-822: Is usually called the Kernighan–Lin algorithm , while the latter is known as the Lin–Kernighan heuristic . Kernighan has been a professor of computer science at Princeton University since 2000 and is the director of undergraduate studies in the department of computer science. In 2015, he co-authored the book The Go Programming Language . Kernighan was born in Toronto . He attended the University of Toronto between 1960 and 1964, earning his bachelor's degree in engineering physics . He received his Ph.D. in electrical engineering from Princeton University in 1969, completing

1971-782: The GNU Compiler Collection (and the rest of the GNU toolchain ), the GNU C library and the GNU Core Utilities  – have gone on to play central roles in other free Unix systems as well. Linux distributions , consisting of the Linux kernel and large collections of compatible software have become popular both with individual users and in business. Popular distributions include Red Hat Enterprise Linux , Fedora , SUSE Linux Enterprise , openSUSE , Debian , Ubuntu , Linux Mint , Slackware Linux , Arch Linux and Gentoo . A free derivative of BSD Unix, 386BSD ,

2044-586: The UNIX 98 or UNIX 03 trademarks today, after the operating system's vendor pays a substantial certification fee and annual trademark royalties to The Open Group. Systems that have been licensed to use the UNIX trademark include AIX , EulerOS , HP-UX , Inspur K-UX , IRIX , macOS , Solaris , Tru64 UNIX (formerly "Digital UNIX", or OSF/1 ), and z/OS . Notably, EulerOS and Inspur K-UX are Linux distributions certified as UNIX 03 compliant. Sometimes

2117-697: The Unix operating system. troff and the related nroff were both developed from the original roff . While nroff was intended to produce output on terminals and line printers, troff was intended to produce output on typesetting systems, specifically the Graphic Systems CAT that had been introduced in 1972. Both used the same underlying markup language and a single source file could normally be used by nroff or troff without change. troff features commands to designate fonts, spacing, paragraphs, margins, footnotes and more. Unlike many other text formatters, troff can position characters arbitrarily on

2190-447: The ms and mm macros for letters, books, technical memoranda, and reports. troff' s origins can be traced to a text-formatting program called RUNOFF , which was written by Jerome H. Saltzer for MIT 's CTSS operating system in the mid-1960s. (The name allegedly came from the phrase I'll run off a document .) Bob Morris ported it to the GE 635 architecture and called the program roff (an abbreviation of runoff ). It

2263-487: The Open Group Base Specification. In 1999, in an effort towards compatibility, several Unix system vendors agreed on SVR4's Executable and Linkable Format (ELF) as the standard for binary and object code files. The common format allows substantial binary compatibility among different Unix systems operating on the same CPU architecture. The Filesystem Hierarchy Standard was created to provide

Brian Kernighan - Misplaced Pages Continue

2336-491: The UNIX trademark to The Open Group , an industry consortium founded in 1996. The Open Group allows the use of the mark for certified operating systems that comply with the Single UNIX Specification (SUS). Unix-like operating systems have been relevant since the 1990s which function similarly to Unix: popular examples are GNU (including Linux ), FreeBSD and macOS . Unix was originally meant to be

2409-632: The added benefit of closing all connections on program exit, should the user neglect to do so. In order "to minimize the amount of code added to the basic Unix kernel ", much of the NCP code ran in a swappable user process, running only when needed. In October 1993, Novell , the company that owned the rights to the Unix System V source at the time, transferred the trademarks of Unix to the X/Open Company (now The Open Group ), and in 1995 sold

2482-448: The base filename with a leading m . The standard macro sets, with leading m are: The ms macros were the first of these, developed at AT&T, before they were supplanted by the mm macros. One goal of the mm macros was that they be usable by the typing pool at Bell Labs and, over time, this happened and the mm macros became a standard at Bell Labs. AT&T made the mm macros commercially available for System V Unix. In contrast,

2555-465: The basis for a widely implemented operating system interface standard (POSIX, see above). The C programming language soon spread beyond Unix, and is now ubiquitous in systems and applications programming. Early Unix developers were important in bringing the concepts of modularity and reusability into software engineering practice, spawning a "software tools" movement. Over time, the leading developers of Unix (and programs that ran on it) established

2628-435: The basis for implementations on many other platforms. The Unix policy of extensive on-line documentation and (for many years) ready access to all system source code raised programmer expectations, and contributed to the launch of the free software movement in 1983. In 1983, Richard Stallman announced the GNU (short for "GNU's Not Unix") project, an ambitious effort to create a free software Unix-like system—"free" in

2701-492: The command interpreter an ordinary user-level program, with additional commands provided as separate programs, was another Multics innovation popularized by Unix. The Unix shell used the same language for interactive commands as for scripting ( shell scripts  – there was no separate job control language like IBM's JCL ). Since the shell and OS commands were "just another program", the user could choose (or even write) their own shell. New commands could be added without changing

2774-572: The commands which were not applicable, e.g., font changes. Ossanna's troff was written in PDP-11 assembly language and produced output specifically for the CAT phototypesetter . He rewrote it in C , although it was now 7000 lines of uncommented code and still dependent on the CAT. As the CAT became less common, and was no longer supported by the manufacturer, the need to make it support other devices became

2847-479: The core of the Mac OS X operating system, later renamed macOS . Unix-like operating systems are widely used in modern servers , workstations , and mobile devices . In the late 1980s, an open operating system standardization effort now known as POSIX provided a common baseline for all operating systems; IEEE based POSIX around the common structure of the major competing variants of the Unix system, publishing

2920-465: The default formatter for the UNIX documentation . The software was reimplemented as groff for the GNU system beginning in 1990. In addition, due to the open sourcing of Ancient UNIX systems, as well as modern successors such as the ditroff-based open-sourced versions found on OpenSolaris and Plan 9 from Bell Labs , there are several versions of AT&T troff (CAT and ditroff-based ) available under various open-source licenses. In general, one

2993-546: The era had ways to divide a storage device into multiple directories or sections, but they had a fixed number of levels, often only one level. Several major proprietary operating systems eventually added recursive subdirectory capabilities also patterned after Multics. DEC's RSX-11M 's "group, user" hierarchy evolved into OpenVMS directories, CP/M 's volumes evolved into MS-DOS 2.0+ subdirectories, and HP's MPE group.account hierarchy and IBM's SSP and OS/400 library systems were folded into broader POSIX file systems. Making

Brian Kernighan - Misplaced Pages Continue

3066-455: The essence of "C/Unix thinking" with makeovers for BASIC , FORTRAN , and Pascal , and most notably his " Ratfor " (rational FORTRAN) was put in the public domain . He has said that if stranded on an island with only one programming language it would have to be C. Kernighan coined the term "Unix" and helped popularize Thompson's Unix philosophy . Kernighan is also known for coining the expression "What You See Is All You Get" (WYSIAYG), which

3139-679: The first POSIX standard in 1988. In the early 1990s, a separate but very similar effort was started by an industry consortium, the Common Open Software Environment (COSE) initiative, which eventually became the Single UNIX Specification (SUS) administered by The Open Group . Starting in 1998, the Open Group and IEEE started the Austin Group , to provide a common definition of POSIX and the Single UNIX Specification, which, by 2008, had become

3212-420: The idea, but adds that "no one can remember" the origin of the final spelling Unix . Dennis Ritchie, Doug McIlroy, and Peter G. Neumann also credit Kernighan. The operating system was originally written in assembly language , but in 1973, Version 4 Unix was rewritten in C . Version 4 Unix, however, still had much PDP-11 specific code, and was not suitable for porting. The first port to another platform

3285-544: The languages in use at Bell Labs facilities, including not just Fortran , C , and C++ but also domain-specific tools such as Bourne shell and yacc as well as those further afield such as Emacs Lisp and Icon . A different approach is employed by the CADiZ suite of tools for the Z notation . Rather than the cadiz program being a preprocessor in the front of the pipeline, it interacts multiple times with troff as both input and output, using saved files rather than

3358-476: The late 1970s and early 1980s, the influence of Unix in academic circles led to large-scale adoption of Unix ( BSD and System V ) by commercial startups, which in turn led to Unix fragmenting into multiple, similar — but often slightly and mutually incompatible — systems including DYNIX , HP-UX , SunOS / Solaris , AIX , and Xenix . In the late 1980s, AT&T Unix System Laboratories and Sun Microsystems developed System V Release 4 ( SVR4 ), which

3431-444: The me macros were developed at Berkeley. An example of a simple business letter prepared with the mm macros would be: A comprehensive list of macros available is usually listed in a tmac(5) manual page . As troff evolved, since there are several things which cannot be done easily in troff , several preprocessors were developed. These programs transform certain parts of a document into troff input, fitting naturally into

3504-428: The modular design of the Unix model, sharing components is relatively common: most or all Unix and Unix-like systems include at least some BSD code, while some include GNU utilities in their distributions. Linux and BSD Unix are increasingly filling market needs traditionally served by proprietary Unix operating systems, expanding into new markets such as the consumer desktop , mobile devices and embedded devices . In

3577-443: The more official offerings from the workstation and mainframe manufacturers. In the same interview, he states that he views both Unix and Linux as "the continuation of ideas that were started by Ken and me and many others, many years ago". OpenSolaris was the free software counterpart to Solaris developed by Sun Microsystems , which included a CDDL -licensed kernel and a primarily GNU userland. However, Oracle discontinued

3650-475: The operating system should provide a set of simple tools, each of which performs a limited, well-defined function. A unified and inode -based filesystem and an inter-process communication mechanism known as " pipes " serve as the main means of communication, and a shell scripting and command language (the Unix shell ) is used to combine the tools to perform complex workflows. In the early 1990s, AT&T sold its rights in Unix to Novell , which then sold

3723-503: The original version of Unix – the entire system was configured using textual shell command scripts. The common denominator in the I/O system was the byte – unlike "record-based" file systems . The focus on text for representing nearly everything made Unix pipes especially useful and encouraged the development of simple, general tools that could easily be combined to perform more complicated ad hoc tasks. The focus on text and bytes made

SECTION 50

#1732790636549

3796-434: The output format of ditroff , which is used by many modern troff clones like GNU groff . In 1983, troff was one of several UNIX tools available for Charles River Data Systems' UNOS operating system under Bell Laboratories license. The troff collection of tools (including pre - and post-processors) was eventually called Documenter's WorkBench (DWB), and was under continuous development in Bell Labs and later at

3869-541: The project upon their acquisition of Sun, which prompted a group of former Sun employees and members of the OpenSolaris community to fork OpenSolaris into the illumos kernel. As of 2014, illumos remains the only active, open-source System V derivative. In May 1975, RFC 681 described the development of Network Unix by the Center for Advanced Computation at the University of Illinois Urbana-Champaign . The Unix system

3942-591: The related business operations to Santa Cruz Operation (SCO). Whether Novell also sold the copyrights to the actual software was the subject of a federal lawsuit in 2006, SCO v. Novell , which Novell won. The case was appealed, but on August 30, 2011, the United States Court of Appeals for the Tenth Circuit affirmed the trial decisions, closing the case. Unix vendor SCO Group Inc. accused Novell of slander of title . The present owner of

4015-482: The same resource or device simultaneously. To mediate such access, the kernel has special rights, reflected in the distinction of kernel space from user space , the latter being a lower priority realm where most application programs operate. The origins of Unix date back to the mid-1960s when the Massachusetts Institute of Technology , Bell Labs , and General Electric were developing Multics ,

4088-535: The sense that everyone who received a copy would be free to use, study, modify, and redistribute it. The GNU project's own kernel development project, GNU Hurd , had not yet produced a working kernel, but in 1991 Linus Torvalds released the Linux kernel as free software under the GNU General Public License . In addition to their use in the GNU operating system, many GNU packages – such as

4161-427: The shell itself. Unix's innovative command-line syntax for creating modular chains of producer-consumer processes ( pipelines ) made a powerful programming paradigm ( coroutines ) widely available. Many later command-line interpreters have been inspired by the Unix shell. A fundamental simplifying assumption of Unix was its focus on newline - delimited text for nearly all file formats. There were no "binary" editors in

4234-654: The software at a nominal fee for educational use, by running on inexpensive hardware, and by being easy to adapt and move to different machines. Unix was originally written in assembly language , but was soon rewritten in C , a high-level programming language . Although this followed the lead of CTSS , Multics and Burroughs MCP , it was Unix that popularized the idea. Unix had a drastically simplified file model compared to many contemporary operating systems: treating all kinds of files as simple byte arrays. The file system hierarchy contained machine services and devices (such as printers , terminals , or disk drives ), providing

4307-422: The spin-off Unix System Laboratories (USL) through 1994. At that time, SoftQuad took over the maintenance, although Brian Kernighan continued to improve troff on his own. Thus, there are at least the following variants of the original Bell Labs troff in use: While troff has been supplanted by other programs such as Interleaf , FrameMaker , and LaTeX , it is still being used quite extensively. It remains

4380-418: The system far more scalable and portable than other systems. Over time, text-based applications have also proven popular in application areas, such as printing languages ( PostScript , ODF ), and at the application layer of the Internet protocols , e.g., FTP , SMTP , HTTP , SOAP , and SIP . Unix popularized a syntax for regular expressions that found widespread use. The Unix programming interface became

4453-459: The trademark UNIX is The Open Group, an industry standards consortium. Only systems fully compliant with and certified to the Single UNIX Specification qualify as "UNIX" (others are called " Unix-like "). By decree of The Open Group, the term "UNIX" refers more to a class of operating systems than to a specific implementation of an operating system; those operating systems which meet The Open Group's Single UNIX Specification should be able to bear

SECTION 60

#1732790636549

4526-438: The typesetter manufacturer and confused peer reviewers , who thought that manuscripts using troff had been published before. As such, the name troff is pronounced / ˈ t iː r ɒ f / rather than * / ˈ t r ɒ f / . With troff came nroff (they were actually almost the same program), which was for producing output for line printers and character terminals . It understood everything troff did, and ignored

4599-504: The use of "pipelines" in Unix — sending the output of one program as the input to another (see pipes and filters ). Typically, each preprocessor translates only sections of the input file that are specially marked, passing the rest of the file through unchanged. The embedded preprocessing instructions are written in a simple application-specific programming language, which provides a high degree of power and flexibility. Three preprocessors provide troff with drawing capabilities by defining

4672-536: Was a port of Version 6, made four years later (1977) at the University of Wollongong for the Interdata 7/32 , followed by a Bell Labs port of Version 7 to the Interdata 8/32 during 1977 and 1978. Bell Labs produced several versions of Unix that are collectively referred to as Research Unix . In 1975, the first source license for UNIX was sold to Donald B. Gillies at the University of Illinois Urbana–Champaign (UIUC) Department of Computer Science. During

4745-467: Was also elected a member of the American Academy of Arts and Sciences in 2019. In 2022, Kernighan stated that he was actively working on improvements to the AWK programming language , which he took part in creating in 1977. Troff troff ( / ˈ t iː r ɒ f / ), short for "typesetter roff", is the major component of a document processing system developed by Bell Labs for

4818-431: Was commonly used on minicomputers and mainframes from the 1970s onwards. It distinguished itself from its predecessors as the first portable operating system: almost the entire operating system is written in the C programming language , which allows Unix to operate on numerous platforms. Unix systems are characterized by a modular design that is sometimes called the " Unix philosophy ". According to this philosophy,

4891-421: Was not encouraged to use troff directly, but rather go through some easier-to-use interface. Troff includes macros that are run before starting to process the document. These macros include setting up page headers and footers, defining new commands, and influencing how the output will be formatted. The command-line argument for including a macro set is -m name , which has led to many macro sets being known as

4964-402: Was one of the key reasons it emerged as an important teaching and learning tool and has had a broad influence. See § Impact , below. The inclusion of these components did not make the system large – the original V7 UNIX distribution, consisting of copies of all of the compiled binaries plus all of the source code and documentation occupied less than 10 MB and arrived on

5037-573: Was released in 1992 and led to the NetBSD and FreeBSD projects. With the 1994 settlement of a lawsuit brought against the University of California and Berkeley Software Design Inc. ( USL v. BSDi ) by Unix System Laboratories , it was clarified that Berkeley had the right to distribute BSD Unix for free if it so desired. Since then, BSD Unix has been developed in several different product branches, including OpenBSD and DragonFly BSD . Because of

5110-543: Was rewritten as rf for the PDP-7 , and at the same time (1969), Doug McIlroy rewrote an extended and simplified version of roff in the BCPL programming language . The first version of Unix was developed on a PDP-7 which was sitting around Bell Labs . In 1971 the developers wanted to get a PDP-11 for further work on the operating system. In order to justify the cost for this system, they proposed that they would implement

5183-516: Was said to "present several interesting capabilities as an ARPANET mini-host". At the time, Unix required a license from Bell Telephone Laboratories that cost US$ 20,000 for non-university institutions, while universities could obtain a license for a nominal fee of $ 150. It was noted that Bell was "open to suggestions" for an ARPANET-wide license. The RFC specifically mentions that Unix "offers powerful local processing facilities in terms of user programs, several compilers , an editor based on QED ,

5256-641: Was sold at The Algorithm Auction , the world's first auction of computer algorithms . In 1996, Kernighan taught CS50 which is the Harvard University introductory course in computer science. Kernighan was an influence on David J. Malan who subsequently taught the course and scaled it up to run at multiple universities and in multiple digital formats. Kernighan was elected a member of the National Academy of Engineering in 2002 for contributions to software and to programming languages. He

5329-404: Was subsequently adopted by many commercial Unix vendors. In the 1990s, Unix and Unix-like systems grew in popularity and became the operating system of choice for over 90% of the world's top 500 fastest supercomputers , as BSD and Linux distributions were developed through collaboration by a worldwide network of programmers. In 2000, Apple released Darwin , also a Unix system, which became

#548451