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

本书特色

[

  本书结合多年操作系统课程理论与实践教学经验,基于当前流行的开源操作系统ubuntu14.04lts (linux内核3.13.0)设计了一组操作系统课程实验。全书可分为两大部分,**部分是linux操作与应用编程,包括linux常用命令、c语言编程工具和典型的linux应用开发,如多进程、进程通信等,并提供一个基于开源的qt框架和mysql数据库的综合实训案例; 第二部分是linux内核编程,这一部分紧密结合操作系统课程的教学内容,包含进程管理、内存管理、设备驱动程序和虚拟文件系统等。实验安排循序渐进,每个实验都有相应的原理性内容作为铺垫。配套电子资源提供所有实验的源代码及其他相关资料,可从清华大学出版社网站下载。本书特点是实验环境新、内容结构层次分明、经典与前沿兼顾,并与理论教学内容相呼应。
  本书既可作为高等院校计算机、电子信息类等专业的操作系统实验课程教材,也可作为linux编程相关课程的教材。另外,致力于转向*新linux开源开发环境的读者也可以将其作为快速入门教程。

 

 

]

目录

第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.1terminal2.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 linux3.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**个makefile4.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 creator8.1.1qt简介8.1.2qt creator8.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安装mysql9.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_struct13.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内存结点node17.1.2内存结点zone 17.1.3物理页框page 17.2ia32的寻址机制17.2.1ia32的段机制17.2.2ia32的页面映射机制17.2.3ia32中的控制寄存器以及pae、pse17.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中进程的虚拟存储区域vma17.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: 认识命令行的相关实验实验2: 创建文本文件实验3: 查看文本文件实验4: 文本文件查找及统计实验5: 目录及文件基本操作实验6: 文件权限实验7: 管理用户和用户组实验8: 其他常见操作第3章从hello linux程序开始实验1: 简单程序开发实验2: 单步编译和多步编译实验3: 浏览gdb内置命令实验4: 利用gdb调试程序第4章利用makefile管理一个工程实验1: makefile与命令行编译的比较实验2: 编写makefile第5章linux系统中的时间实验1: 编程显示系统时间实验2: linux中的时间测量实验3: linux中的计时器第6章多进程程序开发实验1: 利用fork创建进程实验2: 连续调用多次fork函数实验3: 启动外部程序第7章进程间通信实验1: 管道通信实验2: 文件套接字通信实验3: 网络套接字通信第8章利用qt开发gui应用程序实验1: qt的安装与启动实验2: 创建qt gui项目实验3: 信号槽机制第9章mysql数据库实验1: mysql数据库操作实验2: mysql表操作实验3: 创建一个mysql数据库实验4: 用c语言访问mysql数据库第12章添加*简单的linux内核模块实验1: 添加*简单的内核模块kello实验2: 内核模块输出信息显示第13章基于proc的linux进程控制块信息读取实验1: 测试proc文件系统功能实验2: 创建显示系统进程信息的proc模块实验3: 显示linux进程控制块中更多的信息第14章posix多任务及同步机制实验1: linux进程创建实验2: posix线程创建实验3: posix线程互斥和参数传递实验4: 使用posix条件变量实现线程同步第15章用户态和内核态信号量实验1: 使用posix信号量实现线程同步实验2: 使用posix信号量实现进程同步实验3: 创建linux内核线程并使用内核信号量实现同步第16章基于共享内存的进程间通信实验1: 使用内存映射文件实现进程间通信实验2: 使用共享内存对象实现进程同步第17章linux内存管理实验1: 获取ia32段寄存器中的描述符实验2: 获取ia32中的全局段表信息实验3: 获取c程序中一个逻辑地址对应的物理地址实验4: 显示进程的虚拟内存地址空间分布信息实验5: 获取一个进程的虚拟存储区域信息第18章linux设备驱动程序实验1: 实现读取cmos实时时钟信息的驱动程序实验2: 实现一个基于内存映射的设备驱动程序第19章linux虚拟文件系统实验1: 访问linux内核虚拟文件系统实验2: 加载newproc文件系统  

封面

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

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

作者:房胜

页数:304

定价:¥39.5

出版社:清华大学出版社

出版日期:2015-08-01

ISBN:9787302405276

PDF电子书大小:97MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注