User Tools

Site Tools


ops102:introduction_to_operating_systems

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ops102:introduction_to_operating_systems [2024/01/04 21:18] – [The User Interface(s)] chrisops102:introduction_to_operating_systems [2025/01/02 15:22] (current) – [A Brief History of Operating Systems] chris
Line 3: Line 3:
 An operating system (OS) does exactly what the name states: It is software that operates a computer system! An operating system (OS) does exactly what the name states: It is software that operates a computer system!
  
-Not all computers have had or required an operating system. Particularly simple computers, including the earliest models of both business computers and microcomputers, as well as very simple embedded computers, do not require an operating system. The computer embedded into a simple mass-market microwave oven, for example, only ever runs one program, does not have communications capabilities, does not multitask, and is nevery updated, and therefore has no operating system.+Not all computers have had or required an operating system. Particularly simple computers, including the earliest models of both business computers and microcomputers, as well as very simple embedded computers, do not require an operating system. The computer embedded into a simple mass-market microwave oven, for example, only ever runs one program, does not have communications capabilities, does not multitask, and is never updated, and therefore has no operating system.
  
 However, virtually all contemporary computer systems, including embedded devices, are sufficiently complex that they are equipped with an operating system. However, virtually all contemporary computer systems, including embedded devices, are sufficiently complex that they are equipped with an operating system.
Line 22: Line 22:
 All of these are system resources. The operating system manages these resources to ensure that they are used effectively, and to ensure that there are no conflicts over their use. All of these are system resources. The operating system manages these resources to ensure that they are used effectively, and to ensure that there are no conflicts over their use.
  
-As requested by the user(s), or as triggered by other factors such as the time of day or operational requirements, the OS will create processes -- running copies of computer programs. Each process is allocated compute resources by being permitted to run on one or more computer cores. To run a large number of processes, the OS will switch between them, stopping one process and starting another as needed to ensure that all of the processes get a fair share of system resources (which may not always be an equal share).+As requested by the user(s), or as triggered by other factors such as the time of day or operational requirements, the OS will create processes -- running instances of computer programs. Each process is allocated compute resources by being permitted to run on one or more computer cores. To run a large number of processes, the OS will switch between them, stopping one process and starting another as needed to ensure that all of the processes get a fair share of system resources (which may not always be an equal share).
  
 The operating system will allocate the available memory to processes and to the operating system's internal operations. The OS will program the system hardware to ensure that no process can overwrite memory allocated to another process. The operating system will allocate the available memory to processes and to the operating system's internal operations. The OS will program the system hardware to ensure that no process can overwrite memory allocated to another process.
Line 49: Line 49:
 ====  Maintaining the Programming Model  ==== ====  Maintaining the Programming Model  ====
  
-The operating system, computer hardware, and development tools (compiler, linker, and so forth) work together to present the “programming model” – a conceptual framework which software developers use when creating software. For example, several different application program may be designed to occupy the same area of memory; obviously, this presents a conflict when these applications are used at the same time, so the operating system works with the computer’s hardware to load the applications into different areas of physical memory, and then use the computer’s virtual memory capabilities to make each program appear to be loaded into the region of memory for which it was written.+The operating system, computer hardware, and development tools (compiler, linker, and so forth) work together to present the “programming model” – a conceptual framework which software developers use when creating software. 
 + 
 +As a simple example, several different application program may be designed to occupy the same area of memory; obviously, this presents a conflict when these applications are used at the same time, so the operating system works with the computer’s hardware to load the applications into different areas of physical memory, and then use the computer’s virtual memory capabilities to make each program appear to be loaded into the region of memory for which it was written.
  
 =====  Components of an Operating System  ===== =====  Components of an Operating System  =====
Line 57: Line 59:
 ====  The Kernel  ==== ====  The Kernel  ====
  
