Abstract
The author looks back on the first half century of operating systems and selects his favorite papers on classic operating systems. These papers span the entire history of the field from the batch processing systems of the 1950s to the distributed systems of the 1990s. Each paper describes an operating system that combines significant ideas in an elegant way. Most of them were written by the pioneers who had the visions and the drive to make them work. The author summarizes each paper and concludes that operating systems are based on a surprisingly small number of ideas of permanent interest.
P. Brinch Hansen, The evolution of operating systems. In Classic Operating Systems: From Batch Processing to Distributed Systems, P. Brinch Hansen, Ed.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
A. V. Aho 1984. Foreword. Bell Laboratories Technical Journal63, 8, Part 2 (October), 1573–1576.
R. S. Barton 1961. A new approach to the functional design of a digital computer. Joint Computer Conference19, 393–396.
H. Bratman and I. V. Boldt, Jr. 1959. The SHARE 709 system: supervisory control. Journal of the ACM6, 2 (April), 152–155.
P. Brinch Hansen 1968. The Structure of the RC 4000 Monitor. Regnecentralen, Copenhagen, Denmark (February).
P. Brinch Hansen 1969. RC 4000 Software: Multiprogramming System. Regnecen-tralen, Copenhagen, Denmark, (April). Article 12.
P. Brinch Hansen 1970. The nucleus of a multiprogramming system. Communications of the ACM13, 4 (April), 238–241, 250.
P. Brinch Hansen 1973. Operating System Principles. Prentice-Hall, Englewood Cliffs, NJ.
P. Brinch Hansen 1975. The programming language Concurrent Pascal. IEEE Transactions on Software Engineering1, 2 (June), 199–207.
P. Brinch Hansen, 1976a. The Solo operating system: a Concurrent Pascal program. Software—Practice and Experience 6, 2 (April-June), 141–149. Article15.
P. Brinch Hansen, 1976b. The Solo operating system: processes, monitors and classes. Software—Practice and Experience6, 2 (April-June), 165–200. Article 16.
P. Brinch Hansen 1978. Distributed Processes: a concurrent programming concept. Communications of the ACM21, 11 (November), 934–941.
P. Brinch Hansen 1979. A keynote address on concurrent programming. Computer12, 5 (May), 50–56.
P. Brinch Hansen 1982. Programming a Personal Computer. Prentice-Hall, Engle-wood Cliffs, NJ.
P. Brinch Hansen 1993. Monitors and Concurrent Pascal: a personal history. SIG-PLAN Notices28, 3 (March), 1–35.
P. Brinch Hansen 1999. Java’s insecure parallelism. SIGPLAN Notices34, 4 (April), 38–45.
C. Bron 1972. Allocation of virtual store in the THE multiprogramming system. In Operating Systems Techniques, C. A. R. Hoare and R. H. Perrott Eds., Academic Press, New York, 168–184.
F. P. Brooks, Jr. 1975. The Mythical Man-Month: Essays on Soßware Engineering. Addison-Wesley, Reading, MA.
D. R. Brownbridge, L. F. Marshall and B. Randell 1982. The Newcastle Connection or Unixes of the World Unite! Software—Practice and Experience12, 12 (December), 1147–1162. Article 23.
D. Burns, E. N. Hawkins, D. R. Judd and J. L. Venn 1966. The Egdon system for the KDF9. The Computer Journal8, 4 (January), 297–302. Article 6.
F. J. Corbató, M. Merwin-Daggett and R. C. Daley 1962. An experimental timesharing system. Spring Joint Computer Conference21, 335–344.
F. J. Corbató and V. A. Vyssotsky 1965. Introduction and overview of the Multics system. Fall Joint Computer Conference27, 185–196.
P. A. Crisman Ed. 1965. The Compatible Time-Sharing System: A Programmer’s Guide. Second Edition, The MIT Press, Cambridge, MA.
R. C. Daley and P. G. Neumann 1965. A general-purpose file system for secondary storage. Fall Joint Computer Conference27, 213–229. Article 8.
J. B. Dennis and E. C. van Horn 1966. Programming semantics for multipro-grammed computations. Communications of the ACM9, 3 (March), 143–155.
E. W. Dijkstra 1968a. The structure of the THE multiprogramming system. Com-munications of the ACM11, 5 (May), 341–346. Article 11.
E. W. Dijkstra 1968b. Cooperating sequential processes. In Programming Languages, F. Genuys Ed., Academic Press, New York, 43–112.
E. W. Dijkstra 1971. Hierarchical ordering of sequential processes. Acta Informatica1, 2, 115–138.
D. C. Englebart and W. K. English 1968. A research center for augmenting human intellect. Fall Joint Computer Conference33, 395–410.
A. G. Fraser 1972. File integrity in a disc-based multi-access system. In Operating Systems Techniques, C. A. R. Hoare and R. H. Perrott Eds., Academic Press, New York, 227–248. Article 9.
J. Gosling, B. Joy and G. Steele 1996. The Java Language Specification.Addison-Wesley, Reading, MA.
A. N. Habermann 1967. On the harmonious cooperation of abstract machines. Ph.D. thesis. Technological University, Eindhoven, The Netherlands.
G. H. Hardy 1969. A Mathematician’s Apology. Foreword by C. P. Snow. Cam-bridge University Press, New York.
M. Hiltzik 1999. Dealers of Lightning: Xerox PARC and the Dawn of the Computer Age. Harper Business, New York.
C. A. R. Hoare 1974. Monitors: an operating system structuring concept. Com-munications of the ACM17, 10 (October), 549–557.
D. J. Howarth 1972a. A re-appraisal of certain design features of the Atlas I supervisory system. In Operating Systems Techniques, C. A. R. Hoare and R. H. Perrott Eds., Academic Press, New York, 371–377.
D. J. Howarth 1972b. Quoted in Studies in Operating Systems, R. M. McKeag and R. Wilson Eds., Academic Press, New York, 390.
A. C. Kay and A. Goldberg 1977. Personal dynamic media. IEEE Computer10, 3 (March), 31–41.
B. W. Kernighan and D. M. Richie 1978. The C Programming Language.Prentice-Hall, Englewood Cliffs, NJ.
T. Kilburn, R. B. Payne and D. J. Howarth 1961. The Atlas supervisor. National Computer Conference20, 279–294. Article 3.
B. W. Lampson and R. F. Sproull 1979. An open operating system for a single-user machine. Operating Systems Review13, 5 (November), 98–105. Article 18.
B. W. Lampson and D. D. Redell 1980. Experience with processes and monitors in Mesa. Communications of the ACM23, 2 (February), 105–117.
B. W. Lampson 1988. Personal distributed computing: The Alto and Ethernet software. In A History of Personal Workstations, A. Goldberg Ed., Addison-Wesley, Reading, MA, 291–344.
B. W. Lampson 2000. Personal communication, March 20.
S. Lauesen 1975. A large semaphore based operating system. Communications of the ACM18, 7 (July), 377–389. Article 11
S. Lavington 1980. Early British Computers. Digital Press, Bedford, MA.
P. J. Leach, P. H. Levine, B. P. Douros, J. A. Hamilton, D. L. Nelson and B. L. Stumpf 1983. The architecture of an integrated local network. IEEE Journal on Selected Areas in Communications1, 5, 842–856.
J. A. N. Lee 1992. Claims to the term “time-sharing.” IEEE Annals of the History of Computing14, 1, 16–17.
B. H. Liskov 1972. The design of the Venus operating system. Communications of the ACM15, 3 (March), 144–149.
W. C. Lynch 1966. Description of a high capacity fast turnaround university computing center. Communications of the ACM9, 2 (February), 117–123. Article 5.
W. C. Lynch 1972. An operating system designed for the computer utility environment. In Operating Systems Techniques, C. A. R. Hoare and R. H. Perrott Eds., Academic Press, New York, 341–350.
R. A. Maddux and H. D. Mills 1979. Review of “The Architecture of Concurrent Programs.” IEEE Computer12, (May), 102–103.
J. McCarthy 1959. A time-sharing operator program for our projected IBM 709. Unpublished memorandum to Professor P. M. Morse, MIT, January 1. Reprinted in IEEE Annals of the History of Computing14, 1, 1992, 20–23.
J. McCarthy 1962. Time-sharing computer systems. In Computers and the World of the Future, M. Greenberger Ed., The MIT Press, Cambridge, MA, 221–248.
J. McCarthy, S. Boilen, E. Fredkin and J. C. R. Licklider 1963. A time-sharing debugging system for a small computer. Spring Joint Computer Conference23, 51–57.
R. M. McKeag 1976a. Burroughs B5500 Master Control Program. In Studies in Operating Systems, R. M. McKeag and R. Wilson Eds., Academic Press, New York, 1–66.
R. M. McKeag 1976b. THE multiprogramming system. In Studies in Operating Systems, R. M. McKeag and R. Wilson Eds., Academic Press, New York, 145–184.
F. B. MacKenzie 1965. Automated secondary storage management. Datamation11, 11 (November), 24–28.
P. B. Medawar 1979. Advice to a Young Scientist. Harper & Row, New York.
C. Oliphint 1964. Operating system for the B 5000. Datamation10, 5 (May), 42–54. Article 4.
E. I. Organiek 1973. Computer System Organization: The B5700/B6700 Series. Academic Press, New York.
R. Pike, D. Presotto, S. Dorward, B. Flandrena, K. Thompson, H. Trickey and P. Winterbottom 1995. Plan 9 from Bell Labs. Lucent Technologies.
L. Poole 1984. A tour of the Mac desktop. Macworld1, (May-June), 19–26.
G. Popek, B. Walter, J. Chow, D. Edwards, C. Kline, G. Rudison and G. Thiel 1981. Locus: a network transparent, high reliability distributed system. ACM Symposium on Operating Systems Principles, Pacific Grove, CA, 169–177.
D. D. Redell, Y. K. Dalai, T. R. Horsley, H. C. Lauer, W. C. Lynch, P. R. McJones, H. G. Murray and S. C. Purcell 1980. Pilot: an operating system for a personal computer. Communications of the ACM23, 2 (February), 81–92. Article 19.
M. Richards 1969. BCPL: a tool for compiler writing and system programming. Spring Joint Computer Conference34, 557–566..
D. M. Ritchie and K. Thompson 1974. The Unix time-sharing system. Communications of the ACM17, 7(July), 365–375. Article 10.
D. M. Ritchie 1984. The evolution of the Unix time-sharing system. Bell Laboratories Technical Journal63, 8, Part 2 (October), 1577–1593.
D. J. Roche 1972. Burroughs B5500 MCP and time-sharing MCP. In Operating Systems Techniques, C. A. R. Hoare and R. H. Perrott Eds., Academic Press, New York, 307–320.
S. Rosen Ed. 1967. Programming Systems and Languages. McGraw-Hill, New York.
R. F. Rosin Ed. 1987. Prologue: the Burroughs B 5000. Annals of the History of Computing9, 1, 6–7.
R. F. Rosin and J. A. N. Lee Eds. 1992. The CTSS interviews. Annals of the History of Computing14, 1, 33–51.
R. F. Rosin 2000. Personal communication, March 20.
G. F. Ryckman 1983. The IBM 701 computer at the General Motors Research Laboratories. IEEE Annals of the History of Computing5, 2 (April), 210–212. Article 1.
R. Sandberg, D. Goldberg, S. Kleiman, D. Walsh and B. Lyon 1985. Design and implementation of the Sun Network Filesystem. Usenix Conference, (June), 119–130.
A. C. Shaw 1974. The Logical Design of Operating Systems. Prentice-Hall, Engle-wood Cliffs, NJ.
S. K. Shrivastava and F. Panzieri 1982. The design of a reliable remote procedure call mechanism. IEEE Transactions on Computers31, 7(July), 692–697. Article 22.
R. Slater 1987. Portraits in Silicon. The MIT Press, Cambridge, MA, 273–283.
D. C. Smith, C. Irby, R. Kimball and Eric Harslem 1982. The Star user interface: an overview. National Computer Conference, 515–528. Article 20.
R. B. Smith 1961. The BKS system for the Philco-2000. Communications of the ACM4,2(February), 104 and 109. Article 2.
M. Stonebraker 1981. Operating system support for database management. Com-munications of the ACM24, 7(July), 412–418.
J. E. Stoy and C. Strachey 1972. OS6—an experimental operating system for a small computer. The Computer Journal15, 2 & 3, 117–124 & 195–203. Article 17.
C. Strachey 1959. Time sharing in large fast computers. Information Processing, (June), UNESCO, 336–341.
C. Strachey 1974. Letter to Donald Knuth, May 1. Quoted in Lee (1992).
D. Swinehart, G. McDaniel and D. R. Boggs 1979. WFS: a simple shared file system for a distributed environment. ACM Symposium on Operating Systems Principles, Pacific Grove, CA, (December), 9–17. Article 21.
D. C. Swinehart, P. T. Zellweger and R. B. Hagmann 1985. The structure of Cedar. SIGPLAN Notices20, 7(July), 230–244.
A. S. Tanenbaum, R. van Renesse, H. van Staveren, G. J. Sharp, S. J. Muilender, J. Jansen and G. van Rossum 1990. Experiences with the Amoeba distributed operating system, Communications of the ACM33, 12 (December), 46–63.
B. H. Tay and A. L. Ananda 1990. A survey of remote procedure calls. Operating Systems Review24, 3 (July), 68–79.
J. E. White 1976. A high-level framework for network-based resource sharing. National Computer Conference, (June), 561–570.
M. V. Wilkes 1985. Memoirs of a Computer Pioneer. The MIT Press, Cambridge, MA.
R. Wilson 1976. The Titan supervisor. In Studies in Operating Systems, R. M. McKeag and R. Wilson Eds., Academic Press, New York, 185–263.
W. A. Wulf, E. S. Cohen, W. M. Corwin, A. K. Jones, R. Levin, C. Pierson and F. J. Pollack 1974. Hydra: the kernel of a multiprocessor operating system. Communications of the ACM17,6(June), 337–345.
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer Science+Business Media New York
About this chapter
Cite this chapter
Hansen, P.B. (2001). The Evolution of Operating Systems. In: Hansen, P.B. (eds) Classic Operating Systems. Springer, New York, NY. https://doi.org/10.1007/978-1-4757-3510-9_1
Download citation
DOI: https://doi.org/10.1007/978-1-4757-3510-9_1
Publisher Name: Springer, New York, NY
Print ISBN: 978-1-4419-2881-8
Online ISBN: 978-1-4757-3510-9
eBook Packages: Springer Book Archive