全部博文(573)
发布时间:2015-12-07 15:56:33
linux中的errno,你是否踩过它的坑? 之所以写这篇文章,是因为我踩过它的坑。背景是我在做一个项目时,其中有一部分是在QEMU中调用cephfs的接口,期间有个函数ceph_lstat(),明明返回了错误的值,但QEMU缺认为这个调用没用问题,当时我没有觉得这个函数本身有问题,所以一直在debug.........【阅读全文】
发布时间:2015-12-07 15:54:33
字节序——大端(Big Endian)和小端(Little Endian) 每次碰到这个问题都需要现查资料,脑子不够用啊,索性就把它的来龙去脉写下来,加深一下印象。1. 字节序问题的存在原因自计算机采用byte作为存储单位起,字节序就是一个有争议的话题。这是因为我们通.........【阅读全文】
发布时间:2015-12-07 15:51:29
通过sysrq打印linux内核信息 在linux系统下,我们可能会遇到系统某个命令hang住的情况,通常情况下,我们会查看/proc/pid/wchan文件,看看进程处于什么状况,然后进一步查看系统日志或者使用strace跟踪命令执行时的系统调用等等方法来分析问题。我们知道命令hang,一般问题都出在内核里, 如果.........【阅读全文】
发布时间:2015-12-07 15:50:18
linux内存管理之物理内存相关知识 Linux内核采用页式存储管理,进程的地址空间被划分成固定大小的“页面”(page),物理内存同样被分为与页面大小相同的“页帧“(page frame),由MMU在运行时将虚拟地址“映射”成某个物理内存页帧上的地址,MMU一般内嵌在CPU上。1 NUMA(No.........【阅读全文】
发布时间:2015-12-07 15:49:11
linux内存管理之内核对物理内存的描述 Linux将物理内存按固定大小的页面(一般为4K)划分内存,在内核初始化时,会建立一个全局struct page结构数组mem_map[ ]。如系统中有76G物理内存,则物理内存页面数为76*1024*1024k/4K= 19922944个页面,mem_map[ ]数组大小19922944,即为数组中每个元素和.........【阅读全文】