Linux kernel and operating system

Operating System — Linux

Linux is one of popular version of UNIX operating System. It is open source as its source code is freely available. It is free to use. Linux was designed considering UNIX compatibility. Its functionality list is quite similar to that of UNIX.

Components of Linux System

Linux Operating System has primarily three components

Kernel − Kernel is the core part of Linux. It is responsible for all major activities of this operating system. It 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 libraries are special functions or programs using which application programs or system utilities accesses Kernel’s features. These libraries implement most of the functionalities of the operating system and do not requires kernel module’s code access rights.

System Utility − System Utility programs are responsible to do specialized, individual level tasks.

Kernel Mode vs User Mode

Kernel component code executes in a special privileged mode called kernel mode with full access to all resources of the computer. This code represents a single process, executes in single address space and do not require any context switch and hence is very efficient and fast. Kernel runs each processes and provides system services to processes, provides protected access to hardware to processes.

Support code which is not required to run in kernel mode is in System Library. User programs and other system programs works in User Mode which has no access to system hardware and kernel code. User programs/ utilities use System libraries to access Kernel functions to get system’s low level tasks.

Basic Features

Following are some of the important features of Linux Operating System.

Portable − Portability means software can works on different types of hardware in same way. Linux kernel and application programs supports their installation on any kind of hardware platform.

Open Source − Linux source code is freely available and it is community based development project. Multiple teams work in collaboration to enhance the capability of Linux operating system and it is continuously evolving.

Multi-User − Linux is a multiuser system means multiple users can access system resources like memory/ ram/ application programs at same time.

Multiprogramming − Linux is a multiprogramming system means multiple applications can run at same time.

Hierarchical File System − Linux provides a standard file structure in which system files/ user files are arranged.

Shell − Linux provides a special interpreter program which can be used to execute commands of the operating system. It can be used to do various types of operations, call application programs. etc.

Security − Linux provides user security using authentication features like password protection/ controlled access to specific files/ encryption of data.

Architecture

The following illustration shows the architecture of a Linux system −

The architecture of a Linux System consists of the following layers −

Hardware layer − Hardware consists of all peripheral devices (RAM/ HDD/ CPU etc).

Kernel − It is the core component of Operating System, interacts directly with hardware, provides low level services to upper layer components.

Shell − An interface to kernel, hiding complexity of kernel’s functions from users. The shell takes commands from the user and executes kernel’s functions.

Utilities − Utility programs that provide the user most of the functionalities of an operating systems.

Источник

The Linux Kernel Archives

What is Linux?

Linux is a clone of the operating system Unix, written from scratch by Linus Torvalds with assistance from a loosely-knit team of hackers across the Net. It aims towards POSIX and Single UNIX Specification compliance.

It has all the features you would expect in a modern fully-fledged Unix, including true multitasking, virtual memory, shared libraries, demand loading, shared copy-on-write executables, proper memory management, and multistack networking including IPv4 and IPv6.

Although originally developed first for 32-bit x86-based PCs (386 or higher), today Linux also runs on a multitude of other processor architectures, in both 32- and 64-bit variants.

New to Linux?

If you’re new to Linux, you don’t want to download the kernel, which is just a component in a working Linux system. Instead, you want what is called a distribution of Linux, which is a complete Linux system. There are numerous distributions available for download on the Internet as well as for purchase from various vendors; some are general-purpose, and some are optimized for specific uses. We currently have mirrors of several distributions available at https://mirrors.kernel.org/.

Note, however, that most distributions are very large (several gigabytes), so unless you have a fast Internet link you may want to save yourself some hassle and purchase a CD-ROM with a distribution; such CD-ROMs are available from a number of vendors.

Mailing lists

The Linux kernel is discussed on the linux-kernel mailing list at vger.kernel.org. Please read the FAQ before subscribing.

Читайте также:  Команда для изменения времени windows

Although there is no official archive site, unofficial archives of the list can be found at:

Other resources

Social

This site is operated by the Linux Kernel Organization, Inc., a 501(c)3 nonprofit corporation, with support from the following sponsors.

Источник

Kernel in Operating System

Kernel is central component of an operating system that manages operations of computer and hardware. It basically manages operations of memory and CPU time. It is core component of an operating system. Kernel acts as a bridge between applications and data processing performed at hardware level using inter-process communication and system calls.

