学linux步骤

学linux步骤
学linux步骤

使用linux—〉linxu系统编程开发---〉驱动开发和分析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必学的60个命令二(文件处理命令)

Linux必学的60个命令-文件操作 Linux 系统信息存放在文件里,文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息,如文件的用户、文件的大小等。文件可以是一封信、一个通讯录,或者是程序的源语句、程序的数据,甚至可以包括可执行的程序和其它非正文内容。Linux文件系统具有良好的结构,系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。 file 1.作用件内容判断文件类型,使用权限是所有用户。 2.格式 file通过探测文 file [options] 文件名 3.[options]主要参数 -v:在标准输出后显示版本信息,并且退出。 -z:探测压缩过的文件类型。 -L:允许符合连接。 -f name:从文件namefile中读取要分析的文件名列表。 4.简单说明 使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还是Shell Script 文件,或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。 5.应用实例 如果我们看到一个没有后缀的文件grap,可以使用下面命令: $ file grap grap:English text 此时系统显示这是一个英文文本文件。需要说明的是,file命令不能探测包括图形、音频、视频等多媒体文件类型。 mkdir 1.作用 mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似,它的使用权限是所有用户。 2.格式 mkdir [options] 目录名 3.[options]主要参数 -m, --mode=模式:设定权限<模式>,与chmod类似。 -p, --parents:需要时创建上层目录;如果目录早已存在,则不当作错误。 -v, --verbose:每次创建新目录都显示信息。 --version:显示版本信息后离开。 4.应用实例 在进行目录创建时可以设置目录的权限,此时使用的参数是“-m”。假设要创建的目录名是“tsk”,让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令: $ mkdir -m 777 tsk

linux驱动开发的经典书籍

linux驱动开发的经典书籍 结构、操作系统、体系结构、编译原理、计算机网络你全修过 我想大概可以分为4个阶段,水平从低到高 从安装使用=>linux常用命令=>linux系统编程=>内核开发阅读内核源码 其中学习linux常用命令时就要学会自己编译内核,优化系统,调整参数 安装和常用命令书太多了,找本稍微详细点的就ok,其间需要学会正则表达式 系统编程推荐《高级unix环境编程》,黑话叫APUE 还有《unix网络编程》 这时候大概还需要看资料理解elf文件格式,连接器和加载器,cmu的一本教材中文名为《深入理解计算机系统》比较好 内核开发阅读内核源码阶段,从写驱动入手逐渐深入linux内核开发 参考书如下《linux device drivers》,黑话叫ldd 《linux kernel development》,黑话叫lkd 《understading the linux kernel》,黑话叫utlk 《linux源码情景分析》 这四本书为搞内核的必读书籍 最后,第三阶段和第四阶段最重动手,空言无益,光看书也不罩,不动手那些东西理解不了 学习linux/unix编程方法的建议 建议学习路径: 首先先学学编辑器,vim, emacs什么的都行。 然后学make file文件,只要知道一点就行,这样就可以准备编程序了。 然后看看《C程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书来看。 如果想学习UNIX/LINUX的编程,《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷。这样基本上系统方面的就可以掌握了。 然后再看Douglus E. Comer的《用TCP/IP进行网际互连》第一卷,学习一下网络的知识,再看《UNP》的第一卷,不仅学习网络编程,而且对系统编程的一些常用的技巧就很熟悉了,如果继续网络编程,建议看《TCP/IP进行网际互连》的第三卷,里面有很多关于应用

4Mlinux安装配置方法

4Mlinux安装配置 一、安装4Mlinux 1.新建otherlinux虚拟机 2.硬件资源分配,硬盘不要超过1G,600M足够否则安装会很慢,必须为IDE接口硬盘。 内存256M即可。 设置硬盘大小:

硬件资源分配图 3.配置好硬件资源后可能会无法选择硬盘接口类型,可以删除原来的,再添加一个

删除SCSI接口的硬盘,添加一个IDE接口的硬盘 设置硬盘接口为IDE的类型,绝对不能用SCSI的,否则不能识别

设置大小为600M 删除原来的SCSI接口硬盘,其他的按回车就可以了。

4.选择iso安装镜像从CD/DVD启动 5.启动后会进入一个类似安装系统界面,但是这不是安装界面 6.这里可以不输入密码,按回车就可以了 7.Root账号登陆,没有设置密码,回车就可以了

