summaryrefslogtreecommitdiff
path: root/doc/example-paper.md
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2021-07-25 13:13:32 -0600
committermo khan <mo@mokhan.ca>2021-07-25 13:13:32 -0600
commitffda730d6f684c5b9b3e197839a5b68bc3d61365 (patch)
treeec343030b3b69541da93a7ea92d8fcac5828f42f /doc/example-paper.md
parentaac0437e4df8f39a11546562cb908e3f6f801f4c (diff)
add an example paper for inspiration
Diffstat (limited to 'doc/example-paper.md')
-rw-r--r--doc/example-paper.md200
1 files changed, 200 insertions, 0 deletions
diff --git a/doc/example-paper.md b/doc/example-paper.md
new file mode 100644
index 0000000..881c340
--- /dev/null
+++ b/doc/example-paper.md
@@ -0,0 +1,200 @@
+# [The History of the Unix Operating System](https://www.inf.fu-berlin.de/lehre/SS01/hc/minicomp/)
+
+## 0. Abstract
+
+This paper gives an introduction to the computer architecture commonly referred
+to as "minicomputers" that was the state of the art in the 1970s. Starting with
+an overview of relevant events prior and during this time period, this paper
+presents both the hardware and software that was used to run these machines. It
+takes the DEC PDP-11 computer as an example to illustrate some of these
+principles.
+
+
+## 1. Introduction
+
+In order to properly understand the relative importance of minicomputers, one
+has to place them in their historical context. Relevant events start taking
+place well before the first minicomputer was built:
+
+* 1961: MIC acquires first DEC PDP-1 (for the TMRC - Tech Model Railroad Club)
+* 1964: IBM enters the computing arena by announcing the System/360 series.
+* 1965: DEC PDP-8 is the first commercial minicomputer and costs $20,000 USD.
+* 1967: DEC PDP-10 is unveiled.
+* 1969: ARPAnet is started and runs mostly on DEC PDPs.
+* 1971: Intel announces the 404 microprocessor.
+* 1973: Unix operating system is first presented to the public.
+* 1975: The term "Personal Computer" is coined.
+* 1977: Apple Computer Corp. is founded
+* 1978: C programming language is announced while DEC releases the VAX-11.
+
+Obviously, the pace of technical progress was quickening as compared to the era
+of the mainframe computers. A computer is no longer a unique piece, but they are
+rather manufactured on an industrial scale. Of course, this reduces the
+production cost for each single object and hence the prices drop. Also, several
+computer types produced over a certain period of time differ only slightly in
+their architectural design. It was IBM who - unlike DEC - first realized the
+importance of this concept of compatibility and made sure that all systems
+released in the future would be backward-compatible to their System/360
+platform.
+
+During the 1970s, there were a few focal places at which important developments
+took place: As already mentioned, the MIT AI Lab was amongst the first to use a
+DEC PDP system and contributed research, especially their ITS (Incompatible
+Time-sharing system) operating system. With them were SAIL (Stanford AI Lab) and
+Xerox PARC (Palo Alto Research Center) who were concentrated on user interface
+issues.
+
+## 2. Hardware
+
+Computer hardware tends to come in generations that are linked to underlying
+technology used to build the respective hardware. The table below gives an
+overview of the predominant technologies in each time period.
+
+* 1950-59: Vacuum tubes
+* 1960-68: Transistors
+* 1969-77: Integrated circuits
+* 1978-today: LSI (large scale integrated) circuits, later VSLI (very LSI)
+ circuits
+
+Minicomputers were built based on integrated circuits (ICs), so-called "chips".
+This technology of constructing logical gates was invented independently by both
+Jack Kilby and Robert Noyce in late 1950s. They imprinted circuit networks on
+isolating material and used semiconductor material, such as silicum or
+germanium, to take care of the actual logical operations. The advantages of
+integrated circuits compared to transistors were significant: They were not only
+smaller and faster, but also more reliable and consumed less power. Furthermore,
+it was now possible to automate the production of these new chips, which made
+them more widely available at a considerable lower price.
+
+> "I didn't envision we'd be able to get as many parts on a chip as we finally
+> got" - J. Preper Eckert, co-inventor of the ENIAC
+
+In fact, in 1964 Gordon Moor, who worked as semiconductor engineer by then and
+went on to co-found Intel four years later, observed that the complexity of
+integrated circuits doubles every year (Moore's Law). This bold statement held
+until the late 1970s, at which point the development speed slowed down to double
+complexity every 18 months.
+
+## 3. Minicomputer architecture: The DEC PDP-11
+
+Digital Equipment Corporation - DEC for short - was the leader in the market of
+minicomputers, both financially and technologically speaking. Their most
+successful line of products was the PDP series, PDP standing for Programmed Data
+Processor. As already mentioned, these computers were relatively cheap with
+prices ranging in the ten-thousands of dollars, this face making them quite
+popular amongst universities.
+
+Furthermore, they introduced interactive computing, meaning that for the first
+time the user was given a direct feedback while doing their work. Up until then,
+programs, were usually entered on punch cards and the result of the computation
+was eventually out on other punch cards. The minicomputers used the line printer
+and later introduced the cathode-ray-tube (CRT) or monitor as a way of giving
+quick feedback to the user. As multiple terminals (combinations of input and
+output devices) were attached to the same main unit, a need arose to handle the
+input, output and processing of all the terminals simultaneously. This is why
+minicomputers, such as the PDP-11, came equipped with a time-sharing operating
+system capable of handling multiple tasks at the same time.
+
+The DEC PDP-11 was the successor of the PDP-10 and the predecessor of the
+VAX-11. Just as the PDP-10 it was delivered with the TOPS-10 (Time-sharing OS)
+and the MACRO-10 assembler. At MIT, their own operating system called ITS
+(Incompatible Time-sharing System) was developed.
+
+The main hardware features of the PDP-11 were:
+
+* 8 general-purpose registers labeled R0-R7, with R7 also being used as the
+ program counter
+* 64K memory with a 16 bit address
+* fixed-point integers in two's complement notation both 8 bit (1 byte) and 16
+ bit (1 word) long
+* floating-point numbers both 32 and 64 bit long
+* external UNIBUS for bi-directional, asynchronous data communications between
+ devices.
+
+Because of the UNIBUS architecture, it was possible to build the components of
+the PDP-11 in a modular way. This had the additional benefit that the system
+could be refitted with numerous extensions, thus enhancing its overall
+capabilities. Below is a list of some of the available extensions:
+
+* Extended Arithmetic Element (EAE) for fixed-point multiple, divide and shift
+* Extended Instruction SET (EIS) enhancing the CPU to perform the operations
+ above using general purpose registers
+* Floating Point Processor (FPP) operating on six associated registers
+* Floating Instruction Set (FIS) using a stack architecture for floating-point
+ operations
+* FASTBUS and high-speed memory connects a high-speed memory between CPU and
+ UNIBUS
+* Cache memory interposed between CPU and main memory.
+* Memory management extending the physical address space.
+* MASSBUS for high-speed Input/Output.
+
+## 4. Software
+
+The most important single piece of software that ran on those machines was, of
+course, the operating system. Up until the early 1970s operating systems were
+written in machine specific, tight assembler code. This was considered necessary
+because only by hand-coding the innermost loops it was possible to achieve the
+optimal performance of the machine. The drawback of this approach obviously was
+that the code could not be reused, if another architecture differed in just the
+slightest way. While IBM did quite a good job at keeping things compatible, DEC
+wasn't very concerned about this issue. In fact, even within the PDP series the
+machine designs were quite different, for example the length of a word in memory
+would vary between 7 and 16 bits as time went on.
+
+In 1969 Bell Labs started work on a new kind of operating system which was
+supposed to be called "Multics". Partly based on MIT's ITS, the main goal was
+to hide the complexity of the computer from programmers as well as users.
+However, this project was canceled due to disagreements between Bell Labs and
+their associates.
+
+Fortunately, Ken Thompson, who was in the team that first worked on Multics,
+implemented parts of the project and some of his own ideas on a salvaged PDP-7
+using the B programming language. He calls the resulting system "Unix". Roughly
+at the same time Dennis M. Ritchie develops the C programming language which has
+some of its roots in B that was used to first implement Unix. During the time
+from 1972 to 1974 Ken Thompson reimplements Unix in C constantly improving the
+system. A first version of Unix is presented at a symposium on operating system
+principles at Purdue University in 1973.
+
+The Unix operating system and the C programming language broke with the old
+principle of system level programming which was supposed to only be done in
+assembler. This new approach, while not achieving the same performance
+initially, had another huge advantage: Once the C compiler had been modified to
+produce machine code for a new architecture, all programs written until then
+could easily be recompiled and would run on the new platform without major
+problems. This was impossible to do with assembly code.
+
+The concept of making software portable between different platforms eliminated
+the need to start working from scratch again for each new architecture. Unix,
+being the first portable operating system, was immensely successful and already
+by 1975 it ran on several different platforms including IBM System/370,
+Honeywell 6000 and Interdata 8/32. Also, it was now possible to easily port
+common tools to all platforms. Taken together with the standardized interface of
+system calls through which Unix gives access to the machine, these two factors
+contributed considerable to making programming much easier than it was ever
+before.
+
+## 5. Conclusion
+
+The world of computers has dramatically changed during the 1970s. Starting off
+in the world of mainframes of the 1950s and 1960s, only 10 years later not only
+the hardware has changed considerably, also some new concepts have rendered old
+assumption obsolete: It now is important that systems are compatible to each
+other, interactivity is a prerequisite, and as far as software is concerned
+portability is the new way to go.
+
+Yet the 1970s should be considered just a transitional phase. As the technology
+advances even more rapidly, it becomes obvious that soon enough new ideas will
+be challenging these assumptions once again. The PC desktop revolution is just
+around the corner.
+
+## 6. Bibliography
+
+* Richard E. Eckhouse, L. Robert Morris - Minicomputer Systems: Organization,
+ Programming and Applications (PDP-11). (2nd ed.) Prentice Hall (1979)
+* Brian W. Kernighan, Dennis M. Ritchie - The C Programming Language. (2nd ed.)
+ Prentice Hall (1988)
+* David A. Paterson, John L. Hennessy - Computer Organization & Design. (2nd
+ ed.) Morgan Kaufmann (1988)
+* Raymond, Eric S. - A Brief History of Hackerdom. http://tuxedo.org/jargon/ (1998)
+* Raymond, Eric S. - The Jargon File. http://tuxedo.org/jargon/ (2001)