ops102:introduction_to_operating_systems
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
ops102:introduction_to_operating_systems [2024/01/04 21:20] – [The User Interface(s)] chris | ops102: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, | + | Not all computers have had or required an operating system. Particularly simple computers, including the earliest models of both business computers and microcomputers, |
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, | All of these are system resources. The operating system manages these resources to ensure that they are used effectively, | ||
- | As requested by the user(s), or as triggered by other factors such as the time of day or operational requirements, | + | As requested by the user(s), or as triggered by other factors such as the time of day or operational requirements, |
The operating system will allocate the available memory to processes and to the operating system' | The operating system will allocate the available memory to processes and to the operating system' | ||
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. | + | 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 | ||
===== 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 | + | 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 |
==== 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). |
- | {{ ops102: | + | {{ops102: |
- | 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. | + | 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: | ||
- | {{ ops102: | ||
==== Utilities and Applications | ==== Utilities and Applications | ||
Line 91: | 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" | * A GUI on a 1920x1080 ("full high definition" | ||
- | * A TUI on an 80x25 character terminal displays about 2 kilobytes of data (0.002 megabytes) at one time | + | * A CLI (or TUI) on 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 104: | 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, | * 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, | ||
- | * 1964/1965 - MIT and partners begin the Multics Project. This project introduced many concepts that became common in later operating systems, including a heirarcical | + | * 1964/1965 - MIT and partners begin the Multics Project. This project introduced many concepts that became common in later operating systems, including a heirarchical |
* 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), | * 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), | ||
Line 110: | 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' | * 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' | ||
* 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, | * 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, | ||
- | * 1984 - Richard Stallman created GNU Project and the Free Software Foundation to promote the concept of Free Software (" | + | * 1984 - Richard Stallman created GNU Project and the Free Software Foundation to promote the concept of Free Software (" |
* 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 " | + | * 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 " |
* 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" | * 1993 - Microsoft introduced Windows/NT (for "New Technology" | ||
- | * 2001 - Apple released MacOS, a Unix-like operating system based on the " | + | * 2001 - Apple released MacOS, a Unix-like operating system based on the " |
* 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 125: | 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.1704403243.txt.gz · Last modified: 2024/04/16 18:10 (external edit)