2. Group Members
• Syed Asad Ali :20014198-041
• Ali Husnain :20014198-023
• Aoun Sajid: 20014198-018
• Hammad:20014198-043
3. What is operating System?
• Operating System is system software. The communication between a
user and a system takes place with the help of an operating
systems. Windows, Linux, and Android are examples of operating
systems that enable the user to use programs like MS Office, Notepad,
and games on the computer or mobile phone.
4. What is kernel?
• A Kernel is a computer program that is the heart and core of an
Operating System. If your hardware needs to communicate with the
applications it requests the kernel and then kernel allocate the memory
ROM Storage etc. Basic function of the Kernel is to provides memory
management, file management, CPU scheduling, and other
operating system functions through system calls
5. History of Linux
AT&T was dropped from Multics. This led to the invention and
implementation of the Unix OS in 1969. Unix was created by American
Computer Science legends Kenneth Lane Thompson and Dennis
Macalister Ritchie of AT&T Bell Labs. And the first version was released in
1970.
6. Linux History
Unix was originally developed in the 1970s, Unix was one of the first OSes
to be written in the C programming. And there comes the future base of
many programming languages! C added portability and availability to UNIX
and thus it became increasingly popular, widely adopted, modified, and
copied by businesses and academic institutions across the globe. AT&T
was the sole owner of the UNIX copyrights.
7. History of Linux
• On August 25, 1991, Linus Torvalds began his project while studying at
the University of Helsinki. This very project turned out to be the Linux
kernel. It was based on MINIX. Also, GNU C Compiler was used in the
development.
• Torvalds’ new program was for the hardware used by him and
independent of any OS. Linus aimed to use the functions of his PC
having an 80386 microprocessor.
8. 80386 Microprocessor
• At that time Intel released his new invention 80386 Microprocessor
• Linus aimed to use the functions of his PC having an 80386
microprocessor.
9. History of Linux
Then he was only 21 and announced the new project via a Usenet Newsgroup
comp.os.minix. Usenet Newsgroup is a discussion forums.
10. Naming History
• Linus Torvalds had Freax in mind as the name of Linux. Torvalds created
Freax as an amalgamation of three words – Free, Freak, and X from
UNIX. For about half a year, Linus Torvalds used Freax as his file
storage. Initially, Linux was considered but dismissed as it might sound
“egotistical”.
11. History of the Linux Kernel System
• Version 0.01, dated May 14, 1991. It had no networking, ran only on 80386-
compatible Intel processors and PC hardware, and had extremely limited
device-driver support.The virtual memory subsystem was also fairly basic and
included no support for memory mapped files; however, even this early
incarnation supported shared pages with copy-on-write.The only file system
supported was the Minix file system.
12. History
• Linux 1.0, was released on March 14, 1994.(networking ,support for UNIX
standard ,Device driver support was added in this version Extra hardware
Support etc.)
• In March 1995, the 1.2 kernel was released.(it did support a much wider variety
of hardware, including the new PCI hardware bus architecture.)
• Linux 2.0 in June 1996.(support for multiple architectures, including a 64-bit
native Alpha port, and support for multiprocessor architectures. also available
for the Motorola 68000-series processors and for Sun's SPARC systems.)
• Version 2.0 kernel also offered greatly increased file-system and virtual
memory performance.
13. History
• Linux 2.2 in January 1999( A port for UltraSPARC systems was added.
Networking was enhanced with more flexible firewalling, better routing and
traffic management, and support forTCP large window and selective acks.)
• Advances in the 2.4 and 2.6 releases of the kernel include increased support for
SMP systems, journaling file systems, and enhancements to the memory
management system.The process scheduler was modified inVersion 2.6,
providing an efficient 0(1) scheduling algorithm. In addition, the Linux 2.6
kernel is now preemptive, allowing a process to be preempted while running in
kernel mode.
14. Linux Distribution
• In theory, anybody can install a Linux system by fetching the latest revisions
• of the necessary system components from the FTP sites and compiling them.
• These collections, or distributions, include much more than just the basic Linux
system.
• They typically include extra system-installation and management utilities, as well as
precompiled and ready-to-install packages of many of the common UNIX tools, such
as news servers, Web browsers, text-processing and editing tools, and even games.
• There are lot of Linux distributions if you want to known about them follow the given
link(https://en.wikipedia.org/wiki/List_of_Linux_distributions)
15. Few OfThem
• Red hat Linux
• CentOS
• Fedora Linux(is actually the name of a hat)
• Mandrake Linux etc.
16. What is GNU?
• GNU is an extensive collection of free software, which can be used as an
operating system or can be used in parts with other operating systems.The use
of the completed GNU tools led to the family of operating systems popularly
known as Linux. Most of GNU is licensed under the GNU Project's own General
Public
Fun factAbout GNU
The word GNU stands “GNU's Not Unix “
17. Linux Licensing
The Linux kernel is distributed under the GNU general public license (GPL), the
terms of which are set out the Free Software Foundation. Linux is not public-
domain software. Public Domain implies that the authors have waived copyright
rights in the software, but copyright rights in Linux code are still held by the
code's various authors. Linux is free software, however, in the sense that people
can copy it, modify it, use it in any manner they want, and give away their own
copies, without any restrictions.
18. Linux Design Principles
Main design goals are speed, efficiency, and standardization. documents; at
least two Linux distributions have achieved official POSIX(Portable Operating
System Interface) certification.The Linux programming interface stick to the
SVR4 (SystemV release 4)UNIX semantics, rather than to BSD (Berkeley
Software Distribution) behavior.
19. Components of Linux System
• Kernel:The kernel is responsible for maintaining all the important abstractions of the
operating system, including such things as virtual memory and processes.
• System libraries: The system libraries define a standard set of functions through
which applications can interact with the kernel.These functions implement much of
the operating-system functionality that does not need the full privileges of kernel
code.
• The system utilities are programs that perform individual, specialized
management tasks. Some system utilities may be invoked just once to initialize and
configure some aspect of the system; others known as daemons in UNIX terminology
20. Components of a Linux System
1. Kernel.
2. System libraries.
3. System utilities.
System
Management
Program
User Processor User utility
Program
Complier
System Shared Libraries
Linux Kernel
Loadable kernel modules
22. What is kernel?
• Kernal is upper layyer of cpu
• The kernel is responsible for maintaining all the imporatant abstraction of the os
includes virtual memory and processes.
• Virtual memory:.
is a common techniques in computer os.
Used in hardware and software
23. linux kernel?
• Linux kernel has ability to load and unloaded arbitrary section of kernal code on demand.
• These loadable arbitrary kernel sections run in privileged kernel mode
• As that linux kernel used in mobile.
Example:.Consider that we open a application in android device than next process which are?
Next process create flesh than request memory to allocate than get access from linux kernal
system
• As wo know that anti kernal used in windows.
24. Kernel modules
• Modules: are lumps of code that can be dynamically linked into the kernel at any
point after the system has boot
• Kernel modules theory: there is no restriction on what a kernel module allow to
do;typically a module might implemented a device drivers,a file system,or a
networking protocol.
• Kernel modules are convinet for several reason.
• Linux code is free so anybody wanting to write kernel code is able to compile a
modified kernal And to reboot to load that new functionality.
25. • If you use kernel modules you do not have to make a new kernel to test a
new driver.
• The driver can be compiled on its own and loaded into the already running
kernal.
• OfcouseOnce a new driver Is written it can b distributed as a module so that
others users can benefit from it without having to rebuild their kernels.
26. Example
• A CD ROM driver might be loaded when a CD is mounted and unloaded
from memory when the CD is dismounted from the file system.
27. Modules support three components of
linux.
1. Module management Allows modules to be loaded into memory and to
talk to the rest of the kernel.
2. Driver registration Allows modules to tell the rest of the kernel that a
new drivers has becomes available.
3. Conflict-resolution mechanism Allows different device drivers to reverse
hardware resources and to protect those resources from accidental use by
another driver.
28. Processes management
• Processes
In the linux system, a Processes is something that is currently under execution. So, an active
program can be called a Processes. For example:
when you want to search something on web then you start a browser.
• Processes management
Tunning or controlling a process is called Processes Management.
29. Different between Linux and UNIX
operating system
• Unix system
the suite of programs which make the computer work
• Linux system
an open source operating system (OS)
• Linux must used a process model similar to those of other versions of unix.
• Linux operates differently from UNIX in a few key places
31. The fork() and exec() process model
• Fork() system call is used forCreating a new process.
• Exec() system call is used to execute a process.
32. Basic principle of unix process model
• Is to separate to operation the creation of a process and and running of anew
process.
• A new process is created by the fork() system call.
• A new program in running by the exec () system call.
• The model has a great advantages Of great simplicity.
• It is not necessary to specify every detailS of the environment of a new program
in a system call that runs that Programs.
• Under unix then a process encompasses all the information that the OS must
maintain to track the context of a singal excecution of a singal program.
33. Cont….
• Under linux we can break downthis context into a number of specific section.
34. Process identity
• Process id(PID) :
Process identifier, also known as process ID or PID, is a unique number to identify each process running in
an operating system such as Linux, Windows, and Unix.
• Process Credentials
Each process must have an associated User id and one or more group ids.
• Process Personality
are not traditionally found on unix System but under linux each process has an associated personality
identifier because can slightly modified the semantics of certain system calls.
35. process scheduling
The process scheduling is the activity of the process manager
that handles the removal of the running process from the CPU
and the selection of another process on the basis of a
particular strategy.
36.
37. Kernel Synchronization
• The Linux kernel is a multitasking kernel, which means that many processes
can run as if they were the only process on the system.The way in which an
operating system chooses which process at a given time has access to a
system's CPU(s) is controlled by a scheduler
38. Symmetric Multiprocessing
• SMP (symmetric multiprocessing) is computer processing done by multiple
processors that share a common operating system (OS) and memory.
39.
40. Management of Physical Memory
• The subsystem of Linux memory management is responsible to manage the
memory inside the system.
41. • ZONE_DMA—
• This zone contains pages that can undergo DMA.
• ○ ZONE_DMA32—
• This zone contains pages that can undergo DMA. and are accessible only by 32-bit devices.
• ○ ZONE_NORMAL—
• This zone contains normal, regularly mapped, pages.
42. slab
• In Linux, a slab may be in one of three possible states:
• 1. Full. All objects in the slab are marked as used.
• Empty. All objects in the slab are marked as free.
• Partial.The slab consists of both used and free objects.
43. Virtual Memory
• Linux supports virtual memory, that is, using a disk as an extension of RAM
so that the effective size of usable memory grows correspondingly.
47. FILE SYSTEM:
•In the major functionalities of OS one of the most
important is file system.
•In every OS we will find one module that is File
System.
•DOS uses Flat File System
•UNIX uses Unix File System
•LINUX uses Extended File System
48. FILE SYSTEM:
•A FS is a software that manages how the Data will be
stored and fetched in the form of files.
•USER FILE Folder/Directory FS
•When we create a file FS devides files into blocks
•And stores these blocks on the sectors of Hard Disk
•FS manages the mapping
49. LINUX FILE SYSTEM:
•Everything linux operating system is a file.
•File System stores in hierarchy of directories and
files
50. TYPES OF FILE SYSTEM:
•XFS
•ext
•ext2fs
•ext3fs
•ext4fs
51. Ext File System
• It was primarily developed for MINIX OS.
• It is an older version, and is no longer used due to some limitations.
• This file system was severely restricted by 14-character file-name limits
• maximum file-system size was 64 MB.
• A later redesign of this file system to improve performance and scalability and to
add a few missing features led to the second extended file system (ext2fs)
52. Ext2 File System
• Ext2fs is standard system for linux OS.
• Max File Size = 2TB
• MaxVolume Size = 4TB
• Max Name Size = 255 charachter
• Support: Unsupport:
posix permition(linux) Recovery
file compresion Disk snapshot
53. Ext3 File System
• Update version of ext2fs
• Max File Size = 2TB
• MaxVolume Size = 4TB
• Max Name Size = 255 charachter
• Support:
1. posix permition(linux)
2. file compresion
3. Recovery & Disk snapshot
4. journaling
54. Journaling
• When a process is running and it terminated/stopped due any reason
it lost the previously completed data of the process.
• We use Journaling method for the recovery of that data after the failiure of the system.
• Modifications to the file system are sequentially written to a journal
on permanent storage.
• Once a transaction is written to the journal it is considered to be committed, and the
system call modifying the file system (write()) can return to the user process, allowing it to
continue execution.
• Journaling is not provided in ext2fs.
55. INPUT AND OUTPUT
• Linux follows the philosophy that every thing is a file.
• Such as Mouse, keyboard, printer , moniter etc.
• The I/O system in linux is like that in any unix system.
• Here all device drivers apear as normal files.
• User can access any device as he open other file.
• Administrator can set access permisions for each or any device.
56. Types
• Linux splits all devices into three classes:
• Block devices
• Character devices
• Network devices
57. BLOCK DEVICES
•It includes all devices such as CD ROM, hard disk and
flash memory etc.
•It deals data in the form blocks.
•They read only blocks of data .
•These devices can be accessed randomly.
58. cont.
• Block devices provide the main iterface to all disk devicesin a system, or block
devices allow random access and fixed sized blocks of data, including hard disk,
floppy disk, CD ROMs etc.
• A separate list of requests is kept for each block device.
• When a requst is accept for processing by a block device driver, it’s not removed
from the list.
it removed after only the input output is complete.
59. BLOCK DEVICES cont..
• Problem:
• STARVATION
• DEADLINE
• The fundamental problem with the elevator algorithm is that I/0
• operations concentrated in a specific region of the disk can result in starvation
• of requests that need to occur in other regions of the disk.
60. CHARACHTER DEVICES
•It Includes devices such as Mice and Keyboards.
•These devices are access only sequentially.
•They read data character by character in bits.
61. cont.
• A character-device driver can be almost any device driver that does not offer
random access to fixed blocks of data.
• Any character-device drivers registered to the Lim.JX kernel must also
register a set of functions that implement the file I/0 operations that the
driver can handle.
• The kernel performs almost no preprocessing of a file read or write request
to a character device; it simply passes the request to the device in question
and lets the device deal with the request
62. NETWORK DEVICES
• These are dealt differently from Block and Character devices.
• Users cannot transfer data to Network Devices; instead they must
communicate indirectly by opening a conection to the kernal’s
networking sub-system.