Linux系统开发学习路线

一:嵌入式c语言
  C语言是嵌入式领域最重要也是最主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。
  二:Linux基础
  Linux操作系统的概念、安装方法,详细了解Linux下的目录结构、基本命令、编辑器VI ,编译器GCC,调试器GDB和 Make 项目管理工具, Shell Makefile脚本编写等知识,嵌入式开发环境的搭建。
  三:Linux系统编程
  重点学习标准IO库,Linux多任务编程中的多进程和多线程,以及进程间通信(pipe、FIFO、消息队列、共享内存、signal、信号量等),同步与互斥对共享资源访问控制等重要知识,主要提升对Linux应用开发的理解和代码调试的能力。
  四:Linux网络编程
  计算机网络在嵌入式Linux系统应用开发过程中使用非常广泛,通过Linux网络发展、TCPIP协议、socket编程、TCP网络编程、UDP网络编程、Web编程开发等方面入手,全面了解Linux网络应用程序开发。重点学习网络编程相关API,熟练掌握TCP协议服务器的编程方法和并发服务器的实现,了解HTTP协议及其实现方法,熟悉UDP广播、多播的原理及编程方法,掌握混合CS架构网络通信系统的设计,熟悉HTML,Javascript等Web编程技术及实现方法。
  五:数据结构与算法
  数据结构及算法在嵌入式底层驱动、通信协议、及各种引擎开发中会得到大量应用,对其掌握的好坏直接影响程序的效率、简洁及健壮性。此阶段的学习要重点理解数据结构与算法的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找排序算法等应用及其C语言实现过程。
  六:C++ 、QT
  C++是Linux应用开发主要语言之一,本阶段重点掌握面向对象编程的基本思想以及C++的重要内容。图形界面编程是嵌入式开发中非常重要的一个环节。
  由于QT具有跨平台、面向对象、丰富API、支持2D3D渲染、支持XML、多国语等强大功能,在嵌入式领域的GUI开发中得到了广范的应用,在本阶段通过基于QT图形库的学习使学员可以熟练编写GUI程序,并移植QT应用程序到Cortex-A8平台。
  包括IDE使用、QT部件及布局管理器、信息与槽机制的应用、鼠标、键盘及绘图事件处理及文件处理的应用。
  七:Cortex A8 、Linux 平台开发
  通过基于ARM Cortex-A8处理s5pv210了解芯片手册的基本阅读技巧,掌握s5pv210系统资源、时钟控制器、电源管理、异常中断控制器、nand flash控制器等模块,为底层平台搭建做好准备。Linux平台包括内核裁减、内核移植、交叉编译、GNU工具使用、内核调试、Bootloader介绍、制作与原理分析、根文件系统制作以及向内核中添加自己的模块,并在s5pv210实验平台上运行自己制作的Linux系统,集成部署Linux系统整个流程。同时了解Android操作系统开发流程。Android系统是基于Linux平台的开源操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件,目前它的应用不再局限于移动终端,还包括数据电视、机顶盒、PDA等消费类电子产品。
  八:驱动开发
  驱动程序设计是嵌入式Linux开发工作中重要的一部分,也是比较困难的一部分。本阶段的学习要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作。熟悉所开发硬件的工作原理,具备ARM硬件接口的基础知识,熟悉ARM Cortex-A8处理器s5pv210各资源、掌握Linux设备驱动原理框架,熟悉工程中常见Linux高级字符设备、块设备、网络设备、USB设备等驱动开发,在工作中能独立胜任底层驱动开发。

原文地址:https://blog.51cto.com/14355585/2413192

时间: 2024-10-12 02:38:18

Linux系统开发学习路线的相关文章

linux驱动开发学习路线

