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 文件系统

 文章出处:DIY部落(http://www.diybl.com/course/6_system/linux/Linuxjs/200868/123585.html#)

 

 

 

(1)设计理念是缘自Unix的“把任务分解成一小块一小块完成”,建议你可以看这本电子书<< The Art of Unix Programming>>。是由Eric Steven Raymond写的,在google上很容易找到。这本书编重于编程,可以根据自已的兴趣选相应章节。我也没有全看完,也在研习中:-)     从使用着手,自已装个系统。建议你从Redhat开始。现在Redhat的安装基本上都是学习MS的做法,很图形化了。只要按照图形的指示,很容易让一个系统跑起来。我觉得初学者应该从这个入手,这样会快很多。因为Linux上的软件包都是由不同的开发团队做的,所以一般人不知道如果安装,redhat公司做的事情就是把这些东西组织起来,然后把这些软件卖给大家。因为他对这一行非常的精通,所以卖软件是其次,卖服务是主业。现在 redhat已停止出个人版的了,改成专做企业的了,版本发行最近有些变动。现在最后一个版本好象是RH9.1。    装好系统后从使用应用软件开始,建议你先学

(2)BASH SHELL编程。因为你将业想往Oracl DBA发展的话,精通SHELL可以在管理上给你带来很大的便利。同时对于理解Linux系统的启动和一些软件的安装很有帮助。比如说你可以很清楚的了解Linux的整个启动过程,继而知道为什么要做那一步做了这个动作,对你将来处理实际碰到的问题至少可以明白知道问题出在哪。象很多我们日常在Unix/Linux的管理和脚本都是分不开的,精通BASH是我们需要完成的第一步。我指的是精通,不是一般的了解,因为你只有精通了,用的时间越长,你会发现script可以帮我们很方便的干很多事情。这里有一本电子书提供参考,是我至今见到写BASH最全,最好的一本。名叫《Advanced Bash Scripting Guide》,你可以在www.linuxdoc.org里找到。    这里也提一下www.linuxdoc.org里的文章是你学习Linux的良师益友,里面的很多文章都是非常不错的教材。主要分为几类: 1、FAQ 2、HOWTO 3、Guider 4、man手册。其中的Guider有几本都是非常不错的入门书,你基本上可以不用去买本,美国出的印刷书都奇贵,你把那里的几本书看完就差不多了。插一句,现在P2P很流行,我基本上都不买专业的书了,大部分都可以找到电子版的下载。里面的HOWTO主要讲的一些具体的问题如何处理,门类也很多很杂,你可以根据自已现在的需求去看相应的文章。有空的时候可以多看看,这里面有些很好的solution,说不定什么时候就可以用上。FAQ的文章不多,建议挑些重要的看下。对于man手册,一般系统上都有,不过那里应该是最近的,平时用的不多。    

结论2:自已装个Redhat,学好shell。    你用Unix/Linux时候,熟悉一个编辑器是必不可少的。用两种建议选择Emacs&VIM。Emacs比较大些,要花些空间,功能具强,以前用过一段时间但没有深入下去,所以了解也是通过大师们文章中反复提到这个关键字和一些信息知道的,用好了功能具强,相当于一个MS下的IDE开发环境;vim比较小些,功能也很强,是vi的增强版,我现在主要是用她来编辑东西。vim支持多种语法,可以用来编脚本、C、Java,功能足够我们用,学好需要一定的时间实践。因为我们用Unix/Linux,免不了有时要用console来控制,如果用惯了MS的编辑的话,你会非常痛苦,建议如果以后想长时间使用unix/linux环境的话,学好一种这环境下的编辑器。vim也有windows的版本,开始用起来会觉得不方便,便很快你会发现用VIM可以解决很多MS下编辑器不能解决的问题,不信你可以试试看。:-)     

结论3:学会一种Unix/Linux下编辑器Emacs或Vim,建议Vim(因为我在用,可以给你些指导 ) akane:(3)熟练使用VIM文本编辑器     学习Linux有几种常用的服务软件需要会用,1) apache(http) 2) bind(dns) 3) pro-ftp (ftp) 4)samba(file share) 。需要掌握这些软件的安装和简单配置,这些软件在网上都有很详细的文档。至少apache要会安装和管理,因为这是最基本的WEB服务,今天在哪里都能用到。对于这些常用服务软件根据自已兴趣和环境要求做出选择,不一定要很精,但要会,建议精通。    

结论4:(4)学会常用服务软件的安装和配置,至少掌握apache     在Linux中还有很多小实用工具也需要掌握,这对你今后诊断问题和做相应的系统管理有很大帮助。如配置网卡地址的工具ifconfig,查找文件的工具find,行编辑的命令sed、awk,网络状态检查netstat、ping、nc等。这些工具可以在实践中慢慢学习。    

结论5:在实践中学习一些(5)常用小工具,如ifconfig netstat route等    掌握一到两种Opensource的数据库,如现在流行的两种数据库MySQL和PostgreSQL。MySQL用的人多些也比较简单,速度又快,做一些简单的数据库应用很多都用他做backend databaes server。如果你自已想学Oracle的话,可以直接学 oracle。Oracle的东西多且全,基本上所用的功能都能在Oracle找到。但如果你想更深一层学习DB的话,你可以考虑学 PostgreSQL,他有源程序而且支持事务处理(trans-action)、子查询(sub-select),过程(procedure)、自定义函数(function)、光标(cursor),支持了大部份SQL92和99的标准。他的文档也比较全。    

结论6:建议掌握一种Opensource的DB,如MySQL akane:(6)学习使用oracle数据库或mysql     建议对TCP/IP协议层深入了解,我想你们上研究生时应该讲的很深。但我还是建议你再多复习相关的知识点,很多时候网络上的问题可以通对你对TCP/IP的了解找到问题所在。建议你买那个steven的书叫(7)<>,同时经常在身边准备好那几种状态切换的图,劳记在心,出问题的时候就可以知道是哪边网络不通,还是应用程度出了什么问题了。     

结论7:建议再深入了解TCP/IP protocol     建议除了bash外,再学多一种在(8)Unix环境下的RAD脚本语言python。我也正在学python,通过这段时间的了解发现,这个东东有很多功能而且在开发上可以比c/c++提高至少5倍效率。有时候偏向做系统管理,但掌握一本这种编程形的脚本对工作帮助很大,可以迅速的处理一些问题。BASH是侧重于人机交复的脚本,有些事情用BASH是无法完成的。Python在很多Internet应用上有很多module& package,你可以很方便的使用已有的功能,比如说自已做个小的WEB SERVER,做测试工具,做数据库查询等等。    结论8:建议学下Python 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yhhah/archive/2006/11/18/1393592.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值