-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathhistory.tex
244 lines (230 loc) · 12.5 KB
/
history.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
include(`macros.m4')
\pdfbookmark[1]{UNIX history}{UNIX history}
\begin{slide}
\sltitle{Books on UNIX history}
\begin{itemize}
\item Peter Salus: \emsl{A Quarter Century of UNIX}, Addison-Wesley;
\nth{1}~edition (1994)
\item Libes D., Ressler, S.: \emsl{Life With Unix: A Guide for
Everyone}, Prentice Hall (1989)
\item \emsl{Open Sources: Voices from the Open Source Revolution},
chapter \emsl{Twenty Years of Berkeley Unix From AT\&T-Owned to
Freely Redistributable}; O'Reilly (1999); on:
\url{http://oreilly.com/openbook/opensources/book/index.html}
\item[\ldots] lots of material on this topic is online
\end{itemize}
\end{slide}
\begin{itemize}
\item The chapter on the BSD UNIX from \emph{Open Sources} written by Marshall
Kirk McKusick is excellent.
\end{itemize}
%%%%%
\begin{slide}
\sltitle{UNIX prehistory}
\begin{itemize}
\item 1925 -- \emsl{Bell Telephone Laboratories} -- research in
communication (e.g. 1947: transistor) within AT\&T
\item 1965 -- BTL s General Electric and MIT development OS \emsl{Multics}
(MULTIplexed Information and Computing System)
\item 1969 -- Bell Labs initiates a project, \emsl{Ken Thompson} writes
assembler, basic OS and file system for PDP-7
\item 1970 -- Multi-cs $\Rightarrow$ Uni-cs $\Rightarrow$ Uni-x
\item 1971 -- UNIX V1, and ported to PDP-11
\item December 1971 -- first edition of \emph{UNIX Programmer's Manual}
\end{itemize}
\end{slide}
\begin{itemize}
\item AT\&T = American Telephone and Telegraph Company
\item Multics was a system that significantly influenced the development of
operating systems. It includes many innovative ideas, some of which were not
always accepted positively. It greatly influenced UNIX, that adopted many ideas
and tried to fix the shortcomings. The main difference was mainly in that UNIX
was designed as simpler system.
\item After BTL left the Multics project, GE sold its computer division to
Honeywell including the Multics project, that was further developed under its
patronage (virtual memory, multiprocessors, \dots) till 1985.
The last Multics installation worked in the Canadian Department of National
Defense and the system was used actively for example during the Persian gulf
war. Definitive shutdown was made \nth{31} October 2000. More information can be
found on \url{http://www.multicians.org}.
\item Before the work on the development environment for PDP-7 started, Thmopson
wrote the \emph{Space Travel} program, that was developed in other environment
(Honeywell 635) and transferred on tape to PDP-7.
\item In overall there were 10 editions of this manual, corresponding to ten
UNIX versions developed in BTL.
\item UNIX V1 did not have the \texttt{pipe} syscall !!!
\item The version 1 manual can be found on
%\url{www.cs.bell-labs.com/who/dmr/1stEdman.html}.
\url{http://man.cat-v.org/unix-1st/}.
It is worth taking a look, especially how its structure influenced the
appearance of today's manual pages.
\item \emsl{Also note that UNIX is roughly 10 years older than DOS.}
\item The Multics system had 9 main goals, as described in the
\emph{Introduction and Overview of the Multics System} article from 1965.
Most interesting goal was probably a request for uninterrupted system run.
\item Multics was written in the PL/I (Programming Language \#1), therefore
earlier than UNIX was rewritten to C !
\item Multics gained as a first system the B2 security level in 1980.
For couple of years it was the only system with this security level.
\item GE was founded in 1892 by merging two companies, one of which was
Edison General Electric Company founded in 1879 by Thomas Alva Edison
(inventor of bulb, film camera, \dots); currently its subsidiaries cover many
areas, including the supply of one motor type for Airbus 380 or banking.
\item PDP = Programmed Data Processor. First type, \emph{PDP-1}, was sold for
\$120.000 in era, when other computers cost over one million. That was a
strategy of the DEC corporation -- the \emph{computer} term meant expensive
machine needing a hall and team of people to operate. That's why PDP was not
calling its machines computers but \emph{PDPs}.
\item PDP-11 is legendary machine of DEC corporation, gradually versions were
developed from PDP-1 to PDP-16, except PDP-2, PDP-13. There are some PDP-11
systems still running today and companies that manufacture spare parts.
\end{itemize}
%%%%%
\begin{slide}
\sltitle{UNIX history, continued}
\begin{itemize}
\item February 1973 -- UNIX V3 contained the \emph{cc} compiler (the C
language was created by \emsl{Dennis Ritchie} for UNIX)
\item October 1973 -- UNIX presented to the public in \emph{The
UNIX Timesharing System} article in ACM conference
\item November 1973 -- \emsl{UNIX V4 rewritten to C}
\item 1975 -- UNIX V6 was the first UNIX available outside of BTL
\item 1979 -- UNIX V7, for many ``the last true UNIX'', contained
\emph{uucp}, Bourne shell; kernel size was just 40KB !!!
\item 1979 -- UNIX V7 ported to 32-bit VAX-11
\item 1980 -- Microsoft introduces XENIX, based on UNIX~V7
\end{itemize}
\end{slide}
\begin{itemize}
\item ACM = Association for Computing Machinery, founded in 1947. UNIX was
presented by Ken Thompson and Dennis Ritchie.
\item \emsl{The act of rewriting UNIX to C was possibly the most important
moment in the history of this system} $\Rightarrow$ it was much easier to port
UNIX to different architectures.
\item The legendary book \emph{A commentary on the Unix
Operating System} by John Lions was based on version 6.
\item Microsoft did not sell XENIX directly, it was licensed to OEM companies
(Original Equipment Manufacturer) such as Intel, SCO a others. Other companies
then ported XENIX to 286 (Intel) and 386 (SCO, 1987). It is possible to find
interesting information on the web describing these times and then positive
attitude of Microsoft towards UNIX.
% find UNIX-v7/ -type f -name '*. wc -l {} \; | \
% awk 'BEGIN { cnt = 0; } { cnt += $1; } END { printf("lines: %d\n", cnt); }'
%lines: 188319
%find UNIX-v7/ -type f -name '*.[cshy]' | wc -l
% 1131
\item UNIX V7 had some 188k lines of source code in circa
1100 files (determined using \texttt{find}, \texttt{wc} and \texttt{awk}
across all files matching \texttt{*.[cshy]}).
\item If you are interested in UNIX history, see the ``u{}nix'' on Wikipedia and
you will find lots of content just by clicking through.
% http://minnie.tuhs.org/Seminars/Saving_Unix/sslides/ss-sslides.html
\item In 1973, UNIX was multiuser system (accounts with passwords) with
multiprocessing support and process protection and paging. It had signals,
pipes, hierarchical file system with mount points, file rights (user/group/other
r/w/x), hard links, devices accessible as files. The kernel was written in C
and its image occupied 26 Kilobytes in memory. For file operations there were
\texttt{open()}, \texttt{close()}, \texttt{read()},
\texttt{write()}, \texttt{seek()}, \texttt{pipe()} system calls.
For process manipulation there were \texttt{fork()}, \texttt{exec()},
\texttt{wait()}, \texttt{exit()}. In total there were 48 syscalls, out of which
35 exist till today.
\end{itemize}
%%%%%
\begin{slide}
\sltitle{UNIX divergence}
\begin{itemize}
\item mid 70's -- releasing UNIX to universities: mainly to \emsl{University
of California v Berkeley}
\item 1979 -- \emsl{BSD Unix (Berkeley Software Distribution)} is being
developed from UNIX/32V (the mentioned port to VAX) provided to Berkeley.
version 3.0; last version 4.4 in 1993
\item 1982 \emsl{AT\&T}, owner of BTL, can enter the computer marked
(forbidden till 1956) and comes with version \emph{System III} (1982)
till \emph{V.4} (1988) -- so called \emph{SVR4}
\item UNIX International, OSF (Open Software Foundation),
X/OPEN, \dots are conceived
\item 1991 -- Linus Torvalds begun OS Linux development, kernel version 1.0 was
finished in 1994
\end{itemize}
\end{slide}
\begin{itemize}
\item UNIX is universal operating system working on multitude of computers from
embedded and mobile systems (Linux), through personal computers till servers
and supercomputers.
\item UNIX V3 = \emph{UNIX version 3}, UNIX V.4 = \emph{system 5 release 4}
etc., e.g. UNIX V3 != SVR3.
\item UNIX System III is therefore not UNIX V3; in those days (late 70's) there
were multiple groups in BTL that contributed to the UNIX development.
The ifdef([[[NOSPELLCHECK]]], [[[``Vx'']]]) versions were developed in
\emph{Computer Research Group}, other groups were \emph{Unix System Group}
(USG), \emph{Programmer's WorkBench} (PWB).
Another branch of UNIX was Columbus UNIX also in BT. The System III version is
based on these early versions.
\item UNIX has forked into two main branches: AT\&T and BSD, individual
manufacturers were coming with their own modifications.
\emsl{Individual clones adopted features from each other.}
% find SysV-R4.0/ -type f -name '*.[cshy]' | wc -l
% 5714
%find SysV-R4.0/ -type f -name '*.[cshy]' -exec wc -l {} \; | ~/bin/sum.awk
%lines: 1500713
\item System V R4 has circa 1.5 million lines of code
in circa 5700 files (determined using \texttt{find}, \texttt{wc} and
\texttt{awk} across files names matching \texttt{*.[cshy]}).
\item Berkeley university was granted UNIX license as one of the first in
1974. During several years students (one of which was Bill Joy, later
founder of Sun Microsystems and the author of C-shell) created SW package
\emph{Berkeley Software Distribution} (BSD) and were selling it in 1978 for
\$50. These early BSD versions contained just SW and utilities (first version:
Pascal compiler, the \emph{ex} editor), not the system or its changes.
That came with the 3BSD version. The 4BSD version was conceived in 1980 already
as a project financed by the DARPA agency and led by Bill Joy. It suffered
problems with insufficient performance and the tuned 4.1BSD came into existence
in 1981 as a result.
\item 4.1BSD should have been originally 5BSD, however after AT\&T raised
concerns that its customer could confuse 5BSD with System~V, BSD transitioned to
the 4.x BSD versioning scheme. It was common that rather write its own code, the
Berkeley developers looked around first for what is already done. In this way
BSD took virtual memory from Mach or NFS-compatible code developed on one
Canadian university.
%\item (1988) 4.3BSD-Tahoe had already the kernel code split into architecture
%dependent and independent.
%\item (1989) \emph{Networking Release 1}, first freely distributable code from
%Berkeley containing networking code from Tahoe, not dependent on the AT\&T
%licensing policy. The Berkeley licensing policy was very liberal compared to
%the one of AT\&T.
\item The hardware manufacturers were shipping UNIX variants for their own
computers and commercialization made the situation worse w.r.t.
diversification of this system.
\item In the 80's the first effort for standardization came into existence.
Standard specifies how the system should behave externally (for user, programmer
and administrator), it is not dealing with implementation. The goal is
portability of applications and users. All systems remotely looked like UNIX
however upon closer look there were different in many important properties.
For example System~V and BSD differed in filesystem, network architecture and
virtual memory architecture.
\item When in 1987 the AT\&T and Sun Microsystems companies (whose then SunOS
was based on BSD) joined their effort to develop single system that would
contain the best of each, next to enthusiastic responses it also prompted fear
between many other unix system manufacturers that were afraid that it would mean
great business advantage for both companies. So came the Open Software
Foundation into existence (do not confuse with FSF) and founding members were
between others Hewlett-Packard, IBM a Digital. This system OSF/1 that arose from
this partnership was not very successful and it was shipped only by Digital that
renamed it to Digital UNIX. It is interesting to note that the system was based
on the Mach microkernel. After the acquisition of Digital by Compaq it was
renamed to Tru64 and supported by Hewlett-Packard, that was merged with
Compaq in 2002. In the mean time AT\&T and Sun responded by founding UNIX
International. This period of 80's and 90's is called \emsl{Unix Wars} -- the
fight over what will be the ``standard unix''.
\item OSF and UI became great rivals however they were soon met by unexpected
opponent -- Microsoft.
\item (1992) 386BSD founded on \emph{Networking Release 2}; Bill Jolitz
created 6 missing files and put together functional BSD system for i386.
This system was a based for \emph{NetBSD} and \emph{FreeBSD} (and others
patterned on these systems).
\item (1995) 4.4BSD-Lite Release 2, after which CSRG was disbanded. It piloted
the development of BSD branch for almost 20 years. More can be found in the BSD
chapter mentioned above.
\end{itemize}
\endinput