Hello, folks!
As I am obsessed with operating system topics, I am determined to write some posts about them.
Why do you need to study operating system?
Operating system’s concepts are among both the most significant and complicated in all of computer science. In other words, operating system is the most important software that runs on a computer. It manages the computer's memory and processes, as well as all of its software and hardware. It also allows you to communicate with the computer without knowing how to speak the computer's language. It is clearly understood that without an operating system a computer is in vain.
Operating system manages all of the software and hardware on the computer. Most of the time, there are several different computer programs running at the same time, and they all need to access your computer's central processing unit (CPU), memory, and storage. The operating system coordinates all of this to make sure each program gets what it desires.
Operating system typically do the following:
Booting: Booting is a process of starting the computer operating system starts the computer to work. ...
manage the computer's resources, such as the central processing unit, memory, disk drives, and printers.
establish a user interface.
execute and provide services for applications software.
Loading and Execution.
Data security.
Disk Management.
Device Controlling.
Printing controlling.
It is also vital to comprehend how these ideas are applied in practice in real operating systems of today. There has been a massive amount of innovation in both the principles and practice of operating systems over the past two decades. The core ideas in operating systems protection, concurrency, virtualization, resource allocation, and reliable storage are widely used throughout computer science. I believe the concepts and principles of operating system are important for anyone getting a degree in computer science or computer engineering.
Anyone trying to construct resilient, secure, flexible computer systems needs to have a deep grounding in these topics and to be able to apply these concepts in a variety of settings. This is especially true in a modern world where almost everything a user does is distributed, and nearly every computer is multi-core.
The fact that operating system’s concepts are popping up in many different areas should not be neglected; even web browsers and cloud computing platforms have become mini-operating systems in their own right.
Today, smart-phones are the fastest growing part of the mobile phone business. These new devices require much more complete operating systems, with sophisticated resource management, multi-tasking, security and failure isolation. Likewise, automobiles are increasingly software controlled, raising a host of operating system issues. Researchers recently demonstrated that they could remotely turn off a car’s braking system through a computer virus introduced into the car’s computers through a hacked car radio.
To draw a conclusion, in order to have an impact on the world of modern technology, you should definitely become a master of both operating System’s functions and characteristics.
What is an operating system?
An operating system is the layer of software that manages a computer’s resources for its users and their applications.
Operating systems have three major roles:
Resource sharing:
Operating systems play referee.manage shared resources:
Operating system must protect itself and other applications from malicious computer viruses.
And since the applications are sharing physical resources, the operating system needs to
decide which applications get which resources.isolate different applications from each other, so that if there is a bug in one application, it does not corrupt other applications.
Sharing raises several challenges for an operating system:
Resource Allocation:
- Time Multiplexing: Programs or users take turns i.e. only one at a time. Example: Printer.
- Space Multiplexing: Instead of completing one by one, each one get some part of the resource.Example: Main Memory
Isolation:
An error in one application should not disrupt other applications, or even the operating system itself. This is called fault isolation.
Fault isolation requires restricting the behavior of applications to less than the full power of the underlying hardware.
Communication:
The flip side of isolation is the need for communication between different applications and between different users. In setting up boundaries, an operating system must also allow for those boundaries to be crossed in carefully controlled ways as the need arises.
Mask hardware limitations:
Operating systems play illusionist.Operating Systems provide an abstraction physical hardware to simplify application design.
Operating systems provide the illusion of a nearly infinite memory, as an abstraction on top of a limited amount of physical memory. Likewise, operating systems provide the illusion that each program has the computer’s processors entirely to itself. Obviously,the reality is quite different! These illusions enable applications to be written independently of the amount of physical memory on the system or the physical number of processors. The operating system does so through a concept called virtualization. With the right hardware and operating system support, most physical resources can be virtualized. Even the type of processor can be virtualized.
Some operating systems virtualize the entire computer, to run the operating system as an application running on top of another operating system. This is called creating a virtual machine. The operating system running in the virtual machine, called the guest operating system, thinks it is running on a real, physical machine, but this is an illusion presented by the true operating system running underneath.
Another reason for virtual machines is as an aid in debugging. Moreover, the illusion of atomic updates to data structures is provided by the operating system using some specialized mechanisms provided in hardware.
Common services:
Operating systems provide glue.Operating system provides a set of common, standard services to applications to simplify and regularize their design. An important reason for the operating system to provide common services is to facilitate sharing between applications.
Another standard service in most modern operating systems is the graphical user interface library. This facilitates a common “look and feel” to users, so that frequent operations such as pull down menus and “cut” and “paste” are handled consistently across applications.
Operating system design patterns
A central role of operating systems is protection.
Reliability
For high system reliability, an operating system must bullet proof itself so that it operates correctly regardless of whatever an application or user might do.Security
For example, if a malicious application is permitted to write directly to the disk, it could modify the file containing the operating system’s code, so that the next time the system starts, the modified operating system will boot instead, installing spyware and disabling virus protection. For security, an operating system must prevent untrusted code from modifying system state.Privacy
an operating system must prevent untrusted code from accessing unauthorized data.Efficiency
For efficiency and fairness, an operating system must be able to limit the amount of resources assigned to each application or user.
As always, if you have any ideas or suggestions that would make my posts more absorbing and handy, please let me know.