linux内核与设备驱动,第二章 Linux内核与设备驱动程序

2.1 Linux操作系统

Linux操作系统由系统的启动、进程调度、虚拟内存管理器、文件系统、设备驱动程序等多个组成

2.2Linux内核

设备驱动程序中使用的函数也用在内核上,并且影响着内核,因此离开内核就无法制作设备驱动程序。

2.2.1 Linux的历史

省略

2.2.2linux内核的功能

内核是有效管理系统资源的资源管理者

处理器管理     通过管理处理器,使得处理器满足操作系统的处理要求,使其有效分担和执行各个进程中必要的处理器功能

进程管理        进程是程序执行的最小单位,内核通过进程调度器负责进程的创建、撤销,并管理进程和外部环境的交互

内存管理        系统的内存是最核心的部分,。内存管理是决定系统性能的重要要素,提供虚拟地址空间的方式,使各个进程在独立的空间上执行任务。虚拟内存以管理为基础,结合存储器可提供大于实际物理内存的内存空间

文件系统管理   Linux内核利用虚拟文件系统(VFS),支持当前的大部分文件系统类型

设备的控制      应用程序必须通过硬件才能与用户交互,处PCU和内存外,应用程序必须得到硬件的支持才能够完成各种操作。设备驱动程序负责与硬件相关的各种操作,而设备驱动程序则是内核必须实现的功能之一

网络管理

2.2.3Linux内核的特点

特点归纳如下:

单一的(Monolithic)内核

非抢占型和抢占型(2.6内核)

虚拟内存系统

支持无MMU    2.6内核支持没有MMU(存储器管理单元)的系统

虚拟文件系统(VFS)         linux中可以使用ext2甚至日志文件系统jfs的多种文件系统,也可以处理在windows中运行的NTFS文件系统和DOS文件系统

利用模块扩展内核

内核线程

支持多线程

支持多处理器

强大的网络功能

GPL许可

2.2.4 内核源代码结构

省略

2.3设备驱动程序

2.3.1 向内核请求资源处理的方法

应用程序向内核发出资源处理请求的方法大致分为两大类。第一是系统调用方式,第二是利用文件输出输入方式使用设备驱动程序的方法

1.系统调用方式

所谓系统调用方式,指制定系统控制所需的调用规则后,利用软件中断服务功能,使内核执行应用程序发出的处理请求

2.文件形态的设备驱动程序

以文件输入输出函数控制硬件。向表示硬件的设备文件指定应用程序的输入输出,从而调用内核内部链接设备文件的设备驱动程序服务程序,处理完请求再把控制流交还给应用程序

2.3.2模块和设备文件

1.模块

模块——在内核被启动后运行的状态下即动态加载或清除设备驱动程序

只有模块方式才能支持连接在PCI、USB、PCMCIA上的设备PNP功能。只有带MMU的CPU才能支持模块方式,并且内核的版本要一致。

2.设备文件

普通文件的目的在于保存数据,而设备文件的目的在于提供系统或硬件的信息。此类设备文件上保存的信息包括3种类型,分别为设备类型信息和主设备号和次设备号。

应用程序以open()函数打开设备文件,内核在相应的设备文件上得到主设备号,并寻找相应设备号所处理的设备驱动程序。也有不存在设备文件的设备驱动程序,包括网络设备驱动程序。

2.3.3  设备驱动程序的类型

设备驱动程序处理各个硬件的方式与硬件的类型有关。

Linux中使用的设备驱动程序大体上包括字符结构、块结构和网络结构:

字符   控制长短不一致字符序列的设备驱动程序,应用程序直接呼叫的、没有缓存的设备驱动程序

块      通过一定大小的缓存处理数据的设备,由内核内部的文件系统进行管理,没有内部缓存的设备驱动程序

网络   与网络层连接的设备驱动程序

1.字符设备驱动程序

应用程序中使用open()、close()、read()、write()等文件处理函数,并且以普通文件方式处理设备文件,从而控制硬件。常见的文件结构为流(stream),与字符设备驱动程序连接的设备文件也是流。即利用文件节点指定设备文件的特定处理位置,并且可以读取设备的处理位置

2.块设备驱动程序

除了特殊情况(分区),应用程序中不直接使用块设备驱动程序。块设备驱动程序是支持文件系统的结构,以文件系统实现与应用策划给你写的连接

3.网络涉笔驱动程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值