Open-Source Operating Systems
Download
Report
Transcript Open-Source Operating Systems
First lecture
Lecture note
ELearning web site :
http://scholar.cu.edu.eg/?q=nermin-hamza/
Abraham Silberschatz, Peter B. Galvin, Greg
Gagne , “Operating System Concepts” , 8th
edition Paperback, 2010
Vijay Shukla “ operating systems”, S K Kataria
& Sons, third edition 2011
Mid term
20%
Lab or assignments
10%
Final exam
70%
-------------------------------------Total
100%
The 1960’s definition of an operating system is
“the software that controls the hardware”.
An operating system is the set of programs that
controls a computer.
Some examples of:
operating systems are UNIX, Mach, MS-DOS, MSWindows, Windows/NT, Chicago, OS/2, MacOS,
VMS, MVS, and VM.
Computer system can be divided into four components
Hardware – provides basic computing resources
CPU, memory, I/O devices
Operating system
Controls and coordinates use of hardware among various
applications and users
Application programs – define the ways in which the system
resources are used to solve the computing problems of the users
Word processors, compilers, web browsers, database systems,
video games
Users
People, machines, other computers
The operating system comprises a set of
software packages that can be used to
manage interactions with the hardware.
Kernel
Shell
The kernel:
Portion of operating system
that is in main memory
which represents the operating
system's basic functions such
as management of memory,
processes, files, main
inputs/outputs and
communication functionalities.
The shell:
allowing communication with the
operating system via a control language,
letting the user control the peripherals
without knowing the characteristics of the
hardware used, management of physical
addresses, etc.
To hide details of hardware by creating
abstraction
To allocate resources to processes (Manage
resources)
Provide a pleasant and effective user interface
Even though, not all systems have the same
structure many modern operating systems
share the same goal of supporting the
following types of system components
Process Management
Main-Memory Management
File Management
I/o Management
Secondary-Storage Management
Networking
Protection System
1- Process Management
a process is program in execution
The five major activities of an operating system in
regard to process management are:
Creation and deletion of user and system
processes.
Suspension and resumption of processes.
A mechanism for process synchronization.
A mechanism for process communication.
A mechanism for deadlock handling.
2- Main-Memory Management
Main-Memory is a large array of words or bytes
The major activities of an operating in regard to
memory-management are:
Keep track of which part of memory are
currently being used and by whom.
Decide which process are loaded into memory
when memory space becomes available.
Allocate and de-allocate memory space as
needed.
3- File Management
A file is a collected of related information defined by its
creator. Computer can store files on the disk (secondary
storage)
The five main major activities of an operating system
in regard to file management are
1.
The creation and deletion of files.
2.
The creation and deletion of directions.
3.
The support of primitives for manipulating files
and directions.
4.
The mapping of files onto secondary storage.
5.
The back up of files on stable storage media
4- I/O System Management
I/O subsystem hides the peculiarities of
specific hardware devices from the user.
5- Secondary-Storage Management
Secondary storage consists of tapes, disks, and
other media.
The three major activities of an operating system in
regard to secondary storage management are:
1. Managing the free space available on the
secondary-storage device.
2. Allocation of storage space when new files
have to be written.
3. Scheduling the requests for memory access.
6- Networking
A distributed systems is a collection of
processors that do not share memory,
peripheral devices, or a clock.
The processors communicate with one another
through communication lines called network.
The communication-network design must
consider routing and connection strategies, and
the problems of contention and security.
7- Protection System
Protection refers to mechanism for controlling the
access of programs, processes, or users to the
resources defined by a computer system
8- Command Interpreter System
is an interface of the operating system with the
user
The main function of a command interpreter is
to get and execute the next user specified
command
Program Execution
I/O Operations
allow the user to execute programs
operating systems by providing I/O makes it
convenient for the users to run programs
File System Manipulation
The output of a program may need to be written into
new files or input taken from some files.
Communications
It may be between processes running on the
same computer or running on the different
computers.
Error Detection
Error is one part of the system may cause
malfunctioning of the complete system.
A general-purpose computer system consists of
a CPU and a number of device controllers that
are connected through a common bus that
provides access to the shared memory.
Device controller for every device:
Each device controller is in charge
of a specific type ofdevice.
Depending on the controller more
than one evice may be attached.
Device driver in O.S. for every
device for interface. It loads the
appropriate registers within the
device controller.
The Controller is a piece of hardware that
lets the computer's motherboard
communicate with device
The driver is a piece of software that tells the
operating system how to communicate
with a specific bit computer hardware.
For a computer to start running—for instance,
when it is powered up or rebooted—it needs to
have an initial program to run.
Power on self test(POST)
Bios Sector
Boot Sector
Configuration Files Loading
POST: in this step the computer checks
itself to see if the basic devices(keyboard,
mouse, video etc..) are connected with the
processor . It sends predefined signals to
these devices and expects pre-defined
responses back from these devices.
BIOS : (basic input output system): part of
ROM and perform checking the memory
system.
Boot Sector Reading: BIOS reads the disk
sector where files are needed to start the
operating system. The area of the disk
where there files are located is called Boot
Sector.
Once these files are loaded , few more
configuration files are also required which
contains what to do upon the start of
computer
Bootstrap :
is a technique by which a simple
computer program activates a more
complicated system of programs.
bootstrap program is loaded at
power-up or reboot
Typically stored in ROM or EPROM,
generally known as firmware
Initializes all aspects of system
Loads operating system kernel and
starts execution
Real-Time Embedded Systems
General-purpose computers, running standard
operating systems—such as UNIX—
Special-purpose applications are hardware devices
with a special-purpose embedded operating system
providing just the functionality desired
A real-time system is used when rigid time
requirements have been placed on the operation of a
processor or the flow of data
control devices in a dedicated application or Sensors
bring data to the computer.
A real-time system functions correctly only if it returns
the correct result
within its time constraints
Multimedia Systems
operating systems are designed to handle
conventional data such as text files.
Multimedia data consist of audio and video
files as well as conventional files.
Multimedia application often includes a
combination of both
Handheld Systems
Handheld systems include personal digital
assistants (PDAs), such as Palm and PocketPCs, and cellular telephones.
many of which use special-purpose embedded
operating systems.
Open-Source Operating Systems
Open-source operating systems are those made
available in source-code format rather than as
compiled binary code.
Linux is the most famous open- source operating
system, while Microsoft Windows is a well-known
example of the opposite closed source approach
benefits to open-source operating systems,
including a community of interested (and usually
unpaid) programmers who contribute to the code
by helping to debug it, analyze it, provide support,
and suggest changes.
more secure than closed-source code