Linux Kernel Functions for an Embedded Target Platform
Ashjaei, Zeinab (2016)
Ashjaei, Zeinab
2016
Master's Degree Programme in Information Technology
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2016-06-08
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201605244042
https://urn.fi/URN:NBN:fi:tty-201605244042
Tiivistelmä
In the earliest years of computer systems revolution in the 1930-40s, the computers were extremely expensive and huge, and they were dedicated to performing a single task or a collection of targeted tasks. Nowadays, the tendency of computer systems development is towards some small, fast, and very powerful tools, gadgets and equipment which have become part of our everyday life. These systems are called embedded systems. Although they were used only to control electromagnetically telephone switches at the beginning, their capabilities have improved gradually over the past decade. Obviously, this is a vital requirement for embedded systems to be able to connect to some networks in order to send and receive data. It could increase the level of complexity in embedded systems. Hence, they are required to have more memory and interfaces, as well as the services of an operating system to do memory management, network management, file systems and etc. Although there are many different kinds of embedded operating systems, the Linux OS is chosen in our case. Now the question is how the Linux operating system could be integrated into the embedded system hardware platform and make it compatible with the user applications.
If the target platform is one of the platforms already supported by the Linux, the porting procedures could be accomplished easily by using the codes and files provided by the Linux kernel. Otherwise, it is required to start coding from scratch. The target embedded system which is used in this thesis is called COFFEE Core. It is a RISC-based embedded processor that has been designed at Tampere University of Technology. COFFEE Core is considered as a general-purpose platform which is mainly designed for embedded systems. Since the COFFEE Core is not developed in the Linux kernel tree, it is required to integrate some pieces of code which should be written exclusively for COFFEE Core in Linux kernel tree. Accordingly, some modification in the hardware-independent sections is required.
Therefore, the main goal of this thesis is to illustrate what it means to porting Linux OS to a newly designed architecture. It provides a comprehensive programming paradigm of the process of porting and explains how and in which order the porting could be fulfilled. Moreover, the architecture of Linux itself is presented and its different components will be reviewed.
If the target platform is one of the platforms already supported by the Linux, the porting procedures could be accomplished easily by using the codes and files provided by the Linux kernel. Otherwise, it is required to start coding from scratch. The target embedded system which is used in this thesis is called COFFEE Core. It is a RISC-based embedded processor that has been designed at Tampere University of Technology. COFFEE Core is considered as a general-purpose platform which is mainly designed for embedded systems. Since the COFFEE Core is not developed in the Linux kernel tree, it is required to integrate some pieces of code which should be written exclusively for COFFEE Core in Linux kernel tree. Accordingly, some modification in the hardware-independent sections is required.
Therefore, the main goal of this thesis is to illustrate what it means to porting Linux OS to a newly designed architecture. It provides a comprehensive programming paradigm of the process of porting and explains how and in which order the porting could be fulfilled. Moreover, the architecture of Linux itself is presented and its different components will be reviewed.