-
2009-07-24
Thread supported in Kernel - [Linux Kernel]
最近QA报来的一个bug,引发了我对2.6.x linux线程实现的兴趣。以前一直以为pthread只是简单的利用clone() syscall来实现,2.4和2.6的kernel在这方面应该没有什么大改进。可稍微研究一下,才发现自己错了。
Linux 2.6.x kernel 加入了对POSIX标准线程的支持。而在应用层,有LinuxThread和NPTL两个不同的库,不过接口都一样,库名也都是pthread。 ... -
2009-07-23
Kernel boot order on ARM-Linux (转帖) - [Linux Kernel]
What runs first depends on what type of kernel you start running.
If you're using a compressed kernel (aka zImage), the startup code... -
MSN Space太慢,ucblog太技术。还是找个专业的地方搬个家。
-
2009-06-20
北极村、五大连池、长白山之行2 - [旅行]
D5 K7042,早上5:30到嫩江。出站打个小黑车,一人5块到客运站。跳上7点到五大连池风景区的大巴,4小时到。一路上风光无限,大农田,大森林尽收眼底。还碰上一次大堵车,前面的路烂,很多大车都陷了。1个多小时后才疏通。到五大连池便找了个做包车生意的司机,150元包玩一圈,门票据说还能找熟人便宜些。我们便上了车,去附近旅馆订了房间,到客运站买了第二天去哈尔滨的长途大巴。
其实五大连池没什么好玩,大多数人来是泡药泉的,俄罗斯人特别多。... -
2009-06-12
北极村、五大连池、长白山之行1 - [旅行]
虽然不是冬天,没有机会欣赏北国冰雪的盛景,但是我们还是决定趁着两人的无薪假,去祖国的最北端走一趟。
大体行程:上海飞哈尔滨,从哈尔滨火车到漠河县,包车去北极村。游完漠河一带,火车返回,中途倒车去五大连池。然后长途车去哈尔滨,转车到安图,再到长白山。最后返回长春,坐飞机回上海。
预算:两人7k
D1
春秋9C8859上午8:20,浦东机场飞哈尔滨太平机场。春秋的飞机真... -
出行之前,花了不少时间来plan;5.1出游的人多的恐怖,多少有些担心。还要出游一切都比较顺利。
5月2日,
早9:50分,从上海南站做上火车去上饶。一路上车开开停停,还从杭州,金华,绕了个圈到上饶。这种车坐的真是心痒痒,平时T车D车坐多了。下午16: 50分左右到达上饶新火车站(晚点50分钟,汗)。下车就奔售票处买回程票,傻了,啥票都没有。考虑就从玉山或者婺源回程好了。离新火车站2-3公里外有 个车站等去玉山的小巴,在车站上和一个当地人聊了聊,把玉山和去三清... -
2007-05-27
利用netlink统一外设异步事件传递 - [Linux Kernel]
开发板都会有很多外设异步事件,这里主要讨论由用户触发的事件。这些事件都一般需要通过kernel将事件路由到应用层,交有某个处理程序去处理,包括: 耳机(显示耳机图标,打开音频输出)、麦克风、AV/CVBS线、SD卡(挂载分区,可以由udev来做)、充电器插拔(显示充电状态),休眠按键等等。 它们的事件获取,包括ISR,操作外设代码都在各自的驱动内,如果由每个驱动都去导出这样的异步事件接收接口给应用层,应用程序需要开启多个线程去等待 (比较通用的kern... -
2007-04-08
Linux Kernel 内存分配方式 - [Linux Kernel]
这周BSP那边碰到一个蛮严重的issue:
循环放电影,v4l2 output driver的 dma_alloc很容易就失败,kernel panic,dump出当前buddy系统的状态。
初步分析是由于内存fragment导致没有足够大的连续内存分配给v4l output driver。开始debug
首先通过/proc/buddyinfo 在播放电影时候不间断的dump buddy状态,发现大块内存块:256K - 4MB block
减少的很迅速,1-... -
2006-12-19
ioctl 的原子性 - [Linux Kernel]
ioctl在linux系统中属于原子操作, 实际就是带锁的操作.
在写内核或驱动时,使用ioctl和应用层交互要比/proc来得安全的多.
以下是对ioctl原子性的代码分析:... -
2006-08-06
Linux Device Model (2.6) - [Linux Kernel]
很久没写技术了。最近在研究2.6kernel的新Device Model系统。
2.6和2.4最大的区别和进步可能要数新的Device Model-设备模型。
... -
2006-06-23
hack for large amounts of fd select - [Linux Kernel]
- Why hack
Because of the requirement. That want a client to create more connections as possible as ... -
2006-03-01
如何在kernel里发送RST包 - [Linux Kernel]
kernel里发送RST包比较麻烦,首先你需要构造一个skb就够(很害怕吧!呵呵),再次要填充skb->data。当然就是填充ip、tcp 头了。第一步,我们可以偷懒,用先前接收到的skb(RST肯定是在接收到SYN,或者主动异常中止链接,之前对方的包已收到)做为蓝本来构造RST的 skb,或者干脆就拿这个skb来用。在有netfilter的kernel里,最典范的代码应该在ipt_REJECT target中。以下摘录,并分析它:... -
2006-02-23
Makefile & virtual destruction - [C/C++]
找到个Makefile的HOWTO:
http://theory.uwinnipeg.ca/localfiles/infofiles/make/make_toc.html
今天写了个比较有复杂的Makefile。碰到的问题:... -
2006-02-23
is 'delete this' safe? - [C/C++]
最近碰到一个尴尬的事情,instances没人管,只能自己delete自己。
这里讨论了delete this语句。最后说明的使用场合很有用。
现在引入一个叫garbage的静态机制。来处理无用的instances,避免了delete this, 毕竟比较丑陋。
PROBLEM: Sharma Kunapalli
I know that "delete this" inside a membe... -
2006-02-23
C++ Tips when designing benchmark - [C/C++]
由于benchmark的抽象逻辑很简单,但复杂而且易变的部分在其底层的I/O解析部分。所以设计起来有点尴尬:太抽象,本身逻辑很清晰,但会加重下层逻辑的负担,换一个协议时,下层逻辑需要动的部分太多;减少抽象,逻辑上就比较模糊,比如抽象在I/O解析部分,则对于每一个协议都可以很快的实现,但是造成benchmark可能需要不停的适应新协议的变化,不够通用。以下时碰到的几个问题: 1)静态成员变量。 static修饰的成员变量,即静态成员。一般用来解决所有实例共享数据的问题,或者说所有类共有的属性、...
共1页 1







