上一页 1 ··· 5 6 7 8 9 10 11 下一页
  2011年8月16日
摘要: 本质上就是修改kconfig和makefile两个文件。先熟悉下kconfig的语法1.menu menuname2.configure myconfigurename3. bool configurenametoshow4. depends on anotherconfigurename5. default y6. help7. some words you are freedom to explain8.endmenu第一行,菜单名第二行,配置项名称,代表整个配置项第三行,配置类型,包括bool,tristate,string,hex和int.第四行,领带项,如果anotherconfig 阅读全文
posted @ 2011-08-16 10:23 image eye 阅读(630) 评论(0) 推荐(0) 编辑
摘要: Linux中语言的设置和本地化设置真是一个很繁琐的事情,时不时的会出现乱码的情况。一般来说,linux中显示什么语言是通过环境变量来确认的。这些环境变量包括:$LANG / $LANGUAGE / $LC_CTYPE ....可以通过locale命令查看这些变量的值。要设置这些变量,可以通过export命令来进行。如:# export LANG=uc_EN# export LC_CTYPE=c可以把以这些命令加入到~/.bash_profile文件中,这样,就成了默认配置.另外,文件/etc/sysconfig/i18n 也是可以配置语言选项的.下面是修改的方法,可以将默认语言改为Englis 阅读全文
posted @ 2011-08-16 09:19 image eye 阅读(4243) 评论(0) 推荐(0) 编辑
  2011年8月10日
摘要: 一、运行 gcc/egcsLinux 中最重要的软件开发工具是 GCC。GCC 是 GNU 的 C 和 C++ 编译器。实际上,GCC能够编译三种语言:C、C++和ObjectC(C语言的一种面向对象扩展)。利用 gcc 命令可同时编译并连接 C 和 C++ 源程序。#DEMO#: hello.c如果你有两个或少数几个C源文件,也可以方便地利用GCC编译、连接并生成可执行文件。例如,假设你有两个源文件 main.c 和 factorial.c 两个源文件,现在要编译生成一个计算阶乘的程序。清单 factorial.c#include #include int factorial (int n) 阅读全文
posted @ 2011-08-10 13:52 image eye 阅读(922) 评论(0) 推荐(0) 编辑
  2011年7月28日
摘要: 信号的处理是当前进程在中断时,从内核态返回到用户态时要处理的第一件事,进程在从内核态返回用户态时,先检查进程是否有需要处理的信号(就是判断当前进程的进程控制块中的signal信号位图,和blocked阻止位图的相与),如果信号位图与阻止位图相与后,发现有置位的位,就说明当前进程有信号需要处理。此时,先判断是32种信号中的哪种,然后内核会把这个信号的处理函数的地址,作为内核返回用户态时的EIP,因此,当返回用户态后,用户态的执行流程就从信号处理函数开始执行,当执行完了信号处理函数后,再转到发生中断时所保留的下一条语句开始执行。而进程也许没有其他的中断,但是总会有时钟中断产生,因此,当有信号需要处 阅读全文
posted @ 2011-07-28 10:33 image eye 阅读(1141) 评论(0) 推荐(0) 编辑
  2011年7月26日
摘要: 阅读全文
posted @ 2011-07-26 22:22 image eye 阅读(239) 评论(0) 推荐(0) 编辑
  2011年7月24日
摘要: ramdisk 既是内存磁盘,就是利用物理内存的指定的容量,模仿磁盘的存储格式来存储文件,既然是模仿磁盘的存储格式来存储文件,那自然需要有磁盘的存储格式作为基础了。对于linux0.1x系统,支持的文件系统只有minix1.0,因此,要把指定的内存划分成可以存储文件,并能被minix1.0文件系统所能访问,就是按照minix1.0的格式来划分,存储了,亦即ramdisk也必须有引导块,超级块,逻辑块位图,I节点位图,I节点,逻辑块这些内容,而查找一个文件,也需要通过路径名,得到I节点号,再通过I节点号得到I节点,再通过I节点得到文件的存储在磁盘数据区(就是逻辑块)的内容,也就是说,内存磁盘就是 阅读全文
posted @ 2011-07-24 22:39 image eye 阅读(2590) 评论(0) 推荐(0) 编辑
  2011年7月20日
摘要: 打开两个终端,在第一个终端先执行fifo_read,创建有名管道,并且等待输入端输入之后,再在第二个终端执行fifo_write,之后,fifo_write将向管道写入数据,此时,输出管道将有数据可读,因此被唤醒,从管道中读出数据,并显示出来。/*fifo_read.c*/#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <string.h>#include <fcntl.h>#include <errno.h>#include &l 阅读全文
posted @ 2011-07-20 23:44 image eye 阅读(2107) 评论(0) 推荐(0) 编辑
  2011年7月17日
摘要: container_of()宏定义的执行,可以通过结构体成员的地址而得到结构体的首地址,它需要三个参数,第一个参数是一个结构体成员的地址,第二个参数是结构体类型,第三个参数是结构体的成员,其推算的总思路是,获得一个结构体成员的地址,和这个结构体成员相对于首地址的偏移,然后使用结构体成员的地址,减去成员对首地址的偏移,即可得到结构体的首地址。如此,需要解决两个问题,一是如何得到一个结构体成员的地址,二是如何算出这个成员相对于首地址的偏移。对于第二个问题,使用了0地址,先把0地址强制转换成指定的结构体类型,即0地址是指定的结构体类型,那么相对于0地址的成员地址就是相对于0地址的偏移地址,因此可以得 阅读全文
posted @ 2011-07-17 22:36 image eye 阅读(626) 评论(0) 推荐(0) 编辑
  2011年7月16日
摘要: linux0.12实现的sys_select()系统调用,用来管理指定的文件句柄(即文件I节点,亦即文件)是否准备好,如果有准备好的文件句柄,则返回准备好的文件句柄数到调用select()函数的进程,继续执行后面的被阻塞的指令,如果没有准备好,则返回-1(表示错误),或者0,表示正常情况下没有就绪的文件可以用。此时,只要对select返回的值进行判断,就知道是否有文件已经准备好了。在linux0.12中,只实现了tty和pipe的select()阻塞功能,对tty的阻塞是在当需要读取键盘的输入数据而此时数据队列是空时,对pipe的阻塞是在当读端要读取数据但是管道是空的,或者写端要写数据,而管道 阅读全文
posted @ 2011-07-16 14:25 image eye 阅读(802) 评论(0) 推荐(1) 编辑
  2011年7月14日
摘要: #include <stdio.h>#include <stdarg.h>void pp(char *fmt,...){char *arg;int i;double d;char c;char *s;printf("%s",fmt);arg=(char *)&fmt+4;i=*(int *)arg;printf("%d",i);arg+=sizeof(int);d=*(double *)arg;printf("%f",d);arg+=sizeof(double);c=*(char *)arg;print 阅读全文
posted @ 2011-07-14 18:26 image eye 阅读(339) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 下一页