TinyOS Programming

TinyOS Programming pdf epub mobi txt 电子书 下载 2026

出版者:Cambridge University Press
作者:Philip Levis
出品人:
页数:224
译者:
出版时间:2009-04-13
价格:USD 48.00
装帧:Paperback
isbn号码:9780521896061
丛书系列:
图书标签:
  • TinyOS
  • nesC
  • Sensor
  • 程序设计
  • wsn
  • motes
  • ZigBee
  • Programming
  • TinyOS
  • 嵌入式系统
  • 传感器网络
  • 无线通信
  • 操作系统
  • C语言
  • 编程
  • 开发
  • 无线传感器网络
  • 物联网
想要找书就要到 图书目录大全
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

This book provides an in-depth introduction to writing nesC code for the TinyOS 2.0 operating system.

While it goes into greater depth than the TinyOS tutorials on this subject, there are several topics that are

outside its scope, such as the structure and implementation of radio stacks or existing TinyOS libraries. It

focuses on how to write nesC code, and explains the concepts and reasons behind many of the nesC and

TinyOS design decisions. If you are interested in a brief introduction to TinyOS programming, then you

should probably start with the tutorials. If you’re interested in details on particular TinyOS subsystems you

should probably consult TEPs (TinyOS Enhancement Proposals), which detail the corresponding design

considerations, interfaces, and components. Both of these can be found in the doc/html directory of a

TinyOS distribution.

While some of the contents of this book are useful for 1.x versions of TinyOS, they do have several

differences from TinyOS 2.0 which can lead to different programming practices. If in doubt, referring to the

TEP on the subject is probably the best bet, as TEPs often discuss in detail the differences between 1.x and

2.0.

For someone who has experience with C or C++, writing simple nesC programs is fairly straightforward:

all you need to do is implement one or two modules and wire them together. The difficulty (and intellectual

challenge) comes when building larger applications. The code inside TinyOS modules is fairly analogous to

C coding, but configurations – which stitch together components – are not.

This book is a first attempt to explain how nesC relates to and differs from other C dialects, stepping

through how the differences lead to very different coding styles and approaches. As a starting point, this

book assumes that

1. you know C, C++, or Java reasonably well, understand pointers and that

2. you have taken an undergraduate level operating systems class (or equivalent) and know about concurrency,

interrupts and preemption.

Of course, this book is as much a description of nesC as it is an argument for a particular way of using

the language to achieve software engineering goals. In this respect, it is the product of thousands of hours of

work by many people, as they learned and explored the use of the language. In particular, Cory Sharp, Kevin

Klues, and Vlado Handziski have always pushed the boundaries of nesC programming in order to better

understand which practices lead to the simplest, most efficient, and robust code. In particular, Chapter 10 is

an edited version of a paper we wrote together, while using structs as a compile-time checking mechanism

in interfaces (as Timer does) is an approach invented by Cory.

This book is divided into four parts. The first part, Chapters 1–2, gives a high-level overview of TinyOS

and the nesC language. The second part, Chapters 3–7 goes into nesC and TinyOS at a level sufficient

for writing applications. The third part, not included in this online version of the text, goes into more

advanced TinyOS and nesC programming, as is sometimes needed when writing new low-level systems or

high performance applications. The book ends with an appendix summarizing the basic application-level

TinyOS APIs.