Kernel loads first into memory when an operating system is loaded and remains into memory until operating system is shut down again. It is responsible for various tasks such as disk management, task management, and memory management.

Attention reader! Don’t stop learning now. Practice GATE exam well before the actual exam with the subject-wise and overall quizzes available in GATE Test Series Course.

It decides which process should be allocated to processor to execute and which process should be kept in main memory to execute. It basically acts as an interface between user applications and hardware. The major aim of kernel is to manage communication between software i.e. user-level applications and hardware i.e., CPU and disk memory.

Objectives of Kernel :

  • To establish communication between user level application and hardware.
  • To decide state of incoming processes.
  • To control disk management.
  • To control memory management.
  • To control task management.

Types of Kernel :

1. Monolithic Kernel –
It is one of types of kernel where all operating system services operate in kernel space. It has dependencies between systems components. It has huge lines of code which is complex.

Example :

  • Advantage :
    It has good performance.
  • Disadvantage :
    It has dependencies between system component and lines of code in millions.

2. Micro Kernel –
It is kernel types which has minimalist approach. It has virtual memory and thread scheduling. It is more stable with less services in kernel space. It puts rest in user space.

Example :

  • Advantage :
    It is more stable.
  • Disadvantage :
    There are lots of system calls and context switches.

3. Hybrid Kernel –
It is the combination of both monolithic kernel and mircrokernel. It has speed and design of monolithic kernel and modularity and stability of microkernel.

Example :

  • Advantage :
    It combines both monolithic kernel and microkernel.
  • Disadvantage :
    It is still similar to monolithic kernel.

4. Exo Kernel –
It is the type of kernel which follows end-to-end principle. It has fewest hardware abstractions as possible. It allocates physical resources to applications.

Example :

  • Advantage :
    It has fewest hardware abstractions.
  • Disadvantage :
    There is more work for application developers.

5. Nano Kernel –
It is the type of kernel that offers hardware abstraction but without system services. Micro Kernel also does not have system services therefore the Micro Kernel and Nano Kernel have become analogous.

Example :

  • Advantage :
    It offers hardware abstractions without system services.
  • Disadvantage :
    It is quite same as Micro kernel hence it is less used.

Источник

What is an OS kernel ? How does it differ from an operating system? [closed]

Want to improve this question? Update the question so it’s on-topic for Stack Overflow.

Closed 8 years ago .

I am not able to understand the difference between a kernel and an operating system. I do not see any difference between them. Is the kernel an operating system?

11 Answers 11

A kernel is the part of the operating system that mediates access to system resources. It’s responsible for enabling multiple applications to effectively share the hardware by controlling access to CPU, memory, disk I/O, and networking.

An operating system is the kernel plus applications that enable users to get something done (i.e compiler, text editor, window manager, etc).

The technical definition of an operating system is «a platform that consists of specific set of libraries and infrastructure for applications to be built upon and interact with each other». A kernel is an operating system in that sense.

The end-user definition is usually something around «a software package that provides a desktop, shortcuts to applications, a web browser and a media player». A kernel doesn’t match that definition.

So for an end-user a Linux distribution (say Ubuntu) is an Operating System while for a programmer the Linux kernel itself is a perfectly valid OS depending on what you’re trying to achieve. For instance embedded systems are mostly just kernel with very small number of specialized processes running on top of them. In that case the kernel itself becomes the OS itself.

I think you can draw the line at what the majority of the applications running on top of that OS do require. If most of them require only kernel, the kernel is the OS, if most of them require X Window System running, then your OS becomes X + kernel.

Источник

Documentation of Operating Systems and Developers

History of the Linux Kernel

Development of Linux

1986 Linus (Benedict) Torvalds programmed its own driver for its floppy controller. He learned intensively hardware programming and became better knowledge about his Sinclair computer with Q-DOS. Additionally he provided his own programmer Tools. When 1991 the 386-Intel PC became modern, he got one PC to learn about the programming of 386 CPUs. As operating system the Unix derivate MINIX was used, he has know Unix already since 1990 from its university. Minix was developed by Andrew Tanenbaum as learning system and was particularly used at universities. The written book from A. Tanenbaum «Operating Systems: Design and Implementation» is about operating system concepts and Minix, which became the favourite book from Torvalds. The source code of Minix is open source, any modifications are bound to the license conditions.

