Linux内核
文章平均质量分 58
beswkwangbo
这个作者很懒,什么都没留下…
展开
-
linux 顶层Makefile执行的流程!!!(一)
1、make menuconfigVERSION = 2PATCHLEVEL = 6SUBLEVEL = 26EXTRAVERSION =NAME = Rotary Wombat# *DOCUMENTATION*# To see a list of typical targets execute "make help"# More info can be locat转载 2012-10-18 22:38:57 · 1212 阅读 · 0 评论 -
《Linux内核完全剖析-基于0.12内核》第四章的简单多任务内核Makefile的注释
赵炯老师的《Linux内核完全剖析-基于0.12内核》第四章的简单多任务内核,也就是不断输出AAAAABBBBB的那个最简单的内核示例,源码部分书中解释的很清楚了,但是如何编译组织文件就要看makefile。现在将其注释如下,如有不当之处,希望大家指教。# Makefile for the simple example kernel.#boot.s是用as86和ld86编译链接#hea原创 2013-05-20 19:58:46 · 1669 阅读 · 1 评论 -
深入浅出分析Linux设备驱动程序中断
一、前言 Linux的中断宏观分为两种:软中断和硬中断。声明一下,这里的软和硬的意思是指和软件相关以及和硬件相关,而不是软件实现的中断或硬件实现的中断。 软中断就是"信号机制"。软中不是软件中断。Linux通过信号来产生对进程的各种中断操作,我们现在知道的信号共有31个,其具体内容这里略过,感兴趣读者可参看相关参考文献[1]。一般来说,软中断是由内核机制的触发事件引起的(例如进程运行超时)转载 2012-11-12 22:35:35 · 669 阅读 · 0 评论 -
Linux内核代码之初始化内核临时页表
漫长而黑暗的史前时代终于到了setup。在setup汇编函数中,linux通过设置cr0寄存器的PE位(从实模式切换到保护模式)完成了史前文明到现代文明的转变。在setup时期,linux已经了解到世上可用的内存资源远远不止1MB。此时linux的欲望开始膨胀,最为满足它欲望的第一步,它开始抢占内存资源的前8MB。 初始化临时内核页表是在startup_32汇编语言函数中完成的。在ULK所述转载 2012-11-04 18:35:50 · 570 阅读 · 0 评论 -
Linux 内存管理系统:初始化
作者:Joe Knapka臭翻:colyli内存管理系统的初始化处理流程分为三个基本阶段:激活页内存管理 在swapper_pg_dir中初始化内核的页表 初始化一系列和内存管理相关的内核数据 Turning On Paging (i386)启动分页机制(i386)Kernel 代码被加载到物理地址0x100000(1MB),在分页机制打开后被重新映射到P转载 2012-11-04 16:32:33 · 594 阅读 · 0 评论 -
实例一——为自己的操作系统中加入中断(中断机制的实现)
转载地址(本文也是转载):http://blog.chinaunix.net/uid-15443744-id-2772595.html 在这个部分,我将为大家详细介绍SagaLinux_irq中是如何处理中断的。为了更好的演示软硬件交互实现中断机制的过程,我将在前期实现的SagaLinux上加入对一个新中断——定时中断——的支持。首先,让我介绍一下SagaLinux_irq中涉及中断转载 2012-11-04 09:16:48 · 1102 阅读 · 0 评论 -
实例二——从RTC设备学习中断(系统实时钟)
转载地址(本文也是转载):http://blog.chinaunix.net/uid-15443744-id-2772596.html 每台PC机都有一个实时钟(Real Time Clock)设备。在你关闭计算机电源的时候,由它维持系统的日期和时间信息。此外,它还可以用来产生周期信号,频率变化范围从2Hz到8192Hz——当然,频率必须是2的倍数。这样该设备就能被当作一个定时器转载 2012-11-04 09:18:25 · 1150 阅读 · 0 评论 -
Linux2.6内核进程调度核心代码分析
一.schedule()函数的尝试分析asmlinkage void __sched schedule(void){struct task_struct *prev, *next; unsigned long *switch_count; struct rq *rq; int cpu;need_resched: pre转载 2012-10-23 15:29:37 · 890 阅读 · 0 评论 -
linux 顶层Makefile执行的流程!!!(二)
ifeq ($(MAKECMDGOALS),) KBUILD_MODULES := 1endifexport KBUILD_MODULES KBUILD_BUILTIN #导出变量给子makeexport KBUILD_CHECKSRC KBUILD_SRC KBUILD_EXTMOD# Beautify output 格式化的回显控制# ---------转载 2012-10-18 22:40:11 · 1658 阅读 · 0 评论 -
linux 顶层Makefile执行的流程!!!(三)
###############真正执行动作!!!!!!####################PHONY += $(vmlinux-dirs) #伪目标$(vmlinux-dirs): prepare scripts$(Q)$(MAKE) $(build)=$@#(1)build=-f scripts/Makefile.build obj= 进行实际的编#等价于make -f转载 2012-10-18 22:42:17 · 1452 阅读 · 0 评论 -
gcc中的内嵌汇编语言(Intel i386平台)
gcc中的内嵌汇编语言(Intel i386平台) 一.声明 虽然Linux的核心代码大部分是用C语言编写的,但是不可避免的其中还是有一部分是用汇编语言写成的。有些汇编语言代码是直接写在汇 编源程序中的,特别是Linux的启动代码部分;还有一些则是利用gcc 的内嵌汇编语言嵌在C语言程序中的。这篇文章简单介绍了gcc中的内 嵌式汇编语言,主要想帮助那些才开始阅读Linux核心代码的转载 2013-11-05 20:35:35 · 1556 阅读 · 0 评论