
内核源码阅读笔记
文章平均质量分 60
Linux工程师
这个作者很懒,什么都没留下…
展开
-
linux的中断机制
1、中断的基本知识点每个cpu都有若干个中断向量,中断向量按照类型分类,可以分为:异常和中断。异常又可以分为故障和陷阱,它们的特点是不采用中断控制器,也不能被屏蔽;中断可分为:可屏蔽和不可屏蔽,由I/O设备引起的中断属于可屏蔽中断,cpu内部硬件引起的中断属于非屏蔽中断。2、外部可屏蔽中断以Intel x86平台为例,是采用2片8259A中断控制器来响应外部中断源。每一片控制8个中断源转载 2017-06-22 09:37:49 · 374 阅读 · 0 评论 -
内核源码--------page_address_init();
回到start_kernel,进入到函数page_address_init();定位到该函数void __init page_address_init(void){int i;for (i = 0; i {INIT_LIST_HEAD(&page_address_htable[i].lh);spin_lock_init(&page_address_htable[i].l原创 2017-06-15 10:43:52 · 784 阅读 · 0 评论 -
内核源码--------boot_cpu_init();
继续回到start_kernel,来到函数boot_cpu_init();定位到该函数static void __init boot_cpu_init(void){int cpu = smp_processor_id();/* Mark the boot cpu "present", "online" etc for SMP and UP case */set_cpu_onli原创 2017-06-15 10:26:13 · 2060 阅读 · 0 评论 -
内核源码--------debug_objects_early_init()
回到start_kernel,进入到debug_objects_early_init()void __init debug_objects_early_init(void){int i;for (i = 0; i raw_spin_lock_init(&obj_hash[i].lock);for (i = 0; i hlist_add_head(&obj原创 2017-06-14 16:04:31 · 1616 阅读 · 0 评论 -
内核源码--------smp_setup_processor_id()
回到start_kernel函数,进入到smp_setup_processor_id()中,void __init smp_setup_processor_id(void){int i;u32 mpidr = is_smp() ? read_cpuid_mpidr() & MPIDR_HWID_BITMASK : 0;u32 cpu = MPIDR_AFFINITY_LEVEL原创 2017-06-14 15:41:56 · 2172 阅读 · 0 评论 -
内核源码--------set_task_stack_end_magic(&init_task)
经过bootloader的引导作用,进入到内核的入口,进入start_kernel函数之后,set_task_stack_end_magic(&init_task)函数设置整个系统的第一个进程。其中,init_task这个变量是在init/init_task.c中,从函数struct task_struct init_task = INIT_TASK(init_task)可知,init_task这原创 2017-06-14 15:12:52 · 2796 阅读 · 0 评论 -
内核源码--------mm_init_cpumask(&init_mm);
回到start_kernel,来看函数mm_init_cpumask(&init_mm),从表面意思,可以猜出是初始化内存的,先看看init_mm这个变量是怎么来的?,定位到init_mmstruct mm_struct init_mm = {.mm_rb = RB_ROOT,.pgd = swapper_pg_dir,.mm_users = ATOMIC_INIT(2),原创 2017-06-15 10:54:48 · 1957 阅读 · 0 评论 -
linux知识梳理
学习linux有段时间了,其中涉及的知识点很多,将学习中记录下的知识整理下;1、Makefile相关知识,这是一个连载的文章,感觉很不错!参考链接:http://blog.youkuaiyun.com/haoel/article/details/28862、公司用的产品是基于openwrt开发的,要增加相应的软件包,参考链接:http://blog.youkuaiyun.com/sevenjoin/article转载 2017-07-17 17:18:18 · 242 阅读 · 0 评论