ChinaUnix.net
相关文章推荐:

linux 内核导读

3.3.2进程的软中断通信 本节我们编写一个实现软中断通信的程序,使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上发出的中断信号(即按Delete键),当父进程接收到这两个软中断中的某一个后,父进程用系统调用kill()向两个子进程分别发出数值为16和17的软中断信号,子进程获得对应软中断信号后执行相应动作然后终止,父进程调用wait()函数等待两个子进程终止后,输出一些信息,然后结束进程执行。 在此...

by 叮汀 - Linux文档专区 - 2009-07-23 11:01:33 阅读(603) 回复(0)

相关讨论

2.5 linux内核中的C语言 在这里我们并不讲解C语言的各种基础知识,而是针对linux内核中一些比较特殊的C语言用法做一些简单的说明。 首先,在linux内核中大量使用了inline函数,从功能上说,inline函数的使用与#define宏定义相似,但更有相对的独立性,也更安全。使用inline函数也有利于程序调试。如果编译时不加优化,则这些inline函数就是普通的、独立的函数。由于inline函数的大量使用,相当一部分的代码从.c文件移入.h文件中。...

by 叮汀 - Linux文档专区 - 2009-07-23 10:40:42 阅读(479) 回复(0)

专题三:使用 RPM 来管理软件包 RPM 软件包管理器(RPM)是开放打包系统,任何人都可以使用。它在 Red Hat linux,以及其它 linux 和 UNIX 系统上运行。Red Hat, Inc. 鼓励其它销售商在他们自己的产品上使用 RPM 技术。RPM 按照 GPL 条款被发行。 对于终端用户来说,RPM 简化了系统更新。安装、卸载、升级 RPM 软件包可以使用简短的命令就可完成。RPM 维护一个已安装软件包和它们的文件的数据库,因此,你可以在系统上使用功能强...

by gaowp - Linux文档专区 - 2007-07-07 19:23:30 阅读(491) 回复(0)

专题二:添加自己的系统调用 1、系统调用的一些基础知识 (1)基本概念 系统调用是操作系统为程序设计人员提供的接口服务,是进入系统空间的一种方法。使用系统调用可以充分利用计算机资源,使编写的程序更加灵活,功能更加强大。 不同的操作系统有各自的系统调用方法。如Windows API,便是Windows的系统调用。linux的系统调用与之不同在于linux内核代码完全公开,所以可以细致的分析其系统调用的机制。 (2)系统调用和普通函数的...

by gaowp - Linux文档专区 - 2007-07-07 19:21:35 阅读(551) 回复(0)

第八章:一些有用的技术专题 专题一:SHELL程序设计 shell是用户和linux操作系统之间的接口,它是命令语言、命令解释程序及程序设计语言的统称。用户在提示符下输入的命令都由shell先加以解释,然后再传给linux核心。Shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell程序设计语言支持函数、变量、数组和程序控制结构等。linux中有多种shell,如ash、bash、csh等,其中默认的是bash,因此这里我们就学习一下bash...

by gaowp - Linux文档专区 - 2007-07-07 19:19:31 阅读(649) 回复(0)

7.3.2 基于UDP协议的服务器/客户端程序 UDP网络程序采用的通信模型与TCP网络程序模型有很大的不同,具体见图7-4所示。 UDP服务器首先进行初始化操作:调用函数socket创建一个数据报类型的套接字,函数bind将这个套接字与服务器的公认地址绑定在一起。然后调用函数recvfrom接收UDP客户机的数据报。UDP客户机首先调用函数socket创建一个数据报套接字,然后调用函数sendto向服务器发送数据报。在结束通信后,客户机调用close关...

by gaowp - Linux文档专区 - 2007-07-07 19:17:26 阅读(563) 回复(0)

7.3 C语言编程实例 7.3.1 基于TCP协议的服务器/客户端程序 前面我们初步学习了数据流套接字编程的一些基础知识,下面我们来学习如何具体实现这一网络通信流程。首先我们看一下使用TCP协议进行网络通信的程序基本模型,如图7-3所示。 服务器首先进行初始化操作:调用函数socket创建一个套接字,函数bind将这个套接字与服务器的公认地址绑定在一起,函数listen将这个套接字换成倾听套接字,然后调用函数accept来等待客户机的请求...

by gaowp - Linux文档专区 - 2007-07-07 19:16:07 阅读(561) 回复(0)

6.3 C语言编程实例 下面我们通过编写一个具体实例,将上面我们所学的知识实践一遍,本例是一个虚拟字符设备。 6.3.1驱动源程序 #ifndef __KERNEL__ # define __KERNEL__ #endif #ifndef MODULE # define MODULE #endif #if CONFIG_MODVERSIONS == 1 #define MODVERSIONS #include #endif #include #include #include #include #include // 在内核模块中共享 #include // 一个模块 #include #inc...

by gaowp - Linux文档专区 - 2007-07-07 19:13:58 阅读(624) 回复(0)

第七章linux网络编程 7.1 基础理论知识 7.1.1 TCP/IP网络基础 在一个TCP/IP网络中,每台主机都分配有一个32位的IP地址,该地址可以唯一地标识主机。IP地址通常用“.”隔开的四个十进制数表示,称为点分十进制表示,如IP地址0x81124C15(16进制)通常写成129.18.76.21。 IP地址由两部分组成:网络(network)地址和主机(host)地址。网络地址由IP地址的高位组成,主机地址由低位组成,这两部分的大小取决于网络的类型。如一个B类地址(IP...

by gaowp - Linux文档专区 - 2007-07-07 19:11:32 阅读(582) 回复(0)

6.1.3 linux设备驱动程序 1、设备驱动程序概述 linux设备驱动程序是处理或操作硬件控制器的软件,被集成在内核中,是常驻内存的低级硬件处理程序的共享库,设备驱动程序就是对设备的抽象处理。linux允许设备驱动程序作为内核可加载模块实现,这样除了可以在系统启动是进行注册外,还可以在启动后进行加载注册。 设备驱动程序软件封装了如何控制这些设备的技术细节,并通过特定的接口导出一个规范的操作集合:内核使用规范的设备接...

by gaowp - Linux文档专区 - 2007-07-07 19:10:29 阅读(571) 回复(0)

第六章:linux设备管理 6.1 基础理论知识 外围设备是计算机系统中除CPU和内存外所有设备的总称。现代计算机系统都配有各种外围设备,如键盘、鼠标、显示器、硬盘、打印机、网卡等。外围设备一般分为三大类:存储设备、输入输出设备、网络设备。 (1)存储设备是计算机用来存储信息的设备,通常以块为单位传送信息,故也称为块设备,典型的块大小为512B或1024B。 (2)输入输出设备是无需缓冲直接读写的设备,通常以字符为单位传送...

by gaowp - Linux文档专区 - 2007-07-07 19:09:11 阅读(633) 回复(0)