Skip to content
geeksforgeeks
  • Tutorials
    • Python
    • Java
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
    • Practice Coding Problems
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Aptitude
  • Engineering Mathematics
  • Discrete Mathematics
  • Operating System
  • DBMS
  • Computer Networks
  • Digital Logic and Design
  • C Programming
  • Data Structures
  • Algorithms
  • Theory of Computation
  • Compiler Design
  • Computer Org and Architecture
Open In App
Next Article:
Functions of Operating System
Next article icon

Introduction to Operating System

Last Updated : 25 Apr, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

An operating system acts as an intermediary between the user of a computer and computer hardware. In short its an interface between computer hardware and user.

  • The purpose of an operating system is to provide an environment in which a user can execute programs conveniently and efficiently.
  • An operating system is software that manages computer hardware and software. The hardware must provide appropriate mechanisms to ensure the correct operation of the computer system and to prevent user programs from interfering with the proper operation of the system. 
  • The operating system (OS) is a program that runs at all times on a computer. All other programs, including application programs, run on top of the operating system.
  • It does assignment of resources like memory, processors and input / output devices to different processes that need the resources. The assignment of resources has to be fair and secure.

Functionalities of Operating System

  • Resource Management: When multiple processes run on the system and need different resources like memory, input/output devices, the OS works as Resource Manager, Its responsibility is to provide hardware to the user. It decreases the load in the system.
  • Process Management: It includes various tasks like scheduling and synchronization of processes. Process scheduling is done with the help of CPU Scheduling algorithms . Process Synchronization is mainly required because processes need to communicate with each other. When processes communicate different problems arise like two processes can update the same memory location in incorrect order.
  • Storage Management: The file system mechanism used for the management of the secondary storage like Hard Disk. NIFS, CIFS, CFS, NFS, etc. are some file systems that are used by operating systems to manage the storage. All the data is stored in various tracks of Hard disks that are all managed by the storage manager.
  • Memory Management: Refers to the management of primary memory, mainly allocation and de-allocation of memory to processes. The operating system has to keep track of how much memory has been used and by which process. It has to decide which process needs memory space and how much.
  • Security/Privacy Management: Privacy is also provided by the Operating system using passwords so that unauthorized applications can't access programs or data. For example, Windows uses Kerberos authentication to prevent unauthorized access to data.

The Operating System as a User Interface:

  1. User (Interacts with the system)
  2. System and application programs (Software tools for the user)
  3. Operating system (Manages hardware and software resources)
  4. Hardware (Physical computing devices)

Every general-purpose computer consists of hardware, an operating system(s), system programs and application programs. The hardware consists of memory, CPU, ALU, I/O devices, peripheral devices and storage devices. The system program consists of compilers, loaders, editors, OS, etc.

Conceptual View of Computer System
Conceptual View of Computer System

Every computer must have an operating system to run other programs. The operating system coordinates the use of the hardware among the various system programs and application programs for various users. It simply provides an environment within which other programs can do useful work.

An OS is a package of some programs that runs on a computer machine, allowing it to perform efficiently. It manages the simple tasks of recognizing input from the keyboard, managing files and directories on disk, displaying output on the screen and controlling peripheral devices.

Goals of Operating System

Primary Goals

The primary goals of an operating system (OS) are to provide a easy to use and convenient environment for executing user programs.

  1. User Convenience : It should be easy to use, providing a user-friendly interface and making it simple to interact with the system.
  2. Program Execution: It facilitates the execution of user programs, providing the necessary environment and services for them to run.
  3. Resource Management: The OS manages and allocates the computer's resources, including the CPU, memory, disk storage, and input/output devices, to ensure fair utilization.
  4. Security: The OS protects the system and user data from unauthorized access, ensuring the confidentiality, integrity, and availability of information.

Secondary Goals

  1. Efficient Resource Utilization: It should aim to maximize the performance and utilization of computer resources like CPU, Memory and IO devices, ensuring that the system runs smoothly and efficiently.
  2. Reliability: It should be robust and reliable, able to handle errors and exceptions gracefully, ensuring that the system continues to operate smoothly. It should be modular in design and easy to debug.

List of Common Operating Systems

There are multiple types of operating systems each having its own unique features:

