Linux Kernel
文章平均质量分 56
yylklshmyt20090217
Focus on Linux World
展开
-
抢占式内核(Preemptive Kernel)
在计算领域的抢占含义是由当前计算机系统暂时停止一个任务,切换到另一个更高优先级的任务,这个变化称为context switch, 在操作系统中会有一个抢占式的scheduler,专门控制这种抢占机制。另一方面,计算机有用户态和核态两种状态,核态执行的任务是一些与硬件或者操作系统内核打交道的重要任务,优先级较高,而用户态是执行一些应用程序相关的任务,优先级较低。部分的操作系统在执行核态任务的时候不原创 2009-06-22 10:55:00 · 1732 阅读 · 0 评论 -
Linux内存管理---slab 分配器剖析
良好的操作系统性能部分依赖于操作系统有效管理资源的能力。在过去,堆内存管理器是实际的规范,但是其性能会受到内存碎片和内存回收需求的影响。现在,Linux® 内核使用了源自于 Solaris 的一种方法,但是这种方法在嵌入式系统中已经使用了很长时间了,它是将内存作为对象按照大小进行分配。本文将探索 slab 分配器背后所采用的思想,并介绍这种方法提供的接口和用法。动态内存管理内存管理的目标是转载 2009-12-22 11:15:00 · 854 阅读 · 0 评论 -
Linux2.6中断下半部分的三种实现机制---软中断/tasklet/工作队列
软中断、tasklet和工作队列并不是Linux内核中一直存在的机制,而是由更早版本的内核中的“下半部”(bottom half)演变而来。下半部的机制实际上包括五种,但2.6版本的内核中,下半部和任务队列的函数都消失了,只剩下了前三者。本文重点在于介绍这三者之间的关系。(函数细节将不会在本文中出现,可以参考文献,点这里)(1)上半部和下半部的区别上半部指的是中断处理程序,下半部则指的是一转载 2009-12-10 21:56:00 · 2716 阅读 · 0 评论 -
linux下的GPIO驱动
编写驱动程序,首先要了解是什么类型的设备。linux下的设备分为三类,分别为:字符设备,块设备和网络设备。字符设备类型是根据是否以字符流为数据的交换方式,大部分设备都是字符设备,如键盘,串口等,块设备则是以块为单位进行管理的设备,如,磁盘。网络设备就是网卡等。其次要了解应用程序和驱动程序的区别,两者的主要区别分为以下三点:1入口函数的任务不相同,应用程序完成一个任务,驱动只完成初始化工作,转载 2009-12-10 22:11:00 · 1022 阅读 · 0 评论 -
Linux内存管理---内存分配函数的选择
内存分配函数的选择 如果你需要连续的物理页,就可以使用某个低级页分配器或者kmalloc()。这是内核中内存分配的常用方式,也是大多数情况下你自己应该使用的内存分配方式。传递给这些函数最常用的两个标志是GFP_AUTOMIC和GFP_KERNEL。GFP_AUTOMIC表示进行不睡眠的高优先级分配。这是中断程序和其他不能睡眠的代码段的需要。对于可以睡眠的代码,比如没有持自旋锁的进程上下文代原创 2009-12-22 10:57:00 · 941 阅读 · 0 评论 -
怎么在Linux中添加新的系统调用
系统调用是应用程式和操作系统内核之间的功能接口。其主要目的是使得用户能使用操作系统提供的有关设备管理、输入/输入系统、文件系统和进程控制、通信及存储管理等方面的功能,而不必了解系统程式的内部结构和有关硬件细节,从而起到减轻用户负担和保护系统及提高资源利用率的作用。 Linux操作系统作为免费软件的代表,他优良的性能使得他的应用日益广泛,不仅得到专业人士的肯定,而且商业化的应用也是如火如荼。在Li转载 2010-01-07 16:11:00 · 928 阅读 · 0 评论 -
Linux2.6中断下半部分的三种实现机制---工作队列
Linux 2.6内核使用了不少工作队列来处理任务,他在使用上和 tasklet最大的不同是工作队列的函数可以使用休眠,而tasklet的函数是不允许使用休眠的。工作队列的使用又分两种情况,一种是利用系统共享的工作队列来增加自己的工作,这种情况处理函数不能消耗过多时间,这样会影响共享队列中其他任务的处理;别的一种是创建自己的工作队列并添加工作。(一)利用系统共享的工作队列添加工作:第一步:声明转载 2009-12-10 21:51:00 · 1131 阅读 · 0 评论 -
Linux创始人Linus步入不惑之年
Linux创始人Linus2009年12月28日是Linux创始人Linus的40岁生日。19年前,在圣诞节后赫尔辛基商店开业的第一天,Linus冲向电脑商店,用圣诞节和生日礼金购买了他的第一台PC:一台DX33 80386计算机,4 Megs RAM,40 Megabyte硬盘,没有协同处理器。Linus之所以选择80386,而不是Amiga或苹果麦金塔电脑,最主要原因是他想要运行U转载 2010-01-19 13:52:00 · 1270 阅读 · 0 评论 -
临界区(critical region)
临界区(critical region)是这样一段代码,进入这段代码的进程必须完成,之后另一个进程才能进入。如果内核支持抢占,那么在应用同步机制时,确保进入临界区前禁止抢占,退出临界区时启动抢占。原创 2009-06-23 11:58:00 · 2601 阅读 · 0 评论 -
剖析Linux系统中硬链接与软链接的区别
首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。 链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接转载 2009-06-23 11:24:00 · 485 阅读 · 0 评论 -
微内核与单内核
操作系统内核可能是微内核,也可能是单内核(后者有时称之为宏内核Macrokernel)。按照类似封装的形式,这些术语定义如下: 一、微内核(Microkernel kernel)――在微内核中,大部分内核都作为单独的进程在特权状态下运行,他们通过消息传递进行通讯。在典型情况下,每个概念模块都有一个进程。因此,假如在设计中有一个系统调用模块,那么就必然有一个相应的进程来接收系统调用,并和能够执行系统原创 2009-06-22 11:30:00 · 659 阅读 · 0 评论 -
Anatomy of the Linux slab allocator
Anatomy of the Linux slab allocatorLearn how Linux manages memoryM. Tim Jones, Consultant Engineer, Emulex Corp.M. Tim Jones is an embedded software architect and the author of GNU/Linux原创 2009-12-22 11:23:00 · 1572 阅读 · 0 评论