Linux is a major operation system in the embedded systems. More and more developers consider deploying Linux for their projects. Because Linux is an open source OS with rich complementary tools and application software, it is very popular. However the development of embedded Linux is quite complicated and demands very deep and extensive know-how in whole operation system, which ranges from kernels, tools, bootloader, memory technologies, networks and applications. It is absolutely a technology dense job to develop an embedded Linux project from scratch. For those developers who have only experiences on Windows platform and small embedded systems, it is better to install a Linux PC from scratch and learn to work on Linux desktop PC as first step. It is very important to study, evaluate and develop embedded Linux projects on a native Linux PC. I used to think I can learn Linux on Cygwin. Finally I realized this approach is wasting my time. It brings more troubles and makes my learning curve much longer.
One year ago, I bought a book published by O'Reilly, building embedded Linux systems. It is a great book and it solves a lot of questions I met in Linux development. So I will organize this embedded Linux resource book based upon its content layout with more new updates and comments.
First of all, Linux is a collection of comprehensive software packages, instead of a operation system kernel. It includes a lot of open source software components, including GNU tool chain and UNIX application software. Linux was developed for desktop OS, but it is open source and can be customized for different applications. Meanwhile embedded applications are still very close and expensive, that is the major reason why embedded Linux can be spread like a storm, and the trend is even stronger than its counterparts in desktop PCs and servers. There are so many companies and organizations involved in embedded Linux development.
If an embedded application is popular in the industry, the developers can easily find a lot of useful resources for the project. If not, then the developers have to struggle of developing by themselves. The latter situation requires a lot of in deep knowledge of Linux development. And the developers should estimate the risks of hidden cost of project, which means even a small problem, can delay the whole project if it can not be solved on time. The project should be well planned and organized. Otherwise it will out of control.
|