Windows OS

  • Developer : Microsoft
  • Key Features : User-friendly interface, software compatibility, hardware support, Strong gaming support.
  • Advantages : Easy to use for most users, Broad support from third-party applications ,Frequent updates and support.
  • Typical Use Cases : Personal computing, Business environment, Gaming.

macOS

  • Developer : Apple.
  • Key Features : Sleek, intuitive user interface, Strong integration with other Apple products, Robust security features, High performance and stability.
  • Advantages : Optimized for Apple hardware, Seamless experience across Apple ecosystem, Superior graphics and multimedia capabilities.
  • Typical Use Cases : Creative industries (design, video editing, music production), Personal computing, Professional environments.

Linux

  • Developer : Community-driven (various distributions).
  • Key Features : Open-source and highly customizable, Robust security and stability, Lightweight and can run on older hardware, Large selection of distributions (e.g., Ubuntu, Fedora, Debian).
  • Advantages : Free to use and distribute, Strong community support, Suitable for servers and development environments.
  • Typical Use Cases : Servers and data centers, Development and programming, Personal computing for tech enthusiasts.

Unix

  • Developer: Originally AT&T Bell Labs, various commercial and open-source versions available
  • Key Features: Multiuser and multitasking capabilities, Strong security and stability, Powerful command-line interface, Portability across different hardware platforms
  • Advantages: Reliable and robust performance, Suitable for high-performance computing and servers, Extensive support for networking
  • Typical Use Cases: Servers and workstations, Development environments, Research and academic settings

History of Operating System

The operating system has been evolving through the years. The following table shows the history of OS.

EraKey DevelopmentsExamples
1956The first Operating System was GM-NAA I/O in 1956 by General Motors. GM-NAA I/O (1956)
1960sIBM developed a time sharing system TSS/360OS/360, DOS/360 and TSS/360
1970sUnix popularized simplicity and multitasking; rise of personal computers with basic OSs.Unix (1971), CP/M (1974)
1980sGUI-based OSs gained traction; networking features became standard.Apple Macintosh (1984), Windows (1985)
1990sOpen-source Linux emerged; GUIs in Windows and Mac OS improved.Linux (1991), Windows 95 (1995)
2000s-PresentMobile OSs dominated; cloud and virtualization technologies advanced computing.iOS (2007), Android (2008)

Please refer History of Operating Systems for more details.

Characteristics of Operating Systems

Let us now discuss some of the important characteristic features of operating systems:

  • Device Management: The operating system keeps track of all the devices. So, it is also called the Input/Output controller that decides which process gets the device, when and for how much time.
  • File Management: It allocates and de-allocates the resources and also decides who gets the resource.
  • Job Accounting: It keeps track of time and resources used by various jobs or users.
  • Error-detecting Aids: These contain methods that include the production of dumps, traces, error messages and other debugging and error-detecting methods.
  • Memory Management: It is responsible for managing the primary memory of a computer, including what part of it are in use by whom also check how much amount free or used and allocate process
  • Processor Management: It allocates the processor to a process and then de-allocates the processor when it is no longer required or the job is done.
  • Control on System Performance: It records the delays between the request for a service and the system.
  • Security: It prevents unauthorized access to programs and data using passwords or some kind of protection technique.
  • Convenience: An OS makes a computer more convenient to use.
  • Efficiency: An OS allows the computer system resources to be used efficiently.
  • Ability to Evolve: An OS should be constructed in such a way as to permit the effective development, testing and introduction of new system functions at the same time without interfering with service.
  • Throughput: An OS should be constructed so that It can give maximum throughput (Number of tasks per unit time).

Layered Design of Operating System

OS
Fig. Layered OS

The extended machine provides operations like context save, dispatching, swapping and I/O initiation. The operating system layer is located on top of the extended machine layer. This arrangement considerably simplifies the coding and testing of OS modules by separating the algorithm of a function from the implementation of its primitive operations. It is now easier to test, debug and modify an OS module than in a monolithic OS. We say that the lower layer provides an abstraction that is the extended machine. We call the operating system layer the top layer of the OS.

Components of an Operating Systems

There are two basic components of an Operating System.

  • Shell
  • Kernel

Shell

Shell is the outermost layer of the Operating System and it handles the interaction with the user. The main task of the Shell is the management of interaction between the User and OS. Shell provides better communication with the user and the Operating System Shell does it by giving proper input to the user it also interprets input for the OS and handles the output from the OS. It works as a way of communication between the User and the OS.

