Linux学习路线

学习步骤如下: 




1、Linux 基础 




安装Linux操作系统 


Linux文件系统 


Linux常用命令 


Linux启动过程详解 


熟悉Linux服务能够独立安装Linux操作系统 


能够熟练使用Linux系统的基本命令 


认识Linux系统的常用服务安装Linux操作系统 


Linux基本命令实践 


设置Linux环境变量 


定制Linux的服务 Shell 编程基础使用vi编辑文件 


使用Emacs编辑文件 


使用其他编辑器 




2、Shell 编程基础 




Shell简介 


认识后台程序 


Bash编程熟悉Linux系统下的编辑环境 


熟悉Linux下的各种Shell 


熟练进行shell编程熟悉vi基本操作 


熟悉Emacs的基本操作 


比较不同shell的区别 


编写一个测试服务器是否连通的shell脚本程序 


编写一个查看进程是否存在的shell脚本程序 


编写一个带有循环语句的shell脚本程序 




3、Linux 下的 C 编程基础 




linux C语言环境概述 


Gcc使用方法 


Gdb调试技术 


Autoconf 


Automake 


Makefile 


代码优化 熟悉Linux系统下的开发环境 


熟悉Gcc编译器 


熟悉Makefile规则编写Hello,World程序 


使用 make命令编译程序 


编写带有一个循环的程序 


调试一个有问题的程序 




4、嵌入式系统开发基础 




嵌入式系统概述 


交叉编译 


配置TFTP服务 


配置NFS服务 


下载Bootloader和内核 


嵌入式Linux应用软件开发流程 


熟悉嵌入式系统概念以及开发流程 


建立嵌入式系统开发环境制作cross_gcc工具链 


编译并下载U-boot 


编译并下载Linux内核 


编译并下载Linux应用程序 


嵌入式系统移植 


Linux内核代码 


平台相关代码分析 


ARM平台介绍 


平台移植的关键技术 


移植Linux内核到 ARM平台 了解移植的概念 


能够移植Linux内核移植Linux2.6内核到 ARM9开发板 




5、嵌入式 Linux 下串口通信 




串行I/O的基本概念 


嵌入式Linux应用软件开发流程 


Linux系统的文件和设备 


与文件相关的系统调用 


配置超级终端和MiniCOM 能够熟悉进行串口通信 


熟悉文件I/O 编写串口通信程序 


编写多串口通信程序 




6、嵌入式系统中多进程程序设计 




Linux系统进程概述 


嵌入式系统的进程特点 


进程操作 


守护进程 


相关的系统调用了解Linux系统中进程的概念 


能够编写多进程程序编写多进程程序 


编写一个守护进程程序 


sleep系统调用任务管理、同步与通信 Linux任务概述 


任务调度 


管道 


信号 


共享内存 


任务管理 API 了解Linux系统任务管理机制 


熟悉进程间通信的几种方式 


熟悉嵌入式Linux中的任务间同步与通信 


编写一个简单的管道程序实现文件传输 


编写一个使用共享内存的程序 




7、嵌入式系统中多线程程序设计 




线程的基础知识 


多线程编程方法 


线程应用中的同步问题了解线程的概念 


能够编写简单的多线程程序编写一个多线程程序 




8、嵌入式 Linux 网络编程 




网络基础知识 


嵌入式Linux中TCP/IP网络结构 


socket 编程 


常用 API函数 


分析Ping命令的实现 


基本UDP套接口编程 


许可证管理 


PPP协议 


GPRS 了解嵌入式Linux网络体系结构 


能够进行嵌入式Linux环境下的socket 编程 


熟悉UDP协议、PPP协议 


熟悉GPRS 使用socket 编写代理服务器 


使用socket 编写路由器 


编写许可证服务器 


指出TCP和UDP的优缺点 


编写一个web服务器 


编写一个运行在 ARM平台的网络播放器 




9、GUI 程序开发 




GUI基础 


嵌入式系统GUI类型 


编译QT 


进行QT开发熟悉嵌入式系统常用的GUI 


