Upload
piyushsachdeva22
View
227
Download
0
Embed Size (px)
Citation preview
8/12/2019 Harshit Os File
1/31
HARSHIT(10CS032)
EXPERIMENT-1
AIM: TO STUDY OPERATING SYSTEM
DEFINITION OF OPERATING SYSTEM:
An operating system(OS) is a set of software that managescomputer hardware resources and
provides commonservices forcomputer programs. The operating system is a vital component of
thesystem software in a computer system. Application programs require an operating system to
function.Time-sharing operating systems schedule tasks for efficient use of the system and may
also include accounting for cost allocation of processor time, mass storage, printing, and other
resources.For hardware functions such as input and output andmemory allocation, the operating
system acts as an intermediary between programs and the computer hardware, although the
application code is usually executed directly by the hardware and will frequently make a system
call to an OS function or be interrupted by it. Operating systems can be found on almost any device
that contains a computerfromcellular phones andvideo game
consoles tosupercomputers andweb servers.
Examples of popular modern operating systems includeAndroid,BSD,iOS,Linux,Mac OS
X,Microsoft Windows,Windows Phone, andIBM z/OS. All these, except Windows and z/OS,
share roots inUNIX.
Real-time:Areal-time operating system is a multitasking operating system that aims at executingreal-time applications. Real-time operating systems often use specialized scheduling algorithms so
that they can achieve a deterministic nature of behavior. The main objective of real-time operating
systems is their quick and predictable response to events. They have an event-driven or time-
sharing design and often aspects of both. An event-driven system switches between tasks based on
their priorities or external events while time-sharing operating systems switch tasks based on clock
interrupts.
Multi-user:A multi-user operating system allows multiple users to access a computer system
concurrently. Time-sharing systems can be classified as multi-user systems as they enable multiple-
user access to a computer through the sharing of time. Single-user operating systems, as opposed to
multi-user operating systems, are usable by a single user at a time. Being able to use multiple
accounts on a Windows operating system does not make it a multi-user system. Rather, only the
network administrator is the real user.
Multi-tasking vs. single-tasking:When only a single program is allowed to run at a time, the
system is grouped as a single-tasking system. However, when the operating system allows the
execution of multiple tasks at one time, it is classified as a multi-tasking operating system. Multi-
tasking can be of two types: pre-emptive or co-operative. In pre-emptive multitasking, the
operating system slices the CPU time and dedicates one slot to each of the programs. Unix-like
operating systems such as Solaris and Linux support pre-emptive multitasking, as doesAmigaOS.
Cooperative multitasking is achieved by relying on each process to give time to the other processesin a defined manner.16-bit versions of Microsoft Windows used cooperative multi-tasking.32-
bi i b h Wi d NT d Wi 9 d i l i ki M OS i OS X
http://en.wikipedia.org/wiki/Computer_hardwarehttp://en.wikipedia.org/w/index.php?title=Operating_system_services&action=edit&redlink=1http://en.wikipedia.org/wiki/Computer_programhttp://en.wikipedia.org/wiki/System_softwarehttp://en.wikipedia.org/wiki/Time-sharinghttp://en.wikipedia.org/wiki/Dynamic_memory_allocationhttp://en.wikipedia.org/wiki/System_callhttp://en.wikipedia.org/wiki/System_callhttp://en.wikipedia.org/wiki/Cellular_phonehttp://en.wikipedia.org/wiki/Video_game_consolehttp://en.wikipedia.org/wiki/Video_game_consolehttp://en.wikipedia.org/wiki/Supercomputerhttp://en.wikipedia.org/wiki/Web_serverhttp://en.wikipedia.org/wiki/Android_(operating_system)http://en.wikipedia.org/wiki/BSDhttp://en.wikipedia.org/wiki/IOShttp://en.wikipedia.org/wiki/Linuxhttp://en.wikipedia.org/wiki/Mac_OS_Xhttp://en.wikipedia.org/wiki/Mac_OS_Xhttp://en.wikipedia.org/wiki/Microsoft_Windowshttp://en.wikipedia.org/wiki/Windows_Phonehttp://en.wikipedia.org/wiki/IBM_z/OShttp://en.wikipedia.org/wiki/UNIXhttp://en.wikipedia.org/wiki/Real-time_operating_systemhttp://en.wikipedia.org/wiki/AmigaOShttp://en.wikipedia.org/wiki/16-bithttp://en.wikipedia.org/wiki/32-bithttp://en.wikipedia.org/wiki/32-bithttp://en.wikipedia.org/wiki/32-bithttp://en.wikipedia.org/wiki/32-bithttp://en.wikipedia.org/wiki/16-bithttp://en.wikipedia.org/wiki/AmigaOShttp://en.wikipedia.org/wiki/Real-time_operating_systemhttp://en.wikipedia.org/wiki/UNIXhttp://en.wikipedia.org/wiki/IBM_z/OShttp://en.wikipedia.org/wiki/Windows_Phonehttp://en.wikipedia.org/wiki/Microsoft_Windowshttp://en.wikipedia.org/wiki/Mac_OS_Xhttp://en.wikipedia.org/wiki/Mac_OS_Xhttp://en.wikipedia.org/wiki/Linuxhttp://en.wikipedia.org/wiki/IOShttp://en.wikipedia.org/wiki/BSDhttp://en.wikipedia.org/wiki/Android_(operating_system)http://en.wikipedia.org/wiki/Web_serverhttp://en.wikipedia.org/wiki/Supercomputerhttp://en.wikipedia.org/wiki/Video_game_consolehttp://en.wikipedia.org/wiki/Video_game_consolehttp://en.wikipedia.org/wiki/Cellular_phonehttp://en.wikipedia.org/wiki/System_callhttp://en.wikipedia.org/wiki/System_callhttp://en.wikipedia.org/wiki/Dynamic_memory_allocationhttp://en.wikipedia.org/wiki/Time-sharinghttp://en.wikipedia.org/wiki/System_softwarehttp://en.wikipedia.org/wiki/Computer_programhttp://en.wikipedia.org/w/index.php?title=Operating_system_services&action=edit&redlink=1http://en.wikipedia.org/wiki/Computer_hardware8/12/2019 Harshit Os File
2/31
HARSHIT(10CS032)
Distributed:A distributed operating system manages a group of independent computers and makes
them appear to be a single computer. The development of networked computers that could be
linked and communicate with each other gave rise to distributed computing. Distributed
computations are carried out on more than one machine. When computers in a group work in
cooperation, they make a distributed system.
FUNCTIONS OF OPERATING SYSTEM
The major functions of an OS are:
1.Resource management:The resource management function of an OS allocates computer
resources such as CPU time, main memory, secondary storage, and input and output devices for
use.
2. Data management: The data management functions of an OS govern the input and output of the
data and their location, storage, and retrieval.
3. Job (task) management:The job management function of an OS prepares, schedules, controls,
and monitors jobs submitted for execution to ensure the most efficient processing. A job is a
collection of one or more related programs and their data.A job is a collection of one or more
related programs and their data.
4. Standard means of communication between user and computer:The OS establishes astandard means of communication between users and their computer systems. It does this by
providing a user interface and a standard set of commands that control the hardware.
Typical Day-to-Day Uses of an Operating System:
1. Executing application programs.
2. Formatting floppy diskettes.
3. Setting up directories to organize your files.
4. Displaying a list of files stored on a particular disk.
5. Verifying that there is enough room on a disk to save a file.
6. Protecting and backing up your files by copying them to other disks for safekeeping.
Operating system capabilities can be described in terms of
1.the number of users they can accommodate at one time,
2.how many tasks can be run at one time, and
3.how they process those tasks.
Number of Users:A single-user operating system allows only one user at a time to access a
t M t ti t i t h DOS d Wi d 95 i l
8/12/2019 Harshit Os File
3/31
HARSHIT(10CS032)
Time sharing allows many users to access a single computer. This capability is typically found on
large computer operating systems where many users need access at the same time.
Number of Tasks:An operating system can be designed for single tasking or multitasking.A single
tasking operating system allows only one program to execute at a time, and the program must
finish executing completely before the next program can begin.A multitasking operating system
allows a single CPU to execute what appears to be more than one program at a time.
Context switching allows several programs to reside in memory but only one to be active at a time.
The active program is said to be in the foreground. The other programs in memory are not active
and are said to be in the background. Instead of having to quit a program and load another, you can
simply switch the active program in the foreground to the background and bring a program from
the background into the foreground with a few keystrokes.
Operating Systems Services
Following are the five services provided by operating systems to the convenience of the users.
Program Execution:-The purpose of computer systems is to allow the user to execute programs.So the operating system provides an environment where the user can conveniently run programs.The user does not have to worry about the memory allocation or multitasking or anything. Thesethings are taken care of by the operating systems.Running a program involves the allocating anddeallocating memory, CPU scheduling in case of multiprocess. These functions cannot be given to
the user-level programs. So user-level programs cannot help the user to run programsindependently without the help from operating systems.
I/O Operations:-Each program requires an input and produces output. This involves the use ofI/O. The operating systems hides the user the details of underlying hardware for the I/O. All theuser sees is that the I/O has been performed without any details. So the operating system by
providing I/O makes it convenient for the users to run programs.For efficiently and protection userscannot control I/O so this service cannot be provided by user-level programs.
File System Manipulation:-The output of a program may need to be written into new files orinput taken from some files. The operating system provides this service. The user does not have to
worry about secondary storage management. User gives a command for reading or writing to a fileand sees his her task accomplished. Thus operating system makes it easier for user programs toaccomplish their task.This service involves secondary storage management. The speed of I/O thatdepends on secondary storage management is critical to the speed of many programs and hence Ithink it is best relegated to the operating systems to manage it than giving individual users thecontrol of it. It is not difficult for the user-level programs to provide these services but for abovementioned reasons it is best if this service s left with operating system.
Communications:-There are instances where processes need to communicate with each other toexchange information. It may be between processes running on the same computer or running onthe different computers. By providing this service the operating system relieves the user of the
worry of passing messages between processes. In case where the messages need to be passed toprocesses on the other computers through a network it can be done by the user programs. The userprogram may be customized to the specifics of the hardware through which the message transits
8/12/2019 Harshit Os File
4/31
HARSHIT(10CS032)
Error Detection:-An error is one part of the system may cause malfunctioning of the completesystem. To avoid such a situation the operating system constantly monitors the system for detectingthe errors. This relieves the user of the worry of errors propagating to various part of the systemand causing malfunctioning.This service cannot allow to be handled by user programs because itinvolves monitoring and in cases altering area of memory or deallocation of memory for a faulty
process. Or may be relinquishing the CPU of a process that goes into an infinite loop. These tasksare too critical to be handed over to the user programs. A user program if given these privilegescan interfere with the correct (normal) operation of the operating systems.
ADVANTAGES AND DISADVANTAGES OF OPERATING
SYSTEM
Windows:
1.Can be expensive, especially compared to Linux, which is in most cases free.
2. Easy to use, especially for new computer users, and plenty of help resources are available online.
3. Although Microsoft Windows has made great improvements in reliability with recent versions, it
still lags behind its competitors.
4. It has a large library of available software, games and utilities, although many are expensive.
5. Hardware manufacturers all make drivers and support for Windows OS.
6. Openness to virus attacks is a major disadvantage.
Linux:
1. It is an open source OS, which in most cases is free.
2. Inexperienced computer users may find it more difficult to get to grips with Linux.
3. Itis very reliable and rarely freezes.
4. Fewer computer programs, games and utilities are available for Linux.
5. Many programs are free or open source, even very complex ones.
6. There are still some manufacturers that do not offer hardware support for Linux OS, although
there are fewer every year.
7. The open source nature of Linux allows more advanced users to customise the codeas they wish.
8. Fewer people use Linux, therefore it is more difficult to find someone fully familiar with it,
although there are vast resources online.
Mac OS:1.MAC computers are more expensive generally than PCs.
2.MAC is a much more secure OS, and is far less open to viruses and malware.
3.Stability is a major advantage - it very rarely crashes, loses data or freezes.
4.Fewer computer programs and games are available for MACs.
5. As most computer components of MACs are made by Apple, there are not many driver issues,
unlike with PCs, which are made by many different manufacturers
MAC OS is not as customizable as Windows or Linux.
HOW DOES AN OPERATING SYSTEM WORK
8/12/2019 Harshit Os File
5/31
HARSHIT(10CS032)
carries out two basic functions: (1) it serves as a manger for the hardware and software resources
held in the system; and (2) it deals with hardware without the applications having to know every
aspect along the way. The duties of the operating system fall into six different categories: processor
management, memory management, device management, storage management, application
interface and user interface.
Processor Management: Processor management involves the certainty that all applications and
processes get the appropriate amount of time from the processor so that it can function properly. It
also involves taking advantage of as many processor cycles as it possibly can to make everything
work together properly. The operating system uses the process or thread of the processor to carry
out these functions and it continuously switches between processes at the rate of thousands of
processes per second.
MemoryManagement: Memory management is the process of ensuring that each process has the
amount of memory needed to execute the task so that processes do not steal memory from eachother. Another part of memory management is managing each type of memory so that it is
usedproperly.
Device Management: Every piece of hardware uses a driver, a special program, to communicate
with the system. The operating system uses the drivers as a translator between the electrical signals
from the hardware and the programming code found in applications. The driver takes data from the
operating system to the device and vice versa. The operating system controls this process by calling
on the appropriate driver when it is needed.
Application Program Interface: Just like hardware has drivers, applications have application
program interfaces (APIs). APIs allow the programmers to use parts of the operating system and
computer to carry out certain functions. The operating system holds all of the APIs that are
recognizable to the computer and plays the role of interpreter for the APIs. It then sends the data
required so that the function is carried out.
User Interface: The user interface aspect of the operating system manages the interaction between
the user and computer. Many operating systems use graphical user interfaces, which mean that it
uses images and icons to communicate with the user. The operating system once again plays therole of interpreter to communicate with both the user and the computer in languages that they both
understand.
Operating System Boot Process.
Hard Disk and Partitions:-
Partitioning is a process of dividing the Hard disk into several chunks, and uses any one of thepartition to install OS or use two or more partitions to install multiple OSes. But you canalways have one partition, and use up the entire Hard disk space to install a single OS, butthis will become data management nightmare for users of large Hard disks.
8/12/2019 Harshit Os File
6/31
HARSHIT(10CS032)
hence Extended Partition is introduced. This Extended Partition is not a usablepartition byitself, but its like a container and it is used to hold Logical Drives!That is this Extended Partition can be subdivided into multiple logical partitions.
In order to boot into a Partition, it must be designated as bootable partition or ActivePartition. Active Partition is that partition which is flagged as bootable or which contains OS,
this is generally a Primary Partition.
Boot Records: Master, Partition, Extended, Logical Extended:-
Master Boot Record (MBR):- MBR is a small 512 bytes partition which is at the first physicalsector of the hard disk. The location is denoted as CHS 0, 0, 1 meaning 0th Cylinder, 0th Headand 1st Sector. MBR contains a small program known as bootstrapprogram which isresponsible for booting into any OSes. MBR also contains a table known as Partition Table.
This Partition Table is a table which lists the available Primary Partitionsin the hard disk. Soit can have only four entries. This rises another question, what if we have more than fourpartitions? This is solved by Extended Partition principle. Partition Table considers whole
Extended Partition as one Primary partition and lists it in the table!
So a Partition Table can have two possible entries:-
1. Up to 4 Primary Partitions.2. Up to 3 Primary Partitions and 1 Extended Partition.(Total not exceeding 4) .
Partition Boot Sector (PBR):- This is the logicalfirst sector that is sector at the start of aPrimary Partition. This is also 512 byte area, which contains some programs to initialize or runOS files. All Primary Partitions have its own PBRs.
Extended Boot Sector (EBR):- This is the logicalfirst sector that is the sector at the startof the Extended Partition. This EBR contains a Partition Table, which lists the available Logical
Partitions inside Extended Partition. That is it contains the Starting addresses of each LogicalPartitions.
Logical Extended Boot Sector (LEBR):- This is the logical first sector residing at the startof eachLogical Partition. This is similar to PBR for Primary Partitions.
8/12/2019 Harshit Os File
7/31
HARSHIT(10CS032)
Operating system architecture
There are 3 types of architecture:
1. Monolithic Architecture:
The monolithic approach is to define a high-level virtual interface over the hardware, with a set ofprimitives or system calls to implement operating system services such as process management,concurrency, and memory management in several modules that run in supervisor mode.
When the implementation is complete and trustworthy, the tight internal integration of componentsallows the low-level features of the underlying system to be effectively utilized, making a goodmonolithic kernel highly efficient. Each component of the operating system was contained withinthe kernel, could communicate directly with any other component, and had unrestricted systemaccess. While this made the operating system very efficient, it also meant that errors were moredifficult to isolate, and there was a high risk of damage due to erroneous.
2. Layered Architecture:
In Layered architecture, each layer communicates only with the layers immediately aboveand below it, and lower-level layers provide services to higher-level ones using an interfaceth t hid th i i l t ti Th d l it f l d ti t ll th
8/12/2019 Harshit Os File
8/31
HARSHIT(10CS032)
pass through many layers of system software before it is serviced and performance comparesunfavourably to that of a monolithic kernel. Also because all layers still have unrestrictedaccess to the system, the kernel is still susceptible to errant.
3. Micro kernel Achitecture:
A microkernelarchitecture includes only a very small number of services within the kernelin an attempt to keep it small and scalable. The services typically include low-level memorymanagement, inter-process communication and basic process synchronisation to enable
processes to cooperate. In microkernel designs, most operating system components, such as
process management and device management, execute outside the kernel with a lower levelof system access. Micro kernels are highly modular, making them extensible, portable andscalable. Operating system components outside the kernel can fail without causing theoperating system to fall over.
8/12/2019 Harshit Os File
9/31
HARSHIT(10CS032)
Experiment 2
Aim: To study unix operating system.
2.1 History of unix:-
UNIX is an operating system which was first developed in the 11969: at AT&T Bell Lab, and has been
under constant development ever since. By operating system, we mean the suite of programs which make
the computer work. It is a stable, multi-user, multi-tasking system.Some Unix systems have a graphical user
interface (GUI).It is a machine independent language.It is monolithic and having simple user interface and
consistant format usage. At the same time a team from the University of California at Berkeley was working
to improve UNIX. In 1977 it released the first Berkeley Software Distribution, which became known
as BSD. Over time this won favour through innovations such as theC shell.
Meanwhile the AT&T version was developing in different ways. The 1978 release of Version 7 includedtheBourne Shellfor the first time. By 1983 commercial interest was growing and Sun Microsystems
produced a UNIX workstation. System Vappeared, directly descended from the original AT&T UNIX andthe prototype of the more widely used variant today.
2.2System structure:-
Perhaps the most "important" or well known of the Unixutilitites is known as the Unix shell. The shell is the
mechanism which allows users to enter commands to run other utility programs. There are several popular
Unix shell programs which will be discussed later. What is important to keep in mind that the shell is merely
another Unix utility program, which is typically loaded at login.
The diagram below provides another visual representation of the organization of the Unix OS. At the core ofthe OS is the hardware, which is managed by the surrounding outer layer, the kernel. In the next outer layercome the utilities. Many of the utilities are system commands, but these can also be user written programs as
shown by the a.out program. Finally in the outermost layer are other application programs which can bebuilt on top of lower layer programs.
http://www.mcsr.olemiss.edu/unixhelp/shell/oview2.2.htmlhttp://www.mcsr.olemiss.edu/unixhelp/shell/oview2.2.htmlhttp://www.mcsr.olemiss.edu/unixhelp/shell/oview2.2.htmlhttp://www.mcsr.olemiss.edu/unixhelp/shell/oview2.1.htmlhttp://www.mcsr.olemiss.edu/unixhelp/shell/oview2.1.htmlhttp://www.mcsr.olemiss.edu/unixhelp/shell/oview2.1.htmlhttp://www.mcsr.olemiss.edu/unixhelp/shell/oview2.1.htmlhttp://www.mcsr.olemiss.edu/unixhelp/shell/oview2.2.html8/12/2019 Harshit Os File
10/31
HARSHIT(10CS032)
As RAM has become plentiful and affordable, many of the frequently used utility programs have become
"built-in" to the shell.
2.3 FILE SYSTEM:-
The Unix file system is a methodology for logically organizing and storing large quantities of data such that
the system is easy to manage. A filecan be informally defined as a collection of data, which can be
logically viewed as a stream of bytes (i.e. characters). A file is the smallest unit of storage in the Unix file
system.
By contrast, a file systemconsists of files, relationships to other files, as well as the attributes of each file.File attributes are information relating to the file, but do not include the data contained within a file. File
attributes for a generic operating system might include:
a file type (i.e. what kind of data is in the file) a file name (which may or may not include an extension) a physical file size a file owner file protection/privacy capability file time stamp (time and date created/modified)
Additionally, file systems provide tools which allow the manipulation of files, provide a logical organizationas well as provide services which map the logical organization of files to physical devices.
From the beginners perspective, the Unix file system is essentially composed of files and directories.Directories are special files that may contain other files.The Unix file system has a hierarchical (or tree-like) structure with its highest level directory called root(denoted by /, pronouncedslash). Immediately below the root level directory are several subdirectories,most of which contain system files. Below this can exist system files, application files, and/or user data files.Similar to the concept of the process parent-child relationship, all files on a Unix system are related to oneanother. That is, files also have a parent-child existence. Thus, all files share a common parental link, thetop-most file (i.e. /) being the exception.Below is a diagram of a "typical" Unix file system. As you can see, the top-most directory is / , with thedirectories directly beneath being system directories. Note that as Uniximplementaions and vendors vary, sowill this file system hierarchy. However, the organization of most file systems is similar.
8/12/2019 Harshit Os File
11/31
HARSHIT(10CS032)
While this diagram is not all inclusive, the following system files (i.e. directories) are present in mostUnixfilesystems:
bin- short for binaries, this is the directory where many commonly used executable commandsreside
dev- contains device specific files etc- contains system configuration files home- contains user directories and files lib- contains all library files mnt- contains device files related to mounted devices proc- contains files related to system processes
root- the root users' home directory (note this is different than /) sbin- system binary files reside here. If there is no sbin directory on your system, these files most
likely reside in etc tmp- storage for temporary files which are periodically removed from the filesystem usr- also contains executable commands
FileTypes
TherearefourtypesoffilesintheUnixfilesystem.
2.1 OrdinaryFiles
Anordinaryfilemaycontain text,aprogram, orotherdata.ItcanbeeitheranASCII file,witheachofits
bytesbeinginthenumericalrange0to127,i.e.inthe7-bitrange,orabinaryfile,whosebytescanbeofall
possiblevalues0to255,inthe8-bitrange.
2.2 DirectoryFiles
Suppose thatinthedirectoryxIhavea,bandc,andthatbisadirectory, containingfilesuandv.Thenb can
beviewednot onlyasadirectory,containingfurtherfiles,but alsoasafileitself.The filebconsistsof
informationaboutthedirectoryb;i.e.thefilebhasinformationstatingthatthedirectorybhasfilesuandv,
howlargetheyare,whentheywerelastmodified,etc.1
8/12/2019 Harshit Os File
12/31
HARSHIT(10CS032)
2.3 DeviceFilesInUnix,physicaldevices(printers,terminalsetc.)arerepresentedasfiles .Thisseems oddatfirst,butit
reallymakessense:Thisway,thesameread()andwrite()functionsusedtoreadandwriterealfilescan
alsobeusedtoreadfromandwritetothesedevices.
2.4 LinkFiles
SupposewehaveafileX,andtypelnXYIfwethenrunls,itwillappearthatanewfile,Y,hasbeencreated,asacopyofX,asifwehadtypedcpXY
However,thedifferenceisthe cpdoescreateanewfile,whilelnmerelygivesanalternatenametoanold
file.IfwemakeYusingln,thenYismerelyanewnameforthesamephysicalfileX.
3 SomeFileCommands
3.1 chmodYoucanusethiscommand tochangetheaccesspermissionsofanyfileforwhichyouaretheowner.Thenotationusedis:
uuser(i.e.owner)
ggroup
oothers
+ addpermission
- removepermission rread
wwrite
xexecute
Asanexample,thecommand
chmodugo+rw.login
wouldaddreadandwritepermissionforalluserstothe.loginfileofthepersonissuingthiscommand.
Insomecasesitisusefulforausertodenyhimself/herselfpermissiontowritetoafile,e.g.tomakesure
he/shedoesntremovethefilebymistake.
3.2 duanddf
Theducommanddisplaysthesizesinkilobytesofallfilesinthespecifieddirectory,andthetotalofall
thosesizes;ifnodirectoryisspecified,thecurrentdirectoryisassumed.
Thedfcommanddisplaystheamountofunusedspaceleftinyourdisksystems.
3.3 diff
Thiscommanddisplaysline-by-linedifferencesbetweentwoASCIIfiles. Ifforexample,youhavetwo
versionsofaCsourcefilebutdontrememberhowthenewversiondiffersfromtheoldone,youcouldtype
diffoldprog.cnewprog.c
8/12/2019 Harshit Os File
13/31
HARSHIT(10CS032)
4 WildCards
Thesewillsaveyoualotoftyping!Therearetwowild-cardcharactersinUnix,*and?.Thewildcard*willmatcheswithanystringofcharacters.For example,
rm*.c
woulddeleteallfilesinthecurrentdirectorywhosenamesendwith.c.
Thewildcard?willmatchwithanysinglecharacter.For example,
rmx?b.c
woulddeleteallfileswhosenamesconsistedoffivecharacters,thefirstofwhichwas xand thelast three
ofwhichwereb.c.Example:rmprog?.c
willdeleteallthefiles(inthecurrentdirectory)Thefilesx3b.c
andxrb.cwouldbedeleted,whilethefilexuvb.cwouldnot.
Inaddition,
[0-9]matchescharacterfrom0through9 [a-z]matchescharacterfromathroughz
Forinstance,rmtest[1-3].cwouldremovetest1.c,test2.candtest3.cbutnottest4.c.
2.4SERVICESOF OPERATING SYSTEM:-
Along with the fore mentioned functions, the operating system should also be able to provide the following
basic services to the us
User Interface
All operating systems need to provide an interface to communicate with the user. This could be a Command
Line Interface or a Graphical User Interface.
A command line interfaceor CLIis a method of interacting with an operating system or software using a
command line interpreter. This command line interpreter may be a text terminal, terminal emulator, or
remote shell client. The concept of the CLI originated when teletype machines (TTY) were connected to
computers in the 1950s, and offered results on demand, compared to batch oriented mechanical punch cardinput technology. Dedicated text-based CRT terminals followed, with faster interaction and more
information visible at one time, and then graphical terminals enriched the visual display of information.
Currently personal computers encapsulate both functions in software.
A graphical user interface(GUI) is a type of user interface which allows people to interact with a
computer and computer-controlled devices which employ graphical icons, visual indicators or special
graphical elements called widgets,along with text, labels or text navigation to represent the information and
actions available to a user. The actions are usually performed through direct manipulation of the graphical
elements. Today, most modern operating systems contain GUIs. A few older operating systems tightlyintegrated the GUI to the kernelfor example, the original implementations of Microsoft Windows and
OS h G hi l b ll f h i d i
8/12/2019 Harshit Os File
14/31
HARSHIT(10CS032)
Program Execution
The system must be able to load a program into memory and to run that program, end execution, either
normally or abnormally (indicating an error). This involves locating the executable file on the disk or other
secondary storage media and loading its content into the memory. These steps may further include
processing by another parser or interpreter as in the case of .NET Platform, in which each program is
compiled to MSIL (Microsoft Intermediate Language, now called CIL or Common Intermediate Language)
and then parsed to assembly upon execution by the .NET JIT (Just In Time Compiler).
Device Management
To perform useful functions, processes need access to the peripherals connected to the computer, which are
controlled by the kernel through device drivers. For example, to show the user something on the screen, an
application would make a request to the kernel, which would forward the request to its display driver, which
is then responsible for actually plotting the character/pixel.
In a plug and play system, a device manager first performs a scan on different hardware buses, such as
Peripheral Component Interconnect (PCI) or Universal Serial Bus (USB), to detect installed devices, then
searches for the appropriate drivers.
As device management is a very OS-specific topic, these drivers are handled differently by each kind of
kernel design, but in every case, the kernel has to provide the I/O to allow drivers to physically access their
devices through some port or memory location. Very important decisions have to be made when designing
the device management system, as in some designs accesses may involve context switches, making the
operation very CPU-intensive and easily causing a significant performance overhead.
Resource Allocation and Accounting
When multiple users or multiple jobs running are concurrently on the operating system, resources must be
allocated to each of them. Some may have special allocation code and rules, while others may have general
request and release code. To keep track of which users use how much and what kinds of computer resources,
the OS should also implement an Accounting scheme.
Communications
There are instances where processes need to communicate with each other to exchange information.It may be between processes running on the same computer or running on the different computers.By providing this service the operating system relieves the user of the worry of passing messages
between processes. In case where the messages need to be passed to processes on the othercomputers through a network it can be done by the user programs. The user program may becustomized to the specifics of the hardware through which the message transits and provides theservice interface to the operating system.
8/12/2019 Harshit Os File
15/31
8/12/2019 Harshit Os File
16/31
HARSHIT(10CS032)
Kernel:
The kernel is the master program that provide file related activities, process scheduling, memory
management, and various other operating system functions through system calls. In other words we can saythat it control the resources of the computer system, allocate them to different users and different tasks. Themajor portion of the kernel is written in C language. Therefore, it is easy to understand, debug, and enhanceit. As it is written in C language, therefore it is portable in nature. As you can see in the diagram that it is
written or placed between hardware and utilityprogram (Like shells, editors, vi or sed) so it workbetween the two. Moreover, the kernel maintains various data structure to manage the processes.Each process has its own priority. A higher priority process is execute first than the lower prority process.
Kernel is divided into 2 parts:-
1. Process managnment
The primary task of the process management is to manage the memory management activities andprocess related activities at different states of the executioncreation/deletion of processes,scheduling of the processes and provision of mechanism for synchronization, communication and
deadlock handling of the processes.
2. File managnment
Where as the task of the file management is to manage the file related activities.SinceUnix is suchkind of operating system which treats the I/O devices as a file. Therefore each I/O devices has itsown file, known as device drivers, to derive it. The file management pat of the kernel handles thesedevice drivers and store these files in the directory /dev under root directory. If we attach any new
I/O device to the Unix than it is necessary to create a file for that device in /dev directory. Thenwe write down its characteristics; such as its type (character oriented or block oriented), address ofthe driver program, memory buffer reserved for the device and some other, in that specific file.
Shells:
In Unix we cannot directly deals with kernels. It is the shell, one of the utility program, that starts up thekernel when the user logs in. the shell sends a prompt symbol. The shell prompt waits for input from users.
Now when you type a command and press Enter key, the shell obtained your command, execute it ifpossible and display the prompt symbol again in order to receive your next command. That iswhy the shellis also called as the Unix system command interpreter.
Moreover, when we want to access the hardware, we will request for the shell, the shell will request tokernel, and finally the kernel will request to hardware. Basically the shell handles the user interaction withthe system. Some built in commands are part of shell and the remaining commands are separated programsstored else where.There are three types of shells that are widely used and are exist in the Unix OS:
Bourne shell:
This shell was designed by Stephan Bourne of Bells Lab. It is most powerful an most widely used shell.The prompt symbol of Bourne shell is $ (Doller) sign.
The C Shell:
The C shell was developed at University of California. It is designed by Bill Joy. C shell gets its name from
8/12/2019 Harshit Os File
17/31
HARSHIT(10CS032)
Like Bourne shell, the Korn shell was also developed at Bells Lab of AT & T. This shell gets its name fromits inventor David Korn of Bells Lab.Moreover, the shells provide the meta characters like *, [ ], ?and so on. For better searching of files.
Utility programs:
The Unix system contains large number of utility and application programs like editors (ed, ex, vi, sed) andso on. These utility programs and the application programs developed in Unix environment are also easily
portable to another machine having same environment.
2.5 Advantages and disadvantages of Unix:-
Advantages Full multitasking with protected memory. Multiple users can run multiple programs each at the same
time without interfering with each other or crashing the system.
Very efficient virtual memory, so many programs can run with a modest amount of physical memory. Access controls and security. All users must be authenticated by a valid account and password to use
the system at all. All files are owned by particular accounts. The owner can decide whether othershave read or write access to his files.
A rich set of small commands and utilities that do specific tasks well -- not cluttered up with lots ofspecial options. Unix is a well-stocked toolbox, not a giant do-it-all Swiss Army Knife.
Ability to string commands and utilities together in unlimited ways to accomplish more complicatedtasks -- not limited to preconfigured combinations or menus, as in personal computer systems.
A powerfully unified file system. Everything is a file: data, programs, and all physical devices. Entire
file system appears as a single large tree of nested directories, regardless of how many differentphysical devices (disks) are included.
A lean kernel that does the basics for you but doesn't get in the way when you try to do the unusual.
Available on a wide variety of machines - the most truly portable operating system.
Optimized for program development, and thus for the unusual circumstances that are the rule inresearch.
Disadvantages The traditional command line shell interface is user hostile -- designed for the programmer, not the
casual user.
Commands often have cryptic names and give very little response to tell the user what they are doing.Much use of special keyboard characters - little typos have unexpected results.
To use Unix well, you need to understand some of the main design features. Its power comes fromknowing how to make commands and programs interact with each other, not just from treating each asa fixed black box.
Richness of utilities (over 400 standard ones) often overwhelms novices. Documentation is short onexamples and tutorials to help you figure out how to use the many tools provided to accomplishvariouskindsoftask.
8/12/2019 Harshit Os File
18/31
HARSHIT(10CS032)
EXPERIMENT-3
AIM: STUDY Of LINUX
Linuxis aUnix-like computeroperating system assembled under the model offree and open
source software development and distribution. The defining component of Linux is theLinux
kernel, anoperating system kernel first released 5 October 1991 byLinus TorvaldsLinux was
originally developed as a free operating system forIntel x86-based personal computers. It has
since beenported to more computer hardware platforms than any other operating system. It is a
leading operating system onservers and otherbig iron systems such asmainframe
computers andsupercomputersmore than 90% of today's500 fastest supercomputers run some
variant of Linux, including the 10 fastest. Linux also runs onembedded systems (devices where
the operating system is typically built into thefirmware and highly tailored to the system) such
as mobile phones,tablet computers, networkrouters, televisionsandvideo game consoles;
theAndroid system in wide use on mobile devices is built on the Linux kernel.
The development of Linux is one of the most prominent examples of free and open source
software collaboration: the underlying source code may be used, modified, and distributed
commercially or non-commerciallyby anyone under licenses such as theGNU General Public
License.Typically Linux is packaged in a format known as aLinux distributionfor desktop and
server use. Some popular mainstream Linux distributions includeDebi an (and its derivativessuch asUbuntu),Fedora andopenSUSE. Linux distributions include the Linux kernel,
supportingutilities andlibraries and usually a large amount of application software to fulfill the
distribution's intended use.
A distribution oriented toward desktop use will typically include theX Window System and an
accompanyingdesktop environment such asGNOME orKDE Plasma.Some such distributions
may include a less resource intensive desktop such asLXDE orXfce for use on older or less
powerful computers. A distribution intended to run as a server may omit all graphical
environments from the standard install and instead include other software such as the Apache
HTTP Server and anSSH server such asOpenSSH. Because Linux is freely redistributable,
anyone may create a distribution for any intended use. Applications commonly used withdesktop Linux systems include theMozilla Firefox web browser, theLibreOffice office
application suite, and theGIMP image editor.
Since the main supportinguser space system tools and libraries originated in theGNU Project,
initiated in 1983 byRichard Stallman, theFree Software Foundationprefers the
nameGNU/Linux
http://en.wikipedia.org/wiki/Unix-likehttp://en.wikipedia.org/wiki/Operating_systemhttp://en.wikipedia.org/wiki/Free_and_open_source_softwarehttp://en.wikipedia.org/wiki/Free_and_open_source_softwarehttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Operating_system_kernelhttp://en.wikipedia.org/wiki/Linus_Torvaldshttp://en.wikipedia.org/wiki/Intel_x86http://en.wikipedia.org/wiki/Portinghttp://en.wikipedia.org/wiki/Server_(computing)http://en.wikipedia.org/wiki/Big_ironhttp://en.wikipedia.org/wiki/Mainframe_computerhttp://en.wikipedia.org/wiki/Mainframe_computerhttp://en.wikipedia.org/wiki/Supercomputerhttp://en.wikipedia.org/wiki/TOP500http://en.wikipedia.org/wiki/Embedded_systemhttp://en.wikipedia.org/wiki/Firmwarehttp://en.wikipedia.org/wiki/Tablet_computerhttp://en.wikipedia.org/wiki/Router_(computing)http://en.wikipedia.org/wiki/Video_game_consolehttp://en.wikipedia.org/wiki/Android_(operating_system)http://en.wikipedia.org/wiki/Free_and_open_source_softwarehttp://en.wikipedia.org/wiki/Free_and_open_source_softwarehttp://en.wikipedia.org/wiki/Source_codehttp://en.wikipedia.org/wiki/GNU_General_Public_Licensehttp://en.wikipedia.org/wiki/GNU_General_Public_Licensehttp://en.wikipedia.org/wiki/Linux_distributionhttp://en.wikipedia.org/wiki/Linux_distributionhttp://en.wikipedia.org/wiki/Linux_distributionhttp://en.wikipedia.org/wiki/Debian_(operating_system)http://en.wikipedia.org/wiki/Ubuntu_(operating_system)http://en.wikipedia.org/wiki/Fedora_(operating_system)http://en.wikipedia.org/wiki/OpenSUSEhttp://en.wikipedia.org/wiki/System_utilityhttp://en.wikipedia.org/wiki/Library_(computer_science)http://en.wikipedia.org/wiki/X_Window_Systemhttp://en.wikipedia.org/wiki/Desktop_environmenthttp://en.wikipedia.org/wiki/GNOMEhttp://en.wikipedia.org/wiki/KDE_Plasma_Workspaceshttp://en.wikipedia.org/wiki/LXDEhttp://en.wikipedia.org/wiki/Xfcehttp://en.wikipedia.org/wiki/Apache_HTTP_Serverhttp://en.wikipedia.org/wiki/Apache_HTTP_Serverhttp://en.wikipedia.org/wiki/SSH_serverhttp://en.wikipedia.org/wiki/OpenSSHhttp://en.wikipedia.org/wiki/Mozilla_Firefoxhttp://en.wikipedia.org/wiki/LibreOfficehttp://en.wikipedia.org/wiki/GIMPhttp://en.wikipedia.org/wiki/User_spacehttp://en.wikipedia.org/wiki/GNU_Projecthttp://en.wikipedia.org/wiki/Richard_Stallmanhttp://en.wikipedia.org/wiki/Free_Software_Foundationhttp://en.wikipedia.org/wiki/GNU/Linux_naming_controversyhttp://en.wikipedia.org/wiki/GNU/Linux_naming_controversyhttp://en.wikipedia.org/wiki/GNU/Linux_naming_controversyhttp://en.wikipedia.org/wiki/GNU/Linux_naming_controversyhttp://en.wikipedia.org/wiki/Free_Software_Foundationhttp://en.wikipedia.org/wiki/Richard_Stallmanhttp://en.wikipedia.org/wiki/GNU_Projecthttp://en.wikipedia.org/wiki/User_spacehttp://en.wikipedia.org/wiki/GIMPhttp://en.wikipedia.org/wiki/LibreOfficehttp://en.wikipedia.org/wiki/Mozilla_Firefoxhttp://en.wikipedia.org/wiki/OpenSSHhttp://en.wikipedia.org/wiki/SSH_serverhttp://en.wikipedia.org/wiki/Apache_HTTP_Serverhttp://en.wikipedia.org/wiki/Apache_HTTP_Serverhttp://en.wikipedia.org/wiki/Xfcehttp://en.wikipedia.org/wiki/LXDEhttp://en.wikipedia.org/wiki/KDE_Plasma_Workspaceshttp://en.wikipedia.org/wiki/GNOMEhttp://en.wikipedia.org/wiki/Desktop_environmenthttp://en.wikipedia.org/wiki/X_Window_Systemhttp://en.wikipedia.org/wiki/Library_(computer_science)http://en.wikipedia.org/wiki/System_utilityhttp://en.wikipedia.org/wiki/OpenSUSEhttp://en.wikipedia.org/wiki/Fedora_(operating_system)http://en.wikipedia.org/wiki/Ubuntu_(operating_system)http://en.wikipedia.org/wiki/Debian_(operating_system)http://en.wikipedia.org/wiki/Linux_distributionhttp://en.wikipedia.org/wiki/GNU_General_Public_Licensehttp://en.wikipedia.org/wiki/GNU_General_Public_Licensehttp://en.wikipedia.org/wiki/Source_codehttp://en.wikipedia.org/wiki/Free_and_open_source_softwarehttp://en.wikipedia.org/wiki/Free_and_open_source_softwarehttp://en.wikipedia.org/wiki/Android_(operating_system)http://en.wikipedia.org/wiki/Video_game_consolehttp://en.wikipedia.org/wiki/Router_(computing)http://en.wikipedia.org/wiki/Tablet_computerhttp://en.wikipedia.org/wiki/Firmwarehttp://en.wikipedia.org/wiki/Embedded_systemhttp://en.wikipedia.org/wiki/TOP500http://en.wikipedia.org/wiki/Supercomputerhttp://en.wikipedia.org/wiki/Mainframe_computerhttp://en.wikipedia.org/wiki/Mainframe_computerhttp://en.wikipedia.org/wiki/Big_ironhttp://en.wikipedia.org/wiki/Server_(computing)http://en.wikipedia.org/wiki/Portinghttp://en.wikipedia.org/wiki/Intel_x86http://en.wikipedia.org/wiki/Linus_Torvaldshttp://en.wikipedia.org/wiki/Operating_system_kernelhttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Free_and_open_source_softwarehttp://en.wikipedia.org/wiki/Free_and_open_source_softwarehttp://en.wikipedia.org/wiki/Operating_systemhttp://en.wikipedia.org/wiki/Unix-like8/12/2019 Harshit Os File
19/31
HARSHIT(10CS032)
HISTORY
Unix:-TheUnix operating system was conceived and implemented in 1969 at AT&T's Bell
Laboratories in the United States byKen Thompson,Dennis Ritchie,Douglas McElroy,andJoeOssanna.It was first released in 1971 and was initially entirely written in assembly language,a
common practice at the time. Later, in a key pioneering approach in 1973, Unix was re-written in
the programming languageCbyDennis Ritchie (with exceptions to the kernel and I/O). The
availability of an operating system written in a high-level language allowed easierportability to
different computer platforms. With a legal glitch forcing AT&T to license the operating system's
source code to anyone who asked, Unix quickly grew and became widely adopted by academic
institutions and businesses. In 1984, AT&T divested itself of Bell Labs. Free of the legal glitch
requiring free licensing, Bell Labs began selling Unix as aproprietaryproduct.
GNU
Richard Stallman,founder of theGNU project
TheGNU Project, started in 1983 byRichard Stallman, had the goal of creating a "complete
Unix-compatible software system" composed entirely offree software. Work began in
1984.[24]Later, in 1985, Stallman started theFree Software Foundation and wrote theGNU
General Public License (GNU GPL) in 1989. By the early 1990s, many of the programs required
in an operating system (such as libraries,compilers,text editors,aUnix shell,and awindowing
system) were completed, although low-level elements such asdevice drivers,daemons, and
thekernelwere stalled and incomplete. Linus Torvalds has said that if theGNU kernel had beenavailable at the time (1991), he would not have decided to write his own.
BSD:-Although not released until 1992 due tolegal complications, development of386BSD,
from whichNetBSD andFreeBSD descended, predated that of Linux.Linus Torvalds has said
that if 386BSD had been available at the time, he probably would not have created Linux.
http://en.wikipedia.org/wiki/Unixhttp://en.wikipedia.org/wiki/AT%26Thttp://en.wikipedia.org/wiki/Ken_Thompsonhttp://en.wikipedia.org/wiki/Dennis_Ritchiehttp://en.wikipedia.org/wiki/Douglas_McIlroyhttp://en.wikipedia.org/wiki/Joe_Ossannahttp://en.wikipedia.org/wiki/Joe_Ossannahttp://en.wikipedia.org/wiki/Assembly_languagehttp://en.wikipedia.org/wiki/C_(programming_language)http://en.wikipedia.org/wiki/Dennis_Ritchiehttp://en.wikipedia.org/wiki/Portinghttp://en.wikipedia.org/wiki/Proprietary_softwarehttp://en.wikipedia.org/wiki/Richard_Stallmanhttp://en.wikipedia.org/wiki/GNU_projecthttp://en.wikipedia.org/wiki/GNU_Projecthttp://en.wikipedia.org/wiki/Richard_Stallmanhttp://en.wikipedia.org/wiki/Free_softwarehttp://en.wikipedia.org/wiki/Linux#cite_note-gnu_announce-23http://en.wikipedia.org/wiki/Linux#cite_note-gnu_announce-23http://en.wikipedia.org/wiki/Linux#cite_note-gnu_announce-23http://en.wikipedia.org/wiki/Free_Software_Foundationhttp://en.wikipedia.org/wiki/GNU_General_Public_Licensehttp://en.wikipedia.org/wiki/GNU_General_Public_Licensehttp://en.wikipedia.org/wiki/Compilerhttp://en.wikipedia.org/wiki/Text_editorhttp://en.wikipedia.org/wiki/Unix_shellhttp://en.wikipedia.org/wiki/Windowing_systemhttp://en.wikipedia.org/wiki/Windowing_systemhttp://en.wikipedia.org/wiki/Device_driverhttp://en.wikipedia.org/wiki/Daemon_(computer_software)http://en.wikipedia.org/wiki/Kernel_(computer_science)http://en.wikipedia.org/wiki/GNU_kernelhttp://en.wikipedia.org/wiki/Berkeley_Software_Distribution#Net.2F2_and_legal_troubleshttp://en.wikipedia.org/wiki/386BSDhttp://en.wikipedia.org/wiki/NetBSDhttp://en.wikipedia.org/wiki/FreeBSDhttp://en.wikipedia.org/wiki/Linus_Torvaldshttp://en.wikipedia.org/wiki/File:Richard_Matthew_Stallman_cropped.jpeghttp://en.wikipedia.org/wiki/Linus_Torvaldshttp://en.wikipedia.org/wiki/FreeBSDhttp://en.wikipedia.org/wiki/NetBSDhttp://en.wikipedia.org/wiki/386BSDhttp://en.wikipedia.org/wiki/Berkeley_Software_Distribution#Net.2F2_and_legal_troubleshttp://en.wikipedia.org/wiki/GNU_kernelhttp://en.wikipedia.org/wiki/Kernel_(computer_science)http://en.wikipedia.org/wiki/Daemon_(computer_software)http://en.wikipedia.org/wiki/Device_driverhttp://en.wikipedia.org/wiki/Windowing_systemhttp://en.wikipedia.org/wiki/Windowing_systemhttp://en.wikipedia.org/wiki/Unix_shellhttp://en.wikipedia.org/wiki/Text_editorhttp://en.wikipedia.org/wiki/Compilerhttp://en.wikipedia.org/wiki/GNU_General_Public_Licensehttp://en.wikipedia.org/wiki/GNU_General_Public_Licensehttp://en.wikipedia.org/wiki/Free_Software_Foundationhttp://en.wikipedia.org/wiki/Linux#cite_note-gnu_announce-23http://en.wikipedia.org/wiki/Free_softwarehttp://en.wikipedia.org/wiki/Richard_Stallmanhttp://en.wikipedia.org/wiki/GNU_Projecthttp://en.wikipedia.org/wiki/GNU_projecthttp://en.wikipedia.org/wiki/Richard_Stallmanhttp://en.wikipedia.org/wiki/Proprietary_softwarehttp://en.wikipedia.org/wiki/Portinghttp://en.wikipedia.org/wiki/Dennis_Ritchiehttp://en.wikipedia.org/wiki/C_(programming_language)http://en.wikipedia.org/wiki/Assembly_languagehttp://en.wikipedia.org/wiki/Joe_Ossannahttp://en.wikipedia.org/wiki/Joe_Ossannahttp://en.wikipedia.org/wiki/Douglas_McIlroyhttp://en.wikipedia.org/wiki/Dennis_Ritchiehttp://en.wikipedia.org/wiki/Ken_Thompsonhttp://en.wikipedia.org/wiki/AT%26Thttp://en.wikipedia.org/wiki/Unix8/12/2019 Harshit Os File
20/31
HARSHIT(10CS032)
MINIX:-MINIX is an inexpensive minimalUnix-like operating system, designed for education
in computer science, written byAndrew S. Tanenbaum.Starting withversion 3 in 2005, MINIX
has becomefree and redesigned for "serious" use.
In 1991 while attending theUniversity of Helsinki, Torvalds became curious about operating
systems and frustrated by the licensing of MINIX, which limited it to educational use only. He
began to work on his own operating system which eventually became theLinux kernel.
Torvalds began the development of the Linux kernel on MINIX, and applications written for
MINIX were also used on Linux. Later Linux matured and further Linux development took place
on Linux systems. GNU applications also replaced all MINIX components, because it was
advantageous to use the freely available code from the GNU project with the fledgling operating
system. (Code licensed under the GNU GPL can be reused in other projects as long as they also
are released under the same or a compatible license.) Torvalds initiated a switch from his original
license, which prohibited commercial redistribution, to the GNU GPL. Developers worked to
integrate GNU components with Linux to make a fully functional and free operating system.
Commercial and popular uptake
Ubuntu,a popular Linux distribution
Today, Linux systems are used in every domain, fromembedded systems tosupercomputers,and
have secured a place inserver installations often using the popularLAMP application stack. Use
of Linux distributions in home and enterprise desktops has been growing. They have also gained
popularity with various local and national governments. The federal government of Brazil is well
known for its support for Linux. News of the Russian military creating its own Linux distribution
has also surfaced, and has come to fruition as the G.H.ost Project. The Indian state ofKerala has
gone to the extent of mandating that all state high schools run Linux on their
computers.China uses Linux exclusively as the operating system for itsLoongsonprocessor
family to achieve technology independence. In Spain some regions have developed their own
Linux distributions, which are widely used in education and official institutions,
likegnuLinEx in Extremadura andGuadalinex in Andalusia.Portugal is also using its own Linux
http://en.wikipedia.org/wiki/MINIXhttp://en.wikipedia.org/wiki/MINIXhttp://en.wikipedia.org/wiki/Unix-likehttp://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/MINIX_3http://en.wikipedia.org/wiki/Free_softwarehttp://en.wikipedia.org/wiki/University_of_Helsinkihttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Ubuntu_(operating_system)http://en.wikipedia.org/wiki/Embedded_systemhttp://en.wikipedia.org/wiki/Supercomputerhttp://en.wikipedia.org/wiki/Server_(computing)http://en.wikipedia.org/wiki/LAMP_(software_bundle)http://en.wikipedia.org/wiki/Keralahttp://en.wikipedia.org/wiki/People%27s_Republic_of_Chinahttp://en.wikipedia.org/wiki/Loongsonhttp://en.wikipedia.org/wiki/GnuLinExhttp://en.wikipedia.org/wiki/Guadalinexhttp://en.wikipedia.org/wiki/Portugalhttp://en.wikipedia.org/wiki/File:Ubuntu_11.10_Final.pnghttp://en.wikipedia.org/wiki/Portugalhttp://en.wikipedia.org/wiki/Guadalinexhttp://en.wikipedia.org/wiki/GnuLinExhttp://en.wikipedia.org/wiki/Loongsonhttp://en.wikipedia.org/wiki/People%27s_Republic_of_Chinahttp://en.wikipedia.org/wiki/Keralahttp://en.wikipedia.org/wiki/LAMP_(software_bundle)http://en.wikipedia.org/wiki/Server_(computing)http://en.wikipedia.org/wiki/Supercomputerhttp://en.wikipedia.org/wiki/Embedded_systemhttp://en.wikipedia.org/wiki/Ubuntu_(operating_system)http://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/University_of_Helsinkihttp://en.wikipedia.org/wiki/Free_softwarehttp://en.wikipedia.org/wiki/MINIX_3http://en.wikipedia.org/wiki/Andrew_S._Tanenbaumhttp://en.wikipedia.org/wiki/Unix-likehttp://en.wikipedia.org/wiki/MINIX8/12/2019 Harshit Os File
21/31
HARSHIT(10CS032)
distributionCaixaMgica, used in the Magalhes netbook and the e-escola government
program. France and Germany have also taken steps toward the adoption of Linux.
Linux distributions have also become popular in thenetbook market, with many devices such as
theASUS Eee PC andAcer Aspire Oneshipping with customized Linux distributions installed.
Current development:-Torvalds continues to direct the development of the kernel.Stallman
heads the Free Software Foundation, which in turn supports the GNU components. Finally,
individuals and corporations develop third-party non-GNU components. These third-party
components comprise a vast body of work and may include both kernel modules and user
applications and libraries. Linux vendors and communities combine and distribute the kernel,
GNU components, and non-GNU components, with additionalpackage management software in
the form ofLinux distributions.
DESIGN:-A Linux-based system is a modularUnix-like operating system. It derives much of its
basic design from principles established in UNIX during the 1970s and 1980s. Such a system
uses amonolithic kernel, theLinux kernel, which handles process control, networking,
andperipheral andfile system access.Device drivers are either integrated directly with the
kernel or added as modules loaded while the system is running.
Separate projects that interface with the kernel provide much of the system's higher-level
functionality. The GNUuserland is an important part of most Linux-based systems, providing
the most common implementation of theC library, a popularshell, and many of the
commonUnix tools which carry out many basic operating system tasks. Thegraphical user
interface (or GUI) used by most Linux systems is built on top of an implementation of the X
Window System.
USER INTERFACE:-Users operate a Linux-based system through acommand line
interface (CLI), agraphical user interface (GUI), or through controls attached to the associated
hardware, which is common for embedded systems. For desktop systems, the default mode is
usually a graphical user interface, by which the CLI is available throughterminal
emulator windows or on a separatevirtual console.Most low-level Linux components, including
the GNUuserland, use the CLI exclusively. The CLI is particularly suited for automation of
repetitive or delayed tasks, and provides very simpleinter-process communication. A
graphicalterminal emulatorprogram is often used to access the CLI from a Linux desktop. A
Linux system typically implements a CLI by ashell, which is also the traditional way of
interacting with a UNIX system. A Linux distribution specialized for servers may use the CLI as
its only interface.
On desktop systems, the most popular user interfaces are the extensive desktop
environments KDE Plasma Desktop,GNOME, andXfce,though a variety of additional user
interfaces exist. Most popular user interfaces are based on the X Window System,often simply
http://en.wikipedia.org/wiki/Caixa_M%C3%A1gicahttp://en.wikipedia.org/wiki/Netbookhttp://en.wikipedia.org/wiki/Eee_pchttp://en.wikipedia.org/wiki/Aspire_Onehttp://en.wikipedia.org/wiki/Package_managementhttp://en.wikipedia.org/wiki/Linux_distributionhttp://en.wikipedia.org/wiki/Unix-likehttp://en.wikipedia.org/wiki/Monolithic_kernelhttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Peripheralhttp://en.wikipedia.org/wiki/File_systemhttp://en.wikipedia.org/wiki/Device_drivershttp://en.wikipedia.org/wiki/Userland_(computing)http://en.wikipedia.org/wiki/C_standard_libraryhttp://en.wikipedia.org/wiki/Shell_(computing)http://en.wikipedia.org/wiki/Unix_toolhttp://en.wikipedia.org/wiki/Graphical_user_interfacehttp://en.wikipedia.org/wiki/Graphical_user_interfacehttp://en.wikipedia.org/wiki/X_Window_Systemhttp://en.wikipedia.org/wiki/X_Window_Systemhttp://en.wikipedia.org/wiki/Command_line_interfacehttp://en.wikipedia.org/wiki/Command_line_interfacehttp://en.wikipedia.org/wiki/Graphical_user_interfacehttp://en.wikipedia.org/wiki/Terminal_emulatorhttp://en.wikipedia.org/wiki/Terminal_emulatorhttp://en.wikipedia.org/wiki/Virtual_console_(PC)http://en.wikipedia.org/wiki/Userland_(computing)http://en.wikipedia.org/wiki/Inter-process_communicationhttp://en.wikipedia.org/wiki/Terminal_emulatorhttp://en.wikipedia.org/wiki/Shell_(computing)http://en.wikipedia.org/wiki/Desktop_environmenthttp://en.wikipedia.org/wiki/Desktop_environmenthttp://en.wikipedia.org/wiki/KDE_Plasma_Desktophttp://en.wikipedia.org/wiki/GNOMEhttp://en.wikipedia.org/wiki/Xfcehttp://en.wikipedia.org/wiki/X_Window_Systemhttp://en.wikipedia.org/wiki/X_Window_Systemhttp://en.wikipedia.org/wiki/Xfcehttp://en.wikipedia.org/wiki/GNOMEhttp://en.wikipedia.org/wiki/KDE_Plasma_Desktophttp://en.wikipedia.org/wiki/Desktop_environmenthttp://en.wikipedia.org/wiki/Desktop_environmenthttp://en.wikipedia.org/wiki/Shell_(computing)http://en.wikipedia.org/wiki/Terminal_emulatorhttp://en.wikipedia.org/wiki/Inter-process_communicationhttp://en.wikipedia.org/wiki/Userland_(computing)http://en.wikipedia.org/wiki/Virtual_console_(PC)http://en.wikipedia.org/wiki/Terminal_emulatorhttp://en.wikipedia.org/wiki/Terminal_emulatorhttp://en.wikipedia.org/wiki/Graphical_user_interfacehttp://en.wikipedia.org/wiki/Command_line_interfacehttp://en.wikipedia.org/wiki/Command_line_interfacehttp://en.wikipedia.org/wiki/X_Window_Systemhttp://en.wikipedia.org/wiki/X_Window_Systemhttp://en.wikipedia.org/wiki/Graphical_user_interfacehttp://en.wikipedia.org/wiki/Graphical_user_interfacehttp://en.wikipedia.org/wiki/Unix_toolhttp://en.wikipedia.org/wiki/Shell_(computing)http://en.wikipedia.org/wiki/C_standard_libraryhttp://en.wikipedia.org/wiki/Userland_(computing)http://en.wikipedia.org/wiki/Device_drivershttp://en.wikipedia.org/wiki/File_systemhttp://en.wikipedia.org/wiki/Peripheralhttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Monolithic_kernelhttp://en.wikipedia.org/wiki/Unix-likehttp://en.wikipedia.org/wiki/Linux_distributionhttp://en.wikipedia.org/wiki/Package_managementhttp://en.wikipedia.org/wiki/Aspire_Onehttp://en.wikipedia.org/wiki/Eee_pchttp://en.wikipedia.org/wiki/Netbookhttp://en.wikipedia.org/wiki/Caixa_M%C3%A1gica8/12/2019 Harshit Os File
22/31
HARSHIT(10CS032)
called "X". It providesnetwork transparency and permits a graphical application running on one
system to be displayed on another where a user may interact with the application.
Other GUIs may be classified as simpleX window managers, such asFVWM,Enlightenment,
andWindow Maker, which provide aminimalist functionality with respect to the desktop
environments. A window manager provides a means to control the placement and appearance of
individual application windows, and interacts with the X Window System. The desktop
environments include window managers as part of their standard installations (Mutter for
GNOME,KWin for KDE,Xfwm for Xfce as of January 2012) although users may choose to use
a different window manager if preferred.
DEVLOPMENT:-The primary difference between Linux and many other popular contemporary
operating systems is that theLinux kerneland other components arefree andopen source
software. Linux is not the only such operating system, although it is by far the most widely
used.Somefree andopen source software licenses are based on the principle ofcopyleft,a kind
of reciprocity: any work derived from acopyleftpiece of software must also be copyleft itself.The most common free software license, theGNU GPL,is a form ofcopyleft,and is used for the
Linux kernel and many of the components from theGNU project.
Linux based distributions are intended by developers forinteroperability with other operating
systems and established computing standards. Linux systems adhere toPOSIX,SUS,ISO,
andANSI standards where possible, although to date only one Linux distribution has been
POSIX.1 certified, Linux-FT.
Free software projects, although developed in acollaborative fashion, are often produced
independently of each other. The fact that the software licenses explicitly permit redistribution,
however, provides a basis for larger scale projects that collect the software produced by stand-
alone projects and make it available all at once in the form of aLinux distribution.
ALinux distribution,commonly called a "distro", is a project that manages a remote collection
of system software and application software packages available for download and installation
through a network connection. This allows users to adapt the operating system to their specific
needs. Distributions are maintained by individuals, loose-knit teams, volunteer organizations,
and commercial entities. A distribution is responsible for the default configuration of the
installed Linux kernel, general system security, and more generally integration of the different
software packages into a coherent whole. Distributions typically use apackage manager such
asdpkg,Synaptic,YAST, orPortage to install, remove and update all of a system's software
from one central location.
Programming on Linux:-Most Linux distributions support dozens ofprogramming languages.
The original development tools used for building both Linux applications and operating system
programs are found within theGNU tool chain, which includes theGNU Compiler
Collection (GCC) and theGNU build system. Amongst others, GCC provides compilers
forAda,C,C++,Java, andFortran. First released in 2003, theLow Level Virtual
Machineproject provides an alternative open-source compiler for many
languages.Proprietary compilers for Linux include the Intel C++ Compiler,Sun Studio, and
http://en.wikipedia.org/wiki/Network_transparencyhttp://en.wikipedia.org/wiki/X_window_managerhttp://en.wikipedia.org/wiki/FVWMhttp://en.wikipedia.org/wiki/Enlightenment_(window_manager)http://en.wikipedia.org/wiki/Window_Makerhttp://en.wikipedia.org/wiki/Minimalism_(computing)http://en.wikipedia.org/wiki/GNOME_Shellhttp://en.wikipedia.org/wiki/KWinhttp://en.wikipedia.org/wiki/Xfwmhttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Free_softwarehttp://en.wikipedia.org/wiki/Open_source_softwarehttp://en.wikipedia.org/wiki/Open_source_softwarehttp://en.wikipedia.org/wiki/Free_software_licensehttp://en.wikipedia.org/wiki/Open_source_licensehttp://en.wikipedia.org/wiki/Copylefthttp://en.wikipedia.org/wiki/Copylefthttp://en.wikipedia.org/wiki/GNU_GPLhttp://en.wikipedia.org/wiki/Copylefthttp://en.wikipedia.org/wiki/GNU_projecthttp://en.wikipedia.org/wiki/Interoperabilityhttp://en.wikipedia.org/wiki/POSIXhttp://en.wikipedia.org/wiki/Single_UNIX_Specificationhttp://en.wikipedia.org/wiki/International_Organization_for_Standardizationhttp://en.wikipedia.org/wiki/American_National_Standards_Institutehttp://en.wikipedia.org/wiki/Collaborationhttp://en.wikipedia.org/wiki/Linux_distributionhttp://en.wikipedia.org/wiki/Linux_distributionhttp://en.wikipedia.org/wiki/Package_managerhttp://en.wikipedia.org/wiki/Dpkghttp://en.wikipedia.org/wiki/Synaptic_(software)http://en.wikipedia.org/wiki/YASThttp://en.wikipedia.org/wiki/Portage_(software)http://en.wikipedia.org/wiki/Programming_languagehttp://en.wikipedia.org/wiki/GNU_toolchainhttp://en.wikipedia.org/wiki/GNU_Compiler_Collectionhttp://en.wikipedia.org/wiki/GNU_Compiler_Collectionhttp://en.wikipedia.org/wiki/GNU_build_systemhttp://en.wikipedia.org/wiki/Ada_(programming_language)http://en.wikipedia.org/wiki/C_(programming_language)http://en.wikipedia.org/wiki/C%2B%2Bhttp://en.wikipedia.org/wiki/Java_(programming_language)http://en.wikipedia.org/wiki/Fortranhttp://en.wikipedia.org/wiki/Low_Level_Virtual_Machinehttp://en.wikipedia.org/wiki/Low_Level_Virtual_Machinehttp://en.wikipedia.org/wiki/Proprietary_softwarehttp://en.wikipedia.org/wiki/Intel_C%2B%2B_Compilerhttp://en.wikipedia.org/wiki/Sun_Studio_(software)http://en.wikipedia.org/wiki/Sun_Studio_(software)http://en.wikipedia.org/wiki/Intel_C%2B%2B_Compilerhttp://en.wikipedia.org/wiki/Proprietary_softwarehttp://en.wikipedia.org/wiki/Low_Level_Virtual_Machinehttp://en.wikipedia.org/wiki/Low_Level_Virtual_Machinehttp://en.wikipedia.org/wiki/Fortranhttp://en.wikipedia.org/wiki/Java_(programming_language)http://en.wikipedia.org/wiki/C%2B%2Bhttp://en.wikipedia.org/wiki/C_(programming_language)http://en.wikipedia.org/wiki/Ada_(programming_language)http://en.wikipedia.org/wiki/GNU_build_systemhttp://en.wikipedia.org/wiki/GNU_Compiler_Collectionhttp://en.wikipedia.org/wiki/GNU_Compiler_Collectionhttp://en.wikipedia.org/wiki/GNU_toolchainhttp://en.wikipedia.org/wiki/Programming_languagehttp://en.wikipedia.org/wiki/Portage_(software)http://en.wikipedia.org/wiki/YASThttp://en.wikipedia.org/wiki/Synaptic_(software)http://en.wikipedia.org/wiki/Dpkghttp://en.wikipedia.org/wiki/Package_managerhttp://en.wikipedia.org/wiki/Linux_distributionhttp://en.wikipedia.org/wiki/Linux_distributionhttp://en.wikipedia.org/wiki/Collaborationhttp://en.wikipedia.org/wiki/American_National_Standards_Institutehttp://en.wikipedia.org/wiki/International_Organization_for_Standardizationhttp://en.wikipedia.org/wiki/Single_UNIX_Specificationhttp://en.wikipedia.org/wiki/POSIXhttp://en.wikipedia.org/wiki/Interoperabilityhttp://en.wikipedia.org/wiki/GNU_projecthttp://en.wikipedia.org/wiki/Copylefthttp://en.wikipedia.org/wiki/GNU_GPLhttp://en.wikipedia.org/wiki/Copylefthttp://en.wikipedia.org/wiki/Copylefthttp://en.wikipedia.org/wiki/Open_source_licensehttp://en.wikipedia.org/wiki/Free_software_licensehttp://en.wikipedia.org/wiki/Open_source_softwarehttp://en.wikipedia.org/wiki/Open_source_softwarehttp://en.wikipedia.org/wiki/Free_softwarehttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Xfwmhttp://en.wikipedia.org/wiki/KWinhttp://en.wikipedia.org/wiki/GNOME_Shellhttp://en.wikipedia.org/wiki/Minimalism_(computing)http://en.wikipedia.org/wiki/Window_Makerhttp://en.wikipedia.org/wiki/Enlightenment_(window_manager)http://en.wikipedia.org/wiki/FVWMhttp://en.wikipedia.org/wiki/X_window_managerhttp://en.wikipedia.org/wiki/Network_transparency8/12/2019 Harshit Os File
23/31
HARSHIT(10CS032)
IBM XLC/C++ Compiler.BASIC in the form ofVisual Basic is supported in such forms
asGambas,FreeBASIC, andXBasic, and in terms of terminal programming
orQuickBASIC orTurbo BASICprogramming in the form ofQB64.
Most distributions also include support forPHP,Perl,Ruby,Python and otherdynamic
languages. While not as common, Linux also supportsC# (viaMono),Vala, andScheme. A
number ofJava Virtual Machines and development kits run on Linux, including the original SunMicrosystems JVM (Hot Spot), and IBM's J2SE RE, as well as many open-source projects
likeKaffe andJikesRVM.
GNOME andKDE are populardesktop environments and provide a framework for developing
applications. These projects are based on theGTK+ andQtwidget toolkits,respectively, which
can also be used independently of the larger framework. Both support a wide variety of
languages. There are a number of environments available
includingAnjuta,Code::Blocks,CodeLite,Eclipse,Geany,ActiveStateKomodo,KDevelop,Laz
arus,MonoDevelop,NetBeans,Qt Creator andOmnis Studio, while the long-established
editorsVim andEmacs remain popular
USES:-As well as those designed for general purpose use on desktops and servers, distributions
may be specialized for different purposes including:computer architecture support, embedded,
stability, security, localization to a specific region or language, targeting of specific user groups,
support forreal-time applications, or commitment to a given desktop environment. Furthermore,
some distributions deliberately include onlyfree software. Currently, over three hundred
distributions are actively developed, with about a dozen distributions being most popular for
general-purpose use.
Linux is a widelyported operating system kernel. The Linux kernel runs on a highly diverse
range ofcomputer architectures: in the hand-heldARM-basediPAQ and
themainframeIBMSystem z9, System z10; in devices ranging from mobile phones
tosupercomputers.[65]Specialized distributions exist for less mainstream architectures.
TheELKS kernelforkcan run onIntel 8086 orIntel 8028616-bit microprocessors, while
theClinux kernel fork may run on systems without amemory management unit. The kernel
also runs on architectures that were only ever intended to use a manufacturer-created operating
system, such asMacintosh computers (with bothPowerPC andIntelprocessors),PDAs,video
game consoles,portable music players,and mobile phones.
There are several industry associations and hardwareconferences devoted to maintaining andimproving support for diverse hardware under Linux, such asFreedomHEC.
http://en.wikipedia.org/wiki/C_(programming_language)http://en.wikipedia.org/wiki/C%2B%2Bhttp://en.wikipedia.org/wiki/BASIChttp://en.wikipedia.org/wiki/Visual_Basichttp://en.wikipedia.org/wiki/Gambashttp://en.wikipedia.org/wiki/FreeBASIChttp://en.wikipedia.org/wiki/XBasichttp://en.wikipedia.org/wiki/QuickBASIChttp://en.wikipedia.org/wiki/Turbo_BASIChttp://en.wikipedia.org/wiki/QB64http://en.wikipedia.org/wiki/PHPhttp://en.wikipedia.org/wiki/Perlhttp://en.wikipedia.org/wiki/Ruby_programming_languagehttp://en.wikipedia.org/wiki/Python_programming_languagehttp://en.wikipedia.org/wiki/Dynamic_programming_languagehttp://en.wikipedia.org/wiki/Dynamic_programming_languagehttp://en.wikipedia.org/wiki/C_Sharp_(programming_language)http://en.wikipedia.org/wiki/Mono_(software)http://en.wikipedia.org/wiki/Vala_(programming_language)http://en.wikipedia.org/wiki/Scheme_programming_languagehttp://en.wikipedia.org/wiki/Java_Virtual_Machinehttp://en.wikipedia.org/wiki/Kaffehttp://en.wikipedia.org/wiki/JikesRVMhttp://en.wikipedia.org/wiki/GNOMEhttp://en.wikipedia.org/wiki/KDEhttp://en.wikipedia.org/wiki/Desktop_environmenthttp://en.wikipedia.org/wiki/GTK%2Bhttp://en.wikipedia.org/wiki/Qt_(toolkit)http://en.wikipedia.org/wiki/Widget_toolkithttp://en.wikipedia.org/wiki/Anjutahttp://en.wikipedia.org/wiki/Code::Blockshttp://en.wikipedia.org/wiki/CodeLitehttp://en.wikipedia.org/wiki/Eclipse_(computing)http://en.wikipedia.org/wiki/Geanyhttp://en.wikipedia.org/wiki/ActiveState_Komodohttp://en.wikipedia.org/wiki/KDevelophttp://en.wikipedia.org/wiki/Lazarus_(software)http://en.wikipedia.org/wiki/Lazarus_(software)http://en.wikipedia.org/wiki/MonoDevelophttp://en.wikipedia.org/wiki/NetBeanshttp://en.wikipedia.org/wiki/Qt_Creatorhttp://en.wikipedia.org/wiki/Omnis_Studiohttp://en.wikipedia.org/wiki/Vim_(text_editor)http://en.wikipedia.org/wiki/Emacshttp://en.wikipedia.org/wiki/Computer_architecturehttp://en.wikipedia.org/wiki/Real-time_computinghttp://en.wikipedia.org/wiki/Free_softwarehttp://en.wikipedia.org/wiki/Portinghttp://en.wikipedia.org/wiki/Computer_architecturehttp://en.wikipedia.org/wiki/ARM_architecturehttp://en.wikipedia.org/wiki/IPAQhttp://en.wikipedia.org/wiki/Mainframe_computerhttp://en.wikipedia.org/wiki/IBM_System_z9http://en.wikipedia.org/wiki/Supercomputerhttp://en.wikipedia.org/wiki/Linux#cite_note-64http://en.wikipedia.org/wiki/Linux#cite_note-64http://en.wikipedia.org/wiki/Linux#cite_note-64http://en.wikipedia.org/wiki/ELKShttp://en.wikipedia.org/wiki/Fork_(software_development)http://en.wikipedia.org/wiki/Intel_8086http://en.wikipedia.org/wiki/Intel_80286http://en.wikipedia.org/wiki/16-bithttp://en.wikipedia.org/wiki/%CE%9CClinuxhttp://en.wikipedia.org/wiki/Memory_management_unithttp://en.wikipedia.org/wiki/Macintoshhttp://en.wikipedia.org/wiki/PowerPChttp://en.wikipedia.org/wiki/Intelhttp://en.wikipedia.org/wiki/Personal_digital_assistanthttp://en.wikipedia.org/wiki/Video_game_consolehttp://en.wikipedia.org/wiki/Video_game_consolehttp://en.wikipedia.org/wiki/Digital_audio_playerhttp://en.wikipedia.org/wiki/Business_conferencehttp://en.wikipedia.org/wiki/FreedomHEChttp://en.wikipedia.org/wiki/FreedomHEChttp://en.wikipedia.org/wiki/Business_conferencehttp://en.wikipedia.org/wiki/Digital_audio_playerhttp://en.wikipedia.org/wiki/Video_game_consolehttp://en.wikipedia.org/wiki/Video_game_consolehttp://en.wikipedia.org/wiki/Personal_digital_assistanthttp://en.wikipedia.org/wiki/Intelhttp://en.wikipedia.org/wiki/PowerPChttp://en.wikipedia.org/wiki/Macintoshhttp://en.wikipedia.org/wiki/Memory_management_unithttp://en.wikipedia.org/wiki/%CE%9CClinuxhttp://en.wikipedia.org/wiki/16-bithttp://en.wikipedia.org/wiki/Intel_80286http://en.wikipedia.org/wiki/Intel_8086http://en.wikipedia.org/wiki/Fork_(software_development)http://en.wikipedia.org/wiki/ELKShttp://en.wikipedia.org/wiki/Linux#cite_note-64http://en.wikipedia.org/wiki/Supercomputerhttp://en.wikipedia.org/wiki/IBM_System_z9http://en.wikipedia.org/wiki/IBM_System_z9http://en.wikipedia.org/wiki/Mainframe_computerhttp://en.wikipedia.org/wiki/Mainframe_computerhttp://en.wikipedia.org/wiki/IPAQhttp://en.wikipedia.org/wiki/ARM_architecturehttp://en.wikipedia.org/wiki/Computer_architecturehttp://en.wikipedia.org/wiki/Portinghttp://en.wikipedia.org/wiki/Free_softwarehttp://en.wikipedia.org/wiki/Real-time_computinghttp://en.wikipedia.org/wiki/Computer_architecturehttp://en.wikipedia.org/wiki/Emacshttp://en.wikipedia.org/wiki/Vim_(text_editor)http://en.wikipedia.org/wiki/Omnis_Studiohttp://en.wikipedia.org/wiki/Qt_Creatorhttp://en.wikipedia.org/wiki/NetBeanshttp://en.wikipedia.org/wiki/MonoDevelophttp://en.wikipedia.org/wiki/Lazarus_(software)http://en.wikipedia.org/wiki/Lazarus_(software)http://en.wikipedia.org/wiki/KDevelophttp://en.wikipedia.org/wiki/ActiveState_Komodohttp://en.wikipedia.org/wiki/Geanyhttp://en.wikipedia.org/wiki/Eclipse_(computing)http://en.wikipedia.org/wiki/CodeLitehttp://en.wikipedia.org/wiki/Code::Blockshttp://en.wikipedia.org/wiki/Anjutahttp://en.wikipedia.org/wiki/Widget_toolkithttp://en.wikipedia.org/wiki/Qt_(toolkit)http://en.wikipedia.org/wiki/GTK%2Bhttp://en.wikipedia.org/wiki/Desktop_environmenthttp://en.wikipedia.org/wiki/KDEhttp://en.wikipedia.org/wiki/GNOMEhttp://en.wikipedia.org/wiki/JikesRVMhttp://en.wikipedia.org/wiki/Kaffehttp://en.wikipedia.org/wiki/Java_Virtual_Machinehttp://en.wikipedia.org/wiki/Scheme_programming_languagehttp://en.wikipedia.org/wiki/Vala_(programming_language)http://en.wikipedia.org/wiki/Mono_(software)http://en.wikipedia.org/wiki/C_Sharp_(programming_language)http://en.wikipedia.org/wiki/Dynamic_programming_languagehttp://en.wikipedia.org/wiki/Dynamic_programming_languagehttp://en.wikipedia.org/wiki/Python_programming_languagehttp://en.wikipedia.org/wiki/Ruby_programming_languagehttp://en.wikipedia.org/wiki/Perlhttp://en.wikipedia.org/wiki/PHPhttp://en.wikipedia.org/wiki/QB64http://en.wikipedia.org/wiki/Turbo_BASIChttp://en.wikipedia.org/wiki/QuickBASIChttp://en.wikipedia.org/wiki/XBasichttp://en.wikipedia.org/wiki/FreeBASIChttp://en.wikipedia.org/wiki/Gambashttp://en.wikipedia.org/wiki/Visual_Basichttp://en.wikipedia.org/wiki/BASIChttp://en.wikipedia.org/wiki/C%2B%2Bhttp://en.wikipedia.org/wiki/C_(programming_language)8/12/2019 Harshit Os File
24/31
HARSHIT(10CS032)
LINUX ARCHITECTURE
Introduction to LINUX OS:-Linux is open source free software which is based on UNIX. It is a
difficult and complicated OS. Therefore on the other hand it puts its entire control on the
shoulders of the end user to rectify its code accordingly. The basic architecture of Linux is based
on kernel. The first Linux kernel was developed in 1991. It is ported to many PC architectures.All the Linux code can be modified free of cost and the redistribution is done on the commercial
and non-commercial ways by securing a license form GNU.
Components of LINUX kernel:-Linux is based on monolithic kernel. It is able to perform
monolithic multitasking in user as well as kernel mode. It is also able to support visual memory.
It also provides the facility of shared libraries. It is capable of providing on demand loading. It is
also able to do better memory management and threading. It supports shared copy on write
executable and inter process communication. It is the architecture of Linux that users have
adopted it successfully. Linux is able to perform multi-tasking in a way that it is translucent for
the user processes. It seems at times that it is the only process running on the system memory byusing main memory and some other useful hardware resources. There are five basic subsystems
of Kernel which are process scheduler, memory manager, virtual file system, network interface
and Inter process communication. The process scheduler allows and controls the process access
to the central processing unit. Memory manager is there to guide the multi processes to make use
of main memory in a secure manner. Virtual file system is responsible in making an abridgement
of the details of the various hardware devices by in order to present the common file interface to
possibly every device. Network interface is the one responsible for providing access to
networking protocols and hardware. Inter process communication is complex task. As it is the
process of handling variable mechanisms in order to support process to process communication
on a one Linux system.
The Kernel Software of LINUX OS:-The Linux kernel is efficient software. It is capable of
performing multitasking. It contains virtual memory, shared libraries, demand loading and
memory manager. It can also share copies on write executable. It is also able to do proper
memory management and TCP/IP networking. Linux has a monolithic kernel. The kernel
extensions and device drivers typically operate in a ring0. This helps in the full access to the
hardware, though some run into user space. Unlike standard monolithic kernels, it is easy to
configure as modules loaded and unloaded while the system is running. The monolithic kernel
also allows the preemption of drivers. Preemption is also considered for resolving latency,
improving the responsiveness of the system and makes the Linux operating system more suitable
for the real time applications.
File System of LINUX :-The file system of Linux is based on single root directory or sub
directories. Sub directories are usually used as mount points, where it is possible to combine
various network files. The hardware commands are also incorporated into the file hierarchy.
Device driver interface to the end user is also a part of this device driver.
8/12/2019 Harshit Os File
25/31
HARSHIT(10CS032)
EXPERIMENT 4
AIM : introduction to basic commands oflinux
mkdir - make directories
Usage
mkdir [OPTION] DIRECTORY
Options
Create the DIRECTORY(ies), if they do not already exist.
Mandatory arguments to long options are mandatory for short optionstoo.
-m, mode=MODEset permissionmode (as in chmod), not rwxrwxrwx -umask
-p, parents no error if existing, make parent directories as needed
-v, verbose print a message for each created directory
-help display this help and exit-version output version information and exit
cd - change directories
Use cd to change directories. Type cd followed by the name of adirectory to access that directory.Keep in mind that you are always in adirectory and can navigate to directories hierarchically above or below.
mv- change the name of a directory
Type mv followed by the current name of a directory and the new name
of the directory.Ex: mv testdirnewnamedir
pwd - print working directory
will show you the full path to the directory you are currently in. This isvery handy to use, especially when performing some of the othercommands on this page
http://www.debianhelp.co.uk/commands.htmhttp://www.debianhelp.co.uk/commands.htmhttp://www.debianhelp.co.uk/commands.htmhttp://www.debianhelp.co.uk/commands.htm8/12/2019 Harshit Os File
26/31
HARSHIT(10CS032)
rmdir - Remove an existing directory
rm -r
Removes directories and files within the directories recursively.
chown - change file owner and group
Usage
chown [OPTION] OWNER[:[GROUP]] FILE
chown [OPTION] :GROUP FILE
chown [OPTION] --reference=RFILE FILE
Options
Change the owner and/or group of each FILE to OWNER and/or GROUP.With --reference, change the owner and group of each FILE to those of
RFILE.-c, changes like verbose but report only when a change is made
-dereference affect the referent of each symbolic link, rather than thesymbolic link itself
-h, no-dereference affect each symbolic link instead of any referencedfile (useful only on systems that can change the ownership of a symlink)
-from=CURRENT_OWNER:CURRENT_GROUP
change the owner and/or group of each file only if its current owner
and/or group match those specified here. Either may be omitted, inwhich case a match is not required for the omitted attribute.
-no-preserve-root do not treat `/' specially (the default)
-preserve-root fail to operate recursively on `/'
-f, -s