Welcome to the Encyclopedia of Examples, where we strive to make complex topics accessible and understandable for everyone. Today, we delve into the world of operating systems, the essential software that manages our interactions with computers and digital devices.
An operating system (OS) is the foundational software that acts as an intermediary between computer hardware and the user, enabling applications to run efficiently. Think of it as the conductor of an orchestra, ensuring all parts of the computer work together harmoniously. Without an OS, a computer would be a collection of unusable electronic components. The journey of operating systems mirrors advancements in computer technology, evolving from direct hardware interaction in early computing to today’s sophisticated, multitasking environments.
The core functions of an operating system are vital for any computing device. These include:
- Process Management: Overseeing the creation, scheduling, and termination of running programs (processes), allocating CPU time, and managing their execution.
- Memory Management: Allocating and deallocating RAM for processes, tracking memory usage, and often using virtual memory to extend available space. An example is how your computer can run multiple applications simultaneously, each requiring its own portion of memory.
- File System Management: Organizing data on storage devices like hard drives. This includes defining how files are named, stored, and retrieved, as seen in the folder structures you use daily.
- I/O Device Management: Controlling communication with input/output devices (keyboards, printers, displays) through device drivers, providing a consistent interface for applications.
- Security and Protection: Safeguarding system resources and user data from unauthorized access or damage through mechanisms like user logins and file permissions.
- Networking: Enabling communication with other computers over networks, managing connections and protocols like TCP/IP. This is how your device connects to the internet.
- User Interface (UI): Providing a way for users to interact with the computer, whether through command lines (text-based) or graphical user interfaces (GUIs with icons and windows).
- Error Detection and Handling: Monitoring for and responding to hardware and software errors to maintain system stability.
Understanding the various types of operating systems helps in appreciating their specific roles. There are eight criteria for categorizing operating systems: number of users, processor architecture, task management, real-time, time-sharing, kernel structure, code openness, and operating system family. Let’s briefly explore these:
- Number of Users: Distinguishes single-user systems (one user at a time, like early MS-DOS) from multi-user systems (multiple concurrent users, like Linux or Windows Server).
- Processor Architecture: Relates to the CPU type (e.g., x86, ARM) and bitness (32-bit vs. 64-bit) an OS is designed for.
- Task Management: Differentiates single-tasking (one program at a time, e.g., MS-DOS) from multitasking systems (multiple programs concurrently, e.g., modern Windows, macOS, Linux).
- Real-Time: Separates general-purpose OS from real-time operating systems (RTOS) where tasks must meet strict deadlines, crucial in systems like industrial controls or medical devices.
- Time-Sharing: A form of multitasking where CPU time is divided among users, giving an illusion of dedicated access.
- Kernel Structure: Describes the core OS architecture, such as monolithic (all services in kernel space, like Linux), microkernel (minimal services in kernel space, like QNX), or hybrid (a mix, like Windows).
- Code Openness: Refers to source code availability—open-source (e.g., Linux, where code is public) versus closed-source/proprietary (e.g., Windows, macOS, where code is private).
- Operating System Family: Groups OS by lineage and design, like the Unix-like family (Linux, macOS) or the Windows NT family.
These categories often overlap; for instance, Linux is multi-user, multitasking, open-source, and Unix-like.
Batch Operating Systems
Early computing efficiency was boosted by batch operating systems. A batch operating system is an operating system that submits jobs from multiple users in batches and processes them automatically in sequence without user interaction between jobs. This marked an improvement over manual, one-by-one job processing.
A key trait is their non-interactive nature. Batch operating systems are not interactive. Users prepared jobs (program code, data, instructions) on media like punched cards. The operator processes the jobs submitted by the user in batches. This human operator was central to the workflow. The way the operating system works is: the user hands over the job to the system operator, who forms a batch of jobs from many users, and then inputs them into the computer to form a batch of jobs in the system. These jobs were processed sequentially or by priority.
The core goal of a batch operating system is to reduce manual intervention by processing jobs in batches, so that computer resources (such as CPU, memory, etc.) can be used continuously. Grouping similar jobs minimized setup times, keeping the expensive CPU active.
Batch OS development offered several benefits. Advantages of batch operating system: Multiple users can share the batch system, Batch systems have very little idle time, It is easy to repeatedly manage large jobs in a batch system. Resource accessibility improved, idle time reduced, and managing voluminous, repetitive tasks became more efficient.
However, they had drawbacks. Disadvantages of batch operating systems: Batch operating system processing security is relatively poor, Batch systems are difficult to debug, Batch operating systems are relatively expensive, If a task fails to be processed, the processing time of subsequent tasks is uncertain. Security was a concern with shared job environments. Debugging was slow; errors were found only after a batch run, requiring resubmission. Mainframe systems were costly, and one job’s failure could delay others.
Despite these limitations, batch processing is still used for certain applications. Examples of batch-based operating systems: payroll accounting, bank statement systems. Other examples include large-scale scientific computations and routine data processing not requiring real-time interaction, such as those performed by early systems like IBM’s FMS and IBSYS.
To improve efficiency, different batch processing architectures emerged. Batch operating systems can indeed be categorized into single-channel and multi-channel systems. This refers to how many jobs could be in memory. Single-track systems allow only one job to run in the main memory at a time, whereas multitrack systems allow multiple jobs to run alternately to maximize resources.
The definition of a single-channel system, i.e., “only one job is loaded into the main memory at a time”, is exactly as described. The CPU processed one job completely before starting the next, which could lead to CPU idle time during I/O operations.
Multi-channel (or multiprogrammed batch) systems improved resource use by keeping multiple jobs in memory. When one job waited for I/O, the CPU switched to another. Channel“ and ”interrupt” technologies are the key technologies that support the parallel operation of I/O devices and CPUs. Channels are responsible for managing I/O operations independently, and interrupts are used to notify the CPU of the completion of an operation to ensure continuous operation. Channels (I/O processors) handled data transfer without constant CPU involvement, using interrupts to signal completion. This concurrency was vital for multiprogrammed batch systems and set the stage for more interactive OS.
Multiprogramming Operating Systems
Building on multi-channel batch systems, multiprogramming operating systems further enhanced CPU utilization. A multiprogramming operating system is an operating system that can manage multiple programs at the same time, improve CPU utilization and system interactivity. Instead of CPU idling during I/O waits, these systems keep several jobs in main memory, and the OS switches the CPU among them.
The main aim is to keep the CPU busy. Definition of multiprogramming system: Its core is to store multiple programs in memory at the same time, so that when a program is waiting for I/O and other operations, the CPU can immediately switch to execute other programs to reduce idle time. This concurrent execution uses system resources more effectively.
Multiprogramming offers significant benefits. The advantages include improving CPU utilization, reducing system idle time, and increasing system throughput. A closer look at these shows their impact: Analysis of advantages: Improved CPU utilization: By executing programs alternately, the CPU is prevented from being idle due to blocking of a single program. Reduced system idle time: When multiple programs are running alternately, system resources (such as CPU and memory) are always in working state. Increased throughput: The number of jobs completed per unit time increases because resources are used more efficiently. This leads to better performance and cost-effectiveness. It is convenient for users to use and reduces the cost of using computers. Early multiprogramming systems, though often batch-oriented, laid groundwork for interactive systems.
The OS in such environments manages memory allocation, CPU scheduling, I/O requests, and ensures programs don’t interfere with one another. This involves mechanisms for job and CPU scheduling, memory management, and synchronization.
The operating system plays a dual role here. On the other hand, it provides a stable and efficient operating environment for user programs (applications). This means ensuring applications have needed resources and are protected. Downward, interact with the hardware and manage all software and hardware resources (make full and efficient use of software and hardware resources). This highlights the OS’s role as a resource manager. To re-emphasize: On the other hand, it provides a stable and efficient operating environment for user programs (applications). Downward, interact with the hardware and manage all software and hardware resources (make full and efficient use of software and hardware resources). This repetition underscores these fundamental responsibilities.
Running multiple programs concurrently is often termed “multiprogramming” or “multitasking.” Multiple processes refers to the technology of operating system running multiple processes at the same time. A process is a program in execution. The OS switches the CPU between several processes in memory through context switches.
While improving CPU use, multiprogramming introduces complexities like challenging memory management, the need for CPU scheduling algorithms, and potential issues like deadlock or starvation, which the OS must handle. Despite these, multiprogramming was a key development, forming the basis for most subsequent OS designs.
Multi-Tasking Batch Processing Systems
The principles of multiprogramming were also applied to batch environments for greater efficiency. A multi-tasking batch processing system is a computer operating system that allows multiple users to use computer resources to work at the same time. Here, “at the same time” means concurrent processing of multiple batch jobs, not interactive sessions. Users submitted jobs in batches, but the system could interleave their execution.
This system improves the efficiency of the entire system by increasing computer utilization and shortening task completion time. By keeping multiple jobs in memory and switching between them (especially during I/O waits), the CPU stayed busier, improving throughput for the entire job batch.
The following is an in-depth understanding of the multi-tasking batch processing system, especially from the perspective of front-end development: This perspective can be viewed in the context of modern systems where batch components might interact with systems having front-ends, or if “front-end” broadly means job submission/retrieval interfaces.
Let’s establish the Basic concepts of multi-channel batch processing system; Multi-tasking : The system can accommodate multiple jobs at the same time. These jobs are placed in the external memory to form a backup queue. The system selects one or more jobs from the backup job queue and enters the memory for execution each time according to certain scheduling principles. This feature enables multiple jobs to be executed in parallel, thereby improving resource utilization and system throughput. Batch processing : During the operation of the system, users are not allowed to interact with their jobs. That is, once a job enters the system, the user cannot directly interfere with the operation of the job. This processing method enables the system to automatically and continuously process multiple jobs, further improving efficiency. “Multi-channel” here means multiprogramming. Jobs are queued, scheduled, and loaded into memory for concurrent execution, maintaining the non-interactive nature of batch processing.
The Characteristics of multi-channel batch processing further clarify its nature: Resource utilization is greatly improved : Since multiple jobs can be executed simultaneously, CPU and other hardware resources are more fully utilized, thus reducing idle time. Increased system throughput : The number of jobs that the system can handle per unit time increases, thereby improving overall throughput. Long user response time : Due to the characteristics of batch processing systems, users need to wait for the system to complete processing after submitting a job before getting the result, so the user response time is relatively long. No interactive function : During the job execution, users cannot directly intervene or interact with it, which limits the user’s flexibility to a certain extent. These traits differentiate it from interactive systems while showing efficiency gains over single-channel batch systems.
Now, considering The relationship between multi-channel batch processing system and front-end development; Although multi-channel batch processing systems mainly focus on back-end job scheduling and resource management, front-end developers also need to consider collaboration with back-end systems when building efficient and stable Web applications. In modern architectures, a web application (front-end) might initiate or monitor long-running tasks processed by a back-end batch system. For instance, a user requesting a complex report via a web interface might queue a job in such a system.
For example; Performance optimization : Front-end development needs to focus on page loading speed and rendering performance. In a multi-channel batch processing system, if the front-end can reduce unnecessary HTTP requests and optimize resource loading strategies, it will help reduce the pressure on the back-end server and improve overall performance. Efficient front-end design can influence overall system performance, including batch job processing initiated by front-end actions. Error handling and fault-tolerance mechanisms : Since a multi-process batch processing system may have multiple jobs accessing the same resource at the same time, front-end development needs to design reasonable error handling mechanisms and fault-tolerance strategies to ensure that friendly user prompts can be given and application stability can be maintained when resource conflicts or abnormal situations occur. If a batch job fails, the front-end should inform the user gracefully. Asynchronous programming and data updates : Front-end development often needs to deal with asynchronous data loading and page updates. In a multi-channel batch processing system, the front-end can use reasonable asynchronous programming techniques to ensure the real-time and accuracy of data while avoiding excessive burden on the back-end system. This is relevant when a front-end submits a batch job and then polls for status or uses real-time updates without blocking the UI.
In conclusion for this type, Although the multi-channel batch processing system mainly focuses on the management and scheduling of back-end jobs, front-end development also needs to fully consider the collaboration with the back-end system when building efficient and stable Web applications. By optimizing performance, designing reasonable error handling mechanisms and fault-tolerant strategies, and adopting asynchronous programming techniques, front-end development can better adapt to the characteristics of multi-channel batch processing systems and improve the overall user experience. This modern interpretation shows how older processing paradigms can interact within contemporary application architectures.
Time-Sharing Operating Systems
While multiprogramming improved CPU use, it didn’t inherently offer interactivity. Time-sharing operating systems evolved for this. Refers to an operating system that allows several online users to use a computer through their respective terminals at the same time . This transformed computing from batch-oriented to interactive.
The core idea is in its name. Time-sharing system, the meaning of “time-sharing”: time-sharing refers to multiple users sharing the same computer. Specifically, they share CPU processing time. A time-sharing operating system is a multitasking operating system that can divide the processor time into several time slices so that multiple tasks can be executed in turn, realizing simultaneous access to shared resources by multiple users. It is an operating system that can concurrently execute multiple programs, and the most important feature is that it allows each user to feel the experience of an exclusive computer system. This illusion is achieved by rapidly switching the CPU between users’ tasks.
The Time-sharing system processing mechanism is crucial: The user submits a command request online through a terminal device. The system immediately responds to the request and generates the corresponding process. Adopt time-slice rotation scheduling (usually 10-100ms). CPU rapidly switches between multiple programs/multi-users and allocates execution rights according to time slices. This rapid context switching makes users typically unaware of the sharing unless the system is heavily loaded. The time unit is a time slice or quantum. In process scheduling, a timeslice or quantum is the maximum time period allocated to a process to run continuously on the CPU. After the execution time of each task ends, the operating system will automatically switch to the next task. If a task finishes or needs I/O before its time slice ends, the OS can switch sooner.
The Key features of time-sharing systems are: Immediate interactive response, multi-user concurrency, resource allocation according to time slices. These distinguish them from batch systems and simple multiprogramming systems not optimized for rapid user response. The main feature of a time-sharing operating system is that multiple users share host resources through terminals, and each user can submit multiple tasks. Furthermore, The time-sharing system allows multiple users or processes to share computer resources, such as memory, hard disk, printer, etc., managed by the OS.
Let’s explore the working principle. Second, the working principle of time-sharing operating system involves several steps. The working process of time-sharing operating system can be divided into the following four steps: Time Slice Allocation: The time-sharing operating system divides the processor time into a number of time slices, the length of each time slice is generally tens of milliseconds to hundreds of milliseconds, and different time slice lengths will affect different application scenarios. Task Scheduling: Based on the time slice allocation, the time-sharing operating system will schedule the processes that have been queued, and decide which processes can get the execution time, and the length of the execution time slice. Process Execution: After scheduling, the selected processes will occupy the processor’s time slice for task execution, and after execution, they will hand control back to the operating system and enter the waiting state. Process Waiting: A process in the waiting state waits to be rescheduled so that it can take up another CPU time slice to continue execution. If a process needs to wait for an event to occur, the operating system can hang it so that other processes that can be executed can occupy the time slice. This cycle is fundamental to effective time-sharing.
The impact of time-sharing was significant. Third, the application scenarios of time-sharing operating system: The application scenarios of time-sharing operating system are very wide, especially in the multi-user system, which can realize multiple users to access the computer system at the same time and realize multi-tasking. Typical applications of time-sharing operating system include: Multi-user system: it can support multiple users to share the computer system at the same time. Real-time systems: can ensure that certain tasks are completed within a specified time, such as medical device control systems, industrial automation control systems. Large-scale data centers: can support multiple virtual machines running on the same physical server at the same time, thus maximizing the use of computing resources. While primarily associated with multi-user interactivity, its mechanisms are foundational for modern multitasking OS and some specialized applications. To reiterate, Time-sharing operating system is a multitasking operating system that enables multiple users to access shared resources at the same time. And fundamentally, It works by dividing the processor time into several time slices so that multiple tasks are executed in turn. Consequently, Time-sharing operating systems have a wide range of applications in multi-user systems, real-time systems and large data centers.
The Advantages of time-sharing operating system are notable: Each task has an equal opportunity to obtain system resources. The probability of generating repeated junk tasks is relatively small. Can reduce CPU idle time. Fairness depends on the scheduling algorithm (e.g., round-robin). Reduced CPU idle time is a shared benefit with multiprogramming. Interactivity allows users to quickly terminate erroneous programs.
However, there are also Disadvantages of time-sharing operating system: Reliability Issues. The security and integrity of user programs and data must be taken into account. Data communication problems. OS bugs can affect all users. Security is vital to isolate coexisting user data and processes. Data communication overhead for managing user-OS and inter-process communication is also a factor.
Historically, many influential OS were time-sharing systems. Examples of time-sharing operating systems include: Multics, Unix, etc. Multics was pioneering. Unix, inspired by Multics, became widespread and foundational for systems like Linux and macOS. Another example is IBM’s TSO. TSO is the abbreviation of Time Sharing Option, which is an IBM operating system. TSO was originally developed on the System/360 operating system for hourly rental time-sharing systems on IBM mainframes. It provides multiple users with the ability to access a single server resource in parallel, allowing users to use the mainframe at the same time. Terminal access has evolved. The main functions of Terminal Services (now known as Remote Desktop Services) include allowing users to remotely access and operate computers, supporting multiple simultaneous user logins and running independent sessions, centrally managing and deploying applications, providing virtualized resources and desktop environments, and enabling efficient data transfers via Remote Desktop Protocol (RDP). Modern Remote Desktop Services trace roots to multi-user access paradigms of time-sharing.
Time-sharing revolutionized human-computer interaction, making computers more accessible and productive. Its principles are fundamental to virtually all modern OS.
Distributed Operating Systems
As computing needs and networking grew, distributed operating systems emerged to harness multiple interconnected computers. A distributed system is a system composed of multiple computers connected and collaborating through a network. Unlike centralized systems, a distributed OS manages independent, networked computers, making them appear as a single system to the user. Distributed operating systems are the latest development in the computer industry and are widely used around the world, and the pace of progress is also very fast.
In such systems, They use a shared network to communicate with each other, but the operating systems, storage units and CPUs are independent of each other. Each computer (node) runs its own local OS (or part of the distributed OS) and has its own hardware. These are distributed operating systems. Although these processors vary in power consumption, capabilities, size and functions. The distributed OS manages these nodes to provide a unified view, hiding the distribution.
One of The main benefit of using this type of operating system is that users can access files or software that do not actually exist on their local machine but are elsewhere in the system. The distributed OS transparently handles locating and accessing remote resources. As long as the files or software are connected to the network or intranet, they can be used. This location transparency is key. The disaster preparedness of the system is very strong. If one node fails, others can often continue, and tasks might be migrated, offering high availability.
The Advantages of distributed operating systems are many: The failure of one system will not affect the communication of another network because all systems are independent of each other. (This ideally means a node failure won’t cripple other nodes or the system if designed for fault tolerance). Improved data exchange speed. This is possible through parallel processing and efficient networking. Because resources are shared, computers have strong processing power. The aggregate power can be immense. Reduced load on the host. Work distribution prevents bottlenecks. These systems are easily scalable as many system applications can be easily added to the network. New nodes can increase capacity.
However, designing them is challenging. Disadvantages of distributed operating systems: A failure in the main network will stop all communications. Network reliability is crucial. Distributed operating systems are very expensive, and many of the underlying drivers are not well matched at present. Design and management complexity contribute to cost. Ensuring compatibility across diverse hardware/software can be hard.
A distributed OS differs from a network OS. In a distributed system, there is a unified distributed operating system , while in a network system, each node can have its own network operating system. A distributed OS creates a single system image. A network OS provides remote resource access but doesn’t hide the multiple, distinct computers.
Modern computing relies heavily on distributed principles. Examples include cloud computing platforms (such as AWS) and blockchain networks. Cloud platforms like AWS, Azure, and GCP are massive distributed systems. Blockchains are inherently distributed ledgers. Other examples using distributed OS concepts include Google’s File System (GFS), MapReduce, and research OS like Amoeba.
Effectively operating distributed systems means addressing complexities. Common problems in distributed systems mainly include the following;
1. Network latency and database replication latency; Problem : After users publish information, they may encounter the phenomenon of “reading their own writes”, that is, after refreshing the page, they need to wait for a while before they can see the content they just published. Solution : Optimize the replication mechanism to reduce the delay time of database replication tasks under high load conditions. This involves choosing appropriate consistency models.
2. Monotonic read problem; Problem : When users view comments, the number of comments displayed changes repeatedly, which is caused by the read latency of the slave node. Solution : Use a consistent read strategy, such as calculating the hash value of the user ID to determine the specific node to read, to ensure data consistency. This prevents users from seeing older data after newer data.
3.Load skewing and hot spot issues; Problem : Some data partitions are subject to excessive access pressure due to specific business scenarios, resulting in load imbalance. Solution : Optimize data storage strategies, such as using event IDs for hash distribution to balance data distribution, or using load balancing technology to dynamically adjust resource allocation. Careful data partitioning and load balancing are needed.
4. Distributed locks and transaction repetition; Problem : In a distributed lock scenario, transactions may be executed repeatedly, resulting in the generation of duplicate data. Solution : Introduce a “fencing token” mechanism to ensure that after the lock is released, only the last client holding the token can continue to perform the insertion operation. Distributed consensus algorithms like Paxos or Raft are often used.
5.Lamport timestamp problem; Problem : When the client obtains data from different partitions, the data order may be inconsistent. Solution : Use a consistent timestamp generation mechanism, such as Lamport timestamp, to ensure the correctness of the data sequence. Lamport timestamps and vector clocks help order events without perfectly synchronized physical clocks.
6. End-to-end deduplication problem; Problem : Duplicate messages may occur during transmission. Solution : De-duplicate messages at the receiving end, such as updating data in a table to replace duplicate content. Idempotent message processing is key.
7. User name uniqueness conflict in a cluster environment; Problem : In a cluster environment, there may be a user name uniqueness conflict problem. Solution : Optimize the username generation logic to ensure that the uniqueness of the username can be determined during the query phase. This might use a central authority or distributed consensus.
8. Clock Problem; Problem : When a client reports an event, the event time may be recorded incorrectly due to inaccurate device clock or manual adjustment. Solution : Record the time when the event occurred, the time when the device sent the message, and the time when the server received the message. Use calculations to correct the inaccurate clock and obtain the actual event time. Network Time Protocol (NTP) helps, but logical clocks are often preferred for ordering events.
Distributed OS represent a sophisticated approach, enabling large-scale resource sharing, scalability, and fault tolerance, fundamental to modern cloud infrastructure.
Network Operating Systems
While distributed OS aim for a single system image, network operating systems (NOS) have a different focus. A network operating system is an operating system used to manage network resources, provide network services, and support communication and collaboration among multiple computers. A NOS explicitly facilitates network resource use by individual, autonomous computers, each running its local OS augmented with networking capabilities. It can also refer to an OS on network devices like routers.
The core function of a network operating system (NOS) is to coordinate the interaction and resource management among different devices in a network. This allows connected computers to share files, printers, applications, and communicate. It can be defined in three ways: 1. infrastructure management: handles network device (routers, switches) configuration and connection maintenance; 2. service provisioning: includes network-specific functions such as file sharing, printing services, and user rights management; 3. communication protocol support: realize the underlying support of TCP/IP and other protocols to ensure the reliability of data transmission. This definition covers server-side NOS and OS on network hardware.
There are The essential differences with stand-alone operating system are: Security model: need to set up multi-level access control (such as domain control); Resource scheduling: special optimization for remote storage and distributed computing; Failure handling strategy: with automatic fault tolerance mechanism for node failure. A NOS manages multi-user access rights, handles remote resource requests, and often provides redundancy for network services.
Typical examples include the domain management function of Windows Server, the Samba file sharing service under Linux, and the IOS system dedicated to routing devices. (Note: “IOS” here is Cisco’s Internetwork Operating System, not Apple’s iOS). Windows Server editions (e.g., Server 2003, 2022) are prime examples, providing Active Directory, file/print services, etc. Novell NetWare was historically popular. Unix/Linux systems with NFS and Samba also act as powerful NOS.
To reiterate, A network operating system is an operating system used to manage network resources, provide network services and support network communications, allowing multiple computers to share resources and coordinate operations. It facilitates networked collaboration.
The main features include : centralized management, resource sharing, multi-user support, security control, network communication, remote access, and high reliability. Centralized management simplifies administration. Resource sharing is a primary goal. Robust security protects shared resources. High reliability ensures continuous service.
Network bandwidth has been a challenge. The biggest limitation of network operating systems at present is the network transmission speed. Though speeds have increased, demands continue to grow. Due to the limitation of transmission speed, network operating systems (NOS) cannot be further expanded and optimized beyond what the physical network supports. Bottlenecks impact NOS service performance.
Despite this, However, network operating systems have obvious advantages over local operating systems in shared environments. First, network operating systems support real-time operations and can achieve rapid response and processing. This may refer to immediate handling of network requests rather than strict RTOS guarantees. Second, network operating systems enable computers on the network to easily share network resources and provide users with various services they need. This is their core strength.
Network operating systems not only include functions that are usually required by operating systems, such as processor management, memory management, device management, and file management, but also have the following two key functions:
First, it provides efficient and reliable network communication capabilities. This involves managing network protocols (TCP/IP, Ethernet), handling packet routing, and ensuring data integrity. This enables the various components of the network operating system to exchange data and transmit information efficiently and stably, ensuring the overall performance and stability of the network operating system.
Second, it provides a variety of network service functions, including remote job entry and processing service functions, which allow users to submit jobs and process them remotely; file transfer service functions, which allow users to easily transfer files between different devices; email service functions, which support users to send and receive emails through the network; remote printing service functions, which allow users to remotely access printers for printing operations. These services are fundamental to a productive networked environment.
Through these functions, network operating systems make the use of resources on the network more efficient and improve the user experience. They create collaborative ecosystems. Although the network operating system faces the limitation of network transmission speed, its great advantages in resource sharing and network services still make it the preferred operating system in many network environments, especially for servers.
Furthermore, The network operating system is also easy to manage and maintain. Centralized tools help administrators manage users, security, updates, and resources. Network administrators can centrally manage various resources and services on the network through the network operating system, thereby simplifying network management tasks. In addition, the network operating system usually provides a wealth of configuration options, allowing administrators to flexibly adjust the network environment according to specific needs, further improving the adaptability and flexibility of the network operating system.
Security is critical. In terms of security, the network operating system also has certain advantages. It provides centralized authentication, authorization, and auditing. The network operating system usually contains a variety of security mechanisms and tools to help protect network resources from attacks and malicious behaviors. These security mechanisms and tools can encrypt network communications to ensure the security of data transmission; at the same time, network access can also be controlled to prevent unauthorized access and operation. Firewalls and intrusion detection are often included.
However, NOS have downsides. However, the network operating system also has some disadvantages. First, the network operating system is highly dependent on the network transmission speed. Slow networks hinder performance. When the network speed is slow, the performance of the network operating system will be affected. Secondly, the network operating system usually requires more hardware resources to support its operation, which may increase the hardware cost of users. Server-grade hardware can be expensive. The network operating system may face the risk of network attacks, and the security mechanism needs to be constantly updated to deal with new threats. Being networked increases exposure, requiring diligent security practices.
In summary, Network operating systems have obvious advantages in resource sharing and network services, but there are also some issues that need attention. These include complexity, security, and network limitations. The future development of network operating systems will depend on how to solve these problems, improve network transmission speed and security, reduce costs and resource consumption, and better meet user needs. Trends include cloud integration, enhanced virtualization, and better security.
Many known OS function as or are designed as NOS. Some examples of network operating systems include Microsoft Windows Server 2003, Microsoft Windows Server 2008, UNIX, Linux, Mac OS X, Novell NetWare, and BSD. (Modern Windows Server versions would also be included today). Unix and its derivatives have strong built-in networking capabilities.
Real-Time Operating Systems (RTOS)
In many applications, correctness depends on both the logical result and the time it’s produced. For these, Real-Time Operating Systems (RTOS) are used. A real-time operating system (RTOS) is an operating system that ensures that tasks are completed within strict time limits. Predictability and timeliness are its hallmarks. The System response time (System response time) is the time from when the system issues a processing request to when the system gives a response signal. In an RTOS, this must be bounded and predictable for critical tasks.
Real-time operating systems are used in situations that require timely response and strict time limits, such as industrial control, aerospace, etc. Delays or missed deadlines can have severe consequences. Application scenarios include industrial robot control (such as welding sequence), automobile ABS anti-lock braking system , pacemaker, drone flight control, etc. Other examples are medical monitoring, avionics, and telecommunications.
Real-time systems are classified by timing stringency. Real-time systems are divided into hard real-time systems and soft real-time systems.
Hard real-time system (Hard Real-Time System): The task deadline must be absolutely met, and timeouts can lead to serious consequences (such as emergency shutdown of nuclear reactors, flight control systems). Missing a deadline is a system failure.
Soft real-time system (Soft Real-Time System): Occasionally missing the deadline is allowed, which only leads to a decrease in service quality (such as video stream buffering, online meeting delays), but the system can continue to run. Timeliness is desired, but occasional misses are tolerated. The following sentence, “Soft real-time systems are those that have time requirements, but occasional violations of these requirements will not lead to catastrophic consequences,” perfectly captures this.
An RTOS is engineered for deterministic scheduling. Real-time operating system ( RTOS ) is an operating system that provides a stable, predictable and efficient operating environment for embedded systems and real-time applications. Embedded systems (computers for specific functions within larger systems) often host RTOS. RTOS is a real-time operating system; in embedded systems, the role of RTOS is to manage hardware resources, provide real-time task scheduling, and ensure that tasks are completed on time. This involves priority-based preemptive scheduling and low interrupt latency. In automotive electronics, RTOS ensures that brake signal processing takes precedence over multimedia playback; in medical equipment, RTOS ensures real-time transmission of life monitoring data. These examples show the critical role of priority and timely execution.
Many RTOS solutions exist. Common ones include VxWorks, FreeRTOS, QNX, RT-Linux, and μC/OS. VxWorks and QNX are commercial RTOS for critical systems. FreeRTOS is open-source for microcontrollers. RT-Linux is a hard real-time Linux variant. μC/OS is also widely used in embedded applications.
The following are the roles and advantages of RTOS in embedded development: 1.Multitasking (managing concurrent tasks with priorities), 2. Real-time response (predictable, timely execution), 3. Task synchronization and communication (semaphores, mutexes for coordination), 4. Save resources (often lightweight for resource-constrained devices), 5. Scalability (some scale from small to larger processors), 6. Debugging and performance analysis (tools for timing analysis), 7. Supporting Ecosystem (development tools, libraries), 8. Save energy (power management features), 9. Real-time requirements (meeting deadlines), 10. Security (secure boot, memory protection).
Using an RTOS also has challenges. Disadvantages of using RTOS: 1. Real-time performance deteriorates. This may imply that poor design, improper prioritization, or over-commitment of resources can prevent achieving desired real-time performance, or that OS overhead exists. 2. The memory overhead is large, including RAM and Flash. While many RTOS are small, they add overhead compared to bare-metal applications. 3. It is difficult to debug when a bug occurs, although most MCUs have online simulation functions. Debugging timing-dependent and concurrent behavior is complex. 4. In order to run safely, the operating system must turn on and off global interrupts. Managing interrupt disabling is critical; prolonged disabling can increase latency. RTOS kernels minimize this. 5. Porting the operating system requires some assembly knowledge, which is a little difficult. Porting to new hardware often involves adapting a Board Support Package (BSP).
RTOS are indispensable where timing is a correctness criterion, focusing on predictability and minimal latencies.
Kernel Structure, Code Openness, and OS Family
The initial categorization criteria also included kernel structure, code openness, and operating system family. These are vital for a complete understanding of operating systems.
Kernel Structure
The kernel is the OS core, managing resources and providing services. Its design impacts performance, stability, and modularity. Key examples include:
- Monolithic Kernels: All OS services run in a single kernel space. Examples: traditional Unix, Linux (though with loadable modules for modularity), MS-DOS. Advantage: high performance. Disadvantage: a bug can crash the system; large and complex.
- Microkernels: Only fundamental services are in the kernel; others run as user-space servers. Examples: Mach, L4, Minix. Advantage: modularity, stability. Disadvantage: performance overhead from inter-process communication.
- Hybrid Kernels: Combine aspects of monolithic and microkernels. Examples: Windows NT family, Apple’s XNU (in macOS/iOS). Advantage: good performance with better modularity.
- Exokernels: Minimal hardware abstractions; most OS features are in user-level libraries. Primarily research systems. Advantage: high application control over resources.
The choice of kernel architecture deeply influences an OS’s characteristics.
Code Openness
This refers to the source code’s availability and licensing.
- Open-Source Operating Systems: Source code is public; licenses grant rights to view, modify, and distribute. Examples: Linux (Ubuntu, Fedora), BSD family (FreeBSD), Android (AOSP), FreeRTOS. Advantages: transparency, flexibility, often no direct cost, strong community.
- Proprietary/Closed-Source Operating Systems: Source code is a trade secret. Examples: Microsoft Windows, Apple macOS/iOS, QNX. Advantages: often polished, dedicated vendor support.
Each model has strengths, and the choice depends on needs like cost, control, and support.
Operating System Family
OS can be grouped by lineage, design, and APIs.
- Unix-like Family: Large and influential. Includes historical Unix (System V, BSD), Linux, BSD descendants (FreeBSD, OpenBSD), Apple’s macOS (Unix-certified, based on XNU), and Solaris. Characterized by hierarchical file systems and command-line interfaces.
- Windows NT Family: Developed by Microsoft, includes modern Windows versions (XP through Windows 11, Windows Server editions). Features a hybrid kernel and Win32/Win64 APIs.
- DOS (Disk Operating System) Family: Includes MS-DOS, PC DOS, FreeDOS. Single-user, single-tasking, command-line based. Early Windows versions ran on MS-DOS.
- Mainframe Operating Systems: For large mainframes, e.g., IBM’s z/OS. Known for high reliability and throughput.
Understanding these families helps recognize common traits and evolution.
Desktop Operating Systems
Desktop OS power personal computers and laptops for everyday tasks. Commonly used desktop operating systems include “Windows”, “macOS”, “Linux”.
Microsoft Windows
The most widely used desktop OS, evolving from a graphical shell on MS-DOS (Windows 1.0, 1985) to the NT-kernel-based versions today (XP, Vista, 7, 8, 10, 11). Strengths: wide hardware/software compatibility, user familiarity. Weaknesses: security vulnerabilities, can be resource-intensive.
Apple macOS
Exclusive to Apple’s Macintosh computers, known for polished UI and strong creative focus. Evolved from Classic Mac OS to the Unix-based macOS X (now macOS) with the XNU kernel. Strengths: user experience, stability, ecosystem integration. Weaknesses: hardware exclusivity/cost, smaller game library.
Linux
Refers to the Linux kernel; entire OS are “distributions” (e.g., Ubuntu, Fedora, Debian) combining the kernel with GNU software. Open-source, known for stability, security, and flexibility. Strengths: free/open-source, highly customizable, secure. Weaknesses: steeper learning curve for some, some commercial software compatibility issues (though improving).
Other desktop OS like ChromeOS (Linux-based for web apps) exist, but Windows, macOS, and Linux distributions dominate. Choice depends on needs, budget, and desired ecosystem.
Mobile Operating Systems
Smartphones and tablets rely on mobile operating systems. Mobile operating systems are operating systems designed for mobile smart devices such as mobile phones and tablet computers. They are tailored for mobile constraints. Unlike desktop operating systems, they are optimized for the characteristics of mobile devices, such as touch input, battery life, and persistent connectivity.
The main function of a mobile operating system is to manage the hardware resources of mobile devices and provide users with an interface and application running environment. This includes power management, wireless communications, and running mobile apps. The main uses of mobile operating systems are: performing basic system operations, managing the coordination between device hardware and software, implementing user interfaces, providing application services to users, etc.
Currently, common mobile operating systems include Ios, Android, HarmonyOS, OneOS etc. While iOS and Android dominate, others exist. Common mobile device operating systems mainly include iOS, Android, Windows Phone, etc., which will be introduced below. (Windows Phone is now largely defunct).
Mobile operating system is a special system software, which is called mobile operating system because it is often used in mobile devices such as mobile phones. Its specialization is key. The difference between it and general operating system is that it is specially designed to run mobile devices such as mobile phones. Its main purpose is to provide a unified platform for mobile phones, perform coordinated operations of mobile phone hardware and software, and manage mobile phone resources and components.
Several Characteristics of mobile operating system define them:
1. Ease of use: Mobile operating system focuses on user experience, providing intuitive and simple interface and operation mode, so that users can get started quickly and operate the device easily. Touch interfaces and app-centric models are central.
2. Multi-tasking: Mobile OS can run multiple applications at the same time, and users can switch between different applications and switch tasks. This is often constrained to conserve battery.
3. Application ecosystem: Mobile OS usually has a rich application store, users can easily download and install various applications from the application store to meet individual needs. App stores are central.
4. Closedness: Mobile OS usually adopts a closed architecture, restricting users from modifying and accessing the system to protect the stability and security of the system. This is truer for iOS; Android is more open (AOSP).
5. Networking Function: Mobile operating system supports network connection, users can access the Internet, send and receive emails, use social media and other functions through wireless network. Cellular and Wi-Fi are essential.
6. Customization: Mobile operating systems allow users to customize the interface and functions to a certain extent so that they meet their personal preferences and needs. Android is generally more customizable.
The Application of Mobile OS is widespread:
1. Smartphone: Mobile OS is most widely used on smartphones. It not only provides basic communication functions, such as making phone calls and sending SMS, but also supports various applications, games, social media and other functions to meet the diversified needs of users.
2. Tablet PCs: Mobile operating systems are also widely used in tablet PCs. Tablet PCs have larger screens and stronger processing power, making it easier for users to work, study and play. (e.g., iPadOS, Android tablets).
3. Handheld Devices: In addition to smartphones and tablets, mobile operating systems are also used in a variety of handheld devices, such as mobile gaming consoles, smartwatches, etc. These devices provide a variety of services through mobile operating systems. These devices provide various unique functions and services through the mobile operating system. (e.g., Wear OS, watchOS).
4. IoT devices: With the development of IoT, more and more devices need to connect and interact with mobile devices. Mobile operating systems provide functions to communicate with and control IoT devices, such as smart home control systems, smart vehicles, and so on. Mobile OS often act as control interfaces.
Mobile operating systems offer numerous Advantages of Mobile OS: 1. Open Platform (Primarily Android/AOSP). 2. Wide range of device adaptability (Android). 3. Powerful application ecosystem (Both iOS and Android). 4.Flexible personalization settings (More on Android). 5. . Powerful Multitasking (Managed). 6. Powerful notification system. 7. Rich Connectivity Options.
However, there are also Disadvantages of Mobile OS: 1. Higher hardware requirements (Modern mobile OS demand powerful hardware). 2. System update problem (Particularly in Android due to fragmentation; iOS updates are more centralized).
Android (Google)
A Linux-based, open-source OS with the largest global smartphone market share.
One of the advantages of the Android system is its openness and customizability. Its open-source nature (AOSP) allows manufacturer modifications. Users can deeply customize the phone interface, theme, font, etc. according to their own preferences, and install applications from various sources to meet personalized needs.
Android devices have a wide range of options, covering a variety of price points and configurations from low-end to high-end, meeting the budget and performance requirements of different consumers. This diversity is a strength.
In addition, the Android system is relatively more convenient in data transfer and file management with computers. Devices typically appear as mass storage. Users can directly manage files in their mobile phones like operating a USB flash drive.
However, the Android system also has some shortcomings. Due to the diversity of devices and versions, system updates may not be timely and unified, and some older devices may not be able to obtain the latest features and security patches. This fragmentation is a challenge.
The quality of apps in the Android app market varies greatly, and some apps contain malware and advertisements, so users need to choose carefully. More vigilance is required due to platform openness.
iOS (Apple)
Apple’s mobile OS for iPhone (iPadOS for iPad), known for smooth performance, security, and ecosystem integration.
The advantages of iOS are its stability and security. Apple controls hardware and software. Apple has a strict review mechanism for applications, which ensures the quality and security of applications, and system updates can be pushed to most devices in a timely manner. This curated approach generally leads to higher app quality and security.
The user experience of the iOS system is usually simpler and smoother, with relatively unified operating logic and easy to use. UI design and consistency are hallmarks.
Moreover, the iOS system works very well with other Apple products such as Mac, iPad, etc., allowing users to seamlessly switch and share data between different devices. Features like Handoff enhance this.
However, the iOS system is relatively less customizable, and users are limited in the personalized settings they can make. Options are more restricted than on Android.
iOS devices are generally more expensive, and apps can only be downloaded through Apple’s official App Store, which limits users’ channels for obtaining apps. This enhances security but reduces choice.
Ultimately, The Android system is suitable for users who pursue openness, diversity, and personalization, while the iOS system is more suitable for users who focus on stability, security, simplicity, and close integration with the Apple ecosystem. Which operating system to choose depends on personal needs and preferences.
Other mobile OS include the discontinued Windows Phone, Huawei’s HarmonyOS (a distributed OS for various devices), China Mobile’s OneOS (IoT-oriented), and KaiOS (Linux-based for feature phones).
Comparison: Desktop vs. Mobile Operating Systems
Desktop and mobile OS, while sharing core functions, are optimized for different contexts.
Desktop devices typically have more powerful processing power and higher storage capacity because they have more physical space to accommodate more components such as processors, memory, and hard drives, while mobile devices are usually limited by smaller physical space. This physical difference dictates design. Desktop CPUs/GPUs are generally more powerful; mobile SoCs prioritize power efficiency.
Therefore, desktop devices are usually better for handling large programs and resource-intensive tasks, while mobile devices are usually better for handling lightweight applications and basic tasks. Professional video editing or high-end PC gaming suit desktops; mobile OS excel at communication and quick information access.
Other key differences: input methods (keyboard/mouse vs. touch/voice), power management (critical for mobile), application models (app stores common on mobile), connectivity (persistent wireless on mobile), and UI (optimized for screen size). Lines blur with convertibles, but design philosophies differ.
Security in Operating Systems and Mobile Threats
OS security is crucial, with specific mobile dimensions due to personal data and connectivity. General OS security features include authentication, access control, memory protection, sandboxing, encryption, firewalls, and secure boot.
Mobile devices face unique threats. Mobile phone viruses: Mobile devices (such as smartphones) may be infected with viruses and other malicious programs, resulting in data leakage or system damage, which is a typical security threat. Malware can come from compromised apps or websites.
Phishing websites: Disguised as legitimate websites, they induce users to enter sensitive information. Mobile devices are prone to such threats when accessing the Internet, often due to smaller screens or less scrutiny.
Spyware: It can secretly collect user activity information (such as location, communication records, etc.) in the device, which seriously threatens privacy and security.
A broader list of Known security issues on mobile devices include: Malware, data leakage, unsecured network connections, lost or stolen devices, phishing attacks, operating system vulnerabilities, jailbreak/root risks, privilege abuse, unencrypted storage (though encryption is now standard), and physical access attacks.
System fragmentation refers to the diversity and dispersion of the operating system environment, which mainly affects development efficiency and user experience. This is particularly relevant to Android security, as unpatched older OS versions remain vulnerable. Fragmentation also complicates app development.
Mobile security requires a multi-layered approach: OS-level features, app store security, good user practices (strong passwords, updates, caution), and secure developer practices.
Future Trends in Operating Systems
OS continue to evolve. Key trends include:
- AI/ML Integration: For smarter resource management, predictive optimization, enhanced security, and natural UIs.
- Cloud-Native & Distributed Concepts: Lightweight OS for IoT/edge, better containerization support, seamless resource management across local/cloud.
- Enhanced Security & Privacy: More robust architectures, hardware-assisted security, granular privacy controls.
- Cross-Platform Compatibility: Seamless experiences and app/data flow across devices.
- Specialized Architectures: Efficient management of heterogeneous computing resources (CPUs, AI accelerators).
- Quantum Computing OS: Early research for managing qubits and quantum computations.
- Sustainable Computing: Optimizing energy consumption to reduce carbon footprint.
- Declarative/Intent-Based OS: Users specify what they want; OS figures out how.
The OS remains a cornerstone, adapting to and enabling technological advancements.
Conclusion
Operating systems are the essential software foundation of all modern computing, evolving from early batch systems to today’s sophisticated, interactive OS powering diverse devices. We’ve explored types like batch, multiprogramming, time-sharing, real-time, network, and distributed systems, alongside desktop and mobile OS such as Windows, macOS, Linux, Android, and iOS.
Key classification criteria include user count, task management, kernel structure, code openness, and OS family. Core functions like process and memory management, file systems, and security remain central. Challenges persist in security, complexity management, and balancing performance with efficiency. The future points to OS that are more intelligent, secure, distributed, and integrated.
Understanding operating systems provides insight into how our digital tools work, empowering informed choices and an appreciation for the software that makes modern technology possible. They are, and will continue to be, critical to innovation in computing.