Beruflich Dokumente
Kultur Dokumente
Kernel:
Kernel is the core part of Linux. It is responsible for all major activities of this
operating system. It is consists of various modules and it interacts directly with the
underlying hardware. Kernel provides the required abstraction to hide low level hardware
details to system or application programs.
System Library:
System Utility:
System Utility programs are responsible for doing specialized, individual level
tasks.
Structure/Design Of LINUX:-
An operating system is an interface between the user of a computer and the computer
hardware. It is a collection of software that manages computer hardware resources and offers
common services for programs of the computer. The short term of the operating system is OS.
And, it is, an essential component of the system software in a computer system. The main
purpose of an OS is to afford an environment in which a user can execute a program in an
efficient or convenient manner. This article gives an overview of what is the Linux Operating
System; the types of operating systems; their architecture and features.
Operating systems are categorized into six types based on the types of computers they
control such as single user single task operating systems, real time operating systems, single
user, multitasking operating systems, multiuser operating systems, distributed operating systems,
and embedded operating systems. The typical services that an operating system provides
include: a task scheduler, memory manager, disk manager, network manager, Other I/O services
and Security manager.
Memory Management Techniques in LINUX:-
The Linux memory manager implements demand paging with a copy-on-write strategy
relying on the 386's paging support. A process acquires its page tables from its
parent (during a fork()) with the entries marked as read-only or swapped. Then, if the process
tries to write to that memory space, and the page is a copy-on-write
page, it is copied, and the page is marked read-write. An exec() results in the reading in of a page
or so from the executable. The process then faults in any other
pages it needs.
Each process has a page directory which means it can access 1 KB of page tables pointing to 1
MB of 4 KB pages which is 4 GB of memory. A process' page
directory is initialized during a fork by copy_page_tables(). The idle process has its page
directory initialized during the initialization sequence.
Each user process has a local descriptor table that contains a code segment and data-stack
segment. These user segments extend from 0 to 3 GB (0xc0000000). In
On the 80386, linear address run from 0GB to 4GB. A linear address points to a particular
memory location within this space. A linear address is not a physical
address--it is a virtual address. A logical address consists of a selector and an offset. The selector
points to a segment and the offset tells how far into that segment
The kernel code and data segments are priveleged segments defined in the global descriptor table
and extend from 3 GB to 4 GB. The swapper page directory
(swapper_page_dir is set up so that logical addresses and physical addresses are identical in
kernel space.
The space above 3 GB appears in a process' page directory as pointers to kernel page tables. This
space is invisible to the process in user mode but the mapping
becomes relevant when privileged mode is entered, for example, to handle a system call.
Supervisor mode is entered within the context of the current process so
address translation occurs with respect to the process' page directory but using kernel segments.
This is identically the mapping produced by using the swapper_pg_dir
and kernel segments as both page directories use the same page tables in this space.
Only task[0] (the idle task, sometimes called the swapper task for historical
reasons, even though it has nothing to do with swapping in the Linux implementation) uses
the swapper_pg_dir directly.
The upshot is that whenever the linear address is above 0xc0000000 everything uses the same
kernel page tables.
Here is a summary of some of the data kept in the process table which is used for memory
managment:
rss
number of resident pages.
swappable
if 0, then process's pages will not be swapped.
kernel_stack_page
pointer to page allocated in fork.
saved_kernel_stack
V86 mode stuff
struct tss
Stack segments
esp0
kernel stack pointer (kernel_stack_page)
ss0
kernel stack segment (0x10)
esp1
= ss1 = esp2 = ss2 = 0
unused privelege levels.
Direct-Attached Storage:-
Linux supports a large variety of DAS interfaces, including old standards like
parallel Advanced Technology Attachment (ATA)—Integrated Drive Electronics [IDE]/ATA—
parallel SCSI, and Fibre Channel as well as new storage interfaces like serial attached SCSI
(SAS), serial ATA (SATA), and external SATA (eSATA). You'll also find advanced storage
technologies such as USB3 (Extensible Host Controller Interface [xHCI]) and Firewire (Institute
of Electrical and Electronics Engineers 1394).
Network-Attached Storage:-
Last but not least is NAS. NAS is a consolidation of storage over a network for
access by heterogeneous clients at the file level. Two of the most popular protocols, which are
fully supported in Linux, are Network File System (NFS) and Server Message Block/Common
Internet File System (SMB/CIFS).
Although the original SMB implementation was proprietary, it was reverse-engineered to be
supported in Linux. The later SMB revisions were openly documented to allow simpler
development in Linux.
Linux has continued to evolve with the various enhancements and extensions made to NFS. NFS
is now a stateful protocol and includes optimizations for data and metadata separation as well as
data access parallelism. You can read more about the evolution of NFS using the links in Related
topics. As with Ethernet-based SANs, 10GbE support in Linux enables high-performance NAS
repositories.
Applications Of LINUX:-