2. WHAT IS INSIDE
1 Introduction
2 Need of the study of Software
Architecture
3 System Structure
4 Subsystem Inspection
5 Future Work
6 References
3. INTRODUCTION
Linus B. Trovalds wrote the Linux Kernel in 1991.
Free and Open Source
A Unix compatible system
Originally developed to run on the Intel 80386
4. Need for the Software
Architecture Study
Enhance communication among stakeholders of the
system
Support for earlier design decisions.
Understand transferable abstraction of a system
Software maintenance
Exploit the FOSS utilities. To extend, remove,
change,modify functionality of an existing system.
5. Linux System Structure
Criticism-“Linux kernel is useless by itself,it
participates as one layer in the overall system.”
Within the kernel layer Linux has 5 major
subsystems.
Process Scheduler
Memory Manager
Virtual File System
Network interface
Inter process communication
7. Sub System Inspection - Process
Scheduler
It is the heart of Linux Operating System
Functions:
Allows processes to make new copies.
Scheduling
Interrupt Handling
Loading, Executing and Terminating of processes.
Timer Management
Support for Dynamically loaded modules.
9. Sub System Inspection –Memory
Manager
Provides:
Large address space
Protection
Memory mapping
Fair access to Physical memory
Shared Memory
Memory Manager abstracts details of all hardware platforms
into one common interface. It maps virtual addresses to
physical memory addresses.
It also swaps out processes to allow system to execute processes
that use more physical memory than available on the system.
Daemon threads
11. Subsystem Inspection: Virtual
File System
Linux supports:
Multiple hardware devices
Multiple logical File System
Multiple Executable Formats
Homogenity
Performance
Safety
Security
12. Subsystem Inspection:
Virtual File System
The FS of Linux has 2 conceptual layers
1. Device Driver Layer
2. Virtual File system
Add new Device Driver by simply implementing the
abstract interface,
Use of Buffer Cache for optimized Performance.
Data Transfer can takes place by
1.Polling 2.DMA 3.Interrupts
To support Virtual FS Linux has inodes.It makes all
files appear the same to other Linux subsystems
14. Subsystem Inspection:Inter Process
Communication
Concurrent Execution of processes for
*Resource Sharing
*Synchronization
*Exchange of data
Linux provides following forms of IPC
-Signals
-Wait Queues
-File Locks
-Pipes and Named Pipes
System VIPC:
16. Subsystem Inspection-
Network Interface
Linux supports network connections between machines and
socket communication model.
2 types of sockets are identified
-BSD sockets -INET sockets
BSD abstracts the communication details to a common
interface. This provides greater portability
Linux provides two transfer layer protocols
UDP
TCP
INET sits on top of both IP and Transport Protocol.
17. Subsystem Inspection-Network
Interface
Three types of connections
-Serial Line connections
-Parallel Line connections
-Ethernet connections
An address Resolver (ARP)is responsible for
converting the IP addresses into physical ones. This is
necessary as sockets deal with IP addresses which
cannot be directly used by hardware devices.
19. Conclusion
Linux has since been ported to more computer hardware platforms than
any other operating system.
It is a leading operating system on servers and other big iron systems
such as mainframe computers and supercomputers more than 90% of
today's 500 fastest supercomputers run some variant of Linux .
Linux also runs on embedded systems such as mobile phones, tablet
computers, network routers, televisions and video game consoles the
Android system in wide use on mobile devices is built on the Linux
kernel.
Typically Linux is packaged in a format known as a Linux distribution
for desktop and server use. Some popular mainstream Linux
distributions include Debian , Fedora and openSUSE.
20. Future Work
Conceptual Architecture shows few dependencies among the
components than concrete architecture
The PBS tools should be adjusted to handle the Linux source
structure. The conceptual and concrete architectures we
have presented should be refined through discussions with
the Linux developer community. After refinement, the two
models can be compared using the Reflexion model [Murphy
1995].
21. References
[Balasubramanian 1993]
Balasubramanian, K. and Johnson D.: "Linux Memory
Management Overview," The Linux Kernel Hacker’s
Guide,
http://www.redhat.com:8080/hypernews/get/memory/memory.html
[Tanuan 1998]
Tanuan,M.: "An Introduction to the Linux Operating System
Architecture", http://www.grad.math.uwaterloo.ca/~mcta
Sahun Siddiqi,Meyer Tanaun,Ivan Bowman:
“Concrete Architecture of Linux”