深入理解与实践嵌入式系统设计:面向资源的实时操作系统构建与优化 本书将带领读者穿越嵌入式系统设计的核心领域,专注于构建高效、可靠、资源受限环境下的实时操作系统(RTOS)框架。我们聚焦于一种独特的、以事件驱动和资源抽象为核心的设计哲学,旨在为物联网(IoT)、传感器网络、低功耗设备等新兴应用提供坚实的技术基石。 本书并非聚焦于特定厂商的商业化操作系统或某一特定硬件架构的快速入门指南,而是致力于揭示构建一个健壮、可扩展的微内核或精简型实时内核所需的深层原理、设计权衡以及底层实现细节。我们的目标是培养读者从零开始设计和优化嵌入式操作系统的能力,而非仅仅停留在使用API的层面。 第一部分:嵌入式系统与实时性基础重构 本部分将系统地回顾和深化读者对嵌入式系统环境的理解,强调在资源极端受限条件下的设计哲学转变。 第一章:资源受限环境下的系统抽象挑战 我们将首先探讨传统操作系统的设计冗余在微控制器环境下的不可承受性。重点分析内存(RAM/ROM)、CPU周期、功耗预算这三大核心约束如何重塑操作系统的设计范式。讨论如何识别和消除“不必要的抽象层”,并引入面向消息传递与状态机的轻量级任务模型。 第二章:实时性的严格定义与度量 深入解析硬实时、软实时与不可实时系统的区别。详细阐述确定性(Determinism)的工程含义,而非仅仅关注平均响应时间。我们将用数学工具(如最坏情况执行时间分析WCET)来量化调度策略的有效性,并引入时间约束分析(TCA)的概念,为后续的调度器设计奠定严格的理论基础。 第三章:中断驱动与任务调度的基本原理 本章将细致剖析中断服务程序(ISR)的设计原则,强调最小化ISR内的工作量以及如何安全地与内核进行交互。随后,我们将从头构建几种基础调度算法:从静态优先级的固定优先级抢占式调度(FPPS),到更复杂的基于截止时间的调度(EDF)及其在嵌入式环境下的实际局限性与优化。 第二部分:面向消息的内核设计与内存管理哲学 本部分是本书的核心,它摒弃了传统内核中基于共享内存的复杂同步机制,转向更具韧性的、基于异步通信的内核模型。 第四章:轻量级进程间通信(IPC)机制的构建 我们将探讨替代传统信号量和互斥锁的、更适合微内核架构的IPC方法。重点设计和实现基于“信箱”(Mailbox)和“端口”(Port)的消息传递系统。详细分析消息的拷贝、引用计数或零拷贝传输策略,并论证这种模型如何天然地缓解优先级反转和死锁问题。 第五章:静态分配与运行时碎片控制的内存管理 在RAM极其有限的系统中,动态内存分配是灾难性的。本章将完全摒弃标准的`malloc/free`实现。我们转向内存池(Memory Pooling)和块分配器(Block Allocator)的设计。读者将学习如何为特定类型的数据结构预先分配固定大小的内存块,以及如何设计一个能抵抗碎片化并能快速回收的专有堆管理器。 第六章:高效的上下文切换与硬件抽象层(HAL) 上下文切换的开销是实时系统性能的关键瓶颈。本章将深入汇编层面,剖析寄存器组保存与恢复的优化技巧。同时,我们将构建一个清晰的硬件抽象层(HAL),分离操作系统核心逻辑与特定微控制器的寄存器操作,确保内核的可移植性。 第三部分:设备驱动模型与功耗优化策略 一个完整的操作系统必须能有效地管理外部设备,并能适应电池供电的需求。 第七章:事件驱动的异步设备驱动模型 传统的阻塞式驱动模型会浪费大量CPU周期。本章将设计一个异步、非阻塞的驱动框架。驱动程序不再主动轮询,而是通过注册回调函数(Callback)来响应内核事件或硬件中断。我们将以一个通用的I2C或SPI总线驱动为例,演示如何将异步请求转化为精确的时间窗口操作。 第八章:功耗敏感型调度与睡眠管理 对于电池供电设备,操作系统必须具备深度睡眠和快速唤醒的能力。本章将探讨如何将系统功耗状态(如休眠模式、低频运行)纳入调度器的决策过程。设计一种功耗感知调度器,该调度器在满足实时性约束的前提下,倾向于将系统置于最低能耗模式,并精确管理唤醒源的选择。 第九章:系统验证、调试与固件更新 构建一个实时的、资源受限的系统需要强大的验证手段。本章介绍静态分析工具的应用,特别是在内存访问和时序依赖性上的应用。同时,我们将讨论如何在不依赖传统调试端口的情况下,实现安全的空中固件更新(OTA)机制,确保关键性部署的韧性。 总结与展望 本书提供了一条严谨、自底向上的学习路径,旨在让读者彻底掌握嵌入式实时内核的设计艺术。完成本书的学习,读者将具备设计和实现一个满足特定资源约束和时间需求的自定义微内核的能力,为下一代嵌入式智能系统的开发奠定不可动摇的工程基础。 面向读者: 对操作系统原理有基础了解,渴望深入嵌入式领域,尤其是对实时性、资源优化和底层系统构建有强烈兴趣的软件工程师、系统架构师以及高级电子工程专业学生。本书要求读者具备C语言的精湛能力和对计算机体系结构的深刻理解。

