随着社会的进步和经济的快速发展,电能质量问题不断恶化,使得高效的电能质量监测变得越来越重要。传统的电能质量监测仪器往往功能单一、缺少网络功能,不能满足实时在线监测的要求。本文提出了一种基于ARM的远程电能质量监测的方法,系统完成实时信号的采集,并利用嵌入式linux自带的TCP/IP协议栈内建一个WEB服务器,且提供现场人机界面。网络用户可以在任何一个WEB浏览器访问这个系统。 本文首先阐述了电能质量监测仪的国内外发展状况和电能质量的标准,并给出相应的测量方法,然后分别从硬件和软件方面构建监测系统。硬件方面主要讨论了硬件系统各个功能模块的设计。系统软件方面首先构建嵌入式linux系统,并编写和修改了linux操作系统下的接口驱动程序,主要是编写了A/D转换器的驱动,并且移植了嵌入式数据库sqlite;应用程序中主要介绍了数据处理中最重要的谐波算法(FFT算法)的实现、远程监测Boa服务器的配置以及QT的显示界面的制作。
上传时间: 2013-07-13
上传用户:lnnn30
增强现实是一种将虚拟世界和真实环境相结合的技术。它将计算机绘制的虚拟模型叠加到使用者所看到的真实世界景象中,使用户可以从虚拟模型中获得额外的信息,增强了对现实的感知。涉及到的技术有图像处理、位置跟踪、三维注册等。增强现实技术广泛应用于装配维修、医疗研究、军事领域和商业应用。 第一部分,增强现实技术介绍。该部分首先阐述了增强现实的定义,接着介绍了该项技术的国内外发展状况,以及在工业领域、医疗领域、建筑领域等的应用,最后分析了目前AR系统的缺点和不足,得出了在嵌入式增强现实研究具有重要意义。 第二部分,嵌入式硬件环境的设计。硬件电路由以下几部分构成:USB控制器用于连接USB摄像头设备,液晶显示驱动用于控制显示屏输出,外围电路主要有内存电路、Flash电路、时钟电路和RS-232电路等。 第三部分,嵌入式软件方案的设计。首先,选用U-boot1.2.0作为Bootloder,特点是U-boot的网络功能较强,支持平台较多。其次,移植Linux2.6.22内核作为系统核心,该版本内核具有实时性强等特点。再次,用busybox1.9.1构建基础命令环境,并将转为NandFlash设计的YAFFS文件系统安装到开发板上。最后,在以上的软件环境基础上,开发了基于OV511芯片的USB设备驱动和FrameBuffer显示驱动程序。 第四部分,开源视觉处理库OpenCV的移植。该部分介绍了OpenCV的特性,常用的数据结构,在嵌入式Linux下的编译选项配置,库依赖文件安装,底层文件修改,以及如何编译、安装OpenCV。 第五部分,基于OpenCV的摄像头标定程序。该摄像头标定程序是基于张氏标定算法的开发,本文首先阐述了摄像头标定算法的核心内容,以及对应的OpenCV实现方案,然后给出了摄像头标定程序在平台运行的细节和结果。
上传时间: 2013-07-06
上传用户:阿四AIR
随着计算机技术的发展,嵌入式系统己成为计算机领域的一个重要组成部分。而采用ARM微处理器作为硬件基础和μC/OS-Ⅱ作为嵌入式操作系统被广泛的应在各种嵌入式应用系统中。而随着网络化、信息化时代的来临,嵌入式设备的网络互联己经成为必然趋势。它通过现有嵌入式系统,增加网络接入能力,使嵌入式设备直接接入Internet。本课题采用SkyEye模拟的AT9lEV40开发板作为硬件开发平台,采用嵌入式实时操作系统μ C/OS-Ⅱ为软件开发平台,研究嵌入式TCP/IP协议栈。 本文首先对ARM微处理器和μ C/OS-Ⅱ进行了介绍;研究和探讨了μC/OS-Ⅱ在ARM架构上的移植方案,并就其关键技术部分,结合实现代码进行了阐述并提出了移植过程中要注意的问题。接着本文分层介绍TCP/IP协议栈,主要讲述各个分层及其所属的协议,报文格式等:并针对嵌入式系统的特点,对TCP/IP协议进行合理的简化,使之实现了TCP/IP协议簇的一些协议如:ARP,IP,ICMP,UDP,TCP和HTTP。同时研究了嵌入式TCP/IP协议栈LwIP的特性,分析了它的进程模型、数据包结构、工作流程、目录结构、应用程序接口。研究了将LWIP移植到μC/OS-Ⅱ系统上,实现嵌入式系统的网络联接,并用ping命令和一个简单静态网页的访问验证了网络功能的实现。
上传时间: 2013-08-01
上传用户:hainan_256
嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合的产物。目前,嵌入式系统己经广泛应用到工业、交通、能源、通信、科研、医疗卫生、国防以及日常生活等领域,并不断朝着体积小,功能强的方向发展。嵌入式系统不同于原来的单片机系统,它不仅有自己的操作系统,上层应用程序,而且还具备网络通信和信息管理的功能。 ARM体系的处理器是目前嵌入式系统中使用最广泛的处理器。它采用了RISC技术,具有寻址方式简单,寄存器多,指令长度固定等的特点使得它的处理速度快,执行效率高。由于Linux对于ARM技术的支持,具有内核可裁减,网络功能强大,代码开放的特点,把Linux应用到嵌入式系统中,能充分发挥ARM和Linux的优势。 论文以“掌上中文语言学习系统”项目为依托,以ARM体系处理器和Ljnux操作系统的嵌入式系统为基础,构建一个掌上语言学习设备。 论文首先进行了开发环境的设计与搭建,对开发主机进行TFTP服务器、NFS服务器、minicom串口通信和GNU交叉工具链进行配置。实现了针对NAND闪存的U-Boot启动程序的建立,并对Linux操作系统内核进行了移植工作。最后利用图形界面系统MiniGUI和远程调试技术实现了掌上语言学习的软件功能。
上传时间: 2013-07-24
上传用户:jiangfire
当前,嵌入式系统已经广泛地应用到人们生活的各个领域。同时,随着嵌入式处理器性能的不断增强,特别是32位高性能嵌入式微处理器的广泛使用,嵌入式操作系统逐渐成为嵌入式系统中最重要的组成部分。而在各种嵌入式操作系统中,IAnux凭借其代码公开,性能稳定,网络功能强大等多方面的优势,在嵌入式系统中被广泛地采用,得到了嵌入式系统设计者的普遍认可。研究Linux操作系统理论,进行嵌入式Linux系统的移植和应用程序的开发,具有重要的理论意义和现实意义。 研究课题以32位ARM架构的嵌入式处理器$3C2410A为硬件平台核心,系统地介绍了S3C2410A处理器和系统的硬件组成。在此基础上重点研究了嵌入式Linux系统的构建和移植,其中首先研究了基于Linux的嵌入式交叉开发环境的构建。之后详细地研究了系统引导程序的原理,分析了系统引导程序VIVI的结构并在此基础上实现了VIVI的移植。接下来论文研究了ARM Linux内核结构和启动引导过程,讨论了ARM Linux内核移植及配置编译的具体方法和过程。作为嵌入式Linux移植的另外一个重点,课题还详细地研究了嵌入式Linux根文件系统的结构、根文件系统内容的构建以及如何为嵌入式系统进行多文件系统的选择。在完成Linux内核与文件系统的移植后研究了嵌入式Linux驱动程序的原理,设计了S3C2410A微处理器扩展CAN总线接口,给出了ARM Linux上CAN设备驱动程序实现方法。课题最后还研究了嵌入式Linux系统下的图形用户界面,在分析国内外嵌入式GUI的特点和MiniGUI的技术优势基础上,介绍了为嵌入式Linux系统配置、编译和安装MiniGUI的方法,而且以一个状态显示界面程序为实例介绍了MiniGUI程序的设计方法。
上传时间: 2013-04-24
上传用户:wangyi39
随着计算机技术的发展,嵌入式系统已成为计算机领域的一个重要组成部分,并成为近年来新兴的研究热点。ARM9TDMI是一种高效、低功耗的RISK处理器,以该内核为核心的S3C2410X是一款基于以太网应用的高性价比16/32位微控制器,非常适合嵌入式产品。文本提出并研究了基于ARM-Linux的嵌入式产品平台,完成了系统的硬件和软件设计、实现了操作系统的裁减和移植。并且系统充分利用ARM处理器高性能、低功耗、低成本的优点,扩展平台通用接口,为今后开发基于该平台的应用系统提供了捷径。 Linux由于其代码开放性以及强大的网络功能等特点,在许多的嵌入式网络设备中有着广泛应用,与其他的嵌入式操作系统相比,具有着更多的优势。因此本课题将其作为硬件平台的操作系统,并在这个系统中实现Linux的一些基本操作。论文中介绍的硬件和软件平台也可以为实际应用提供很好的开发起点。 USB作为一种总线技术,已经得到快速的普及和应用,本文实现了Linux操作系统下USB驱动程序的编程设计;此外,本文将嵌入式技术与无线通信技术结合起来,实现了基于ARM-9处理器的无线通信平台的开发。 归纳起来本课题具体工作如下: 1)调研了国内外嵌入式系统开发的现状和发展趋势。并且详细论述了基于ARM-9处理器的硬件结构、嵌入式操作系统以及开发流程。 2)详细研究了Linux在ARM-9硬件平台上的移植。包括移植环境的建立、BootLoader的制作、Linux的裁减和移植、根文件的制作等。 3)详细分析并开发了Linux下USB驱动,包括主机控制器驱动以及设备驱动等内容。 4)基于ARM-9嵌入式微处理器,利用其性价比高,功能丰富,接口完善,可扩展性强等优点将移动通信技术与嵌入式系统融合在一起。实现基于ARM-9处理器的无线通信平台的开发。
上传时间: 2013-04-24
上传用户:lwt123
智能化住宅小区,是指在一定范围内通过有效的传输网络,将多元住处服务、物业管理、安防以及住宅智能化等系统结合在一起,为该小区的服务与管理提供高技术的智能化手段。从而实现快捷高效的超值服务管理和安全舒适的家居环境,使业主生活得更安全、更方便。 随着国民经济和科学技术水平的提高,特别是计算机技术、通信技术、网络技术和控制技术的迅速发展,促进了智能小区在我国的推广和应用。目前这些小区的智能化建设大多数是采用Lonworks、FF等现场总线技术。但是现场总线协议标准化程度还不成熟,且成本较高。随着宽带Internet进入家庭,利用Internet来构建智能小区已成为大势所趋。 本文介绍了一种基于以太网和FPGA的嵌入式智能小区管理系统的组建方法。首先,以Altera的FPGA为核心,通过在外围添加适当的存储设备和通信接口设备,构成一个嵌入式系统的硬件平台。其次,在此平台的基础上,通过在FPGA中定制Nios Ⅱ软核处理器以及在外围的Flash存储器中下载uClinux操作系统,从而构建出一套资源丰富的嵌入式操作系统。该系统带有一个网络功能齐全的Web服务器。最后,将此操作系统作为智能小区的楼宇集中器,再根据需要配置适当的采集器和显示器,就可以组建成一套功能强大的智能小区管理系统。它可以完成图像抄表、定时图像采集、实时温度监控、楼宇广播、智能语音报警等功能。 这种利用当前流行的嵌入式系统来组建的智能小区管理系统,不但实现简单、功能强大;而且节约布线、成本低廉。因此具有很高的性价比,相信在未来有较大的市场潜力。 本文主要包括如下几个部分:系统硬件结构设计,包括系统的原理图构建和PCB板的绘制:系统核心处理器设计,包括Nios Ⅱ软核CPU的设计方法、外围存储和通信器件的添加及设计方法;嵌入式操作系统uClinux的相关知识及移植方法:系统的软件结构设计,包括图像采集、温度采集、LCD显示等CGI程序设计,以及单片机语音报警程序设计等;最后给出了调试情况以及一些试验结果。
上传时间: 2013-06-11
上传用户:ccsp11
近年来高性能,低功耗ARM处理器成为嵌入式应用主流;开源嵌入式Linux操作系统由于系统稳定,兼容性和移植性好,网络功能强等优点也成为首选嵌入式操作系统之但目前嵌入式Linux支持USB摄像头。。。
上传时间: 2013-11-10
上传用户:zmy123
智能手机硬件知识内容有: 今天我们将了解: 智能手机核心硬件知识 CPU、内存、屏幕 智能手机外延设备知识 GPS、蓝牙 随着行业的发展,单纯的手机功能已经无法满足需求,新一代的智能手机要兼顾PC、手机、网络功能。 智能手机主要特点: 智能操作系统 强大硬件支持
上传时间: 2013-10-28
上传用户:cicizoe
本书介绍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