Linux began in 1991 as a personal project by Finnish student Linus Torvalds to create a free operating system kernel. The Linux kernel forms the core of the operating system, providing functions to run processes and access hardware resources. The Linux system consists of the kernel, system libraries that define standard functions for applications to interact with the kernel, and system utilities for maintaining operating system abstractions. The kernel uses both segmentation and paging for memory management, dividing a process's address space into segments with different protection modes and paging small regions of addresses to physical memory.
3. Linux began in 1991 as a personal project
by Finish student Linus Torvalds:
• To create a new free operating system kernel
because UNIX based system which uses before
LUNIX were much expensive.
• The resulting Linux kernel has been marked by
constant growth throughout its history.
• Since the initial release of its source code in 1991, it
has grown from a small number of C files under a
license prohibiting commercial distribution.
4. • Linus Torvalds had wanted to call his
invention Freax , a portmanteau of
"free", "freak", and "x" (as an allusion to
Unix).
• During the start of his work on the
system, he stored the files under the
name "Freax" for about half of a year.
• Torvalds had already considered the
name "Linux", but initially dismissed it
as too egotistical.
5. linux
In 1992, he suggested releasing the
kernel under the GNU General Public
License.
1
In the middle of December 1992 he published
version 0.99 using the GNU GPL.
2
Linux and GNU developers worked to integrate GNU
components with Linux to make a fully functional and free
operating system.
3
Torvalds has stated, "making Linux GPLed was definitely
the best thing I ever did."
4
Linux under the GNU GPL
6. • Various companies have
also helped not only with
the development of the
kernels, but also with the
writing of the body of
auxiliary software, which
is distributed with Linux.
• The thousands of
programmers around
the world that use
Linux and send their
suggested
improvements to the
maintainers.
The largest part of the work on Linux is performed by the community:
7. Linux Design Principles
• Linux is a multiuser, multitasking system with a
full set of UNIX compatible tools.
• Its file system adheres to traditional UNIX
semantics, and it fully implements the standard
UNIX networking model.
• Main design goals are speed, efficiency and
standardization.
8. Linux Design Principles
• Linux is designed to be compliant with the
relevant POSIX documents, at least two Linux
distributions have achieved official POSIX
certification.
• The Linux programming interface adheres to the
SVR4 UNIX semantics, rather than to BSD
behavior.
9. Linux SystemComponents
The Linux system consists of
three important code parts:
It is a program that performs
management work individually and
specifically.
System Utility
Responsible for maintaining all
important abstractions of the
operating system, including things
like processes and virtual memory.
Kernel
It defines a set of standard functions
where applications can interact with
the kernel, and implements almost
all operating system functions that
do not require full rights to the
kernel.
System library
10. Kernel
• The Linux kernel forms the
core of the Linux operating
system.
• It provides all the functions
needed to run the process,
and is provided with system
services to provide settings
and protection for access to
hardware resources.
• The kernel implements all
the features needed to work
as an operating system.
11. Kernel Modules
• Kernel modules are pieces of code that can be
loaded and unloaded into the kernel upon demand.
• To create a kernel module, you can read
The Linux Kernel Module Programming Guide.
• In order to reduce the size of the Linux Kernel, it may be
split into a 'core', and a large set of Kernel Modules.
• They extend the functionality of the kernel without the
need to reboot the system.
12. • In order to reduce the size of the Linux
Kernel, it may be split into a 'core', and a
large set of Kernel Modules.
• A Kernel Module is a small file that may
be loaded into the running Kernel, and
unloaded, at will (the next generation of
the Linux kernel will not allow unloading
modules, unless told otherwise).
• Many functions of the Kernel may either
be compiled into the Kernel directly, or
compiled as Modules.
13. • Modules are split into directories, based on categories:
pcmcia - PCMCIA Drivers, for laptops.
• kernel/net - network-related Modules (firewall, extra
protocols support, etc.)
• kernel/drivers - Drivers for various types of Hardware
(including network Drivers).
• kernel/fs - file-systems support (ext3, vfat, etc.)
• kernel/arch - Architecture-specific support (e.g. Drivers to
handle features of a a specific CPU or motherboard).
14. Memory Management
TextTextTextText
• This includes
implementation of
virtual memory and
demand paging, memory
allocation both for kernel
internal structures and
user space programs,
mapping of files into
processes address space
and many other cool
things.
• Linux memory
management is a
complex system with
many configurable
settings.
15. Linux memory management
The x86 memory management architecture
uses both segmentation and paging.
A segment is a partition of a process's address
space that has its own protection policy. it is
possible to split the range of memory addresses
that a process sees into multiple contiguous
segments, and assign different protection
modes to each.
Paging is a technique for mapping
small (usually 4KB) regions of a
process's address space to chunks of
real, physical memory. Paging thus
controls how regions inside a
segment are mapped onto physical
RAM.
16. 60% 40%
In Linux, the OS desig
ners decided to carve
up the 32 bit address s
pace of each process
in the above way.
17. 01
Modern PowerPoint
Presentation
02
Modern
Presentation
03
Modern
Presentation
04
Modern
ppt
05Modern
one segment
(addresses 0x00000000 through 0xBFFFFF
FF) for user-level, process-specific
data such as the program's code,
static data, heap, and stack. Every
process has its own, independent
user segment.
02
03
• All processes therefore have two segments
(there are some details about additional
segments that I'm hiding)
01
• The same kernel
segment is mapped into
every process, but
processes can access it
only when executing in
protected kernel mode.
18. • Because kernel-critical data structures and the mapping to
physical memory are contained in the kernel segment, it is
imperative that the user-level process can't cause the kernel
to unwittingly read or write memory locations in this segment
• one segment (addresses 0xC0000000 through 0xFFFFFFFF),
which contains kernel-specific data such as the kernel instructions,
data, some stacks on which kernel code can execute, and more
interestingly, a region in this segment is directly mapped to physical
memory, so that the kernel can directly access physical memory
locations without having to worry about address translation.
19. Conclusions
While Linux has been around for a very
long time, it has been ignored for
mainstream desktop use for most of its
existence. Linux is not like a
Mac operating system. In
fact, Linux will run on a wider range of
hardware than even Windows.