作者简介

目录信息

读后感

评分

对于用nesC来进行节点程序开发的人来说,此书真是一本不错的参考书。不仅对nesC语言的细节进行了描述,而且对TinyOS进行了深入解析,值得一看。

评分

对于用nesC来进行节点程序开发的人来说,此书真是一本不错的参考书。不仅对nesC语言的细节进行了描述,而且对TinyOS进行了深入解析,值得一看。

评分

对于用nesC来进行节点程序开发的人来说,此书真是一本不错的参考书。不仅对nesC语言的细节进行了描述,而且对TinyOS进行了深入解析,值得一看。

评分

对于用nesC来进行节点程序开发的人来说,此书真是一本不错的参考书。不仅对nesC语言的细节进行了描述,而且对TinyOS进行了深入解析,值得一看。

评分

对于用nesC来进行节点程序开发的人来说,此书真是一本不错的参考书。不仅对nesC语言的细节进行了描述,而且对TinyOS进行了深入解析,值得一看。

用户评价

评分

我必须说,《TinyOS Programming》这本书,是近期我看过的最“硬核”也最“实在”的技术书籍之一。作为一名多年从事嵌入式系统开发的工程师,我深知掌握一门操作系统的精髓对于提升开发效率和软件质量的重要性。TinyOS以其独特的“组件式”架构,吸引了众多开发者,但要真正驾驭它,确实需要一本优秀的指导手册。《TinyOS Programming》恰恰满足了这一需求。作者在书中对TinyOS的“通信模型”(Communication Model)进行了非常深入的剖析。他详细介绍了TinyOS是如何通过“接口”(Interface)来实现组件之间的解耦和通信,以及“命令”(Command)和“事件”(Event)在通信过程中的作用。这让我对TinyOS的模块化设计有了更深刻的理解。我特别欣赏书中关于“错误处理”(Error Handling)和“异常处理”(Exception Handling)的章节。作者提供了一些非常实用的技巧和策略,教我如何有效地处理TinyOS程序运行时可能出现的各种错误,从而提高程序的健壮性。书中还包含了一些关于“功耗优化”(Power Optimization)的实用技巧,这对于开发低功耗的嵌入式设备至关重要。我曾在开发一个需要长时间运行的无线传感器节点时,为功耗问题头疼不已,而通过阅读书中相关的章节,我才真正明白了如何从软件层面进行功耗管理。这本书的深度和广度都令人印象深刻,它为我提供了一个全新的视角来理解和开发TinyOS应用程序。

评分

我可以说,《TinyOS Programming》这本书,绝对是我在嵌入式开发领域的一笔“宝藏”。作为一名在无线传感器网络领域深耕多年的工程师,我深知TinyOS在这一领域的统治地位。然而,要真正掌握其精髓,并将其潜力发挥到极致,一本优秀的参考书是必不可少的。《TinyOS Programming》恰恰扮演了这一关键角色。作者在书中对TinyOS的“事件处理”(Event Handling)机制进行了极为详尽的阐述。他不仅解释了TinyOS是如何通过事件来驱动程序的运行,还深入分析了事件的优先级、事件的传播以及事件的响应机制。这让我对TinyOS的异步编程模型有了更深刻的理解。我尤其喜欢书中关于“硬件抽象层”(Hardware Abstraction Layer, HAL)的讲解。作者详细介绍了TinyOS的HAL是如何封装底层硬件细节,使得应用程序能够更加方便地移植到不同的硬件平台。书中还提供了一些关于“网络路由”(Network Routing)和“数据传输”(Data Transmission)的实现示例,这对于我研究和开发大规模的传感器网络应用非常有启发。我曾尝试自己实现一个简单的网络路由协议,但遇到了很多技术难题,而通过阅读书中提供的参考实现,我才真正明白了其中的关键技术。这本书的结构非常严谨,逻辑清晰,让我能够系统地学习TinyOS的方方面面。从基础概念到高级应用,这本书都提供了非常详尽的指导。

评分

