发布时间:2013-04-12 10:24:25
保留的页框linux内核从第二个MB开始,第一个MB通常留给BIOS或者某些设备。下图是Linux2.6的前3MB,而在Linux2.4中只用了2MB,问题是2.6的代码多了。内核页表进程的线性地址空间分为0x00000000-0xbfffffff和0xc0000000-0xffffffff两部分,前面3GB空间是用户地址空间,后面1GB是内核地址空间。那.........【阅读全文】
发布时间:2013-04-12 10:22:48
AT&T与Intel汇编的区别在Linux内核中使用了AT&T格式的汇编指令而非Intel的格式,它们之间的区别1. common(1)Intel一般用大小字母,而AT&T一般用小写(2)寄存器:AT&T的寄存器要加%前缀,而Intel不需要。(3)立即数:AT&T的立即数要加前缀$,而Intel不需要。AT&T: pushl $4Intel:&nbs.........【阅读全文】
发布时间:2013-04-12 10:21:43
1. key word from c++inline –> __inline__asm –> __asm__这里在关键字前后加上"__"的原因是inline等c++的关键字不是c的关键字,为了避免冲突。2. attribute属性描述struct foo { char a; int x;}attribute__ ((packed));比如上述代码就是压缩struct的存储方式,如果没有压缩就是8.........【阅读全文】
发布时间:2013-04-12 10:20:39
Here is a good discussion about this topic: http://geekswithblogs.net/shahed/archive/2006/06/09/81268.aspxThe toilet example here.......【阅读全文】