能够进行QT编程使用QT编写“Hello,World”程序 


调试一个加入信号/槽的实例 


通过重载QWidget 类方法处理事件 




10、Linux 字符设备驱动程序 




设备驱动程序基础知识 


Linux系统的模块 


字符设备驱动分析 


fs_operation结构 


加载驱动程序了解设备驱动程序的概念 


了解Linux字符设备驱动程序结构 


能够编写字符设备驱动程序编写Skull驱动 


编写键盘驱动 


编写I/O驱动 


分析一个看门狗驱动程序 


对比Linux2.6内核与2.4内核中字符设备驱动的不同 


Linux 块设备驱动程序块设备驱动程序工作原理 


典型的块设备驱动程序分析 


块设备的读写请求队列了解Linux块设备驱动程序结构 


能够编写简单的块设备驱动程序比较字符设备与块设备的异同 


编写MMC卡驱动程序 


分析一个文件系统 


对比Linux2.6内核与2.4内核中块设备驱动的不同 




11、文件系统 




虚拟文件系统 


文件系统的建立 


ramfs内存文件系统 


proc文件系统 


devfs 文件系统 


MTD技术简介 


MTD块设备初始化 


MTD块设备的读写操作了解Linux系统的文件系统 


了解嵌入式Linux的文件系统 


了解MTD技术 


能够编写简单的文件系统为 ARM9开发板添加 MTD支持 


移植JFFS2文件系统 


通过proc文件系统修改操作系统参数 


分析romfs 文件系统源代码 


创建一个cramfs 文件系统 




其实学习最主要的就是在学习之前有一个完整的学习计划,你既然问到细化的一步步该学什么,那我就按我一点经验随便说说,每个人的需求不一样,学习的重点为也不一样:
设计一个学习计划:计算机基础——>理解linux基本概念——>熟悉图形界面——>使用简单命令——>基本系统管理(用户管理、磁盘管理、进程/任务管理等等)——>配置管理基本的服务(DNS、DHCP、FTP、MAIL、HTTP等等)——>解决日常应用问题——>深入主题(虚拟化、安全、调优、集群、存储等等)


计算机基础就不用多说了吧,作为了解就行(包括硬件、软件、系统、网络),不用太深入研究,理解就行。
linux基本概念是一定要理解的,只有思想转变了才能正确的指导行为。顺便了解下linux发展历史,要不然谈到linux都不知道它怎么来的,你还敢说你学过linux吗?
然后当然是接触linux系统了,先多多尝试安装系统,然后操作下图形界面,先有个形象认识。
linux最强大的就是命令行的管理功能,所以接下来包括以后基本上主要就是在命令行下学习了。基本的系统管理,最主要的是每一个相关主题都要勤于练习,没事就多做做实验。
上面的都做到后你现在应该基本可以使用linux系统了,但你一定听说过linux在网络上出色的表现吧,所以趁热打铁,开始搭服务吧,搭服务实验起来比较有意思,但不要照着敲完了,配好了服务还不理解这服务是什么个原理。还是那句话:重在理解,多做练习。
走到这一步已经算是入门了,你可以开始尝试日常使用linux了。我不提倡首先就把linux拿过来用,因为你如果没有一定的基础的话会遇到一堆麻烦的事却不知道从哪下手解决,这样必然浪费你很多学习的时间并且使你的学习难度曲线以指数级上升。相反,当你把前面的知识都学得差不多了再来用时,遇到问题应该具有基本的判断能力,可以试图解决问题,这也是一个学习过程。毕竟操作系统是拿来用的,总不会让你天天去搭服务吧。
关于深入主题我就不多说了,自己看着办,我也只算刚入门,能力有限呀。

Linux学习路线_第1张图片Linux学习路线_第2张图片Linux学习路线_第3张图片Linux学习路线_第4张图片Linux学习路线_第5张图片Linux学习路线_第6张图片Linux学习路线_第7张图片Linux学习路线_第8张图片Linux学习路线_第9张图片Linux学习路线_第10张图片Linux学习路线_第11张图片

你可能感兴趣的:(Linux学习路线)