Smartphone Operating System (779883), страница 3
Текст из файла (страница 3)
It is the set of allthe tangible components that provide the operational foundation for thesoftware. Software is the set of programs and applications that executetheir instructions on the hardware. A software program must use hardwarein some way – for input, for output or to operate the hardware somehow.Consider the example of a message manager application running ona mobile phone (see Figure 1.1). It collects text messages as they arrive,analyzes each message and responds to certain ones as the application’suser has specified.
The hardware receives radio signals and notifies theoperating system that data is arriving. The operating system engagesthe sending source by working with the radio hardware to receive atext message using the appropriate data protocol. Once the completemessage has arrived correctly, the operating system stores the messageand notifies the message manager. The message manager applicationuses the operating system to access the stored message – which requiresthe operating system to interact with the hardware. The manager reviewsthe message and takes some kind of action, perhaps deleting the messageor making an automatic reply. The automatic reply again requires theoperating system to create a new message and to access the hardware forstorage and transmission of the new message.It is important to realize here that neither the hardware nor the softwaresees an operating system.
The hardware is following a prescribed set of4INTRODUCTION TO MOBILE PHONE SYSTEMSNotifyRadioEngageEngageHardwareEngageEngageOperatingsystemNotifyAccessNew MsgSoftwareSentFigure 1.1 The relationship between hardware, operating system and softwareinstructions built into its memory. The software is using an applicationprogramming interface (API) to manipulate text from storage and tocompose and send a message. Both sides see a different picture, yetboth sides are drawn together and work to accomplish a joint goal. Theoperating system acts as the go-between and provides an operationalpicture to both sides.The focus of a mobile phone is in the software that enables a user touse it.
It is software that enables a user to make a phone call, send amessage, set an alarm, or write on the display with electronic ‘ink’. Theuser of the phone realizes that the hardware exists – it is in his hand,after all – but is most likely not aware of the operating system. A goodoperating system is transparent, allowing the user to use the software tointeract with the hardware without showing its own face.A Resource ModelThe focus of an operating system is on providing ways for the software touse the hardware to do what the user wants. It is the goal of an operatingsystem to make this happen seamlessly and transparently.
Essentially, theWHAT IS AN OPERATING SYSTEM?5operating system must provide the software with an accessible modelof the hardware. The hardware must become a set of resources to beoperated by the software. Management of that hardware resource is thejob of the operating system.Software manipulates hardware resources through an application programming interface. APIs can be provided by the operating systemdesigner or by a third party. Software does not usually work with hardware directly, but manipulates resources by communicating with theoperating system through a function call interface.
The operating systembuilds a model of the hardware and provides system function calls thataccess that hardware model in specific ways (see Figure 1.2).Consider the previous message manager example. The operating system has many choices to make as it works with messages. It could, forexample, store the message text in a file and give an application a wayto find the file name and to work with that file directly. The applicationwould have to open the file (again, through the operating system resourcemodel) and process the raw message data. Another way to present themessage would be to store the message in a file, but present an applicationwith an abstract object called a ‘text message’ that the application couldwork with. The application would make function calls that the operatingsystem would intercept, deriving information about the message andreturning that information.
The application would not be aware of wherethe object was stored. These are two models of message handling: oneUser ApplicationAPIsSystemCallsOperating SystemFigure 1.2 Structure of access to an operating system6INTRODUCTION TO MOBILE PHONE SYSTEMSmore raw and direct, the other more abstract and object-oriented. Thechoice that the operating system makes about which one to use buildsthe character of the operating system.A good system model is one that effectively and transparently providessoftware with an intuitive way to access system resources. System modelsare often based on abstraction. Abstraction involves the hiding of irrelevant data and the presentation of only useful, relevant information.
Weoften label abstractions as ‘objects’. For example, system resources arethe abstract objects that the operating system presents to the software.They might represent a resource as a hardware object, with the detailabstracted away, or as a set of functions that can use the hardware. A fileis an abstract object that represents a way to use hardware storage. A textmessage is an abstract object that represents a way to use both softwareand hardware resources to access that message. These are concepts builtand supported by the operating system and provided to applications.A good operating system has more goals than simply providing a usefulmodel to software applications.• Robustness : a good operating system is reliable and tolerates problems well.
The system does not stop working due to isolated hardwareor software errors and fails gracefully if it must deal with severalerrors at the same time. Robust operating systems provide services tosoftware unless the hardware fails.• Scalability : a good operating system incorporates resources as theyare added to the system. This can be transparent to the user – the bestway – or can involve some kind of user interaction.
The plug-and-playconcepts of Microsoft Windows – where devices are discovered andinstalled automatically – is an example of good scalability. On theother hand, old versions of Linux used to require recompilation of theoperating system when new devices were added. This is an exampleof bad scalability.• Extensibility : the operating system should be designed to adapt tonew technologies that extend the operating system beyond the pointat which it was implemented.
For example, it should be able toadapt to new forms of file storage without a complete redesign of theoperating system.• Throughput (the work that a processor can complete in a specifictime period) : an operating system must perform well and achieveHISTORY OF OPERATING SYSTEMS7high throughput. A good operating system minimizes the time spentproviding services while maximizing throughput.• Portability : a good operating system should be portable, that is, ableto be run on many different hardware platforms.• Security : an operating system must be secure. It must prevent unauthorized users and processes from accessing stored data and systemservices.Many Operating Systems Fit the BillEven though the list of criteria for a good operating system looks a bitdaunting, many operating systems have been created over the yearsthat meet these criteria.
In addition, many operating systems did someof these very well and steered the industry in one particular area. A listof operating systems can be found at http://en.wikipedia.org/wiki/List of operating systems.Many operating systems are not very portable. They are specificallydesigned to run on a single platform. In addition, you will note that‘popularity’ is not an item on the criteria list. Most operating systemswere not popular, yet were designed to address a specific systemmodel.1.2 History of Operating SystemsOperating systems are the heart of every general-purpose computer. Since1957, operating systems have been an essential component of computers.This section outlines a brief history of operating systems, highlighting thehistory of Symbian OS.General-Purpose Operating SystemsThe earliest computers did not have operating systems.
They were dedicated computing devices that performed a single task, thereby needingonly one ‘program’ to execute. From the ancient Incas in Central Americato the Difference Engine constructed by Charles Babbage in 1847 tothe early days of modern computing (the ENIAC in 1946, the Mark I in1948), early computers focused on single tasks that had direct access tohardware and no operating system.8INTRODUCTION TO MOBILE PHONE SYSTEMSOperating systems were invented when it became clear that accessto ‘the system’ needed to be standardized. Until the mid-1950s, programmers wrote their own routines for accessing resources, particularlysystem input and output.
Patterns of programming were beginning toemerge, such as repeated use of certain mathematical functions. Theneed for basic, standardized operating system functionality, includingdevice drivers and execution libraries, was becoming apparent. Criticalmass was reached as computer systems were designed to allow queuingof jobs, or programs, to run one after the other.The first operating system was released in 1957.