About Embedded Linux
Linux is an operating system that’s just as at home running on IBM’s z-Series supercomputers as it is on a cell phone, manufacturing device, network switch, or even cow milking machine. This software is currently maintained by thousands of the best software engineers and it is available for free.
Linux was created by a Finnish university student (Linus Torvalds) who was smart enough to make his work available to all, take input from others and, most important, delegate to other talented engineers. As the project grew, it attracted other talented engineers. It was first written to run on the Intel IA-32 architecture and was first ported to a Motorola processor. The porting process was so difficult that Linus Torvalds decided to rethink the architecture so that it could be easily ported, creating a clean interface between the processor dependent parts of the software and those that are architecture independent. This design decision paved the way for Linux to be ported to other processors.
Linux is just a kernel, which by itself isn’t that useful. An embedded Linux system, or any Linux system for that matter, uses software from many other projects in order to provide a complete operating system. The Linux kernel is written largely in C (with some assembler) and uses the GNU tool set, such as make; the GCC compiler; programs that provide an interface to the kernel; and a host of others that you’ll encounter. Much of this software already existed at Linux’s genesis, and, fortunately, much of it was written with portability in mind. The fact that this software could be used on an embedded system or could be modified to make it suitable for embedded deployment contributed greatly to the acceptance of Linux for devices other than desktop machines.