操作系统实践--基于Linux的应用与内核编程

操作系统实践--基于Linux的应用与内核编程
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2015-08
版次: 1
ISBN: 9787302405276
定价: 39.50
装帧: 平装
开本: 16开
纸张: 胶版纸
53人买过
  • 第1章Linux概述

     

    1.1Linux的发展

     

    1.1.1Linux概念

     

    1.1.2Linux和UNIX的渊源

     

    1.1.3与Linux相关的协议和标准

     

    1.2Linux的内核架构

     

    1.2.1Linux操作系统结构

     

    1.2.2Linux内核体系结构

     

    1.2.3内核版本和获取

     

    1.2.4内核源代码目录结构

     

    1.3Linux的主要版本

     

    1.3.1Linux版本介绍

     

    1.3.2Ubuntu的首次使用

     

    1.4本章小结

     

    习题

     

    第2章Linux基本命令与应用

     

    2.1认识命令行

     

    2.1.1Terminal

     

    2.1.2命令用法初体验

     

    2.1.3其他虚拟终端

     

    2.1.4相关概念

     

    2.2使用文本文件

     

    2.2.1创建文本文件

     

    2.2.2查看文本文件内容

     

    2.2.3查找及统计

     

    2.3目录和文件

     

    2.3.1目录及文件的基本操作

     

    2.3.2文件权限

     

    2.4管理用户和用户组

     

    2.4.1相关配置文件

     

    2.4.2相关操作

     

    2.5其他常见命令

     

    2.5.1挂载和卸载设备

     

    2.5.2安装和卸载软件

     

    2.6本章小结

     

    习题

     

    练习

     

    第3章从Hello Linux程序开始

     

    3.1Hello Linux

     

    3.1.1hello_linux的诞生

     

    3.1.2Linux平台C语言编码风格

     

    3.1.3开发工具

     

    3.2gcc编译

     

    3.2.1单文件的编译

     

    3.2.2多个源文件的编译

     

    3.2.3其他介绍

     

    3.3gdb调试

     

    3.3.1gdb介绍

     

    3.3.2使用gdb调试C语言文件

     

    3.4本章小结

     

    习题

     

    练习

     

    第4章利用Makefile管理一个工程

     

    4.1第一个Makefile

     

    4.1.1利用make编译一个程序文件

     

    4.1.2利用make编译多个程序文件

     

    4.2Makefile的基本概念与规则

     

    4.2.1Makefile的基本概念

     

    4.2.2规则

     

    4.3本章小结

     

    习题

     

    练习

     

    第5章Linux系统中的时间

     

    5.1时间表示

     

    5.1.1Linux系统时间

     

    5.1.2Linux应用程序时间函数

     

    5.2利用程序显示系统时间

     

    5.2.1常用时间函数

     

    5.2.2高级时间函数

     

    5.3时间的测量与计时

     

    5.3.1时间测量

     

    5.3.2计时器

     

    5.4本章小结

     

    习题

     

    练习

     

    第6章多进程程序开发

     

     

    6.1进程概念

     

    6.2进程的创建

     

    6.3连续调用多次fork函数

     

    6.4启动外部程序

     

    6.5本章小结

     

    习题

     

    练习

     

    第7章进程间通信

     

    7.1概述

     

    7.2管道通信

     

    7.2.1管道概述

     

    7.2.2无名管道

     

    7.2.3命名管道

     

    7.3套接字通信

     

    7.3.1用文件套接字实现本地进程通信

     

    7.3.2用网络套接字实现网络进程通信

     

    7.4本章小结

     

    习题

     

    练习

     

    第8章利用Qt开发GUI应用程序

     

    8.1Qt及Qt Creator

     

    8.1.1Qt简介

     

    8.1.2Qt Creator

     

    8.1.3Qt的安装和启动

     

    8.1.4Qt Creator的界面组成

     

    8.2用Qt Creator完成一个GUI项目

     

    8.2.1创建Qt GUI项目

     

    8.2.2程序的运行

     

    8.3信号和槽

     

    8.3.1信号和槽的概念

     

    8.3.2用信号?槽机制响应GUI事件

     

    8.3.3关于信号?槽的进一步说明

     

    8.4Qt设计师

     

    8.4.1简介

     

    8.4.2Qt设计师的功能

     

    8.5本章小结

     

    习题

     

    练习

     

    第9章MySQL数据库

     

    9.1安装MySQL

     

    9.2MySQL的基本用法

     

    9.2.1MySQL管理

     

    9.2.2数据库操作

     

    9.2.3数据类型

     

    9.2.4表操作

     

    9.2.5创建一个数据库

     

    9.3使用C语言访问MySQL数据库

     

    9.3.1连接数据库

     

    9.3.2执行SQL语句

     

    9.3.3处理数据

     

    9.4本章小结

     

    习题

     

    练习

     

    第10章Linux综合应用

     

    10.1概述

     

    10.1.1系统需求

     

    10.1.2本章内容结构

     

    10.2原型设计

     

    10.2.1添加资源文件

     

    10.2.2界面设计

     

    10.2.3界面布局

     

    10.2.4添加动作

     

    10.3系统设计

     

    10.3.1系统架构

     

    10.3.2客户端功能设计

     

    10.3.3服务器功能设计

     

    10.4系统实现

     

    10.4.1数据结构(通信协议)

     

    10.4.2客户端实现

     

    10.4.3服务器端实现

     

    10.4.4几点说明

     

    10.5Linux应用综合实训

     

    10.6本章小结

     

    第11章构建Linux内核系统

     

    11.1概述

     

    11.2内核初始化

     

    11.3内核配置

     

    11.4内核构建

     

    11.5本章小结

     

    练习

     

    第12章添加最简单的Linux内核模块

     

    12.1用户态与内核态

     

    12.1.1C/C  应用程序的运行机制

     

    12.1.2Linux内核模块

     

    12.2添加最简单的Linux内核模块

     

    12.2.1LKM代码框架

     

    12.2.2LKM编译

     

    12.2.3kello.c的编译、添加和删除

     

    12.2.4LKM与C应用程序的差异

     

    12.3printk和某些常见宏

     

    12.3.1实时显示内核模块运行信息

     

    12.3.2显示位置信息

     

    12.4本章小结

     

    练习

     

    第13章基于proc的Linux进程控制块信息读取

     

    13.1proc伪文件系统

     

    13.1.1proc中的文件

     

    13.1.2proc中文件的内容

     

    13.1.3proc伪文件系统介绍

     

    13.2Linux中的进程控制块

     

    13.2.1Linux进程控制块task_struct

     

    13.2.2进程重要信息解读

     

    13.3通过proc读取Linux进程信息

     

    13.3.1创建proc文件

     

    13.3.2基于seq_file机制的proc文件操作

     

    13.3.3task_struct信息读取过程

     

    13.3.4tasklist内核模块编译和添加

     

    13.3.5tasklist内核模块工作流程

     

    13.4task_struct重要信息

     

    13.4.1Linux进程调度策略

     

    13.4.2进程优先级

     

    13.4.3进程控制块中的其他信息

     

    13.5向proc文件写入数据

     

    13.5.1用户空间和内核空间之间传递数据

     

    13.5.2内核空间内存分配

     

    13.5.3proc文件的写操作函数

     

    13.6本章小结

     

    习题

     

    练习

     

    第14章POSIX多任务及同步机制

     

    14.1fork创建进程

     

    14.1.1fork创建进程的流程

     

    14.1.2fork/exec创建进程的流程

     

    14.1.3fork进阶问题

     

    14.2POSIX线程机制

     

    14.2.1POSIX概述

     

    14.2.2POSIX线程创建

     

    14.3POSIX多线程及同步机制

     

    14.3.1多个线程的资源竞争访问

     

    14.3.2POSIX同步机制

     

    14.4条件变量与生产者?消费者问题

     

    14.4.1同步与互斥

     

    14.4.2POSIX条件变量

     

    14.4.3条件变量在生产者?消费者问题中的应用

     

    14.5本章小结

     

    习题

     

    练习

     

    第15章用户态和内核态信号量

     

    15.1信号量与同步问题

     

    15.1.1信号量概述

     

    15.1.2同步问题

     

    15.2POSIX信号量

     

    15.2.1无名信号量

     

    15.2.2有名信号量

     

    15.2.3POSIX信号量用于线程同步问题

     

    15.2.4POSIX信号量用于进程间同步

     

    15.2.5Linux中的信号量技术

     

    15.3内核信号量和内核线程

     

    15.3.1Linux内核信号量

     

    15.3.2Linux内核线程

     

    15.3.3内核信号量和线程的例子

     

    15.3.4Linux内核同步技术

     

    15.4本章小结

     

    习题

     

    练习

     

    第16章基于共享内存的进程间通信

     

    16.1共享内存

     

    16.2共享内存映射文件

     

    16.2.1单个进程的内存映射文件

     

    16.2.2多个进程间的内存映射文件的同步

     

    16.3POSIX共享内存对象

     

    16.4本章小结

     

    习题

     

    练习

     

    第17章Linux内存管理

     

    17.1Linux物理内存管理机制

     

    17.1.1内存结点node

     

    17.1.2内存结点zone 

     

    17.1.3物理页框page 

     

    17.2IA32的寻址机制

     

    17.2.1IA32的段机制

     

    17.2.2IA32的页面映射机制

     

    17.2.3IA32中的控制寄存器以及PAE、PSE

     

    17.3IA32结构上的Linux地址映射机制

     

    17.3.1Linux中段地址映射机制

     

    17.3.2IA32 Linux段地址映射实验

     

    17.3.3IA32 Linux页地址映射

     

    17.3.4IA32 Linux页地址映射实验

     

    17.4Linux进程地址空间

     

    17.4.1Linux中进程的虚拟地址空间

     

    17.4.2获取进程虚拟地址空间信息

     

    17.4.3Linux中进程的虚拟存储区域vma

     

    17.4.4获取进程的虚拟内存区域信息

     

    17.4.5Linux中进程、内存和文件的关系

     

    17.5本章小结

     

    习题

     

    练习

     

    第18章Linux设备驱动程序

     

    18.1概述

     

    18.1.1设备管理基本概念

     

    18.1.2Linux字符设备管理

     

    18.2字符设备CMOS驱动程序

     

    18.2.1CMOS RTC信息

     

    18.2.2获取CMOS RTC信息的驱动程序内核模块

     

    18.2.3CMOS RTC驱动程序内核模块测试

     

    18.3基于内存映射的杂项设备驱动程序

     

    18.3.1Linux中的杂项设备

     

    18.3.2设备驱动中的内存映射

     

    18.3.3基于内存映射的杂项设备驱动程序

     

    18.3.4测试

     

    18.4本章小结

     

    习题

     

    练习

     

    第19章Linux虚拟文件系统

     

    19.1概述

     

    19.1.1VFS在Linux中的作用

     

    19.1.2VFS支持的文件系统类型

     

    19.1.3VFS的基本数据结构

     

    19.2VFS对象的操作

     

    19.2.1注册文件系统

     

    19.2.2文件系统装载

     

    19.2.3与进程相关的文件系统数据结构

     

    19.2.4从当前进程访问Linux内核VFS文件系统

     

    19.3proc文件系统

     

    19.3.1主要数据结构

     

    19.3.2proc文件系统的操作

     

    19.4本章小结

     

    习题

     

    练习

     

    参考文献

     

     

     

     

     

     

    实验目录

     

     

     

    第2章Linux基本命令与应用

     

    实验1: 认识命令行的相关实验23

     

    实验2: 创建文本文件26

     

    实验3: 查看文本文件28

     

    实验4: 文本文件查找及统计29

     

    实验5: 目录及文件基本操作35

     

    实验6: 文件权限38

     

    实验7: 管理用户和用户组42

     

    实验8: 其他常见操作45

     

    第3章从Hello Linux程序开始

     

    实验1: 简单程序开发52

     

    实验2: 单步编译和多步编译57

     

    实验3: 浏览gdb内置命令59

     

    实验4: 利用gdb调试程序63

     

    第4章利用Makefile管理一个工程

     

    实验1: Makefile与命令行编译的比较68

     

    实验2: 编写Makefile72

     

    第5章Linux系统中的时间

     

    实验1: 编程显示系统时间79

     

    实验2: Linux中的时间测量79

     

    实验3: Linux中的计时器81

     

    第6章多进程程序开发

     

    实验1: 利用fork创建进程85

     

    实验2: 连续调用多次fork函数86

     

    实验3: 启动外部程序87

     

    第7章进程间通信

     

    实验1: 管道通信99

     

    实验2: 文件套接字通信103

     

    实验3: 网络套接字通信106

     

    第8章利用Qt开发GUI应用程序

     

    实验1: Qt的安装与启动112

     

    实验2: 创建Qt GUI项目115

     

    实验3: 信号?槽机制118

     

    第9章MySQL数据库

     

    实验1: MySQL数据库操作124

     

    实验2: MySQL表操作127

     

    实验3: 创建一个MySQL数据库129

     

    实验4: 用C语言访问MySQL数据库136

     

     

     

    第12章添加最简单的Linux内核模块

     

    实验1: 添加最简单的内核模块kello162

     

    实验2: 内核模块输出信息显示162

     

    第13章基于proc的Linux进程控制块信息读取

     

    实验1: 测试proc文件系统功能168

     

    实验2: 创建显示系统进程信息的proc模块179

     

    实验3: 显示Linux进程控制块中更多的信息182

     

    第14章POSIX多任务及同步机制

     

    实验1: Linux进程创建193

     

    实验2: POSIX线程创建198

     

    实验3: POSIX线程互斥和参数传递202

     

    实验4: 使用POSIX条件变量实现线程同步206

     

    第15章用户态和内核态信号量

     

    实验1: 使用POSIX信号量实现线程同步217

     

    实验2: 使用POSIX信号量实现进程同步223

     

    实验3: 创建Linux内核线程并使用内核信号量实现同步228

     

    第16章基于共享内存的进程间通信

     

    实验1: 使用内存映射文件实现进程间通信237

     

    实验2: 使用共享内存对象实现进程同步239

     

    第17章Linux内存管理

     

    实验1: 获取IA32段寄存器中的描述符254

     

    实验2: 获取IA32中的全局段表信息256

     

    实验3: 获取C程序中一个逻辑地址对应的物理地址263

     

    实验4: 显示进程的虚拟内存地址空间分布信息268

     

    实验5: 获取一个进程的虚拟存储区域信息272

     

    第18章Linux设备驱动程序

     

    实验1: 实现读取CMOS实时时钟信息的驱动程序286

     

    实验2: 实现一个基于内存映射的设备驱动程序289

     

    第19章Linux虚拟文件系统

     

    实验1: 访问Linux内核虚拟文件系统300

     

    实验2: 加载newproc文件系统303
  • 目录:
    第1章Linux概述

     

    1.1Linux的发展

     

    1.1.1Linux概念

     

    1.1.2Linux和UNIX的渊源

     

    1.1.3与Linux相关的协议和标准

     

    1.2Linux的内核架构

     

    1.2.1Linux操作系统结构

     

    1.2.2Linux内核体系结构

     

    1.2.3内核版本和获取

     

    1.2.4内核源代码目录结构

     

    1.3Linux的主要版本

     

    1.3.1Linux版本介绍

     

    1.3.2Ubuntu的首次使用

     

    1.4本章小结

     

    习题

     

    第2章Linux基本命令与应用

     

    2.1认识命令行

     

    2.1.1Terminal

     

    2.1.2命令用法初体验

     

    2.1.3其他虚拟终端

     

    2.1.4相关概念

     

    2.2使用文本文件

     

    2.2.1创建文本文件

     

    2.2.2查看文本文件内容

     

    2.2.3查找及统计

     

    2.3目录和文件

     

    2.3.1目录及文件的基本操作

     

    2.3.2文件权限

     

    2.4管理用户和用户组

     

    2.4.1相关配置文件

     

    2.4.2相关操作

     

    2.5其他常见命令

     

    2.5.1挂载和卸载设备

     

    2.5.2安装和卸载软件

     

    2.6本章小结

     

    习题

     

    练习

     

    第3章从Hello Linux程序开始

     

    3.1Hello Linux

     

    3.1.1hello_linux的诞生

     

    3.1.2Linux平台C语言编码风格

     

    3.1.3开发工具

     

    3.2gcc编译

     

    3.2.1单文件的编译

     

    3.2.2多个源文件的编译

     

    3.2.3其他介绍

     

    3.3gdb调试

     

    3.3.1gdb介绍

     

    3.3.2使用gdb调试C语言文件

     

    3.4本章小结

     

    习题

     

    练习

     

    第4章利用Makefile管理一个工程

     

    4.1第一个Makefile

     

    4.1.1利用make编译一个程序文件

     

    4.1.2利用make编译多个程序文件

     

    4.2Makefile的基本概念与规则

     

    4.2.1Makefile的基本概念

     

    4.2.2规则

     

    4.3本章小结

     

    习题

     

    练习

     

    第5章Linux系统中的时间

     

    5.1时间表示

     

    5.1.1Linux系统时间

     

    5.1.2Linux应用程序时间函数

     

    5.2利用程序显示系统时间

     

    5.2.1常用时间函数

     

    5.2.2高级时间函数

     

    5.3时间的测量与计时

     

    5.3.1时间测量

     

    5.3.2计时器

     

    5.4本章小结

     

    习题

     

    练习

     

    第6章多进程程序开发

     

     

    6.1进程概念

     

    6.2进程的创建

     

    6.3连续调用多次fork函数

     

    6.4启动外部程序

     

    6.5本章小结

     

    习题

     

    练习

     

    第7章进程间通信

     

    7.1概述

     

    7.2管道通信

     

    7.2.1管道概述

     

    7.2.2无名管道

     

    7.2.3命名管道

     

    7.3套接字通信

     

    7.3.1用文件套接字实现本地进程通信

     

    7.3.2用网络套接字实现网络进程通信

     

    7.4本章小结

     

    习题

     

    练习

     

    第8章利用Qt开发GUI应用程序

     

    8.1Qt及Qt Creator

     

    8.1.1Qt简介

     

    8.1.2Qt Creator

     

    8.1.3Qt的安装和启动

     

    8.1.4Qt Creator的界面组成

     

    8.2用Qt Creator完成一个GUI项目

     

    8.2.1创建Qt GUI项目

     

    8.2.2程序的运行

     

    8.3信号和槽

     

    8.3.1信号和槽的概念

     

    8.3.2用信号?槽机制响应GUI事件

     

    8.3.3关于信号?槽的进一步说明

     

    8.4Qt设计师

     

    8.4.1简介

     

    8.4.2Qt设计师的功能

     

    8.5本章小结

     

    习题

     

    练习

     

    第9章MySQL数据库

     

    9.1安装MySQL

     

    9.2MySQL的基本用法

     

    9.2.1MySQL管理

     

    9.2.2数据库操作

     

    9.2.3数据类型

     

    9.2.4表操作

     

    9.2.5创建一个数据库

     

    9.3使用C语言访问MySQL数据库

     

    9.3.1连接数据库

     

    9.3.2执行SQL语句

     

    9.3.3处理数据

     

    9.4本章小结

     

    习题

     

    练习

     

    第10章Linux综合应用

     

    10.1概述

     

    10.1.1系统需求

     

    10.1.2本章内容结构

     

    10.2原型设计

     

    10.2.1添加资源文件

     

    10.2.2界面设计

     

    10.2.3界面布局

     

    10.2.4添加动作

     

    10.3系统设计

     

    10.3.1系统架构

     

    10.3.2客户端功能设计

     

    10.3.3服务器功能设计

     

    10.4系统实现

     

    10.4.1数据结构(通信协议)

     

    10.4.2客户端实现

     

    10.4.3服务器端实现

     

    10.4.4几点说明

     

    10.5Linux应用综合实训

     

    10.6本章小结

     

    第11章构建Linux内核系统

     

    11.1概述

     

    11.2内核初始化

     

    11.3内核配置

     

    11.4内核构建

     

    11.5本章小结

     

    练习

     

    第12章添加最简单的Linux内核模块

     

    12.1用户态与内核态

     

    12.1.1C/C  应用程序的运行机制

     

    12.1.2Linux内核模块

     

    12.2添加最简单的Linux内核模块

     

    12.2.1LKM代码框架

     

    12.2.2LKM编译

     

    12.2.3kello.c的编译、添加和删除

     

    12.2.4LKM与C应用程序的差异

     

    12.3printk和某些常见宏

     

    12.3.1实时显示内核模块运行信息

     

    12.3.2显示位置信息

     

    12.4本章小结

     

    练习

     

    第13章基于proc的Linux进程控制块信息读取

     

    13.1proc伪文件系统

     

    13.1.1proc中的文件

     

    13.1.2proc中文件的内容

     

    13.1.3proc伪文件系统介绍

     

    13.2Linux中的进程控制块

     

    13.2.1Linux进程控制块task_struct

     

    13.2.2进程重要信息解读

     

    13.3通过proc读取Linux进程信息

     

    13.3.1创建proc文件

     

    13.3.2基于seq_file机制的proc文件操作

     

    13.3.3task_struct信息读取过程

     

    13.3.4tasklist内核模块编译和添加

     

    13.3.5tasklist内核模块工作流程

     

    13.4task_struct重要信息

     

    13.4.1Linux进程调度策略

     

    13.4.2进程优先级

     

    13.4.3进程控制块中的其他信息

     

    13.5向proc文件写入数据

     

    13.5.1用户空间和内核空间之间传递数据

     

    13.5.2内核空间内存分配

     

    13.5.3proc文件的写操作函数

     

    13.6本章小结

     

    习题

     

    练习

     

    第14章POSIX多任务及同步机制

     

    14.1fork创建进程

     

    14.1.1fork创建进程的流程

     

    14.1.2fork/exec创建进程的流程

     

    14.1.3fork进阶问题

     

    14.2POSIX线程机制

     

    14.2.1POSIX概述

     

    14.2.2POSIX线程创建

     

    14.3POSIX多线程及同步机制

     

    14.3.1多个线程的资源竞争访问

     

    14.3.2POSIX同步机制

     

    14.4条件变量与生产者?消费者问题

     

    14.4.1同步与互斥

     

    14.4.2POSIX条件变量

     

    14.4.3条件变量在生产者?消费者问题中的应用

     

    14.5本章小结

     

    习题

     

    练习

     

    第15章用户态和内核态信号量

     

    15.1信号量与同步问题

     

    15.1.1信号量概述

     

    15.1.2同步问题

     

    15.2POSIX信号量

     

    15.2.1无名信号量

     

    15.2.2有名信号量

     

    15.2.3POSIX信号量用于线程同步问题

     

    15.2.4POSIX信号量用于进程间同步

     

    15.2.5Linux中的信号量技术

     

    15.3内核信号量和内核线程

     

    15.3.1Linux内核信号量

     

    15.3.2Linux内核线程

     

    15.3.3内核信号量和线程的例子

     

    15.3.4Linux内核同步技术

     

    15.4本章小结

     

    习题

     

    练习

     

    第16章基于共享内存的进程间通信

     

    16.1共享内存

     

    16.2共享内存映射文件

     

    16.2.1单个进程的内存映射文件

     

    16.2.2多个进程间的内存映射文件的同步

     

    16.3POSIX共享内存对象

     

    16.4本章小结

     

    习题

     

    练习

     

    第17章Linux内存管理

     

    17.1Linux物理内存管理机制

     

    17.1.1内存结点node

     

    17.1.2内存结点zone 

     

    17.1.3物理页框page 

     

    17.2IA32的寻址机制

     

    17.2.1IA32的段机制

     

    17.2.2IA32的页面映射机制

     

    17.2.3IA32中的控制寄存器以及PAE、PSE

     

    17.3IA32结构上的Linux地址映射机制

     

    17.3.1Linux中段地址映射机制

     

    17.3.2IA32 Linux段地址映射实验

     

    17.3.3IA32 Linux页地址映射

     

    17.3.4IA32 Linux页地址映射实验

     

    17.4Linux进程地址空间

     

    17.4.1Linux中进程的虚拟地址空间

     

    17.4.2获取进程虚拟地址空间信息

     

    17.4.3Linux中进程的虚拟存储区域vma

     

    17.4.4获取进程的虚拟内存区域信息

     

    17.4.5Linux中进程、内存和文件的关系

     

    17.5本章小结

     

    习题

     

    练习

     

    第18章Linux设备驱动程序

     

    18.1概述

     

    18.1.1设备管理基本概念

     

    18.1.2Linux字符设备管理

     

    18.2字符设备CMOS驱动程序

     

    18.2.1CMOS RTC信息

     

    18.2.2获取CMOS RTC信息的驱动程序内核模块

     

    18.2.3CMOS RTC驱动程序内核模块测试

     

    18.3基于内存映射的杂项设备驱动程序

     

    18.3.1Linux中的杂项设备

     

    18.3.2设备驱动中的内存映射

     

    18.3.3基于内存映射的杂项设备驱动程序

     

    18.3.4测试

     

    18.4本章小结

     

    习题

     

    练习

     

    第19章Linux虚拟文件系统

     

    19.1概述

     

    19.1.1VFS在Linux中的作用

     

    19.1.2VFS支持的文件系统类型

     

    19.1.3VFS的基本数据结构

     

    19.2VFS对象的操作

     

    19.2.1注册文件系统

     

    19.2.2文件系统装载

     

    19.2.3与进程相关的文件系统数据结构

     

    19.2.4从当前进程访问Linux内核VFS文件系统

     

    19.3proc文件系统

     

    19.3.1主要数据结构

     

    19.3.2proc文件系统的操作

     

    19.4本章小结

     

    习题

     

    练习

     

    参考文献

     

     

     

     

     

     

    实验目录

     

     

     

    第2章Linux基本命令与应用

     

    实验1: 认识命令行的相关实验23

     

    实验2: 创建文本文件26

     

    实验3: 查看文本文件28

     

    实验4: 文本文件查找及统计29

     

    实验5: 目录及文件基本操作35

     

    实验6: 文件权限38

     

    实验7: 管理用户和用户组42

     

    实验8: 其他常见操作45

     

    第3章从Hello Linux程序开始

     

    实验1: 简单程序开发52

     

    实验2: 单步编译和多步编译57

     

    实验3: 浏览gdb内置命令59

     

    实验4: 利用gdb调试程序63

     

    第4章利用Makefile管理一个工程

     

    实验1: Makefile与命令行编译的比较68

     

    实验2: 编写Makefile72

     

    第5章Linux系统中的时间

     

    实验1: 编程显示系统时间79

     

    实验2: Linux中的时间测量79

     

    实验3: Linux中的计时器81

     

    第6章多进程程序开发

     

    实验1: 利用fork创建进程85

     

    实验2: 连续调用多次fork函数86

     

    实验3: 启动外部程序87

     

    第7章进程间通信

     

    实验1: 管道通信99

     

    实验2: 文件套接字通信103

     

    实验3: 网络套接字通信106

     

    第8章利用Qt开发GUI应用程序

     

    实验1: Qt的安装与启动112

     

    实验2: 创建Qt GUI项目115

     

    实验3: 信号?槽机制118

     

    第9章MySQL数据库

     

    实验1: MySQL数据库操作124

     

    实验2: MySQL表操作127

     

    实验3: 创建一个MySQL数据库129

     

    实验4: 用C语言访问MySQL数据库136

     

     

     

    第12章添加最简单的Linux内核模块

     

    实验1: 添加最简单的内核模块kello162

     

    实验2: 内核模块输出信息显示162

     

    第13章基于proc的Linux进程控制块信息读取

     

    实验1: 测试proc文件系统功能168

     

    实验2: 创建显示系统进程信息的proc模块179

     

    实验3: 显示Linux进程控制块中更多的信息182

     

    第14章POSIX多任务及同步机制

     

    实验1: Linux进程创建193

     

    实验2: POSIX线程创建198

     

    实验3: POSIX线程互斥和参数传递202

     

    实验4: 使用POSIX条件变量实现线程同步206

     

    第15章用户态和内核态信号量

     

    实验1: 使用POSIX信号量实现线程同步217

     

    实验2: 使用POSIX信号量实现进程同步223

     

    实验3: 创建Linux内核线程并使用内核信号量实现同步228

     

    第16章基于共享内存的进程间通信

     

    实验1: 使用内存映射文件实现进程间通信237

     

    实验2: 使用共享内存对象实现进程同步239

     

    第17章Linux内存管理

     

    实验1: 获取IA32段寄存器中的描述符254

     

    实验2: 获取IA32中的全局段表信息256

     

    实验3: 获取C程序中一个逻辑地址对应的物理地址263

     

    实验4: 显示进程的虚拟内存地址空间分布信息268

     

    实验5: 获取一个进程的虚拟存储区域信息272

     

    第18章Linux设备驱动程序

     

    实验1: 实现读取CMOS实时时钟信息的驱动程序286

     

    实验2: 实现一个基于内存映射的设备驱动程序289

     

    第19章Linux虚拟文件系统

     

    实验1: 访问Linux内核虚拟文件系统300

     

    实验2: 加载newproc文件系统303
