Adapting Linux For Mobile Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

In this fast growing world, people are increasingly mobile, everything is fast, connected and highly secured. All these had put up the requirements on the mobile devices. These expectations lead to several features to be added in the mobile operating systems and its architecture. The development of the next generation software platform based on Linux for mobile phones provides enhanced user experience, power management, cloud support and openness in the design. In spite of many studies on Linux, the investigations on the challenges and benefits of reusing and adapting the Linux kernel to mobile platforms is very less. In this paper, we study the architecture of the Linux, its adaptations for a mobile operating system, requirements and analysis for Linux mobile phones, comparison with android and solution technologies to satisfy the requirements for a Linux mobile operating system.


In order to deliver a good quality of a software system in a short release time, many software organizations chose to reuse existing developed software systems than creating a new system from scratch. Android, an operating system for mobile devices developed by Google, reused and adapted Linux operating system. The flexibility of the Linux operating system has led to its adoption in a wide range of domains, from home PCs, enterprise desktops, servers to mainframes and supercomputers.

Many mobile organisation are moving towards Linux as the demands for the mobile phones increases, which could provide high functionalities equivalent to that of the desktop computers. Recently, the deployment of Linux in mobile operating systems has risen exponentially every year, by different mobile phone companies like Motorola, HTC, sony, and Samsung.

Nowadays, mobile phones not only provide voice service but also internet access, multi-media message services, portable media players, high resolution touch screens, automated voice assistant, wide range of applications ,web browsing and high speed data access provided by wifi and mobile broad band. Therefore, an efficient software platform is needed to support all these and the upcoming features. The evolution of the operating system starts from the PC-based OS to an embedded OS to the current smartphone-oriented OS. In all these stages, the technological advancements in the hardware, software and in networks of a mobile phone has changed from simple to intermediate and complex architectures.

In spite of limited hardware support for mobile phones such as PCMCIA cards, graphics card and internal modems, the microprocessors and the peripherals used in mobile phones are small in size and provide high processing capabilities at the same time when compared to the PCs, The hardware parts in mobile phones cannot be changed as easily as in a desktop computer. Also, these hardware's are more limited in terms of disk space, CPU speed etc. Still the performance gap of desktop computers to mobile phones are becoming smaller and one day the mobile phones would become an exact replacement for desktop computers .Thus, they often make use of specialized hardware and hence, now, not only finding a driver now becomes more difficult but they are also used in changing environments. This brings the need for multiple configurations and additional security strategies to be implemented.

Most of the smartphones run on ARM architecture.

Linux-based does not necessarily mean open source. Both the mobile operating systems the webOS and Bada are closed source platforms.

The software in the desktop operating system is mainly focused on user's productivity with the support for the keyboard and mouse and other peripherals that have a precise input functionality along with rich user interface, whereas in the software for PDA's allows managing personal data such as contact information's, track appointments and synchronize with the pc's.

Nowadays, people are more involved in the development of the software platform, including information contribution, application development and forums. As they become developers and contributors they debug the problems and put forth the revisions. Thus the mobile operating systems cannot be self-contained, but have to be open systems. The usage of the past mobile devices had changed from just data management and local gaming to rooting and cloud related services.

In the past the mobile operating system did not have full multitasking or 3D graphics support, including accelerometers and capacitor based touch screens. Now the mobile phones are provided with increasingly sophisticated functions with rich peripherals to give the best services to the users.

The Android system built from the kernel of Linux 2.6 has also been analysed extensively. A good knowledge on the challenges and benefits of Linux adaptations would be beneficial not only for the Linux community, but also for practitioners who may be interested in adapting the Linux system to new platforms.

In this paper, we aim at assessing the ease to adapt the Linux kernel into the mobile operating system, the benefits of adapting from the Linux kernel instead of developing a new operating system from scratch. The rest of this paper is organized as follows: Section II briefs about the mobile operating systems, Section III describes the design of the mobile architecture, Section IV presents a view of Linux as a mobile operating system, Section V briefs about the related works on Linux and Android systems. Section VI describes the adaptations made from Linux to mobile operating systems . Finally, Section VII concludes the paper with few discussions on some limitations and outlines avenues for future work.


