UNIT 1
Introduction
An OS (OS) is associate degree interface between a soul and hardware. associate degree OS is software package that performs all the fundamental tasks like file management, memory management, method management, handling input and output, and dominant peripheral devices like disk drives and printers.
Some in style OSs embody UNIX operative System, Windows OS, VMS, OS/400, AIX, z/OS, etc.
Definition
An OS could be a program that acts as associate degree interface between the user and therefore the hardware and controls the execution of every kind of programs.
Fig 1 – operating system
Following are a number of necessary functions of associate degree OS.
• Memory Management
• Processor Management
• Device Management
• File Management
• Security
• Control over system performance
• Job accounting
• Error detection aids
• Coordination between different software package and users
Memory Management
Memory management refers to management of Primary Memory or Main Memory. Main memory could be a massive array of words or computer memory units wherever every word or byte has its own address.
Main memory provides a quick storage that may be accessed directly by the C.P.U. For a program to be dead, it should within the main memory. associate degree OS will the subsequent activities for memory management −
• Keeps tracks of primary memory, i.e., what a part of it are in use by whom, what half aren't in use.
• In concurrent execution, the OS decides that method can get memory once and the way abundant.
• Allocates the memory once a method requests it to try and do thus.
• De-allocates the memory once a method now not wants it or has been terminated.
Processor Management
In concurrent execution setting, the OS decides that method gets the processor once and for the way abundant time. This perform is termed method planning. associate degree OS will the subsequent activities for processor management −
• Keeps tracks of methodor and standing of process. The program liable for this task is understood as traffic controller.
• Allocates the methodor (CPU) to a process.
• De-allocates methodor once a process is not any longer needed.
• Device Management
• An OS manages device communication via their several drivers. It will the subsequent activities for device management −
• Keeps tracks of all devices. Program liable for this task is understood because the I/O controller.
• Decides that method gets the device once and for the way abundant time.
• Allocates the device within the economical approach.
• De-allocates devices.
File Management
A classification system is generally organized into directories for straightforward navigation and usage. These directories could contain files and different directions.
An OS will the subsequent activities for file management −
• Keeps track of knowledge, location, uses, status etc. The collective facilities ar usually called classification system.
• Decides United Nations agency gets the resources.
• Allocates the resources.
• De-allocates the resources.
• Other necessary Activities
• Following ar a number of the necessary activities that associate degree OS OS
• Security − By means that of arcanum and similar different techniques, it prevents unauthorized access to programs and knowledge.
• Control over system performance − Recording delays between request for a service and response from the system.
• Job accounting − Keeping track of your time and resources employed by varied jobs and users.
• Error detection aids − Production of dumps, traces, error messages, and different debugging and error detection aids.
• Coordination between different software’s and users − Coordination and assignment of compilers, interpreters, assemblers and different software package to the varied users of the pc systems.
Key takeaway
An Operating System (OS) is an interface between a computer user and computer hardware. An operating system is software which performs all the basic tasks like file management, memory management, process management, handling input and output, and controlling peripheral devices such as disk drives and printers.
Some popular Operating Systems include Linux Operating System, Windows Operating System, VMS, OS/400, AIX, z/OS, etc.
The First Generation (1940 to early 1950s)
When the first electronic computer was developed in 1940, it was created without any operating system. In early times, users have full access to the computer machine and write a program for each task in absolute machine language. The programmer can perform and solve only simple mathematical calculations during the computer generation, and this calculation does not require an operating system.
The Second Generation (1955 - 1965)
The first operating system (OS) was created in the early 1950s and was known as GMOS. General Motors has developed OS for the IBM computer. The second-generation operating system was based on a single stream batch processing system because it collects all similar jobs in groups or batches and then submits the jobs to the operating system using a punch card to complete all jobs in a machine. At each completion of jobs (either normally or abnormally), control transfer to the operating system that is cleaned after completing one job and then continues to read and initiates the next job in a punch card. After that, new machines were called mainframes, which were very big and used by professional operators.
The Third Generation (1965 - 1980)
During the late 1960s, operating system designers were very capable of developing a new operating system that could simultaneously perform multiple tasks in a single computer program called multiprogramming. The introduction of multiprogramming plays a very important role in developing operating systems that allow a CPU to be busy every time by performing different tasks on a computer at the same time. During the third generation, there was a new development of minicomputer's phenomenal growth starting in 1961 with the DEC PDP-1. These PDP's leads to the creation of personal computers in the fourth generation.
The Fourth Generation (1980 - Present Day)
The fourth generation of operating systems is related to the development of the personal computer. However, the personal computer is very similar to the minicomputers that were developed in the third generation. The cost of a personal computer was very high at that time; there were small fractions of minicomputers costs. A major factor related to creating personal computers was the birth of Microsoft and the Windows operating system. Microsoft created the first window operating system in 1975. After introducing the Microsoft Windows OS, Bill Gates and Paul Allen had the vision to take personal computers to the next level. Therefore, they introduced the MS-DOS in 1981; however, it was very difficult for the person to understand its cryptic commands. Today, Windows has become the most popular and most commonly used operating system technology. And then, Windows released various operating systems such as Windows 95, Windows 98, Windows XP and the latest operating system, Windows 7. Currently, most Windows users use the Windows 10 operating system. Besides the Windows operating system, Apple is another popular operating system built in the 1980s, and this operating system was developed by Steve Jobs, a co-founder of Apple. They named the operating system Macintosh OS or Mac OS.
Key takeaway
The First Generation (1940 to early 1950s)
The Second Generation (1955 - 1965)
The Third Generation (1965 - 1980)
The Fourth Generation (1980 - Present Day)
Operating systems area unit there from the terribly 1st pc generation and that they keep evolving with time. during this chapter, {we will|we'll|we area unit going to} discuss a number of the vital varieties of in operation systems that are most ordinarily used.
Batch software system
The users of a batch software system don't act with the pc directly. every user prepares his job on associate degree off-line device like punch cards and submits it to the pc operator. to hurry up process, jobs with similar wants area unit batched along and run as a bunch. The programmers leave their programs with the operator and therefore the operator then kinds the programs with similar needs into batches.
The problems with Batch Systems area unit as follows –
• Lack of interaction between the user and therefore the job.
• CPU is usually idle, as a result of the speed of the mechanical I/O devices is slower than the mainframe.
• Difficult to supply the required priority.
Time-sharing in operation systems
Time-sharing could be a technique that permits many of us, settled at varied terminals, to use a specific system at identical time. Time-sharing or multitasking could be a logical extension of execution. Processor's time that is shared among multiple users at the same time is termed as time-sharing.
The main distinction between Multiprogrammed Batch Systems and Time-Sharing Systems is that just in case of Multiprogrammed batch systems, the target is to maximize processor use, whereas in Time-Sharing Systems, the target is to attenuate latency.
Multiple jobs area unit dead by the mainframe by change between them, however the switches occur thus oftentimes. Thus, the user will receive a right away response. for instance, in an exceedingly dealings process, the processor executes every user program in an exceedingly short burst or quantum of computation. That is, if n users area unit gift, then every user will get a time quantum. once the user submits the command, the latency is in few seconds at the most.
The software system uses mainframe programing and execution to supply every user with a tiny low portion of a time. pc systems that were designed primarily as batch systems are changed to time-sharing systems.
Advantages of Timesharing in operation systems area unit as follows –
• Provides the advantage of fast response.
• Avoids duplication of code.
• Reduces mainframe idle time.
Disadvantages of Time-sharing in operation systems area unit as follows –
• Problem of responsibility.
• Question of security and integrity of user programs and information.
• Problem of information communication.
Distributed software system
Distributed systems use multiple central processors to serve multiple time period applications and multiple users. processing jobs area unit distributed among the processors consequently.
The processors communicate with each other through varied communication lines (such as high-speed buses or phone lines). These area unit referred as loosely coupled systems or distributed systems. Processors in an exceedingly distributed system could vary in size and performance. These processors area unit referred as sites, nodes, computers, and so on.
The advantages of distributed systems area unit as follows –
• With resource sharing facility, a user at one website could also be ready to use the resources on the market at another.
• Speedup the exchange of information with each other via electronic message.
• If one website fails in an exceedingly distributed system, the remaining sites will doubtless continue in operation.
• Better service to the shoppers.
• Reduction of the load on the host pc.
• Reduction of delays in processing.
Network software system
A Network software system runs on a server and provides the server the potential to manage information, users, groups, security, applications, and different networking functions. the first purpose of the network software system is to permit shared file and printer access among multiple computers in an exceedingly network, generally an {area|a neighborhood} area network (LAN), a non-public network or to different networks.
Examples of network in operation systems embody Microsoft Windows Server 2003, Microsoft Windows Server 2008, UNIX, Linux, Mac OS X, Novell NetWare, and BSD.
The advantages of network in operation systems area unit as follows –
• Centralized server’s area unit extremely stable.
• Security is server managed.
• Upgrades to new technologies and hardware is simply integrated into the system.
• Remote access to servers is feasible from completely different locations and kinds of systems.
The disadvantages of network in operation systems area unit as follows –
• High price of shopping for and running a server.
• Dependency on a central location for many operations.
• Regular maintenance and updates area unit needed.
Real Time software system
A time period system is outlined as a knowledge process system during which the interval needed to method and answer inputs is thus little that it controls the atmosphere. The time taken by the system to reply to associate degree input and show of needed updated info is termed because the latency. Thus, during this methodology, the latency is extremely less as compared to on-line process.
Real-time systems area unit used once the area unit rigid time needs on the operation of a processor or the flow of information and time period systems is used as an impact device in an exceedingly dedicated application. A time period software system should have well-defined, mounted time constraints, otherwise the system can fail. for instance, Scientific experiments, medical imaging systems, industrial management systems, weapon systems, robots, traffic management systems, etc.
The area unit 2 varieties of time period in operation systems.
Hard time period systems
Hard time period systems guarantee that essential tasks complete on time. In onerous time period systems, external storage is restricted or missing and therefore the information is kept in storage. In these systems, computer storage is sort of ne'er found.
Soft real-time systems
Soft real-time systems are less restrictive. A critical real-time task gets priority over other tasks and retains the priority until it completes. Soft real-time systems have limited utility than hard real-time systems. For example, multimedia, virtual reality, Advanced Scientific Projects likes undersea exploration and planetary rovers, etc.
Key takeaway
Operating systems are there from the very first computer generation and they keep evolving with time. In this chapter, we will discuss some of the important types of operating systems which are most commonly used.
An OS provides services to each the users and to the programs.
• It provides programs Associate in Nursing atmosphere to execute.
• It provides users the services to execute the programs during a convenient manner.
Following square measure many common services provided by Associate in Nursing OS Associate in Nursing
• Program execution
• I/O operations
• File System manipulation
• Communication
• Error Detection
• Resource Allocation
• Protection
Program execution
Operating systems handle several styles of activities from user programs to system programs like printer spooler, name servers, digital computer, etc. every of those activities is encapsulated as a method.
A method includes the entire execution context (code to execute, knowledge to govern, registers, OS resources in use). Following square measure, the foremost activities of Associate in Nursing OS with relevancy program management −
• Loads a program into memory.
• Executes the program.
• Handles program's execution.
• Provides a mechanism for method synchronization.
• Provides a mechanism for method communication.
• Provides a mechanism for impasse handling.
I/O Operation
An I/O scheme includes of I/O devices and their corresponding driver code. Drivers hide the peculiarities of specific hardware devices from the users.
• An OS manages the communication between user and device drivers.
• I/O operation suggests that scan or write operation with any file or any specific I/O device.
• Operating system provides the access to needed|the specified|the desired} I/O device once required.
File system manipulation
A file represents a group of connected data. Computers will store files on the disk (secondary storage), for long-run storage purpose. samples of storage media embody mag tape, disk and storage device drives like CD, DVD. every of those media has its own properties like speed, capacity, knowledge transfer rate and knowledge access strategies.
A classification system is often organized into directories for simple navigation and usage. These directories could contain files and alternative directions. Following square measure, the foremost activities of Associate in Nursing OS with relevancy file management −
• Program must scan a file or write a file.
• The OS offers the permission to the program for operation on file.
• Permission varies from read-only, read-write, denied so on.
• Operating System provides Associate in Nursing interface to the user to create/delete files.
• Operating System provides Associate in Nursing interface to the user to create/delete directories.
• Operating System provides Associate in Nursing interface to form the backup of classification system.
Communication
In case of distributed systems that square measure a group of processors that don't share memory, peripheral devices, or a clock, the OS manages communications between all the processes. Multiple processes communicate with each other through communication lines within the network.
The OS handles routing and association ways, and therefore the issues of competition and security. Following square measure the foremost activities of Associate in Nursing OS with relevancy
• Two processes usually need knowledge to be transferred between them
• Both the processes may be on one pc or on totally different computers, however square measure connected through a electronic network.
• Communication could also be enforced by 2 strategies, either by Shared Memory or by Message Passing.
Error handling
Errors will occur anytime and anyplace. a mistake could occur in computer hardware, in I/O devices or within the memory hardware. Following square measure, the foremost activities of Associate in Nursing OS with relevancy error handling −
• The OS perpetually checks for potential errors.
• The OS takes Associate in Nursing applicable action to make sure correct and consistent computing.
Resource Management
In case of multi-user or multi-tasking atmosphere, resources like main memory, computer hardware cycles and files storage square measure to be allotted to every user or job. Following square measure, the foremost activities of Associate in Nursing OS with relevancy resource management −
• The OS manages every kind of resources victimisation scheduler.
• computer hardware planning algorithms square measure used for higher utilization of CPU.
Protection
Considering a ADPS having multiple users and multiprogramming of multiple processes, the assorted processes should be shielded from every other's activities.
Protection refers to a mechanism or the way to manage the access of programs, processes, or users to the resources outlined by a ADPS. Following square measure, the foremost activities of Associate in Nursing OS with relevancy
• The OS ensures that each one access to system resources is controlled.
• The OS ensures that external I/O devices square measure shielded from invalid access tries.
• The OS provides authentication options for every user by suggests that of passwords.
Key Takeaway
An Operating System provides services to both the users and to the programs.
Following are a few common services provided by an operating system −
The interface between a process and an operating system is provided by system calls. In general, system calls are available as assembly language instructions. They are also included in the manuals used by the assembly level programmers. System calls are usually made when a process in user mode requires access to a resource. Then it requests the kernel to provide the resource via a system call.
A figure representing the execution of the system call is given as follows −
Fig 2 - the execution of the system call
As can be seen from this diagram, the processes execute normally in the user mode until a system call interrupts this. Then the system call is executed on a priority basis in the kernel mode. After the execution of the system call, the control returns to the user mode and execution of user processes can be resumed.
In general, system calls are required in the following situations −
Types of System Calls
There are mainly five types of system calls. These are explained in detail as follows −
Process Control
These system calls deal with processes such as process creation, process termination etc.
File Management
These system calls are responsible for file manipulation such as creating a file, reading a file, writing into a file etc.
Device Management
These system calls are responsible for device manipulation such as reading from device buffers, writing into device buffers etc.
Information Maintenance
These system calls handle information and its transfer between the operating system and the user program.
Communication
These system calls are useful for interprocess communication. They also deal with creating and deleting a communication connection.
Some of the examples of all the above types of system calls in Windows and Unix are given as follows −
Types of System Calls | Windows | Linux |
Process Control | CreateProcess() | fork() |
File Management | CreateFile() | open() |
Device Management | SetConsoleMode() | ioctl() |
Information Maintenance | GetCurrentProcessID() | getpid() |
Communication | CreatePipe() | pipe() |
There are many different system calls as shown above. Details of some of those system calls are as follows −
open()
The open() system call is used to provide access to a file in a file system. This system call allocates resources to the file and provides a handle that the process uses to refer to the file. A file can be opened by multiple processes at the same time or be restricted to one process. It all depends on the file organisation and file system.
read()
The read() system call is used to access data from a file that is stored in the file system. The file to read can be identified by its file descriptor and it should be opened using open() before it can be read. In general, the read() system calls takes three arguments i.e. the file descriptor, buffer which stores read data and number of bytes to be read from the file.
write()
The write() system calls writes the data from a user buffer into a device such as a file. This system call is one of the ways to output data from a program. In general, the write system calls takes three arguments i.e. file descriptor, pointer to the buffer where data is stored and number of bytes to write from the buffer.
close()
The close() system call is used to terminate access to a file system. Using this system call means that the file is no longer required by the program and so the buffers are flushed, the file metadata is updated and the file resources are de-allocated.
Key takeaway
The interface between a process and an operating system is provided by system calls. In general, system calls are available as assembly language instructions. They are also included in the manuals used by the assembly level programmers. System calls are usually made when a process in user mode requires access to a resource. Then it requests the kernel to provide the resource via a system call.
The software package is split into numerous layers within the stratified software package and every of the layers have totally different functionalities. this sort of software package was created as associate degree improvement over the first monolithic systems.
Why Layering in operative System?
Layering provides a definite advantage in associate degree software package. All the layers are outlined severally and move with one another pro re nata. Also, it's easier to form, maintain and update the system if it's tired the shape of layers. modification in one-layer specification doesn't have an effect on the remainder of the layers.
Each of the layers within the software package will solely move with the layers that square measure higher than and below it. very cheap layer handles the hardware and therefore the topmost layer deals with the user applications.
Layers in stratified software package
There square measure six layers within the stratified software package. A diagram demonstrating these layers is as follows:
Fig 3 – Layered operating system
Details about the six layers are:
Hardware
This layer interacts with the system hardware and coordinates with all the peripheral devices used like printer, mouse, keyboard, scanner etc. The hardware layer is that the lowest layer within the stratified software package design.
CPU planning
This layer deals with planning the processes for the hardware. There square measure several planning queues that square measure wants to handle processes. once the processes enter the system, they're place into the work queue. The processes that square measure able to execute within the main memory square measure unbroken within the prepared queue.
Memory Management
Memory management deals with memory and therefore the moving of processes from disk to primary memory for execution and back once more. this is often handled by the third layer of the software package.
Process Management
This layer is accountable for managing the processes i.e. distribution the methodor to a process at a time. this is often referred to as method planning. the various algorithms used for method planning square measure FCFS (first come back 1st served), SJF (shortest job first), priority planning, round-robin planning etc.
I/O Buffer
I/O devices square measure important within the pc systems. they supply users with the means that of interacting with the system. This layer handles the buffers for the I/O devices and makes positive that they work properly.
User Programs
This is the best layer within the stratified software package. This layer deals with the various user programs associate degreed applications that run in an software package like word processors, games, browsers etc.
Key takeaway
The operating system is split into various layers In the layered operating system and each of the layers have different functionalities. This type of operating system was created as an improvement over the early monolithic systems.
The entire software package works within the kernel house within the monolithic system. This will increase the dimensions of the kernel furthermore because the software package. this is often totally different than the microkernel system wherever the minimum computer code that's needed to properly implement associate software package is unbroken within the kernel.
A diagram that demonstrates the design of a monolithic system is as follows −−
Fig 4 – monolithic operating system
The kernel provides numerous services like memory management, file management, method programing etc. victimization perform calls. This makes the execution of the software package quite quick because the services square measure enforced beneath constant address house.
Differences between Microkernel and Monolithic Kernel
Some of the variations between microkernel and monolithic kernel square measure given as follows −
• The microkernel is far smaller in size as compared to the monolithic kernel.
• The microkernel is well protractible whereas this is often quite sophisticated for the monolithic kernel.
• The execution of the microkernel is slower as compared to the monolithic kernel.
• Much additional code is needed to jot down a microkernel than the monolithic kernel.
• Examples of Microkernel square measure QNX, Symbian, L4 UNIX operating system etc. Monolithic Kernel examples square measure UNIX operating system, BSD etc.
Advantages of Monolithic Kernel
Some of the benefits of monolithic kernel square measure square measure
• The execution of the monolithic kernel is kind of quick because the services like memory management, file management, method programming etc. are enforced beneath constant address house.
• A method runs utterly in an exceedingly single address house within the monolithic kernel.
• The monolithic kernel could be a static single computer file.
• Disadvantages of Monolithic Kernel
• Some of the disadvantages of monolithic kernel square measure square measure
• If any service fails within the monolithic kernel, it results in the failure of the whole system.
• To add any new service, the whole software package must be changed by the user.
Key takeaway
The entire operating system works in the kernel space in the monolithic system. This increases the size of the kernel as well as the operating system. This is different than the microkernel system where the minimum software that is required to correctly implement an operating system is kept in the kernel.
Kernel is that the core a part of AN OS that manages system resources. It additionally acts sort of a bridge between application and hardware of the pc. it's one amongst the primary programs loaded on start-up (after the Bootloader).
Fig 5 – Kernel
Kernel mode and User mode of electronic equipment operation
The electronic equipment will execute bound instruction only it's within the kernel mode. These instruction ar referred to as privilege instruction. they permit implementation of special operation whose execution by the user program might interface with the functioning of OS or activity of another user program. as an example, instruction for managing memory protection.
• The OS puts the electronic equipment in kernel mode once it's corporal punishment within the kernel thus, that kernel will execute some special operation.
• The OS puts the electronic equipment in user mode once a user program is in execution thus, that user program cannot interface with the OS program.
• User-level instruction doesn't need special privilege. Example ar ADD,PUSH,etc.
Fig 6- process state
The conception of modes is extended on the far side 2, requiring over one mode bit CPUs that support virtualization use one amongst these additional bits to point once the virtual machine manager, VMM, is up to the mark of the system. The VMM has a lot of privileges than standard user programs, however not such a large amount of because the full kernel.
System calls ar usually enforced within the sort of code interrupts, that causes the hardware’s interrupt handler to transfer management over to AN applicable interrupt handler, that is an element of the OS, switch the mode bit to kernel mode within the method. The interrupt handler checks specifically that interrupt was generated, checks extra parameters (usually more experienced registers) if applicable, so calls the acceptable kernel routine to handle the service requested by the call.
User programs’ tries to execute banned directions (privileged or non-existent directions), or to access prohibited memory areas, additionally generate code interrupts, that ar cornered by the interrupt handler and management is transferred to the OS, that problems AN applicable error message, presumably dumps information to a log (core) file for later analysis, so terminates the violative program.
What is Microkernel?
Microkernel is one amongst the classification of the kernel. Being a kernel, it manages all system resources. However, during a microkernel, the user services and kernel services are enforced in numerous address house. The user services are unbroken in user address house, and kernel services are unbroken underneath kernel address house, therefore additionally reduces the dimensions of kernel and size of OS also.
Fig 7 – Application
It provides token services of method and memory management. The communication between shopper program/application and services running in user address house is established through message passing, reducing the speed of execution microkernel. The OS remains unaffected as user services and kernel services are isolated thus if any user service fails it doesn't have an effect on kernel service. Therefore, it adds to at least one of the benefits during a microkernel. it's simply long i.e. if any new services are to be extra they're extra to user address house and therefore needs no modification in kernel house. it's additionally moveable, secure and reliable.
Microkernel design
Since kernel is that the core a part of the OS, thus it's meant for handling the foremost necessary services solely. Therefore, during this design solely, the foremost necessary services are within kernel and remainder of the OS services are gift within system computer program. Therefore, users are able to move with those not-so necessary services among the system application. and also, the microkernel is only to blame for the foremost necessary services of OS they're named as follows:
• Inter Process-Communication
• Memory Management
• CPU-Scheduling
Advantages of Microkernel
• The design of this kernel is little and isolated therefore it will perform higher.
• Expansion of the system is simpler, it's merely extra within the system application while not heavy the kernel.
Key takeaway
Kernel is the core part of an operating system which manages system resources. It also acts like a bridge between application and hardware of the computer. It is one of the first programs loaded on start-up (after the Bootloader).
Virtual Machine abstracts the hardware of our pc like computer hardware, disk drives, memory, NIC (Network Interface Card) etc, into many various execution environments as per our needs, therefore giving U.S. a feel that every execution surroundings could be a single laptop. for instance, VirtualBox.
When we run totally different processes on AN package, it creates AN illusion that every method is running on a distinct processor having its own memory board, with the assistance of computer hardware programming and virtual-memory techniques. There square measure extra options of a method that can't be provided by the hardware alone like system calls and a filing system. The virtual machine approach doesn't offer these extra functionalities however it solely provides AN interface that's same as basic hardware. every method is given a virtual copy of the underlying ADPS.
We can produce a virtual machine for many reasons, all of that square measure essentially associated with the power to share a similar basic hardware nevertheless may also support totally different execution environments, i.e., totally different operational systems at the same time.
The main downside with the virtual-machine approach involves disk systems. allow us to suppose that the physical machine has solely 3 disk drives however needs to support seven virtual machines. Obviously, it cannot portion a drive to every virtual machine, as a result of virtual-machine software package itself can want substantial space to produce memory board and spooling. the answer is to produce virtual disks.
Users square measure so given their own virtual machines. once that they will run any of the operational systems or software package packages that square measure out there on the underlying machine. The virtual-machine software package worries with multi-programming multiple virtual machines onto a physical machine, however it doesn't got to take into account any user-support software package. This arrangement will offer a helpful thanks to divide the matter of planning a multi-user interactive system, into 2 smaller items.
Advantages:
Disadvantages:
Key takeaway
Virtual Machine abstracts the hardware of our personal computer such as CPU, disk drives, memory, NIC (Network Interface Card) etc, into many different execution environments as per our requirements, hence giving us a feel that each execution environment is a single computer. For example, VirtualBox.
The iOS Media Layer
The role of the Media layer is to provide iOSwith audio, video, animation and graphics capabilities. As with the other layers comprising the iOS stack, the Media layer comprises a number of frameworks which may be utilized when developing iPhone apps. In this section we will look at each one in turn.
Core Video Framework (CoreVideo.framework)
The Core Video Framework provides buffering support for the Core Media framework. Whilst this may be utilized by application developers it is typically not necessary to use this framework.
Core Text Framework (CoreText.framework)
The iOS Core Text framework is a C-based API designed to ease the handling of advanced text layout and font rendering requirements.
Image I/O Framework (ImageIO.framework)
The Image I/O framework, the purpose of which is to facilitatethe importing and exporting of image data and image metadata, was introduced in iOS 4. The framework supports a wide range of image formats including PNG, JPEG, TIFF and GIF.
Assets Library Framework (AssetsLibrary.framework)
The Assets Library provides a mechanism for locating and retrieving video and photo files located on the iPhone device. In addition to accessing existing images and videos, this framework also allows new photos and videos to be saved to the standard device photo album.
Core Graphics Framework (CoreGraphics.framework)
The iOS Core Graphics Framework (otherwise known as the Quartz 2D API) provides a lightweight two-dimensional rendering engine. Features of this framework include PDF document creation and presentation, vector-based drawing, transparent layers, path-based drawing, anti-aliased rendering, color manipulation and management, image rendering and gradients. Those familiar with the Quartz 2D API running on MacOS X will be pleased to learn that the implementation of this API is the same on iOS.
Core Image Framework (CoreImage.framework)
A new framework introduced with iOS 5 providing a set of video and image filtering and manipulation capabilities for application developers.
Quartz Core Framework (QuartzCore.framework)
The purpose of the Quartz Core framework is to provide animation capabilities on the iPhone. It provides the foundation for the majority of the visual effects and animation used by the UIKit framework and provides an Objective-C based programming interface for creation of specialized animation within iPhone apps.
GLKit Framework (GLKit.framework)
The GLKit framework is an Objective-C based API designed to ease the task of creating OpenGL ES based applications.
NewsstandKit Framework (NewsstandKit.framework)
The Newsstand application is a new feature of iOS 5 and is intended as a central location for users to gain access to newspapers and magazines. The NewsstandKit framework allows for the development of applications that utilize this new service.
iOS Audio Support
iOS is capable of supporting audio in AAC, Apple Lossless (ALAC), A-law, IMA/ADPCM, Linear PCM, μ-law, DVI/Intel IMA ADPCM, Microsoft GSM 6.10 and AES3-2003 formats through the support provided by the following frameworks.
AV Foundation framework (AVFoundation.framework)
An Objective-C based framework designed to allow the playback, recording and management of audio content.
Core Audio Frameworks (CoreAudio.framework, AudioToolbox.framework and AudioUnit.framework)
The frameworksthat comprise Core Audio for iOS define supported audio types, playback and recording of audio files and streams and also provide access to the device‟s built-in audio processing units.
Open Audio Library (OpenAL)
OpenALis a cross platform technology used to provide high-quality, 3D audio effects (also referred to as positional audio). Positional audio may be used in a variety of applications though is typically used to provide sound effects in games.
Media Player Framework (MediaPlayer.framework)
The iOS Media Player framework is able to play video in .mov, .mp4, .m4v, and .3gp formats at a variety of compression standards, resolutions and frame rates.
Core Midi Framework (CoreMIDI.framework)
Introduced in iOS 4, the Core MIDI framework provides an API for applications to interact with MIDI compliant devices such as synthesizers and keyboards via the iPhone‟s dock connector.
Key takeaway
The iOS Media Layer
The role of the Media layer is to provide iOSwith audio, video, animation and graphics capabilities. As with the other layers comprising the iOS stack, the Media layer comprises a number of frameworks which may be utilized when developing iPhone apps. In this section we will look at each one in turn.
References