Kernel

The kernel is one of the components of the Operating System which works as a core component. The rest of the components depends on Kernel for the supply of the important services that are provided by the Operating System. The kernel is the primary interface between the Operating system and Hardware.

Functions of Kernel

The following functions are to be performed by the Kernel.

  • It helps in controlling the System Calls.
  • It helps in I/O Management.
  • It helps in the management of applications, memory, etc.

Types of Kernel

There are four types of Kernel that are mentioned below.

  • Monolithic Kernel
  • Microkernel
  • Hybrid Kernel
  • Exokernel

For more, refer to Kernel in Operating System .

Difference Between 32-Bit and 64-Bit Operating Systems

32-Bit Operating System 64-Bit Operating System
32-Bit OS is required for running of 32-Bit Processors, as they are not capable of running on 64-bit processors. 64-Bit Processors can run on any of the Operating Systems, like 32-Bit OS or 64-Bit OS.
32-Bit OS gives a low efficient performance. 64-Bit Operating System provides highly efficient Performance.
Less amount of data is managed in 32-Bit Operating System as compared to 64-Bit Os. A large amount of data can be stored in 64-Bit Operating System.
32-Bit Operating System can address 2^32 bytes of RAM. 64-Bit Operating System can address 2^64 bytes of RAM.

Please refer 32 vs 64-bit for details.


Next Article
Functions of Operating System
https://media.geeksforgeeks.org/auth/avatar.png
GeeksforGeeks
Improve
Article Tags :
  • Misc
  • Operating Systems
  • GATE CS
  • school-programming
  • CBSE - Class 11
Practice Tags :
  • Misc

Similar Reads

    Introduction to Operating System
    An operating system acts as an intermediary between the user of a computer and computer hardware. In short its an interface between computer hardware and user. The purpose of an operating system is to provide an environment in which a user can execute programs conveniently and efficiently. An operat
    10 min read
    Functions of Operating System
    An Operating System acts as a communication interface between the user and computer hardware. Its purpose is to provide a platform on which a user can execute programs conveniently and efficiently. The main goal of an operating system is to make the computer environment more convenient to use and to
    7 min read
    Types of Operating Systems
    Operating Systems can be categorized according to different criteria like whether an operating system is for mobile devices (examples Android and iOS) or desktop (examples Windows and Linux). Here, we are going to classify based on functionalities an operating system provides.8 Main Operating System
    11 min read
    Need and Functions of Operating Systems
    The fundamental goal of an Operating System is to execute user programs and to make tasks easier. Various application programs along with hardware systems are used to perform this work. Operating System is software that manages and controls the entire set of resources and effectively utilizes every
    9 min read
    Introduction of Process Management
    Process Management for a single tasking or batch processing system is easy as only one process is active at a time. With multiple processes (multiprogramming or multitasking) being active, the process management becomes complex as a CPU needs to be efficiently utilized by multiple processes. Multipl
    8 min read
    States of a Process in Operating Systems
    In an operating system, a process is a program that is being executed. During its execution, a process goes through different states. Understanding these states helps us see how the operating system manages processes, ensuring that the computer runs efficiently. Please refer Process in Operating Sys
    11 min read
    CPU Scheduling in Operating Systems
    CPU scheduling is a process used by the operating system to decide which task or process gets to use the CPU at a particular time. This is important because a CPU can only handle one task at a time, but there are usually many tasks that need to be processed. The following are different purposes of a
    8 min read
    Preemptive and Non-Preemptive Scheduling
    In operating systems, scheduling is the method by which processes are given access the CPU. Efficient scheduling is essential for optimal system performance and user experience. There are two primary types of CPU scheduling: preemptive and non-preemptive. Understanding the differences between preemp
    5 min read
    Starvation and Aging in Operating Systems
    Starvation occurs when a process in the OS runs out of resources because other processes are using it. This is a problem with resource management while Operating systems employ aging as a scheduling approach to keep them from starving. It is one of the most common scheduling algorithms in batch syst
    6 min read
    Introduction of System Call
    A system call is a programmatic way in which a computer program requests a service from the kernel of the operating system on which it is executed. A system call is a way for programs to interact with the operating system. A computer program makes a system call when it requests the operating system'
    11 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences