What is an operating system?
Probably a lot of people will say, our usual windows7 windows10 are operating systems, yes, they are operating systems. Is there anything else?
Think about the phones we use, Google's Android system, the MacOSX on Apple's laptops, the iphone's iOS, they're all operating systems.
So let's think about what the operating system can do.
The first thing we did when we bought the computer was to install the operating system, and some computers had installed the operating system when we bought it, such as brand machines (Dell, HP, Lenovo).
We can watch the video, listen to music, play games, browse the webpage through the installation program on the operating system, also can eject the mobile hard disk and the USB stick, manage the files on our hard drive and so on; We interact with the computer through the operating system and coordinate the various tasks we arrange for the computer. The operating system (Operating system, OS) is a collection of programs that control and manage the hardware and software resources of the entire computer system, and reasonably organize the scheduling of computer work and the allocation of resources to provide users and other software with convenient interfaces and environments. computer operation system is gradually formed and developed with the development of computer research and application, it is the most basic system software in the computer system.
Knowing what the system is for, let's look at the development history of the system.
(Evolution of how the operating system works--the fifties or sixties of the 20th century)
Manual operation (no operating system)
People first put the program tape (or card) on the computer, and then start the input machine to the program and into the computer, and then through the console switch to start the program to run. When the calculation is complete, the printer outputs the results, and the user unloads and takes away the paper tape (or card). The second user is on the machine, repeating the same steps.
Features: User exclusive machine, CPU waiting for manual operation, insufficient CPU utilization
Due to the sharp contradiction between the full speed of manual operation and the high speed of the computer, manual operation is a very low resource utilization of the computer, the only solution is to get rid of the manual operation and realize the automatic transition of the job.
Batch processing System
Batch system: Load a supervisory software on the computer, under the control of the supervision program, the computer can automatically, batch processing one or more user's job (job includes program, data, command).
The first occurrence is the online batch system, where the input and output of the job is handled by the CPU.
online Batch processing system : Add two storage devices between the host and the input machine--the tape drive, the computer automatically completes the task under the automatic control of the supervisory program.
Batch of the input machine to read the user's work into the tape, then the tape on the user's job read into the host memory and execute, after the completion of the results of the calculation to the output machine output. After a batch of jobs is completed, the level of supervision is also stored in the tape drive from the input machine read job. Follow the steps above to repeat the processing task. The supervision program constantly handles each job, realizes the automatic transfer of the work, reduces the settling time and the manual operation time, effectively overcomes the contradiction between human and machine, and improves the utilization of the computer resources.
Issue: When entering jobs and output results, the CPU will still be in line idle state, waiting for the slow input/output device to finish working-the host is busy and so on.
offline Batch system : In order to overcome with mitigation tell the host with slow peripheral (input), improve CPU utilization, and introduce the Offline batch processing system, namely the input output out of the host control.
A notable feature is the addition of a satellite machine that is not directly connected to the host computer. The satellite machine is used to read the user's work from the input machine and put it on the tape drive, and transmits the result of the tape drive to the output machine. This way the host is no longer connected to a slow input. The host and the satellite machine both work in parallel, the Division of labor is clear, can give full play to the host's telling computing ability.
Insufficient: Each time a single job is stored in the host memory, the high-speed CPU waits for low-speed I/O completion status whenever it is running, causing the CPU to be idle.
Multi-Channel program system
multi-Channel program design technology means that multiple programs are allowed to enter memory and run simultaneously. That is, putting multiple programs into memory and allowing them to run alternately on the CPU, sharing the various hardware and software resources in the system. When a program pauses to run due to an I/O request, the CPU immediately goes to run another program.
Single-channel program running process: In a program calculation, I/O idle, a program I/O operation, the CPU idle (b program is the same); Must a work is completed, B to enter the memory to start work, the two are serial, complete the total time required =t1+t2.
Multi-Channel program running process: A, b Two programs stored in memory, they are under the control of the system, can be interspersed with each other, alternately on the CPU run: When a program due to request I/O operation and discard the CPU, the B program can occupy the CPU, so that the CPU is no longer idle, and is doing a I/O operation i/ o Equipment is not idle, obviously, CPU and I/O devices are in a "busy" state, greatly improve the utilization of resources, and thus improve the efficiency of the system, A, b all completed the time required <t1+t2.
The multi-channel program design Technology not only makes the CPU fully utilized, but also improves the utilization of I/O devices and memory, thus improving the resource utilization and system throughput of the whole system (number of processing jobs (Programs) per time), and finally improving the efficiency of the whole system.
Ctss
Time-sharing technology: The operating time of the processor into a very short time slices, in turn, the processor allocated to the use of online operations.
If a job cannot complete its calculations within the time slice allocated to it, the job is temporarily interrupted, the processor is given another job, and the next round is resumed. Because the computer is fast and the job runs very quickly, the impression to each user is that it seems that he has an exclusive computer. And each user can send a variety of operation control commands to the system through their terminal, and complete the operation of the work under the condition of full human-computer interaction.
A computer system with the above characteristics is called a time-sharing system, which allows multiple users to use the computer online simultaneously.
Real-time Systems
Although multi-channel batch processing system and time-sharing system can obtain more satisfactory resource utilization and system response times, they can not meet the needs of two applications in real-time control and real-time information processing. Thus, a real-time system is created, in which the system responds to random external events in a timely manner and completes the processing of the event within a strict time frame.
Real-time systems can be divided into two categories:
(1) Real-time control system. When used in the automatic control of aircraft flight and missile launch, the computer can process the measured data of the measurement system as soon as possible, control the aircraft or missiles in time, or provide the information to the decision-makers through the display terminal. When used in steel rolling, petrochemical and other industrial production process control, also requires the computer to process the data sent by various sensors in a timely manner, and then control the corresponding executing agencies.
(2) Real-time information processing system. When used to book air tickets, inquiries about flights, routes, fares and other matters, or when used in banking systems, information retrieval system, the computer can be sent to the terminal equipment to the service request in time to correctly answer. This type of response to timeliness is slightly weaker than in the first class.
Key features of the real-time operating system:
(1) Timely response. The process of receiving, analyzing and sending each information must be completed within strict time limits.
(2) High reliability. Need to take redundant measures, dual-machine system before and after work, but also include the necessary confidentiality measures.
General operating system
Operating system with multiple types of operation characteristics. Can simultaneously have multi-channel batch processing, the time-sharing, the realtime processing function, or two more kinds of functions.
For example: real-time processing + batch processing = real-time batch processing system. First of all, ensure that real-time tasks are prioritized and intervening spaces batch jobs are processed. The real-time task is often called the foreground job, and the batch job is called background job.
Again such as: batch processing + time-sharing processing = time-sharing batch processing system. That is: Time requirements are not strong into the "background" (batch processing) processing, the need for frequent interaction of the job in the "front" (tick) processing, processor priority to run the "foreground" job.
From the 60 's mid-century, the international began to develop some large-scale general operating system. These systems attempt to achieve the goal of a fully functional, adaptable environment that adapts to a wide range of applications and modes of operation. However, these systems are too complex and large, not only to pay a huge price, but also to solve their reliability, maintainability and understanding of the difficulties encountered.
For example, let's take a look at the development process of the system:
We go to the bank to do business, the Bank only one window can handle business. Not far from the business window is the waiting area, which takes 1 minutes to walk between the two.
1. At the beginning, each time only one person to the business window to transact business, and so the first person business completed, back to the waiting area, the next talent can go to the window to transact business.
Problem: Each time the user goes to/from the business window, it will take a minute to wait for 2 minutes for one person's business. The problem is not obvious if the business takes one hours to process a person's business, but the problem is highlighted as the business window handles the business faster and becomes 10 minutes to handle a business. The faster the business is, the more obvious the problem is. (This is equivalent to the history of the operating system-manual operation)
2. In order to improve the above problem, the scheduling of a dispatcher T, each dispatcher t from the waiting area called 10 people, to the window queue for business, so it is relatively above, save a lot of time, but there is a problem. It's a waste of time every time the team goes to the business window and leaves the window. (This is the equivalent of an online batch processing system)
On this basis, the dispatcher T arranges multiple teams each time, in handling the first team, the team 2 has been arranged by the dispatcher T, so as to avoid the time when the team went to the business window and left the window. (This is the equivalent of an online batch processing system)
Question: If the business window is doing business for someone, the person who handles the business has a phone call, and the business window needs to wait for him to finish the call before he can continue to handle the business.
3. In order to solve the above problems, the business window has been improved, this time is a business window to allow 5 people at the same time waiting for the window (not the window only waiting for a person), if in the business, the first person to call the business window first to suspend the first person's business, at this time to handle the second person's business, If the second person also calls at this time, the business window will go to the third person's business. This makes the business window more productive. In the same period of time to handle the more business. (This is equivalent to a multi-channel program system)
Problem: When dealing with business, a person exclusive business window, resource efficiency is low.
4. The business window has been improved again. Business window at the same time to receive 10 people, not 10 seconds to deal with a person's business, time to the future, whether or not to deal with the current business, will be in the next 10 seconds to deal with the next person's business, so to take turns to 10 people to deal with business. As the business window deals with the speed of business, it becomes every second to deal with a person's business. So for the 10 of people in front of the window, their business seems to be being handled at the same time. (equivalent to time-sharing operating system)
Question: If this time, the president's relatives to handle the business, but the president relatives do not want to wait, hope that their business is immediately processed. At this time, it is impossible to meet the demand. The processing of real-time problems cannot be satisfied now.
5. The business window is again improved, dealing with special business needs immediately. In this way, real-time problems can be dealt with, and real-time issues are prioritized. (This is equivalent to a real-time system)
More image examples are, for example, we are flying, suddenly found that there is a mountain, this time we need to evade action immediately, avoid the mountain, for the non-real-time system at this time need to have a response time, if the response time is too long, the plane will hit the mountain.
6. Because of the need to handle a variety of situations when dealing with the business, the above-mentioned situations are combined to draw on their merits, so that the business window can handle the business according to the situation. (equivalent to general operating system)
The early operating systems were very diverse and manufacturers produced systems for their respective hardware. Each operating system has very different command modes, operating procedures, and debugging tools, even if they are from the same manufacturer. The best reflection of this situation is that every new machine produced by a factory is equipped with a new set of operating systems.
Same manufacturer with same operating system
This continued until the 1960s, when IBM developed the SYSTEM/360 series of machines. Although these machines differ significantly in performance, they have a unified operating system--os/360
At T-Bell Labs in 1965, the company joined a program of singular electronics (general Electric) and MIT (MIT) to build a multi-user, multi-tasking, multi-layered (multi-user, Multi-Processor, multi-level) of the Multics operating system.
The goal of Multics is to integrate time-sharing technology and other advanced technologies at the moment, allowing users to log on to the host via phone (dial-up) at remote terminals, then edit documents, read emails, run calculators, and more. But the project goal is too radical, the progress seriously lags behind. Finally, until 1969, the high-level decided to abandon the project.
There was a man named Ken Thompson who wanted to develop a small operating system, and he spent one months writing a system of operations on the PDP-7, and some common tools--that's the name of unics--. later renamed UNIX.
By the year 1970, PDP-7 can only support two users, because PDP-7 performance is poor, Ken Thompson and Dennis Ritchie decided to transplant the first version of UNIX to PDP-11/20 machine, the development of the second edition UNICs. After a performance boost, it's true that multiple people can be used simultaneously, and Blaine Collingham proposes to change its name to UNIX.
UNIX is known as the cornerstone of the computer/Internet industry.
Ken · Thompson at the same time see his writing procedures very useful, all began to use the system, the middle after several revisions.
Because of the different machine structure at the time, each time the system is installed, it needs to be rewritten again.
The first version of UNIX was developed using assembly language and B languages, and B was not strong enough.soThompsonand theRitchieIt has been reformed,and in1971years together invented theClanguage.
in 1973 Thompson and Dennis Ritchie rewritten UNIX in C language . This time, theofficial version of Unix was released.
In the same year, academia was involved in the development of UNIX, and it was the University of California, Berkeley (Berkeley) that was important. At Berkeley, Bill Joy, after acquiring the core UNIX source code, began to modify the version to fit the machine, and added a lot of tool software and compilers, and finally named it Berkeley Software Distribution (BSD).
Because of the highly portable and powerful performance of UNIX, and the fact that there was no copyright dispute at the time, many commercial companies began to develop UNIX operating systems, such as their own system V, IBM's AIX, and HP and Dec companies, All use their own host with their UNIX operating system. But at that time there was no unified hardware standards, different companies produce dissimilar hardware, different companies developed by the program can not be used, can only run in their own company's production of hardware. At this time there was no one to develop UNIX systems for personal computers.
Windows system, Apple system? First Look at:
Until 1979, at/T introduced System V version seventh Unix, which began to support personal computers. At this time for business reasons, at and T decided to recover the copyright of UNIX, the most important thing is not to provide students with source code. The school was greatly impacted and the teaching was affected.
This time a ndrew Tanenbaum (Tan Bonning) professor, wrote a Unix like core program called Minix in 1984-1986, meaning: Mini Unix, and compatible with UNIX, support X86 pc. To avoid copyright disputes, do not look at the UNIX source code at the time of writing. As Professor Tan Bonning that Minix is mainly used in education, so the development of Minix is only donuts, can not meet the needs of users.
In 1988 years, Linus Torvalds
entered the University of Helsinki and selected the Department of Computer Science. During their schooling,Torvalds in contact with theUnixthis operating system,but usingUnixneed to wait,He won't be able to use it while others are using it. He thought, "Why don't I play a Unix game on my own?" "And soon afterwards,He heard that there was a Unix-like system that was fully compatible with UNIX and could run on an Intel 386 machine,
As a result, he installed the Minix operating system immediately after purchasing the latest Intel 386 pc.
Torvalds in the process of studying Minix, found Minix although really great, but Tan Ningbong is not willing to carry out the function of the strengthening, resulting in a pile of engineers in the operating system function above the desire dissatisfaction! This time young Torvalds thought, "So, why don't I rewrite the os i want?" "The second is that he began the writing of the core program."
By the year 1991, Linus Torvalds posted a message on the BBS, claiming that he wrote a small core program with bash, GCC and other tools, but not enough, he hoped that the program can get some suggestions for changes, This core program can be run on Intel's 386 machine. Provided at the same time. This makes a lot of people interested, since then began the Linux extraordinary distance.
Linux Version Branch
Linux Application Areas
1. Enterprise Server-Enterprise
2. Embedded-mobile phone, personal digital assistant (PDA), consumer electronics, aerospace and other fields
3. Desktop-PC
4. Other
Android
2003 Andy Rubin founded the Android company. android--Open mobile operating system based on Linux kernel
2005, Android company was acquired by Google
November 5, 2007, Google officially released the Android operating system
Apple Inc.
Apple-i
Macintosh, abbreviated Mac
Microsoft
Windows Timeline History
Apple and Microsoft
1973 Xerox Company developed in addition to alto--the real sense of personal pc, there are keyboards, monitors, graphics interface, Ethernet and so on. But it didn't pay attention.
In 1979, Jobs heard about alto, decided to go to see, shocked after seeing, go back to let technical staff to achieve graphical interface, for this also from Xerox dug a lot of technical staff, develop Lisa Project, and finally failed. But for the later Macintosh, accumulated a lot of experience.
In 1980, Microsoft and IBM partnered with PC Systems, and Microsoft bundled the ibm-pc with DOS, cheap sales (5$) licenses.
In 1981, Steve Jobs invited Gates to see the Macintosh prototype, to let Microsoft Help the Macintosh development application software, Gates saw the graphics of the Macintosh, but also shocked, thought, if this thing listed, my DOS immediately finished, the future of the world is graphics. But jobs saw Gates ' message and asked Microsoft to learn something from Apple's software development program for any non-Apple device. But Jobs ignored it and did not allow Microsoft to write a Macintosh-like system.
Gates learned that the Macintosh was emulated by Xerox and dug people from Xerox to develop his own graphics system,--windows. Microsoft put win's research and development in the first place, delaying the launch of the Macintosh.
1984 the launch of the Macintosh, swept the world.
Windows1.0 released in 1985, Steve Jobs found that win missed the Macintosh, saying that Gates stole the apple thing.
Alto
Reference: Top of the wave, Baidu Encyclopedia, Goole, Wikipedia, Google pictures
Operating system History