我对《TinyOS Programming》这本书的评价,简直是溢于言表!我是一名正在攻读嵌入式系统方向的博士生,对于低功耗无线传感器网络的研究尤为感兴趣。TinyOS作为这个领域的重要操作系统,其精妙的设计一直让我着迷。然而,真正深入理解它,并能灵活运用,确实需要一本 berkualitas tinggi 的教材。这本书恰恰扮演了这一角色。作者在开篇就对TinyOS的“Tiny”理念做了深刻的阐释,强调了其资源受限环境下的优势,并详细介绍了其“事件驱动”和“协作式多任务”的调度机制。这为我后续的学习打下了坚实的基础。书中对“组件”(Component)和“接口”(Interface)的讲解,尤其是我认为最具价值的部分。它不仅清晰地定义了这两个核心概念,还通过大量实例展示了如何通过组合和实现接口来构建复杂的应用。我特别喜欢书中对“Radio”组件和“Active Message”协议的深入剖析,这对于我进行无线通信相关的研究至关重要。作者详细讲解了数据包的封装、传输、接收以及 ACK 机制,让我对无线通信的底层运作有了更透彻的理解。书中还涉及了 TinyOS 的内存管理和功耗优化策略,这些内容对于设计高效、低功耗的传感器节点至关重要。我曾经在设计自己的传感器节点时,为功耗问题头疼不已,而通过学习这本书中的相关章节,我才真正明白了如何从软件层面进行功耗优化。总之,这本书不仅是一本技术手册,更是一部能够激发读者创新思维的宝典。

评分

《TinyOS Programming》这本书的质量,只能用“惊艳”来形容。我是一个对细节有着近乎偏执追求的读者,而这本书恰恰满足了我这种“挑剔”。作者在讲解TinyOS的API时,并没有停留在表面,而是深入挖掘了每一个函数、每一个数据结构背后的设计意图和实现原理。例如,在介绍TinyOS的定时器机制时,书中不仅仅列出了如何创建和使用定时器,还详细阐述了定时器的精度、唤醒方式以及与中断之间的关系,这对于需要精确控制时间的应用场景至关重要。我还特别欣赏书中对于“状态机”在TinyOS编程中的应用讲解。作者通过生动的比喻和清晰的图示,将复杂的状态迁移过程可视化,让我更容易理解如何设计和实现健壮的应用程序。很多时候,在开发过程中遇到的死锁或资源竞争问题,都可以通过书中提供的状态机设计模式来规避。此外,这本书在错误处理和调试方面也提供了宝贵的指导。书中介绍了一些非常有用的调试工具和技巧,例如如何利用打印语句来追踪程序运行,如何分析堆栈信息来定位问题,以及如何利用TinyOS提供的调试接口来监控系统状态。这些都是我在实际开发中屡试不爽的“秘籍”。我曾经花了很多时间去学习如何高效地调试TinyOS程序,而这本书无疑为我节省了大量的时间和精力。它不仅仅是一本技术书籍,更像是一位经验丰富的导师,在我遇到困难时,总能及时地给出最有效的解决方案。阅读这本书的过程中,我感觉自己对TinyOS的理解上升到了一个新的高度,能够更自信地应对各种复杂的应用开发挑战。

评分

《TinyOS Programming》这本书,可以说是为我打开了“新世界”的大门。我是一名对物联网和嵌入式技术充满好奇的学习者,TinyOS凭借其在无线传感器网络领域的广泛应用,一直是我想要深入了解的目标。在阅读这本书之前,我对TinyOS的理解大多停留在“听说过”的阶段,对其内部运作机制知之甚少。这本书则以一种非常系统且深入的方式,带领我一步步探索TinyOS的奥秘。作者在书中对TinyOS的“调度器”(Scheduler)进行了非常详尽的讲解。他不仅介绍了TinyOS的“协作式多任务”(Cooperative Multitasking)调度机制,还深入分析了任务之间的优先级和调度策略。这让我明白了TinyOS是如何在资源受限的环境下高效地管理多个任务的。我特别欣赏书中关于“内存管理”(Memory Management)的章节。作者详细介绍了TinyOS的内存分配机制,以及如何避免内存泄漏和溢出等问题。这对于开发稳定可靠的嵌入式程序至关重要。书中还包含了一些关于“传感器数据融合”(Sensor Data Fusion)的示例,这让我能够将所学的知识应用到更复杂的应用场景中。我曾在开发一个需要整合多个传感器数据的应用时,遇到了很多技术挑战,而通过阅读书中提供的示例代码和讲解,我才真正明白了如何设计和实现一个高效的数据融合系统。这本书的语言风格非常清晰流畅,既有严谨的学术深度,又不失通俗易懂的表达。

