Chapter 1. Introduction to Kernel Development
Linux started as a hobby project in 1991 for a Finnish student, Linus Torvalds. The project has gradually grown and continues to do so, with roughly 1,000 contributors around the world. Nowadays, Linux is a must, in embedded systems as well as on servers. A kernel is a central part of an operating system, but its development is not so obvious.
Linux offers many advantages over other operating systems:
- It is free of charge
- Well-documented with a large community
- It is portable across different platforms
- It provides access to the source code
- There is lots of free, open source software
This book tries to be as generic as possible. There is a special topic, regarding device trees, which are not a full x86 feature yet. That topic will then be dedicated to ARM processors, and all those fully supporting the device tree. Why those architectures? Because they are most used on desktops and servers (for x86), and on embedded systems (ARM).
This chapter deals, among other things, with the following:
- Development environment setup
- Getting, configuring, and building kernel sources
- Kernel source code organization
- Introduction to kernel coding style