
kernel
文章平均质量分 76
jemmy858585
这个作者很懒,什么都没留下…
展开
-
linux SMP 启动过程学习笔记
1. SMP硬件体系结构:对于SMP最简单可以理解为系统存在多个完全相同的CPU,所有CPU共享总线,拥有自己的寄存器。对于内存和外部设备访问,由于共享总线,所以是共享的。Linux操作系统多个CPU共享在系统空间上映射相同,是完全对等的。 由于系统中存在多个原创 2009-09-01 23:24:00 · 9472 阅读 · 0 评论 -
linux kernel 负载均衡总结
EXPORT_SYMBOL(schedule);EXPORT_SYMBOL(wake_up_process);EXPORT_SYMBOL(default_wake_function);EXPORT_SYMBOL(__wake_up);EXPORT_SYMBOL_GPL(__wake_up_locked);EXPORT_SYMBOL_GPL(__wake_up_l原创 2015-10-13 09:59:10 · 1739 阅读 · 2 评论 -
misc_register函数
<br />杂项设备(misc device)<br />杂项设备也是在嵌入式系统中用得比较多的一种设备驱动。在 Linux内核的include/linux目录下有Miscdevice.h文件,要把自己定义的miscdevice从设备定义在这里。其实是因为这些字符设备不符合预先确定的字符设备范畴,所有这些设备采用主编号10,一起归于miscdevice,其实misc_register就是用主标号10调用register_chrdev()的。<br />也就是说,misc设备其实也就是特殊转载 2010-11-21 16:33:00 · 2990 阅读 · 1 评论 -
linux bio学习总结
linux/block/blk-core.c定义void submit_bio(int rw, struct bio *bio)submit_bio调用generic_make_request(bio);加入到对应的请求队列。generic_make_request循环针对一个进行的所有bio调用__generic_make_request__generic原创 2015-02-25 13:59:44 · 10968 阅读 · 0 评论 -
linux cache buffer区别
/proc/meminfo中有统计buffer和cache,这两个具体代表什么含义,最近分析了一下内核代码,希望可以解释清楚。[root@rhevm ~]# cat /proc/meminfoMemTotal: 5845796 kBMemFree: 3648956 kBBuffers: 42812 kBCached:原创 2015-02-26 16:25:31 · 1732 阅读 · 0 评论 -
vfs读写流程梳理
vfs read,系统调用流程:在/fs/read_write.c中实现。SYSCALL_DEFINE3(read, unsigned int, fd, char __user *, buf, size_t, count){ struct file *file; ssize_t ret = -EBADF; int fput_needed; f原创 2015-02-26 13:45:45 · 6175 阅读 · 0 评论 -
屏障I/O处理
屏障IO的主要作用是禁止IO调度程序进行排序。主要的应用场景是日志文件系统,对于日志文件系统,需要确保日志首先真实的写入到存储中后,再进行实际修改文件系统的操作。屏蔽IO的接口。在提供bio的时候,增加REQ_FUA标签。对于屏蔽IO,主要分为几个阶段,屏蔽前冲刷,屏蔽,屏蔽后冲刷。blk_queue_bio函数处理:判断如果是有REQ_FUA标签,跳过io原创 2015-02-25 12:01:16 · 1354 阅读 · 0 评论 -
mlockall, munlockall
<br />NAMEmlockall, munlockall - lock/unlock the address space of a process (REALTIME) SYNOPSIS#include <sys/mman.h>int mlockall(int flags);int munlockall(void); DESCRIPTIONThe function mlockall() causes all of the pages mapped by the address转载 2010-09-02 22:38:00 · 1859 阅读 · 0 评论 -
e1000驱动学习总结
e1000.h : 驱动头文件 e1000_ethtool.c : ethtool接口e1000_hw.c e1000_hw.h : 和硬件(PCI)相关头文件和实现e1000_main.c : 主函数e1000_osdep.h : 寄存器操作e1000_param.c : proc接口参数 module_init(e1000_init_module);modu原创 2009-09-20 21:35:00 · 1764 阅读 · 0 评论 -
linux 内核开发环境搭建
1.安装git,msmtp,git-emailyum install git,msmtp,git-email2.下载内核源代码git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git3.配置gitgit-config --global user.name "Lid原创 2015-07-01 15:10:00 · 2580 阅读 · 0 评论