8.登陆之后,用“fdisk/dev/sda”新建一个主分区,等下系统就是安装在这个分区里的。 分区新建之后,由于这里无法探测分区,所以用reboot重启系统。 格式化为ext3 9.进入/usr/sbin/目录下,找到一个名为install2hd的文件拷贝到/tmp目录下 拷贝到/tmp目录下,注意这里一定要拷贝到/tmp/目录下,因为等下要修改这个脚本文件,而且执行后文件会改变 到/tmp目录下修改这个脚本文件,用“/df-h”查找到相关内容,将原来为G的单位改为M 将G改为M 保存退出 10.执行“./install2hd/dev/sda”安装系统到“/dev/sda1”分区下 执行这条命令后选分区时选择1,其余回车或y就可以了。安装完后重启系统就可以了 二、网络配置 到/etc/net/net.conf里面配置网络。 根据需求配置网络即可。

LINUX必学的60个命令

Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。 ◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; ◆文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln; ◆系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup; ◆系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;

◆其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。 本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例,介绍Linux下的安装和登录命令。 login 1.作用 login的作用是登录系统,它的使用权限是所有用户。 2.格式 login [name][-p ][-h 主机名称] 3.主要参数 -p:通知login保持现在的环境参数。 -h:用来向远程登录的之间传输用户名。 如果选择用命令行模式登录Linux的话,那么看到的第一个Linux命令就是login:。 一般界面是这样的: Manddrake Linux release 9.1(Bamboo) for i586 renrel 2.4.21-0.13mdk

阿里云主机Linux服务器配置步骤详解

阿里云主机Linux服务器配置步骤详解 编辑:restart 来源:转载 下面我们一起来看看关于阿里云主机Linux服务器配置步骤详解,如果你正在使用阿里云主机我们可进入参考一下配置步骤哦,有兴趣的同学可进入参考。 一提到云主机,大家肯定熟知国内最知名品牌——阿里云了,后来居上的它受到不少的站长所追捧,它的稳定与服务让它的性价比直线上升,现在阿里云的最低端配置云主机年费只需要550元了,在同类产品中可谓最有性价了。如果想做个小站,又想速度上去,阿里云也是一个不错的选择。用过阿里云的站长都知道,阿里云主机是需要自己动手配置的,一些站长就有夸大其词说“没有一定的技术,最好不要用阿里云”。其实,配置阿里云主机也不是很难,只要按照本文的方法一步一步去做就可以了。 第一步:远程连接阿里云主机。 下载xshell和xftp 并安装。这2个软件可以到网站下载。xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议,可以方便地远程登录阿里云主机。Xftp 是一个基于MS windows 平台的功能强大的S 文件传输软件,可以通过它来上传文件到主机。 这2个软件的安装这里就不说了。下面来看看怎么使用这两个软件。 一、打开xshell

二、设置云服务器登录信息,点击认证(新版本可能是“用户身份验证”)。填写阿里云主机用户名和密码。 三、设置服务器帐号密码。再点击“连接”,填写在“主机”处填写你购买的阿里云主机的IP地址。

四、设置字符集编码。点击”终端“,然后在“编码”选项选择“ UTF-8″。然后按确定保存配置。接着就开始连接主机了。 五、连接后的阿里云主机的庐山正面目。

Linux下QQ等软件的安装方法

