How to become a linux developer

Source: Internet
Author: User
How to become a linux developer-general Linux technology-Linux programming and kernel information, the following is a detailed description. (Author: yuqilin1012) the functions of linux, as a server, database server, development platform, and embedded real-time OS, have become more and more mature with the development of the platform, and the product usage has become increasingly high, mastering linux as application development and embedded development have become one of the technologies that excellent developers can conquer.

First, programmers need to know the most about linux:

The most useful development languages: C/C ++
The most popular tool set: gtk/gdk, qt/e
Best Visual Development tools: glade, designer, kdeveloper
Cool code reading tool: source navigator
Most popular debugging tools: gdb, ddd, and anjuta
Program tracking tools of the highest level (mainly price level): BDM, ICE
The most powerful development platform: Redhat linux 6 ~ 8, Turbolinux 6 ~ 7. Hard Hat linux (HHL), Blue cat linux
The fastest but youngest figure (immature or not supported): nano-X, microwindows, and minigui

Meaning of Some nouns:
Gtk/gdk: A tool set for GIMP (a famous image processing software in linux)
Qt: trollteck products, including qt/x11 and qt/embedd
Glade: A graphical tool used to develop gtk/gdk programs. It can edit the interface (10 ^ n times better than using VI for the interface, I used vi to write the gtk application at a speed of 2000 lines per day. I wrote it for a whole month, and then I used glade for a whole week)
Anjut.
Designer: Develop a graphical tool for the qt/x11 program. You can edit the interface or develop the qt/embedded program.
Kdeveloper: similar to VC, with powerful functions
Source navigator: code reader from redhat, supper cool.
Microwindows: win32 interface GUI, small and fast, used for PDA
Nano-X: multi-task microwindows
MiniGUI: similar to the above two types of images made in China, although I have never used them, but based on the principle of supporting domestic software, I think it is definitely better than nano-X and microwindows.

With some of the above, we can determine the development direction:
1. For C programmers C + gtk/gdk + glade + anjuta + Chinese turbolinux
2. For C ++ programmers C ++ qt/x11 + designer + kdeveloper + anjuta + Chinese turbolinux
3. embedded programmer c/c ++ qt/embedded + gtk + HHL
4. c/c ++ microwindows + HHL for embedded enthusiasts

As long as we work hard on Linux, we can certainly become a good Linux developer by following this path. This development path is not necessarily the best, but it must be the right path. It is also the current trend of Linux. It is a summary of my years of experience in developing and running Linux projects, I am willing to share my passion for Linux in China.

Step 1: master the installation and running methods of Linux, including:
A. install Linux directly from CDROM
B. Use fdisk or pqmagic to assist in manual partitioning and installation of Linux
C. The hard disk is Linux, but cannot be started. You must use a floppy disk or CDROM to restore the Linux system.
D. use tools such as vpc or vmware to install and start Linux
E. install Linux in dos/windows and use loadlin to start the system
F. Linux is started through the network without disks. In fact, this principle is very simple. As long as you understand the loadlin mentioned above, it is the same practice to start a Linux system without disks.

Step 2: master the operating principles of Linux and the standard process for starting Linux:
Bios-> Lilo/Grub-> Kernel->/sbin/init (init) is equivalent to a batch process, which reads the command to be run from/etc/inittab, therefore, we can write this batch, and we can control everything we want to run in the future.)-> login->/usr/X11R6/bin/startx

Step 3: Master common Linux commands. For the command list, see the Tomlinux documentation "common Linux development commands"

Step 4: Learn about Linux terminology and development resources. For more information, see the Tomlinux documentation "embedded Linux terminology and resources"

Step 5: If you are familiar with Step 1 and Step 4, you will have a solid foundation for Embedded Linux development. Next, we will consider the development direction, generally, from the development of X86, the best combination of X86 development is:
A. Kernel uses the final stable version instead of the latest version for reduction. If the function can be achieved, it can even be returned to the old stable version, and the old version of kernel can be done more quickly.
B. bash and common command sets should use busybox instead of Standard
C. If the storage space is sufficient, the standard libc can be used for lib and uClibc can be used for insufficient storage space.
D. Tinyx
E. Use icewm in the window system
F. Language Used for development. I personally think C/C ++ is the main force. Others can only be used as an aid.
G. the graphic application uses a free and excellent GTK tool set, which can be used in combination with the graphic development environment galde and anjuta and SNavigator. This combination is a prime partner, I think this is better than vb/vc. Of course, another good choice is to use the QT toolset, which can be configured by Designer and Kdeveloper.
H. ncurses can be used to develop character applications. systems without graphics servers can be developed using direct screen write framebuffer or SDL and QT/E modes.
I. The storage used for release is generally DOC or DOM instead of HD.

According to the above combination of developed systems, it is no problem to install 8 m DOC/DOM. If there is no Graphics Server Mode h., the minimum 1 m DOC is enough.

Step 6: After mastering the development method of X86, development on other platforms is similar. The main change is the Boot Mode, kernel, basic library, and compiler. These things can be solved after the corresponding development kit is installed. Do not spend a lot of time on your own. The development effort should be put on product-level development, the current level of China has not reached the level of compiler. For more information about different platforms and related Linux support, see the Tomlinux documentation "embedded CPU ".

For non-X86 platform development, you often need to analyze the hardware and use hardware-assisted debugging. For example, In ARM development, ARM Debugger supports connecting to ICE (In-Circuit Emulator) remote debugging. You can also use the JTAG to perform ICD debugging. BDM is used in PPC development. These devices are relatively expensive. If there is a ready-made product in the company, you must actively use it. Even if there are other alternative methods, this will show that you are a master and master. If you don't have it, you should check whether you have purchased it. If you don't need it, you should try to save the cost for the company as much as possible.

When you become a good embedded Linux developer, don't be satisfied with this. Maybe you are the most technically powerful, but it doesn't mean you are worth the money in a company. Only those who have long-term eyes and ideas and creativity can make money for the company is the best, so they need to learn more about the market information and the development trend of Linux, strive to write killer applications to make money for the company. This is what I have been trying to do, but I still cannot implement it. I hope everyone can work together to make money and, more importantly, contribute to the development of Linux in China and the software industry.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.