这篇文章是和大四学弟交流的文章,贴出来,和大家学习讨论 需要掌握的基本技能: C/C++/ python shell makefile linux基本操作 以android手机为例,我通俗的介绍下市场上产品的软件结构. 手机---> 硬件:cpu(arm架构单片机)+各种传感器(显示屏.距离传感器.温度传感器.gms模块 gprs模块等等).本质上手机就是一个单片机加上一堆传感器,单片机控制各个传感器与人进行负责的交互.(驱动工程师就是在linux底层让传感器可以工作,然后提供控制硬件的接口交给

linux目录操作命令大全 linux系统开发学习

Linux的目录结构为树形结构,最顶级的目录为根目录,其他目录通过挂载添加到树中,通过解除挂载来进行删除,除此之外,还可以对目录进行其他处理操作,常用的目录处理命令如下: 1. ls命令(列出目录) 常用用法: ls –a 列出文件下所有的文件,包括以"."开头的隐藏文件: ls –l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等: ls –d仅列出目录本身,而不是列出目录内的文件数据. 2. cd命令(切换目录) 用法: cd [相对路径或绝对路径] 用来变换工作目录

Linux C/C++ 学习路线(已拿腾讯、百度 offer)

一.秋招 Linux C/C++ offer 情况 二.Linux C/C++ 方向的一些思考 三.计算机基础知识的梳理 四.C++ 方向的深入学习路线 五.项目 + 亮点 + 面试的一些思考 六.总结 前言 Linux C/C++ 从零基础到大神的学习路线,自己的真实学习路线,干货很多,建议收藏,认真阅读. 在校期间,我一直走的都是 Linux C/C++ 学习路线,历经暑期实习.秋招决战.校招期间投的大部分岗位都是 Linux C/C++ 后台方向,对于这个方向,有着自己的理解. 从接触 C

CSDN专家精选,微信开发学习路线大有看头!

1999年成立至今,CSDN积累了丰富的IT专业技术内容.现在,我们邀请了数百位各领域专家,深入挖掘CSDN站内优质资源,按照从基础到高阶的学习路径,逐步打造覆盖热门技术领域的学习路线,并结合CSDN产品家族(视频学院.技术问答.交流社区等),为广大开发者和IT从业人员提供最为便捷与专业的在线学习平台. CSDN推出的开发技术精品资源合集,按照技术领域,分为不同的学习路线.内容涵盖入门.进阶.实战三个阶段,以帮助开发者系统学习掌握专项技术,快速提升开发水平. 截止目前,已经上线了Rust开发技术

linux系统构建学习笔记

嵌入式系统构架:(硬件+软件)应用软件层: Application GNU C Library(glibc)文件系统: 系统层: API(Systern Call Interface) OS Core + Power Mannager+ File Manager + GUI Mannager TCP/IP HTTP WAP DataBase Browser DDI(Device Drver Interface) 板级支持:BSP:Board Support Package       OEM A

Javaweb开发学习路线及Java三大框架

Java web开发是什么? Java web开发,是用Java技术来解决相关web互联网领域的技术总和.web包括:web服务器和web客户端两部分.Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等.Java技术对Web领域的发展注入了强大的动力. Java web 开发 Java web开发学习路线 一:入门阶段 学习目标:Java程序员 1: 熟悉jdk,jvm,eclipse,安装于配置jdk

Linux运维学习路线,实用LINUX教程推荐学习收藏

Linux操作系统在短短的几年之内得到了非常迅猛的发展,这与linux具有的良好特性是分不开的.Linux包含了UNIX的全部功能和特性.简单来说,linux具有以下主要特性:遵循GNU GPL,开放性,多任务,多用户,设备独立性,提供了丰富的网络功能,可靠的系统安全,良好的可移植性.下面给大家说说Linux运维学习路线,实用LINUX教程推荐大家学习收藏. 关于Linux运维学习很多人都有自己不同的理由,我们不妨来分析一下: Linux是免费的不用花一分钱,能够节约大笔的成本:Linux是开源

Linux系统开发7 进程关系,守护进程

[本文谢绝转载原文来自http://990487026.blog.51cto.com] <大纲> Linux系统开发7  进程关系守护进程 终端 网络终端 Linux PCB结构体信息 进程组 修改子进程.父进程的组ID 会话组 设置一个会话脱离控制终端 生成一个新的会话 守护进程 守护进程模板 获取当前系统时间  终端 在UNIX系统中用户通过终端登录系统后得到一个Shell进程这个终端成为Shell进 程的控制终端Controlling Terminal在讲进程时讲过控制终端是保存在PCB

Linux系统开发6 信号

[本文谢绝转载,原文来自http://990487026.blog.51cto.com] <大纲> Linux系统开发6 信号 linux系统有64种信号 signal man文档 终端按键信号 ctrl +c SIGIN ctrl +z SIGTSTP ctrl +\ SIGQUIT 硬件产生信号 浮点数例外信号  访问非法内存 kill()函数 信号与权限 kill()函数的pid 与返回值 信号产生原因 raise() 信号 abort() 信号 alarm() 信号 收到信号的默认操作