
LINUX基础
专注嵌入式
喜欢LINUX、嵌入式、driver、kernel,寻找志同道合的朋友
展开
-
linux基础:tty pty pts tts介绍
<br />1. tty(终端设备的统称): tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后 来这东西被键盘与显示器取代,所以现在叫终端比较合适。 终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。 2. pty(虚拟终端): 但是如果我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty) 3转载 2011-05-12 14:44:00 · 951 阅读 · 0 评论 -
make clean与make distclean的区别
<br />make clean仅仅是清除之前编译的可执行文件及配置文件。<br />而make distclean要清除所有生成的文件。<br />Makefile<br /> 在符合GNU Makefiel惯例的Makefile中,包含了一些基本的预先定义的操作:<br />make<br /> 根据Makefile编译源代码,连接,生成目标文件,可执行文件。<br />make clean<br /> 清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。<br转载 2011-05-13 10:50:00 · 948 阅读 · 0 评论 -
redhat下升级tar版本(解决pax_global_header问题)
<br />由于解压一些tar包时候报错如下:<br />tar: pax_global_header: Unknown file type 'g', extracted as normal file<br />经过查资料说是tar版本太低,所以需升级下。<br />tar的下载地址:http://ftp.gnu.org/gnu/tar/tar-1.20.tar.bz2<br />我是从1.13.25升级到tar-1.20版本的。<br />Tar 是一个归档程序,用来保存文件到归档文件或者从给定的ta转载 2011-05-13 10:33:00 · 2673 阅读 · 0 评论 -
跟我一起写 Makefile
[精华] 跟我一起写 Makefile http://www.chinaunix.net 作者:gunguymadman 发表于:2009-06-30 15:55:17【发表评论】【查看原文】【C/C++讨论区】【关闭】 <br />陈皓<br /><br />概述<br />——<br /><br />什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一转载 2011-05-13 14:02:00 · 665 阅读 · 0 评论 -
zImage与uImage的区别
<br />对于Linux内核,编译可以生成不同格式的映像文件,例如:<br /># make zImage<br /># make uImage<br /><br /> zImage是ARM Linux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头”,说明这个映像文件的类型、加载位置、生成时间、大小等信息。换句话说,如果直接从uImage的0x40位置开始执行,zImage和uImage没有任何区别。另转载 2011-05-16 09:19:00 · 601 阅读 · 0 评论 -
《Linux内核修炼之道》之高效学习linux驱动开发
《Linux内核修炼之道》 之 高效学习Linux驱动开发 收藏<br />这本《Linux内核修炼之道》已经开卖(网上的链接为: 卓越、当当、china-pub ),虽然是严肃文学,但为了保证流畅性,大部分文字我还都是斟词灼句,反复的念几遍才写上去的,尽量考虑到写上去的每段话能够让读者产生什么疑惑,然后也都会紧接着尽量的去进行解释清楚,中间的很多概念也有反复纠结过怎么解释能够更容易的理解,力求即使对于初学者也可以有很少阻碍的一气读完。同时我也把书中一部分自己转载 2011-05-16 13:44:00 · 817 阅读 · 1 评论 -
Linux环境变量设置总结
<br /> 1、引言<br /><br /> 在 linux系统 下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“ command not found ”的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。这涉及到环境变量 PATH 的设置问题,而 PATH 的设置也是在 linux 下定制环境变量的一个组成部分。本文基于 RedHat 9.0 ,详细讲解了环境变量定制的问题。<br /><br /> 2、变量简介<br /><br />转载 2011-05-19 10:57:00 · 492 阅读 · 0 评论 -
定点数与浮点数
1、定点数: 定点数指小数点在数中的位置是固定不变的,通常有定点整数和定点小数。在对小数点位置作出选择之后,运算中的所有数均应统一为定点整数或定点小数,在运算中不再考虑小数问题。 (1)定义:数据中小数点位置固定不变的数 (2)种类:定点整数 (3)小数点在符号位与有效位之间。 注:定点数受字长的限制,超出范围会有溢出。 2、浮点数: 浮点数中小数点的位置是不固定的,用阶码和尾数来表示。通常尾数为纯小数,阶码为整数,尾数和阶码均为带符号数。尾数的符号表示数的正负;阶码的符号则表明转载 2011-05-24 11:08:00 · 1031 阅读 · 0 评论 -
[经典]Linux内核中ioremap映射的透彻理解
<br />几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种:<br /><br /> (1)I/O映射方式(I/O-mapped)<br /><br /> 典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O端口空间",CPU通过专门的I/O指令(如X86的IN和OUT指令)来访问这一空间中的地址单元。 <br转载 2011-05-25 13:03:00 · 1372 阅读 · 1 评论 -
/etc/hosts文件
<br />/etc/hosts文件<br /> 当机器启动时,在可以查询DNS以前,机器需要查询一些主机名到IP地址的匹配。这些匹配信息存放在/etc/hosts文件中。在没有域名服务器情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址。 <br /> 下面是一个“/etc/hosts”文件的示例: <br />IP Address Hostname Alias <br />127.0.0.1 Localhost Gate.openarch.com <br />208.1转载 2011-05-27 10:20:00 · 843 阅读 · 0 评论 -
25 条 SSH 命令和技巧
25 条 SSH 命令和技巧26十一 <br />2010<br /># 作者: riku /阅读: 5,074 /本文采用CC BY-NC-SA 2.5协议授权,转载请注明本文链接。<br />来源: 51CTO / 英文原文:25 BEST SSH COMMANDS / TRICKS<br />SSH是一个非常伟大的工具,如果你要在互联网上远程连接到服务器,那么SSH无疑是最佳的候选。下面是通过网络投票选出的25个最佳SSH命令,你必须牢记于心。<br />1转载 2011-05-27 10:42:00 · 790 阅读 · 0 评论 -
linux时,/etc/profile、~/.bash_profile等几个文件的执行过程
在登录Linux时要执行文件的过程如下:在刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个,执行的顺序为:~/.bash_profile、 ~/.bash_login、 ~/.profile。如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。因为在 ~/.bash_profile文件中一般会有下面的代码:if [ -f转载 2011-05-27 11:07:00 · 905 阅读 · 0 评论 -
如何禁止启用U盘的自动弹出功能
<br />1.su root<br />2.vim /usr/share/hal/fdi/policy/10osvendor/20-storage-methods.fdi<br />3.修改第78行 把false改成true 保存退出。<br />4.此时U盘自动弹出功能被禁止(true改成false可启用)。原创 2011-05-27 10:11:00 · 1330 阅读 · 0 评论 -
判断大小端的代码(可使代码兼容大小端)
int x=1;if(*(char *)&x==1) /*小端*/else /*大端*/这段代码在用户空间和内核空间都能使用,能有效的兼容大小端的问题。原创 2011-05-31 19:57:00 · 2649 阅读 · 5 评论 -
往具体地址写数据时遇到的问题
<br /> 在驱动程序中,经常看到*(unsigned int *)0x56000000=0x12;<br />这样的直接给一个地址赋值的语句,这样的语句在应用程序中是不能直接用的,会出现段错误,LINUX系统不允许直接操作物理地址。<br /> <br /> <br />#include<stdio.h><br />#define NFCONF *(volatile unsigned int *)0x0804a008<br />int main()<br />{<br /> NFCONF原创 2011-05-31 14:10:00 · 713 阅读 · 0 评论 -
Linux内核入门(一)——体系架构
Linux是一套免费使用和自由传播的类Unix操作系统,它最先用于基于x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。我们不去介绍操作系统的历史了,也不管操作系统这门学科上对操作系统的分类了,闲话少说,Linux操作系统只是一个非常新的操作系统。它不拘泥于某种特定的操作系统类型,从内核上讲,它是一个分时操作系统,但又具备实时操作系统的特性;从体系上讲,它是一个单内核操作系统,但又具备模块转载 2011-06-01 08:57:00 · 1108 阅读 · 0 评论 -
Linux内核入门(二)——用户态向内核态切换
<br />那么,程序什么时候使用用户栈,什么时候使用内核栈呢?对,系统调用。也就是执行printf、open、read、write执行C语言库函数时,其最终会用到对应的系统调用,如sys_open、sys_read等。这时候就切换到内核栈。1 Linux的堆栈切换<br /><br />我们针对80x86来讨论,其实Linux只在四个地方用了它的堆栈段(由ss+esp指向其栈底地址):<br />• 系统引导初始化临时实模式下使用的堆栈<br />• 进入保护模式后提供内核程序始化使用的堆转载 2011-06-01 08:58:00 · 2608 阅读 · 0 评论 -
KBuild MakeFile介绍
<br />从Linux内核2.6开始,Linux内核的编译采用Kbuild系统,这同过去的编译系统有很大的不同,尤其对于Linux内核模块的编译。在新的系统下,Linux编译系统会两次扫描Linux的Makefile:首先编译系统会读取Linux内核顶层的Makefile,然后根据读到的内容第二次读取Kbuild的Makefile来编译Linux内核。<br />Linux内核Makefile分类<br />· Kernel Makefile<br />Kernel M转载 2011-06-01 17:08:00 · 989 阅读 · 0 评论 -
工作中与处理器有关的问题总结
<br />经常遇到的典型问题或者说我能想到的有以下这些:Ø字节序Ø字节对齐Ø异常Ø符号位问题Ø堆栈溢出Ø空指针Ø编译&反汇编<br />字节序问题:大端法小端法其实说白了就是一个顺序问题。现代的计算机系统一般采用字节(Octet, 8 bit Byte)作为逻辑寻址单位。当物理单位的长度大于1个字节时,就要区分字节顺序。常见的字节顺序有两种:Big Endian和Little Endian. Intel X86平台采用Little Endian,而PowerPC、ARM、MIP转载 2011-05-31 13:21:00 · 1237 阅读 · 4 评论 -
/etc/fstab文件详解
<br />有很多人经常修改/etc/fstab文件,但是其中却有很多人对这个文件所表达的意义不太清楚,因为只要按照一定的模式,就可以轻而易举地添加一行挂载信息,而不需要完全理解其中的原理。下面就让我们来看看到底还有多少是我们不了解的。<br /><br /> /etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /etc/fstab 来修改。<br /><br />转载 2011-05-31 15:57:00 · 934 阅读 · 0 评论 -
vim命令学习总结
第一讲小结: 1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。<br /> h (左移) j (下行) k (上行) l (右移) 2. 欲进入vim编辑器(从命令行提示符),请输入∶vim 文件名 <回车> 3. 欲退出vim编辑器,请输入以下命令放弃所有修改∶ <ESC> :q! <回车> 或者输入以下命令保存所有修改∶ <ESC> :wq <回车> 4. 在正常模式下删除光标所在位置的字符,请按∶转载 2011-06-02 09:39:00 · 544 阅读 · 0 评论 -
/etc/profile文件解析
与环境变量相关的文件可能还会有/etc/bashrc等,不过这是shell变量,是局部的,对于特定的shell器作用。/etc/profile是全局的,适用于所有的shell。profile文件会告诉shell使用什么语言,什么shell,命令的搜索路径等等。一些标准的环境变量:SHELL 默认shellLANG 默认语言PATH linux寻找命令的转载 2011-06-07 19:36:00 · 752 阅读 · 0 评论 -
linux下Mplayer的安装过程
Mplayer的下载需要下载四类文件:MPlayer-1.0rc1.tar.bz2(安装文件)all-20071007.tar.bz2(解码器1)windows-all-20071007.zip(解码器2)BlueHeart-1.5.tar.bz2(皮肤)subfont.ttf(字体)linux的软件最好从官方网站下载,以确保质量,此为其官方地址www1.mpl转载 2011-06-07 20:11:00 · 3995 阅读 · 0 评论 -
/etc/passwd 文件内容详解
今天我看了一个文档,虽然是讲命令的 ,但是它用passwd 文件做的 例子,由于许多天之前 看过,现在有点忘记,所以现在拿出来 恶补一下!! /etc/passwd 是存放用户的地方1 2 3 4 5 6转载 2011-06-08 14:45:00 · 1607 阅读 · 0 评论 -
/etc/fstab文件解析
1. fstab文件的作用文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过"mount /directoryname"命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsck、mount、umount的等命令都利用该程序。2. fstab文件格式下面是/etc/fatab文件的一个示例转载 2011-06-13 13:41:00 · 751 阅读 · 0 评论 -
linux sed命令详解
1. Sed简介sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序转载 2011-06-13 16:22:00 · 649 阅读 · 0 评论 -
LINUX 下安装摄像头驱动并测试其功能的过程
1.下载qc-usb-0.6.6.tar.gz 2. tar zxvf qc-usb-0.6.6.tar.gz 3.进入目录后直接 ./quickcam.sh 即可 4.lsmod|grep quick此时看到: quickcam 71588 0 videodev 25793 1 quickca原创 2011-06-24 16:17:00 · 1462 阅读 · 0 评论 -
Makefile中指示符“include”、“-include”和“sinclude”的区别
指示符“include”、“-include”和“sinclude”如果指示符“include”指定的文件不是以斜线开始(绝对路径,如/usr/src/Makefile...),而且当前目录下也不存在此文件;make将根据文件名试图在以下几个目录下查找:首先,查找使用命令行选项“-I”或者“--include-dir”指定的目录,如果找到指定的文件,则使用这个文件;否则继续依此搜索以下几个目录(如果其存在):“/usr/gnu/include”、“/usr/local/include”和“/usr/incl转载 2011-05-03 08:24:00 · 568 阅读 · 0 评论 -
LINUX磁盘管理常用命令
df命令功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。 语法:df [选项] 说明:df命令可显示所有文件系统对i节点和磁盘块的使用情况。 该命令各个选项的含义如下:-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件转载 2011-06-30 08:40:00 · 676 阅读 · 0 评论 -
ctags使用
ctags使用简介Vi大家都很熟悉,某些情况下它是我们在Linux下唯一可用的文本编辑器。其实我们平时所指的VI其实是VIM(ViImproved,VI增强版)。有人常常拿VIM和emacs比较,VIM尽管不象emacs那样有那么多的功能,但是比emacs更方便、好用。VIM简单易用,只要看看VIM自带的vitutor,大约只要20分钟就能掌握VIM的用法。转载 2011-06-30 09:49:00 · 1070 阅读 · 2 评论 -
Kconfig结构
3.7 Kconfig和Makefile毫不夸张地说,Kconfig和Makefile是我们浏览内核代码时最为依仗的两个文件。基本上,Linux 内核中每一个目录下边都会有一个Kconfig文件和一个Makefile文件。Kconfig和Makefile就好转载 2011-07-05 09:22:50 · 688 阅读 · 0 评论 -
开发板nfs挂虚拟机
1.在虚拟机中,vim /etc/exports添加/mnt/nfs 192.168.1.*(rw,sync,no_root_squash) //注意不要输入成中文格式,不然很难找到这个错误!2.在开发板中mount -t nfs 192.168.1.100:/mnt/nf原创 2011-07-15 15:57:41 · 939 阅读 · 0 评论 -
C/C++程序编译步骤详解
C/C++语言很多人都比较熟悉,这基本上是每位大学生必学的一门编程语言,通常还都是作为程序设计入门语言学的,并且课程大多安排在大一。刚上大学,孩子们还都很乖,学习也比较认真,用心。所以,C/C++语言掌握地也都不错,不用说编译程序,就是写个上几百行的程序都不在话下,但是他们真的知转载 2011-07-25 13:22:16 · 138 阅读 · 0 评论 -
LINUX库文件的生成与使用
1、linux库文件分为静态库和动态库两种。静态库习惯以.a 结尾,而动态库习惯以.so(shared object)结尾。而且必须以lib开头。2、静态库的原则是“以空间换时间”,增加程序体积,减少运行时间;生成:在编译时候,先生成目标文件.o,然后用ar文件对目标文件归档,生转载 2011-07-25 14:52:12 · 717 阅读 · 0 评论 -
Linux关机命令详解
Linux关机命令详解 本文出自:LinuxAid.com.cn 作者: sword_martin (2002-01-30 21:03:06) 在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都 可以达到重启系统的目的,但转载 2011-07-19 08:21:43 · 626 阅读 · 0 评论 -
Linux 2.6.XX无法rmmod 问题
使用rmmod会出现 rmmod : chdir(/lib/modules): No such file or directory ? 现在的内核模块在插入卸载时都会要转到/lib/modules/内核版本号/ 这个目录里。所以只要建立这个目录并且把要使用的模块.k转载 2011-08-08 14:02:53 · 1273 阅读 · 0 评论 -
##(两个井号)和#(一个井号)都是什么意思
连接符 ##(两个井号)不知道什么符 #(一个井号)## 连接符号由两个井号组成,其功能是在带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串。但它不可以是第一个或者最后一个子串。所谓的子串(token)就是指编译器能够识别的最小语法单元。具体的定义在转载 2011-08-16 10:05:48 · 3763 阅读 · 0 评论 -
makefile中的all和.PHONY的作用
请编写一个makefile同时编译、链接下面两个程序:main1.c:#includeint main(void){ printf("main1\n");}main2.c:#includeint main(void){ prin转载 2011-08-18 08:36:55 · 1815 阅读 · 1 评论 -
LINUX常用的基本命令
一些常用的基本命令: uname -a 查看内核版本 ls -al 显示所有文件的属性 pwd 显示当前路径 cd - 返回上一次目录 cd ~ 返回主目录 date s 设置时间、日期 cal 显示日历 cal 2006 bc 计算器具 man转载 2011-09-20 18:46:55 · 661 阅读 · 0 评论 -
区别:文件描述符与文件指针
文件描述符,在linux系统中,设备也是以文件的形式存在,要对该设备进行操作就必须先打开这个文件,打开这个文件就会,就会获得这个文件描述符,它 是个很小的正整数,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。文件描述符的优点:兼容POSIX标准,许多Linu转载 2011-08-23 15:40:34 · 856 阅读 · 0 评论