Linux下QQ等软件的安装方法.txt24生活如海,宽容作舟,泛舟于海,方知海之宽阔;生活如山,宽容为径,循径登山,方知山之高大;生活如歌,宽容是曲,和曲而歌,方知歌之动听。Linux下QQ等软件的安装方法2008-10-31 23:39 Linux下QQ等软件的安装方法2008-10-16 16:06要充分发挥电脑的作用,就得有大量的应用软件,完成不同的工作。在Windows环境中安装各种应用软件的思路与方法,想必大家早已熟悉。然而,在使用Linux时,我们却总会被这些本不应该是问题的问题所困扰:怎么安装应用软件?我的软件安装在什么地方?如何删除不要的应用软件?…… 下面,我们就一起来认识一下这些方面的知识。 一、解读Linux应用软件安装包 通常Linux应用软件的安装包有三种: 1) tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。2) rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux提供的一种包封装格式。3) dpkg包,如software-1.2.3-1.deb。它是Debain Linux提供的一种包封装格式。 而且,大多数Linux应用软件包的命名也有一定的规律,它遵循: 名称-版本-修正版-类型 例如: 1)software-1.2.3-1.tar.gz 意味着: 软件名称:software 版本号:1.2.3 修正版本:1 类型:tar.gz,说明是一个tar包。 2)sfotware-1.2.3-1.i386.rpm 软件名称:software 版本号:1.2.3 修正版本:1 可用平台:i386,适用于Intel 80x86平台。 类型:rpm,说明是一个rpm包。 注:由于rpm格式的通常是已编译的程序,所以需指明平台。在后面会详细说明。 而software-1.2.3-1.deb就不用再说了吧!大家自己练习一下。 二、了解包里的内容 一个Linux应用程序的软件包中可以包含两种不同的内容: 1)一种就是可执行文件,也就是解开包后就可以直接运行的。在Windows中所有的软件包都是这种类型。安装完这个程序后,你就可以使用,但你看不到源程序。而且下载时要注意这个软件是否是你所使用的平台,否则将无法正常安装。 2)另一种则是源程序,也就解开包后,你还需要使用编译器将其编译成为可执行文件。这在Windows系统中是几乎没有的,因为Windows的思想是不开放源程序的。 通常,用tar打包的,都是源程序;而用rpm、dpkg打包的则常是可执行程序。一般来说,自己动手编译源程序能够更具灵活性,但也容易遇到各种问题和困难。而相对来说,下载那些可执行程序包,反而是更容易完成软件的安装,当然那样灵活性就差多了。所以一般一个软件总会提供多种打包格式的安装程序的。你可以根据自己的情况来选择。 三、搞定使用tar打包的应用软件 1. 安装: 整个安装过程可以分为以下几步: 1)取得应用软件:通过下载、购买光盘的方法获得;

linux驱动程序的编写

linux驱动程序的编写 一、实验目的 1.掌握linux驱动程序的编写方法 2.掌握驱动程序动态模块的调试方法 3.掌握驱动程序填加到内核的方法 二、实验内容 1. 学习linux驱动程序的编写流程 2. 学习驱动程序动态模块的调试方法 3. 学习驱动程序填加到内核的流程 三、实验设备 PentiumII以上的PC机,LINUX操作系统,EL-ARM860实验箱 四、linux的驱动程序的编写 嵌入式应用对成本和实时性比较敏感,而对linux的应用主要体现在对硬件的驱动程序的编写和上层应用程序的开发上。 嵌入式linux驱动程序的基本结构和标准Linux的结构基本一致,也支持模块化模式,所以,大部分驱动程序编成模块化形式,而且,要求可以在不同的体系结构上安装。linux是可以支持模块化模式的,但由于嵌入式应用是针对具体的应用,所以,一般不采用该模式,而是把驱动程序直接编译进内核之中。但是这种模式是调试驱动模块的极佳方法。 系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。同时,设备驱动程序是内核的一部分,它完成以下的功能:对设备初始化和释放;把数据从内核传送到硬件和从硬件读取数据;读取应用程序传送给设备文件的数据和回送应用程序请求的数据;检测和处理设备出现的错误。在linux操作系统下有字符设备和块设备,网络设备三类主要的设备文件类型。 字符设备和块设备的主要区别是:在对字符设备发出读写请求时,实际的硬件I/O一般就紧接着发生了;块设备利用一块系统内存作为缓冲区,当用户进程对设备请求满足用户要求时,就返回请求的数据。块设备是主要针对磁盘等慢速设备设计的,以免耗费过多的CPU时间来等待。 1 字符设备驱动结构 Linux字符设备驱动的关键数据结构是cdev和file_operations结构体。

从硬盘安装Linux操作系统的方法步骤(精)