Читайте также:  Заставка завершения работы windows

Because he did not find the provided terminal emulator program in Minix acceptable, he began his project to code his own and better terminal emulator with more functions on hardware level. In addition he programmed his own drivers for the data medium access and the file system and others in assembler. With these functions the software becomes the ability to upload and download from the Internet. In the line of the development terminal program got more and more functions so he made the decision to enhance it to a operating system. Its operating system was derivated from concepts of Minix but completely written from scratch beginning at the Kernel. After long programming evenings it was so far. On 17th September 1991 the operating system Freax version 0.01 was finished, as development environment was used still the MINIX for 386 CPUs. It contained already the GNU Shell bash and the GNU C-compiler GCC from Richard Stallman, which counts to the standard programs for the meantime named operating system Linux. Because Linux profits particularly from the GNU software pool, it is generally called GNU/Linux.

After approximately 6 months Freax was renamed in Linux. Already on 3th July 1991 he had asked for the POSIX standards in the minix-newsgroup, he presented on 25th August 1991 his project in public and asked for suggestions for further functions and extensions. The source code was made freely accessible by ftp. To communicate with other programmers and interested people he used the Maylinglist «Linux-activists@niksula.hut.fi» and the newsgroup «comp.os.minix» for contact and progress messages. Later its own Maylinglist and forums were created. In the line of the development he received wished postcards from all over the world with thankfully words. The project has got a strong self-dynamic in the InterNet and was maintained by the community. The rights at the brand name Linux was transferred after a legal incident to Linus Torvalds and later distributed on several persons to ensure the further development and to avoid a «takeover by enemys». The symbol figure «Tux the penguin» was selected because Torvalds was bitten by a penguin in a Finnish zoo. The self-willed animal had impressed him in such a way, which it gave to its operating system this guidance figure. At the beginning Linux doesn’t contain any installation script or graphical installation menu. To make the installation from Linux easier and automated Owen LeBlanc from the Manchester Computing Centre published the MCC Interim release, this was the key for the automated installation of today’s distributions.

/ — Root-Directory
/bin — system tools
/boot — kernel, bootmanager
/cdrom — Mount-Point for CD-ROM drives (optional)
/dev — device files
/etc — configuration files
/floppy — Mount-Point for floppy drive(optional)
/home — user directory
/lib — shared Libraries
/mnt — mount Verzeichnis
/opt — additional software, GUI
/proc — system informations
/root — root user directory
/sbin — system programs for root
/tmp — temporary files
/usr — applications for the GUI, source code (kernel)
/var — various files, log files

mount — Mounts a filesystem
umount — Unmounts a filesystem
fdisk — Used to create or delete of partitions on a hard drive
hdparm — Get/set various hard disk geometry parameters
rm — Remove files
ls — List the contents of every subdirectory
dir — List the current directory content
cd — Change the current directory
dd — Bit based disk or data copy
ps — shows active processes
df — Shows the free space of any filesystem
find — Search for a file
mkdir — Make a directory
mv — Move or rename a file
vi — Editor with a command mode and text mode
killall — Kill processes by name
ifconfig — Configure a network interface
netstat — Information about the network connections
mc — File manager with visual shell

The advantages of a free development and distribution are among other things in the user orientation because no unnecessary features are integrated that nobody does need. That is done via the dynamic development process, which select principle from 1.000 current ideas the most necessary features out that taken up to the official system core. In order to meet all requirements, the Kernel series of 2.2.x (max. 2 GByte RAM addressably) exists beside the newer 2.4.x (max. 64 GByte RAM addressably) in coexistence. By the dynamic development a rigid marketing plan that rules about the release date is unimportant. In addition new versions are only published with proven reliability and are not determined if the schedule points to the best sales favorable time. While Linux 0.01 with the most fundamental components and instructions consisted of 10.000 code lines, the source code increased now in version of 2.4.9 to approximately 3.7 million code lines including many hardware drivers. Linux regards the specifications from system V and BSD Unix programs.

Читайте также:  Драйвер сканера mustek bearpaw 2448cs plus для windows 10