First mobile phone device by Motorola


Advanced Mobile phone system (1G)


GMS standard (2G)


First smartphone by IBM with touch screen


Windows CE Handheld devices.


Psion company develops Symbian


First Nokia phone with Symbian S40 (7110)


First smartphone by Blackberry


3G telecommunication technology


Apple I phone with ios introduced


Android 1.0 with HTC dream


Microsoft launches Windows Phone OS


MeeGo first Linux mobile by Nokia and Intel


The Ubuntu phone

Table 1.0 History and development of mobile phones [Reference]


Much like the Linux or Windows operating system which controls our desktop or laptop computer, a mobile operating system is the software platform on top of which other programs can run on mobile devices. The peripherals such as display devices, cameras, GPS, local communication to external devices, bluetooth, USB, wireless LAN, memory cards and IC cards in the local communication have provided increasingly sophisticated functions in recent years. In addition to the rich peripherals, software functions in the mobile phones are increasing rapidly.

The mobile operating system is responsible for determining the functions and features such as Internet Access: browsers for Compact or Full HTML,HTML5 AP(aWML1.x and XHTML), adhoc - hotspot, hardware accelerated graphics, 3G connectivity and location-sensing technologies. .Messaging which includes e-mail, short message service, enhanced message service, multimedia message service and Multimedia - display of still image files, playback of animation (including 2D and 3D), movie and audio files and Applications- personal information management, games, electronic commerce, novel applications to utilize the rich peripherals Program Execution Engines: Java runtime environment, WMLScript, ECMAScript. The above functionalities have become similar to those of the PC. Today, all these features are standard. Projector, face and gesture recognition, near field communication, augmented reality and hologram are still in the developmental stage. As a result, a more sophisticated OS is required to carry all these and the upcoming functionalities and one of those is Linux. Requirements of all such multi functionalities and the quality of mobile phones lead to the complexity of software structure in mobile phones.

[Reference] The architecture of MultiNets demonstrate the methodology to perform switching in Linux based mobile OSes such as Android which provide a smart phone platform to save energy, offload data traffic, and achieve higher throughput. Analysis shows that mobile data traces collected from real users with real-time switching we can save 27.4% of the energy, offload 79.82% of the data traffic and achieve 7 times more throughput on average. [/Reference]

Mobile os evolution picture - graph


Current mobile phones utilize a real-time OS for embedded systems which includes drivers for peripheral devices in the phones, communication software, libraries shared between applications, and application software are placed on top of that real-time OS. In recent years, various innovations for more efficient software development have been achieved. Many sophisticated OSs such as Linux for PCs and Symbian OS for mobile equipment with a large number of software development environments are also available and enormous types of application software are distributed in the market. With a large number of software development engineers, these sophisticated Operating systems can also be made attractive for mobile phones in many respects.

These sophisticated mobile operating systems provide virtual memory spaces and the memory protection mechanism by which the application programs are protected which leads to development efficiency. By this mechanism illegal memory access during the software development can be easily detected.

However there are few requirements for the mobile phone's which distinguishes from the pc's.

The first and the foremost factor is the CPU power in mobile phones which is much lower than in PCs. Mobile phones are driven by secondary batteries and not by wired power supply such as Pc's. Thus power consumption in mobile phones is of much concern.

CPU frequency of the current mobile phones is between 50 MHz and 100 MHz while a PC frequency is 2 amd 3 G Hz.

Memory size in mobile phones is also smaller than in PCs. Memory size of the current mobile phones is between 16MB and 32MB while that of PCs is 512 GB - 1 TB.As far as now mobile phones do not have hard disks.

Mobile phone's primary purpose is to notify the user to catch a call anytime. This should not be affected even when the user listens to a music or surf in the internet.

Mobile phones, being an extension of wired-phone there shouldn't be any incoherency in voice communication.

Linux one of the best operating system even has weaknesses when its kernel is utilized for the mobile phones.


