Introduction to Operating Systems: Difference between revisions
Yuron [PHRhYmxlIGNsYXNzPSJ0d3BvcHVwIj48dHI+PHRkIGNsYXNzPSJ0d3BvcHVwLWVudHJ5dGl0bGUiPkdyb3Vwczo8L3RkPjx0ZD51c2VyPGJyIC8+YnVyZWF1Y3JhdDxiciAvPmludGVyZmFjZS1hZG1pbjxiciAvPnN5c29wPGJyIC8+PC90ZD48L3RyPjwvdGFibGU+] (talk | contribs) m (1 revision imported) |
pc>Yuron No edit summary |
||
Line 9: | Line 9: | ||
== What is an Operating System? == | == What is an Operating System? == | ||
We all think we know, but in practice it is quite difficult to define. | We all think we know, but in practice it is quite difficult to define. In a single sentence one could say an operating system is the <strong>abstraction</strong> layer between user software and the physical computer hardware. | ||
In a single sentence one could say an operating system is the | |||
<strong>abstraction</strong> layer between user software and the physical computer | |||
hardware. | |||
[[Image:overview.png|link=|alt=Overview]] | [[Image:overview.png|link=|alt=Overview]] | ||
The objectives here are to provide a simplified, <em>regular</em> interface | The objectives here are to provide a simplified, <em>regular</em> interface to resources such as data files (regardless of where or how they are stored) and to isolate the application from anything else which the computer might be doing … except when you <em>want</em> to interact with others, in which case the operating system facilitates this in a safe and secure manner. | ||
to resources such as data files (regardless of where or how they are | |||
stored) and to isolate the application from anything else which the | |||
computer might be doing … except when you <em>want</em> to interact with | |||
others, in which case the operating system facilitates this in a safe | |||
and secure manner. | |||
Underneath all of this, the operating system manages the available | Underneath all of this, the operating system manages the available <strong>resources</strong> in an attempt to give the best user service. Resources include such things as: | ||
<strong>resources</strong> in an attempt to give the best user service. Resources | |||
include such things as: | |||
*Processing time | *Processing time | ||
Line 32: | Line 22: | ||
*Input and Output (IO) devices | *Input and Output (IO) devices | ||
Doing this involves a number of techniques. Many of these are not | Doing this involves a number of techniques. Many of these are not unique to operating systems, having uses in many branches of | ||
unique to operating systems, having uses in many branches of | computing; however they are often introduced under the general ‘operating systems’ heading as this can provide some good | ||
computing; however they are often introduced under the general | examples. For example, managing the <em>sharing</em> of resources – in a secure manner – is generally important but it is an operating system which ensures your print-out is not muddled with someone else’s sent at the same time to the same printer. | ||
‘operating systems’ heading as this can provide some good | |||
examples. For example, managing the <em>sharing</em> of resources – in a | |||
secure manner – is generally important but it is an operating system | |||
which ensures your print-out is not muddled with someone else’s sent | |||
at the same time to the same printer. | |||
As well as organising the sharing of the resources, the operating | As well as organising the sharing of the resources, the operating system provides security by keeping them apart – except where they specifically need to cooperate when it helps them communicate. This means, for example, multiple users can share one computer but any silly or malicious behaviour by one cannot damage the others. | ||
system provides security by keeping them apart – except where they | |||
specifically need to cooperate when it helps them communicate. This | |||
means, for example, multiple users can share one computer but any | |||
silly or malicious behaviour by one cannot damage the others. | |||
== What is <em>in</em> an operating system? == | == What is <em>in</em> an operating system? == | ||
It is remarkably difficult to define where the boundary of an | It is remarkably difficult to define where the boundary of an operating system is! Some features should obviously be included: in other cases there are are valid arguments that something should or should not be included. | ||
operating system is! Some features should obviously be included: in | |||
other cases there are are valid arguments that something should or | |||
should not be included. | |||
<blockquote> | <blockquote> | ||
<strong>Example</strong>: a printer driver. | <strong>Example</strong>: a printer driver. | ||
‘Obviously’ a printer is a shared I/O device and | ‘Obviously’ a printer is a shared I/O device and therefore the interface software ought to be part of the operating | ||
therefore the interface software ought to be part of the operating | system. It’s very handy that this interprets PDF files correctly. Recognising graphics formats is nice too. Yet these useful (and ever increasing) later demands are not really fundamental to the system operation and interact very little with the computer hardware. Operating system? | ||
system. It’s very handy that this interprets PDF files correctly. | |||
Recognising graphics formats is nice too. Yet these useful (and | |||
ever increasing) later demands are not really fundamental to the | |||
system operation and interact very little with the computer | |||
hardware. Operating system? | |||
</blockquote> | </blockquote> | ||
In this module we have tended to take a broad view and include topics | In this module we have tended to take a broad view and include topics which a user might <em>perceive</em> as being an operating system function although we exclude details such as what a PDF interpreter is doing internally. Thus, for example, when reading a file we sometimes include the library which the language is using to ‘wrap’ the operating system [[kernel]] interface. | ||
which a user might <em>perceive</em> as being an operating system function | |||
although we exclude details such as what a PDF interpreter is doing | |||
internally. Thus, for example, when reading a file we sometimes | |||
include the library which the language is using to ‘wrap’ | |||
the operating system [[kernel]] interface. | |||
<blockquote> | <blockquote> | ||
<strong>Example</strong>: in Java System.out is a route to the operating system | <strong>Example</strong>: in Java System.out is a route to the operating system although the Java environment needs translate this interface into the form for the specific operating system underneath. | ||
although the Java environment needs translate this interface into | |||
the form for the specific operating system underneath. | |||
</blockquote> | </blockquote> | ||
Line 88: | Line 54: | ||
<blockquote> | <blockquote> | ||
There is a rapid-fire, historical-perspective, overview of operating | There is a rapid-fire, historical-perspective, overview of operating systems’ features on this | ||
systems’ features on this | |||
[https://www.youtube.com/watch?v=26QPDBe-NB8 video] (14 mins). | [https://www.youtube.com/watch?v=26QPDBe-NB8 video] (14 mins). | ||
</blockquote> | </blockquote> | ||
Line 100: | Line 65: | ||
---- | ---- | ||
{{PageGraph}} | {{PageGraph}} | ||
{{Category|User}} | {{Category|User}} |
Revision as of 11:08, 1 August 2019
Depends on | About |
---|
First refer to the description of this site.
- Purpose
- Concepts
- Entitles
- Functions
What is an Operating System?
We all think we know, but in practice it is quite difficult to define. In a single sentence one could say an operating system is the abstraction layer between user software and the physical computer hardware.
The objectives here are to provide a simplified, regular interface to resources such as data files (regardless of where or how they are stored) and to isolate the application from anything else which the computer might be doing … except when you want to interact with others, in which case the operating system facilitates this in a safe and secure manner.
Underneath all of this, the operating system manages the available resources in an attempt to give the best user service. Resources include such things as:
- Processing time
- Memory
- Files
- Input and Output (IO) devices
Doing this involves a number of techniques. Many of these are not unique to operating systems, having uses in many branches of computing; however they are often introduced under the general ‘operating systems’ heading as this can provide some good examples. For example, managing the sharing of resources – in a secure manner – is generally important but it is an operating system which ensures your print-out is not muddled with someone else’s sent at the same time to the same printer.
As well as organising the sharing of the resources, the operating system provides security by keeping them apart – except where they specifically need to cooperate when it helps them communicate. This means, for example, multiple users can share one computer but any silly or malicious behaviour by one cannot damage the others.
What is in an operating system?
It is remarkably difficult to define where the boundary of an operating system is! Some features should obviously be included: in other cases there are are valid arguments that something should or should not be included.
Example: a printer driver. ‘Obviously’ a printer is a shared I/O device and therefore the interface software ought to be part of the operating system. It’s very handy that this interprets PDF files correctly. Recognising graphics formats is nice too. Yet these useful (and ever increasing) later demands are not really fundamental to the system operation and interact very little with the computer hardware. Operating system?
In this module we have tended to take a broad view and include topics which a user might perceive as being an operating system function although we exclude details such as what a PDF interpreter is doing internally. Thus, for example, when reading a file we sometimes include the library which the language is using to ‘wrap’ the operating system kernel interface.
Example: in Java System.out is a route to the operating system although the Java environment needs translate this interface into the form for the specific operating system underneath.
General subject areas
This module will cover four broad areas which are core operating systems topics:
- Memory Management Memory management: allocating, maintaining and protecting the computer’s RAM
- Process management: with a focus on multi-tasking and process scheduling.
- File management: more on ‘permanent’ storage and access.
- Device management: dealing with input/output and communications.
Affecting various of these headings will be issues such as:
There is a rapid-fire, historical-perspective, overview of operating systems’ features on this video (14 mins).
What are different kinds of operating system structure?
- Monolithic: By far the most common organization, in the monolithic approach the entire operating system runs as a single program in kernel mode.
- Layered Systems: Layers selected so each only uses functions, operations & services of lower layers. Lower layers (“kernel”) contain most fundamental functions to manage resources.
- Microkernels: Keep only minimal functionality in the OS