上海交通大学工程硕士学位论文 本文首先对视频监控系统的现状做了简单分析, 并介绍了本系统 中主要涉及到的相关技术,包括嵌入式技术、图像压缩技术、视频压 缩技术和移动数据通信技术。具备了一定的理论基础后,提出本系统 的总体设计方案,明确需要实现的目标功能。然后,围绕目标方案详 细介绍了具体实现方法,包括硬件总体结构、嵌入式 Linux的移植、 USB 摄像头驱动移植、Video4Linux 编程方法、网络传输模块的开发、 流媒体系统建立、WAP 程序的开发等。最后给出了在现网测试环境中 调测结果。 本系统通过嵌入式芯片实现静态图像及视频的采集、编码,并将 采集压缩编码后的数据传送到视频中心服务器, 在2G/3G 移动终端中 以 WAP 或流媒体客户端方式直接查看远程图像。 系统最大的特点是采 用了分布式架构的 C/S(采集端至视频中心服务器)和 B/S(WAP 服 务器至移动终端)结构便于系统的动态扩展;同时也借助了 WAP 技术 实现了传统视频监控的无线化。
上传时间: 2013-07-05
上传用户:cuibaigao
60年代初,国际上首次将B超诊断仪应用于临床诊断,40多年来B超诊断仪的发展极为迅速。随着数字信号处理及计算机技术的发展,目前国际上先进水平的超声诊断设备几乎每一个环节都包含着数字信号处理的内容,研制全数字化的超声诊断设备已成为发展趋势。 @@ 基于FPGA及嵌入式操作系统的全数字超声诊断系统具有技术含量高、便携的特点,可用数字硬件电路来实现数据量极其庞大的超声信息的实时处理。 @@ 本文从超声诊断原理入手,在对超声诊断系统中的几个关键技术进行分析的基础上,重点研究开发超声诊断系统中数字信号处理部分的两个核心算法。以FPGA芯片为载体,在Quartus Ⅱ平台中采用Verilog HDL语言进行编程并仿真验证,分别实现了数字FIR滤波器及CORDIC坐标变换两个模块的功能。另外,采用Verilog HDL语言对应用于图像显示模块的SPI接口进行了编程设计,编译下载至FPGA中,最终实现了与ARM A8的OMPG3530板之间高速串行数据的传输。 @@ 采用在单片FPGA芯片内实现数字式超声诊断部分核心算法并与高性能ARMA8处理器相配合的数字信号处理解决方案,具有高速度、高精度、高集成度、便携的特点,为全数字化便携超声诊断设备的研制打下了基础。 @@关键词:超声诊断系统;FPGA;数字FIR滤波器;CORDIC算法;SPI总线
上传时间: 2013-07-07
上传用户:hxy200501
随着电子技术的快速发展,各种电子设备对时间精度的要求日益提升。在卫星发射、导航、导弹控制、潜艇定位、各种观测、通信等方面,时钟同步技术都发挥着极其重要的作用,得到了广泛的推广。对于分布式采集系统来说,中心主站需要对来自于不同采集设备的采集数据进行汇总和分析,得到各个采集点对同一事件的采集时间差异,通过对该时间差异的分析,最终做出对事件的准确判断。如果分布式采集系统中的各个采集设备不具有统一的时钟基准,那么得到的各个采集时间差异就不能反映出实际情况,中心主站也无法准确地对事件进行分析和判断,甚至得出错误的结论。因此,时钟同步是分布式采集系统正常运作的必要前提。 目前国内外时钟同步领域常用的技术有GPS授时技术,锁相环技术和IRIG-B 码等。GPS授时技术虽然精度高,抗干扰性强,但是由于需要专用的GPS接收机,若单纯使用GPS 授时技术做时钟同步,就需要在每个采集点安装接收机,成本较高。锁相环是一种让输出信号在频率和相位上与输入参考信号同步的技术,输出信号的时钟准确度和稳定性直接依赖于输入参考信号。IRIG-B 码是一种信息量大,适合传输的时间码,但是由于其时间精度低,不适合应用于高精度时钟同步的系统。基于上述分析,本文结合这三种常用技术,提出了一种基于FPGA的分布式采集系统时钟同步控制技术。该技术既保留了GPS 授时的高精确度和高稳定性,又具备IRIG-B时间码易传输和低成本的特性,为分布式采集系统中的时钟同步提供了一种新的解决方案。 本文中的设计采用了Ublox公司的精确授时GPS芯片LEA-5T,通过对GPS芯片串行时间信息解码,获得准确的UTC时间,并实现了分布式采集系统中各个采集设备的精确时间打码。为了能够使整个分布式采集系统具有统一的高精度数据采集时钟,本论文采用了数模混合的锁相环技术,将GPS 接收芯片输出的高精度秒信号作为参考基准,生成了与秒信号高精度同步的100MHZ 高频时钟。本文在FPGA 中完成了IRIG-B 码的编码部分,将B 码的准时标志与GPS 秒信号同步,提高了IRIG-B 码的时间精度。在分布式采集系统中,IRIG-B时间码能直接通过串口或光纤将各个采集点时间与UTC时间统一,节约了各点布设GPS 接收机的高昂成本。最后,通过PC104总线对时钟同步控制卡进行了数据读取和测试,通过实验结果的分析,提出了改进方案。实验表明,改进后的时钟同步控制方案具有很高的时钟同步精度,对时钟同步技术有着重大的推进意义!
上传时间: 2013-08-05
上传用户:lz4v4
目前国内井下水泵电机多数采用传统的人工进行控制,即人工加继电器进行控制的方法。这种方法控制线路复杂,设备运行的自动化程度低,可靠性差,工人劳动强度大,应急能力差等缺点。针对当前国家对煤矿企业安全生产要求的不断提高和企业自身发展所遇到的实际问题,研制了基于ARM的煤矿井下水泵电机网络监控系统,不仅可以完成水位检测、轴温检测、流量检测、水泵起动、停止及其过程控制,而且还可以进行数据传输、处理等工作。它具有以下特点:水位实时在线检测与显示;水泵启动与停止控制;多台水泵实时“轮班工作制”;根据涌水量大小和用电“避峰就谷”原则,控制投入运行的水泵台数;与监控中心联网,实行集中控制。 本文所设计的监控系统由监控中心、监控终端和远程访问三部分组成,分别介绍了监控系统的硬件设计、电机保护算法设计、系统通讯网络的设计和监控系统软件的设计。 监控系统的硬件设计主要针对监控终端的硬件设计,它采用S3C440X作为监控终端的处理芯片。根据监测的主要参数如水泵电机电流、电压、水泵开停状态、电机温度、井底水仓水位、水泵出口流量的实际特点,通过ARM芯片的快速处理运算能力,实时计算出水泵的三相有功功率和无功功率、功率因数等参量,井底水仓的水位和水泵出水口的流量、水泵的三相电压和电流准确值。把处理运算的结果通过以太网传到监控中心进行存储、显示和打印,同时监控中心根据传上来的结果进行判断,然后根据判断的情况确定是否需要给监控终端发送控制命令。 电机保护算法设计方面,主要针对系统数据采集的特点,对相电流、相电压进行交流信号采样。对采样后的数据运用快速傅立叶变换(FFT)进行数值计算,获得了高精度的测量。 系统通讯网络的设计主要针对系统两层通讯网络的协议进行分析与设计。监控中心软件采用基于Basic的可视化的程序设计语言Visual Basic6.0进行开发。客户端利用计算机网络技术,使用B/S模式远程实现对系统运行数据的传输,以便可以查询实时数据和历史数据,实现资源共享。
上传时间: 2013-06-25
上传用户:q123321
近年来,嵌入式Internet远程测控系统已成为计算机控制领域一个重要组成部分,它将计算机网络、通信与自动控制技术相结合并成为新兴的研究热点。通过嵌入式Internet控制系统,用户只要在有网络接入的地方,就可以对与网络连接的任何现场设备进行远程测控。嵌入式系统可以根据应用进行软硬件的定制,特别适用于对成本、体积、功耗有严格要求的各种远程测控设备。该项技术的研究具有广阔的应用前景。 嵌入式Web远程监控不同于以往的C/S和B/S网络监控技术,它通常采用嵌入式系统作为Web服务器,使得系统的成本大大降低,且设备体积小巧,便于安装、易于维护,安全可靠,此技术自问世以来得到了业界的广泛关注,各式各样的解决方案和实现方式层出不穷。 本文提出了一种基于ARM的嵌入式网络控制系统。该系统以嵌入式Boa服务器作为远程信号的传输平台。首先对网络的系统结构和工作原理作了详细介绍,然后对嵌入式网络控制系统的实现作了深入的探讨和研究。 整个嵌入式网络控制系统主要划分为三个部分:嵌入式网络控制系统硬件设计;嵌入式网络控制器的软件设计;嵌入式网络控制系统Web服务器实现。系统选用主流的ARM微处理器LPC2210作为系统主控制器,并根据需要给出了具体的硬件电路设计,包括:存储器接口电路、网络接口电路、串行通信接口电路以及信号调理电路设计。鉴于μ Clinux对ARM技术的有力支持,且μ Clinux具有内核可裁减、网络功能强大、低成本、代码开放等特点,通过对μ Clinux的裁减、配置和编译,成功地将μ Clinux移植到LPC2210中。然后完成设备驱动开发、嵌入式网络控制系统Boa服务器的构建及系统应用开发。 该嵌入式网络控制系统融合监控网与信息网,实现了远程分布式测控和通讯。系统稳定性高、实时性好、性价比高,具有广泛的应用价值,适用于工业、交通、电力、能源等众多控制领域。
上传时间: 2013-04-24
上传用户:xc216
近年来,嵌入式Internet远程测控系统已成为计算机控制领域一个重要组成部分,它将计算机网络、通信与自动控制技术相结合并成为新兴的研究热点。通过嵌入式Internet控制系统,用户只要在有网络接入的地方,就可以对与网络连接的任何现场设备进行远程测控。嵌入式系统可以根据应用进行软硬件的定制,特别适用于对成本、体积、功耗有严格要求的各种远程测控设备。该项技术的研究具有广阔的应用前景。 嵌入式Web远程监控不同于以往的C/S和B/S网络监控技术,它通常采用嵌入式系统作为Web服务器,使得系统的成本大大降低,且设备体积小巧,便于安装、易于维护,安全可靠,此技术自问世以来得到了业界的广泛关注,各式各样的解决方案和实现方式层出不穷。 本文提出了一种基于ARM的嵌入式网络控制系统。该系统以嵌入式Boa服务器作为远程信号的传输平台。首先对网络的系统结构和工作原理作了详细介绍,然后对嵌入式网络控制系统的实现作了深入的探讨和研究。 整个嵌入式网络控制系统主要划分为三个部分:嵌入式网络控制系统硬件设计;嵌入式网络控制器的软件设计;嵌入式网络控制系统Web服务器实现。系统选用主流的ARM微处理器LPC2210作为系统主控制器,并根据需要给出了具体的硬件电路设计,包括:存储器接口电路、网络接口电路、串行通信接口电路以及信号调理电路设计。鉴于μ Clinux对ARM技术的有力支持,且μ Clinux具有内核可裁减、网络功能强大、低成本、代码开放等特点,通过对μ Clinux的裁减、配置和编译,成功地将μ Clinux移植到LPC2210中。然后完成设备驱动开发、嵌入式网络控制系统Boa服务器的构建及系统应用开发。 该嵌入式网络控制系统融合监控网与信息网,实现了远程分布式测控和通讯。系统稳定性高、实时性好、性价比高,具有广泛的应用价值,适用于工业、交通、电力、能源等众多控制领域。
上传时间: 2013-06-13
上传用户:牛津鞋
超声理论与技术的快速发展,使超声设备不断更新,超声检查已成为预测和评价疾病及其治疗结果不可缺少的重要方法。超声诊断技术不仅具有安全、方便、无损、廉价等优点,其优越性还在于它选用诊断参数的多样性及其在工程上实现的灵活性。 全数字B超诊断仪基于嵌入式ARM9+FPGA硬件平台、LINUX嵌入式操作系统,是一种新型的、操作方便的、技术含量高的机型。它具有现有黑白B超的基本功能,能够对超声回波数据进行灵活的处理,从而使操作更加方便,图象质量进一步提高,并为远程医疗、图像存储、拷贝等打下基础,是一种很有发展前景、未来市场的主打产品。全数字B型超声诊断仪的基本技术特点是用数字硬件电路来实现数据量极其庞大的超声信息的实时处理,它的实现主要倚重于FPGA技术。现在FPGA已经成为多种数字信号处理(DSP)应用的强有力解决方案。硬件和软件设计者可以利用可编程逻辑开发各种DSP应用解决方案。可编程解决方案可以更好地适应快速变化的标准、协议和性能需求。 本论文首先阐述了医疗仪器发展现状和嵌入式计算机体系结构及发展状况,提出了课题研究内容和目标。然后从B超诊断原理及全数字B超诊断仪设计入手深入分析了B型超声诊断仪的系统的硬件体系机构。对系统的总体框架和ARM模块设计做了描述后,接着分析了超声信号进行数字化处理的各个子模块、可编程逻辑器件的结构特点、编程原理、设计流程以及ARM处理模块和FPGA模块的主要通讯接口。接着,本论文介绍了基于ARM9硬件平台的LINUX嵌入式操作系统的移植和设备驱动的开发,详细描述了B型超声诊断仪的软件环境的架构及其设备驱动的详细设计。最后对整个系统的功能和特点进行了总结和展望。
上传时间: 2013-05-28
上传用户:sssnaxie
集中抄表系统是一个集现代化管理、计算机应用、现代通讯技术、自动控制、信息等多学科技术于一体,实现电力营销监控、电力营销管理、营业抄收、数据采集和网络连接等多种功能的一个完整的系统。 本文设计了基于GPRS与ARM技术的集抄系统,充分利用GPRS通信实时在线、按流量计费、高速传输的优点。本系统采用的是华为的GTM900-B模块,适用于小数据量传送的场合,用户无需实现PPP协议也可实现数据传输功能。基于GPRS与ARM的集中抄表系统包含三个主要的组成部分:基于.NET平台的系统管理中心(主站),基于GPRS的通信网络和基于ARM平台的终端系统。系统管理中心负责系统数据的采集、存储和分析等功能;终端系统实现远程用电设备的信息采集和控制;通信网络则在管理中心和终端系统间建立数据传输链路。基于GPRS与ARM的集中抄表系统丰富了以往系统原有的应用功能,提升了集中抄表系统的综合性能。 经过测试,本系统能够顺利的进行拨号,与主站进行正常的数据发送和接收,能正常的对电表数据进行采集和上位机管理命令下发,达到了预期的效果和设计要求。本系统已经在湖北石首,黄冈,黄石,十堰和湖南部分县、市有一定规模的应用。在石首地区复杂的供电环境下,20个台区所有电表的数据都能按时正确的收集到主站,终端也能正常响应主站下发的命令,实现设计的功能,证明了本系统运行稳定可靠,有利于配电网络运行的安全性和经济性管理,对加强用电管理和提高电网供电质量起到了积极的作用。
上传时间: 2013-06-29
上传用户:jing911003
随着电信数据传输对速率和带宽的要求变得越来越迫切,原有建成的网络是基于话音传输业务的网络,已不能适应当前的需求.而建设新的宽带网络需要相当大的投资且建设工期长,无法满足特定客户对高速数据传输的近期需求.反向复用技术是把一个单一的高速数据流在发送端拆散并放在两个或者多个低速数据链路上进行传输,在接收端再还原为高速数据流.该文提出一种基于FPGA的多路E1反向复用传输芯片的设计方案,使用四个E1构成高速数据的透明传输通道,支持E1线路间最大相对延迟64ms,通过链路容量调整机制,可以动态添加或删除某条E1链路,实现灵活、高效的利用现有网络实现视频、数据等高速数据的传输,能够节省带宽资源,降低成本,满足客户的需求.系统分为发送和接收两部分.发送电路实现四路E1的成帧操作,数据拆分采用线路循环与帧间插相结合的方法,A路插满一帧(30时隙)后,转入B路E1间插数据,依此类推,循环间插所有的数据.接收电路进行HDB3解码,帧同步定位(子帧同步和复帧同步),线路延迟判断,FIFO和SDRAM实现多路数据的对齐,最后按照约定的高速数据流的帧格式输出数据.整个数字电路采用Verilog硬件描述语言设计,通过前仿真和后仿真的验证.以30万门的FPGA器件作为硬件实现,经过综合和布线,特别是写约束和增量布线手动调整电路的布局,降低关键路径延时,最终满足设计要求.
上传时间: 2013-07-16
上传用户:asdkin
本书介绍Linux环境下的编程方法,内容包括Linux系统命令、 Shell脚本、编程语言(gawk、Perl)、系统内核、安全体系、X Window等,内容丰富、论述全面,涵盖了Linux系统的方方面面。本书附带光盘包括了RedHat Linux系统的最新版本,及安装方法,还包括本书的大量程序代码,极大地方便了读者,为使用和将要使用Linux系统的技术人员提供了较全面的参考。 目 录前言第一篇 Linux系统介绍第1章 Linux简介 …11.1 Linux 的起源 11.2 自由软件基金会的GNU计划 11.3 Linux 的发音 21.4 Linux 的特点 21.5 基本硬件要求 31.6 如何获得Linux 31.6.1 从网上下载Linux 31.6.2 从光盘获得Linux 31.7 涉及Linux 的Web 网址和新闻讨论组 61.8 Linux 的不足之处 7第2章 外壳及常用命令 82.1 登录和退出 82.2 Linux 系统的外壳 82.3 外壳的常用命令 92.3.1 更改帐号密码 92.3.2 联机帮助 92.3.3 远程登录 92.3.4 文件或目录处理 92.3.5 改变工作目录 102.3.6 复制文件 102.3.7 移动或更改文件、目录名称 102.3.8 建立新目录 102.3.9 删除目录 112.3.10 删除文件 112.3.11 列出当前所在的目录位置 112.3.12 查看文件内容 112.3.13 分页查看文件内容 112.3.14 查看目录所占磁盘容量 112.3.15 文件传输 112.3.16 文件权限的设定 122.3.17 检查自己所属的工作组名称 132.3.18 改变文件或目录工作组所有权 132.3.19 改变文件或目录的最后修改时间 132.3.20 文件的链接 132.3.21 文件中字符串的查寻 142.3.22 查寻文件或命令的路径 142.3.23 比较文件或目录的内容 142.3.24 文件打印输出 142.3.25 一般文件的打印 142.3.26 troff 文件的打印 142.3.27 打印机控制命令 142.3.28 进程控制 152.3.29 外壳变量 162.3.30 环境变量 162.3.31 别名 162.3.32 历史命令 172.3.33 文件的压缩 172.3.34 管道命令的使用 172.3.35 输入/输出控制 182.3.36 查看系统中的用户 182.3.37 改变用户名 182.3.38 查看用户名 182.3.39 查看当前系统上所有工作站 的用户 192.3.40 与某工作站上的用户交谈 192.3.41 检查远程系统是否正常 192.3.42 电子邮件的使用简介 19第3章 Linux系统的网络功能 213.1 Linux支持的网络协议 213.1.1 TCP/IP 213.1.2 TCP/IP 版本 6 213.1.3 IPX/SPX 213.1.4 AppleTalk 协议集 213.1.5 广域网 223.1.6 ISDN 223.1.7 PPP、SLIP及PLIP 223.1.8 业余无线电 223.1.9 ATM 223.2 Linux系统下的文件共享和打印共享 223.2.1 Machintosh 环境 223.2.2 Windows 环境 223.2.3 Novell 环境 233.2.4 UNIX 环境 233.3 Linux系统中的Internet/Intranet功能 233.3.1 邮件 233.3.2 Web 服务器 243.3.3 Web 浏览器 243.3.4 FTP 服务器和客户机 243.3.5 新闻服务 243.3.6 域名系统 243.3.7 DHCP和 bootp 243.3.8 NIS 243.4 Linux系统下应用程序的远程执行 243.4.1 Telnet 253.4.2 远程命令 253.4.3 X Window 253.5 Linux系统的网络互连功能 253.5.1 路由器 253.5.2 网桥 253.5.3 IP伪装 253.5.4 IP统计 263.5.5 IP 别名 263.5.6 流量限制器 263.5.7 防火墙 263.5.8 端口下传 263.5.9 负载平衡 263.5.10 EQL 273.5.11 代理服务器 273.5.12 按需拨号 273.5.13 管道、移动IP和虚拟个人网络 273.6 Linux系统中的网络管理 273.6.1 Linux系统下的网络管理应用程序 273.6.2 SNMP 283.7 企业级Linux网络 283.7.1 高可用性 283.7.2 RAID 283.7.3 冗余网络 28第4章 Linux系统管理简介 294.1 root 帐号 294.2 启动和关闭系统 294.2.1 从软盘启动 294.2.2 使用LILO 启动 294.2.3 关闭Linux系统 304.3 挂接文件系统 304.3.1 挂接软盘 304.3.2 创建新的文件系统 304.3.3 卸载文件系统 314.4 检查文件系统 314.5 使用文件作为交换区 314.6 系统和文件的备份 324.7 设置系统 334.7.1 设置系统名 334.7.2 使用维护磁盘 334.7.3 重新设置root 帐号口令 334.7.4 设置登录信息 33第二篇 Linux高级语言及管理编程第5章 外壳编程 355.1 创建和运行外壳程序 355.1.1 创建外壳程序 355.1.2 运行外壳程序 355.2 使用外壳变量 365.2.1 给变量赋值 365.2.2 读取变量的值 375.2.3 位置变量和其他系统变量 375.2.4 引号的作用 375.3 数值运算命令 385.4 条件表达式 405.4.1 if 表达式 405.4.2 case 表达式 415.5 循环语句 425.5.1 for 语句 435.5.2 while 语句 435.5.3 until 语句 445.6 shift 命令 445.7 select 语句 455.8 repeat 语句 465.9 子函数 46第6章 gawk语言编程 486.1 gawk的主要功能 486.2 如何执行gawk程序 486.3 文件、记录和字段 486.4 模式和动作 496.5 比较运算和数值运算 506.6 内部函数 506.6.1 随机数和数学函数 516.6.2 字符串的内部函数 516.6.3 输入输出的内部函数 526.7 字符串和数字 526.8 格式化输出 526.9 改变字段分隔符 546.10 元字符 546.11 调用gawk程序 556.12 BEGIN和END 556.13 变量 566.14 内置变量 566.15 控制结构 576.15.1 if 表达式 576.15.2 while 循环 576.15.3 for 循环 586.15.4 next 和 exit 586.16 数组 586.17 用户自定义函数 586.18 几个实例 59第7章 Perl语言编程 607.1 什么是Perl 607.2 Perl的现状 607.3 初试Perl 607.4 Perl变量 607.4.1 标量 607.4.2 数组 637.4.3 相关数组 657.5 文件句柄和文件操作 657.6 循环结构 667.6.1 foreach循环 667.6.2 判断运算 667.6.3 for循环 677.6.4 while 和 until循环 677.7 条件结构 677.8 字符匹配 687.9 替换和翻译 697.9.1 替换 697.9.2 翻译 707.10 子过程 707.10.1 子过程的定义 707.10.2 参数 707.10.3 返回值 707.11 Perl程序的完整例子 71第三篇 Linux系统内核分析第8章 Linux内核简介 738.1 系统初始化 738.2 系统运行 738.3 内核提供的各种系统调用 748.3.1 进程的基本概念和系统 的基本数据结构 748.3.2 创建和撤消进程 748.3.3 执行程序 748.4 存取文件系统 75第9章 系统进程 769.1 什么是进程 769.2 进程的结构 769.3 进程调度 789.4 进程使用的文件 799.5 进程使用的虚拟内存 809.6 创建进程 819.7 进程的时间和计时器 819.7.1 实时时钟 819.7.2 虚拟时钟 819.7.3 形象时钟 819.8 程序的执行 829.8.1 ELF文件 829.8.2 脚本文件 82第10章 内存管理 8310.1 内存管理的作用 8310.2 虚拟内存的抽象模型 8310.3 按需装入页面 8410.4 交换 8510.5 共享虚拟内存 8510.6 存取控制 8510.7 高速缓存 8610.7.1 缓冲区高速缓存 8610.7.2 页面高速缓存 8610.7.3 交换高速缓存 8610.7.4 硬件高速缓存 8610.8 系统页面表 8610.9 页面的分配和释放 8710.9.1 页面的分配 8810.9.2 页面的释放 8810.10 内存映射 8810.11 请求调页 8910.12 页面高速缓存 8910.13 内核交换守护进程 90第11章 进程间通信 9111.1 信号机制 9111.2 管道机制 9211.3 System V IPC 机制 9311.3.1 信息队列 9311.3.2 信号量 9411.3.3 共享内存 96第12章 PCI 9812.1 PCI 系统 9812.2 PCI地址空间 9812.3 PCI设置头 9912.4 PCI I/O 和 PCI 内存地址 10012.5 PCI-ISA桥 10012.6 PCI-PCI 桥 10012.7 PCI初始化 10112.7.1 Linux系统内核有关PCI的 数据结构 10112.7.2 PCI 设备驱动程序 10212.7.3 PCI BIOS 函数 10512.7.4 PCI Fixup 105第13章 中断和中断处理 10613.1 中断 10613.2 可编程中断控制器 10613.3 初始化中断处理的数据结构 10713.4 中断处理 108第14章 设备驱动程序 10914.1 硬件设备的管理 10914.2 轮询和中断 11014.3 直接内存存取 11014.4 内存 11114.5 设备驱动程序和内核之间的接口 11114.5.1 字符设备 11214.5.2 块设备 11314.6 硬盘 11314.6.1 IDE 硬盘 11514.6.2 初始化IDE 硬盘子系统 11514.6.3 SCSI 硬盘 11514.6.4 初始化 SCSI 磁盘子系统 11614.6.5 传递块设备请求 11814.7 网络设备 11814.7.1 网络设备文件名 11814.7.2 总线信息 11814.7.3 网络接口标记 11914.7.4 协议信息 11914.7.5 初始化网络设备 119第15章 文件系统 12115.1 Linux文件系统概述 12115.2 ext2文件系统 12215.2.1 ext2的索引节点 12215.2.2 ext2超级块 12415.2.3 ext2 数据块组描述符 12415.2.4 ext2 中的目录 12515.2.5 在ext2 文件系统中查找文件 12515.2.6 改变ext2 文件系统中文件 的大小 12615.3 VFS 12715.3.1 VFS 超级块 12815.3.2 VFS 索引节点 12915.3.3 登记文件系统 12915.3.4 挂接文件系统 13015.3.5 在VFS中查找文件 13115.3.6 撤消文件系统 13115.3.7 VFS 索引节点缓存 13215.3.8 VFS目录缓存 13215.4 缓冲区缓存 13315.5 /proc 文件系统 135第16章 网络系统 13616.1 TCP/IP 网络简介 13616.2 TCP/IP网络的分层 13716.3 BSD 套接口 13816.4 INET套接口层 14016.4.1 创建BSD 套接口 14116.4.2 给INET BSD 套接口指定地址 14116.4.3 在INET BSD套接口上创建连接 14216.4.4 监听INET BSD 套接口 14216.4.5 接收连接请求 14316.5 IP 层 14316.5.1 套接口缓冲区 14316.5.2 接收IP数据包 14416.5.3 发送IP数据包 14416.5.4 数据碎片 14416.6 地址解析协议 145第17章 系统内核机制 14717.1 Bottom Half处理 14717.2 任务队列 14817.3 计时器 14917.4 等待队列 14917.5 信号量 150第四篇 Linux系统高级编程第18章 Linux内核模块编程 15118.1 一个简单程序Hello World 15118.2 设备文件 15218.3 /proc文件系统 15618.4 使用/proc输入 15818.5 与设备文件通信 16218.6 启动参数 16918.7 系统调用 17018.8 阻塞进程 17218.9 替换printk 17718.10 调度任务 178第19章 有关进程通信的编程 18119.1 进程间通信简介 18119.2 半双工UNIX管道 18119.2.1 基本概念 18119.2.2 使用C语言创建管道 18219.2.3 创建管道的简单方法 18519.2.4 使用管道的自动操作 18719.2.5 使用半双工管道时的注意事项 18819.3 命名管道 18819.3.1 基本概念 18819.3.2 创建FIFO 18819.3.3 FIFO操作 18919.3.4 FIFO的阻塞 19019.3.5 SIGPIPE信号 19019.4 System V IPC 19019.4.1 基本概念 19019.4.2 消息队列基本概念 19119.4.3 系统调用msgget() 19419.4.4 系统调用msgsnd() 19519.4.5 系统调用msgctl() 19719.4.6 一个msgtool的实例 19919.5 使用信号量编程 20119.5.1 基本概念 20119.5.2 系统调用semget() 20219.5.3 系统调用semop() 20319.5.4 系统调用semctl() 20419.5.5 使用信号量集的实例:semtool 20519.6 共享内存 20919.6.1 基本概念 20919.6.2 系统内部用户数据结构 shmid_ds 20919.6.3 系统调用shmget() 21019.6.4 系统调用shmat() 21119.6.5 系统调用shmctl() 21119.6.6 系统调用shmdt() 21219.6.7 使用共享内存的实例:shmtool 212第20章 高级线程编程 21520.1 线程的概念和用途 21520.2 一个简单的例子 21520.3 线程同步 21720.4 使用信号量协调程序 21820.5 信号量的实现 22020.5.1 Semaphore.h 22020.5.2 Semaphore.c 221第21章 Linux系统网络编程 22521.1 什么是套接口 22521.2 两种类型的Internet套接口 22521.3 网络协议分层 22521.4 数据结构 22521.5 IP地址和如何使用IP地址 22621.5.1 socket() 22621.5.2 bind() 22621.5.3 connect() 22721.5.4 listen() 22821.5.5 accept() 22821.5.6 send() 和 recv() 22921.5.7 sendto() 和 recvfrom() 23021.5.8 close() 和 shutdown() 23021.5.9 getpeername() 23121.5.10 gethostname() 23121.6 DNS 23121.7 客户机/服务器模式 23221.8 简单的数据流服务器程序 23221.9 简单的数据流客户机程序 23421.10 数据报套接口 23521.11 阻塞 237第22章 Linux I/O端口编程 24022.1 如何在 C 语言下使用I/O端口 24022.1.1 一般的方法 24022.1.2 另一个替代方法: /dev/port 24122.2 硬件中断 与 DMA 存取 24122.3 高精确的时间 24122.3.1 延迟时间 24122.3.2 时间的量测 24322.4 使用其他程序语言 24322.5 一些有用的 I/O 端口 24322.5.1 并行端口 24322.5.2 游戏端口 24422.5.3 串行端口 245第五篇 Linux系统安全分析第23章 系统管理员安全 24723.1 安全管理 24723.2 超级用户 24723.3 文件系统安全 24723.3.1 Linux文件系统概述 24723.3.2 设备文件 24823.3.3 /etc/mknod命令 24923.3.4 安全考虑 24923.3.5 find命令 25023.3.6 secure程序 25023.3.7 ncheck命令 25023.3.8 安装和拆卸文件系统 25023.3.9 系统目录和文件 25123.4 作为root运行的程序 25123.4.1 启动系统 25123.4.2 init进程 25123.4.3 进入多用户 25223.4.4 shutdown命令 25223.4.5 系统V的cron程序 25223.4.6 系统V版本2之后的cron程序 25223.4.7 /etc/profile 25323.5 /etc/passwd文件 25323.5.1 口令时效 25323.5.2 UID和GID 25423.6 /etc/group文件 25423.7 增加、删除和移走用户 25423.7.1 增加用户 25423.7.2 删除用户 25523.7.3 将用户移到另一个系统 25523.8 安全检查 25523.8.1 记帐 25523.8.2 其他检查命令 25623.8.3 安全检查程序的问题 25623.8.4 系统泄密后怎么办 25723.9 加限制的环境 25823.9.1 加限制的外壳 25823.9.2 用chroot()限制用户 25823.10 小系统安全 25923.11 物理安全 25923.12 用户意识 26023.13 系统管理员意识 26123.13.1 保持系统管理员个人的 登录安全 26123.13.2 保持系统安全 261第24章 系统程序员安全 26324.1 系统子程序 26324.1.1 I/O子程序 26324.1.2 进程控制 26324.1.3 文件属性 26424.1.4 UID和GID的处理 26524.2 标准C程序库 26524.2.1 标准I/O 26524.2.2 /etc/passwd的处理 26624.2.3 /etc/group的处理 26724.2.4 加密子程序 26824.2.5 运行外壳 26824.3 编写安全的C程序 26824.3.1 需要考虑的安全问题 26824.3.2 SUID/SGID程序指导准则 26924.3.3 编译、安装SUID/SGID程序 的方法 26924.4 root用户程序的设计 270第25章 Linux系统的网络安全 27225.1 UUCP系统概述 27225.1.1 UUCP命令 27225.1.2 uux命令 27225.1.3 uucico程序 27325.1.4 uuxqt程序 27325.2 UUCP的安全问题 27325.2.1 USERFILE文件 27325.2.2 L.cmds文件 27425.2.3 uucp登录 27425.2.4 uucp使用的文件和目录 27425.3 HONEYDANBER UUCP 27525.3.1 HONEYDANBER UUCP与 老UUCP的差别 27525.3.2 登录名规则 27625.3.3 MACHINE规则 27725.3.4 组合MACHINE和LOGNAME 规则 27825.3.5 uucheck命令 27825.3.6 网关 27825.3.7 登录文件检查 27925.4 其他网络 27925.4.1 远程作业登录 27925.4.2 NSC网络系统 28025.5 通信安全 28025.5.1 物理安全 28025.5.2 加密 28125.5.3 用户身份鉴别 28225.6 SUN OS系统的网络安全 28325.6.1 确保NFS的安全 28325.6.2 NFS安全性方面的缺陷 28425.6.3 远程过程调用鉴别 28425.6.4 Linux鉴别机制 28425.6.5 DES鉴别系统 28525.6.6 公共关键字的编码 28625.6.7 网络实体的命名 28625.6.8 DES鉴别系统的应用 28725.6.9 遗留的安全问题 28725.6.10 性能 28825.6.11 启动和setuid程序引起的问题 28825.6.12 小结 289第26章 Linux系统的用户安全性 29026.1 口令安全 29026.2 文件许可权 29026.3 目录许可 29126.4 umask命令 29126.5 设置用户ID和同组用户ID许可 29126.6 cp mv ln和cpio命令 29126.7 su和newgrp命令 29226.7.1 su命令 29226.7.2 newgrp命令 29226.8 文件加密 29226.9 其他安全问题 29326.9.1 用户的.profile文件 29326.9.2 ls -a 29326.9.3 .exrc文件 29326.9.4 暂存文件和目录 29326.9.5 UUCP和其他网络 29326.9.6 特洛伊木马 29426.9.7 诱骗 29426.9.8 计算机病毒 29426.9.9 要离开自己已登录的终端 29426.9.10 智能终端 29426.9.11 断开与系统的连接 29426.9.12 cu命令 29526.10 保持帐户安全的要点 295第六篇 X window系统的内部结构和使用第27章 X Window系统的基本知识 29727.1 X Window系统介绍 29727.1.1 X的特点 29727.1.2 什么是窗口系统 29827.1.3 X发展的历史 29927.1.4 X的产品 29927.1.5 MIT发行的X 29927.2 X的基本结构 30227.2.1 X 的基本元素 30327.2.2 服务程序和客户程序如何 交互通信 30427.2.3 X 的网络概况 30627.3 从用户界面的角度概观X 30727.3.1 管理界面:窗口管理器 30727.3.2 应用程序界面和工具箱 30927.3.3 其他系统角度 30927.4 术语和符号 31027.4.1 术语 31027.4.2 符号 31127.5 启动和关闭X 31227.5.1 启动X 31227.5.2 执行X程序的方式 31327.5.3 关闭X 31427.6 窗口管理器基础—uwm 31527.6.1 什么是窗口管理器 31527.6.2 启动uwm 31527.6.3 基本窗口操作 —uwm 的菜单 31527.6.4 移动窗口 31627.6.5 重定窗口大小 31627.6.6 建立新窗口 31627.6.7 管理屏幕空间 31827.6.8 中止应用程序窗口 32027.6.9 激活uwm菜单的其他方式 32027.7 使用 x的网络设备 32027.7.1 指定远程终端机—display 选项 32127.7.2 实际使用远程的显示器 32227.7.3 控制存取显示器—xhost 32227.8 终端机模拟器—详细介绍xterm 32327.8.1 选择xterm功能—菜单与 命令行选项 32327.8.2 滚动xterm屏幕 32427.8.3 记录与终端机的交互过程—写 记录 32527.8.4 剪贴文本 32527.8.5 使用Tektronix模拟功能 32627.8.6 使用不同的字体 32727.8.7 使用颜色 32727.8.8 其他xterm选项 32727.8.9 设定终端机键盘 328第28章 实用程序和工具 32928.1 实用程序 32928.2 保存、显示和打印屏幕图像 33028.3 使用X的应用程序 33228.3.1 文字编辑器—Xedit 33328.3.2 邮件/信息处理系统—xmh 33628.4 示例和游戏程序 33628.4.1 找出通过随机迷宫的 路径—maze 33628.4.2 担任鼠标指针的大眼睛— xeyes 33628.4.3 智慧盘游戏—puzzle 33728.4.4 打印一个大X标志—xlogo 33728.4.5 跳动的多面体—ico 33728.4.6 动态几何图案—muncher与 plaid 33728.7 显示信息和状态的程序 33728.7.1 列出X服务程序的特征— xdpyinfo 33828.7.2 获取有关窗口的信息 33828.7.3 观察X的事件—xev 340第29章 定制X Window系统 34129.1 使用X的字体和颜色 34129.1.1 字体初步 34129.1.2 字体命名 34229.1.3 观察特定字体的内容—xfd 34329.1.4 保存字体和位置 34329.1.5 例子:在你的服务程序中 增加新字体 34529.1.6 使用X的颜色 34629.2 定义和使用图形 34729.2.1 系统图形程序库 34729.2.2 交互编辑图形—bitmap 34729.2.3 编辑图形的其他方法 34929.2.4 定制根窗口—xsetroot 34929.3 定义应用程序的缺省选项— Resources 35029.3.1 什么是资源 35029.3.2 XToolkit 35129.3.3 管理资源—资源管理器 35329.3.4 资源的类型—如何指定值 35829.4 实际使用资源 35929.4.1 在何处保存资源的缺省值 35929.4.2 在服务程序上保存缺省值— xrdb 36329.4.3 常见的错误和修正 36629.5 定制键盘和鼠标 36729.5.1 实际使用转换 36829.5.2 转换—格式和规则 37429.5.3 转换规范中常见的问题 37729.6 键盘和鼠标—对应和参数 37929.6.1 键盘和鼠标映射—xmodmap 37929.6.2 键盘和鼠标参数设定—xset 38229.7 进一步介绍和定制uwm 38429.7.1 uwm的新特征 38429.7.2 定制uwm 38629.8 显示器管理器—xdm 39029.8.1 需要做些什么 39029.8.2 xdm 39129.8.3 xdm的更多信息 39229.8.4 uwm配置 395附录A Gcc使用介绍 396附录B 安装X Window窗口系统 410
上传时间: 2013-11-10
上传用户:changeboy