Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux内核中Kconfig文档的作用

Linux内核中Kconfig文档的作用

内核源码树的目录下都有两个文档Kconfig(2.4版本是Config.in)和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核配置菜单。在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文档中。 在内核编译时,主Makefile调用这个.config,就知道了用户的选择。上面的内容说明了,...
初识Linux脚本编程(shell)

初识Linux脚本编程(shell)

为了能够批处理运行程序,在hwd大牛的提示下,知道bash可以用来完成这个工作,找到一篇很好的初学资料,作一个笔记。第一个例子#!/bin/bash //是说明 hello.sh 这个文件的类型的。Linux 系统根据 "#!"及该字串后面的信息确定该文件的类型# This is a very simple example //注释str="hello world!" //变量定义echo $str //输出 变量的使用一,变量赋值时,“=”左右两边都不能...
Ubuntu 8.04下的嵌入式开发环境建立

Ubuntu 8.04下的嵌入式开发环境建立

最近有看到有帖子写说Ubuntu下嵌入式开发不太好,原因是ubuntu有很多库没装全,而RedHat 9比较好,只是现在的机器一般配置都较新,redhat 9不好安装。我一直都在用着Ubuntu,redhat很少用,就用虚拟机装过一次,但感觉界面不如Ubuntu的好,也就没怎么用了。说实在的,Ubuntu用来做嵌入式开发,首先库和一些相关的软件安装不全,有时候是挺让人郁闷的,我开始的时候用着确实也因这些问题耽搁了好长时间,不过后来熟悉了,也没多大问题了,像...
Linux Shell位置参数

Linux Shell位置参数

1.$0, $1, $2,等等:位置参数,从命令行传递给脚本,或者是传递给函数.或者赋职给一个变量.2.$#:命令行或者是位置参数的个数.3.$*:所有的位置参数,被作为一个单词.注意:"$*"必须被""引用.4.$@:与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整地传递,并没有被解释和扩展.这也意味着,每个参数列表中的每个参数都被当成一个独立的单词.注意:"$@"必须被引用.5.$-:传递给脚本的falg(使用set 命令).注...
关于Linux fork()函数的工作机制

关于Linux fork()函数的工作机制

在看Linux源代码时,遇到的fork()函数实在是太奇怪了,调用一次,竟然会对子进程和父进程分别返回两个不同的值,令人费解,一个函数怎么会有两个返回值呢。终于找到了答案。如下: fork()并不是进行进程切换,而是复制一个当前进程。举例来说,假如初始进程号为100,当进入fork()系统调用后,操作系统就把100号进程一模一样地复制出来一个新的进程101号。所谓一模一样,是指100号进程与101号进程所包含的任何信息,例如变量的值,空间分配,特别是正在...
Linux内存泄漏的检查方法

Linux内存泄漏的检查方法

1. 在需要内存泄漏检查的代码的开始调用void mtrace(void) (在mcheck.h中? 有声明). mtrace为malloc等函数安装hook, 用于记录内存分配信息.在需要内存泄漏检查的代码的结束调用void muntrace(void). 注意: 一般情况下不要调用muntrace, 而让程序自然结束. 因为可能有些释放内存代码要到muntrace之后才运行. 2. 用debug模式编译被检查代码(-g或-ggdb) 3. 设置环...
菜鸟课堂 教你打造个人无敌系统全攻略

菜鸟课堂 教你打造个人无敌系统全攻略

Slammer、SoBig、Blaster等蠕虫病毒的共同特点就是攻击系统漏洞,造成大规模的网络中断。尽管在这些病毒爆发之前,阻挡它们的补丁程序已经问世,然而依然不能有效扼制病毒的蔓延,造成这一现象的主要原因在于修补系统不得力。 修补系统之所以艰巨,原因有两点:一是从安全漏洞被披露到黑客利用漏洞发起攻击,时间间隔越来越短,用户没有足够的时间去修补系统;二是大量客户机成为病毒攻击的目标和帮凶,使病毒传播得更广泛、更迅速。除了Windows外,路由器、交换机...
把Linux下nand读操作搞定了

把Linux下nand读操作搞定了

最后还是用了实地址和虚地址转换的函数,正确读出了写入的信息,挂载了cramfs分区终于在最后一天晚上吧nand驱动的读取部分做好了,现在可以从cramfs启动文件系统,write应该也快了吧,ECC校验和yaffs还需要时间。简单记录下这几天和LM兄调试nand的痛苦经历。我加入Linux项目组时LM兄已经开始着手看nand驱动的相关内容,所以主要程序都是他写的,我只是一起开发,解决问题。一开始是串口不能输出和2.6不能启动这些历史遗留问题,不再赘述。记得...
LinuxUnix 系统编程 -- 关于缓冲设置时容易出现的错误

LinuxUnix 系统编程 -- 关于缓冲设置时容易出现的错误

以下这段程序是笔者在阅读《Unix环境高级编程(第二版)》时看到的一个例子,感觉非常有说明意义,这种内存控制错误在初学者,甚至是一些老手中都会出现,所以拿出来给大家分享一下,也提醒自己注意。 这里出现的问题是,当open_data返回时,它所占用的栈空间将被释放用于下一个函数的调用。但是标准I/O库将仍然使用这一块缓冲。混乱必定会导致错误的出现。为了更正这里的问题,我们应该把databuf这个变量声明为全局的,或者静态的,或者extern,或者使用all...
LinuxUnix 系统编程 -- 等待某个子进程结束的wait方法

LinuxUnix 系统编程 -- 等待某个子进程结束的wait方法

如果我们有很多个子进程,那么,当任何一个子进程结束的时候wait都会返回。如果我们像等待其中某一个特定的进程结束(假定我们知道那个进程的进程ID),在老版本的Unix系统上,我们能够调用wait函数,并且比较它返回的进程ID和我们想得到的进程ID。如果这个结束的进程不是我们期望的进程,那么我们不得不保存这个进程ID和结束状态,然后再一次调用wait函数。我们需要继续做这样的事情直到我们期望的进程结束。下一次我们我想要等待一个特定进程的时候,我们需要借助已经...
C++的标准库头文件所在目录

C++的标准库头文件所在目录

在用ifstream的seekg()函数时遇到了问题,想查看一下C++标准库的头文件,找了半天终于找到我机器上的标准库头文件所在目录。在我机器上是:/usr/include/c++/4.0.0其中以.h为后缀的头文件在这个目录下的backward文件夹里查找文件的相应命令:比如要找iostream,可以使用locate命令,如locate iostream也可以使用find命令,find命令比locate复杂一点关于 Linux下或者mac os下的查找命...
Linux对一个3G的文本进行编码转换全过程

Linux对一个3G的文本进行编码转换全过程

本过程中涉及到的Linux的命令有:split, iconv, cat问题:有一个3G的文本a.txt,编码格式为gbk,现在需要对其进行转换成为utf-8。难点:iconv的转换是在内存中进行的,因此3G大小的文本,无法进行直接转换。思路:先利用split进行文件切分,然后对每一个字文件进行ivonv转换,最后进行cat合并。具体操作如下:1) ll -h a.txt 查看文件的大小,2.9G2) wc -l a.txt 查看文件的行数,9千200万行3...
<< 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 >>