从硬盘安装Linux操作系统的方法步骤来源: ChinaUnix博客日期:2007.04.22 18:30(共有0条评论我要评论从硬盘安装Linux操作系统,首先要准备安装包,Linux操作系统的安装包通常是一个或多个ISO镜像文件(一般通过网络下载就可以得到;其次,要通过某种手段启动镜像文件中的系统安装程序;接下来,按照安装程序的提示信息进行安装就可以了。安装过程中,需要指定Linux操作系统的安装位置,这主要涉及硬盘分区的一些知识。综合来看,学习Linux操作系统的安装,关键要学会两点:第一、如何为Linux操作系统准备硬盘空间?第二、如何启动ISO镜像文件中的安装程序。硬盘分区通常,在使用硬盘时,都要进行分区。如果把未分区的硬盘比做一张大白纸,那么分区后的硬盘就相当于这张大白纸被画上了几个大方框。一块硬盘被分成多个分区之后,各分区之间是相对独立的,每个分区都可以有自己的文件格式,例如 FAT16、FAT32、NTFS等等。Linux 操作系统需要的硬盘分区要安装一个操作系统,一般来讲都要为它准备专门的分区。专门,意味着不能与其他操作系统合用一个分区,也意味着不要与用户自己的数据文件合用一个分区,前者是因为不同的操作系统可能需要不同格式的磁盘分区,后者则更多地出于用户数据安全和系统维护方便的考虑。从最低配置角度讲,Linux 操作系统需要一个EXT2或EXT3格式的硬盘分区作为根分区,大小在2~5G就可以。另外还需要一个SWAP 格式的交换分区,大小与内存有关:如果内存在256M以下,交换分区的大小应该是内存的两倍;如果内存在256M以上,交换分区的大小等于内存大小即可。Linux 硬盘分区管理工具在安装Linux 操作系统时,如果选择了手工的分区方式,将启动硬盘分区工具Disk Druid。这个程序是安装程序自带的。下面讨论一下该软件的使用。Linux下硬盘分区的标识在Linux 下用hda、hdb 等来标识不同的硬盘;用hda1、hda2、hda5、hda6 来标识不同的分区。其中,字母a 代表第一块硬盘,b代表第二块硬盘,依次类推。而数字1 代表一块硬盘的第一个分区、2 代表第二个分区,依次类推。1到4 对应的是主分区(Primary Partition)或扩展分区(Extension Partition。从5开始,对应的都是硬盘的逻辑分区(Logical Partition)。一块硬盘即使只有一个主分区,逻辑分区也是从5开始编号的,这点应特别注意。系统上有一块硬盘,名字为/dev/hda,它上面有一个NTFS 格式的主分区hda1 以及

Linux必学的60个命令一(安装和登录命令)

Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。 ◆安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; ◆文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln; ◆系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup; ◆系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who; ◆其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。 本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例,介绍Linux下的安装和登录命令。 login 1.作用 login的作用是登录系统,它的使用权限是所有用户。 2.格式 login [name][-p ][-h 主机名称] 3.主要参数 -p:通知login保持现在的环境参数。 -h:用来向远程登录的之间传输用户名。 如果选择用命令行模式登录Linux的话,那么看到的第一个Linux命令就是login:。 一般界面是这样的: Manddrake Linux release 9.1(Bamboo) for i586 renrel 2.4.21-0.13mdk on i686 / tty1 localhost login:root password: 上面代码中,第一行是Linux发行版本号,第二行是内核版本号和登录的虚拟控制台,我们在第三行输入登录名,按“Enter”键在Password后输入账户密码,即可登录系统。出于安全考虑,输入账户密码时字符不会在屏幕上回显,光标也不移动。 登录后会看到下面这个界面(以超级用户为例): [root@localhost root]# last login:Tue ,Nov 18 10:00:55 on vc/1 上面显示的是登录星期、月、日、时间和使用的虚拟控制台。 4.应用技巧 Linux是一个真正的多用户操作系统,可以同时接受多个用户登录,还允许一个用户进行多次登录。这是因为Linux和许多版本的Unix一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。每个虚拟控制台可以看作是一个独立的工作站,工作台之间可以切换。虚拟控制台的切换可以

Linux驱动工程师成长之路

本人此刻还不是什么驱动工程师,连入门都谈不上,但我坚信在未来的3-5年我肯定能成为我想像中的人,因为我马上就要进入这一行工作了。写下这个日志来记录我是怎么最后成为我想像中的人才的,呵呵。 《Linux驱动工程师》这个东西是我在大二的时候看到有一篇讲如何学习嵌入式的,点击这里下载PDF,里面讲到嵌入式分为四层:硬件,驱动,系统,应用程序;还说linux驱动最难然后工资也最高就冲着他这句话我就决定我大学毕业的时候要去做这个linux驱动工程师,随后我就先后买了51单片机,ARM7,ARM9还有一大堆的视频教程准备来进行学习。我还跟我旁边那个哈工大哥们说:“我们学校像我这样的人很少,你们学校呢?”他说:“太少了,不过我们学校都是做这种板子卖的人比较多!”。行,你们牛!即使是买了这些东西,从大二到现在都快毕业了但感觉还是没有入门。回想一下我都学过什么啊:1:自己在ARM9上写bootloader(主要锻炼了三方面的知识:C语言应该写了有近万行的代码,ARM9的外设的基本操作方法如UART,LCD,TOUCH,SD,USB,ETHERNET...,makefile);2:移植和学习linux驱动。下面我说一下我学习Linux驱动的一个思路这也是我在面试的时候自我介绍中最重要的部分;1:硬件知识学习Linux驱动首先得了解这个驱动对应的硬件的一些基本原理和操作方法比如LCD你得了解它的场同步,行同步,像素时钟,一个像素的表示模式,还有就是这个LCD是怎么把图像显示在屏幕上的。如果是USB,SD卡就得了解相关协议。可以通过spec(协议)、datasheet来了解,这就是传说中的Linux驱动开发三件宝之二,还有一个就是linux相关源码。2:了解linux驱动框架linux下的每一类驱动差不多都是一个比较完善的子系统,比如FLASH的驱动它就属于MTD子系统从上到下分为四层:设备节点层,设备层,原始设备层,最下面的与具体硬件相关的硬件驱动层,通常要我们自己来实现就是最下面这个与具体硬件相关那部分代码。3:了解这个驱动的数据流。这个过程与第二个过程紧密相关,如果了解了驱动的框架差不多这个过程也算了解了。比如flash.在/dev/目录下有对应flash的字符设备文件和块设备文件,用户对这些文件进行读、写、ioctl操作,其间通过层层的函数调用最终将调用到最下面的硬件驱动层对硬件进行操作。了解这个过程我相信在调试驱动的时候是很有帮助。3:分析与硬件相关通常需要我们实现的那部分源代码。4:三板子上将驱动调试出来。每次调试都会出问题,但我买的板子提供的资料比较全调试过程中遇到的问题都比较浅显,即使是浅显的问题也要把它记录下来。(这个是我上次在华为面试的时候,那个人问我你调试驱动遇到过什么问题吗?你是如何解决的。当时我学习还没有到调试驱动这一步,所以那次面试也惨败收场)。 好像说了这么多,还没有进入正题《工作的选择》。在年前去了龙芯,实习2.8K,转正3.5k,环境还是不错,经理很好,头儿也很帅都是中科院的硕士。不过去了两周我就没去了身边的人都不太理解,我也一度有过后悔的时候,从龙芯出来应该是1月6号,也就是从那个时候开始我就没有再找工作,转而学习linux驱动。一直到上周日。上周日的晚上我就开始投简历一开始要找linux驱动,在智联里面输入linux驱动出来500来个职位,点开一看没有一个自己符合要求的,差不多都要3-5年经验本科,有时候好不容易有个实习的关键字在里面,一看要求硕士,严重打击了我的信心,哎不管了随便投,最后又投了一下嵌入式关键字的职位。最后就瞎申请,看看职位要求差不多就申请。周一来了,这周一共来了6个面试,创下了我求职以来的历史新高。周一下午面了一家感觉还不错不过到现在也没有给我一个通知,估计当时我要了4500把他给要跑了,这家是做测量的不是Linux驱动,差不多是把ARM当单片机用。周二上午一家也是要招linux驱动面了估计不到二分钟,他

MS在linux的安装过程

MS在linux的安装过程

Linux下安装MS 3.1 整理:wsilei lying zbaohui 一、安装MS前的准备: 在根用户下创建msi用户并上传MS安装文件于/home/msi/tmp下[root@lm16 home]# useradd msi [root@lm16 home]# passwd msi Changing password for user msi. New password: abcdefg 密码可自由设定,这里以abcdefg为例 BAD PASSWORD: it does not contain enough DIFFERENT characters Retype new password: abcdefg passwd: all authentication tokens updated successfully. [root@lm16 home]# ls wsl lost+found msi [root@lm16 home]# cd msi [root@lm16 msi]# ls [root@lm16 msi]# mkdir tmp [root@lm16 msi]# ls tmp [root@lm16 home]# cd tmp

上传MS安装文件及license于tmp下 把hostname改成localhost就可以了,或者127.0.0.1,这是基于IPv4的原理二、安装过程: root下解压安装文件,修改UNIX的权限;msi用户下安装 [root@lm16 tmp]# ls msilic.lic unix.zip [root@lm16 tmp]# chmod -R 777 unix.zip unix.zip [root@lm16 tmp]$ unzip unix.zip …… …… [root@lm16 tmp]# chmod -R 777 UNIX/ [root@lm16 tmp]# su msi [msi@lm16 tmp]$ ls 0x0409.ini Info README_MS_Modeling.htm Accelrys MS Modeling 3.1.msi instmsia.exe setup.exe Autorun.exe instmsiw.exe Setup.ini autorun.inf ISScript8.Msi SplashBitmap.bmp Container.ico Legal UNIX

从零开始搭建Linux驱动开发环境

参考: 韦东山视频第10课第一节内核启动流程分析之编译体验 第11课第三节构建根文件系统之busybox 第11课第四节构建根文件系统之构建根文件系统韦东山书籍《嵌入式linux应用开发完全手册》 其他《linux设备驱动程序》第三版 平台: JZ2440、mini2440或TQ2440 交叉网线和miniUSB PC机(windows系统和Vmware下的ubuntu12.04) 一、交叉编译环境的选型 具体的安装交叉编译工具,网上很多资料都有,我的那篇《arm-linux- gcc交叉环境相关知识》也有介绍,这里我只是想提示大家:构建跟文件系统中所用到的lib库一定要是本系统Ubuntu中的交叉编译环境arm-linux- gcc中的。即如果电脑ubuntu中的交叉编译环境为arm-linux-

二、主机、开发板和虚拟机要三者互通 w IP v2.0》一文中有详细的操作步骤,不再赘述。 linux 2.6.22.6_jz2440.patch组合而来,具体操作: 1. 解压缩内核和其补丁包 tar xjvf linux-2.6.22.6.tar.bz2 # 解压内核 tar xjvf linux-2.6.22.6_jz2440.tar.bz2 # 解压补丁

cd linux_2.6.22.6 patch –p1 < ../linux-2.6.22.6_jz2440.patch 3. 配置 在内核目录下执行make 2410_defconfig生成配置菜单,至于怎么配置,《嵌入式linux应用开发完全手册》有详细介绍。 4. 生成uImage make uImage 四、移植busybox 在我们的根文件系统中的/bin和/sbin目录下有各种命令的应用程序,而这些程序在嵌入式系统中都是通过busybox来构建的,每一个命令实际上都是一个指向bu sybox的链接,busybox通过传入的参数来决定进行何种命令操作。 1)配置busybox 解压busybox-1.7.0,然后进入该目录,使用make menuconfig进行配置。这里我们这配置两项 一是在编译选项选择动态库编译,当然你也可以选择静态,不过那样构建的根文件系统会比动态编译的的大。 ->Busybox Settings ->Build Options

Linux下软件安装方法总结

Linux下软件安装方法总结 <转> 2009-04-18 22:26 一、rpm包安装方式步骤: 1、找到相应的软件包,比如soft.version.rpm,下载到本机某个目录; 2、打开一个终端,su -成root用户; 3、cd soft.version.rpm所在的目录; 4、输入rpm -ivh soft.version.rpm 二、deb包安装方式步骤: 1、找到相应的软件包,比如soft.version.deb,下载到本机某个目录; 2、打开一个终端,su -成root用户; 3、cd soft.version.deb所在的目录; 4、输入dpkg -i soft.version.deb 三、tar.gz源代码包安装方式: 1、找到相应的软件包,比如soft.tar.gz,下载到本机某个目录; 2、打开一个终端,su -成root用户; 3、cd soft.tar.gz所在的目录; 4、tar -xzvf soft.tar.gz //一般会生成一个soft目录 5、cd soft 6、./configure 7、make 8、make install 四、tar.bz2源代码包安装方式: 1、找到相应的软件包,比如soft.tar.bz2,下载到本机某个目录; 2、打开一个终端,su -成root用户; 3、cd soft.tar.bz2所在的目录; 4、tar -xjvf soft.tar.bz2 //一般会生成一个soft目录 5、cd soft 6、./configure 7、make 8、make install 五、apt方式安装: 1、打开一个终端,su -成root用户; 2、apt-cache search soft 注:soft是你要找的软件的名称或相关信息 3、如果2中找到了软件soft.version,则用apt-get install soft.version 命令安装软件注:只要你可以上网,只需要用apt-cache search查找软件,用apt-get install软件 六、bin文件安装: 如果你下载到的软件名是soft.bin,一般情况下是个可执行文件,安装方法如下:

Linux必学命令OK

◆安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; ◆文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln; ◆系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup; ◆系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who; ◆其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。 本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例,介绍Linux下的安装和登录命令。 编者注:请用ctrl + f在本页中快速查找某一部分的内容或某一命令的用法。 Linux必学的60个命令(1)-安装与登陆命令 login 1.作用 login的作用是登录系统,它的使用权限是所有用户。 2.格式 login [name][-p ][-h 主机名称] 3.主要参数 -p:通知login保持现在的环境参数。 -h:用来向远程登录的之间传输用户名。 如果选择用命令行模式登录Linux的话,那么看到的第一个Linux命令就是login:。

一般界面是这样的: Manddrake Linux release 9.1(Bamboo) for i586 renrel 2.4.21-0.13mdk on i686 / tty1 localhost login:root password: 上面代码中,第一行是Linux发行版本号,第二行是内核版本号和登录的虚拟控制台,我们在第三行输入登录名,按“;Enter”键在Password后输入账户密码,即可登录系统。出于安全考虑,输入账户密码时字符不会在屏幕上回显,光标也不移动。 登录后会看到下面这个界面(以超级用户为例): [root@localhost root]# last login:Tue ,Nov 18 10:00:55 on vc/1 上面显示的是登录星期、月、日、时间和使用的虚拟控制台。 4.应用技巧 Linux是一个真正的多用户操作系统,可以同时接受多个用户登录,还允许一个用户进行多次登录。这是因为Linux和许多版本的Unix一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。每个虚拟控制台可以看作是一个独立的工作站,工作台之间可以切换。虚拟控制台的切换可以通过按下Alt键和一个功能键来实现,通常使用F1-F6 。 例如,用户登录后,按一下“Alt F2”键,用户就可以看到上面出现的“login:”提示符,说明用户看到了第二个虚拟控制台。然后只需按“Alt F1”键,就可以回到第一个虚拟控制台。一个新安装的Linux系统允许用户使用“Alt F1”;到“Alt F6”键来访问前六个虚拟控制台。虚拟控制台最有用的是,当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作,关闭这个程序。

网管必备Linux-yum安装整个过程讲解(图)

当我们在liunx系统中安装某个软件时,经常会遇到一些软件的依赖问题。yum或者Yellow dog Update或者Modified是杜克大学为了提高RPM软件包安装性而开发的一种软件包管理器。Yum可以从众多软件包仓库中搜索软件的依赖关系,因此可以减少由于依赖关系带来的问题。还有就是我们在使用图形界面时,在应用程序-添加删除软件下的浏览里是空的。如下图: 第一种方法:(推荐) 第一步:新建一个文件夹,并把光盘内的所有文件复制到这个文件夹里: [root@localhost ~]# mkdir /yum [root@localhost ~]# cp -rvf /misc/cd/* /yum 第二步:备份repodata文件。因为有四个文件夹里都有这个文件,所以都要备份。 [root@localhost ~]# mv /yum/Server/repodata /yum/Server/repodata.bak

[root@localhost ~]# mv /yum/VT/repodata /yum/VT/repodata.bak [root@localhost ~]# mv /yum/Cluster/repodata /yum/Cluster/repodata.bak [root@localhost ~]# mv /yum/ClusterStorage/repodata /yum/ClusterStorage/repodata.bak 第三步:安装工具包: [root@localhost ~]# rpm -ivh /yum/Server/createrepo-0.4.11-3.el5.noarch.rpm 第四步:生成仓库数据库: [root@localhost ~]# createrepo -g /yum/Server/repodata.bak/comps-rhel5-server-core.xml /yum/Server/ [root@localhost ~]# createrepo -g /yum/VT/repodata.bak/comps-rhel5-vt.xml /yum/VT/ [root@localhost ~]# createrepo -g /yum/Cluster/repodata.bak/ /yum/Cluster [root@localhost ~]# createrepo -g /yum/ClusterStorage/repodata.bak/comps-rhel5-cluster-st.xml /yum/ClusterStorage/ 第五步:查看仓库数据文件: [root@localhost ~]# ls /yum/Server/repodata/ comps-rhel5-server-core.xml //这个文件软件包组的分类。 filelists.xml.gz other.xml.gz primary.xml.gz //这三个文件为软件包列表文件。repomd.xml //这个文件为MD5校验信息。 在/yum/VT /yum/Cluster /yum/ClusterStorage下面都有这几个文件,作用和这一样。如果想更新软件包,只需把下载完的软件包放在Server或者其他三个目录里,再使用第四步重新生成数据库文件即可。 第六步:客户端配置:主要修改下面红色的部分: [root@localhost ~]# cp /etc/yum.repos.d/rhel-debuginfo.repo /etc/yum.repos.d/chenbin.repo [root@localhost ~]# vi /etc/yum.repos.d/chenbin.repo [rhel-Server]

Java开发人员常用必学Linux命令

1.查找文件find / -name filename.txt 根据名称查找/目录下的filename.txt文件。 2.查看一个程序是否运行ps –ef|grep tomcat 查看所有有关tomcat的进程 3.终止线程kill -9 19979 终止线程号位19979的线程 4.查看文件,包含隐藏文件ls -al 5.当前工作目录pwd 6.复制文件包括其子文件到自定目录cp -r sourceFolder targetFolder 7.创建目录mkdir newfolder 8.删除目录(此目录是空目录)rmdir deleteEmptyFolder 9.删除文件包括其子文件rm -rf deleteFile 10.移动文件mv /temp/movefile /targetFolder 扩展重命名mv oldNameFile newNameFile 11.切换用户su -username 12.修改文件权限chmod 777 file.java //file.java的权限-rwxrwxrwx,r表示读、w表示写、x表示可执行13.压缩文件tar -czf test.tar.gz /test1 /test2 14.列出压缩文件列表tar -tzf test.tar.gz 15.解压文件tar -xvzf test.tar.gz 16.查看文件头10行head -n 10 example.txt 17.查看文件尾10行tail -n 10 example.txt 18.查看日志文件tail -f exmaple.log //这个命令会自动显示新增内容,屏幕只显示10行内容的(可设置)。 19.启动Vi编辑器vi

Linux运维工程师必备技能

Linux运维工程师必备技能 Linux是一款免费开源的操作系统,因其具有安全、稳定、免费、高效的特点,在市场上得到广泛的应用,目前90%的企业都在使用Linux操作系统,因此,对Linux运维人才的需求量也是巨大的,那么,要是从事Linux运维工程师需要具备哪些技能? 一、版本的选择 Linux的学习首先要选择合适的Linux版本,推荐学习RedHat或CentOS,其中CentOS在企业里用的最多,当然,如果有时间和兴趣,也可以研究一下其他版本。 二、Linux基础知识 熟练掌握Linux硬件基础,Linux发展史,Linux系统安装/xshell连接/xshell优化/SSH远程连接故障问题排查,Linux基础优化,Linux目录结构知识,Linux文件属性,Linux通配符/正则表达式,Linux系统权限以及Linux系统管理等相关知识。 三、Linux网络服务 Linux网络服务有很多种,不同公司用到的不同,最好是能够熟练掌握以下知识:集群实战架构,rsync数据同步服务,Linux全网备,nfs网络存储服,inotify/sersync实时数据同步/nfs存储实时备份,http协议/www服,nginx web,lnmp环境部署/数据库异机迁移/共享数据异机迁移到NFS系统,nginx负载均衡深入透彻,keepalived高可用等 四、shell脚本语言

要熟练掌握shell脚本语言相关命令的使用,从而更搞笑的实现Linux运维管理。 五、数据库 Linux使用最多的数据库是Mysql数据库,因此,要熟练掌握Mysql数据库的操作以及相关操作语句的书写。 六、防火墙 Iptables是linux常用防火墙,要熟练掌握相关设置,如果有能力也可以学习一下ipset和firewalld。 七、监控工具 服务器运行情况实时反馈,完全依赖有一个好的监控工具,发现问题可以第一时间及时有效的处理,可以避免更大的损失,因此,Linux运维人才必须要会使用Linux监控工具,推荐使用Nagios。 八、数据备份 数据备份对Linux运维工程师来说是必不可少的环节,因此,Linux工作人员要熟练掌握数据备份相关知识。 以上是Linux运维工程师必备技能,当然,除此之外,还有很多技能需要Linux运维工作人员在工作中不断的进行发现问题、解决问题,并掌握相关知识,如果您想成为资深Linux运维工作人员就好好完善自己的Linux技能吧!

相关文档
最新文档