-This is the heart of the operating system, the main program (or group of programs) that controls the computer. The kernel operates in a special privileged mode, which allows it to manage the resources and security settings for all other software. The kernel is loaded by the computer’s firmware (built-in software) and sets up the computer’s hardware and resources before starting the services and user interface(s) in non-privileged mode, programming the computer’s hardware to enforce the privilege level.  +This is the heart of the operating system, the main program (or group of programs) that controls the computer. The kernel operates in a special privileged mode, which allows it to manage the resources and security settings for all other software. The kernel is loaded by the computer’s firmware (built-in software) and sets up the computer’s hardware and resources before starting the services and user interface(s) in non-privileged mode, controlling the computer’s hardware to enforce the privilege level.  
  
 ====  System Libraries  ==== ====  System Libraries  ====
Line 71: Line 73:
 This is the software that enables the user to interact with the system. Most operating systems provide at least two user interfaces:  This is the software that enables the user to interact with the system. Most operating systems provide at least two user interfaces: 
  
-1. A text-based user interface that enables the user to enter commands, view the output from those commands, and interact with full-screen text interfaces such as file editors and file managers. This may be referred to as a text user interface (TUI) or a command line interface (CLI). +1. A text-based user interface that enables the user to enter commands, view the output from those commands, and interact with full-screen text interfaces such as file editors and file managers. This may be referred to as a text user interface (TUI) or a command line interface (CLI). Here are command line interfaces on Windows, Linux, and Android systems displaying similar information:
  
-{{ ops102:1050px-cli_windows_linux_android.png?700 }}+{{ops102:1050px-cli_windows_linux_android.png?700|A side-by-side view of Windows (10), Linux (Fedora 38), and Android command-line interfaces (CLI) displaying similar information.}}
  
