linux内核相关基础

一、任务管理

linux内核的3种调度方法简介如下:

@SCHED_OTHER  分时调度策略,进程的缺省类型,采用动态优先调度策略,选择进程的依据主要是根据进程googness值的大小,这种进程在运行时,可以被高goodness值的进程抢先;

@SCHED_FIFO  实时调度策略,先到先服务,遵守POSIX1.b标准的FIFO调度规则,它会一直运行,直到有一个进程因I/O阻塞,或者主动释放处理器,或者是处理器被另一个有跟高rt_priority的实时进程抢先;

@SCHED_RR  实时调度策略,时间片轮转,遵守POSIX1.b标准的RR(循环round-robin)调度规则,除了时间片有些不同外,与SCHED_FIFO类似。

二、内存管理

进程是运行于虚拟地址空间的一个程序,可以说,如何在linux系统下运行的程序都是进程。Linux系统中包括交互进程和批处理进程。交互进程是由Shell控制和运行的,既可以在前台运行,也可以在后台运行。批处理进程不属于某个终端,被提交到一个队列中以便顺序执行。大多数的进程都需要虚拟内存,虚拟内存技术不仅仅可以使用更多的内存,还提供了下面这些功能:

1.增加寻址空间

2.公平的物理内存分配

3.共享虚拟内存

4.进程的保护

三、文件系统

Linux的一个最重要的特点是它支持很多不同的文件系统,可以非常灵活地和许多其它操作系统共存。Linux的虚拟文件系统层允许同时安装许多不同的文件系统,使得对于它的文件的访问尽可能地快速和有效。

四、设备管理

Linux继承了UNIX的设备管理方法,一个基本特点就是它抽象了对设备的处理。所有的硬件设备都像常规文件一样看待:可以使用和操作文件相同的、标准的系统调用来打开、关闭和读写。系统的每一个设备都用一个设备特殊文件来代表。

在linux下,设备一般分为3种:字符设备,块设备,网络设备。

设备驱动是这样的一类软件:他们控制这设备的操作动作,并且提供了一个可用的程序接口,使其他程序能够与这个设备互动。设备驱动程序并不一定控制某个物理的硬件外部设备,比如/dev/null、/dev/random。这些设备与真实的硬件没有什么联系,它们只是从内核获取数据再传往应用程序的一种手段。设备驱动程序是内核的一部分,它完成以下的功能:

◎对设备进行初始化和释放;

◎把数据从内核传送到硬件和从硬件读取数据;

◎读取应用程序传送给设备文件的数据和回送应用程序请求的数据;

◎检测和处理设备出现的错误。

设备驱动程序有主设备号和次设备号之分。主设备号标识设备对应的驱动程序;次设备号由内核使用,用于确定设备文件所指的设备。

设备驱动程序是在内核空间运行的,而一般的应用程序则是在用户空间中运行的。

5.网络管理

Linux系统的一个主要特点是它的网络功能非常强大,使用4.3BSD(伯克利套件)模型。

你可能感兴趣的:(linux开发)