随笔分类 - linux kernel
1
摘要:(1)最近看的关于linux的部分主要是底层部分,linux对设备是如何访问,结果还是通过地址。机制差不错知道,下一步是阅读相关代码进一步理清内核,同时了解驱动的开发。 主要的疑问是对于高端内存映射,分了三部分vmalloc.kmap(持久内核映射)以及固定映射区,vmalloc主要是分配大内存用,
阅读全文
摘要:ethtool:http://www.ibm.com/developerworks/cn/linux/1304_wangjy_ethtools/网卡特性:http://blog.chinaunix.net/uid-13746440-id-4670342.html主要是各种offload
阅读全文
摘要:高性能服务器设计入门:http://www.kegel.com/c10k.html 一个人的汇总:http://dirlt.com/ linux kernel博客: http://blog.chinaunix.net/uid-20543183-id-1930784.html
阅读全文
摘要:http://www.ibm.com/developerworks/cn/linux/l-devmapper/http://baike.baidu.com/view/361916.htm?fr=aladdin
阅读全文
摘要:futex的实现:http://hi.baidu.com/_kouu/item/202d77dab2e866866cce3f67线程同步:http://hi.baidu.com/_kouu/item/2b9cac2385f64550c38d59d0定时器:http://hi.baidu.com/_k...
阅读全文
摘要:http://blog.csdn.net/flyingdon/article/details/5107346 kmallochttp://blog.csdn.net/gxfan/article/details/2723455 kmalloc vmalloc和kmap的区别以及下一篇关于内存布局htt...
阅读全文
摘要:COPY FROM:http://www.2cto.com/os/201204/127771.html1 Linux进程的睡眠和唤醒在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状 态标志位为TASK_RUNNING。一旦一个运行中的进程时间片用完, ...
阅读全文
摘要:COPY FROM:http://zhan.renren.com/qdlinux?gid=3602888498000980107&from=post&checked=true研究linux系统,不管是做驱动、协议栈还是进程调度等等,都离不开中断。这说明,要想编写正确的linux代码,不了解中断是不行...
阅读全文
摘要:tasklet是中断处理下半部分最常用的一种方法,驱动程序一般先申请中断,在中断处理函数内完成中断上半部分的工作后调用tasklet。tasklet有如下特点:1.tasklet只可以在一个CPU上同步地执行,不同的tasklet可以在不同地CPU上同步地执行。2.tasklet的实现是建立在两个软...
阅读全文
摘要:龙泉居士:http://hi.baidu.com/zeyu203/item/cc89cfc0f36bfecc994aa07c内核使用三种数据结构表示打开的文件(如图),他们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响每个进程在进程表中都有一个记录项,进程表项中包含有一张打开文件描...
阅读全文
摘要:http://www.baidu.com/p/cuiruikai?from=wenku 讲系统调用和linux内存管理http://blog.chinaunix.net/uid-14735472-id-2930265.htmlIBM developer linux文档SMP的:http://www-...
阅读全文
摘要:(一)--伙伴系统的概述Linux内核内存管理的一项重要工作就是如何在频繁申请释放内存的情况下,避免碎片的产生。Linux采用伙伴系统解决外部碎片的问题,采用slab解决内部碎片的问题,在这里我们先讨论外部碎片问题。避免外部碎片的方法有两种:一种是之前介绍过的利用非连续内存的分配;另外一种则是用一种...
阅读全文
摘要:Linux的伙伴算法把所有的空闲页面分为10个块组,每组中块的大小是2的幂次方个页面,例如,第0组中块的大小都为20(1个页面),第1组中块的大小为都为21(2个页面),第9组中块的大小都为29(512个页面)。也就是说,每一组中块的大小是相同的,且这同样大小的块形成一个链表。我们通过一个简单的例子...
阅读全文
摘要:http://blog.chinaunix.net/uid-2469966-id-2595309.html
阅读全文
摘要:1.分段机制80386的两种工作模式 80386的工作模式包括实地址模式和虚地址模式(保护模式)。Linux主要工作在保护模式下。分段机制 在保护模式下,80386虚地址空间可达16K个段,每段大小可变,最大达4GB。 从逻辑地址到线性地址的转换由80386分段机制管理。段寄存器CS、DS、ES、SS、FS或GS标识一个段。这些段寄存器作为段选择器,用来选择该段的描述符。分段逻辑地址到线性地址转换图图9_7 分段逻辑地址到线性地址转换图2. 分页机制分页机制的作用 分页机制是在段机制之后进行的,它进一步将线性地址转换为物理地址。 80386使用4K字节大小的页,且每页的起始地址都被4...
阅读全文
摘要:源:http://blog.csdn.net/f22jay/article/details/7925531Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。Linux内核地址映射模型x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存。段页式机制如下图。(看到这个图回想下实模式和保护模式以,内存分配算法【伙伴系统/内碎片和外碎片的算法】与GDT,LDT,页表的级数和线性空间
阅读全文
摘要:Linux进程通过一个task_struct结构体描述,在linux/sched.h中定义,通过理解该结构,可更清楚的理解linux进程模型。 包含进程所有信息的task_struct数据结构是比较庞大的,但是该数据结构本身并不复杂,我们将它的所有域按其功能可做如下划分:进程状态(State)进程调度信息(Scheduling Information)各种标识符(Identifiers)进程通信有关信息(IPC:Inter_Process Communication)时间和定时器信息(Times and Timers)进程链接信息(Links)文件系统信息(File System)虚拟内存信.
阅读全文
摘要:主要区别是,buffer cache缓存元信息,page cache缓存文件数据buffer 与 cache 是作为磁盘文件缓存(磁盘高速缓存disk cache)来使用,主要目的提高文件系统系性能。具体工作过程参见上一篇blog Linux 内核read工作过程.不同点是buffer以块为大小操作...
阅读全文
摘要:分区引导记录操作系统的引导过程的一个环节,系统启动时顺序 BIOS -> MBR -> DPT -> PBR-> 寻找根目录下 NTLDR(XP)/bootmgr(WIN7/Vista)/grldr(Grub)/btldr.mbr(BootLink) 等可用于引导的程序。 分区的PBR (Partition Boot Record)可以加载该分区的io.sys (dos / win9x) 或 ntldr(win2000 xp 2003) 或 bootmgr (vista / win2008 / win7) 。PBR (Partition Boot Record)PBR是
阅读全文
1

浙公网安备 33010602011771号