Some operating system companies use the open development to add new characteristics into the open source operating system as example the file system support XFS by SGI. Linux and related operating systems are only possible through the work of the InterNet Community that contains the support of developers world-wide and increasingly development support by IT companies. Therefore there are so-called developer kernel releases with odd version number like 2.3 and stable releases with straight numbers like 2.4 for the stable use for user and employment in companys. Matthias Ettrich announced the project Kool Desktop Environment (KDE) in the Usenet posting of October 14th, 1996. The GUI library Qt by Trolltech is used for the development. The first KDE main release happens in July 1998, the second release in October 2000, the third release in April 2002. The KDE desktop is besides gnome one of the most used user interfaces.

According to estimations there is at the beginning of 2001 at least 10 million Linux user world-wide, tendency strongly rising. Since about 1997/1998 Linux is regarded strengthened by the IT industry as alternative operating system. In the years 2000/2001 the assumption is expressed, that Linux can also replace the existing commercial Unix variants gradually and wins further agreements. In the heterogeneous network Linux co-operates by the native support of network protocols with Macintosh, Novell and Windows.

The General Public License version 1 was founded 1989 of Richard M. Stallmann. The GPL version 2 was written by the Free Software Foundation in 1991, since then the Linux Kernel is put under this licence. The final GPL version 3 came out on 2007-06-29. The license model GPL that Linux underlies, offers to the developer extensive liberties and spreads transfers of technology because the knowledge is open. By the open development code audits constantly improve the quality of the source code. By code sighting from various developers the software security is increased and the further development doesn’t depend on probritary manufacturer. Many Linux derivatives are available on the Websites of the Distributors and projects with ftp or HTTP for free Download at no costs. By redundant Mirror servers the operating systems are available in ISO images around the world.

Goals

— Create a better MINIX than MINIX (he was dissatisfied with MINIX)
— Unix derivated operating system for personal computer
— Open Source development
— Programming together with developers from around the world
— User centric development

Linus Torvalds worked from March 1997 till June 2003 for the chip manufacturer Transmeta Corporate in California, well known for the Crusoe processor. He left the company for the OSDL (Open Source Development Lab) to focus on the future development of the Linux Kernel 2.6.x and moved to Portland, Oregon. The OSDL and the Free Standards Group joined together to the Linux Foundation in January 2007. Linus Torvalds is still active maintainer and the main Linux kernel developer since 1991.

Distributors

A Distributor is usually a developer team that takes advance from the Linux system core (Kernel) to offer a installation-able software package. Beside the individually adaptable system core numerous additional applications, driver and assistant are included, which can be installed and configured with the own installation andsetup routine comfortably. Those distributions are made available on the Internet as ISO image or to buy cheap on CD-ROM or DVD medias. The taken money is needed for the developers and the support. Often Linux distributor companies are actively in other open source projects too.
In order to install a Linux distribution they exists different ways of installation. The booting of the installation routine from CD-ROM after the El-Torito standard, DVD, floppy disk (in the meantime rather rare), by network or ftp server after the boot procedure are supported directly. From the large and big offerers of Linux distributions profit small distributors which are aligned to very special operational areas, like data Recovery or software-routers.

30. May 2002: For the first time several large Distributoren united to a large community (see News note). Under the name UnitedLinux was created a common basis for the uniform development of a Linux distribution. Elements of it are guidelines of the Linux standard base. All participants of the partnership let its experiences in the business area and technical knowledge flow together to rise up the market share in the server range. Final desktop versions for customers are provided by each distributor separately. To the Comdex in November 2002 the initiators presented the finished version 1.0 together. United Linux 1.0 is thereby LSB 1.2 and OpenI18N conform and also valid for future versions as standard. The Linux Standard Base 3.1 was published at 2006-06-21. This definition sets new guidelines for desktop applications, a own software development kit (SDK) and the certification for products to the LSB 3.1.

Netcraft published statistics about the share of Linux distributions on web servers in a news of 5th December 2005 on web servers. Red Hat reached up to 34% followed by Debian with 25% and the biggest growth, Fedora 16%, SuSE 11%, cobalt 7%, gentoo 3%, Mandriva and Centos with 3% each.

Источник

Оцените статью