Download Chapter 1 Introduction

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Mobile operating system wikipedia , lookup

Smallfoot wikipedia , lookup

Copland (operating system) wikipedia , lookup

VS/9 wikipedia , lookup

CP/M wikipedia , lookup

Spring (operating system) wikipedia , lookup

Distributed operating system wikipedia , lookup

Unix security wikipedia , lookup

Security-focused operating system wikipedia , lookup

Transcript
Chapter 1 Introduction
Further reading on the introductory material is well covered in Appendix A.1 of the
textbook.
1.4
Historical development of operating systems
Haviland gives a history of standardization in Appendix B.1, and lists some important
standards in Appendix B.2. See Robbins Section 1.3 and Stevens Section 2.2.2 on POSIX.
1.5
Types of operating system
Singal introduces this topic in Section 1.5. Chapters 16 and 17 deal with multiprocessor
operating systems; Chapter 18 is on database operating systems.
1.6
Design of operating systems
See Singal Section 1.3.
Linux
Bowman describes the overall architecture of Linux in Chapter 1. Figure 2.1(b) shows the
different modules to be highly interdependent. In Chapter 3, Bowman describes each of
the five subsystems, under the headings of goals, external interface, subsystem
description, data structures, subsystem structure, subsystem dependencies.
Rusling Chapter 14 deals with Linux source code; where to get it (Section 14.1), how it is
arranged (Section 14.2), and an overview of where things are (Section 14.3).
NT
Solomon covers operating systems design, including microkernels, in the introduction to
Chapter Two, which then goes on to look at the design of NT. It can be visualized as having
four layers.
 The executive, which provides basic services, such as management of processes and
threads, memory, interprocess communication, I/O, and security. This is generic
code, which remains the same irrespective of the platform on which NT is
implemented. It is largely concerned with policy decisions.
 The kernel, which is processor specific. The kernel on a PC would be different from
the kernel on an Alpha. It is responsible for low level system functions, such as
thread scheduling, interrupt handling, and multiprocessor synchronization. It
implements the decisions made by the executive.
 The hardware abstraction layer (HAL). This is platform specific i.e. it would be
different on different models of PC.
 Device drivers. These translate generic I/O requests into device specific
operations.
NT is expressly object oriented, and the object manager, explained in Chapter Three of
Solomon, is one element that is not present in Linux. It is responsible for creating, deleting,
© John O’Gorman 2000
protecting, and tracking objects. Objects are manipulated by handles. Each process has a
handle table, and a handle is an index into this table.
1.8
Discussion questions
1.
This refers to pp. (i) – (ii) of the Preface, motivation. It might be worthwhile
bringing the question up again at the end of the course.
2. An advantage would be speed. This would be done for games and embedded systems.
A disadvantage is that an application program would have to provide all of the
services it requires. If it only interacts with the hardware in a small number of
well-defined ways, it might be worthwhile.
[Section 1.1]
3. Most single user, personal computers are now multitasking – there is more than one
program running at the same time. There is a need to provide virtual memory,
manage and share I/O devices, and provide a network protocol stack.
[Section 1.2]
4. Distinguish Windows, which is a GUI, from NT, the underlying operating system.
This is the point of the question – distinguish the operating system from the
interface.
[Section 1.3]
5. The earliest machines were so primitive that there really was nothing for an
operating system to do. Today we both need them, to handle all of the functions
described in Section 1.2, and also we have the processing power available to run
them.
[ Section 1.4.]
6. The question is designed to drive the student to consider these developments.
There is no one correct answer.
[Section 1.4]
7. Alpha, arm, mips, M68K, s390, spark. Look at the names of the subfolders in the
include directory.
[Section 1.4.]
8. Everybody is entitled to their own guess here. One possibility to play with would be
the integration of the memory manager and I/O manager into one storage manager.
9. Backups, setting up blocks of new accounts, clearing /tmp directories, analyzing log
files for traces of attempted breakins.
[Section 1.5]
10. Students who have never experienced a batch environment find it difficult to
envisage what is involved. Everyone is agreed that programs should be properly
designed, and even hand-tested beforehand. So the discipline involved in a batch
environment is invaluable. But the low productivity probably outweighs that on the
other side.
[Section 1.5]
© John O’Gorman 2000
11. This harks back to Q.3. A user can only interact with one running program at a time.
But others can be running in the background. [Section 1.5]
12. Examples would be number-crunching super computers. In general, any situation
where it is not economically feasible to provide one individual workstation with
seldom used, expensive, hardware.
[Section 1.5]
13. There are an increased number of points of failure, not only on your own machine,
but also the network and server(s). A network has a large number of individual
points of failure. So you may be unable to work because some server (or hub) you
did not even know existed, is not functioning. Then there are the security problems
resulting from being networked.
[Section 1.5]
14. The question is prompted by the fact that neither Beck nor Maxwell has one.
Maxwell Figure 3.2 is not really a breakdown of the kernel. Card Figure 2.2 would
suggest that things are more complicated.
[Section 1.6]
© John O’Gorman 2000