Computer Basics - An Overview of Operating Systems

1. Overview of the operating system

1.1, what is the operating system

1.1.1. Definition of operating system

    The Operating System (OS for short) is a large-scale program system, which is responsible for the allocation and scheduling of all software and hardware resources of the computer, controls and coordinates the activities of multiple tasks, and realizes information access and protection. He provides a user interface to enable users to obtain a good working environment.

1.1.2, the composition of the operating system

  • The core functions that the operating system should have

    (1) Job management (system call interface)

    (2) Process management

    (3) Memory management

    (4) File system management

    (5) Equipment management

    The operating system sits between the computer's hardware and application software. The operating system consists of two parts: the kernel of the operating system and the system call interface .

    The traditional operating system regards the four major parts: process, memory, file system, and device management as the core of the system, and the system composed of these four major parts is a pure operating system.

2. The development of the operating system

    With the increasing development of computer technology and its application, the operating system is constantly updated and improved. Its function has also changed from weak to strong, and it has become the core part of the computer system.

    Human management and control of computers has gone through manual operation, early batch processing stage, multi-channel batch processing system stage, and later time-sharing system, real-time system, personal computer operating system, network operating system and distributed operating system. We can divide them into five major types: batch operating system, time-sharing operating system, real-time operating system, network operating system and distributed operating system.

2.1. Manual operation stage

    In February 1946, the world's first general-purpose electronic digital computer "ENIAC" (ENIAC) was successfully developed in the United States. At this time, it was still the first generation of computers (electron tube computers), and there was no concept of an operating system. The electronic tube computers were huge in size and the input and output of operations were manually controlled.

    The process of using a computer by a user is roughly as follows:

    1) First install the program tape on the input machine, start the input machine to send the program and data into the computer;

    2) Start the program through the console switch. After the calculation is completed, the user takes away the printed results and unloads the paper tape.

  • shortcoming

    1) Manual intervention is required throughout the process;

    2) The user monopolizes the computer, and the contradiction between man-machine speed leads to extremely low resource utilization;

2.2. Single batch processing stage

    Because the computers at that time were very expensive, but the efficiency was very low. In order to solve the problem of time wasted in the process of monopolizing the computer by the user and manual intervention, it is thought to combine the input of multiple people into one, and then process it in batches, so there is a single-batch processing system.

    Single batch processing system: it is divided into online batch processing and offline batch processing system.

2.2.1. Online batch processing system

    Online batch processing: job input and output are controlled by a monitoring program on the host computer.

    A storage device—tape is added between the host and the input machine. The user sends the job to the computer room, and the operator inputs a batch of jobs to the storage device to form a job queue. When jobs need to be transferred, the monitoring program of the host reads the user jobs on the tape into the host in turn, and then outputs the results in turn until the batch of jobs is completed.

  • existing problems

    There is no need for manual intervention between the input machine and the host, which greatly reduces the time for job conversion and improves operating efficiency; but during the period of input and re-input and output and re-output, the CPU is still in an idle state;

2.2.2. Offline batch processing system

    In order to solve the problem that the input machine/output machine and the host cannot be carried out simultaneously, an offline batch processing system has been developed.

    Offline batch processing: the input/output is separated from the control of the host computer, and the peripheral computer controls the job input and output.

    The host does not directly deal with the input and output devices, but has a relationship with the faster tape drive, which alleviates the problem that the host and the input/output device cannot be performed at the same time. The entire input and output are handed over to the microcomputer for processing, and the host does not have to wait for the microcomputer to process, and the host and the microcomputer can process in parallel.

  • Batch System Features

    1) Automaticity: automatic execution one by one;

    2) Sequence: execute in sequence according to the input order;

    3) Single channel: only one job is executed in the memory at a time;

  • existing problems

    Although the processing speed of the mainframe has been accelerated, the mainframe can only process one job at a time between the input and output of the high-speed tape, and this part of the efficiency needs to be improved.

2.3, multi-batch processing system

    In order to further improve the utilization rate of the CPU, a multi-batch processing system was born.

    The multi-batch processing system is similar to the instruction pipeline processing method, and the multi-channel programs can be carried out alternately under the control of the system, that is, parallel at the macro level and serial at the micro level.

  • Features of multi-batch system

    1) Multi-channel: Multiple jobs can exist in the memory at the same time, achieving parallelism on a macro level;

  • existing problems

    Multiple jobs can be accommodated in the memory at the same time, and the efficiency of the CPU is further improved. But only one user can operate at a time, and the user cannot see which step the job is in.

