
Linux内核开发
文章平均质量分 51
jhluroom
这个作者很懒,什么都没留下…
展开
-
BootLoader与Linux内核的参数传递
在嵌入式系统中,BootLoader 是用来初始化硬件,加载内核,传递参数。因为嵌入式系统的硬件环境各不相同,所以嵌入式系统的BootLoader 也各不相同,其中比较通用的是U-Boot,它支持不同的体系结构,如ARM,PowerPC,X86,MIPS 等。本文着重介BootL转载 2011-10-17 19:52:13 · 432 阅读 · 0 评论 -
操作系统--虚拟内存、逻辑地址、线性地址、物理地址
逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相转载 2011-10-17 20:00:41 · 618 阅读 · 0 评论 -
linux共享内存
共享内存共享内存是进程间通信中最简单的方式之一。共享内存允许两个或更多进程访问同一块内存,就如同 malloc() 函数向不同进程返回了指向同一个物理内存区域的指针。当一个进程改变了这块地址中的内容的时候,其它进程都会察觉到这个更改。快速本地通信因为所有进程共享同一块内存,共享内存在各种进程间通信方式中具有最高的效率。访问共享内存区域和访问进程独有的内存区域一样快,并不需要通过系统转载 2011-11-03 09:25:02 · 645 阅读 · 0 评论 -
用户抢占发生的几种情况
用户抢占发生的几种情况: 1、从系统返回到用户空间2、从中段程序返回到用户空间转载 2011-10-17 20:09:53 · 543 阅读 · 0 评论 -
共享中断
Linux可以让多个设备共享一个中断号,而且共享同一中断的中断处理程序形成一个链表,内核对每个中断处理程序都要执行,那么,没有产生中断的设备本该靠边站的,它的中断处理程序也被执行了。 实际上:共享的处理程序与非共享的处理程序在注册和运行方式上比较相似,但差异主要有以下三处转载 2011-10-17 20:03:52 · 1239 阅读 · 0 评论 -
内核抢占会发生的几种情况
内核抢占会发生的几种情况: 1、中段程序返回,眀返回在内核空间之前2、内核代码再一次具有可抢占性的时候3、内核中的任务显示的调用schedule()函数4、内核中的任务阻塞转载 2011-10-17 20:10:38 · 646 阅读 · 0 评论 -
系统是如何将int 0x80中断 与 system_call 联系起来的?
因为我们把int 0x80中断时需要执行程序的地址设置为system_call.s的代码了. 在实地址模式下,中断的地址称为中断向量.而在保护模式下,则使用功能更强大的中断门(陷阱门)描述符的概念. 门描述符中除了包括"中断向量”的信息外,还包括一些属性信息。对于0.11转载 2011-10-17 20:16:09 · 1439 阅读 · 0 评论 -
信号量机制 优先级翻转 解决
1965年,荷兰学者Dijkstra提出了利用信号量机制解决进程同步问题,信号量正式成为有效的进程同步工具,现在信号量机制被广泛的用于单处理机和多处理机系统以及计算机网络中。信号量S是一个整数,S大于等于零时代表可供并发进程使用的资源实体数,但S小于零时则表示正在等待使用临界区的进程数。Dijkstra同时提出了对信号量操作的PV原语。P原语操作的动作是: (1)S减1;转载 2011-11-03 10:10:48 · 2239 阅读 · 0 评论 -
Linux操作系统内核中工作队列的操作
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn1. 前言工作队列(workqueu转载 2011-10-17 20:24:22 · 614 阅读 · 0 评论 -
Linux系统启动的标准流程
系统的启动是指从计算机加电到显示用户登陆提示的整个过程。我们将在这里对整个流程以及关系到的一些内容做讨论。过程主要可以分为两个阶段:载入内核和准备运行环境,我们分别进行讨论。本部分的讨论只基于i386硬件架构,但大部分内容是有共通性的。载入内核(将内核载入内存,并将控制权传递转载 2011-10-17 20:21:15 · 460 阅读 · 0 评论 -
为linux添加系统调用
也就是为linux增加一个api函数。 1: cd /usr/src/linux/kernel 2: vi sys.c 并添加如下一个函数: asmlinkage int sys_mycall(int num) { return num;} 3.转载 2011-10-17 20:05:07 · 493 阅读 · 0 评论 -
LINUX内核-等待队列
一、定义:/include/linux/wait.hstruct __wait_queue_head {spinlock_t lock;struct list_head task_list;};typedef struct __wait_queue_head wa转载 2011-10-17 19:53:45 · 478 阅读 · 0 评论 -
Linux内核中task_struct的中文介绍(2.4内核的)
1. 调度数据成员(1) volatile long states;表示进程的当前状态: TASK_RUNNING:正在运行或在就绪队列run-queue中准备运行的进程,实际参与进程调度。 TASK_INTERRUPTIBLE:处于等待队列中的进程,待资源有效时转载 2011-10-17 20:08:45 · 420 阅读 · 0 评论 -
如何在用户空间使用container_of宏
****************************************container_of(pointer,container_type,container_field);这个宏需要一个container_field字段的指针,该字段包含在container转载 2011-10-17 20:31:06 · 654 阅读 · 0 评论 -
使用 kexec 快速重启 Linux
即使您的工作不要求您每天多次重新启动您的 Linux 机器,等待系统启动也实在是一件枯燥的事情。因而有了 kexec。本质上讲,kexec 是一个让您可以重新启动到一个新 Linux 内核的快速重新引导功能部件 -- 不必通过引导装载程序。更快速的重新启动即使对于正常运行时间并不转载 2011-10-17 20:18:48 · 820 阅读 · 0 评论 -
linux下分配G级物理内存的方法-alloc_bootmem()
2.6.22.9的内核使用alloc_bootmem函数在内核代码 init/main.c文件中asmlinkage void __init start_kernel(void){ char * command_line; exte转载 2011-10-17 20:12:31 · 1388 阅读 · 0 评论