Commit ffda730
Changed files (2)
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)
doc/paper.md
@@ -3,68 +3,40 @@
Research Project
-In Part 2, you will investigate technical problems of operating systems,
-and provide a written report.
-Your research should focus on an in-depth topic about theories, algorithms,
-approaches, mechanisms, or implementation of one of the following fields of
-operating systems:
+Your research should focus on an in-depth topic about:
+
+* theories
+* algorithms
+* approaches
+* mechanisms
+* implementation of one of the following fields of operating systems:
```plaintext
- process management
- process and thread
- CPU scheduling
- synchronization
- deadlock handling
- storage management
- main memory
- virtual memory
- file systems
- mass-storage and I/O
- protection and security
- distributed, real-time, and multimedia systems
+process management
+ process and thread
+ CPU scheduling
+ synchronization
+ deadlock handling
+storage management
+ main memory
+ virtual memory
+ file systems
+ mass-storage and I/O
+protection and security
+distributed, real-time, and multimedia systems
```
-Your topic could come from a sub-problem of cutting-edge research problems
-discussed in the literature (i.e., investigating a technical problem).
-
-If you have trouble deciding what topic to work on, contact your tutor, who can
-advise you on the suitability of the topic and/or suggest modifications.
-Note that topic selection is part of your assignment requirements for this
-project, so you cannot rely on your tutor to assign a topic.
-
-To ensure that your topic has adequate depth and coverage, you MUST write a
-one-page proposal that outlines your area of interest and associated references
-you will use.
-Send it to your tutor for consideration before you begin your project work,
-preferably allowing at least two weeks for consultation.
-
-In your paper (expectations outlined below), make sure you highlight your work
-and outcomes in your own words.
You must also properly cite any viewpoints, methods, algorithms, data, results,
figures, tables, etc. that you borrow from other papers or contributors that you
discuss or include in your paper/report.
-All references cited should be published, or at least be publicly available,
-stable, and accessible online (referenced in APA or IEEE Style).
-Using the work of others without proper credit in your paper/report may lead to
-a form of plagiarism, which is not tolerated in AU courses.
-Please review the Student Academic Misconduct Policy for more details.
-### Research Paper
-
-Your investigation will be based on recent publications (i.e., published in the
-past five years) such as journal/conference papers and technical documents, and
-the applicable software packages (open source preferred). You are encouraged to
-read some papers about new techniques in operating systems. You can access the
-following resources via the ACM Digital Library and IEEE/IEE Electronic Library
-databases in the Athabasca University Library.
+All references cited should be published referenced in APA or IEEE Style.
-SOSP: ACM Symposium on Operating Systems Principles (ACM) ACM SIGOPS Operating
-Systems Review (ACM) ACM Transactions on Computer Systems (ACM) IEEE
-Transactions on Computers (IEEE) ACM Computing Surveys (ACM) Communications of
-the ACM (ACM) IEEE Computer. . . (IEEE) Linux Journal (ACM)
+### Research Paper
Once you have chosen your topic, you need to identify meaningful, feasible
outcomes for your research on the topic.
+
Overall, the outcomes should interest and benefit the professional community of
operating system research and development.
@@ -76,10 +48,7 @@ Some possible outcomes:
* meaningful implementation plans.
* insight on future directions.
-Present the outcomes of your research in a 10-15 page paper written in a journal
-or conference paper format.
-References should be cited using APA or IEEE Style.
-Your paper should include the following sections:
+# Template
* Title
* Abstract: no more than 300 words.