What Is Mobile Operating System? How It Is Different from Operating Systems for Personal Computers?
Total Page:16
File Type:pdf, Size:1020Kb
What is Mobile Operating System? A mobile operating system, also known as a mobile OS, mobile software platform or a handheld operating system, is the operating system that controls a mobile device or information appliance—similar in principle to an operating system such as Windows, Mac OS X, or Linux distributions that controls a desktop computer or laptop also an operating system for mobile devices is the software platform on top of which other programs called application programs, can run on mobile handheld. However, they are currently somewhat simpler, and deal more with the wireless versions of broadband and local connectivity, mobile multimedia formats, and different input methods. Typical examples of devices running a mobile operating system are smart phones, personal digital assistants (PDAs), tablet computers and information appliances, or what are sometimes referred to as smart devices, which may also include embedded systems, or other mobile devices and wireless devices. How it is different from Operating Systems for Personal Computers? An operating system (OS) is a set of programs that manages computer hardware resources, and provides common services for application software. The operating system is the most important type of system software in a computer system. Without an operating system, a user cannot run an application program on their computer, unless the application program is self booting. 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 and memory allocation, the operating system acts as an intermediary between application programs and the computer hardware,[1][2] although the application code is usually executed directly by the hardware and will frequently call the OS or be interrupted by it. Operating systems are found on almost any device that contains a computer—from cellular phones and video game consoles to supercomputers and web servers. Examples of popular modern operating systems include Linux, Android, iOS, Mac OS X, and Microsoft Windows Classification of Operating Systems: The Operating systems be it operating system for Personal computer or an operating system for a mobile or any other handheld device can be classified into five major types. They are : 1. Real-time Operating Systems : 2. Multi-user vs. Single-user Operating Systems : 3. Multi-tasking vs. Single-tasking Operating Systems : 4. Distributed Operating Systems : 5. Embedded Operating Systems : 1. Real-time Operating Systems : A real-time operating system is a multitasking operating system that aims at executing real- 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. 2. Multi-user vs. Single-user Operating Systems : A multi-user operating system allows multiple users to access a computer system concurrently. Time-sharing system can be classified as multi-user systems as they enable a multiple user access to a computer through the sharing of time. Single-user operating systems, as opposed to a multi-user operating system, are usable by a single user at a time. Being able to have multiple accounts on a Windows operating system does not make it a multi-user system. Rather, only the network administrator is the real user. But for a Unix-like operating system, it is possible for two users to login at a time and this capability of the OS makes it a multi-user operating system. 3. Multi-tasking vs. Single-tasking Operating Systems : When only a single program is allowed to run at a time, the system is grouped under 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. Cooperative multitasking is achieved by relying on each process to give time to the other processes in a defined manner. MS Windows prior to Windows 2000 used to support cooperative multitasking. 4. Distributed Operating Systems : 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. 5. Embedded Operating Systems : Embedded operating systems are designed to be used in embedded computer systems. They are designed to operate on small machines like PDAs with less autonomy. They are able to operate with a limited number of resources. They are very compact and extremely efficient by design. Windows CE and Minix 3 are some examples of embedded operating systems. Components of Mobile Operating Systems : The components of a mobile operating system all exist in order to make the different parts of a device work together. All software from financial databases to film editors needs to go through the operating system in order to use any of the hardware, whether it be as simple as a mobile or smart phone or complex as an Internet connection. There are several components for a mobile operating system. Some of them are : 1. Kernel 2. Program execution 3. Interrupts 4. Modes 5. Memory management 6. Virtual memory 7. Multitasking 8. Networking 9. Security 10. User interface 1. Mobile Kernel or Microkernel : With the aid of the firmware and device drivers, the kernel provides the most basic level of control over all of the computer's hardware devices. It manages memory access for programs in the RAM, it determines which programs get access to which hardware resources, it sets up or resets the mobile's embedded system’s operating states for optimal operation at all times, and it organizes the data for long-term non-volatile storage with file systems on such media as disks, tapes, flash memory, etc. In computer science, a microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low- level address space management, thread management, and inter-process communication (IPC). If the hardware provides multiple rings or CPU modes, the microkernel is the only software executing at the most privileged level (generally referred to as supervisor or kernel mode). Traditional operating system functions, such as device drivers, protocol stacks and file systems, are removed from the microkernel to run in user space. In terms of source code size, micro kernels (as a rule of thumb) tend to be under 10,000 lines of code. MINIX3 for example has around 4,000 lines of code. kernels larger than 20,000 lines are generally not considered micro kernel. Micro kernels developed in the 1980s as a response to changes in the computer world, and several challenges adapting existing "mono-kernels" to these new systems. New device drivers, protocol stacks, file systems and other low-level systems were being developed all the time, code that was normally located in the monolithic kernel, and thus required considerable work and careful code management to work on. Micro kernels were developed with the idea that all of these services would be implemented as user-space programs, like any other, allowing them to be worked on monolithically and started and stopped like any other program. This would not only allow these services to be more easily worked on, but also separated the kernel code to allow it to be finely tuned without worrying about unintended side effects. Moreover, it would allow entirely new operating systems to be "built up" on a common core, aiding OS research. Micro kernels were a very hot topic in the 1980s when the first usable local area networks were being introduced. The same mechanisms that allowed the kernel to be distributed into user space also allowed the system to be distributed across network links. The first micro kernels, notably Mach, proved to have disappointing performance, but the inherent advantages appeared so great that it was a major line of research into the late 1990s. However, during this time the speed of computers grew greatly in relation to networking systems, and the disadvantages in performance came to overwhelm the advantages in development terms. Many attempts were made to adapt the existing systems to have better performance, but the overhead was always considerable and most of these efforts required the user-space programs to be moved back into the kernel. By 2000, most large-scale (Mach-like) efforts had ended, although Open Step used an adapted Mach kernel called XNU, which is now used in the OS known as Darwin, which is the open source part of Mac OS X. Although major work on micro kernels largely ended, experimenters continued development. It has since been shown that many of the performance problems of earlier designs were not a fundamental requirement of the concept, but instead due to the designer's desire to use single- purpose systems to implement as many of these services as possible. Using a more pragmatic approach to the problem, including assembly code and relying on the processor to enforce concepts normally supported in software led to a new series of micro kernels with dramatically improved performance.