随笔分类 -  Linux

摘要:在一个shell脚本中,我大概执行了如下一个脚本:for a in {1...100}do for b in {1...100} do for c in {1...100} do sleep 10 done do... 阅读全文
posted @ 2015-07-09 16:55 李可以 阅读(484) 评论(0) 推荐(0)
摘要:今天运行一个程序,程序刚启动时占用内存很小,在运行过程中发现占用的内存会一直增大。用cat /proc/pid/statm的方式查看发现也确实在一直增大。而且这个程序移植到另外一个平台后,会直接无法运行。——————————————————————————————————————————我不明白为什... 阅读全文
posted @ 2015-06-26 16:16 李可以 阅读(1043) 评论(0) 推荐(0)
摘要:在阅读源代码的过程中,发现一个头文件有引用:/** The address of the first device table entry. */extern device_t devices[];/** The address after the last device table entry. ... 阅读全文
posted @ 2014-07-24 16:50 李可以 阅读(3262) 评论(0) 推荐(0)
摘要:在写一个服务器和客户端通信的程序中,服务器的动作为一直向客户端发数据。我发现当我终结客户端时,服务器也随之终结,真奇怪,我添加了很多打印语句,根本没有执行到那里就终结了。后来我想了一个方法,用gdb调试这个服务器端,然后我发现,原来是SIGPIPE信号搞得鬼。这篇文章介绍的不错:http://blo... 阅读全文
posted @ 2014-07-21 11:41 李可以 阅读(152) 评论(0) 推荐(0)
摘要:我对linux高端内存的错误理解都是从这篇文章得来的,这篇文章里讲的物理地址 = 逻辑地址 – 0xC0000000:这是内核地址空间的地址转换关系。这句话瞬间让我惊呆了,根据我的CPU的知识,开启分页之后,任何寻址都要经过mmu的转换,也就是一个二级查表的过程(386)难道内核很特殊,当mmu看到... 阅读全文
posted @ 2014-07-11 11:05 李可以 阅读(1728) 评论(0) 推荐(2)
摘要:关于条件变量这一节的知识几乎惹怒了我,不知道是原书就不好,还是翻译的不好,还是我笨的原因,总而言之就是看不懂。现在说一下我的理解:条件变量虽说是和某个谓词绑定,但是其实只是程序员的工作,并没有真正的绑定。使用条件变量的场景是,一个队列空了,我们要等待它不为空,虽然也不知道谁规定的,大家都用while... 阅读全文
posted @ 2014-04-17 11:16 李可以 阅读(383) 评论(1) 推荐(0)
摘要:在学习操作系统概念的时候,我直到互斥量的概念是简单的,就是为了保护临界区代码。让一次只有一个线程访问临界区代码。在学习《POSIX多线程程序设计》的时候看到了不变量,临界区和谓词的概念才有所感悟。所谓临界区代码,就是那些影响了共享数据的代码。“由于大部分程序员习惯于思考程序功能而非程序数据,所以你会... 阅读全文
posted @ 2014-04-17 10:55 李可以 阅读(2199) 评论(0) 推荐(0)
摘要:博客和笔记的区别:笔记大概可以写的随意一些,自己能看懂就好,而写博客就不一样了,写博客时会自觉的尝试把一个概念介绍清楚,这大概很锻炼人的语言组织能力,所以我想,技术人员确实应该多写点博客。起因:以前也进行过多线程编程,不过是在原来的代码的基础上,添加一点锁啊什么的,对多线程整个系统的知识了解的不多,... 阅读全文
posted @ 2014-04-17 10:38 李可以 阅读(313) 评论(0) 推荐(1)
摘要:1.前言在目前的工作中,我遇到这样的一个工作情景,可以认为我要开发一个库,这个库的有多个模块,每个模块的.c放到src中,.h放到include中,这应该是个标准做法。drwxr-xr-x. 2 root root 4096 Mar 25 14:12 includedrwxr-xr-x. 2 root root 4096 Mar 25 16:08 objdrwxr-xr-x. 8 root root 4096 Mar 25 12:12 programsdrwxr-xr-x. 2 root root 4096 Mar 25 14:12 src然后希望产生的目标文件放到obj目录下。因为我要对各个 阅读全文
posted @ 2014-03-25 16:26 李可以 阅读(370) 评论(0) 推荐(0)
摘要:按照惯例,我是应该先写一些本章的收获的,不过太晚了。在看完第三章之后开始编译,错误一堆,几乎崩溃,幸亏经过不断的百度,总算解决了问题,我发现我遇到问题比较多,算是集中七个龙珠了吧,感谢先行的大神们。1.CFLAGS was changed in "examples/scull/Makefile". Fix it to use EXTRA_CFLAGS. Stop. 由于LDD3使用的是2.6.10内核,很多东西已经发生了变化,这里提示我们修改Makefile中的CFLAGS,用EXTRA_CFLAGS代替,照它说的做就可以。2、提示找不到文件linux/config.h: 阅读全文
posted @ 2014-01-19 01:35 李可以 阅读(917) 评论(0) 推荐(0)
摘要:大概在中秋节的时候,好吧,远在中秋节之前。我看完操作系统的时候,准备看赵迥博士的《linux源代码完全注释》读着读着,大概读到文件系统吧,对文件系统有个清晰的了解了。然后我想做一个cpu模拟器。想做这个东西很久了,觉得自己也有一定的基础。就开始看《计算机组成设计:软硬件接口》看到逻辑电路的时候才感觉自己太软了,硬件什么的全忘完了。然后我想,反正只是逻辑上实现,又不要求什么性能,为什么不直接写呢?大概那个时候看了《linker and loader》但是越看越糊涂,越看越想搞一次大的,虚拟内存啊,中断啊,异常啊什么的都想搞上,结果没有搞成。但是从学习《linux源代码完全注释》和《linker 阅读全文
posted @ 2013-10-21 15:56 李可以 阅读(597) 评论(0) 推荐(0)
摘要:据说:BASH能调用linux的应用程序,这是其最大的优点,也是其最大的缺点。PERL那复杂的语法确实看得让人想吐。python很优美,但是据说对正则的支持不够,没有perl强大。总结一下学习到的内容,看看python强大在哪里吧。http://sebug.net/paper/python/ch04.html#s01一、基本概念: 1.1 字面常量 一个字面意义上的常量的例子是如同5、1.23、9.25e-3这样的数,或者如同'This is a string'、"It's a string!"这样的字符串。它们被称作字面意义上的,因为它们具备字面的 阅读全文
posted @ 2013-09-05 21:42 李可以 阅读(1339) 评论(0) 推荐(0)
摘要:一、定义 1. 正则文法《离散数学及其应用》一书中,对正则文法做了如下的描述。形如 A—>aB或A—>a,其中A,B是非终结符,a是终结符。正则文法之所一成为正则文法因为文法生成的语言是正则的。 2. 正则集合正则集合是这样的集合:从空集,空串,单字符串开始,以任意顺序通过链接、并和克莱因闭包运算形成的。 3. 克莱因定理一个集合是正则的,当且仅当它可由一个有限状态自动机识别。二、正则表达式 1. 纯文本区分大小写,可以包含空格和数字。 2. 特殊字符 特殊字符包含一下几个. * [ ] ^ $ { } \ + ? | ( ) 共十四个。不能在字符串中使用,要想使用,需要用转义字符 阅读全文
posted @ 2013-08-19 16:44 李可以 阅读(786) 评论(0) 推荐(0)