From 1e00969ede16dea2cdbe9cecb456bc02afd6fda8 Mon Sep 17 00:00:00 2001 From: Ilya Shpigor Date: Sun, 22 Nov 2020 10:00:33 +0100 Subject: [PATCH] Review the "History of OS origin" section --- .../GeneralInformation/operating-system.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/manuscript/GeneralInformation/operating-system.md b/manuscript/GeneralInformation/operating-system.md index 396222a..45e9d51 100644 --- a/manuscript/GeneralInformation/operating-system.md +++ b/manuscript/GeneralInformation/operating-system.md @@ -2,41 +2,41 @@ ### History of OS origin -Most computer users understand why [**operating system**](https://en.wikipedia.org/wiki/Operating_system) (OS) is needed. Usually, when you buy or download an application from the Internet, you check its system requirements. They specify required hardware and an operating system to launch the application. It means that the OS is some software platform, which is necessary for the application to work. But where did this requirement come from? Why can't you just buy a computer and launch an application on it without any OS? +Most computer users understand why [**operating system**](https://en.wikipedia.org/wiki/Operating_system) (OS) is needed. Usually, when you buy or download an application from the Internet, you check its system requirements. They specify the required hardware and an operating system to launch the application. It means that the OS is a software platform, which is necessary for the application to work. But where did this requirement come from? Why can't you just buy a computer and launch an application on it without any OS? -These questions seem meaningless at the first blush. But consider them from the following side. Modern operating systems are multipurpose and offer the user many functions. Each specific user would not use most of these functions. But he usually cannot disable them. To maintain these functions, the OS utilizes computer's resources intensively. As a result, user has much fewer computation resources for his applications. This leads to slow work, hangs and even reboots of the computer. +These questions seem meaningless at first blush. Let's consider them from the following side. Modern operating systems are multipurpose and offer the user many functions. Each specific user would not use most of these functions. But he usually cannot disable them. To maintain these functions, the OS utilizes computer's resources intensively. As a result, the user has much fewer computation resources for his applications. This leads to slow work, hangs and even reboots of the computer. -Let's turn to history to find out the causes of the OS. Actually, the first OS [GM-NAA I/O](https://en.wikipedia.org/wiki/GM-NAA_I/O) appeared in 1956 for the computer [IBM 704](https://en.wikipedia.org/wiki/IBM_704). All earlier computer models has worked without an OS. Why did they not need an OS? +Let's turn to history to find out the causes of the OS. The first commercial OS [GM-NAA I/O](https://en.wikipedia.org/wiki/GM-NAA_I/O) appeared in 1956 for the computer [IBM 704](https://en.wikipedia.org/wiki/IBM_704). All earlier computer models have worked without an OS. Why didn't they need it? -The main reason for having an OS is the computational speed. For example, let's consider the first [**electromechanical computer**](https://en.wikipedia.org/wiki/Tabulating_machine#1890_census) designed by [Herman Hollerith](https://en.wikipedia.org/wiki/Herman_Hollerith) in 1890. This computer, called a tabulator, does not require an OS and a [program](https://en.wikipedia.org/wiki/Computer_program) in the modern sense. The tabulator performs a limited set of arithmetic operations only. This set was defined by computer design. The data for calculations is loaded from [**punched cards**](https://en.wikipedia.org/wiki/Punched_card). These cards look like sheets of thick paper with punched holes. A human operator prepares these sheets manually and stacked them in special receivers. In the receivers, the sheets are threaded on the needles. Then a short circuit happens in each punched hole. Each short circuit increases the mechanical counter, which was a rotating cylinder. The calculation results are displayed on dials that resemble watches. +The main reason for having an OS is high computational speed. For example, let's consider the first [**electromechanical computer**](https://en.wikipedia.org/wiki/Tabulating_machine#1890_census) designed by [Herman Hollerith](https://en.wikipedia.org/wiki/Herman_Hollerith) in 1890. This computer called a tabulator does not require an OS and a [program](https://en.wikipedia.org/wiki/Computer_program) in the modern sense. The tabulator performs a limited set of arithmetic operations only. The computer design defines this set of operations. The data for calculations is loaded from [**punched cards**](https://en.wikipedia.org/wiki/Punched_card). These cards look like sheets of thick paper with punched holes. A human operator prepares these sheets manually and stacks them in special receivers. In the receivers, the sheets are threaded on the needles. Then a short circuit happens in each punched hole. Each short circuit increases the mechanical counter, which is a rotating cylinder. The calculation results are displayed on dials that resemble watches. -Figure 1-1 shows a tabulator, which is built by Hermann Hallerith. +Figure 1-1 shows a tabulator, which is built by Hermann Hollerith. {caption: "Figure 1-1. Hollerith tabulating machine", height: "30%"} ![Hollerith tabulating machine](images/GeneralInformation/tabulating-machine.jpg) -By modern standards, the tabulator works very slowly. There are several reasons for this. First of all, the data for the calculations was prepared manually. There was no way to automatically punch through the cards. Then loading of punch cards into the computer was also done manually. The tabulator itself contains a large number of mechanical parts: needles to read data, rotating cylinders as counters, dials to output the result. All this mechanics works slowly. It took about one second to perform one elementary operation. No automation can accelerate these processes. +By modern standards, the tabulator works very slowly. There are several reasons for this. First, the data for the calculations are prepared manually. There was no way to punch through the cards automatically. Then loading of punch cards into the computer is also manual work. The tabulator itself contains many mechanical parts: needles to read data, rotating cylinders as counters, dials to output the result. All these mechanics work slowly. It takes about one second to perform one elementary operation. No automation can accelerate these processes. -Tabulators used rotating cylinders for performing calculations. The next generation of cumputers used [**relays**](https://en.wikipedia.org/wiki/Relay) for that. A relay is a mechanical element that changes its state due to electric current. +Tabulators used rotating cylinders for performing calculations. The next generation of computers used [**relays**](https://en.wikipedia.org/wiki/Relay) for that. A relay is a mechanical element that changes its state due to an electric current. In 1939, the German engineer [Konrad Zuse](https://en.wikipedia.org/wiki/Konrad_Zuse) designed one of [the first relay computers](https://en.wikipedia.org/wiki/Z2_(computer)) called Z2. Then this computer was improved in 1941 and was named Z3. In these computers, the time for each elementary operation was reduced from seconds to milliseconds. It was achieved thanks to applying relays. -The increased speed of computation was one feature of Zuse's computers. Another feature was the concept of a computer program. The punched cards stored source data for computations in case of tabulating machines. Similar cards store [**algorithms**](https://en.wikipedia.org/wiki/Algorithm) for doing computations in Zuse's computers. it was a fundamentally new idea. For data input, Zuse used keyboards in his computers. These first keyboards resemble typewriters of that times. +The increased speed of computation is one feature of Zuse's computers. Another feature is the concept of a computer program. The punched cards stored source data for calculations in case of tabulating machines. Similar cards store [**algorithms**](https://en.wikipedia.org/wiki/Algorithm) for doing computations in Zuse's computers. It was a fundamentally new idea. For data input, Zuse used keyboards in his computers. These first keyboards resemble typewriters of that time. I> An algorithm is a finite sequence of instructions to perform a particular calculation or task. -The computers with feature of changing their algorithms became known as [**programmable**](https://en.wikipedia.org/wiki/General_purpose_computer) or general-purpose. +The computers with the feature of changing their algorithms became known as [**programmable**](https://en.wikipedia.org/wiki/General_purpose_computer) or general-purpose. -The invention of programmable computers was a milestone in the development of computer science. Until this moment, machines were able to perform highly specialized tasks only. Construction of these machines was too expensive and inefficient. For this reason, many investors avoided investing in projects to design new computers. These projects served only military needs during World War II. +The invention of programmable computers was a milestone in the development of computer science. Until this moment, machines were able to perform highly specialized tasks only. The construction of these machines was too expensive and inefficient. For this reason, many investors avoided investing money in projects to design new computers. These projects served only military needs during World War II. -The next big step in computer design is a construction of the [**ENIAC**](https://en.wikipedia.org/wiki/ENIAC) (see Figure 1-2) computer in 1946 by [John Eckert](https://en.wikipedia.org/wiki/J._Presper_Eckert) and [John Mauchly](https://en.wikipedia.org/wiki/John_Mauchly). ENIAC had a new type of elements for performing computations. Relays were replaced by [**vacuum tubes**](https://en.wikipedia.org/wiki/Vacuum_tube) there. In other words, the electromechanical elements with long response time were replaced by faster electronic components. This improvement increased computer performance by an order of magnitude. Then one elementary operation took 200 microseconds instead of milliseconds. +The next big step in computer design is the construction of the [**ENIAC**](https://en.wikipedia.org/wiki/ENIAC) (see Figure 1-2) computer in 1946 by [John Eckert](https://en.wikipedia.org/wiki/J._Presper_Eckert) and [John Mauchly](https://en.wikipedia.org/wiki/John_Mauchly). ENIAC has a new type of element for performing computations. [**Vacuum tubes**](https://en.wikipedia.org/wiki/Vacuum_tube) replaced relays there. In other words, the electromechanical parts with a long response time were replaced by faster electronic components. This improvement increased computer performance by order of magnitude. Then one elementary operation took 200 microseconds instead of milliseconds. {caption: "Figure 1-2. ENIAC", height: "30%"} ![ENIAC](images/GeneralInformation/eniac.jpg) -Most of computer engineers were skeptical about vacuum tubes at that time. The tubes were known for their low reliability and high power consumption. Nobody believed that a machine, which uses them, could work at all. About 18,000 vacuum tubes were used in ENIAC. They often failed. But between their failures, the computer performed the calculations successfully. ENIAC was the first successful case of applying vacuum tubes for a computer. This case convinced many designers that such design works. +Most computer engineers were skeptical about vacuum tubes at that time. The tubes were known for their low reliability and high power consumption. Nobody believed that a machine, which uses them, could work at all. ENIAC has around 18,000 vacuum tubes. They failed often. But between the failures, the computer performed the calculations successfully. ENIAC was the first successful case of applying vacuum tubes for a computer. This case convinced many designers that such a design works. -ENIAC is a programmable computer. Operator can set the algorithm of calculations using a combination of switches and jumpers on the control panels. Such programming requires considerable time and simultaneous work of several people. The Figure 1-3 shows one of the panels for programming ENIAC. +ENIAC is a programmable computer. A human operator can set the algorithm of calculations using a combination of switches and jumpers on the control panels. Such programming requires considerable time and simultaneous work of several people. Figure 1-3 shows one of the panels for programming ENIAC. {caption: "Figure 1-3. ENIAC control panel", height: "30%"} ![ENIAC control panel](images/GeneralInformation/eniac-programming.jpg)