People with extensive knowledge in programming embedded systems like PIC and programming skills with 32-bit processors like PowerPC, may not have the experience with Linux. So if you are one of them, or someone who is determined to learn embedded Linux, here is the essential getting started guide that will help you with your course.
If you are a newcomer to embedded Linux, you need to know what Linux is. And then we can continue on with embedded Linux.
For now, we will divide the course into two parts: one part for Linux and one part for Embedded Linux. For starters, we will deal with the Linux.
First Lesson on Embedded Linux
An operating system is always being updated. There are many choices for embedded systems, both open-source and proprietary. And Linux is one of the choices (one of the best, of course). It’s only a matter of time before you have to learn how to develop in your host, no matter what platform you work on (Linux, Windows or Mac). In this respect, using Linux is no different from using Windows CE, VXworks, or any other operating system.
The essential thing is that you should know how to configure the system, how the system is designed, and how to program with its API (application program interface). There are few factors that are more interesting for learning programming on Linux than on other operating systems.
Before you dive into some of the inner workings of Linux, you should know the basic functionalities and concrete things. The web is full of sources to learn everything. If you are asking us how to do that, here are a few tips:
- Start with the basic UNIX tutorial (from which Linux is derived).
- Then go for the step-by-step tutorial for Linux.
There are a lot of resources available on the Internet about Linux and other operating systems, and you can learn the specifics of the operating system in question.
I’d like to start with some essential things you should know about Linux. If you have read the basic articles, you may be familiar with them, but this is for people who are starting from scratch.
Linux is an open-source operating system – that means you can see/read the codes so that you can get a clear picture of what is actually happening in the operating system. However, as a newbie, it is simply impossible to penetrate the complicated coding of the proprietary distributed operating system.
Therefore, a linear knowledge of Linux is highly recommended to dive into the main course – i.e. complicated codes of embedded Linux.
The most important factor you need to know while attending a course on Linux is that it differs from other operating systems by using the same kernel in all systems. From the smallest embedded systems to large servers, all are designed with the same kernel.
The motivating factor is that you can learn a bunch of Linux programming in a place that is flexible for you – your desktop – instead of confronting you with complex circuitry that will make your Linux migration a serious nightmare.
In fact, the basic concepts are the same in your desktop Linux as in your embedded Linux.
How to Install Linux: Starting Up the Lesson
You can install the Linux on your desktop by replacing the Windows or Mac OS. However, it is a huge change as you have to learn new tools, configure your mail and get used to the speed difference and the desktop’s interface. You can also install Linux in a dual-boot environment where you can do your learning. That way, your email environment is preserved and you stay in touch with the platform you’ve rolled out everywhere. However, there are some difficulties because you will have to shut down one environment to start the other.
If you have serious confusion about the two environments, you may consider using a virtual machine to maintain your Linux operating system.
If you are using a Windows operating system, consider a VMware player and, for Mac users, a virtual box. VM’s bring a high degree of flexibility to your learning experience. You can install the desktop version of Linux such as Ubuntu, Fedora, or any other as you wish to start your Linux lessons.
With this distribution, you can learn the necessary basic steps and compile and test the shell programs. You can get to know the shell concepts that will help you to get deep into your course. You can also learn how to program and run programs under Linux.
Then extend the course by learning how to reconfigure the drivers and kernels. If you use a VM the whole time, you will not crash your machine in any way during a test run. In addition, you can implement a complete application environment and kernel that are similar in your cross-development environment on Embedded Linux.
During your course, you might crash your VM many times, since a learner often comes to this point at least once in his or her course. In this case, you should restart your VM. Nevertheless, there will be no impact on your daily activities such as reading, surfing the Internet, etc. A VM gives you complete freedom to progress through the course without damaging anything on your machine.
In addition, some of the VM tools will have a snapshot function that allows you to have checkpoints on your working configuration. This can be an advantage, if you can’t solve the crash problem, you can simply return to a stable state. This snapshot function gives you a quick and easy recovery system that allows you to easily get back on track.
The crucial first step is to set up a VM on your desktop and learn the basic steps before you start learning Embedded Linux.