
linux
不知名小ITer
滴水穿石...
展开
-
linux系统启动流程
系统的启动时指从计算机加电到显示用户登陆提示的整个过程,我们在这里对整个流程坐一个讨论...对系统的流程先有一个大概的了解:开电源==>BIOS自检==>启动设备(磁盘orU盘or光驱)==>引导程序(lilo或grub)==>内核==>init程序(rc.sysinit和rc)==>mingetty==>终端登录==>shell...现在分为四个阶段来讲述:第一阶段:原创 2009-08-03 16:59:00 · 967 阅读 · 0 评论 -
交叉编译openssl-1.0.0 for arm
下载source code:openssl-1.0.0.tar.gztar xvf openssl-1.0.0.tar.gzcd openssl-1.0.0./config --prefix=*** no-asm shared生成Makefile之后修改Makefile中的:CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -march=pentium -DL_ENDIAN -DTERMI原创 2010-12-22 18:09:00 · 5726 阅读 · 0 评论 -
实现linux的自动登录--命令行模式启动
<br />linux的登录主要是由两个文件在控制,/usr/sbin/getty来获得用户名,并进行检查用户名是否存在,然后将用户名传递给/usr/bin/login来获取用户输入密码和检查密码是否正确.<br />所以要实现linux的自动登录,就要改动这两个文件.<br /> 1.getty实现的主要功能是:<br /> 1)打开指定的tty;<br /> 2)提示用户登录(login:);<br /> 3)获得登录用户名;<br /> 4)把用户名传递给login命令<br原创 2010-11-05 10:54:00 · 16962 阅读 · 0 评论 -
使用异步 I/O 大大提高应用程序的性能
<br />转载的:<br />aio的确能够提高file磁盘的文件读写的性能.更加详细的blog在:<br />http://www.ibm.com/developerworks/cn/linux/l-async/<br /><br /><br />根据同步和异步,阻塞和非阻塞,可以分为四种linux上的I/O模型.<br />1)同步阻塞I/O<br /><br /><br />2)同步非阻塞I/O<br />3)异步阻塞I/O<br />4)异步非阻塞I/O<br /><br /><br />【同步I转载 2010-12-30 13:38:00 · 1226 阅读 · 0 评论 -
linux内核同步方式
<br />内核同步通常有三种:原子操作,自旋锁和信号量<br /><br /> 原子操作:保证指令以原子的方式执行,执行过程不会被打断.两个原子操作绝不可能并发的访问同一变量.<br /> 内核提供两种原子操作接口:<br /> 1)一组针对整数进行操作;<br /> 2)一组针对单独的位进行操作.<br /> 大多数体系结构本来就支持简单的原子操作,要么就为单步执行提供锁内存总线的指令.<br /><br /> 针对整数的原子操作只能对atomic_t类型的数据进行处理.<br /> 使用原创 2010-11-13 15:47:00 · 1325 阅读 · 0 评论 -
linux内核同步方式--自旋锁
<br />自旋锁:是linux内核中最常见的锁,自旋锁最多只能被一个可执行线程持有,如果一个执行线程试图获得一个被持有的自旋锁,那么该线程会一直进行忙循环,旋转,等待锁重新可用.<br /><br /> 在任何时候,自旋锁都可以防止多于一个的执行线程同时进入临界区,一个被争用的自旋锁会导致请求他的线程在等待锁重新可用时自旋,所以自旋锁不应被长期持有.这也是自旋锁的初衷:在短期内进行轻量级加锁.<br /> 自旋锁的实现与体系结构密切相关,代码往往通过汇编实现.这些与体系结构相关的代码定义在<asm/s原创 2010-11-13 17:33:00 · 2594 阅读 · 1 评论 -
用10.04 alternate CD定制安装Ubuntu方法
<br />一.开机后按F2或Del进入CMOS,适当调整BIOS设置,至少要把光盘启动设为第一启动。<br /> 二.这一步很重要。进入安装界面时及时按Esc键,在安装界面下按F6键,选中Expert,按回车,此时Expert选项前有一叉号,再按Esc键回到安装界面,按回车继续。<br /> 三.按回车选择语言。<br /> 四.挂载光盘。<br /> 五.这一步很重要。在挂载光盘后不要选中装入预配置的Deb.....文件,移动光标直接进入它的的后一步即可。如果你按回车激活了装入预配置的Deb..转载 2010-11-12 14:17:00 · 2555 阅读 · 0 评论 -
Linux编译链接问题----静态库和动态库
<br /><br />1. Linux静态库和动态库的命名规则:<br />静态函数库:静态库的名字一般是libxxx.a,利用静态库编译生成的文件比较大,因为整个静态库所有的数据都会被整合进目标代码中。<br />a) 优点:编译后,可执行文件不需要外部支持;<br />b) 缺点:生成的可执行程序大;静态库改变了,就需要重新编译可执行程序。<br /> <br />动态函数库:动态库的名字一般是libxxx.so,相对于静态库,动态函数库在编译的时候并没有被编原创 2011-05-10 18:15:00 · 8766 阅读 · 1 评论 -
Linux-2.6-32的内核栈和用户空间栈关系
<br /> <br />1.进程的堆栈<br />内核在创建进程的时候,在创建task_struct的同事,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,cpu堆栈指针寄存器里面的内容是内核栈空间地址,使用内核栈。<br /> <br />2.进程用户栈和内核栈的切换<br />当进程因为中断或者系统调用而陷入内核态之行时,进程所使用的堆栈也要从用户栈原创 2011-05-10 09:30:00 · 2201 阅读 · 0 评论 -
编译netcf-1.7的source code时遇到的错误的解法
<br />/home/swliao/compile/include/netlink/object.h:58: warning: inline function ‘nl_o<br /> /home/swliao/compile/include/netlink/object.h:58: warning: inline function ‘nl_o<br /> CC dutil_linux.lo<br /> make[3]: *** No rule to make target `-L/hom原创 2010-12-16 10:57:00 · 1144 阅读 · 0 评论 -
register.o: undefined reference to symbol 'gpg_strerror'编译错误的解法
<br />在编译libgrcypt的时候找不到gpg-error的接口...<br />解法:<br />修改Makefile:LDFLAGS=-L/库路径 <br />tests/Makefile也要做同样修改...<br /> <br />以前解过了的,今天又找了半天,记录下来...备忘...<br /> <br />在linux编译的过程中,很多问题都是由于configure的问题,所以在对linux的source code做编译的时候着重注意configure和生成的Makefile文件...据经原创 2010-12-15 16:00:00 · 4557 阅读 · 0 评论 -
alsa声音编程介绍
英文原文:http://www.linuxjournal.com/article/6735<br /> period(周期):硬件中中断间的间隔时间。它表示输入延时。<br /> 声卡接口中有一个指针来指示声卡硬件缓存区中当前的读写位置。只要接口在运行,这个指针将循环地指向缓存区中的某个位置。<br /> frame size = sizeof(one sample) * nChannels<br /> alsa中配置的缓存(buffer)和周期(size)大小在runtime中是以帧(frames转载 2010-12-03 13:30:00 · 4026 阅读 · 0 评论 -
shell实现逐行读取文件
shell读取配置文件来获取参数的值: #!/bin/sh filepath="/home/test/test.txt"while read LINEdo user=`echo $LINE | awk {print $1}` pwd=`echo $LINE | awk {print $2}`done转载 2009-08-05 15:11:00 · 5716 阅读 · 0 评论 -
修改linux环境变量的三种方法
1.修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。 (1)用文本编辑器打开/etc/profile (2)在profile文件末尾加入: JAVA_HOME=/usr/share/jdk1.5.0_05 PATH=$JAVA_H原创 2009-08-05 15:22:00 · 1989 阅读 · 0 评论 -
nfs服务器的搭建
nfs和samba是最简单的两个服务器,搭建一个简易nfs或者samba可能只需要2分钟. 现在解析一下他们的nfs服务的配置文件,以及提供如何配置的方法. 配置nfs服务器相对而言比配置samba更要简单,nfs服务器的配置文件是/etc/exports,现在对exports中的参数进行分析:ro/rw:配置用户对该nfs共享文件夹的访问权限(只读/读写) sync原创 2009-11-11 09:42:00 · 922 阅读 · 0 评论 -
linux多进程编程
在linux中,运行的一个进程,会占去linux的三个地方,代码区,堆栈区和数据区.如果同时运行多个相同的程序,他们就会使用相同的代码区,代码区中存放的就程序的代码,但是数据区和堆栈区分别存放的是程序的数据,全局变量和局部变量,因此即使是相同的程序,也不可同时使用相同的数据和堆栈区. #include#includeint main(){ if(fork() ==原创 2009-11-02 11:28:00 · 1536 阅读 · 1 评论 -
完全定制个性化linux安装界面
最近定制了一个ubuntu的安装界面,感觉比较有意思,写上来,有兴趣的朋友可以实践一下... 先介绍一下grub和isolinux,以及一些开机引导程序...1)BIOS:basic input output system,一般的情况下是归结于firmware这一类的.这里是为了连接通顺,就简单的说一下bios.BIOS是用户在按下电源的那一刻,负责和硬件沟通并呈现到用户面前的那些信息原创 2009-12-04 09:52:00 · 9108 阅读 · 4 评论 -
linux系统编程--系统调用
1.fork 创建一个新进程2.clone 按指定条件创建子进程3.execve 运行可执行文件4.exit 中止进程5._exit 立即中止当前进程6.getdtablesize 进程所能打开的最大文件数原创 2010-03-15 09:35:00 · 1040 阅读 · 0 评论 -
换个角度看LFS——反向分析LFS
原文链接:http://blog.chinaunix.net/u/13265/showart.php?id=130681前言 写了几篇关于LFS的制作过程中的文章,但分析性的文章还没怎么写过,论坛上也有一些分析性的文章,但大多数都是真对某个特定部分的,最近酝酿了一下,准备写点分析性质的文章调剂调剂。 这次用的标题大概已经能说明本文分析的角度,按照LFS的顺序写,似乎总不能摆转载 2010-04-13 11:00:00 · 1523 阅读 · 0 评论 -
四次做LFS的心得体会
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Sty原创 2010-04-14 17:57:00 · 2109 阅读 · 0 评论 -
kernel-2.6.38内核驱动globalmem--添加中断机制和udev机制
//这个驱动网上有例子,但是很多机制在新的内核里面已经过时了,所以我重写了一下,尽量使用了一些最近内核里面的机制。 //创建设备节点,使用的udev机制; //注册中断向量的时候使用了新的接口函数,包括了ISR的接口的改变。 #include #include #inc原创 2011-07-27 15:57:39 · 1193 阅读 · 0 评论