Home  >  Article  >  Operation and Maintenance  >  What to learn about linux development

What to learn about linux development

王林
王林Original
2020-04-30 15:16:483803browse

What to learn about linux development

1. C language

C language is the main programming language in the embedded field. Focus on understanding basic programming and advanced programming knowledge of C language, including: basic data types, arrays, pointers, structures, linked lists, file operations, queues, stacks, etc.

2. Linux Basics

Learn more about the directory structure, basic commands, editor VI, compiler GCC, debugger GDB and Make project management tools under Linux, Shell Makefile script writing, etc. knowledge, and the establishment of an embedded development environment.

3. Linux system programming

Focus on learning the standard I/O library, multi-process and multi-threading in Linux multi-task programming, and inter-process communication (pipe, FIFO, message queue, sharing Memory, signal, semaphore, etc.), synchronization and mutual exclusion, shared resource access control and other important knowledge, mainly to improve the understanding of Linux application development and code debugging capabilities.

(Recommended video tutorial: linux video tutorial)

4. Linux network programming

Focus on learning network programming related APIs, and be proficient in TCP protocol servers Programming methods and the implementation of concurrent servers, understand the HTTP protocol and its implementation methods, be familiar with the principles and programming methods of UDP broadcast and multicast, master the design of hybrid C/S architecture network communication systems, be familiar with HTML, Java and other Web programming technologies and Implementation.

5. Data Structures and Algorithms

The focus of learning at this stage is to understand the basic content of data structures and algorithms, including sequence lists, linked lists, queues, stacks, trees, graphs, and hash tables. , various search and sorting algorithms and other applications and their C language implementation process.

6. C, QT

This stage focuses on mastering the basic ideas of object-oriented programming and the important contents of C. Graphical interface programming is a very important link in embedded development. Because QT has powerful functions such as cross-platform, object-oriented, rich API, support for 2D/3D rendering, support for XML, and multiple languages, it has been widely used in GUI development in the embedded field. At this stage, it is based on the QT graphics library The learning enables students to skillfully write GUI programs and transplant QT applications to the Cortex-A8 platform. Including the use of IDE, QT components and layout manager, application of information and slot mechanism, application of mouse, keyboard and drawing event processing and file processing.

7. Cortex A8, Linux platform development

Learn the basic reading skills of the chip manual by processing s5pv210 based on ARM Cortex-A8, and master the s5pv210 system resources, clock controller, power management, and abnormal interrupts Controller, nand flash controller and other modules are prepared for the construction of the underlying platform.

Linux platform includes kernel reduction, kernel transplantation, cross-compilation, use of GNU tools, kernel debugging, Bootloader introduction, production and principle analysis, root file system production and adding your own modules to the kernel, and experimenting with s5pv210 Run your own Linux system on the platform and integrate the entire process of deploying the Linux system. At the same time, understand the Android operating system development process.

8. Driver development

At this stage of study, you need to be familiar with the Linux kernel mechanism, the interface between drivers and user-level applications, and master the concurrent operations of the system on devices. Be familiar with the working principle of the developed hardware, have basic knowledge of ARM hardware interfaces, be familiar with the resources of ARM Cortex-A8 processor s5pv210, master the Linux device driver principle framework, and be familiar with Linux advanced character devices, block devices, network devices, and USB commonly used in projects Device and other driver development, and be able to independently develop low-level drivers at work.

Recommended tutorial: linux tutorial

The above is the detailed content of What to learn about linux development. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn