The Evolution of Operating Systems

  • Per Brinch Hansen


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.


File System Open Shop Remote Procedure Call Secondary Storage General Motor Research Laboratory 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    A. V. Aho 1984. Foreword. Bell Laboratories Technical Journal63, 8, Part 2 (October), 1573–1576.Google Scholar
  2. 2.
    R. S. Barton 1961. A new approach to the functional design of a digital computer. Joint Computer Conference19, 393–396.MathSciNetGoogle Scholar
  3. 3.
    H. Bratman and I. V. Boldt, Jr. 1959. The SHARE 709 system: supervisory control. Journal of the ACM6, 2 (April), 152–155.zbMATHCrossRefGoogle Scholar
  4. 4.
    P. Brinch Hansen 1968. The Structure of the RC 4000 Monitor. Regnecentralen, Copenhagen, Denmark (February).Google Scholar
  5. 5.
    P. Brinch Hansen 1969. RC 4000 Software: Multiprogramming System. Regnecen-tralen, Copenhagen, Denmark, (April). Article 12. Google Scholar
  6. 6.
    P. Brinch Hansen 1970. The nucleus of a multiprogramming system. Communications of the ACM13, 4 (April), 238–241, 250.CrossRefGoogle Scholar
  7. 7.
    P. Brinch Hansen 1973. Operating System Principles. Prentice-Hall, Englewood Cliffs, NJ.zbMATHGoogle Scholar
  8. 8.
    P. Brinch Hansen 1975. The programming language Concurrent Pascal. IEEE Transactions on Software Engineering1, 2 (June), 199–207.CrossRefGoogle Scholar
  9. 9.
    P. Brinch Hansen, 1976a. The Solo operating system: a Concurrent Pascal program. Software—Practice and Experience 6, 2 (April-June), 141–149. Article15. Google Scholar
  10. 10.
    P. Brinch Hansen, 1976b. The Solo operating system: processes, monitors and classes. Software—Practice and Experience6, 2 (April-June), 165–200. Article 16. zbMATHCrossRefGoogle Scholar
  11. 11.
    P. Brinch Hansen 1978. Distributed Processes: a concurrent programming concept. Communications of the ACM21, 11 (November), 934–941.zbMATHCrossRefGoogle Scholar
  12. 12.
    P. Brinch Hansen 1979. A keynote address on concurrent programming. Computer12, 5 (May), 50–56.CrossRefGoogle Scholar
  13. 13.
    P. Brinch Hansen 1982. Programming a Personal Computer. Prentice-Hall, Engle-wood Cliffs, NJ.Google Scholar
  14. 14.
    P. Brinch Hansen 1993. Monitors and Concurrent Pascal: a personal history. SIG-PLAN Notices28, 3 (March), 1–35.CrossRefGoogle Scholar
  15. 15.
    P. Brinch Hansen 1999. Java’s insecure parallelism. SIGPLAN Notices34, 4 (April), 38–45.CrossRefGoogle Scholar
  16. 16.
    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.Google Scholar
  17. 17.
    F. P. Brooks, Jr. 1975. The Mythical Man-Month: Essays on Soßware Engineering. Addison-Wesley, Reading, MA.Google Scholar
  18. 18.
    D. R. Brownbridge, L. F. Marshall and B. Randell 1982. The Newcastle Connection or Unixes of the World Unite! SoftwarePractice and Experience12, 12 (December), 1147–1162. Article 23. CrossRefGoogle Scholar
  19. 19.
    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. CrossRefGoogle Scholar
  20. 20.
    F. J. Corbató, M. Merwin-Daggett and R. C. Daley 1962. An experimental timesharing system. Spring Joint Computer Conference21, 335–344.Google Scholar
  21. 21.
    F. J. Corbató and V. A. Vyssotsky 1965. Introduction and overview of the Multics system. Fall Joint Computer Conference27, 185–196.Google Scholar
  22. 22.
    P. A. Crisman Ed. 1965. The Compatible Time-Sharing System: A Programmer’s Guide. Second Edition, The MIT Press, Cambridge, MA.Google Scholar
  23. 23.
    R. C. Daley and P. G. Neumann 1965. A general-purpose file system for secondary storage. Fall Joint Computer Conference27, 213–229. Article 8. Google Scholar
  24. 24.
    J. B. Dennis and E. C. van Horn 1966. Programming semantics for multipro-grammed computations. Communications of the ACM9, 3 (March), 143–155.zbMATHCrossRefGoogle Scholar
  25. 25.
    E. W. Dijkstra 1968a. The structure of the THE multiprogramming system. Com-munications of the ACM11, 5 (May), 341–346. Article 11. zbMATHCrossRefGoogle Scholar
  26. 26.
    E. W. Dijkstra 1968b. Cooperating sequential processes. In Programming Languages, F. Genuys Ed., Academic Press, New York, 43–112.Google Scholar
  27. 27.
    E. W. Dijkstra 1971. Hierarchical ordering of sequential processes. Acta Informatica1, 2, 115–138.MathSciNetCrossRefGoogle Scholar
  28. 28.
    D. C. Englebart and W. K. English 1968. A research center for augmenting human intellect. Fall Joint Computer Conference33, 395–410.Google Scholar
  29. 29.
    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. Google Scholar
  30. 30.
    J. Gosling, B. Joy and G. Steele 1996. The Java Language Specification.Addison-Wesley, Reading, MA.zbMATHGoogle Scholar
  31. 31.
    A. N. Habermann 1967. On the harmonious cooperation of abstract machines. Ph.D. thesis. Technological University, Eindhoven, The Netherlands.Google Scholar
  32. 32.
    G. H. Hardy 1969. A Mathematician’s Apology. Foreword by C. P. Snow. Cam-bridge University Press, New York.Google Scholar
  33. 33.
    M. Hiltzik 1999. Dealers of Lightning: Xerox PARC and the Dawn of the Computer Age. Harper Business, New York.Google Scholar
  34. 34.
    C. A. R. Hoare 1974. Monitors: an operating system structuring concept. Com-munications of the ACM17, 10 (October), 549–557.zbMATHCrossRefGoogle Scholar
  35. 35.
    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.Google Scholar
  36. 36.
    D. J. Howarth 1972b. Quoted in Studies in Operating Systems, R. M. McKeag and R. Wilson Eds., Academic Press, New York, 390.Google Scholar
  37. 37.
    A. C. Kay and A. Goldberg 1977. Personal dynamic media. IEEE Computer10, 3 (March), 31–41.CrossRefGoogle Scholar
  38. 38.
    B. W. Kernighan and D. M. Richie 1978. The C Programming Language.Prentice-Hall, Englewood Cliffs, NJ.Google Scholar
  39. 39.
    T. Kilburn, R. B. Payne and D. J. Howarth 1961. The Atlas supervisor. National Computer Conference20, 279–294. Article 3. Google Scholar
  40. 40.
    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. Google Scholar
  41. 41.
    B. W. Lampson and D. D. Redell 1980. Experience with processes and monitors in Mesa. Communications of the ACM23, 2 (February), 105–117.CrossRefGoogle Scholar
  42. 42.
    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.Google Scholar
  43. 43.
    B. W. Lampson 2000. Personal communication, March 20.Google Scholar
  44. 44.
    S. Lauesen 1975. A large semaphore based operating system. Communications of the ACM18, 7 (July), 377–389. Article 11 zbMATHCrossRefGoogle Scholar
  45. 45.
    S. Lavington 1980. Early British Computers. Digital Press, Bedford, MA.Google Scholar
  46. 46.
    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.CrossRefGoogle Scholar
  47. 47.
    J. A. N. Lee 1992. Claims to the term “time-sharing.” IEEE Annals of the History of Computing14, 1, 16–17.CrossRefGoogle Scholar
  48. 48.
    B. H. Liskov 1972. The design of the Venus operating system. Communications of the ACM15, 3 (March), 144–149.CrossRefGoogle Scholar
  49. 49.
    W. C. Lynch 1966. Description of a high capacity fast turnaround university computing center. Communications of the ACM9, 2 (February), 117–123. Article 5. CrossRefGoogle Scholar
  50. 50.
    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.Google Scholar
  51. 51.
    R. A. Maddux and H. D. Mills 1979. Review of “The Architecture of Concurrent Programs.” IEEE Computer12, (May), 102–103.Google Scholar
  52. 52.
    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.Google Scholar
  53. 53.
    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.Google Scholar
  54. 54.
    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.Google Scholar
  55. 55.
    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.Google Scholar
  56. 56.
    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.Google Scholar
  57. 57.
    F. B. MacKenzie 1965. Automated secondary storage management. Datamation11, 11 (November), 24–28.Google Scholar
  58. 58.
    P. B. Medawar 1979. Advice to a Young Scientist. Harper & Row, New York.Google Scholar
  59. 59.
    C. Oliphint 1964. Operating system for the B 5000. Datamation10, 5 (May), 42–54. Article 4. Google Scholar
  60. 60.
    E. I. Organiek 1973. Computer System Organization: The B5700/B6700 Series. Academic Press, New York.Google Scholar
  61. 61.
    R. Pike, D. Presotto, S. Dorward, B. Flandrena, K. Thompson, H. Trickey and P. Winterbottom 1995. Plan 9 from Bell Labs. Lucent Technologies.Google Scholar
  62. 62.
    L. Poole 1984. A tour of the Mac desktop. Macworld1, (May-June), 19–26.Google Scholar
  63. 63.
    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.Google Scholar
  64. 64.
    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. CrossRefGoogle Scholar
  65. 65.
    M. Richards 1969. BCPL: a tool for compiler writing and system programming. Spring Joint Computer Conference34, 557–566..Google Scholar
  66. 66.
    D. M. Ritchie and K. Thompson 1974. The Unix time-sharing system. Communications of the ACM17, 7(July), 365–375. Article 10. CrossRefGoogle Scholar
  67. 67.
    D. M. Ritchie 1984. The evolution of the Unix time-sharing system. Bell Laboratories Technical Journal63, 8, Part 2 (October), 1577–1593.Google Scholar
  68. 68.
    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.Google Scholar
  69. 69.
    S. Rosen Ed. 1967. Programming Systems and Languages. McGraw-Hill, New York.zbMATHGoogle Scholar
  70. 70.
    R. F. Rosin Ed. 1987. Prologue: the Burroughs B 5000. Annals of the History of Computing9, 1, 6–7.CrossRefGoogle Scholar
  71. 71.
    R. F. Rosin and J. A. N. Lee Eds. 1992. The CTSS interviews. Annals of the History of Computing14, 1, 33–51.Google Scholar
  72. 72.
    R. F. Rosin 2000. Personal communication, March 20.Google Scholar
  73. 73.
    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. CrossRefGoogle Scholar
  74. 74.
    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.Google Scholar
  75. 75.
    A. C. Shaw 1974. The Logical Design of Operating Systems. Prentice-Hall, Engle-wood Cliffs, NJ.zbMATHGoogle Scholar
  76. 76.
    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. CrossRefGoogle Scholar
  77. 77.
    R. Slater 1987. Portraits in Silicon. The MIT Press, Cambridge, MA, 273–283.zbMATHGoogle Scholar
  78. 78.
    D. C. Smith, C. Irby, R. Kimball and Eric Harslem 1982. The Star user interface: an overview. National Computer Conference, 515–528. Article 20. Google Scholar
  79. 79.
    R. B. Smith 1961. The BKS system for the Philco-2000. Communications of the ACM4,2(February), 104 and 109. Article 2. CrossRefGoogle Scholar
  80. 80.
    M. Stonebraker 1981. Operating system support for database management. Com-munications of the ACM24, 7(July), 412–418.CrossRefGoogle Scholar
  81. 81.
    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. zbMATHCrossRefGoogle Scholar
  82. 82.
    C. Strachey 1959. Time sharing in large fast computers. Information Processing, (June), UNESCO, 336–341.Google Scholar
  83. 83.
    C. Strachey 1974. Letter to Donald Knuth, May 1. Quoted in Lee (1992).Google Scholar
  84. 84.
    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. Google Scholar
  85. 85.
    D. C. Swinehart, P. T. Zellweger and R. B. Hagmann 1985. The structure of Cedar. SIGPLAN Notices20, 7(July), 230–244.CrossRefGoogle Scholar
  86. 86.
    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.CrossRefGoogle Scholar
  87. 87.
    B. H. Tay and A. L. Ananda 1990. A survey of remote procedure calls. Operating Systems Review24, 3 (July), 68–79.CrossRefGoogle Scholar
  88. 88.
    J. E. White 1976. A high-level framework for network-based resource sharing. National Computer Conference, (June), 561–570.Google Scholar
  89. 89.
    M. V. Wilkes 1985. Memoirs of a Computer Pioneer. The MIT Press, Cambridge, MA.Google Scholar
  90. 90.
    R. Wilson 1976. The Titan supervisor. In Studies in Operating Systems, R. M. McKeag and R. Wilson Eds., Academic Press, New York, 185–263.Google Scholar
  91. 91.
    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.CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2001

Authors and Affiliations

  • Per Brinch Hansen

There are no affiliations available

Personalised recommendations