评分

这本书,可以说是为数不多能够真正让我“沉浸其中”的技术书籍。我是一名对物联网和嵌入式系统开发充满热情的爱好者,TinyOS一直是我非常感兴趣的一个平台。在接触《TinyOS Programming》之前,我尝试过一些网上的教程和零散的文档,但总感觉缺乏系统性和深度。这本书则完全不同,它以一种非常“友善”且“专业”的方式,引导我一步步探索TinyOS的精髓。我特别喜欢书中对“任务”(Task)和“事件”(Event)之间关系的讲解。作者非常形象地解释了TinyOS如何通过事件来触发任务的执行,以及如何在这种异步的编程模型下编写清晰、可维护的代码。书中还详细介绍了TinyOS的“电量管理”(Power Management)机制,这对于开发低功耗设备的应用非常关键。我尤其对书中关于“Sleep Mode”和“Wake-up Source”的讲解印象深刻,这让我能够更好地理解如何在TinyOS中实现节能策略。此外,书中还提供了一些非常实用的“调试技巧”,例如如何使用printf进行调试,如何分析TinyOS的日志信息,以及如何利用IDE来辅助开发。这些技巧对于我在实际开发过程中解决遇到的各种问题,提供了极大的帮助。我曾在开发一个传感器网络项目时,遇到了难以追踪的bug,而通过书中介绍的调试方法,我很快就定位了问题所在,并成功解决了。这本书的阅读体验非常流畅,语言通俗易懂,但又不失专业深度。它既适合初学者入门,也适合有一定基础的开发者进一步提升。

评分

这本书简直是为我量身定做的,我一直在寻找一本能让我深入理解TinyOS底层运作的书,而《TinyOS Programming》正是满足了我所有的期待。刚拿到手的时候,我就被它厚实的封皮和略带学术气息的排版吸引住了。翻开第一页,我就被作者严谨的逻辑和清晰的思路所折服。它不像市面上很多教程那样,只是简单地罗列API和示例代码,而是花了大量篇幅去解释TinyOS的设计哲学,例如它的任务调度机制、事件驱动模型,以及组件之间的通信方式。尤其是关于“组件”和“接口”的讲解,让我茅塞顿开,终于理解了TinyOS这种模块化设计的强大之处。作者通过循序渐进的方式,从最基础的概念讲起,逐步深入到更复杂的调度算法和内存管理。对于一些初学者可能会感到困惑的同步和互斥问题,书中也提供了非常详尽的解释和实用的技巧,让我少走了很多弯路。我特别喜欢书中对一些经典TinyOS应用的剖析,比如传感器网络的数据采集和路由协议的实现。这些案例不仅贴合实际应用场景,而且代码讲解得非常细致,让我能够一步步地模仿和学习。阅读过程中,我常常会合上书本,思考书中提出的问题,然后在自己的TinyOS环境中进行验证,这种主动学习的过程让我受益匪浅。虽然我之前有过一些嵌入式开发的经验,但TinyOS独特的模型确实需要一个好的引导者,而这本书无疑就是那位最称职的向导。我曾试图通过阅读官方文档来学习,但碎片化的信息和晦涩的术语常常让我望而却步。这本书则将这些分散的知识点系统地组织起来,形成了一个完整的知识体系,让我能够更有效地吸收和掌握。从理解TinyOS的核心概念,到学会编写高效的应用程序,这本书都为我提供了坚实的基础。

评分