In order to increase the utilization time, more efficient power usage is required. Mobile phone being derived from secondary batteries is not very effective because the overhead of the static power management is very large and the latency in the waking the system is significantly higher. The dynamic power management is one of the solutions to overcome this drawback which works on different operating states, operating points, and policies. Advanced Configuration and Power Interface (ACPI) provides power management such as suspend/resume mechanism and device configuration by the operating system, which is implemented by ACPI ().

Need power consumption in mobile phones figure

Need a standard mobile os architecture figure


SRAM and DRAM requires different type of memory and require different power consumption.

Thus, the data blocks in applications and the kernel should be allocated to specified memory because if the current is not provided to unused memories, less power consumption is achieved and may not function properly. Along with the minimal clock rate, the kernel threads should also be kept suspended when the system is idle. [/Reference]

Usually the Linux kernel is stored in a compressed form in the ROM or file systems in disks (if any), on booting its memory images are expanded in the RAM instructions in it are executed. Since

RAM is one of the cost factors in mobile phone, reducing the size of RAM is always required.

In order to avoid large RAM usage, codes in Linux kernel, its applications and libraries should be directly executed in its ROM area without being copied and decompressing the kernel into the RAM area. This in place execution mechanism increases ROM area where the speed is lower while saving RAM area where the speed is higher. There should also be a reduction in the system-wide approaches as well. That is memory reduction efforts are applied to not only the kernel, but also to the middleware and the applications

In this process of reduction, the Linux kernel and libraries should be customized and memory alignment used in various kernels should be reconfigured. Thus the Memory management unit features are highly needed for the mobile application.


Example, uCLinux, which is suitable for embedded systems, merged into Linux 2.6, is not appropriate for mobile phones because uCLinux does not have MMU features.

During booting, the compressed kernel file is copied on the disk, uncompressing the copy, starting up daemon (the background processes), starting up the middleware (middleware is computer software that provides services to software applications beyond those available from the operating system.)

During this process, Linux in a PC takes several minutes to set up device drivers and check consistency of file systems while in mobile phones, it's booted up within less than a second.

Deferred initialization of device drivers is one of the effective solutions for fast booting processes in mobile phones. [/Reference]


The real time response in Linux is degraded by the long pre-emptive process. The interrupt mechanism facilitates the real time response and its latency is found to be in milliseconds for PCs and servers and in the case of mobile phones it is found to be in micro seconds.

The time between when an external interrupt arrives and the process pre-emption occur, the interrupt handler is executed in response to the external interrupt in the kernel. All the interrupt execution in this interrupt context in the corresponding device driver is executed in the kernel. This sends the data to the corresponding user process. Finally the process in pre-empted. This leads to a delay in the interrupt process.

In UNIX, the interrupt execution is serialized. In the traditional Linux, critical regions are guarded from other process access by prohibiting process preemptions during a system call execution

To improve the delay, the interrupt executed concurrently. A tasklet and Symmetric Multi-Processor (SMP) kernel- spinlocks is a solution. -> more info needed.

These 2 pictures will not used but ll be needed for writing the working.

Need Interrupt processing in red-time enhanced LINUX

Need Interrupt processing in traditional UNIX

For this enhanced Linux kernel, an improved scheduler to shorten an overhead of process pre-emption is needed. To schedule process in a constant time, a kernel scheduling design called O(1) scheduler is used to schedule any number of processes reducing overheads and deviation, by providing execution times with fixed upper bound in the operating system.

Besides modifying the kernel, another approach is to Integrate Linux with real-time OS. The Linux kernel is implemented on the top of real-time OS.

Real-time processing is done in real-time tasks and not as execution units in Linux.

Real-time enhanced Linux and the integration of Linux and real-time OS is based on "2-CPU solution" for mobile phones. An application CPU (A-CPU) for mobile application services, its real time enhanced Linux and a communication CPU (C-CPU) for communication processes.


The file system is checked for the inconsistencies in Linux, when the system restarts or even after the power stops suddenly, the mobile phone should be re activated normally. This requirement is achieved in Flash file system. The flash file system is a file system particularly designed to store files on devices with flash memory. As the number of mobile devices is increasing, the cost per memory size decreases and the capacity of flash memories increases.