Linux
-
Linux与嵌入式系统李善平, 刘文峰, 王焕龙编著Linux是个优秀的操作系统,嵌入式系统则是近年来的热门话题。本书既是作者在运用Linux研究和开发嵌入式系统的过程中资料与经验的总结,也是把二者结合起来的集中体现。书中有对主流嵌入式操作系统、Linux操作系统、基于Linux的嵌入式操作系统的综述,更主要的是系统介绍了利用Linux开发嵌入式系统的关键技术和方法。同时,本书精选了作者研发的几个嵌入式系统的案例(机顶盒、宽带路由器、基于Linux的家用网关的设计与实现等)奉献给大家,希望能对读者有所帮助。本书内容丰富、层次清晰、力求较强的实践性和应用性,可作为高等学校有关嵌入式系统教学的教材,也可作为嵌入式系统开发与应用的参考书。 目录第1章嵌入式系统 11.1关于嵌入式系统 11.1.1嵌入式系统概念 11.1.2嵌入式处理器 21.2关于嵌入式操作系统 41.2.1从嵌入式系统到嵌入式操作系统 41.2.2典型的嵌入式操作系统 51.3嵌入式操作系统的应用 71.4典型嵌入式系统 91.4.1VxWorks和pSOS 91.4.2OSKit 161.4.3Palm OS 211.4.4μC/OS和μC/OS-II 241.4.5QNX实时操作系统 28第2章Linux 332.1Linux简介 332.1.1Linux的历史 332.1.2Linux的发行版本 342.1.3Linux的特点 362.2Linux内核 372.2.1内核概况 372.2.2进程管理 392.2.3存储管理 472.2.4文件系统管理 582.2.5设备管理 682.2.6系统启动 732.3Linux应用 752.3.1Linux在大型服务器上的应用 752.3.2Linux在桌面端的应用 762.3.3Linux在嵌入式环境中的应用 772.4主流嵌入式Linux系统 782.4.1μClinux 782.4.2RTLinux和RTAI 802.4.3MontaVista Linux 842.4.4LynxOS 87第3章嵌入式系统开发过程 903.1需求分析和概要设计 903.1.1嵌入式系统的概念和组成 903.1.2系统需求分析 903.1.3系统结构模型建立方式 913.1.4系统结构模型实现流程 923.2硬件 933.2.1嵌入式处理器 933.2.2存储设备 943.2.3外围设备 953.2.4典型的嵌入式系统开发平台 973.2.5Lineo的μCSimm 983.2.6ARM的ARM Evaluator-7T 1023.3软件 1063.3.1嵌入式系统的软件组成 1063.3.2嵌入式软件的基本开发流程 1093.3.3嵌入式操作系统 1103.4嵌入式系统软件开发过程 1113.4.1开发 1113.4.2编译和连接 1123.4.3重定位和下载 1133.4.4调试 113第4章嵌入式Linux系统的开发技术 1164.1快速启动 1164.2开机画面 1214.2.1隐藏字符信息 1214.2.2显示用户定义的画面 1224.3ramdisk技术 1234.4系统小型化 1254.4.1内核配置 1254.4.2嵌入式C库 1274.4.3小型shell 1304.5系统移植 1324.5.1建立交叉编译环境 1324.5.2内核移植 1364.5.3bootloader 139第5章嵌入式Linux系统的进程 1415.1Linux在实时方面的缺陷 1415.2Linux实时化的关键问题 1435.3Linux实时化改造的典型方法 1445.3.1外部实时性扩展 1445.3.2内部实时性改造 1605.4实时应用程序的编写 1645.5实时程序的测试 167第6章嵌入式Linux系统的存储管理 1696.1缺少MMU支持的内存管理 1696.1.13种内存管理模型 1706.1.2标准Linux的内存管理 1706.1.3μClinux的内存管理 1716.1.4μClinux内存管理的局限性 1726.2μClinux内存管理的实现 1736.2.1内存管理数据结构 1736.2.2物理空间管理 1746.2.3内核内存的申请和释放 1756.2.4内存映射 1766.3内存管理模块的启动初始化 1786.3.1setup_arch() 1786.3.2paing_init() 1796.3.3free_area_init() 1806.3.4mem_init() 1806.4可执行程序的加载 1806.4.1用户程序的内存分布 1806.4.2reloc段机制 1816.4.3flat可执行文件格式 1826.4.4执行文件加载流程 183第7章嵌入式Linux系统的文件系统 1877.1嵌入式系统的存储 1877.2文件系统类型 1887.2.1cramfs 1887.2.2romfs 1907.3日志文件系统 1937.3.1文件系统完整性 1937.3.2日志文件系统 1947.3.3jffs与jffs2文件系统 1957.3.4ReiserFS文件系统 1977.3.5ext3文件系统 1987.3.6xfs文件系统 1997.4文件系统的结构 2007.4.1/etc 2017.4.2/bin 2047.4.3/sbin 2057.4.4/dev 2067.5小结 207第8章嵌入式Linux的GUI 2088.1嵌入式GUI 2088.1.1嵌入式GUI的概念 2088.1.2一些成熟的嵌入式GUI 2098.2典型的嵌入式GUI-Microwindows 2108.2.1Microwindows的设备驱动 2118.2.2与设备无关的图形引擎 2148.2.3Nano-X的窗口管理和API 2188.2.4Microwindows在Linux Frame Buffer上运行 2298.3其他知名嵌入式GUI 2308.3.1面向实时的MiniGUI 2308.3.2应用广泛的Qt/Embedded 2328.4嵌入式GUI的应用 2338.4.1嵌入式GUI上的其他软件 2338.4.2嵌入式GUI的应用 2368.5小结 237第9章嵌入式Linux系统的网络互联及其优化技术 2389.1嵌入式Internet及其应用 2389.1.1嵌入式Internet技术的兴起 2389.1.2嵌入式Internet技术 2409.2网络协议栈的定制 2439.2.1Linux的网络代码分布及特点 2439.2.2网络部分内核编译配置 2459.2.3TCP/IP协议的定制 2479.3Linux中TCP/IP协议应用优化技术 2539.3.1实现快速上下文切换的设想 2539.3.2网络服务器 2559.4Linux IP报文转发及防火墙实现分析 2609.4.1IP数据报文流 2609.4.2netfilter框架 2639.4.3netfilter的网络地址转换(NAT)的实现 2679.4.4IPTables: netfilter体系的规则载体 2719.5基于Linux的家庭网关及其优化技术 2739.5.1改变网络设备的工作模式 2749.5.2转发报文不再往上经由IP层 2779.5.3NAT的重写 280第10章嵌入式系统集成开发环境 28610.1综述 28710.1.1集成开发环境 28710.1.2嵌入式软件开发 28810.1.3Python开发环境 29110.2代码编辑模块 29210.2.1代码编辑功能 29210.2.2PygtkScintilla 29310.2.3EideP代码编辑模块的实现 29410.3软件调试模块 29610.3.1软件调试功能简介 29610.3.2gdb前端(front-end)软件分析 29710.3.3gdb图形前端的实现 29810.3.4输出信息提取的实现 30010.3.5功能实现 30110.4JTAG在线调试的实现 30210.4.1标准的JTAG协议 30310.4.2PXA255中JTAG调试接口协议 30510.4.3PXA255中debug相关的寄存器及其访问方式 30710.4.4PXA255中debug相关的JTAG命令 31210.4.5JTAG在线调试实现思想 31410.4.6底层JTAG操作模块 31510.4.7host debugger 31810.4.8Pygdbserver 32610.4.9debug handler 32910.4.10用JTAG调试的例子 33310.5小结 335第11章嵌入式系统案例:机顶盒 33611.1机顶盒需求分析 33611.1.1机顶盒基本概念 33611.1.2所需功能 33711.2机顶盒概要设计 33811.2.1建立需求库 33811.2.2进行需求映射 33911.3机顶盒硬件设计 34011.4机顶盒软件设计 34111.4.1GUI设计 34311.4.2系统裁减和压缩 34811.4.3网络设计 35511.4.4系统启动优化 35811.5小结 359第12章嵌入式系统案例:宽带路由器 36012.1宽带路由器及Nanos操作系统 36012.1.1典型宽带路由器的功能 36012.1.2Nanos操作系统 36112.2操作系统的设计 36112.2.1Nanos操作系统的设计思想 36112.2.2关键部分的设计思想 36212.3任务管理的实现 36312.3.1任务状态 36312.3.2任务控制块和就绪表 36412.3.3任务的创建与删除 36612.3.4任务等待和挂起 36712.3.5任务调度 36812.3.6信号量 36912.4内存管理的实现 37112.4.1内存寻址 37112.4.2伙伴系统算法 37312.4.3Cache与Slab分配器 37512.5中断与异常 37812.6Nanos的PCI总线驱动和8139网卡驱动 38012.6.1PCI总线驱动 38012.6.2设计通用PCI设备驱动接口 38312.6.3rtl8139网卡驱动程序的实现 38412.7操作系统的初始化 38612.7.1系统的引导 38612.7.2内存管理的初始化 38712.7.3其他部分的初始化 38812.8网卡的半轮询工作模式 38912.9网络地址转换:NAT 39112.9.1模块的定义 39112.9.2NAT模块 39212.9.3模块的实现 39312.10小结 406第13章嵌入式系统案例:基于Linux的家用网关 40713.1系统概述 40713.1.1硬件设计 40713.1.2软件设计 40813.1.3准备工作 40813.2搭建基本系统 40913.2.1编译工具链 41013.2.2内核的编译 41113.2.3BusyBox的编译和安装 41213.2.4系统的配置 41313.2.5内核的安装 41413.3创建网络连接 41513.3.1静态IP的设置 41613.3.2动态IP客户端 41713.3.3宽带拨号客户端PPP和PPPoE 41713.4安装和配置网络服务 41813.4.1telnetd服务 41813.4.2网页服务器 41913.4.3iptables的安装 42013.4.4NAT、端口映射和防火墙的实现 42013.4.5其他的网络服务 42213.5文件系统的压缩 422 -
Fedora Core3 Linux架站实务李蔚泽编著Linux最让人称颂之处莫过于是内建的多种服务器,Linux优越的平台稳定性,更是服务器架设时需考虑的重要因素,因为它可将服务器性能提升至极限,以充分发挥网络资源的使用性能,更能确保与客户到动性的正确性。加上完全免费的使用优势,所以Linux可为企业节省服务器架设时的大量成本,因此是架设企业网络的绝对选择。本书采用最新版的Fedora Core 3平台,内容可涵盖网管人员平日的需求,虽不敢自比经典之作,但足以担任一般用户架设网站时的入门书,这也是笔者撰写时的初衷。第1章介绍了有关网络的基本概念,这是管理人员在维护网站与各项服务前,首先要熟悉的内容。除此之外,在本书的其余章节,共包含11种类型的服务器,这也是笔者在撰写时遭遇的首要难题,因为要以有限的篇幅来说明如此繁多的服务器主题,势必要取其精华的部分,所以有关内容的筛选,着实花费笔者许多时间。所幸有赖以往的经验,再辅以大量的参考文献,总算完成令人满意的内容,相信读者在细心阅读后,必可发现笔者求证时的用心。第2~4章可说是本书最大的重点所在,介绍了目前Intemet上占有率最多的Web服务器Apache,它也是企业急于树立形象与拓展商机的最佳选择,无论如何都建议您仔细地阅读。第5章是有关FTP(File Transfer Protoc01)服务器的运行,顾名思义,它是提供客户端与服务器间文件交换时的平台,因此一般企业网站都会竭尽所能提供此项服务,以吸引用户访问。第6章介绍的邮件服务器也是现今企业网络必备的利器,因为在目前电子信息数据充斥的环境中,早已跳离传统的纸张文件,笔者实在无法想像如果没有借助电子邮件的传递,企业如何完成日渐复杂的商业活动。第7章说明的SAMBA服务器是沟通Windows和Linux操作系统的绝佳工具,有了它,一般用户就可轻易通过"网上邻居"来访问Linux上的共享数据,这对信息的集成实在是举足轻重。第8章与第9章主要着眼点在于带宽使用率与数据安全的提升,利用代理(Proxy)服务器可以将常用的网页内容保存在硬盘中,以避免重复连接至相同网页时消耗的带宽。而NAT服务器与防火墙在目前已是企业网络不可或缺的机制,它们可分别用来作为IP地址不足,以及保障信息交换安全性的解决方案。第lO章是有关DHCP服务器的内容,正确地使用DHCP,可以节省许多平时维护客户端IP配置的时间。第11章介绍的DNS服务器在客户端连接Internet时,肩负着名字解析的工作,如果没有这个机制,客户端可能很难顺利地连接到Intemet。第12章的网络文件系统NFS,则是利用分布式系统的概念,将网络上原本分散的共享资源,集成在服务器的文件系统中。第13章说明了新闻服务器INN的运行原理,以及实际构建时所需注意的问题。最后一章是有关OpenSSH服务器的内容,它可强化网络通信时的安全性。 -
Fedora Core3 Linux网管手册李蔚泽编著系统管理是目前企业网络与服务器架设,首先考虑的因素之-,因为管理模式的不同,自然会影响日后系统维护的时间与成效。目前Linux所代表的自由软件与稳定性兼俱的特性,已逐渐在全世界崭露头角且受重视,更由于Linux可支持多种网络环境下的使用,因此在采用Linux系统前,必须熟悉各种安装方式并配合系统规划时的实际需求,以增加网络管理员的维护时的能力。自由软件的方兴未艾,以致于在此风潮中位居牛耳的Linux,也逐渐在校园及企业中蔓延开来,但可惜的是,多数人对它的认识似乎-直停留在外表的阶段,而未能深入其核心,追究原因是初学时的门槛稍高。的确,笔者认为早期Linux的界面友好性很难与微软产品相抗衡,但经过众人-次次的努力,目前已有显著的成效,可说是虽不中亦不远矣!其实除了界面的友好性外,Linux本身支持的-系列服务器软件,以及五花八门的应用程序与管理工具,才是它真正引起企业及个人青睐的主要原因。所以身处目前信息如此发这的环境中,不应只专注于个别的系统,而是要以更宽广的态度来接受并实际使用这个奇迹。在((Fedora Core 3 Linux网管手册》-书中,笔者以Linux Distribution-Fedora Core!为说明时使用的平台,并且按照学习的最佳步骤将全书区分为四大部分:安装、系统管理、服务器管理和网络管理等,希望带领各位走进Linux的世界。第-部分安装篇是每个人都需了解的内容,在此谈到了有关系统在安装前的规划、软件的需求以及传统的光盘安装方式,除此之外,在各类书籍中不常见的Kickstart安装也收录于其中。接下来的第二部分系统管理篇由7个章节构成,顾名思义,在此包含的主题都与网络系统的管理工作有关,其中包含:与Linux的首次接触、文件系统管理、用户与群组账号管理、查询系统帮助、文件压缩与解压缩、X窗口系统以及打印机管理等内容,这些都是网络系统管理中最核心的重点,也是每位管理员责无旁贷的责职。在了解本书以上两个部分后,您应该已具有维护企业网络的基本能力,如果要进-步了解各类服务器的建置,则可以继续研读第三部分服务器管理篇,此处包含四类服务器的详细介绍:Web、E-mail、SAMBA与DNS服务器等。由于这些服务器都可提供目前Internet及企业网络中最常支持的服务,所以如果架设合理,则可提高企业知名度并且加速商业活动的进行。本书的第四部分是网络管理篇,此处的内容大多属于较高的难度,同时也是极少书籍谈及的范围,因此笔者特别将此部分置于本书最后,其目的就是希望读者能先由前面的内容奠定Linux的基础,之后再研究网络管理方面。在此部分,我们将进行讨论的有:TCP/IP简介、ARP与RARP、IPv4与寻址、网络基本管理、IPv4静态路由、NAT与防火墙、TCP与UDP,以及故障排除与系统监视等。 -
深入理解LINUX内核(意)博韦特,西塞提 著为了彻底理解是什么使得Linux能正常运行以及其为何能在各种不同的系统中运行良好,你需要深入研究内核最本质的部分。内核处理CPU与外界间的所有交互,并且决定哪些程序将以什么顺序共享处理器时间。它如此有效地管理有限的内存,以至成百上千的进程能高效地共享系统。它熟练地统筹数据传输,这样CPU不用为等待速度相对较慢的硬盘而消耗比正常耗时更长的时间。《深入理解Linux内核,第三版》指导你对内核中使用的最重要的数据结构、算法和程序设计诀窍进行一次遍历。通过对表面特性的探究,作者给那些想知道自己机器工作原理的人提供了颇有价值的见解。书中讨论了Intel特有的重要性质。相关的代码片段被逐行剖析。然而,本书涵盖的不仅仅是代码的功能,它解释了Linux以自己的方式工作的理论基础。本书新版涵盖2.6版本,其在内核的几乎每个子系统中都有重要的变化,尤其是在内存管理和块设备领域。本书侧重于以下主题:·内存管理,包括文件缓存、进程交换和直接内存存取(DMA)·虚拟文件系统层和第二、第三扩展文件系统·进程创建和调度·信号、中断和设备驱动程序的主要接口·定时·内核中的同步·进程间通信(IPC)·程序的执行《深入理解Linux内核》将使你了解Linux的所有内部工作,它不仅仅是一个理论上的练习。你将学习到哪些情况下Linux性能最佳,并且你将看到,在大量的不同环境里进行进程调度、文件存取和内存管理时,它如何满足提供良好的系统响应的需要。这本书将帮助你充分利用Linux系统。 -
Linux随身指南(美)巴雷特 著,O′Reilly Taiwan公司 编译;O'Reilly译如果你正在寻找Linux速成秘笈,这本就是。《Linux随身指南》简明扼要地阐述了Linux系统中的基本概念,并以精辟的例子示范如何利用 Linux进行日常工作,让你在短时间内有效提高工作效率。 《Linux随身指南》提供了文件、目录、shell、X Window等Linux基本概念的说明,也汇总了常用命令的参考资料。所以,本手册不仅适合作为刚入门者的学习教材,更适合每位Linux用户随身携带查阅。有别于一般参考手册以字母顺序排序的惯例,本手册按照功能类别来汇总各种命令的参考资料,因为这样更易于查找,在查阅的同时,也更容易了解还有哪些相关选择。对于每一个命令,本手册提供了语法、出处(所属的RPM包)、功能解释、用途、在磁盘上的位置、常用选项的意义以及典型用法的示范。本手册的参考资料以Fedora Linux为准,但是大部分信息同样适用于其他 Linux系统。如果你需要立刻学会Linux的实际应用,或是你身边需要一本简短、实用的参考手册,这本精简的随身指南正是你要找的。 本书作者 Daniel Barrett也是《SSH: The Secure Shell》和《Linux Security Cookbook》这两本经典之作的作者之一。 -
Red Hat Linux9入门与提高杨建新, 窦林卿编著本书从Linux的基础操作谈起,深入浅出地介绍了与Linux应用有关的各方面知识,包括Linux基础、 Linux系统管理和Linux网络管理等,并重点介绍常用的Internet服务。在实践操作方面,既详细讲述了命令行方式的操作,也介绍了图形界面工具的使用。 本书实例丰富、层次清晰、图文并茂,既适用于初级用户入门,也适用于有一定Linux使用经验的用户的提高。本书适合广大Linux爱好者自学使用,也可以作为职业培训机构相关专业的培训教材。 本书示例丰富,步骤明晰,与实践结合非常紧密,适于广大爱好图像处理和网页设计的各级用户参考。 -
Linux 学习教程胡宁编著由于Linux具有结构清晰、功能简捷等特点,许多大专院校的学生和科研机构的研究人员纷纷把它作为学习和研究的对象。在众多热心者的努力下,Linux逐渐成为一个稳定可靠、功能完善的操作系统,使用日益广泛,其影响力直逼Unix。同时Linux并不只是各地黑客们的业余爱好,人们正在为之编写大量的商品化软件,很多公司着手将其基于UNIX的软件移植到Linux中来,并且用于内部项目中。至今为止几乎整个GNU使用程序都被移植到了Linux,UNIX系统中最常用的X Window GUI(用户图形界面)也得到成功移植。这预示着Linux系统将得到长足发展。本书主要以RedHat这种当前在国内有较大影响的Linux操作系统作为介绍对象,对Linux系统的安装维护、具体使用、本机设置、网络配置进行较为详尽的介绍,使读者在较短时间内对该操作系统有个全面而深入的了解。本书内容丰富,层次清晰,特别适合初学Linux的读者使用。 -
Linux安装和基本配置恩泽,莫然编著本书主要讲述了红旗Linux 1.x/Red Hat Linux 6.x的基础知识,为个人用户全面掌握Linux操作系统的安装、配置及有关工具和实用程序的使用铺平道路。本书从Linux的安装入手,详细介绍了红旗Linux 1.x/Red Hat Linux 6.x的各种安装方式、升级和卸载的方法。然后重点介绍了Linux中的X Windows系统,并结合个人用户的实际需求,介绍了基本配置、常用应用等内容。同时,为了满足一部分高级用户的需求,我们还介绍了Linux内核的配置方法。全书内容详实、图片丰富,主要面向Linux的个人用户和Linux爱好者。 -
Linux安全开发工具(美)DavidA.Bandel著;游华云等译本书从四个方面介绍如何增强Linux系统的安全性,这四个方面分别是:主机、网络、防火墙和专有软件、安全性审核。在论述这四个方面的同时,介绍了大量的命令和应用程序,深入控讨了Linux的层次结构,详细分析了众多的脚本。特别是在介绍每一个部分的时候,还附带讲解了许多相关知识,使读者不但在Linux的认识方面有了质的飞跃,而且对其他方面也有了深入地了解。全书共分为4部分,26章和2个附录。读者对象:Linux系统管理人员、网络管理人员、广大计算机用户和大专院校计算机专业师生。除非做好了预防措施,用户的Linux系统在攻击面前是非常脆弱的。可能要丢失数据、访问权、商业秘密或者更多的信息,在本书中读者将会知道这些都是如何发生的。基于丰富的实战经验,Linux Journal的专栏作家David A.Bandel论述了所有Linux发行版都面临的安全问题,从SUID/SGID的危害性,到telnet和其他一些不安全协议,并逐步告诉读者如何解决它们。在本书附带的CD-ROM上包含了安全性的策略、解决方案和软件工具,这将帮助读者最大限度地增强系统的防范能力。解决Linux安全问题的方案有:理解安全问题包括正确设置权限、查出攻击网络的黑客和脚本恶作剧者、克服Linux服务和协议的弱点、正确配置内核并调整启动时的脚本以增强安全性、处理拒绝服务攻击(DoS)使用TCP Wrapper检测安全漏洞、建立数据包过滤器(ipchains)和代理(squid)防火墙、使用伪装技术(NAT)增强网络安全性、注意Apache和Samba的相关安全缺陷、临控网络安全和发现非法闯入者。本书附带的CD-ROM中包括Caldera OpenLinux 2.3和安全工具。 -
深入Linux——建构与管理杨文志著;张树国改编Linux无疑是当前自由软件成功的典范,它以简洁、透明、高效的优秀品质而倍受推崇。本书全面介绍了Linux的安装、维护及系统管理等内容,并详细讲述了Linux环境下各种应用程序的使用和服务器架设技术。内容包括:系统安装、升级、X Window配置、中文环境及外围设备;基本功能、常用命令、脚本程序、管理工具及各种实用的窗口程序等。本书的重点在于帮助读者全面了解Linux的架构,从更深的层次上掌握系统管理的精髓。对用户账号管理、文件系统管理、环境设置作了深入细致的剖析;详细讲述了Linux的网络功能及应用,包括网络设备安装、FTP Server、WWW Server、Mail Server、News Server以及Samba的设置和管理;最后还着重讲解了有关网络安全方面的技术,并提出了诸多有效的解决方案。本书是一本相当有价值的参考书,适用于想了解和使用Linux系统的所有人员,包括专业的计算机开发和应用人员、网络管理人员及致力于自由软件事业的各界人士。