《TinyOS Programming》这本书,简直是我的“救星”!作为一名在物联网公司工作的开发者,我经常需要处理各种嵌入式设备的开发和维护工作,而TinyOS则是我经常打交道的操作系统之一。在此之前,我对TinyOS的理解大多停留在“会用”的层面,但对其底层原理和高级特性却知之甚少。这本书的出现,彻底改变了我的认知。作者在书中对TinyOS的“组件化设计”理念做了非常深入的剖析,让我明白了TinyOS是如何通过将功能封装到独立的组件中,并利用接口进行通信,从而实现高度的模块化和可重用性。我特别喜欢书中关于“ADC”(模数转换器)和“UART”(通用异步收发传输器)等硬件抽象层(HAL)的讲解。作者详细介绍了如何通过TinyOS的HAL接口来访问和控制底层硬件,这让我能够更方便地将TinyOS移植到不同的硬件平台上。书中还提供了一些关于“固件升级”(Firmware Update)和“网络协议栈”(Network Stack)的实现细节,这些内容对于我开发和维护大规模的物联网设备至关重要。我曾在开发一个需要远程升级固件的设备时,遇到了很多技术难题,而通过阅读这本书中的相关章节,我才真正理解了实现可靠固件升级的各种方法和注意事项。这本书的结构非常清晰,章节之间的逻辑性很强,让我能够循序渐进地学习。从基础概念到高级应用,这本书都覆盖得非常全面。

评分

阅读《TinyOS Programming》这本书,对我来说是一次“颠覆性”的学习体验。我一直对嵌入式系统,尤其是对那些资源受限的设备上的软件开发充满兴趣。TinyOS以其小巧、高效的特点,自然成为了我关注的焦点。在这本书之前,我曾零散地接触过一些关于TinyOS的资料,但始终觉得缺乏一个系统性的框架。而这本书,恰恰填补了我的这一空白。作者在书中对TinyOS的“多任务”和“中断处理”机制做了非常细致的阐述。他不仅仅介绍了如何创建任务和注册中断,还深入讲解了任务之间的优先级、中断的响应时间和优先级,以及如何避免竞态条件。这对于编写稳定、可靠的嵌入式程序至关重要。我特别欣赏书中关于“信号量”(Semaphore)和“互斥锁”(Mutex)的讲解。作者通过清晰的图示和示例代码,展示了如何在TinyOS中利用这些同步机制来保护共享资源,从而避免多任务并发访问时可能出现的错误。这对我理解和解决并发编程中的难题非常有帮助。此外,书中还包含了一些关于“传感器网络通信协议”(Sensor Network Communication Protocols)的实现示例,这对于我研究和开发无线传感器网络应用非常有启发。我曾尝试自己实现一个简单的网络协议,但遇到了很多挑战,而通过阅读书中提供的参考实现,我才真正明白了其中的关键技术。

评分

《TinyOS Programming》这本书,简直是我学习TinyOS路上的“指路明灯”。我是一名对嵌入式软件开发充满热情的学生,TinyOS作为无线传感器网络领域的重要操作系统,一直是我想要深入了解的目标。在这本书之前,我对TinyOS的理解更多地停留在字面意思,比如“小巧”和“事件驱动”。然而,这本书则以一种极为深入且易于理解的方式,向我揭示了TinyOS的内在逻辑。作者在书中对TinyOS的“状态机”(State Machine)设计模式进行了非常详尽的阐述。他不仅解释了状态机的基本概念,还演示了如何在TinyOS中有效地实现状态机,以管理复杂的应用程序逻辑。我尤其喜欢书中关于“定时器”(Timer)和“中断”(Interrupt)的讲解。作者详细介绍了TinyOS如何利用定时器和中断来实现精确的时间控制和响应,以及如何在这种异步的环境下编写高效的代码。书中还包含了一些关于“节点管理”(Node Management)和“数据收集”(Data Collection)的实际应用案例,这让我能够将所学的知识应用到实际的传感器网络场景中。我曾在开发一个需要周期性收集传感器数据的设备时,遇到了很多技术难题,而通过阅读书中提供的示例代码和讲解,我才真正明白了如何设计和实现一个健壮的数据收集系统。这本书的语言风格非常吸引人,既有学术的严谨性,又不失通俗易懂。

评分

看死老子了,全尼玛protocol和interfface

评分

看在Dr. Levis的份上。不过感觉wiki的资源就够用了

评分

最高分是给tinyos的,只看这本书信息还不够,但此书已经足够好,尤其是后面的design pattern

评分

看死老子了,全尼玛protocol和interfface

评分

看死老子了,全尼玛protocol和interfface

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.wenda123.org All Rights Reserved. 图书目录大全 版权所有