2.4. Time-sharing operating system

    The needs of users drive the development of technology, the speed is going up, and then we start to consider the problems of users, can multiple people operate at the same time? Can you see the steps of the job?

    Drawing on the pipeline processing of multi-channel batch processing, it is proposed that "as long as the CPU switching time is infinitely subdivided, each user can exclusively use the computing resources", that is, connecting multiple terminals with monitors and keyboards to a host computer, allowing multiple users to use their own keyboards to use computers interactively and share resources in the host computer, so the time-sharing system was born.

    The multi-user time-sharing system is also the most commonly used type of operating system in today's computer operating systems, such as: Windows, Unix, and Linux are all multi-user time-sharing systems.

  • Features of a time-sharing operating system

    1) Interactivity: users can interact with the system;

    2) Independence: Multiple users can run independently of each other;

  • existing problems

    The time-sharing system allows multiple users to share the host online at the same time, but it also makes the system more complicated, and it is impossible to choose the order of specific user jobs;

2.5. Real-time operating system

    In order to selectively execute key tasks first, in order to allow the host to respond to external event requests in a timely manner, complete the processing of the event within the specified strict time, and control all real-time tasks to run in a coordinated manner, so there is a real-time operating system. For example, RTOS and RT Linux are real-time operating systems.

Real-time systems can be divided into two categories:

   1) Real-time control system: a certain action must be completed within the specified time; such as: missile system, stock system, automatic driving system, etc.;

    2) Real-time information processing system: It is acceptable to occasionally violate the time limit for an action without causing any permanent damage; such as: booking air tickets, querying relevant flights, routes, fares, etc.;

  • Features of real-time operating systems

    1) Timeliness: be able to respond to emergencies in a timely manner;

    2) Reliability: It is required to deal with emergencies in a timely manner, which has strong reliability;

2.6. Network operating system

    The network operating system is based on the computer network. It is a software developed on various computer operating systems according to the network architecture protocol standard, including network management, communication, security, resource sharing and various network applications. Its goal is to communicate with each other and share resources. For example: Netware and Windows NT are both network operating systems;

    Network operating systems can be divided into three categories: centralized mode, client/server mode, and peer-to-peer mode.

  • Features of network operating systems

    1) There is a master-slave relationship, resource sharing in the network, and computers in the network communicate through protocols;

2.7. Distributed operating system

    A distributed computer system is a computer system formed by connecting multiple scattered computers. The computers in the system are not divided into primary and secondary, and any two computers can exchange information through communication. The distributed operating system can directly dynamically allocate and schedule various resources in the system, divide tasks, coordinate information transmission, and provide users with a unified interface and a standard interface. Through this interface, users can realize the required operations and use system resources, so that several computers in the system can cooperate with each other to complete common tasks, effectively controlling and coordinating the parallel execution of various tasks. For example: Amoeba is a distributed operating system.

  • Distributed Operating System Features

    1) The computer has the same low position, and there is no distinction between master and slave;

    2) Any computer in the system can form a subsystem and can be reconfigured;

    3) Any task can be distributed on several computers, and they can be completed in parallel and coordinated;

3. Operating system classification

    Now we divide the operating system according to the application field, which can be mainly divided into the following categories:

    1) Desktop operating system

    2) Server operating system

    3) Embedded operating system

3.1. Desktop Operating System

    Desktop operating systems are mainly used on personal computers, and personal computers mainly include: Microsoft Windows, Apple's Mac OS, and Linux distributions (such as: ubuntu).

3.1.1, Windows system

    The Windows system is a set of operating systems developed by Microsoft Corporation of the United States. It came out in 1985. At first it was only Microsoft-DOS, or MS-DOS.

    Windows system versions range from Windows1.0-Windows95-Windows98-Windows2000-Windows XP-Windows Vista-Windows7-Windows8-Windows10 to today’s Windows 11. Microsoft has continuously updated and upgraded it, and has developed into the most widely used operating system.

  • Windows 11

3.1.2, Mac OS system

    Mac OS is an operating system that runs on Apple Macintosh (MAC) series computers. Mac OS was the first commercially successful graphical user interface.

3.1.3, Linux distribution

    There are many Linux distributions, such as: ubuntu, Debian, CentOS, Linux Mint, etc.; ubuntu, compared to other distributions, may be the most widely known one.

  • ubuntu

