SPOTO is committed to providing with all kinds of IT certification study materials and best Service, with Professional and Outstanding Teams to help members fast Obtain IT certifications involving Cisco,CISSP, HuaWei, AWS ,study materials, practice tests and online training courses with thousands of candidates .
As a newcomer, how to learn embedded Linux? I have been asked too many times,so i wrote the article. Before learning embedded Linux, you must have a C language foundation. Does the assembly base have no problem (just a few assembly instructions, it will be used at a glance)?
To what extent does C language have to be learned? The more cooked, the better, of course, if you are not familiar with it, you must have basic skills. For example, write an array sort, enter a number to sum what it is.
The only way to learn the C language is to write more programs and practice more. It doesn't matter if you compile errors. You can solve them yourself. It doesn't matter if you execute the error, you can analyze it yourself. I used VC to practice C language, and often tried to write some C language contest topics. They are pure C, pure mathematics, purely logical topics, do not involve interfaces, and are very suitable for honing your programming skills.
Back to the topic, first we have to understand what your purpose is, probably the so-called embedded Linux can be divided into two parts: the underlying system, application development.
If you want to do application development, then you should learn C language, data structure, JAVA or something. There is nothing special to note about embedded application development and application development on PCs. Maybe you said that you need to do some optimization on the embedded, yes, to optimize, but the unoptimized program and the program development on the PC are no different. In addition, when you have the ability to optimize, you are not used to asking this question. Specific to some examples, such as the development interface, we use VC on the PC; in embedded Linux, maybe we use QT maybe Android, this time you should learn QT, Android programming. But the basics are still C or JAVA, based on which to familiarize themselves with their interfaces. If you have studied VC, you also need to take the time to understand the classes and controls.
If your goal is to learn the underlying system, this is my specialty, but I can say a little.
Before answering this question, I will answer first: Many people ask me, is it a learning drive or an application?
I can only say that I am interested in, and the drivers and applications are not completely separate.
1. The driver we are talking about is not limited to the operation of the hardware, but also the concept of the operating system, the sleep wake-up scheduling of the process and so on.
I want to write a good application, I want to solve the problems encountered by the application, you should understand this knowledge.
2. Do the application threshold is low, especially the current ANDROID, pure JAVA. The development path of the application is personally considered to be a good business.
For example, in the communications industry, the IPTV industry, and the mobile phone industry, you understand the needs of the industry. Therefore, when leading people, most of them are applied.
3. To be a driver, in fact, I don't want to call it "doing a driver", but I want to call it "doing the underlying system". This is a good way to kill all industries. I have been working for a few years, doing a cell phone, IPTV, conference TV, but these products are no different to me because I only do the bottom. Their business has nothing to do with me.
When there is a problem with the application and they can't solve it, I will give them an idea from a kernel perspective and provide them with tools.
Do the underlying development direction, personally, think it is a technical expert.
4. In fact, do the underlying or do the application, there is no boundary between them, there is the underlying experience, and then apply, you will feel very practical.
With business experience, you can understand the bottom layer and you can form a team soon.
Go back to the question of how to learn. What is included in the embedded Linux underlying system? Don't worry, just give an example and you will know.
1. When the computer is turned on, who displays those interfaces? Is the BIOS, what does it do? Some self-tests then read in windows from the hard drive and launch it.
Similarly, this BIOS corresponds to the bootloader in embedded Linux. This bootloader goes to Flash to read into the Linux kernel and launch it.
2. What is the purpose of starting windows? Of course, what is an online chat? Where are these Internet and chat tools?
On the C drive, D drive. Therefore, windows must first identify the C drive, D drive. Under Linux, we call the root file system.
3.windows can identify the C drive, D drive, then you can certainly read and write the hard drive. This involves something called a driver. Of course, not only the hard disk but also the network card, USB and so on.
Embedded Linux can read and execute applications from Flash, and certainly have Flash drivers, and of course not just Flash.
Let me talk about it here. Embedded Linux contains 4 big blocks of bootloader, kernel, driver and root file system.