查看详情
相关图书 / 更多
操作系统实践--基于Linux的应用与内核编程
操作系统分析与实践
张可佳
操作系统实践--基于Linux的应用与内核编程
操作系统原理及应用(第2版)(微课版)()
陈敏;许雪林;汤龙梅
操作系统实践--基于Linux的应用与内核编程
操作系统实验教程——Web服务器性能优化
鲁强
操作系统实践--基于Linux的应用与内核编程
操作系统实验教程(Windows+Linux)
袁宝华;李宁;顾玉宛;庄丽华;梁久祯
操作系统实践--基于Linux的应用与内核编程
操作系统原理及Linux内核分析(第3版)
李芳;刘晓春;李东海
操作系统实践--基于Linux的应用与内核编程
操作系统
罗宇
操作系统实践--基于Linux的应用与内核编程
操作系统原理 第2版
金海溶 周苏 主编
操作系统实践--基于Linux的应用与内核编程
操作系统概念(原书第10版)
[美]亚伯拉罕 西尔伯沙茨(美)彼得 贝尔 高尔文(美)格雷格 加涅
操作系统实践--基于Linux的应用与内核编程
操作系统原理
作者
操作系统实践--基于Linux的应用与内核编程
操作系统
常颖、常大俊、李依霖 编
操作系统实践--基于Linux的应用与内核编程
操作系统(2023年版) 全国高等教育自学考试指导委员会
全国高等教育自学考试指导委员会
操作系统实践--基于Linux的应用与内核编程
操作系统:原理与实现
陈海波