linux内核系统调用扩展研究

linux内核系统调用扩展研究

ID:9846076

大小:764.76 KB

页数:6页

时间:2018-05-12

linux内核系统调用扩展研究_第1页
linux内核系统调用扩展研究_第2页
linux内核系统调用扩展研究_第3页
linux内核系统调用扩展研究_第4页
linux内核系统调用扩展研究_第5页
资源描述:

《linux内核系统调用扩展研究》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、2012-07-19#####L##in#u#x##内##核20系12统-0调7-用19扩##展##研#2#0#究1#2-07-19########张步忠1,金海平2(1.安庆师范学院计算机系,安徽安庆246011;2.安庆师范学院数学系,安徽安庆246011)摘要:系统调用是操作系统内核提供给用户使用内核服务的接口。Linux操作系统由于其自由开放性,用户可在原有基础上,添加新的系统调用,以便提供更多的服务。基于Linux2.4内核,文中研究了Linux操作系统系统调用的实现机制,并以基于数据库的文件系统功能扩展为例,说明系统调用扩展的实现

2、过程。关键词:Linux;系统调用;扩展中图分类号:TP316.8文献标识码:A文章编号:1673-629X(2007)05-0163-03ResearchofLinuxKernelSystemCallExpansionZHANGBu2zhong1,JINHai2ping2(1.DepartmentofComputer,AnqingTeachersCollege,Anqing246011,China;2.DepartmentofMathematics,AnqingTeachersCollege,Anqing246011,China)Abstr

3、act:Thesystemcallisauserinterface,whichtheoperatingsystemkernelprovidestousersusingkernelservice.BecauseofLinuxop2eratingsystemfreedomandopenness,usersmayexpandnew,specificapplicationsystemcallastheoriginalfoundation,whichcanprovidetousmoreservices.Inthispaper,basedonLinux2

4、.4kernel,realizationmechanismofLinuxsystemcallisintroduced.Acaseoffunctionexpansionoffilesystembasedondatabaseisusedtodemonstratetherealizationprocess.Keywords:Linux;systemcall;expansion系统调用现代计算机系统一般出于安全性和系统保护等方面的需要,划分出不同的操作权限。如Intelx86系列从硬件上划分了4个不同的操作等级:0级最高,可拥有所有的系统操作权限,3

5、级最低,操作是受约束的,特别是一些特权指令是不能运行的,想要运行运行这些指令也只有转到更高的权限级别。一些操作系统根据需要,如Unix操作系统[1]也划分了用户和内核两个不同的操作级别,将进程管理、内存管理、设备管理等关键性的核心功能放在内核级,shell接口、用户程序等放在用户级运行。并把两者放在不同的地址空间,用户和内核空间是不能直接通信和相互调用程序的,用户也不能直接访问硬件,从而防止了一部分低手段的用户程序侵害,提高了安全性。但是很多情况下,需要内核程序提供服务,如用户登录需要创建一个新的会话进程。为了既不破坏这种机制,又能让用户使用

6、内核控制的资源,操作系统提供了一种用户使用内核服务的机制,即系统调用。系统调用函数通常由用户进程在用户态下调用,内核通过system-call函数响应系统调用产生的软中断,在正确访问核心栈、系统调用开关表之后陷入到操作系统内核中进行处理。基于此,文中主要讨论了源代码开放的Linux环境下的系统调用实现机制,并针对基于数据库的文件系统的用户接口扩展的实际需要,介绍如何扩展内核系统调用。12Linux系统调用实现过程Linux操作系统采用类似Unix内核方式,把操作系统也分成系统状态和用户状态[2]。Linux下每个进程都有4GB的虚拟空间,但这

7、4GB的空间分成两部分:0~3GB部分称为用户空间,它是用户进程的私有空间;3~4GB成为内核空间,由2012-07-19#############2012-07所-有1进9程#及#内#核#共#享2#使0#用1#。2-07-19########()收稿日期:2006-08-12般以C形式的库函数给出。内核函数是Linux内核中设置了的一组用于实现各种系统功能子程序,并将它们提供给用户调用。在用户需要访问系统内核管理的资源时,用户进程将被挂起,接口函数将转到内核态,内核检验用户请求的合法性,尝试执行内核函数,并把结果反馈给用户进程,然后用户进程

8、重新启动。Linux中每个系统调用都有一个唯一的编号,称为系统调用号[3],这也是系统调用在入口地址表中位置的序号。在用户程序调用系统调用时,系统调用程序通过80H

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。