-[[File:ops102:1050px-cli_windows_linux_android.png|700px|center|side-by-side view of Windows (10), Linux (Fedora 38), and Android command-line interfaces (CLI) displaying similar information.]]+2. A graphical user interface (GUIthat typically enables the user to interact with multiple application windowsusing a keyboard and a pointing device such as a mousetrackpad, or touchscreen. Here are graphical user interfaces on Windows and Linux systems showing similar capabilities and information:
  
 +{{ops102:1050px-gui_windows_linux.png?700|A side-by-side view of Windows (10) and Linux (Fedora 38 - Gnome) graphical user interfaces displaying similar information.}}
  
-2. A graphical user interface (GUI) that typically enables the user to interact with multiple application windows, using a keyboard and a pointing device such as a mouse, trackpad, or touchscreen.  
  
-{{ ops102:1050px-gui_windows_linux.png?700 }} 
- 
-[[File:ops102:1050px-gui_windows_linux.png|700px|center|A side-by-side view of Windows (10) and Linux (Fedora 38 - Gnome) graphical user interfaces displaying similar information.]] 
-  
 ====  Utilities and Applications  ==== ====  Utilities and Applications  ====
  
Line 96: Line 94:
 On the other hand, a CLI is well-suited to task automation, and many tasks may require fewer steps to perform than when using a GUI. CLIs generall require much less bandwidth when used over a network, making them well-suited to remote administration tasks. On the other hand, a CLI is well-suited to task automation, and many tasks may require fewer steps to perform than when using a GUI. CLIs generall require much less bandwidth when used over a network, making them well-suited to remote administration tasks.
  
-To compare the data demands of the two types of user interfaces:+To compare the data demands of the two types of user interfaces, consider the amount of information that needs to be sent to the display to update it:
   *  A GUI on a 1920x1080 ("full high definition") monitor displays about 6 megabytes of data (2 million pixels x 3 bytes per pixel)   *  A GUI on a 1920x1080 ("full high definition") monitor displays about 6 megabytes of data (2 million pixels x 3 bytes per pixel)
-  *  A TUI on an 80x25 character terminal displays about 2 kilobytes of data (0.002 megabytes) at one time+  *  A CLI (or TUIon an 80x25 character terminal displays about 2 kilobytes of data (0.002 megabytes) at one time
  
 As an example of the strengths of each type of user interface, consider the task of croping, resizing, and changing the format of photographs: As an example of the strengths of each type of user interface, consider the task of croping, resizing, and changing the format of photographs:
Line 109: Line 107:
  
   *  Before the mid-1960s: A number of different manufacturers produced various computers for business. Since these machines were expensive, and because there were many different manufacturers, a relatively small number of machines of each model were produced. Very little was standardized, and data was rarely interchanged between computers. Consequently, there were many different operating systems, each with a fairly small market.   *  Before the mid-1960s: A number of different manufacturers produced various computers for business. Since these machines were expensive, and because there were many different manufacturers, a relatively small number of machines of each model were produced. Very little was standardized, and data was rarely interchanged between computers. Consequently, there were many different operating systems, each with a fairly small market.
-  *  1964/1965 - MIT and partners begin the Multics Project. This project introduced many concepts that became common in later operating systems, including a heirarcical filesystem, multitasking, and interactive operation. This project continued through 2000. However, Multics was a fairly resource-intensive operating system and ran only on very specific hardare.+  *  1964/1965 - MIT and partners begin the Multics Project. This project introduced many concepts that became common in later operating systems, including a heirarchical filesystem, multitasking, and interactive operation. This project continued through 2000. However, Multics was a fairly resource-intensive operating system and ran only on very specific hardare.
   *  1969 - Bell Labs decided to end their participation in the Multics project. Dennis Ritchie and Ken Thompson, Bell Labs employees who were familiar with the Multics project, decided to implement some of its features in a much lighter-weight operating system, which they called Unix. Unix was soon rewritten in the C language, and could be fairly easily ported to other types of computers.   *  1969 - Bell Labs decided to end their participation in the Multics project. Dennis Ritchie and Ken Thompson, Bell Labs employees who were familiar with the Multics project, decided to implement some of its features in a much lighter-weight operating system, which they called Unix. Unix was soon rewritten in the C language, and could be fairly easily ported to other types of computers.
   *  1970s - Unix continued to grow in popularity. Many computer vendors licensed it and adapted it to work with their computers; some of these variants included Xenix (Microsoft), AIX (IBM), Ultrix (Digital Equipment Corporation), HP/UX (HP), and many others.   *  1970s - Unix continued to grow in popularity. Many computer vendors licensed it and adapted it to work with their computers; some of these variants included Xenix (Microsoft), AIX (IBM), Ultrix (Digital Equipment Corporation), HP/UX (HP), and many others.
Line 115: Line 113:
   *  1981 - IBM decided to enter the microcomputer market with the IBM PC. Needing an operating system, IBM contacted Microsoft - but their only operating system at the time was Xenix, and the IBM PC was not powerful enough to run Xenix well, so Microsoft licensed (and later purchased) a CP/M clone named 86/DOS (aka QDOS) from a local computer company (Seattle Computer Products). This operating system was used as the basis for Microsoft's DOS (disk operating system) product, named PC/DOS when marketed by IBM or MS/DOS when marketed by Microsoft.   *  1981 - IBM decided to enter the microcomputer market with the IBM PC. Needing an operating system, IBM contacted Microsoft - but their only operating system at the time was Xenix, and the IBM PC was not powerful enough to run Xenix well, so Microsoft licensed (and later purchased) a CP/M clone named 86/DOS (aka QDOS) from a local computer company (Seattle Computer Products). This operating system was used as the basis for Microsoft's DOS (disk operating system) product, named PC/DOS when marketed by IBM or MS/DOS when marketed by Microsoft.
   *  1983 - The IBM PC was successful in the market, due to both IBM's marketing and the fact that IBM published the technical specifications which enabled other companies to sell compatible accessories, so IBM produced more powerful models including the IBM PC/XT (1983) and PC/AT (1984). These models had much larger amounts of RAM as well as hard disks, so Microsoft needed to update DOS with new features; they did this by incorporating some features from Xenix (their Unix version), including a heirarchical filesystem.   *  1983 - The IBM PC was successful in the market, due to both IBM's marketing and the fact that IBM published the technical specifications which enabled other companies to sell compatible accessories, so IBM produced more powerful models including the IBM PC/XT (1983) and PC/AT (1984). These models had much larger amounts of RAM as well as hard disks, so Microsoft needed to update DOS with new features; they did this by incorporating some features from Xenix (their Unix version), including a heirarchical filesystem.
-  *  1984 - Richard Stallman created GNU Project and the Free Software Foundation to promote the concept of Free Software ("free" in the sense of freedom, not free of cost).+  *  1984 - Richard Stallman created GNU Project and the Free Software Foundation to promote the concept of Free Software ("free" in the sense of freedom, not free of cost). The GNU project develops its own version of most of the Unix tools and utilities, and in many cases the GNU versions of the software are better than the versions distributed with Unix. However, the GNU project does not create a kernel, so the GNU software is usually used in conjunction with a commercial Unix system.
   *  1984 - The X Window System is first developed at MIT to provide a cross-platform foundation for graphical user interfaces. It becomes widely used on Unix systems sold by many different vendors.   *  1984 - The X Window System is first developed at MIT to provide a cross-platform foundation for graphical user interfaces. It becomes widely used on Unix systems sold by many different vendors.
-  *  1985 - Microsoft introduced Windows 1.0, which was used in conjuction with DOS. Windows provided a graphical user interface and multitasking (though both were initially very limited). +  *  1985 - Microsoft introduced Windows 1.0, which was used in conjuction with DOS (users had to purchase both products). Windows provided a graphical user interface and multitasking (though both were initially very limited). 
-  *  1991 - Linux Torvalds, a computer science student in Finland, wrote and released the Linux kernel. The Linux kernel, combined with software from the GNU project and other free software projects such as the X Window System, made a useful operating system (often referred to as "GNU/Linux" or just "Linux").+  *  1991 - Linus Torvalds, a computer science student in Finland, wrote and released the Linux kernel. The Linux kernel, combined with software from the GNU project and other free software projects such as the X Window System, made a useful operating system (often referred to as "GNU/Linux" or just "Linux"). Many other software developers contribute to the project.
   *  1992 - IBM and Microsoft ended their collaboration on OS/2, an advanced operating system with a graphical user interface. IBM continued independent development of OS/2.   *  1992 - IBM and Microsoft ended their collaboration on OS/2, an advanced operating system with a graphical user interface. IBM continued independent development of OS/2.
   *  1993 - Microsoft introduced Windows/NT (for "New Technology"), incorporating some concepts from OS/2. Unlike previous versions of Windows which required DOS, Windows/NT provided a complete (and more advanced) operating system with a GUI and did not require DOS. All future versions of Windows were based on Windows/NT.   *  1993 - Microsoft introduced Windows/NT (for "New Technology"), incorporating some concepts from OS/2. Unlike previous versions of Windows which required DOS, Windows/NT provided a complete (and more advanced) operating system with a GUI and did not require DOS. All future versions of Windows were based on Windows/NT.
-  *  2001 - Apple released MacOS, a Unix-like operating system based on the "Darwin" kernel+  *  2001 - Apple released MacOS, a Unix-like operating system based on the "Darwin" kernel and incorporating some software from the GNU project.
   *  2007 - A consortium of developers called the Open Handset Alliance, led by Google, released the Android operating system for mobile devices. The Android platform is based on the Linux kernel.   *  2007 - A consortium of developers called the Open Handset Alliance, led by Google, released the Android operating system for mobile devices. The Android platform is based on the Linux kernel.
  
Line 130: Line 128:
   -  A //shell//, which interprets the user's written commands.   -  A //shell//, which interprets the user's written commands.
  
-These may be on the same machine, or they may be on different computers. For example, it is common to access both Linux and Windows systems over a remote connection, using a protocol such as SSH (secure shell). In that case, the terminal program runs on the computer in front of the user, and the shell runs on the remote computer system. +These may be on the same machine, or they may be on different computers. For example, it is common to access both Linux and Windows systems over a remote connection, using a protocol such as SSH (secure shell, which protects the connection using encryption). In that case, the terminal program runs on the computer in front of the user, and the shell runs on the remote computer system.
  
ops102/introduction_to_operating_systems.1704403137.txt.gz · Last modified: 2024/04/16 18:10 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki