Cómo aprender el funcionamiento y mantenimiento de Linux desde cero
Para aprender Linux integrado, primero debe aprender los siguientes puntos:
1. Necesitas tener una base en el lenguaje C. Por supuesto, cuanto más competente seas, mejor. No importa si no estás familiarizado con él. Solo necesitas tener habilidades básicas: como escribir una clasificación de matrices. ingresar números para sumar, etc. Aprender el lenguaje C significa practicar cada vez más.
2. Conceptos básicos de Linux
El concepto y método de instalación del sistema operativo Linux, comprensión detallada de la estructura de directorios, comandos básicos, editor VI, compilador GCC, depurador GDB y gestión de proyectos Make. herramientas, conocimiento de secuencias de comandos Shell y Makefile, y la construcción de entornos de desarrollo integrados.
3.Programación del sistema Linux
Céntrese en aprender la biblioteca de E/S estándar, la programación multitarea multiproceso y multiproceso en Linux y la comunicación entre procesos (tubería , FIFO, cola de mensajes, memoria compartida, señal, semáforo, etc.), sincronización y exclusión mutua, conocimientos importantes sobre control de acceso a recursos compartidos, etc., principalmente para mejorar la comprensión del desarrollo de aplicaciones Linux y las capacidades de depuración de código.
4.Programación de redes Linux
Las redes informáticas se utilizan ampliamente en el proceso de desarrollo de aplicaciones de sistemas Linux integrados, a través del desarrollo de redes Linux, el protocolo TCP/IP, la programación de sockets y la red TCP. programación, programación de red UDP, desarrollo de programación web, etc., para obtener una comprensión integral del desarrollo de aplicaciones de red Linux. Centrarse en aprender API relacionadas con la programación de redes, dominar los métodos de programación de servidores de protocolo TCP y la implementación de servidores concurrentes, comprender el protocolo HTTP y sus métodos de implementación, estar familiarizado con los principios y métodos de programación de transmisión y multidifusión UDP, y Dominar el diseño de sistemas de comunicación de red con arquitectura híbrida C/S, estar familiarizado con HTML, Javascript y otras tecnologías y métodos de implementación de programación web.
5. Estructuras de datos y algoritmos
Las estructuras de datos y los algoritmos se utilizarán ampliamente en el desarrollo de controladores subyacentes integrados, protocolos de comunicación y varios motores. Afecta directamente su dominio. la eficiencia, simplicidad y robustez del programa. El aprendizaje en esta etapa debe centrarse en comprender el contenido básico de las estructuras de datos y algoritmos, incluidas listas secuenciales, listas enlazadas, colas, pilas, árboles, gráficos, tablas hash, diversos algoritmos de búsqueda y clasificación y otras aplicaciones y sus procesos de implementación en lenguaje C. .
6. Cortex A8, desarrollo de plataforma Linux
Comprenda las habilidades básicas de lectura del manual del chip procesando s5pv210 basado en ARM Cortex-A8 y domine los recursos del sistema s5pv210 y el controlador de reloj. , administración de energía, controlador de interrupciones anormales, controlador flash nand y otros módulos se preparan para la construcción de la plataforma subyacente. La plataforma Linux incluye reducción del kernel, trasplante de kernel, compilación cruzada, uso de herramientas GNU, depuración del kernel, introducción del gestor de arranque, análisis de principios y producción, producción del sistema de archivos raíz, adición de sus propios módulos al kernel y ejecución de su propia producción. La plataforma experimental s5pv210 del sistema Linux, implementación integrada de todo el proceso del sistema Linux. Al mismo tiempo, comprenda el proceso de desarrollo del sistema operativo Android. El sistema Android es un sistema operativo de código abierto basado en la plataforma Linux. La plataforma consta de un sistema operativo, middleware, interfaz de usuario y software de aplicación. Es el primer software móvil verdaderamente abierto y completo creado para terminales móviles. En el caso de los terminales móviles, también incluye productos electrónicos de consumo como televisores de datos, descodificadores y PDA.
7. Desarrollo de controladores
El diseño de controladores es una parte importante del trabajo de desarrollo de Linux integrado, y también es una parte difícil. En esta etapa del estudio, debe estar familiarizado con el mecanismo del kernel de Linux, la interfaz entre los controladores y las aplicaciones a nivel de usuario, y dominar las operaciones concurrentes del sistema en los dispositivos.
Estar familiarizado con el principio de funcionamiento del hardware desarrollado, tener conocimientos básicos de las interfaces de hardware ARM, estar familiarizado con los recursos del procesador ARM Cortex-A8 s5pv210, dominar el marco de principios del controlador de dispositivos Linux y estar familiarizado con los dispositivos de caracteres avanzados de Linux, bloquear Dispositivos, dispositivos de red y USB comúnmente utilizados en proyectos. Desarrollo de dispositivos y otros controladores, y podrá desarrollar de forma independiente controladores de bajo nivel en el trabajo.