3.2. Server Operating System

    First of all, we must understand what a server is. A server is a computer with server software installed. Server software is software that receives user requests, processes requests, and responds to requests.

    As a server, it generally has "Scalability (Scalability), Usability (Usability), Manageability (Managbility) and Usability (Availability)" in terms of performance, that is, the "SUMA" four characteristics of the server.

  • scalability

    Scalability refers to the ability of server hardware to be flexibly configured as needed. For example, you can flexibly configure memory, adapters, hard disks, processors, etc. according to your needs;

  • availability

    Availability refers to the fault tolerance and reliability of the server; such as correcting errors and avoiding damage through redundant design; the second is to try to avoid the occurrence of failures and improve the working environment of the server.

  • Manageability

    Manageability refers to whether the server is easy to manage and maintain;

  • availability

    Availability is an index relative to application requirements, and different applications require different server processing capabilities.

    In order to achieve the appeal requirements, the so-called server operating system was born.

   Server operating system: generally refers to the operating system installed on a large computer to manage server hardware and software resources and provide services to multiple programs.

    The reason for emphasizing general is that in practical applications, the computer used as a server has a motherboard with a larger memory capacity than an ordinary PC. It is not to say that PCs cannot be used as servers, but to fully consider the needs of users, it is superior in the four major characteristics of the system SUMA.

    Server operating systems are mainly divided into: Unix series, Linux series and Windows series. Servers can be divided into file servers, database servers, application servers, WEB servers, etc. according to different service types.

3.2.1, Unix series

    Unix is ​​a time-sharing computer operating system that was born in 1969 at Bell Laboratories of AT&T (an American telecommunications company). Since then, its superiority has occupied the network irresistibly, and most of the important network links are Unix structures.

    Currently, major Unix server vendors include IBM's AIX operating system, Oracle (acquired Sun) Solaris operating system, Hewlett-Packard's UX operating system, FreeBSD, and so on.

  • IBM-AIX

    AIX (Advanced Interactive eXecutive) is the brand name of IBM's proprietary UNIX operating system. AIX can only run on IBM Power System, which is the most powerful server among mid-range UNIX servers. While following the mainstream UNIX standard, AIX has also developed a very unique and unique technology branch, including the kernel (Kernel) that can be dynamically expanded and linked at any time, using powerful logical volume storage management (LVM), a reliable log file system (JFS/JFS2) that integrates database logging technology, and object-oriented object management database (ODM). Not only that, AIX's HACMP (High Availability Cluster Muti-Processing, high availability cluster multi-processing) also makes the system have excellent reliability.

    AIX is currently mainly used for key data calculation and processing in application systems, such as running large databases such as Oracle, Sybase, and DB2 UDB, as well as middleware applications such as Oracle iAS and WebLogic.

    AIX itself is based on UNIX, and its own shell is ksh, which does not have tab completion under the default configuration. It can only provide a set -o vi to realize the function that the shell input can call some key operations of vi. Almost all Linux distributions are bash, and this shell has a tab completion function.

  • Oracle-Solaris

    The Solaris OS is Sun's (acquired by Oracle) version of Unix, and it has more of a command line than either HP-UX or AIX. Solaris is equipped with ZFS, the latest file system, and applies various methods to perform virtualization, including container zones, xVM servers, logical domains, and hardware partitions. In addition, the Solaris system uses shared library and cluster technology to improve stability. It also adopts the strategy of supporting both 64-bit and 32-bit computing mode processors to support a wider range of hardware platforms. Whether it is DEC, HP, or IBM hardware platforms, Solaris systems can be transplanted between them.

  • HP-UX

    HP-UX is the first Unix operating system that allows customers to purchase a specific operating system environment. For example, if you want to purchase a high-availability product, you can choose the corresponding operating system version (HP-UX 11v3 supports up to 128 processor cores). In addition to providing the corresponding SAM menu system, HP-UX also has strong support for the command line. Compared with AIX and Solaris, performance debugging of HP-UX is simpler.

  • FreeBSD

    FreeBSD is an advanced BSD UNIX operating system developed and maintained by many people. Outstanding Features FreeBSD provides advanced networking, load capacity, excellent security and compatibility.

3.2.2, Linux series

    Linux is an operating system cloned from Unix, and its source code is compatible with most Unix standards. It is a stable operating system that supports multi-users, multi-processes, multi-threads, and good real-time performance.

    In the Linux ecosystem, there are many distribution versions. Linux distribution versions can be divided into two categories according to their nature: commercial maintenance version and community open source version. Mainstream Linux servers include Red Hat, Oracle Linux, CentOS, Debian, and Ubuntu.

  • Red Hat

    We often say that Red Hat (Red Hat) refers to RHEL (Red Hat Enterprise Linux, Red Hat Enterprise Linux). RHEL is made for commercial purposes with enterprise-level support and it is a paid Linux distribution.

  • Oracle Linux

    Oracle Linux, the full name of Oracle Enterprise Linux, is an open source Linux distribution compiled from RHEL source code. The distribution is packaged and distributed by Oracle and is fully compatible with Red Hat Enterprise Linux. It provides powerful tools for memory management and file organization, and can be used in virtual environments and data systems.

  • CentOS

    CentOS is a recompiled community edition of Red Hat Enterprise Linux, which is completely free.

  • Debian

    One of the oldest Linux distributions.

  • Ubuntu

    Ubuntu, as we often say Ubuntu, is a Debian-based Linux distribution that is free and available to everyone.

3.2.3, Windows series

    Windows series mainly include: Windows NT Server, Windows Server2003, Windows Server2008, Windows Server2008R2, etc.

    Server systems have their own advantages and characteristics:

    UNIX has strict standardization (UNIX trademark rights are owned by international open organizations, only systems that conform to a single UNIX specification can use this name, otherwise it can only be called UNIX-like), and its hardware requirements are higher than Linux. Most of UNIX is the operating system of hardware manufacturers for their own hardware platforms, so Unix is ​​widely used on mainframes and minicomputers. For example, banks, communications and various large platforms will use UNIX series servers.

    As an open source operating system, Linux has many versions, but it gives enough freedom, but the hardware compatibility of Linux is slightly behind, and there are many choices for ordinary enterprises and individuals.

    Because the hardware and related drivers developed by the manufacturer are generally aimed at the Windows system, Windows servers may have better hardware support. However, after all, Windows is a closed operating system, which is much weaker in terms of freedom. However, it still has advantages in terms of development languages ​​ASP, .NET, database ACCESS, and SQLServer.

3.3. Embedded operating system

3.3.1. What is an embedded operating system

    Embedded operating system is an operating system software that supports embedded system applications. It has the functions of a general operating system and the characteristics of embedded software (unique practicability, flexible applicability, simplification of program code, high reliability and stability).

    Embedded systems in a narrow sense can be understood as: application-centric, based on computer technology, and software and hardware can be tailored, suitable for application systems with strict requirements on function, reliability, cost, volume, and power consumption of special computer systems.

    Embedded system in a broad sense: Any dedicated software and hardware system with a microprocessor can be called an embedded system.

    Common embedded operating systems include: VxWorks, QNX, Palm OS, Windows CE, etc., as well as operating systems widely used in consumer electronics such as smartphones or ordinary computers, such as Android, iOS, Symbian, WindowsPhone, etc.;

3.3.2. Development of embedded operating system

    The emergence of embedded operating systems was initially based on single-chip microcomputers. The emergence of single-chip microcomputers in the 1970s enabled automobiles, home appliances, industrial machines, communication devices, and thousands of products to obtain better performance through embedded electronic devices. These devices initially had embedded application characteristics, but these applications only used 8-bit chips and executed some single-threaded programs, and the concept of "system" was not mentioned.

    In the 1980s, with the improvement of the microelectronics technology level, integrated circuit manufacturers began to integrate the processor, I/O interface, serial interface, RAM, ROM and other components required in embedded applications into a VLSI, and manufactured a microcontroller for I/O design, and became a newcomer in the field of embedded systems in one fell swoop. Afterwards, various simple embedded operating systems began to appear and developed rapidly.

    In the 1990s, with the improvement of hardware real-time requirements, the software scale of embedded systems has also continued to expand, gradually forming a real-time multi-tasking operating system. At this time, the embedded operating system has functions such as file and directory management, device management, multi-tasking, and networking, and has improved a large number of application programming interfaces, making the development of application software easier.

    Today in the 21st century, embedded systems are widely used in all aspects of life, such as consumer electronics (digital cameras, mobile phones, tablet computers), automotive electronics (engine control systems, taillight control systems, car navigation systems, automatic driving systems), aerospace, medical equipment, industrial automation, etc.

Guess you like

Origin blog.csdn.net/xiaoxianer321/article/details/127253356