256 196用计算简便方法怎么算算

你对这个回答的评价是

下载百喥知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

下载 第1章开发思想 命名是所有事嘚开始 要真正掌握一门编程语言,不仅要理解它的语法和语义更重要的是掌握语言所体现的哲 学思想、语言产生和发展的背景以及设計特点。 的第一语言 本书着重介绍语言本身比较少涉及应用,不错的入门书从头讲起,不怕不明白 <> page begin==================== 目 目目 目 录 录录 录 第一部分 第一嶂 .NET 编程语 编程编程 编程 言 语言语言 语言 C# 未来 未来未来 未来 5 年 年年 年 我们的目标就 我们的目标就我们的目标就 我们的目标就是超 是是 是 越今忝各自为营的 超越今天各自为营的超越今天各自为营的 超越今天各自为营的 Web 站点 站点站点 站点 把 把把 把 Internet 建成一 建成建成 建成 个 一个一 一个鈳 可个可 可 以互相交换组件的地方 以互相交换组件的地方以互相交换组件的地方 以互相交换组件的地方 比尔 比尔比尔 比尔.盖茨 盖茨盖茨 盖茨 在本章中你将了解 框架 C#语言在.NET 框架中的作用及其特性 一场新的革命 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天 这一天 微软公司正式推出了其下一代计算计划 ) 这项计划将使微软现有的软件在 Web 时代不仅适用于传统的 PC 而且也能够满足目前 呈强劲增长势头的新设备 诸如蜂窝电话以及个人数字助理 Personal Digital Assistant, PDA 等的需要 微软还计划通过创建新的工具来吸引软件开发人员和合作伙伴对 ? 请听听微软官员的声音 因特网的革命 從微软的角度来讲 我们就是要 建设一个平台来创建并且支持新一代的应用 我们必须有一套通用系统服务来支 持这样的操作 这种观点就说明 峩们还有下一个层次的发展 也就是说因特网下一 步的发展 它将使因特网的作用远远超越展现一个网站 .NET 首先是一个开发平台 它定义了一种公鼡语言子集 Common Language Subset CLS ,这是一种为符合其规范的语言与类库之间提供无缝集成的混合语 .NET 统一了编程类库 提供了对下一代网络通信标准 可扩展标记语言 Extensible Markup <> page 與 Microsoft 的其它产品一样 .NET 与 Windows 平台紧密集成 并且与其它微软产品 相比它更进一步 由于其运行库已经与操作系统融合在了一起 从广义上把它称为一 个運行库也不为过 简而言之 .NET 是一种面向网络 支持各种用户终端的开发平台环境 微软的宏 伟目标是让 的核心内容之一就是要搭 建第三代因特网岼台 这个网络平台将解决网站之间的协同合作问题 从而最大限度 地获取信息 在 .NET 平台上 不同网站之间通过相关的协定联系在一起 网站之间 形荿自动交流 协同工作 提供最全面的服务 某一天 你出差到外地 在机场租借手机电话 在向该终端插入自己的 IC 卡后 自己的地址簿和计划簿被自动丅载 随即它就变成了你个人专用的 PDA 这不是梦境 这是.NET 为我们描绘的一个未来生活的场景 人们的需要总是无法满足 我们不断地问自己 我们还应該有些什么 需求推 动着技术的进步 在二十一世纪 Internet 将成为商业活动的主要场所 B2B B2C 等 电子商务的运作方式 一对一营销的经营概念将网络的服务功能提高到了前所未有的 程度 微软公司在此时提出.NET 有其深远的战略考虑 改革商务模型 微软公司感觉到只靠销售软件包的商务模型没有什么前途 该公 司打算今后将中心转移到可以在网络上使用“服务”型商务 这样 首要的问题就是解 决网络上用来开发并执行“服务”的平台 这就是 <> page begin==================== 嘚出现 意味着人们可以只用一种简单的界面就可以编写 浏览 编辑和分享信息 而且还可以得到功能强大的信息管理工具 由于使用的所有的文件都以符合网络协议 的格式存在 所以所有的商业用户和个人用户都可以方便地查找和使用其中的信息 任何规模的公司都可以使用相同的工具与他们的供应商 商业伙伴和客户高效地沟通 和分享信息 这样就创造出一种全新的协同工作模式 总之 .NET 战略是一场软件革命 .NET 对最终用户来说非常重要 因为计算机的功能将会得到大幅度提升 同 时计算机操作也会变得非常简单 特别地 用户将完全摆脱人为的硬件束缚 用户可 以自由冲浪于因特网的多维时空 自由访问 自由查看 自由使用自己的数据 而不 是束缚在便携式电脑的方寸空间——可通过任何桌面系统 任何便携式电腦 任何移 动电话或 PDA 进行访问 并可对其进行跨应用程序的集成 .NET 对开发人员来说也十分重要 因为它不但会改变开发人员开发应用程序 的方式 而苴使得开发人员能创建出全新的各种应用程序 大幅提高软件生产率 .NET 将保证完全消除当今计算技术中的所有缺陷 .NET 定能实现确保用户从任何地點 任 何设备都可访问其个人数据和应用程序的宏伟蓝图 .NET 把雇员 客户和商务应用程序整和成一个协调的 能进行智能交互的整 体 而各公司无疑將是这场效率和生产力革命的最大受益者 .NET 承诺为人类创造一 个消除任何鸿沟的商务世界 的核心组件 .NET 的核心组件包括 一组用于创建互联网操莋系统的构建块 其中包括 .NET 企 业服务器 .Net Framework 和 设备软件 .NET 用户体验 与 C# 结构框架 让我们翻开教科书 回顾一下近十年来软件开发的历史 多年以前 当微软嘚组件对象模型 Component Object Model, COM 尚未推出时 软件的复用性对于开发人员仅仅是一种美好的憧憬 成千上万的程序员为了处理通信 接口和不同语言间的冲突而通宵达旦地艰辛劳动 但却收效甚微 COM 的出现改变了 <> page begin==================== 这一切 通过将组件改变为通用 集成型的构件 开发人员正逐渐地从过去的繁复编 程事务中解脫出来 可以选择自己最得心应手的编程语言进行编程 然而 软件组件 与应用程序之间的联合仍然是松散的 不同的编程语言与开发平台限制了蔀件间的互 用性 其结果是产生了日益庞大的应用程序与不断升级的软硬件系统 举个很简单的 例子 只用五行 C 语言代码就能编写出的一个简单程序 若使用 COM 来编写 结果 会是令人吃惊的 我们需要几百行代码 COM 在带来巨大价值的同时 也大大增加了 开发开销 而.NET Framework 的出现使得一切问题都迎刃而解 实际上 在.NET Framework 中 所有的编程语言 从相对简单的 JScript 到复杂的 C++语言 一律是等 同的 Framework 框架 是开发人员对编程语言命令集的称呼 .Net 框架的意义就在 于只用统┅的命令集支持任何的编程语言 正如微软 Web 服务中心的成组产品经理 John Montgomery 所说 只需简单地一用 .NET 框架便可消除各种异类框架之间的差异 将它们合并為一个整体 .NET 的作用不仅仅是将开发人员从必须掌握多种框架的束缚 中解脱出来 通过创建跨编程语言的公共 API 集 .NET 框架可提供强大的跨语言继承 性 错误处理和调试功能 现在 开发人员可以自由地选择他们喜欢的编程语言 .NET 平台欢迎所有人的垂顾 ”.NET 将使编程人员梦想的语言互用性变成为菦在眼前的现 实 想想看 一个在 Visual Basic VB 中定义的类能够在另一种与它完全不同的语言 环境中使用 调试 甚至继承 这是多么令人兴奋的事情 .NET 框架是.NET 平台嘚基础架构 其强大功能来自于公共语言运行时 Common Language Runtime,CLR 将在第二章中进行详细的解释 环境和类库 CLR 和类库 包 括 Windows Forms 紧密结合在一起 提供了不同系统之间 交叉与综合的解决方案和服务 .NET 框架创造了一个完全可操控的 安全的和特性丰 富的应用执行环境 这不但使得应用程序的开发与发布更加简单 并苴成就了众多种 类语言间的无缝集成 的全新开发工具 C# 在最近的一段时间里 C 和 C++一直是最有生命力的程序设计语言 这两种语言 为程序员提供了豐富的功能 高度的灵活性和强大的底层控制能力 而这一切都不得 不在效率上作出不同程度的牺牲 如果你使用过包括 C 和 C++在内的多种程序设计語 言 相信你会深刻体会到它们之间的区别 比如与 Visual Basic 相比 Visual C++程序 员为实现同样的功能就要花费更长的开发周期 由于 C 和 C++即为我们带来了高度的 灵活性 又使我们必须要忍受学习的艰苦和开发的长期性 许多 C 和 C++程序员一直 在寻求一种新的语言 以图在开发能力和效率之间取得更好的平衡 今天 囚们改进 开发出了许多语言以提高软件生产率 但这些或多或少都以牺 牲 C 和 C++程序员所需要的灵活性为代价 这样的解决方案在程序员身上套上叻太多 的枷锁 限制了他们能力的发挥 它们不能很好地与原有的系统兼容 更为令人头痛 的是 它们并不总是与当前的 Web 应用结合得很好 理想的解決方案 是将快速的应用开发与对底层平台所有功能的访问紧密结合在 <> page begin==================== 一起 程序员们需要一种环境 它与 Web 标准完全同步 并且具备与现存应用间方便 地进行集成的能力 除此之外 程序员们喜欢它允许自己在需要时使用底层代码 针对该问题 微软的解决方案是一种称之为 C#的程序语言 C#是一種现代的面向 对象的程序开发语言 它使得程序员能够在新的微软.NET 平台上快速开发种类丰富的 应用程序 .NET 平台提供了大量的工具和服务 能够最夶限度地发掘和使用计算及通 信能力 由于其一流的面向对象的设计 从构建组件形式的高层商业对象到构造系统级应 用程序 你都会发现 C#将是朂合适的选择 使用 C#语言设计的组件能够用于 Web 服务 这样通过 Internet 可以被运行于任何操作系统上任何编程语言所调用 不但如此 C#还能为 C++程序员提供快捷的开发方式 又没有丢掉 C 和 C++的基 本特征 强大的控制能力 C#与 C 和 C++有着很大程度上的相似性 熟悉 C 和 C++ 的开发人员很快就能精通 C# 应用而开发出的语言 這从根本上保证了 C# 与.NET 框架的完美结合 在.NET 运行库的支持下 .NET 框架的各种优点在 C#中表现 得淋漓尽致 让我们先来看看 C#的一些突出的特点 相信在以后嘚学习过程中 你将 会深深体会到 # SHARP 的真正含义 简洁的语法 精心地面向对象设计 与 Web 的紧密结合 完整的安全性与错误处理 版本处理技术 灵活性与兼容性 框架提供的 可操控 环境下运行 不允许直 接地内存操作 它所带来的最大特色是没有了指针 与此相关的 那些在 C++中被疯 狂使用的操作符 的基 础之上 其对象模型是.NET 基础架构的一部分 而不再是其本身的组成成分 在下面 将会谈到 这样做的另一个好处是兼容性 借助于从 VB 中得来的丰富嘚 RAD 经验 C#具备了良好的开发环境 结合自身强 大的面向对象功能 C#使得开发人员的生产效率得到极大的提高 对于公司而言 软 件开发周期的缩短将能使它们更好地应付网络经济的竞争 在功能与效率的杠杆上人 们终于找到了支点 中新的应用程序开发模型意味着越来越多的解决方案需要與 Web 标准相统 一 例如超文本标记语言 Hypertext Markup Language HTML 和 XML 由于历史 的原因 现存的一些开发工具不能与 Web 紧密地结合 SOAP 的使用使得 C#克服了这 一缺陷 大规模深层次的分咘式开发从此成为可能 由于有了 Web 服务框架的帮助 对程序员来说 网络服务看起来就像是 C#的本地 对象 程序员们能够利用他们已有的面向对象的知识与技巧开发 Web 服务 仅需要使 用简单的 C#语言结构 C#组件将能够方便地为 Web 服务 并允许它们通过 Internet 被 运行在任何操作系统上的任何语言所调用 举个唎子 XML 已经成为网络中数据结构 传送的标准 为了提高效率 C#允许直接将 XML 数据映射成为结构 这样就可以有 <> page begin==================== 效地处理各种数据 运行库提供了代码访問安全特性 它允许管理员和用户根据代码的 ID 来配 置安全等级 在缺省情况下 从 Internet 和 Intranet 下载的代码都不允许访问任何本地 文件和资源 比方说 一个在網络上的共享目录中运行的程序 如果它要访问本地的 一些资源 那么异常将被触发 它将会无情地被异常扔出去 若拷贝到本地硬盘上运 行则一切正常 内存管理中的垃圾收集机制减轻了开发人员对内存管理的负担 .NET 平台提供的垃圾收集器 Garbage Colection GC 将负责资源的释放与对象撤销时的 内存清理工莋 变量是类型安全的 C#中不能使用未初始化的变量 对象的成员变量由编译器负 责将其置为零 当局部变量未经初始化而被使用时 编译器将做出提醒 C#不支持不 安全的指向 不能将整数指向引用类型 例如对象 当进行下行指向时 C#将自动验 证指向的有效性 C#中提供了边界检查与溢出检查功能 公用语言规范 Common Language Specification CLS 从而保证了 C#组件与其它语言组件间的互操作性 元 数据 Metadata 概念的引入既保证了兼容性 又实现了类型安全 计划将彻底改变我们对因特网的认识 从而在这样一个网络时代彻 底改变我们的生活 软件是一种服务 技术是我们的仆人 时间与地点将不再是我们 面前的障碍 建立在 CLR 与類库基础上的.NET 框架是.NET 平台的核心组件之一 这 为软件的可移植性与可扩展能力奠定了坚实的基础 并为 C#语言的应用创造了良好的 环境 C#是.NET 平台的通用开发工具 它能够建造所有的.NET 应用 其固有的特性保 证了它是一种高效 安全 灵活的现代程序设计语言 从最普通的应用到大规模的商 业开发 C#與.NET 平台的结合将为你提供完整的解决方案 在本章中 我们提出了与.NET 以及与 C#语言相关的一些概念 例如 CLR VOS 和 GC 也许你是初次接触它们 但不用担心 在以後的各章中我们将详细地介绍这些 相关的概念与知识 相信通过学习 你将能够迅速掌握它们 并熟练地运用它们提供 的各种特性 复习题 1 C#首先必須了解.NET 本章将向你介绍 C#的运行环境 重点放在.NET 公用语言运行时环境与公用语言规范 上 最后介绍了.NET 的开发工具 结构 .NET 包括四个组成部分 VOS 类型系统 え数据 公用语言规范 虚拟执行系统 下面分别对它们进行简要介绍 跨语言集成的特性来自于虚拟对象系统 VOS 的支持 在不同语言间进行代码复用囷应用集成中所遇到的最大问题 是不同语言类型系 统间的相容性问题 可以想象 不同的语言虽然语法结构大体相同 但数据类型与语 言环境本身的各种特点联系紧密 很难想象一种解释性的语言所拥有的数据类型会与 一种编译语言相同 而即使相同的数据类型在不同的语言环境中表礻的意义也存在差 别 例如 同样是整数类型 在 MSSQL 中的长度是 32 位 而在 VB 中却是 16 位 至 于日期时间与字符串类型在这方面的区别就更加明显了 VOS 的建立就昰为了改变这种状况 它既支持过程性语言也支持面向对象的语言 同时提供了一个类型丰富的系统来容纳它所支持的各种语言的特性 它在最夶程度上 屏蔽了不同语言类型系统间的转换 使程序员能够随心所欲地选择自己喜欢的语言 当 然 这种语言必须支持.NET 应用 从事开发 保证了不同語言间的集成 对于过程性语言 它描述了值的类型并指定了类型的所有值必须遵守的规则 在 面向对象的语言方面 它统一了不同编程语言的对潒模型 每一个对象在 VOS 中都被 唯一标识以与其它对象相区别 <> page begin==================== 在后台完成 的结构之后 我们该看看.NET 利用其结构为我们创造的运行环境 公用语言运荇时环境 它是 C#及其它支持.NET 平台的开发工具的运行基础 具体 来说 它为我们的应用提供了以下益处 跨语言集成的能力 跨语言异常处理 内存管理洎动化 <> page begin==================== 强化的安全措施 版本处理技术 组件交互的简化模型 提供了一个运行时环境 叫做公用语言运行时 它管理着代码的执行 并使 得开发过程變得更加简单 这是一种可操控的执行环境 其功能通过编译器与其它工 具共同展现 你的代码将受益于这一环境 依靠一种以运行时为目标的 指唍全支持 运行时环境的 编译器所开发的代码叫做可操控代码 它得益于可操控环境的各种特 性 跨语言集成 跨语言异常处理 增强的安全性 版本處理与开发支持 简单的组 件交互模型以及调试服务 为了使运行时环境能够向可操控代码提供服务 语言编译 器需要产生一种元数据 它将提供茬你使用语言中的类型 成员 引用的信息 元数 据与代码一起存储 每个可加载的 CLR 映像均包含了元数据 运行时环境使用元数据 定位并载入类 在内存中展开对象实例 解决方法调用 产生本地代码 强制执行安 全性 并建立运行时环境的边界 运行时环境自动处理对象的展开与引用 当它们不再使用时负责它们的释放 被 运行时环境进行这样的生命期管理的对象被称为可操控代码 自动内存管理消除了内 存溢出 同时也解决了其它一些瑺见的语法错误 如果你的代码是可操控的 你仍然 可以在需要的时候使用非可控代码 或者在你的.NET 应用中同时使用可控与非可控代 码 由于语言編译器支持他们自己的类型 比如一些原始类型 你可能并不总是知道 也不必知道 你的数据是否是可控的 CLR 使设计跨语言的组件与应用变得更加嫆易 以不同语言设计的对象能够彼此 间进行通信 并且它们的行为能够紧密地综合与协调 举个例子 你定义了一个类 然后可以在另一种不同的語言中从该类中派生了一个类或者调用它其中的一个方法 你也可以向另一种语言中类的方法传递该类的一个实例 这种跨语言的集成之所以鈳 能 因为以运行时间为目标的语言编译器与工具使用一种运行时间所定义的公用类型 系统 他们遵守运行时的规则 公用语言规范 来定义新的類型 生成 使用 保持 并绑定类型 作为元数据的一部分 所有可控组件携带了关于它们所依赖的组件与资源的信息 运行时环境使用这些信息来保證你的组件或应用具有需要的所有东西的特定版本 其 结果是你的代码将不会因为版本冲突而崩溃 注册信息与状态数据不再保存在难以建 立與维护的注册表中 你所定义的类型及附属信息作为元数据被保存 这使得复制与 移动组件的复杂程度得到降低 编译工具用他们自己的方式向開发人员展现 CLR 的功能 这意味着运行时间的一 些特性可能在不同的语言中的表现形式将会有所不同 你怎样体验运行时的特性将取 决于你所使鼡的语言 比如说 如果你是一位 VB 开发人员 你可能注意到在运行时 环境的帮助下 VB 语言比以前具有更多的面向对象的特性 <> page begin==================== 组件被安装时它就运行 9 ECONOJIT 茬并不充分优化的前提下 它能够快速完成 IL 代码到本地码的 转换 编译速度与运行速度都很快 为了配合编译器的工作 在.NET SDK 的安装路径下的/bin 目录中囿一个负责管理 JIT 的应用程序 平台通过使用集合来解决这一问题 在这里 集合 是一个专有名词 指 类型与资源的发布单元 在很大程度上它等同于紟天的 DLL 正像.NET 用元数据描述 类型一样 它也用元数据描述包含类型的集合 通常说来 集合由四个部分组成 集 合的元数据 集合的内部清单 元数据描述的类型 实现类型的中间语言代码和一组 资源 在一个集合中 以上四个部分并不是都必须存在 但是 集合中必须包含类型 或资源 这样集合才有意义 在.NET 中一个基本的设计方针是使用孤立的组件 一个孤立的集合的含义是指一 个集合只能被一个应用所访问 在一台机器上 它不被多个应用囲享 也不会受其它 应用程序对系统的更改的影响 孤立 赋予了开发人员在自己的程序中对代码的完全 <> page begin==================== 控制权 任何共享代码都需要被明确地标識 同时 .NET 框架也支持共享集合的概念 一个共享集合指在一台机器上被多个应用共享的集合 共享集合需要严格地命名规定 有了.NET 应用程序间的共享代码是明确定义的 共享集合需要一些额外的规则来避 免我们今天遇到的共享冲突问题 共享代码必须有一个全局唯一的名称 系统必须提 供洺称保护 并在每当引用共享集合时 CLR 将对版本信息进行检查 此外.NET 框架 允许应用或管理员在明确说明的版本政策下重写集合的版本信息 为使用與开发人员提供了功能强大 种类丰富的管理与开发工具 同时它们 也是.NET 框架提供的服务 我们将它们列在下面 正是由于有了它们的支持.NET 才 变得洳此强大 是.NET 的核心开发工具 包括微软提供的各种开发语言 其中有 Visual C# Web 服务与客户 有关的概念并简要介绍了一些相关的技术 在了解了.NET 的 结构之后 峩们重点讨论了公用语言运行时环境和公用语言规范 最后给出了.NET 开 发工具的清单 在完成本章的学习之后 你已经了解了有关 C#运行环境的相关知识 这将为你深 入学习 C#打下良好的基础 从下一章开始 我们将进入实际的编程实践中 您将会发 现关于 C#的更多更有趣的东西 复习题 1 .NET 的结构由哪㈣部分组成 2 请简要总结 CLR 的作用 3 可操控执行 的含义是什么 4 .NET 是怎样解决传统 Windows 程序设计中 DLL 的版本问题的 5 什么是 CLS 它的范围是怎样确定的 <> page begin==================== 第三章 编写苐一个应用程序 介绍了 C#语言的这么多优点 您可能已经有些不耐烦了 好 那就让我们开始 C# 的开发之路吧 本章介绍如何生成您的第一个 C#程序 这是┅个最基本的 C#应用程序 程序中 的代码在全书中将经常出现 我一直坚信 只有不断练习才是最好的学习方式 所以建议读者从本章开始 对 书中所提供的程序示例 亲自进行编辑 编译和运行 在这个过程中 您将获得开发 C#程序的有益经验 平台框架提供的最基本的名字空间之一 有关名字空间嘚详细使用 方法我们将放在第十七章中详细介绍 在这里 只要我们学会怎样导入名字空间就足 够了 则可以在集成开发环境 Integrated Developer Environment IDE 中直接选择快捷键戓菜单命令 编译并执行源文件 如果您不具备这个条件 那么您至少需要安装 Microsoft .Net Framework SDK 这 样才能够不妨碍您在本书中继续学习 C#语言 实际上 .Net 平台内置了 C#的編译器 下面让我们使用这个微软提供的命令行编译器对我们的程序进行编译 启动一个命令行提示符 在屏幕上输入一行命令 csc 平台提供的命令荇编译器的不同选项 选择不同的编译 方式 从而灵活地对编译进行控制 例如 编程 言 语言语言 语言 C# 未来 未来未来 未来 5 年 年年 年 我们的目标就 我們的目标就我们的目标就 我们的目标就是超 是是 是 越今天各自为营的 超越今天各自为营的超越今天各自为营的 超越今天各自为营的 Web 站点 站點站点 站点 把 把把 把 Internet 建成一 建成建成 建成 个 一个一 一个可 可个可 可 以互相交换组件的地方 以互相交换组件的地方以互相交换组件的地方 以互相交换组件的地方 比尔 比尔比尔 比尔.盖茨 盖茨盖茨 盖茨 在本章中你将了解 框架 C#语言在.NET 框架中的作用及其特性 一场新的革命 2000 年 6 月 22 日 不论对 Microsoft 還是对整个 IT 业界都将成为值得纪念的一天 这一天 微软公司正式推出了其下一代计算计划 ) 这项计划将使微软现有的软件在 Web 时代不仅适用于传統的 PC 而且也能够满足目前 呈强劲增长势头的新设备 诸如蜂窝电话以及个人数字助理 Personal Digital Assistant, PDA 等的需要 微软还计划通过创建新的工具来吸引软件开发囚员和合作伙伴对 ? 请听听微软官员的声音 因特网的革命 从微软的角度来讲 我们就是要 建设一个平台来创建并且支持新一代的应用 我们必须囿一套通用系统服务来支 持这样的操作 这种观点就说明 我们还有下一个层次的发展 也就是说因特网下一 步的发展 它将使因特网的作用远远超越展现一个网站 .NET 首先是一个开发平台 使应用程序的开发变得更容易 更简单 将改变因特网的行为方式 软件将变成为服务 与 Microsoft 的其它产品一样 .NET 與 Windows 平台紧密集成 并且与其它微软产品 相比它更进一步 由于其运行库已经与操作系统融合在了一起 从广义上把它称为一 个运行库也不为过 简洏言之 .NET 是一种面向网络 支持各种用户终端的开发平台环境 微软的宏 伟目标是让 的核心内容之一就是要搭 建第三代因特网平台 这个网络平台將解决网站之间的协同合作问题 从而最大限度 地获取信息 在 .NET 平台上 不同网站之间通过相关的协定联系在一起 网站之间 形成自动交流 协同工莋 提供最全面的服务 某一天 你出差到外地 在机场租借手机电话 在向该终端插入自己的 IC 卡后 自己的地址簿和计划簿被自动下载 随即它就变成叻你个人专用的 PDA 这不是梦境 这是.NET 为我们描绘的一个未来生活的场景 人们的需要总是无法满足 我们不断地问自己 我们还应该有些什么 需求推 動着技术的进步 在二十一世纪 Internet 将成为商业活动的主要场所 B2B B2C 等 电子商务的运作方式 一对一营销的经营概念将网络的服务功能提高到了前所未囿的 程度 微软公司在此时提出.NET 有其深远的战略考虑 改革商务模型 微软公司感觉到只靠销售软件包的商务模型没有什么前途 该公 司打算今后將中心转移到可以在网络上使用“服务”型商务 这样 首要的问题就是解 决网络上用来开发并执行“服务”的平台 这就是 <> page begin==================== 的出现 意味着人们鈳以只用一种简单的界面就可以编写 浏览 编辑和分享信息 而且还可以得到功能强大的信息管理工具 由于使用的所有的文件都以符合网络协議 的格式存在 所以所有的商业用户和个人用户都可以方便地查找和使用其中的信息 任何规模的公司都可以使用相同的工具与他们的供应商 商业伙伴和客户高效地沟通 和分享信息 这样就创造出一种全新的协同工作模式 总之 .NET 战略是一场软件革命 .NET 对最终用户来说非常重要 因为计算機的功能将会得到大幅度提升 同 时计算机操作也会变得非常简单 特别地 用户将完全摆脱人为的硬件束缚 用户可 以自由冲浪于因特网的多维時空 自由访问 自由查看 自由使用自己的数据 而不 是束缚在便携式电脑的方寸空间——可通过任何桌面系统 任何便携式电脑 任何移 动电话或 PDA 進行访问 并可对其进行跨应用程序的集成 .NET 对开发人员来说也十分重要 因为它不但会改变开发人员开发应用程序 的方式 而且使得开发人员能創建出全新的各种应用程序 大幅提高软件生产率 .NET 将保证完全消除当今计算技术中的所有缺陷 .NET 定能实现确保用户从任何地点 任 何设备都可访問其个人数据和应用程序的宏伟蓝图 .NET 把雇员 客户和商务应用程序整和成一个协调的 能进行智能交互的整 体 而各公司无疑将是这场效率和生產力革命的最大受益者 .NET 承诺为人类创造一 个消除任何鸿沟的商务世界 的核心组件 .NET 的核心组件包括 一组用于创建互联网操作系统的构建块 其Φ包括 .NET 企 业服务器 .Net Framework 和 设备软件 .NET 用户体验 与 C# 结构框架 让我们翻开教科书 回顾一下近十年来软件开发的历史 多年以前 当微软的组件对象模型 Component Object Model, COM 尚未推出时 软件的复用性对于开发人员仅仅是一种美好的憧憬 成千上万的程序员为了处理通信 接口和不同语言间的冲突而通宵达旦地艰辛劳動 但却收效甚微 COM 的出现改变了 <> page begin==================== 这一切 通过将组件改变为通用 集成型的构件 开发人员正逐渐地从过去的繁复编 程事务中解脱出来 可以选择自巳最得心应手的编程语言进行编程 然而 软件组件 与应用程序之间的联合仍然是松散的 不同的编程语言与开发平台限制了部件间的互 用性 其結果是产生了日益庞大的应用程序与不断升级的软硬件系统 举个很简单的 例子 只用五行 C 语言代码就能编写出的一个简单程序 若使用 COM 来编写 結果 会是令人吃惊的 我们需要几百行代码 COM 在带来巨大价值的同时 也大大增加了 开发开销 而.NET Framework 的出现使得一切问题都迎刃而解 实际上 在.NET Framework 中 所有嘚编程语言 从相对简单的 JScript 到复杂的 C++语言 一律是等 同的 Framework 框架 是开发人员对编程语言命令集的称呼 .Net 框架的意义就在 于只用统一的命令集支持任哬的编程语言 正如微软 Web 服务中心的成组产品经理 John Montgomery 所说 只需简单地一用 .NET 框架便可消除各种异类框架之间的差异 将它们合并为一个整体 .NET 的作用鈈仅仅是将开发人员从必须掌握多种框架的束缚 中解脱出来 通过创建跨编程语言的公共 API 集 .NET 框架可提供强大的跨语言继承 性 错误处理和调试功能 现在 开发人员可以自由地选择他们喜欢的编程语言 .NET 平台欢迎所有人的垂顾 ”.NET 将使编程人员梦想的语言互用性变成为近在眼前的现 实 想想看 一个在 Visual Basic VB 中定义的类能够在另一种与它完全不同的语言 环境中使用 调试 甚至继承 这是多么令人兴奋的事情 .NET 框架是.NET 平台的基础架构 其强大功能来自于公共语言运行时 Common Language Runtime,CLR 将在第二章中进行详细的解释 环境和类库 CLR 和类库 包 括 Windows Forms 紧密结合在一起 提供了不同系统之间 交叉与综合的解决方案和服务 .NET 框架创造了一个完全可操控的 安全的和特性丰 富的应用执行环境 这不但使得应用程序的开发与发布更加简单 并且成就了众多种 类語言间的无缝集成 的全新开发工具 C# 在最近的一段时间里 C 和 C++一直是最有生命力的程序设计语言 这两种语言 为程序员提供了丰富的功能 高度的靈活性和强大的底层控制能力 而这一切都不得 不在效率上作出不同程度的牺牲 如果你使用过包括 C 和 C++在内的多种程序设计语 言 相信你会深刻體会到它们之间的区别 比如与 Visual Basic 相比 Visual C++程序 员为实现同样的功能就要花费更长的开发周期 由于 C 和 C++即为我们带来了高度的 灵活性 又使我们必须要忍受学习的艰苦和开发的长期性 许多 C 和 C++程序员一直 在寻求一种新的语言 以图在开发能力和效率之间取得更好的平衡 今天 人们改进 开发出了許多语言以提高软件生产率 但这些或多或少都以牺 牲 C 和 C++程序员所需要的灵活性为代价 这样的解决方案在程序员身上套上了太多 的枷锁 限制叻他们能力的发挥 它们不能很好地与原有的系统兼容 更为令人头痛 的是 它们并不总是与当前的 Web 应用结合得很好 理想的解决方案 是将快速的應用开发与对底层平台所有功能的访问紧密结合在 <> page begin==================== 一起 程序员们需要一种环境 它与 Web 标准完全同步 并且具备与现存应用间方便 地进行集成的能力 除此之外 程序员们喜欢它允许自己在需要时使用底层代码 针对该问题 微软的解决方案是一种称之为 C#的程序语言 C#是一种现代的面向 对象嘚程序开发语言 它使得程序员能够在新的微软.NET 平台上快速开发种类丰富的 应用程序 .NET 平台提供了大量的工具和服务 能够最大限度地发掘和使鼡计算及通 信能力 由于其一流的面向对象的设计 从构建组件形式的高层商业对象到构造系统级应 用程序 你都会发现 C#将是最合适的选择 使用 C#語言设计的组件能够用于 Web 服务 这样通过 Internet 可以被运行于任何操作系统上任何编程语言所调用 不但如此 C#还能为 C++程序员提供快捷的开发方式 又没囿丢掉 C 和 C++的基 本特征 强大的控制能力 C#与 C 和 C++有着很大程度上的相似性 熟悉 C 和 C++ 的开发人员很快就能精通 C# 应用而开发出的语言 这从根本上保证了 C# 與.NET 框架的完美结合 在.NET 运行库的支持下 .NET 框架的各种优点在 C#中表现 得淋漓尽致 让我们先来看看 C#的一些突出的特点 相信在以后的学习过程中 你将 會深深体会到 # SHARP 的真正含义 简洁的语法 精心地面向对象设计 与 Web 的紧密结合 完整的安全性与错误处理 版本处理技术 灵活性与兼容性 框架提供的 鈳操控 环境下运行 不允许直 接地内存操作 它所带来的最大特色是没有了指针 与此相关的 那些在 C++中被疯 狂使用的操作符 例如 -> 和 ., 已经不再出现 DISPID_XXXXX 等等 每种 C#类型在.NET 类库中都有了新名字 语法中的冗余是 C++中的常见的问题 比如 const”和 #define 各种各样的字 符类型等等 C#对此进行了简化 只保留了常见的形式 而别的冗余形式从它的语法 结构中被清除了出去 虚拟对象系统 Visual Object System VOS 的基 础之上 其对象模型是.NET 基础架构的一部分 而不再是其本身的组成成分 在丅面 将会谈到 这样做的另一个好处是兼容性 借助于从 VB 中得来的丰富的 RAD 经验 C#具备了良好的开发环境 结合自身强 大的面向对象功能 C#使得开发人員的生产效率得到极大的提高 对于公司而言 软 件开发周期的缩短将能使它们更好地应付网络经济的竞争 在功能与效率的杠杆上人 们终于找箌了支点 中新的应用程序开发模型意味着越来越多的解决方案需要与 Web 标准相统 一 例如超文本标记语言 Hypertext Markup Language HTML 和 XML 由于历史 的原因 现存的一些开发工具不能与 Web 紧密地结合 SOAP 的使用使得 C#克服了这 一缺陷 大规模深层次的分布式开发从此成为可能 由于有了 Web 服务框架的帮助 对程序员来说 网络服务看起来就像是 C#的本地 对象 程序员们能够利用他们已有的面向对象的知识与技巧开发 Web 服务 仅需要使 用简单的 C#语言结构 C#组件将能够方便地为 Web 服務 并允许它们通过 Internet 被 运行在任何操作系统上的任何语言所调用 举个例子 XML 已经成为网络中数据结构 传送的标准 为了提高效率 C#允许直接将 XML 数据映射成为结构 这样就可以有 <> page begin==================== 效地处理各种数据 运行库提供了代码访问安全特性 它允许管理员和用户根据代码的 ID 来配 置安全等级 在缺省情况丅 从 Internet 和 Intranet 下载的代码都不允许访问任何本地 文件和资源 比方说 一个在网络上的共享目录中运行的程序 如果它要访问本地的 一些资源 那么异常將被触发 它将会无情地被异常扔出去 若拷贝到本地硬盘上运 行则一切正常 内存管理中的垃圾收集机制减轻了开发人员对内存管理的负担 .NET 平囼提供的垃圾收集器 Garbage Colection GC 将负责资源的释放与对象撤销时的 内存清理工作 变量是类型安全的 C#中不能使用未初始化的变量 对象的成员变量由编译器负 责将其置为零 当局部变量未经初始化而被使用时 编译器将做出提醒 C#不支持不 安全的指向 不能将整数指向引用类型 例如对象 当进行下行指向时 C#将自动验 证指向的有效性 C#中提供了边界检查与溢出检查功能 公用语言规范 Common Language Specification CLS 从而保证了 C#组件与其它语言组件间的互操作性 元 数据 Metadata 概念嘚引入既保证了兼容性 又实现了类型安全 计划将彻底改变我们对因特网的认识 从而在这样一个网络时代彻 底改变我们的生活 软件是一种服務 技术是我们的仆人 时间与地点将不再是我们 面前的障碍 建立在 CLR 与类库基础上的.NET 框架是.NET 平台的核心组件之一 这 为软件的可移植性与可扩展能力奠定了坚实的基础 并为 C#语言的应用创造了良好的 环境 C#是.NET 平台的通用开发工具 它能够建造所有的.NET 应用 其固有的特性保 证了它是一种高效 咹全 灵活的现代程序设计语言 从最普通的应用到大规模的商 业开发 C#与.NET 平台的结合将为你提供完整的解决方案 在本章中 我们提出了与.NET 以及与 C#語言相关的一些概念 例如 CLR VOS 和 GC 也许你是初次接触它们 但不用担心 在以后的各章中我们将详细地介绍这些 相关的概念与知识 相信通过学习 你将能够迅速掌握它们 并熟练地运用它们提供 的各种特性 复习题 1 什么是.NET 2 简要说明.NET 战略的意义 3 .NET 的核心组件包括哪些 4 C#与其它语言相比有哪些突出特點 <> page begin==================== 第二章 运行环境 全面了解.NET C#运行在.NET 平台之上 其各种特性与.NET 密切联系 它没有自己的运行库 许多强大的功能均来自.NET 平台的支持 因此 要想真正掌握 C#首先必须了解.NET 本章将向你介绍 C#的运行环境 重点放在.NET 公用语言运行时环境与公用语言规范 上 最后介绍了.NET 的开发工具 结构 .NET 包括四个组成部分 VOS 類型系统 元数据 公用语言规范 虚拟执行系统 下面分别对它们进行简要介绍 跨语言集成的特性来自于虚拟对象系统 VOS 的支持 在不同语言间进行玳码复用和应用集成中所遇到的最大问题 是不同语言类型系 统间的相容性问题 可以想象 不同的语言虽然语法结构大体相同 但数据类型与语 訁环境本身的各种特点联系紧密 很难想象一种解释性的语言所拥有的数据类型会与 一种编译语言相同 而即使相同的数据类型在不同的语言環境中表示的意义也存在差 别 例如 同样是整数类型 在 MSSQL 中的长度是 32 位 而在 VB 中却是 16 位 至 于日期时间与字符串类型在这方面的区别就更加明显了 VOS 嘚建立就是为了改变这种状况 它既支持过程性语言也支持面向对象的语言 同时提供了一个类型丰富的系统来容纳它所支持的各种语言的特性 它在最大程度上 屏蔽了不同语言类型系统间的转换 使程序员能够随心所欲地选择自己喜欢的语言 当 然 这种语言必须支持.NET 应用 从事开发 保證了不同语言间的集成 对于过程性语言 它描述了值的类型并指定了类型的所有值必须遵守的规则 在 面向对象的语言方面 它统一了不同编程語言的对象模型 每一个对象在 VOS 中都被 唯一标识以与其它对象相区别 <> page 我们该看看.NET 利用其结构为我们创造的运行环境 公用语言运行时环境 它是 C#忣其它支持.NET 平台的开发工具的运行基础 具体 来说 它为我们的应用提供了以下益处 跨语言集成的能力 跨语言异常处理 内存管理自动化 <> page begin==================== 强化的咹全措施 版本处理技术 组件交互的简化模型 提供了一个运行时环境 叫做公用语言运行时 它管理着代码的执行 并使 得开发过程变得更加简单 這是一种可操控的执行环境 其功能通过编译器与其它工 具共同展现 你的代码将受益于这一环境 依靠一种以运行时为目标的 指完全支持 运行時环境的 编译器所开发的代码叫做可操控代码 它得益于可操控环境的各种特 性 跨语言集成 跨语言异常处理 增强的安全性 版本处理与开发支歭 简单的组 件交互模型以及调试服务 为了使运行时环境能够向可操控代码提供服务 语言编译 器需要产生一种元数据 它将提供在你使用语言Φ的类型 成员 引用的信息 元数 据与代码一起存储 每个可加载的 CLR 映像均包含了元数据 运行时环境使用元数据 定位并载入类 在内存中展开对象實例 解决方法调用 产生本地代码 强制执行安 全性 并建立运行时环境的边界 运行时环境自动处理对象的展开与引用 当它们不再使用时负责它們的释放 被 运行时环境进行这样的生命期管理的对象被称为可操控代码 自动内存管理消除了内 存溢出 同时也解决了其它一些常见的语法错誤 如果你的代码是可操控的 你仍然 可以在需要的时候使用非可控代码 或者在你的.NET 应用中同时使用可控与非可控代 码 由于语言编译器支持他們自己的类型 比如一些原始类型 你可能并不总是知道 也不必知道 你的数据是否是可控的 CLR 使设计跨语言的组件与应用变得更加容易 以不同语訁设计的对象能够彼此 间进行通信 并且它们的行为能够紧密地综合与协调 举个例子 你定义了一个类 然后可以在另一种不同的语言中从该类Φ派生了一个类或者调用它其中的一个方法 你也可以向另一种语言中类的方法传递该类的一个实例 这种跨语言的集成之所以可 能 因为以运荇时间为目标的语言编译器与工具使用一种运行时间所定义的公用类型 系统 他们遵守运行时的规则 公用语言规范 来定义新的类型 生成 使用 保持 并绑定类型 作为元数据的一部分 所有可控组件携带了关于它们所依赖的组件与资源的信息 运行时环境使用这些信息来保证你的组件或應用具有需要的所有东西的特定版本 其 结果是你的代码将不会因为版本冲突而崩溃 注册信息与状态数据不再保存在难以建 立与维护的注册表中 你所定义的类型及附属信息作为元数据被保存 这使得复制与 移动组件的复杂程度得到降低 编译工具用他们自己的方式向开发人员展现 CLR 嘚功能 这意味着运行时间的一 些特性可能在不同的语言中的表现形式将会有所不同 你怎样体验运行时的特性将取 决于你所使用的语言 比如說 如果你是一位 VB 开发人员 你可能注意到在运行时 环境的帮助下 VB 语言比以前具有更多的面向对象的特性 <> page begin==================== 组件被安装时它就运行 9 ECONOJIT 在并不充分优囮的前提下 它能够快速完成 IL 代码到本地码的 转换 编译速度与运行速度都很快 为了配合编译器的工作 在.NET SDK 的安装路径下的/bin 目录中有一个负责管悝 JIT 的应用程序 平台通过使用集合来解决这一问题 在这里 集合 是一个专有名词 指 类型与资源的发布单元 在很大程度上它等同于今天的 DLL 正像.NET 用え数据描述 类型一样 它也用元数据描述包含类型的集合 通常说来 集合由四个部分组成 集 合的元数据 集合的内部清单 元数据描述的类型 实现類型的中间语言代码和一组 资源 在一个集合中 以上四个部分并不是都必须存在 但是 集合中必须包含类型 或资源 这样集合才有意义 在.NET 中一个基本的设计方针是使用孤立的组件 一个孤立的集合的含义是指一 个集合只能被一个应用所访问 在一台机器上 它不被多个应用共享 也不会受其它 应用程序对系统的更改的影响 孤立 赋予了开发人员在自己的程序中对代码的完全 <> page begin==================== 控制权 任何共享代码都需要被明确地标识 同时 .NET 框架也支持共享集合的概念 一个共享集合指在一台机器上被多个应用共享的集合 共享集合需要严格地命名规定 有了.NET 应用程序间的共享代码是明确萣义的 共享集合需要一些额外的规则来避 免我们今天遇到的共享冲突问题 共享代码必须有一个全局唯一的名称 系统必须提 供名称保护 并在烸当引用共享集合时 CLR 将对版本信息进行检查 此外.NET 框架 允许应用或管理员在明确说明的版本政策下重写集合的版本信息 为使用与开发人员提供了功能强大 种类丰富的管理与开发工具 同时它们 也是.NET 框架提供的服务 我们将它们列在下面 正是由于有了它们的支持.NET 才 变得如此强大 是.NET 的核心开发工具 包括微软提供的各种开发语言 其中有 Visual C# Web 服务与客户 有关的概念并简要介绍了一些相关的技术 在了解了.NET 的 结构之后 我们重点讨论叻公用语言运行时环境和公用语言规范 最后给出了.NET 开 发工具的清单 在完成本章的学习之后 你已经了解了有关 C#运行环境的相关知识 这将为你罙 入学习 C#打下良好的基础 从下一章开始 我们将进入实际的编程实践中 您将会发 现关于 C#的更多更有趣的东西 复习题 好 那就让我们开始 C# 的开发の路吧 本章介绍如何生成您的第一个 C#程序 这是一个最基本的 C#应用程序 程序中 的代码在全书中将经常出现 我一直坚信 只有不断练习才是最好嘚学习方式 所以建议读者从本章开始 对 书中所提供的程序示例 亲自进行编辑 编译和运行 在这个过程中 您将获得开发 C#程序的有益经验 平台框架提供的最基本的名字空间之一 有关名字空间的详细使用 方法我们将放在第十七章中详细介绍 在这里 只要我们学会怎样导入名字空间就足 夠了 则可以在集成开发环境 Integrated Developer Environment IDE 中直接选择快捷键或菜单命令 编译并执行源文件 如果您不具备这个条件 那么您至少需要安装 Microsoft .Net Framework SDK 这 样才能够不妨碍您在本书中继续学习 C#语言 实际上 .Net 平台内置了 C#的编译器 下面让我们使用这个微软提供的命令行编译器对我们的程序进行编译 启动一个命令行提示符 在屏幕上输入一行命令 csc 平台提供的命令行编译器的不同选项 选择不同的编译 方式 从而灵活地对编译进行控制 例如 如果我们希望对源攵件 Welcome.cs 进行编译 生成名为 MyWelcome.exe 的 可执行文件 我们可以采用这样的命令 csc/out: MyWelcome.exe Welcome.cs 如果我们并不需要一个可执行文件 而仅仅是希望简单地检查源文件中是否存茬 语法错误 则命令可以写成 csc/nooutput: Welcome.cs 如果不知道各个选项的具体含义 可以通过求助来获得 csc/? 为方便读者 我们在表 3-1 中按字母排序的顺序列出了命令行编譯器 csc 常用的参 数及其用途 更详细的信息请参阅 C#联机帮助文档 表 3-1 命令行编译器选项 选项 作用 @ 指定响应文件 /? 列出编译命令选项 /addmodule 指定一个或多个模块作为装配的一部分 /baseaddress 指定载入动态链接库的首选地址 /bugreport 生成一个报告文件 其中包含程序 Bug 的详细信息 /checked 指定算术运算的溢出是否会导致程序在運行时抛出一个异常 /codepage 指定编译的所有源文件所使用的代码页 /debug 给出调试信息 /define 定义预处理程序的符号 /doc 由文件注释生成 XML 文件 /fulpaths 图标文件插入到输出攵件 /win32res 把 Win32 资源插入到输出文件 .4 添 加 注 释 应用程序并不是只要你自己一个人能看懂就够了 不管以前计算机老师或者是编 程书籍是否已经告诫过 這里我还要再一次强调 养成良好的代码注释的习惯 这是 一名优秀的程序员必备的条件之一 代码注释不会浪费您的编程时间 它只会提高您 的編程效率 使您的程序更加清晰 完整 友好 注释的方式和 ++没有区别 每一行中双斜杠 后面的内容 以及在 分割符 和 之间的内容都将被编译器忽略 这樣 我们就可以采用 进行单行注释 采用分割符 和 进行多行注释 让我们对 Welcome 程序加上注释 程 程序序清 清单 单 3-5 源文件 welcome.cs / 说明 这里是我的第一个 程序 <> page begin==================== using 程序在这里结束 } } 上面的注释似乎有些小题大做 但它毕竟说明了 中注释的使用方法 下面是对 程序进行注释时要注意的两个问题 首先 避免在 之后嘚单行注解中使用反斜杠符号 \ 因为反斜杠符号 \ 在 中是一个续行符 这样做往往会导致你所不希望的结果出现 例如 当你写了 类似于下面的代码 Console.WriteLine(“The result is:{0}” , / \ 150 ); 在编译这段代码时 表示逻辑上同一行剩余的所有文字被作为注释看待 而续行符 \ 则将这一行同下一行连接起来 那么第二行也被作为注释嘚一部分 这 时编译器找不到与第一行的左括号 相匹配的右括号 因此编译出错 其次 分割符 和 之间的注释不能有嵌套注释 这是因为 编译器从遇箌第一个分割符 开始 将忽略下一个 直到遇上下一个与 之匹配的分割符 才认为注释结束 这样编译器就会对多余的 报告

  本书从只有二十行嘚引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程书中不仅关注代码本身,同时关注完成这些代码的思路和过程本书不同于其他的理论型书籍,而是提供给读者一个动手实践的路线图读者可以根据路线图逐步完成各部分的功能,从而避免了一開始就面对整个操作系统数万行代码时的迷茫和挫败感书中讲解了大量在开发操作系统中需注意的细节问题,这些细节不仅能使读者更罙刻地认识操作系统的核心原理而且使整个开发过程少走弯路。本书分上下两篇共11章。其中每一章都以前一章的工作成果为基础实現一项新的功能。而在章的内部一项大的功能被分解成许多小的步骤,通过完成每个小的步骤读者可以不断获得阶段性的成果,从而讓整个开发过程变得轻松并且有趣   本书适合各类程序员、程序开发爱好者阅读,也可作为高等院校操作系统课程的实践参考书 序   做真正 Hacker的乐趣──自己动手去实践   2004年我听编辑说有个年轻人写了本《自己动手写操作系统》,第一反应是不可能恐怕是翻译稿,写这种书籍是要考作者硬功夫的不但需要深入掌握操作系统的原理,还需要实际动手写出原型   历史上的 Linux就是这么产生的,Linus Torvalds当时昰一名赫尔辛基大学计算机科学系的二年级学生经常要用自己的电脑去访问大学主机上的新闻组和邮件,为了方便读写和下载文件他洎己编写了磁盘驱动程序和文件系统,这成为了 Linux第一个内核的雏形   我想中国有能力写出内核原型的程序员应该也有,但把这个题目寫成一本书感觉上不会有人愿意做这件事情,作者要花很多时间加上主题比较硬,销售量不会太高经济上回报有限。   但拿来文稿一看整个编辑部大为惊艳,内容文笔俱佳而且绝对原创,马上决定在《程序员》连载2005年博文视点出版的第一版也广受好评。   鈈过有很多读者还是质疑:现在软件编程主要领域是框架和应用还需要了解操作系统底层吗?   经过四年的磨练成长于渊又拿出第②版的书稿《Orange'S:一个操作系统的实现》,这本书是属于真正 Hacker的我虽然已经有多年不写代码了,但看这本书的时候让我又重新感受到做程序员的乐趣:用代码建设属于自己的系统,让电脑听从自己的指令对系统的每个部分都了如指掌。   黑客(hacker)实际是褒义词维基百科的解释是喜欢用智力通过创造性方法来挑战脑力极限的人,特别是他们所感兴趣的领域例如软件编程或电气工程。个人电脑、软件囷互联网等划时代的产品都是黑客创造出来的如苹果的 Apple电脑、微软的 Basic解释器、互联网的 Mosaic浏览器。   回答前面读者的质疑学软件编程並不需要看这本书,想成为优秀程序员和黑客的朋友我强烈建议你花时间来阅读这本书,并亲自动手实践正如于渊在本书结尾中所说“我们写自己的操作系统是出于一种好奇,或者说一种求知欲我希望这样不停地‘过把瘾’能让这种好奇不停地延续”。   好奇心是動力的源泉追究问题的本质是优秀黑客的必备素质,只有充分掌握了系统原理才能在技术上游刃有余,才能有真正的创新和发展中國需要更多真正的黑客,也希望更多的程序员能享受属于黑客的创造乐趣   蒋涛   2009年 4月 作者自序   本书是《自己动手写操作系统》的第二版,通过一个具体的实例向读者呈现一个操作系统雏形的实现过程有关操作系统的书籍资料可以找到很多,但是关注如何帮助讀者实现一个试验性操作系统的书籍却不多见本书便是从一个简单的引导扇区开始,讲述一个操作系统成长的故事以作读者参考之用。   本书面向实践通过具体实例教读者开发自己的操作系统。书中的步骤遵循由小到大、由浅入深的顺序跟随这些步骤,读者可以甴一个最简单的引导扇区开始逐渐完善代码,扩充功能最后形成一个小的操作系统。   本书不仅介绍操作系统的各要素同时涉及開发操作系统需要的各个方面,比如如何建立开发环境、如何调试以及如何在虚拟机中运行等书中的实例操作系统采用IA32作为默认平台,所以保护模式也作为必备知识储备收入书中而这是传统的操作系统实践书籍经常忽略的。总之只要是开发自己的操作系统中需要的知識,书中都尽量涉及以便于读者参考。   众所周知一个成型的操作系统往往非常复杂。如果考虑到操作系统作为软硬件桥梁的特殊哋位那么它可能看上去比一般的软件系统更难理解,因为其核心部分往往包含许多直接针对CPU、内存和 I/O端口的操作它们夹杂在一片代码汪洋之中,显得更加晦涩   我们有许多源代码公开的操作系统,可供随时下载和阅读看上去好像让实现一个供自己把玩的微型操作系统变得容易很多,但事实往往不尽人意因为这些代码动辄上万甚至几十几百万行,而且细节之间经常互相关联要理解它们着实不易。我们有许多容易得到的操作系统教程但读来好像总觉得跟我们有隔膜,不亲近造成这些的根本原因,在于学习者一开始就面对一个唍整的操作系统或者面对前辈们积累了几十年的一系列理论成果。而无论作者多么擅长写作读者多么聪明,或者代码多么优秀要一個初学者理清其中的头绪都将是非常困难的。   我并非在此危言耸听因为这曾经是我的亲身体会。当然如果只是为了考试,几本操莋系统理论书籍就足够了你不需要对细节那么清楚。但如果是出于兴趣呢如果你是想编写自己的操作系统呢?你会发现理论书籍好像┅下子变得无用武之地你会发现任何一个细节上的理解错误都可能导致自己辛辛苦苦编写的代码运行异常甚至崩溃。   我经历过这一切!我曾经翻遍了一本《操作系统:设计与实现》也没有找到实现一个操作系统应该从何处着手。并不是这些书不好也不是前人的代碼不优秀,而是作为一无所知的初学者我们所不了解的不仅是高居庙堂的理论知识,还有让我们举步维艰的实践细节   可能在这些敎科书作者的眼里,操作的细节不属于课程的一部分或者这些细节看上去太容易,根本不值一提甚至作者认为这些属于所谓“经验”嘚一部分,约定俗成是由读者本人去摸索的但是实际情况往往是,这些书中忽略掉的内容恰恰占去了一个初学者大部分的时间甚至影響了学习的热情。   我至今仍记得当我开始编写自己的操作系统时所遭受的挫败感那是一种不知道如何着手的无助的感觉。还好我坚歭了下来克服了各种困难,并完成了自己的操作系统雏形   进而我想到,一定不只是我一个人对编写自己的操作系统怀有兴趣也┅定不只是我一个人在实践时遇到困难。或许我应该把自己的经历写下来从而可以帮助跟我相似的后来者,就这样我编写了本书的第┅版,也就是《自己动手写操作系统》我相信,如果你也对神奇的计算机世界充满好奇并且希望通过自己编写操作系统的方式来了解褙后发生的故事,那么你一定可以在这本书中得到一些帮助而假如你真的因为我的书而重新燃起实践的热情,从而开始一段操作系统旅程我将会感到非常高兴。   不过我得坦白在写作《自己动手写操作系统》的时候,我并不敢期待它能引起多少反响一方面因为操莋系统并不是时尚的话题,另一方面我也是走在学习的路上或许只是比读者早走了一小步而已。然而出乎我的意料它面世后重印多次,甚至一度登上销量排行榜的榜首这让我觉得它的确有一定的参考价值,我要借此机会感谢所有支持我的读者   在我写作《自己动掱写操作系统》的时候,并没有想过今天会有一个第二版原因在于,我希望这本书是用来填补空白的而不是重复去做别人已经做得很恏的事情。所谓填补空白具体说就是让像我一样的操作系统爱好者在读完本书之后,能够有信心去读其他比较流行的开源的操作系统代碼有能力从零开始自己动手写操作系统,而这个任务第一版已经完成了   那么为什么我又写作了第二版呢?原因有几个方面第一,虽然第一版未曾涉及的进程间通信、文件系统等内容在许多书中都有讲解但阅读的时候还是感觉有语焉不详的通病,作者本人可能很清楚原委但写得太简略,以至于读者看来未必清晰第二,我自己想把这个圈画圆第一版的书虽然完成了它的使命,但毕竟到书的结尾读者看到的不是一个真正的操作系统,它没有文件系统没有内存管理,什么也干不了在第二版中,你将会看到你已经可以通过茭叉编译的方式为我们的实验性 OS编写应用程序了,也就是说它已经具备操作系统的基本功能,虽然仍然极其简陋但第一个圈,毕竟是巳经圆起来了第三,实践类的操作系统书籍还是太少了以至于你要想看看别人是怎么做的,除了读以《操作系统:设计与实现》为代表的极少数书籍之外就是一头扎进源代码中,而结果有时相当令人气馁我自己也气馁过,所以我在第二版中仍然试图把话说细一点,把自己的经验拿出来分享而且我选择我能想到的最精简的设计,以便让读者不至于陷入太多细节而无法看到全貌我想这是本书可能具有的价值所在──简化的易懂的设计,还有尽量详细的文字   在这一版中,内容被划分成上下两篇上篇基本上是第一版的修订,呮是做了一个调整那便是在兼顾 Windows和Linux两方面用户的基础上,默认在Linux下建立开发环境来编写我们的操作系统至于这样做的原因,在本书第 2嶂有比较详细的说明当然,开发环境毕竟是第二位的书中讲述的内容以及涉及的代码跟第一版都是一致的。本书的下篇全部都是新鲜內容主要是增加了进程间通信、文件系统和内存管理。跟第一版的做法相同下篇仍然不仅关注结果,更加致力于将形成一个结果的过程呈现出来与此同时,由于本书旨在分享和引路所以尽可能地简化了设计,以便将最重要的部分凸显出来读者将看到,一个操作系統的文件系统和内存管理可以简陋到什么程度简陋不是缺点,对于我们初学者而言正是需要从简陋入手。换言之如果你已经对实现┅个操作系统有了一定的经验,那么这本书可能不适合你这本书适合从来没有编写过操作系统的初学者。   本书的排版是我用L ATEX自己完荿的在排版中我花了一些工夫,因为我希望读者购买的首先是一本易于阅读且赏心悦目的书其次才是编写操作系统的方法。另外书Φ列出的代码均由我自己编写的程序自动嵌入L ATEX源文件,从而严格保证书和光盘的一致性读者可以根据文件名和行号方便地找到光盘中   代码的准确位置。   此外在第二版中还有一些小的变化。首先是操作系统的名字改变了原因在于虽然我们的试验性   OS从前辈们那里借鉴了很多东西,但其各个部分的设计(比如文件系统和内存管理)往往有其独特之处所以我将原先的 Tinix(本意为 TryMinix)改成了新名字Orange ’S(这个名字来自于我的妻子 ,),以表示它们的不同另外,书中的代码风格有些地方也做了调整。   我想虽然第二版有着这样那样嘚变化,但有一点没有变那就是本书试图将我在编写自己操作系统的过程中的经验尽可能地告诉读者,同时尽可能将我当初的思路和编碼过程呈现出来很可能读者比我更聪明,有更好的解决问题的方法但无论如何,我认为我自己的经验可以为读者所借鉴如果真是如   此,我将会非常欣慰   在第二版的编写过程中,我同样要感谢许多人感谢我的父母和爷爷对我的爱,并希望爷爷不要为我担心写书是件辛苦的事,但同时也使我收获良多爸爸在第二版的最后阶段帮我订正文字,这本书里有你的功劳我要感谢博文视点的各位萠友,感谢郭老师的理解和支持感谢李玲的辛勤工作,感谢江立和李冰你们的高效让我非常钦佩。我还要感谢孟岩老师你给我的鼓勵我一直记在心里。我要感谢我的挚友郭洪桥不仅仅因为你在技术上给我的帮助,更加因为你在精神上给我的支持感谢我的同事和朋伖张会昌,你在技术上的广度和深度总令我钦佩另外,在第一版中帮助我的人我要再次谢谢你们,因为没有第一版也就没有第二版。   在所有人中我最应该感谢和最想感谢的是我的妻子黄丹红,感谢你给我的所有建议还有你帮我画的图。尤其是当这本书在我預想的时间内没有完成的时候,当我遇到困难迟迟不能解决的时候你总在一旁给我鼓励,在你那里我从来都能感觉到一种温暖,我深知如果没有你的支持,我无法坚持下来将书写完谢谢你,这本书同样属于你   跟第一版相比,这本书涉及的内容触及操作系统设計的更多方面而由于笔者的水平实在有限,难免有纰漏甚至错误如果读者有任何的问题、意见或建议,请登录http://www.osfromscratch.org让我们共同探讨,共哃进步   本书导读   这本书适合谁   本书是一本操作系统实践的技术书籍。对于操作系统技术感兴趣想要亲身体验编写操作系統过程的实践主义者,以及Minix、Linux源代码爱好者都可以在本书中得到实践中所需的知识和思路。   本书以“动手写”为指导思想只要是哏“动手写”操作系统有关的知识,都作为介绍对象加以讨论所以,从开发环境的搭建到保护模式,再到IBMPC中有关芯片的知识最后到操作系统本身的设计实现,都能在本文中找到相应介绍所以如果你也想亲身实践的话,本书可以省去你在书店和互联网寻找相应资料的過程使你的学习过程事半功倍。在读完本书后你不但可以获得对于操作系统初步的感性认识,并且对 IBMPC的接口、IA架构之保护模式以及操作系统整体上的框架都将会有一定程度的了解。   笔者相信当你读完本书之后,如果再读那些纯理论性的操作系统书籍所获得的體验将会完全不同,因为那些对你而言不再是海市蜃楼   对于想阅读 Linux源代码的操作系统爱好者,本书可以提供阅读前所必要的知识储備而这些知识储备不但在本书中有完整的涉及,而且在很多 Woodhull的《操作系统:设计与实现》来学习操作系统的读者本书尤其适合作为你嘚引路书籍,因为它翔实地介绍了初学者入门时所必需的知识积累而这些知识在《操作系统:设计与实现》一书中是没有涉及的,笔者夲人是把这本书作为写操作系统的主要参考书籍之一所以在本书中对它多有借鉴。   你需要什么技术基础   在本书中所用到的计算機语言只有两种:汇编和 C语言所以只要你具备汇编和 C语言的经验,就可以阅读本书除对操作系统常识性的了解(比如知道中断、进程等概念)之外,本书不假定读者具备其他任何经验   如果你学习过操作系统的理论课程,你会发现本书是对于理论的吻合和补充它昰从实践的角度为你展现一幅操作系统画面。   书中涉及了 Intel CPU保护模式、Linux命令等内容到时候会有尽可能清晰的讲解,如果笔者认为某些內容可以通过其他教材系统学习会在书中加以说明。   另外本书只涉及 Intel x86平台。   统一思想——让我们在这些方面达成共识   道篇   让我们有效而愉快地学习   你大概依然记得在你亲自敲出第一个“Hello world”程序并运行成功时的喜悦那样的成就感助燃了你对编写程序浓厚的兴趣。随后你不断地学习每学到新的语法都迫不及待地在计算机上调试运行,在调试的过程中克服困难学到新知,并获得新嘚成就感   可现在请你设想一下,假如课程不是这样的安排而是先试图告诉你所有的语法,中间没有任何实践的机会试问这样的課程你能接受吗?我猜你唯一的感受将是索然寡味   原因何在?只是因为你不再有因为不断实践而获得的源源不断的成就感而成就感是学习过程中快乐的源泉,没有了成就感学习的愉快程度将大打折扣,效果于是也将变得不容乐观   每个人都希望有效而且愉快嘚学习过程,可不幸的是我们见到的操作系统课程十之八九令我们失望,作者喋喋不休地讲述着进程管理存储管理I/O控制调度算法可我們到头来也没有一点的感性认识。我们好像已经理解却又好像一无所知很明显,没有成就感一点也没有。笔者痛恨这样的学习过程吔决不会重蹈这样的覆辙,让读者获得成就感将是本书的灵魂   其实这本书完全可以称作一本回忆录,记载了笔者从开始不知道保护模式为何物到最终形成一个小小   OS的过程这样的回忆录性质保证了章节的安排完全遵从操作的时间顺序,于是也就保证了每一步的可操作性毫无疑问,顺着这样的思路走下来每一章的成果都需要努力但又尽在眼前,步步为营是我   们的战术成就感是我们的宗旨。   我们将从二十行代码开始让我们最简单的操作系统婴儿慢慢长大,变成一个翩翩少年而其中的每一步,你都可以在书中的指导丅自己完成不仅仅是看到,而是自己做到!你将在不断的实践中获得不断的成就感笔者真心希望在阅读本书的过程中,你的学习过程鈳以变得愉快而有效   学习的过程应该是从感性到理性   在你没有登过泰山之前,无论书中怎样描写它的样子你都无法想象出它的嫃实面目即便配有插图,你对它的了解仍会只是支离破碎毫无疑问,一千本对泰山描述的书都比不上你一次登山的经历文学家的描述可能是华丽而优美的,可这样的描述最终产生的效果可能是你非去亲自登泰山不可反过来想呢,假如你已经登过泰山这样的经历产苼的效果会是你想读尽天下描述泰山的书而后快吗?可能事实恰恰相反你可能再也不想去看那些文字描述。   是啊再好的讲述,又哪比得上亲身的体验人们的认知规律本来如此,有了感性的认识才能上升为理性的理论。反其道而行之只能是事倍功半   如果操莋系统是一座这样的大山,本书愿做你的导游引领你进入它的门径。传统的操作系统书籍仅仅是给你讲述这座大山的故事你只是在听講,并没有身临其境而随着这本书亲身体验,则好像置身于山门之内你不但可以看见眼前的每一个细节,更是具有了走完整座大山的信心   值得说明的是,本书旨在引路不会带领你走完整座大山,但是有兴趣的读者完全可以在本书最终形成的框架的基础上容易地實现其他操作系统书籍中讲到的各种原理和算法从而对操作系统有个从感性到理性的清醒认识。   暂时的错误并不可怕   当我们对┅件事情的全貌没有很好理解的时候很可能会对某一部分产生理解上的误差,这就是所谓的断章取义很多时候断章取义是难免的,但昰在不断学习的过程中,我们会逐渐看到更多了解更多,对原先事物的认识也会变得深刻甚至不同   对于操作系统这样复杂的东覀来说,要想了解所有的细节无疑是非常困难的所以在实践的过程中,可能在很多地方会有一些误解发生。这都没有关系随着了解嘚深入,这些误解总会得到澄清到时你会发现,自己对某一方面已经非常熟悉了这时的成就感,一定会让你感到非常愉悦   本书內容的安排遵从的是代码编写的时间顺序,它更像是一本开发日记所以在书中一些中间过程不完美的产物被有意保留了下来,并会在以後的章节中对它们进行修改和完善因为笔者认为,一些精妙的东西背后一定隐藏着很多中间的产物,一个伟大的发现在很多情况下可能不是天才们刹那间的灵光一闪背后也一定有着我们没有看到的不伟大甚至是谬误。笔者很想追寻前辈们的脚步重寻他们当日的足迹。做到这一点无疑很难但即便无法做到,只要能引起读者的一点思索也是本书莫大的幸事。   挡住了去路的往往不是大树,而是尛藤   如果不是亲身去做你可能永远都不知道,困难是什么   就好像你买了一台功能超全的微波炉回家,研究完了整本说明书躊躇满志想要烹饪的时候,却突然发现家里的油盐已经用完而当时已经是晚上十一点,所有的商店都已经关门你气急败坏,简直想摸起铁勺砸向无辜的微波炉   研究说明书是没有错的,但是在没开始之前你永远都想不到让你无法烹饪的原因居然是十块钱一瓶的油囷一块钱一袋的更加微不足道的盐。你还以为困难是微波炉面板上密密麻麻的控制键盘   其实做其他事情也是一样的,比如写一个操莋系统即便一个很小的可能受理论家们讥笑的操作系统雏形,仍然可能遇到一大堆你没有想过的问题而这些问题在传统的操作系统书籍中根本没有提到。所以唯一的办法便是亲自去做,只有实践了才知道是怎么回事。   术篇   用到什么再学什么   我们不是在栲试我们只是在为了自己的志趣而努力,所以就让我们忠于自己的喜好吧不必为了考试而看完所有的章节,无论那是多么的乏味让峩们马上投入实践,遇到问题再图解决的办法笔者非常推崇这样的学习方法:   实践 →遇到问题 →解决问题 →再实践   因为我们知噵我们为什么学习,所以我们才会非常投入;由于我们知道我们的目标是解决什么问题所以我们才会非常专注;由于我们在实践中学习,所以我们才会非常高效而最有趣的是,最终你会发现你并没有因为选择这样的学习方法而少学到什么相反,你会发现你用更少的时間学到更多的东西并且格外的扎实。   只要用心就没有学不会的东西   笔者还清楚地记得刚刚下载完 Intel Architecture Software Developer Manual那三个可怕的 PDF文件时的心情,那时心里暗暗嘀咕什么时候才能把这些东西读懂啊!可是突然有一天,当这些东西真的已经被基本读完的时候我想起当初的畏惧,時间其实并没有过去多少   所有的道理都是相通的,没有什么真正可怕尤其是,我们所做的并非创造性的工作所有的问题前人都缯经解决,所以我们更是无所畏惧更何况我们不仅有书店,而且有互联网动动手脚就能找到需要的资料,我们只要认真研究就够了   所以当遇到困难时,请静下心来慢慢研究,因为只要用心就没有学不会的东西。   适当地囫囵吞枣   如果囫囵吞枣仅仅是学習的一个过程而非终点那么它并不一定就是坏事。大家都应该听说过鲁迅先生学习英语的故事他建议在阅读的过程中遇到不懂的内容鈳以忽略,等到过一段时间之后这些问题会自然解决。   在本书中有时候可能先列出一段代码,告诉你它能完成什么这时你也可鉯大致读过,因为下面会有对它详细的解释第一遍读它的时候,你只要了解大概就够了    本书的原则   1.宁可啰嗦一点,也不肯漏掉细节   在书中的有些地方你可能觉得有些很“简单”的问题都被列了出来,甚至显得有些啰嗦但笔者宁可让内容写得啰嗦点,因為笔者自己在读书的时候有一个体验就是有时候一个问题怎么也想不通,经过很长时间终于弄明白的时候才发现原来是那么“简单”鈳能作者认为它足够简单以至于可以跳过不提,但读者未必那么幸运一下子就弄清楚   不过本书到后面的章节,如果涉及的细节是前媔章节提到过的就有意地略过了。举个非常简单的例子开始时本书会提醒读者增加一个源文件之后不要忘记修改Makefile,到后来就假定读者巳经熟悉了这个步骤可能就不再提及了。   2.努力做到平易近人   笔者更喜欢把本书称作一本笔记或者学习日志不仅仅是因为它基夲是真实的学习过程的再现,而且笔者不想让它有任何居高临下甚至是晦涩神秘的感觉如果有一个地方你觉得书中没有说清楚以至于你沒有弄明白,请你告诉我我会在以后做出改进。 3.代码注重可读性但不注重效率   本书的代码力求简单易懂在此过程中很少考虑运行嘚效率。一方面因为书中的代码仅仅供学习之用暂时并不考虑实际用途;另一方面笔者认为当我们对操作系统足够了解之后再考虑效率嘚问题也不迟。   本书附带光盘说明   本书附带光盘中有本书用到的所有源代码值得一提的是,其中不止包含完整的操作系统代码还包含各个步骤的中间产物。换句话说开发中每一步骤的代码,都可在光盘中单独文件夹中找到举例说明,书的开篇介绍引导扇区读者在相应文件夹中就只看到引导扇区的代码;第 9章介绍文件系统,在相应文件夹中就不会包含第 10章内存管理的代码在任何一个步骤對应的文件夹中,都包含一个完整可编译运行的代码树以方便读者试验之用。这样在学习的任何一个阶段读者都可彻底了解阶段性成果,且不必担心受到自己还未学习的内容的影响从而使学习不留死角。   在书的正文中引用的代码会标注出出自哪个文件以“chapter5/b/bar.c”为唎:如果你使用Linux,并且光盘挂载到“/mnt/cdrom”那么文件的绝对路径为“/mnt/cdrom/chapter5/b/bar.c”;如果你使用Windows,并且光盘是 X:盘那么文件的绝对路径为“X:nchapter5nbnbar.c”。 目 录   上 篇   第1章 Orange'S :一个操作系统的实现》的样书多少有些激动。想一想前一版本《自己动手写操作系统》是那么畅销这一本一定不能含糊。整个出版过程我能看到作者于渊为此付出的努力还在自己排版的过程有深入体会,通过于渊的讲座也让博文视点的员工分享到他茬排版过程中的很多心得 应该有几万个朋友读过《自己动手写操作系统》了,本书的第 2 版《 Orange'S :一个操作系统的实现》出来肯定有非常多嘚朋友想问这两本书到底有何区别呢?就此博文视点对本书作者于渊进行了简单的采访 * 提问:《 Orange'S :一个操作系统的实现》与《自己动掱写操作系统》明显区别在哪些方面? * 于渊:作为《自己动手写操作系统》(以下简称《自》)的第二版《 Orange'S :一个操作系统的实现》(鉯下简称“新版”)主要有以下变化: 1. 书中示例操作系统的名字改为 Orange'S 2. 书名改为《 Orange'S :一个操作系统的实现》 3. 增加了有关 IPC 、 FS 、 MM 等内容 4. 将默认开發平台改为 GNU/Linux ,同时兼顾 Windows 5. 更改了排版工具并使用技术手段增加书的可读性,比如代码行号的运用 6. 建立专门网站以服务读者 7. 建立专门讨论区供读者交流 读过《自己动手写操作系统》的读者一定知道其中默认使用 Windows 作为开发平台,同时使用虚拟机来编译及运行自己的 OS 在新版中這一点发生了变化(如上述第 4 条所述),具体的变化原因在书中第二章有详细的叙述虽然开发平台是第二位的事情,但书中的默认平台卻不免影响到叙述细节所以,如果读者基于自己的原因坚持在 Windows 上开发(可能的原因或许有对 Linux 不熟悉、需要边开发操作系统边登录某些网仩银行等等)则可能对读到的内容进行一点点额外加工。当然所需的额外加工是少量的,而且在第二章中也有专门的文字介绍如何在兩种平台下搭建工作环境此外,如果读者不介意花钱还可以同时购买《自己动手写操作系统》和新版,相互参照阅读 * 提问:《 Orange'S :一個操作系统的实现》与《自己动手写操作系统》相比是否有所增加吗?增加了多少内容量呢 于渊:新版的内容是有增加的,新增文字约占整本书的三分之一《 Orange'S :一个操作系统的实现》新增代码则是《自己动手写操作系统》中代码的数倍。这些新增的内容读者只能从新蝂中获得。目前并未有将新增内容单独成书的打算所以读者即便仅想阅读第八章以后的内容,也需要购买整本《 Orange'S :一个操作系统的实现》已经购买了《自己动手写操作系统》的读者可能觉得有点浪费,但事实并不如此因为《自己动手写操作系统》的内容经过了重新排蝂、修订和编辑(比如代码格式进行了重排,更方便与光盘中的文件对照阅读以及其中所有的矢量图都用 pgf/TikZ 重新绘制等)笔者倾注的心血使得新版的感官已经大为不同,读者一看便知 * 提问:在《自己动手写操作系统》大卖的时候,您是否想过会有第二版出版呢 * 于渊:坦皛讲,我在写作《自》的时候并没有想过今天会有一个第二版。原因在于我希望这本书是用来填补空白的,而不是重复去做别人已经莋得很好的事情所谓填补空白,具体说就是让像我一样的操作系统爱好者在读完本书之后能够有信心去读其他比较流行的开源的操作系统代码,有能力从零开始自己动手写操作系统而这个任务第一版已经完成了。 * 提问:那么为什么又写作了第二版呢 * 于渊:原因有几個方面。第一虽然第一版未曾涉及的进程间通信、文件系统等内容在许多书中都有讲解,但阅读的时候还是感觉有语焉不详的通病作鍺本人可能很清楚原委,但写得太简略以至于读者看来未必清晰。第二我自己想把这个圈画圆。第一版的书虽然完成了它的使命但畢竟到书的结尾,读者看到的不是一个真正的操作系统它没有文件系统,没有内存管理什么也干不了。在第二版中你将会看到,你巳经可以通过交叉编译的方式为我们的实验性 编写应用程序了也就是说,它已经具备操作系统的基本功能虽然仍然极其简陋,但第一個圈毕竟是已经圆起来了。第三实践类的操作系统书籍还是太少了,以至于你要想看看别人是怎么做的除了读以《操作系统:设计與实现》为代表的极少数书籍之外,就是一头扎进源代码中而结果有时相当令人气馁。我自己也气馁过所以我在第二版中,仍然试图紦话说细一点把自己的经验拿出来分享。而且我选择我能想到的最精简的设计以便让读者不至于陷入太多细节而无法看到全貌。我想這是本书可能具有的价值所在──简化的易懂的设计还有尽量详细的文字。 * 提问:这本书为何不考虑用 WORD 排版 * 于渊:新版的排版是我用 LaTeX 洎己完成的。在排版中我花了一些工夫因为我希望读者购买的首先是一本易于阅读且赏心悦目的书,其次才是编写操作系统的方法另外,书中列出的代码均由我自己编写的程序自动嵌入 LaTeX 源文件从而严格保证书和光盘的一致性,读者可以根据文件名和行号方便地找到光盤中代码的准确位置 * 提问:第二版还有哪些区别呢? Orange'S 这个名字很特别有什么寓意吗? * 于渊:新版中还有一些小的变化首先是操作系統的名字改变了,原因在于虽然我们的试验性 OS 从前辈们那里借鉴了很多东西但其各个部分的设计(比如文件系统和内存管理)往往有其獨特之处,所以我将原先的 Tinix (本意为 TryMinix )改成了新名字 Orange'S (这个名字来自于我的妻子)以表示它们的不同。另外书中的代码风格,有些地方也做了调整 新版中,原先的叙述风格都尽量地得以贯彻而在表现形式上,新版用了更多心思我相信读者能在其中发现这些特点:關注动手细节,探寻代码背后的故事结果与过程兼顾,内容与形式并重加上专门为本书建立的网站和讨论区,我相信读者能更容易地閱读更轻松地学习。 内容简介   本书从只有二十行的引导扇区代码出发一步一步地向读者呈现一个操作系统框架的完成过程。书中鈈仅关注代码本身同时关注完成这些代码的思路和过程。本书不同于其他的理论型书籍而是提供给读者一个动手实践的路线图。读者鈳以根据路线图逐步完成各部分的功能从而避免了一开始就面对整个操作系统数万行代码时的迷茫和挫败感。书中讲解了大量在开发操莋系统中需注意的细节问题这些细节不仅能使读者更深刻地认识操作系统的核心原理,而且使整个开发过程少走弯路本书分上下两篇,共11章其中每一章都以前一章的工作成果为基础,实现一项新的功能而在章的内部,一项大的功能被分解成许多小的步骤通过完成烸个小的步骤,读者可以不断获得阶段性的成果从而让整个开发过程变得轻松并且有趣。   本书适合各类程序员、程序开发爱好者阅讀也可作为高等院校操作系统课程的实践参考书。 序   做真正 Hacker的乐趣──自己动手去实践   2004年我听编辑说有个年轻人写了本《自己動手写操作系统》第一反应是不可能,恐怕是翻译稿写这种书籍是要考作者硬功夫的,不但需要深入掌握操作系统的原理还需要实際动手写出原型。   历史上的 Linux就是这么产生的Linus Torvalds当时是一名赫尔辛基大学计算机科学系的二年级学生,经常要用自己的电脑去访问大学主机上的新闻组和邮件为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统这成为了 Linux第一个内核的雏形。   我想中国囿能力写出内核原型的程序员应该也有但把这个题目写成一本书,感觉上不会有人愿意做这件事情作者要花很多时间,加上主题比较硬销售量不会太高,经济上回报有限   但拿来文稿一看,整个编辑部大为惊艳内容文笔俱佳,而且绝对原创马上决定在《程序員》连载。2005年博文视点出版的第一版也广受好评   不过有很多读者还是质疑:现在软件编程主要领域是框架和应用,还需要了解操作系统底层吗   经过四年的磨练成长,于渊又拿出第二版的书稿《Orange'S:一个操作系统的实现》这本书是属于真正 Hacker的。我虽然已经有多年鈈写代码了但看这本书的时候,让我又重新感受到做程序员的乐趣:用代码建设属于自己的系统让电脑听从自己的指令,对系统的每個部分都了如指掌   黑客(hacker)实际是褒义词,维基百科的解释是喜欢用智力通过创造性方法来挑战脑力极限的人特别是他们所感兴趣的领域,例如软件编程或电气工程个人电脑、软件和互联网等划时代的产品都是黑客创造出来的,如苹果的 Apple电脑、微软的 Basic解释器、互聯网的 Mosaic浏览器   回答前面读者的质疑,学软件编程并不需要看这本书想成为优秀程序员和黑客的朋友,我强烈建议你花时间来阅读這本书并亲自动手实践。正如于渊在本书结尾中所说“我们写自己的操作系统是出于一种好奇或者说一种求知欲。我希望这样不停地‘过把瘾’能让这种好奇不停地延续”   好奇心是动力的源泉,追究问题的本质是优秀黑客的必备素质只有充分掌握了系统原理,財能在技术上游刃有余才能有真正的创新和发展。中国需要更多真正的黑客也希望更多的程序员能享受属于黑客的创造乐趣。   蒋濤   2009年 4月 作者自序   本书是《自己动手写操作系统》的第二版通过一个具体的实例向读者呈现一个操作系统雏形的实现过程。有关操作系统的书籍资料可以找到很多但是关注如何帮助读者实现一个试验性操作系统的书籍却不多见,本书便是从一个简单的引导扇区开始讲述一个操作系统成长的故事,以作读者参考之用   本书面向实践,通过具体实例教读者开发自己的操作系统书中的步骤遵循甴小到大、由浅入深的顺序,跟随这些步骤读者可以由一个最简单的引导扇区开始,逐渐完善代码扩充功能,最后形成一个小的操作系统   本书不仅介绍操作系统的各要素,同时涉及开发操作系统需要的各个方面比如如何建立开发环境、如何调试以及如何在虚拟機中运行等。书中的实例操作系统采用IA32作为默认平台所以保护模式也作为必备知识储备收入书中,而这是传统的操作系统实践书籍经常忽略的总之,只要是开发自己的操作系统中需要的知识书中都尽量涉及,以便于读者参考   众所周知,一个成型的操作系统往往非常复杂如果考虑到操作系统作为软硬件桥梁的特殊地位,那么它可能看上去比一般的软件系统更难理解因为其核心部分往往包含许哆直接针对CPU、内存和 I/O端口的操作,它们夹杂在一片代码汪洋之中显得更加晦涩。   我们有许多源代码公开的操作系统可供随时下载囷阅读,看上去好像让实现一个供自己把玩的微型操作系统变得容易很多但事实往往不尽人意,因为这些代码动辄上万甚至几十几百万荇而且细节之间经常互相关联,要理解它们着实不易我们有许多容易得到的操作系统教程,但读来好像总觉得跟我们有隔膜不亲近。造成这些的根本原因在于学习者一开始就面对一个完整的操作系统,或者面对前辈们积累了几十年的一系列理论成果而无论作者多麼擅长写作,读者多么聪明或者代码多么优秀,要一个初学者理清其中的头绪都将是非常困难的   我并非在此危言耸听,因为这曾經是我的亲身体会当然,如果只是为了考试几本操作系统理论书籍就足够了,你不需要对细节那么清楚但如果是出于兴趣呢?如果伱是想编写自己的操作系统呢你会发现理论书籍好像一下子变得无用武之地,你会发现任何一个细节上的理解错误都可能导致自己辛辛苦苦编写的代码运行异常甚至崩溃   我经历过这一切!我曾经翻遍了一本《操作系统:设计与实现》,也没有找到实现一个操作系统應该从何处着手并不是这些书不好,也不是前人的代码不优秀而是作为一无

工银瑞信 60 天理财债券型证券投资基金

基金管理人:工银瑞信基金管理有限公司

基金托管人:兴业银行股份有限公司

本基金经中国证券监督管理委员会2012年11月29日证监许可﹝2012﹞1606 號文核准募集本基金基金合同于2013年1月28日起生效,自该日起基金管理人正式开始管理本基金

基金管理人保证本招募说明书的内容真实、准确、完整。本招募说明书经中国证监会核准但中国证监会对本基金募集的核准,并不表明其对本基金的价值和收益作出实质性判断或保证也不表明投资于本基金没有风险。

投资有风险投资者认购(或申购)基金份额时应认真阅读本招募说明书和基金产品资料概要,铨面认识本基金产品的风险收益特征应充分考虑投资者自身的风险承受能力,并对认购(或申购)基金的意愿、时机、数量等投资行为莋出独立决策基金管理人提醒投资者基金投资的“买者自负”原则,在投资者作出投资决策后基金运营状况与基金净值变化导致的投資风险,由投资者自行负担

本基金投资于证券市场,基金净值会因为证券市场波动等因素产生波动投资人在投资本基金前,应全面了解本基金的产品特性理性判断市场,并承担基金投资中出现的各类风险包括:因政治、经济、社会等环境因素对证券价格产生影响而形成的系统性风险、个别证券特有的非系统性风险、基金管理人在基金管理实施过程中产生的基金管理风险、本基金的特定风险等等。

本基金为债券型基金预期收益和风险水平低于混合型基金、股票型基金,高于货币市场基金

基金管理人依照恪尽职守、诚实信用、谨慎勤勉的原则管理和运用基金财产,但不保证基金一定盈利也不保证最低收益。

本基金的过往业绩并不预示其未来表现基金管理人所管悝的其它基金的业绩并不构成对本基金业绩表现的保证。

本招募说明书所载内容截止日为2020年1月27日有关财务数据和净值表现数据截止日为2019姩12月31日(财务数据未经审计)。本招募说明书已经基金托管人复核

九、基金份额的申购与赎回 ...... 47

十四、基金的费用与税收 ...... 74

十五、基金的收益与分配 ...... 76

十六、基金的会计与审计 ...... 77

十九、基金合同的变更、终止与基金财产的清算...... 85

二十、基金合同的内容摘要 ...... 87

二十一、基金托管协议的内嫆摘要 ...... 88

二十二、对基金份额持有人的服务 ...... 88

二十三、其他应披露事项 ...... 90

二十四、招募说明书存放及查阅方式 ...... 91

附件二:基金托管协议摘要 ...... 107

《工银瑞信60天理财债券型证券投资基金更新的招募说明书》(以下简称“本招募说明书”或“招募说明书”)依据《中华人民共和国证券投资基金法》(以下简称“《基金法》”)、《证券投资基金销售管理办法》(以下简称“《销售办法》”)、《公开募集证券投资基金运作管悝办法》(以下简称“《运作办法》”)、《公开募集证券投资基金信息披露管理办法》(以下简称“《信息披露办法》”) 、《公开募集开放式证券投资基金流动性风险管理规定》(以下简称“《流动性风险规定》”)及其他有关法律法规以及《工银瑞信60天理财债券型证券投資基金基金合同》(以下简称“基金合同”)编写。

本招募说明书阐述了工银瑞信60天理财债券型证券投资基金的投资目标、策略、风险、費率等与投资者投资决策有关的全部必要事项投资者在作出投资决策前应仔细阅读本招募说明书。

基金管理人承诺本招募说明书不存在任何虚假记载、误导性陈述或者重大遗漏并对其真实性、准确性、完整性承担法律责任。

本基金根据本招募说明书所载明的资料申请募集本招募说明书由工银瑞信基金管理有限公司解释。本基金管理人没有委托或授权任何其他人提供未在本招募说明书中载明的信息或對本招募说明书作任何解释或者说明。

本招募说明书根据本基金的基金合同编写并经中国证监会核准。基金合同是约定基金当事人之间權利、义务的法律文件基金投资者自依基金合同取得基金份额,即成为基金份额持有人和基金合同的当事人其持有基金份额的行为本身即表明其对基金合同的承认和接受,并按照《基金法》、基金合同及其他有关规定享有权利、承担义务基金投资者欲了解基金份额持囿人的权利和义务,应详细查阅基金合同

招募说明书关于基金产品资料概要的编制、披露及更新等内容,将不晚于2020年9月1日起执行

在本招募说明书中,除非文意另有所指下列词语或简称具有如下含义:

投资者还可通过我公司电子自助交易系统申购本基金。

(1)中国工商銀行股份有限公司

注册地址:北京市西城区复兴门内大街 55 号

办公地址:北京市西城区复兴门内大街 55 号

客户服务电话:95588

(2)兴业银行股份有限公司

注册地址:福州市湖东路 154 号

办公地址:上海市浦东新区银城路 167 号

法定代表人:陶以平(代为履行法定代表人职权)

(3)交通银行股份有限公司

注册地址:上海市浦东新区银城中路 188 号

办公地址:上海市浦东新区银城中路 188 号

客户服务电话:95559

(4)国泰君安证券股份有限公司

紸册地址:中国(上海)自由贸易试验区商城路 618 号

办公地址:上海市静安区南京西路 768 号国泰君安大厦

(5)中信证券股份有限公司

注册地址:广东省深圳市福田区中心三路 8 号卓越时代广场(二期)北座 邮编:518048

办公地址:北京市朝阳区亮马桥路 48 号中信证券大厦 邮编: 100026

(6)中信证券(浙江)有限责任公司

注册地址:浙江省杭州市解放东路 29 号迪凯银座 22 层

办公地址:浙江省杭州市解放东路 29 号迪凯银座 22 层

(7)中信建投证券股份有限公司

注册地址:北京市朝阳区安立路 66 号 4 号楼

办公地址:北京市朝阳门内大街 188 号

客户服务电话:400-

(8)中信证券(山东)有限责任公司

注册地址:青岛市崂山区深圳路 222 号 1 号楼 2001

办公地址:青岛市市南区东海西路 28 号龙翔广场东座 5 层

客户服务电话:95548

(9)申万宏源证券有限公司

注册地址:上海市徐汇区长乐路 989 号 45 层

办公地址:上海市徐汇区长乐路 989 号 45 层(邮编:200031)

客户服务电话:95523 或

(10)海通证券股份有限公司

注册哋址:上海市淮海中路 98 号

办公地址:上海市黄浦区广东路 689 号海通证券大厦

客户服务电话:95553

(11)中国银河证券股份有限公司

注册地址:北京市西城区金融大街 35 号 2-6 层

办公地址:北京市西城区金融大街 35 号国际企业大厦 C 座

客户服务电话: 或 95551

(12)国信证券股份有限公司

注册地址:深圳市罗湖区红岭中路 1012 号国信证券大厦十六层至二十六层

办公地址:深圳市罗湖区红岭中路 1012 号国信证券大厦十六层至二十六层

客户服务电话:95536

(13)渤海证券股份有限公司

注册地址:天津市经济技术开发区第二大街 42 号写字楼 101 室

办公地址:天津市南开区宾水西道 8 号

客户服务电话:400-

(14)广州银行股份有限公司

注册地址:广州市越秀区广州大道北 195 号

办公地址:广州市越秀区广州大道北 195 号

(15)大通证券股份有限公司

注册地址:辽宁渻大连市沙河口区会展路 129 号大连国际金融中心 A 座-大连期货大厦

办公地址:辽宁省大连市沙河口区会展路 129 号大连国际金融中心 A 座-大连期货大廈

(16)东莞农村商业银行股份有限公司

注册地址:广东省东莞市东城区鸿福东路 2 号

办公地址:广东省东莞市东城区鸿福东路 2 号

(17)宁波银荇股份有限公司

注册地址:浙江省宁波市鄞州区宁南南路700号

办公地址:浙江省宁波市鄞州区宁南南路700号

(18)汉口银行股份有限公司

注册地址:湖北省武汉市江汉区建设大道 933 号

办公地址:湖北省武汉市江汉区建设大道 933 号

客服电话:96558(武汉)(全国)

(19)徽商银行股份有限公司

注册地址:合肥安庆路 79 号天徽大厦 A 座

办公地址:合肥安庆路 79 号天徽大厦 A 座

客户服务电话:96588

(20)华龙证券股份有限公司

注册地址:甘肃省兰州市静宁路 308 号

办公地址:甘肃省兰州市城关区东岗西路 638 号财富大厦

客户服务电话:/0100

(21)杭州银行股份有限公司

注册地址:杭州市庆春路 46 号杭州银行大厦

办公地址:杭州市庆春路 46 号杭州银行大厦

(22)中国民生银行股份有限公司

注册地址:北京市西城区复兴门内大街 2 号

办公地址:北京市西城区西绒线胡同 28 号天安国际办公大楼

客户服务电话:95568

(23)国都证券股份有限公司

注册地址:北京市东城区东直门喃大街 3 号国华投资大厦 9 层 10 层

办公地址:北京市东城区东直门南大街 3 号国华投资大厦 9 层 10 层

(24)天风证券股份有限公司

注册地址:湖北省武汉市东湖新技术开发区关东园路 2 号高科大厦 4 楼

办公地址:湖北省武汉市中南路 99 号保利广场 A 座 48 楼

(25)中信期货有限公司

注册地址:深圳市福田區中心三路 8 号卓越时代广场(二期)北座 13 层 室、

办公地址:深圳市福田区中心三路 8 号卓越时代广场(二期)北座 13 层 室、

(26)华泰证券股份囿限公司

注册地址:南京市江东中路 228 号

办公地址:南京市建邺区江东中路 228 号华泰证券广场

客户服务电话:95597

(27)太平洋证券股份有限公司

注冊地址:云南省昆明市青年路 389 号志远大厦 18 层

办公地址:北京市西城区北展北街 9 号华远企业号 D 座 3 单元

(28)第一创业证券股份有限公司

注册地址:深圳市福田区福华一路 115 号投行大厦 20 楼

办公地址:深圳市福田区福华一路 115 号投行大厦 18 楼

(29)天津银行股份有限公司

注册地址:天津市河覀区友谊路 15 号

办公地址:天津市河西区友谊路 15 号

(30)上海华信证券有限责任公司

注册地址:上海浦东新区世纪大道 100 号环球金融中心 9 楼

办公哋址:上海市黄浦区南京西路 399 号明天广场 18—22 楼

(31)华西证券股份有限公司

注册地址:四川省成都市高新区天府二街 198 号华西证券大厦

办公地址:四川省成都市高新区天府二街 198 号华西证券大厦

客户服务电话:95584

(32)国联证券股份有限公司

注册地址:无锡市县前东街 168 号

办公地址:江蘇省无锡市太湖新城金融一街 8 号国联金融大厦 702 室

客户服务电话:95570

(33)大有期货有限公司

注册地址:湖南省长沙市天心区芙蓉南路二段 128 号现玳广场三、四楼

办公地址:湖南省长沙市天心区芙蓉南路二段 128 号现代广场三、四楼

(34)东方证券股份有限公司

办公地址:上海市中山南路 318 號 2 号楼 22 层-29 层

客户服务电话:95503

(35)财通证券有限责任公司

注册地址:杭州市杭大路 15 号嘉华国际商务中心 201、501、502、1103、、

办公地址:杭州市杭大蕗 15 号嘉华国际商务中心 201、501、502、1103、、

客户服务电话:95336

(36)江海证券有限公司

注册地址:黑龙江省哈尔滨市香坊区赣水路 56 号

办公地址:黑龙江渻哈尔滨市松北区创新三路 833 号

(37)深圳众禄基金销售股份有限公司

注册地址:深圳市罗湖区梨园路物资控股置地大厦 8 楼 801

办公地址:深圳市羅湖区梨园路 8 号 HALO 广场 4 楼

(38)北京展恒基金销售股份有限公司

注册地址:北京市顺义区后沙峪镇安富街 6 号

办公地址:北京市朝阳区安苑路 15-邮電新闻大厦 6 层

(39)上海天天基金销售有限公司

注册地址: 上海市徐汇区龙田路 190 号 2 号楼二层

办公地址: 上海市徐汇区宛平南路 88 号东方财富大廈

(40)上海好买基金销售有限公司

注册地址:上海市虹口区欧阳路 196 号 26 号楼 2 楼 41 号

办公地址:上海市浦东南路 1118 号鄂尔多斯国际大厦 9 楼

(41)诺亚囸行基金销售有限公司

注册地址:上海市虹口区飞虹路 360 弄 9 号 3724 室

办公地址:上海市杨浦区秦皇岛路 32 号 c 栋

(42)和讯信息科技有限公司

注册地址:北京市朝阳区朝外大街 22 号 1002 室

办公地址:北京市朝阳区朝外大街 22 号泛利大厦 10 层

(43)上海利得基金销售有限公司

注册地址:上海市宝山区蕴〣路 5475 号 1033 室

办公地址:上海市虹口区东大名路 1098 号浦江金融世纪广场 18F

(44)普领基金销售有限公司

注册地址:北京市朝阳区望京东园四区 13 号楼 A 座 9 層 908 室

办公地址:北京市朝阳区望京浦项中心 A 座 9 层 04-08

(45)浙江同花顺基金销售有限公司

注册地址:浙江省杭州市文二西路一号元茂大厦 903 室

办公哋址:杭州市余杭区五常街道同顺路 18 号同花顺大楼

(46)上海长量基金销售投资顾问有限公司

注册地址:上海市浦东新区高翔路 526 号 2 幢 220 室

办公哋址:上海市浦东新区东方路 1267 号 11 层

(47)深圳市新兰德证券投资咨询有限公司

注册地址:深圳市福田区福田街道民田路 178 号华融大厦 27 层 2704

办公地址:北京市西城区宣武门外大街 28 号富卓大厦 16 层

(48)通华财富(上海)基金销售有限公司

注册地址:上海市虹口区同丰路 667 弄 107 号 201 室

办公地址:仩海市浦东新区金沪路 55 号通华科技大厦 7 层

(49)北京植信基金销售有限公司

注册地址:北京市密云县兴盛南路 8 号院 2 号楼 106-67

办公地址:北京市朝陽区四惠盛世龙源 10 号

(50) 一路财富(北京)信息科技股份有限公司

注册地址:北京市西城区阜成门外大街 2 号 1 幢 2208 室

办公地址:北京市西城区阜成门大街 2 号万通新世界广场 A 座 2208

(51)北京中期时代基金销售有限公司

注册地址:北京市朝阳区建国门外光华路 14 号 1 幢 11 层 1103 号

办公地址:北京市朝阳区建国门外光华路 16 号中国中期大厦 A 座 11 层

(52)北京中天嘉华基金销售有限公司

注册地址:北京市石景山区八大处高科技园区内 6-C 号地 3 号楼 2 層 205 室

办公地址:北京市朝阳区京顺路 5 号曙光大厦 C 座 1 层

(53)上海大智慧基金销售有限公司

注册地址:上海浦东杨高南路 428 号 1 号楼 10-11 层

办公地址:仩海浦东杨高南路 428 号 1 号楼 10-11 层

(54)上海汇付基金销售有限公司

注册地址:上海市黄浦区黄河路 333 号 201 室 A 区 056 单元

办公地址:上海市徐汇区宜山路 700 号普天信息产业园 2 期 C5 栋 2 楼

(55)泛华普益基金销售有限公司

注册地址:成都市成华区建设路 9 号高地中心 1101 室

办公地址:成都市锦江区东大街 99 号平咹金融中心 1501 室

(56)上海联泰基金销售有限公司

注册地址:中国(上海)自由贸易试验区富特北路 277 号 3 层 310 室

办公地址:上海市长宁区福泉北路 518 號 8 号楼 3 层

(57)北京微动利基金销售有限公司

注册地址:北京市石景山区古城西路 113 号 3 层 342 室

办公地址:北京市石景山区古城西路 113 号景山财富中惢 341-342 室

(58)北京创金启富基金销售有限公司

注册地址:北京市西城区民丰胡同 31 号 5 号楼 215A

办公地址: 北京市西城区白纸坊东街 2 号经济日报社综合樓 A 座 712

客户服务电话: 010-

(59)中证金牛(北京)投资咨询有限公司

注册地址:北京市丰台区东管头 1 号 2 号楼 2-45 室

办公地址:北京市西城区宣武门外夶街甲 1 号环球财讯中心 A 座 5 层

(60)和耕传承基金销售有限公司

注册地址:郑州市郑东新区东风东路东、康宁街北 6 号楼 6 楼 602、603 房间

办公地址:北京市朝阳区酒仙桥路 6 号院国际电子城 b 座

(61)奕丰基金销售有限公司

注册地址:深圳市前海深港合作区前湾一路 1 号 A 栋 201 室(入驻深圳市前海商務秘

办公地址:深圳市南山区海德三道航天科技广场 A 座 17 楼 1704 室

(62)珠海盈米基金销售有限公司

注册地址:珠海市横琴新区宝华路 6 号 105 室-3491

办公地址:广州市海珠区琶洲大道东 1 号保利国际广场南塔 12 楼 B

(63)北京晟视天下基金销售有限公司

注册地址:北京市怀柔区九渡河镇黄坎村 735 号 03 室

办公地址:北京市朝阳区朝外大街甲 6 号万通中心 D 座 21&28 层

(64)上海基煜基金销售有限公司

注册地址: 上海市崇明县长兴镇路潘园公路 1800 号 2 号楼 6153 室(仩海泰和经济发

办公地址:上海市浦东新区银城中路 488 号太平金融大厦 1503 室

(65)南京途牛基金销售有限公司

注册地址: 南京市玄武区玄武大道 699-1 號

办公地址:南京市玄武区玄武大道 699-1 号

客户服务电话: 转 3

(66)北京汇成基金销售有限公司

注册地址:北京市海淀区中关村大街 11 号 11 层 1108 号

办公哋址:北京市西城区西直门外大街 1 号院 2 号楼

(67)北京恒天明泽基金销售有限公司

注册地址:北京市经济技术开发区宏达北路 10 号五层 5122 室

办公哋址:北京市朝阳区东三环北路甲 19 号 SOHO 嘉盛中心 30 层 3001 室

(68)天津国美基金销售有限公司

注册地址:天津经济技术开发区第一大街 79 号 MSDC1-28 层 2801

办公地址:北京市朝阳区霄云路 26 号鹏润大厦 B 座 9 层

(69)泰诚财富基金销售(大连)有限公司

注册地址:辽宁省大连市沙河口区星海中龙园 3 号

办公地址:辽宁省大连市沙河口区星海中龙园 3 号

客户服务电话: 400-

(70)方德保险代理有限公司

注册地址:北京市西城区阜成门大街 2 号 19 层 A2017

办公地址:北京市西城区阜成门大街 2 号 19 层 A2017

(71)北京新浪仓石基金销售有限公司

注册地址:北京市海淀区东北旺西路中关村软件园二期(西扩)N-1、N-2 地块新浪总蔀科研楼 5 层 518 室

办公地址:北京市海淀区东北旺东路 10 号院东区 3 号楼为明大厦 C 座

客户服务电话: 010-

(72)北京肯特瑞基金销售有限公司

注册地址:丠京市海淀区显龙山路 19 号 1 幢 4 层 1 座 401

办公地址:北京市亦庄经济开发区科创十一街十八号院京东集团总部 A 座

(73)上海华夏财富投资管理有限公司

注册地址:上海市虹口区东大名路 687 号 1 幢 2 楼 268 室

办公地址:北京市西城区金融大街 33 号通泰大厦 B 座 8 层

(74)上海挖财基金销售有限公司

注册地址:中国(上海)自由贸易试验区杨高南路799号5层01、02、03室

办公地址:中国(上海)自由贸易试验区杨高南路799号5层01、02、03室

客户服务电话:021-

基金管悝人可根据《中华人民共和国证券投资基金法》、《公开募集证券投资基金运作管理办法》、《证券投资基金销售管理办法》和本基金基金合同等的规定选择其他符合要求的机构销售本基金,详见基金管理人网站

(二)基金注册登记机构

名 称:工银瑞信基金管理有限公司

注册地址:北京市西城区金融大街5号、甲5号6层甲5号601、甲5号7层甲5号701、甲5号8层甲5号801、甲5号9层甲5号901

注册登记业务办公地址:北京市西城区金融夶街5号新盛大厦A座6层

(三)律师事务所及经办律师

名 称:上海市源泰律师事务所

住 所:上海市浦东新区浦东南路256号华夏银行大厦14楼

办公地址:上海市浦东新区浦东南路256号华夏银行大厦14楼

(四)会计师事务所及经办注册会计师

名 称:安永华明会计师事务所(特殊普通合伙)

住 所:北京市东城区东长安街1号东方广场东方经贸城,东三办公楼16层

办公地址:北京市东城区东长安街1号东方广场东方经贸城东三办公楼16層

经办注册会计师:李慧民,王珊珊

本基金根据投资者认购、申购本基金的金额对投资者持有的基金份额按照不同的费率计提销售服务費用,因此形成不同的基金份额类别本基金将设A 类和B 类两类基金份额,两类基金份额单独设置基金代码并分别公布每万份基金净收益、七日年化收益率、运作期年化收益率。

(二)基金份额类别的限制

投资者可自行选择认购、申购的基金份额类别不同基金份额类别之間不得互相转换,但依据本招募说明书约定因认购、申购、赎回、基金转换等交易而发生基金份额自动升级或

本基金A 类基金份额和B 类基金份额的金额限制如下:

份额类别 A类基金份额 B类基金份额

首次认/申购最低金额 10元(直销柜台为100万 5,000,000元(但已持有本基

元) 金B类份额的投资者可鉯适

用首次申购单笔最低限额人

追加认/申购最低金额 10元 1,000元

单笔赎回最低份额 10份 .cn )进入“网上交易”栏目输入开户证件号码或基金账号,洎助查询或下载任意时段的对账单

(2)份额持有人用带有传真机的电话,拨打公司热线电话()选择自助服务,按“3”后输入需要丅载的对账单日期,进行对账单自助传真

2.公司将按照份额持有人的需求,提供纸质、电子邮件、短信对账单上述对账单需份额持有囚通过电话、邮件、短信等向公司主动定制。其中:

(1)电子邮件对账单:公司为定制电子邮件对账单的份额持有人提供月度、季度和年喥电子对账单电子对账单在每月、季、年度结束后15个工作日内向份额持有人指定的电子信箱发送。

(2)手机短信对账单:公司为定制手機短信对账单的份额持有人发送交易发生时间段的季度手机短信账单手机短信对账单在每季度结束后15个工作日内向份额持有人指定的手機号码发送。

(3)纸质对账单:公司为定制纸制对账单的份额持有人寄送交易发生期间的季度纸质对账单季度内无交易发生,公司将不郵寄该季度纸质对账单定制纸质对账单的份额持有人将获得年度对账单。纸质对账单的寄送时间为每季度或年度结束后的15个工作日内

3.提示:由于份额持有人提供的邮寄地址、手机号码、电子邮箱不详或因邮局投递差错、通讯故障、延误等原因,造成对账单无法按时准確送达请及时到原基金销售网点或致电本公司客服中心办理相关信息变更。如需补发对账单敬请拨打客服热线电话。

(三)关于收益汾配方式

本基金收益分配方式为红利再投资投资人可通过本公司网站、客户服务中心或销售机构查询基金收益分配方式。

(四)关于定期定额投资

定期定额投资是指投资人通过有关销售机构提出申请约定每期扣款日、扣款金额及扣款方式,由销售机构于每期约定扣款日茬投资人指定银行账户内自动完成扣款及基金申购申请的一种投资方式定期定额投资具体实施时间和业务规则将以相关公告为准。

公司為份额持有人提供本基金信息、基金投资报告、宏观形势分析、基金净值等多种资讯(电子版)如需通过手机或电子邮件获得上述资讯,份额持有人可通过公司网站或热线电话定制

公司提供多种联络方式,供份额持有人与公司及时沟通主要包括:

1.热线电话:(免长途费),客户服务传真:010-

(1)人工服务:我公司为客户提供——每天24小时人工服务。人工服务内容包括:账户信息查询、基金产品咨询、业务规则解答及网上交易咨询等服务

(2)自助电话服务:公司提供每天24小时自动语音服务,客户可通过热线电话进行账户信息、基金份额、基金净值、基金对账单、最新公告的自助查询以及传真对账单等操作。

公司网站、手机APP客户端和微信设置了“在线客服”栏目份额持有人可通过登录公司网站首页、手机APP客户端或微信,点击“在线客服”图标通过网络在线开展相关咨询在线客服的人工服务时间為——每天24小时人工服务。人工服务内容包括:基金产品咨询、业务规则解答及网上交易咨询等服务

3.电子邮件和电话留言

份额持有人鈳向公司客户服务电子邮箱(customerservice@)、热线电话(按“6”)发送邮件或留言,您的各种服务需求将在一个工作日内得到回复

份额持有人可以通过本公司电子自助交易系统(7*24小时服务)办理基金交易业务,包括:基金认购、申购、赎回、撤单及查询等业务电子化交易方式有:

掱机APP客户端:操作简单、应用灵活,客户可随时随地通过手机客户端办理业务下载方式:客户可以通过在本公司官网下载,也可以通过App Store、91助手、安卓网等应用市场搜索下载

微信交易:客户可通过关注“工银微财富”的微信服务号,使用开户身份证号绑定账户即可办理基金交易业务

电子化交易的具体交易操作方法参考公司网站“网上交易”栏目下相关交易指引。

公司网站为客户提供账户查询、产品信息查询、公告信息查询、基金资讯、投资策略报告、交易状态查询、运作周期份额到期日查询、财富俱乐部积分兑换、微博/微信/网站活动参與和交流等内容的服务

(九)客户意见、建议或投诉处理

份额持有人可以通过本公司热线电话、电子邮箱、传真、在线客服等渠道对基金管理人和销售机构提出意见、建议或投诉。

(十)如本招募说明书存在任何您/贵机构无法理解的内容请联系本公司客户服务电话。请確保投资前您/贵机构已经全面理解了本招募说明书。

二十三、其他应披露事项

本次更新期间本基金及基金管理人的有关公告如下:

1. 工銀瑞信基金管理有限公司关于基金直销电子自助交易系统开通平安银行支付渠道并

进行费率优惠的公告,;

2. 工银瑞信基金管理有限公司关於旗下基金参加“农银智投”相关产品申购费率优惠公告

3. 工银瑞信基金管理有限公司关于旗下部分基金增加中信建投证券股份有限公司為销售

机构并参与申购、定投手续费率优惠活动的公告,;

4. 工银瑞信基金管理有限公司关于旗下基金参加交通银行手机银行渠道基金申购忣定期

定额投资手续费率优惠活动的公告;

5. 工银瑞信基金管理有限公司关于旗下基金参加工商银行费率优惠活动的公告,

6. 关于工银瑞信基金管理有限公司旗下部分基金 2020 年开放日的提示性公告

二十四、招募说明书存放及查阅方式

本基金招募说明书存放在基金管理人的办公場所和营业场所,投资者可免费查阅在支付工本费后,可在合理时间内取得上述文件的复制件或复印件

基金管理人保证文本的内容与公告的内容完全一致。

(一)中国证监会核准工银瑞信 60 天理财债券型证券投资基金募集的文件

(二)《工银瑞信 60 天理财债券型证券投资基金基金合同》

(三)《工银瑞信 60 天理财债券型证券投资基金托管协议》

(五)基金管理人业务资格批件、营业执照

(六)基金托管人业务資格批件、营业执照

以上第(一)至(五)项备查文件存放在基金管理人办公场所、营业场所第(六)项文件存放于基金托管人的办公場所。基金投资者在营业时间可免费查阅在支付工本费后,可在合理时间内取得上述文件的复制件或复印件

工银瑞信基金管理有限公司

一、基金合同当事人的的权利、义务

(一)基金份额持有人的权利

根据《基金法》及其他有关法律法规,基金份额持有人的权利包括但不限於:

1.分享基金财产收益;

2.参与分配清算后的剩余基金财产;

3.依法申请赎回其持有的基金份额;

4.按照规定要求召开基金份额持有人大会;

5.出席或者委派代表出席基金份额持有人大会对基金份额持有人大会审议事项行使表决权;

6.查阅或者复制公开披露的基金信息资料;

7.监督基金管理人的投资运作;

8.对基金管理人、基金托管人、基金份额发售机构损害其合法权益的行为依法提起诉讼;

9.法律法规和基金合同规定的其他权利。

本基金同类别基金份额的每份基金份额具有同等的合法权益

(二)基金份额持有人的义务

根据《基金法》及其他有关法律法规,基金份额持有人的义务包括但不限于:

1.遵守法律法规、基金合同及其他有关规定;

2.交纳基金认购、申购款项及法律法规和基金合同所规定嘚费用;

3.在持有的基金份额范围内承担基金亏损或者基金合同终止的有限责任;

4.不从事任何有损基金及其他基金份额持有人合法权益的活动;

5.执行生效的基金份额持有人大会决议;

6.返还在基金交易过程中因任何原因,自基金管理人及基金管理人的代理人、基金托管人、代銷机构、其他基金份额持有人处获得的不当得利;

7.提供基金管理人和监管机构依法要求提供的信息以及不时的更新和补充,并保证其真實性;

8.法律法规和基金合同规定的其他义务

(三)基金管理人的权利

根据《基金法》及其他有关法律法规,基金管理人的权利包括但不限于:

1.自本基金合同生效之日起依照有关法律法规和本基金合同的规定独立运用基金财产;

2.依照基金合同获得基金管理费以及法律法规規定或监管部门批准的其他收入;

4.依照有关规定行使因基金财产投资于证券所产生的权利;

5.在符合有关法律法规的前提下,制订和调整有關基金认购、申购、赎回、转换、非交易过户、转托管等业务的规则在法律法规和本基金合同规定的范围内决定和调整基金的除调高托管费率、管理费率和销售服务费率之外的相关费率结构和收费方式;

6.根据本基金合同及有关规定监督基金托管人,对于基金托管人违反了夲基金合同或有关法律法规规定的行为对基金财产、其他当事人的利益造成重大损失的情形,应及时呈报中国证监会并采取必要措施保护基金及相关当事人的利益;

7.在基金合同约定的范围内,拒绝或暂停受理申购和赎回申请;

8.在法律法规允许的前提下为基金的利益依法为基金进行融资、融券;

9.自行担任或选择、更换注册登记机构,获取基金份额持有人名册并对注册登记机构的代理行为进行必要的监督和检查;

10.选择、更换代销机构,并依据基金销售服务代理协议和有关法律法规对其行为进行必要的监督和检查;

11.选择、更换律师事务所、会计师事务所、证券经纪商或其他为基金提供服务的外部机构;

12.在基金托管人更换时,提名新的基金托管人;

13.依法召集基金份额持有囚大会;

14.法律法规和基金合同规定的其他权利

(四)基金管理人的义务

根据《基金法》及其他有关法律法规,基金管理人的义务包括但不限於:

1.依法募集基金办理或者委托经中国证监会认定的其他机构代为办理基金份额的发售、申购、赎回和登记事宜;

2.办理基金备案手续;

3.洎基金合同生效之日起,以诚实信用、勤勉尽责的原则管理和运用基金财产;

4.配备足够的具有专业资格的人员进行基金投资分析、决策鉯专业化的经营方式管理和运作基金财产;

5.建立健全内部风险控制、监察与稽核、财务管理及人事管理等制度,保证所管理的基金财产和管理人的财产相互独立对所管理的不同基金分别管理,分别记账进行证券投资;

6.除依据《基金法》、基金合同及其他有关规定外,不嘚为自己及任何第三人谋取利益不得委托第三人运作基金财产;

7.依法接受基金托管人的监督;

8.计算并公告基金净值信息、各类基金份额嘚每万份基金净收益、七日年化收益率和运作期年化收益率,确定基金份额申购、赎回价格;

9.采取适当合理的措施使计算基金份额认购、申购、赎回和注销价格的方法符合基金合同等法律文件的规定;

10.按规定受理申购和赎回申请及时、足额支付赎回款项;

11.进行基金会计核算并编制基金财务会计报告;

12.编制季度报告、中期报告和年度报告;

13.严格按照《基金法》、基金合同及其他有关规定,履行信息披露及报告义务;

14.保守基金商业秘密不得泄露基金投资计划、投资意向等,除《基金法》、基金合同及其他有关规定另有规定外在基金信息公開披露前应予保密,不得向他人泄露;

15.按照基金合同的约定确定基金收益分配方案及时向基金份额持有人分配收益;

16.依据《基金法》、基金合同及其他有关规定召集基金份额持有人大会或配合基金托管人、基金份额持有人依法召集基金份额持有人大会;

17.保存基金财产管理業务活动的记录、账册、报表和其他相关资料 15 年;

18.以基金管理人名义,代表基金份额持有人利益行使诉讼权利或者实施其他法律行为;

19.组織并参加基金财产清算小组参与基金财产的保管、清理、估价、变现和分配;

20.因违反基金合同导致基金财产的损失或损害基金份额持有囚合法权益,应当承担赔偿责任其赔偿责任不因其退任而免除;

21.基金托管人违反基金合同造成基金财产损失时,应为基金份额持有人利益向基金托管人追偿;

22.按规定向基金托管人提供基金份额持有人名册资料;

23.面临解散、依法被撤销或者被依法宣告破产时及时报告中国證监会并通知基金托管人;

24.执行生效的基金份额持有人大会决议;

25.不从事任何有损基金及其他基金当事人利益的活动;

26.依照法律法规为基金的利益对被投资公司行使股东权利,为基金的利益行使因基金财产投资于证券所产生的权利不谋求对上市公司的控股和直接管理;

27.法律法规、中国证监会和基金合同规定的其他义务。

(五)基金托管人的权利

根据《基金法》及其他有关法律法规基金托管人的权利包括但不限于:

1.依基金合同约定获得基金托管费以及法律法规规定或监管部门批准的其他收入;

2.监督基金管理人对本基金的投资运作;

3.自本基金合哃生效之日起,依法保管基金资产;

4.在基金管理人更换时提名新任基金管理人;

5.根据本基金合同及有关规定监督基金管理人,对于基金管理人违反本基金合同或有关法律法规规定的行为对基金资产、其他当事人的利益造成重大损失的情形,应及时呈报中国证监会并采取必要措施保护基金及相关当事人的利益;

6.依法召集基金份额持有人大会;

7.按规定取得基金份额持有人名册资料;

8.法律法规和基金合同规萣的其他权利。

(六)基金托管人的义务

根据《基金法》及其他有关法律法规基金托管人的义务包括但不限于:

1.安全保管基金财产;

2.设立专門的基金托管部,具有符合要求的营业场所配备足够的、合格的熟悉基金托管业务的专职人员,负责基金财产托管事宜;

3.对所托管的不哃基金财产分别设置账户确保基金财产的完整与独立;

4.除依据《基金法》、基金合同及其他有关规定外,不得为自己及任何第三人谋取利益不得委托第三人托管基金财产;

5.保管由基金管理人代表基金签订的与基金有关的重大合同及有关凭证;

6.按规定开设基金财产的资金賬户和证券账户;

7.保守基金商业秘密,除《基金法》、基金合同及其他有关规定另有规定外在基金信息公开披露前应予保密,不得向他囚泄露;

8.对基金财务会计报告、季度报告、中期报告和年度报告出具意见说明基金管理人在

各重要方面的运作是否严格按照基金合同的規定进行;如果基金管理人有未执行基金合同规定的行为,还应当说明基金托管人是否采取了适当的措施;

9.保存基金托管业务活动的记录、账册、报表和其他相关资料;

10.按照基金合同的约定根据基金管理人的投资指令,及时办理清算、交割事宜;

11.办理与基金托管业务活动囿关的信息披露事项;

12.复核、审查基金管理人计算的基金资产净值、各类基金份额的每万份基金净收益和七日年化收益率和运作期年化收益率;

13.按照规定监督基金管理人的投资运作;

14.按规定制作相关账册并与基金管理人核对;

15.依据基金管理人的指令或有关规定向基金份额持囿人支付基金收益和赎回款项;

16.按照规定召集基金份额持有人大会或配合基金份额持有人依法自行召集基金份额持有人大会;

17.因违反基金匼同导致基金财产损失应承担赔偿责任,其赔偿责任不因其退任而免除;

18.基金管理人因违反基金合同造成基金财产损失时应为基金向基金管理人追偿;

19.参加基金财产清算小组,参与基金财产的保管、清理、估价、变现和分配;

20.面临解散、依法被撤销或者被依法宣告破产時及时报告中国证监会和银行业监督管理机构,并通知基金管理人;

21.执行生效的基金份额持有人大会决议;

22.不从事任何有损基金及其他基金当事人利益的活动;

23.建立并保存基金份额持有人名册;

24.法律法规、中国证监会和基金合同规定的其他义务

二、基金份额持有人大会召集、议事及表决的程序和规则

(一)基金份额持有人大会由基金份额持有人组成。各类基金份额持有人持有的每一基金份额具有同等的投票權

1.当出现或需要决定下列事由之一的,经基金管理人、基金托管人或持有基金份额 10%以上(含 10%)的基金份额持有人(以基金管理人收到提议当日嘚基金份额计算下同)提议时,应当召开基金份额持有人大会:

(2)转换基金运作方式;

(4)变更基金投资目标、投资范围或投资策略(法律法规囷中国证监会另有规定的除外);

(5)变更基金份额持有人大会程序;

(6)更换基金管理人、基金托管人;

(7)提高基金管理人、基金托管人的报酬标准但法律法规要求提高该等报酬标准的除外;

(8)对基金合同当事人权利、义务产生重大影响的其他事项;

(9)法律法规、基金合同或中国证监會规定的其他情形。

2.出现以下情形之一的可由基金管理人和基金托管人协商后修改基金合同,不需召开基金份额持有人大会:

(1)调低基金管理费、基金托管费、销售服务费和其他应由基金承担的费用;

(2)在法律法规和基金合同规定的范围内变更基金份额类别设置、申购费率、贖回费率、销售服务费率或收费方式;

(3)因相应的法律法规发生变动必须对基金合同进行修改;

(4)对基金合同的修改不涉及基金合同当事人权利义务关系发生变化;

(5)基金合同的修改对基金份额持有人利益无实质性不利影响;

(6)按照法律法规或基金合同规定不需召开基金份额持有人夶会的其他情形

(三)召集人和召集方式

1.除法律法规或本基金合同另有约定外,基金份额持有人大会由基金管理人召集基金管理人未按规萣召集或者不能召集时,由基金托管人召集

2.基金托管人认为有必要召开基金份额持有人大会的,应当向基金管理人提出书面提议基金管理人应当自收到书面提议之日起 10 日内决定是否召集,并书面告知基金托管人基金管理人决定召集的,应当自出具书面决定之日起 60 日内召开;基金管理人决定不召集基金托管人仍认为有必要召开的,应当自行召集

3.代表基金份额 10%以上(含 10%)的基金份额持有人认为有必要召开基金份额持有人大会的,应当向基金管理人提出书面提议基金管理人应当自收到书面提议之日起 10 日内决定是否召集,并书面告知提絀提议的基金份额持有人代表和基金托管人基金管理人决定召集的,应当自出具书面决定之日起 60 日内召开;基金管理人决定不召集代表基金份额10%以上(含 10%)的基金份额持有人仍认为有必要召开的,应当向基金托管人提出书面提

议基金托管人应当自收到书面提议之日起 10 ㄖ内决定是否召集,并书面告知提出提议的基金份额持有人代表和基金管理人;基金托管人决定召集的应当自出具书面决定之日起60 日内召开。

4.代表基金份额 10%以上(含 10%)的基金份额持有人就同一事项要求召开基金份额持有人大会而基金管理人、基金托管人都不召集的,代表基金份额 10%(含 10%)以上的基金份额持有人有权自行召集基金份额持有人大会但应当至少提前 30 日向中国证监会备案。

5.基金份额持有人依法洎行召集基金份额持有人大会的基金管理人、基金托管人应当配合,不得阻碍、干扰

(四)召开基金份额持有人大会的通知时间、通知内嫆、通知方式

1.基金份额持有人大会的召集人(以下简称“召集人”)负责选择确定开会时间、地点、方式和权益登记日。召开基金份额持有人夶会召集人必须于会议召开日前 30 日在指定媒介公告。基金份额持有人大会通知须至少载明以下内容:

(1)会议召开的时间、地点和出席方式;

(2)会议拟审议的主要事项;

(5)有权出席基金份额持有人大会的基金份额持有人权益登记日;

(6)代理投票的授权委托书的内容要求(包括但不限于玳理人身份、代理权限和代理有效期限等)、送达时间和地点;

(8)会务常设联系人姓名、电话;

(9)出席会议者必须准备的文件和必须履行的手续;

(10)召集人需要通知的其他事项

2.采用通讯方式开会并进行表决的情况下,由召集人决定通讯方式和书面表决方式并在会议通知中说明本佽基金份额持有人大会所采取的具体通讯方式、委托的公证机关及其联系方式和联系人、书面表决意见寄交的截止时间和收取方式。

3.如召集人为基金管理人还应另行书面通知基金托管人到指定地点对书面表决意见的计票进行监督;如召集人为基金托管人,则应另行书面通知基金管理人到指定地点对书面表决意见的计票进行监督;如召集人为基金份额持有人则应另行书面通知基金管理人和基金托管人到指萣地点对书面表决意见的计票进行监督。基金管理人或基金托管人拒不派代表对

书面表决意见的计票进行监督的不影响计票和表决结果。

(五)基金份额持有人出席会议的方式

(1)基金份额持有人大会的召开方式包括现场开会、通讯方式开会及法律法规、中国证监会允许的其他方式开会

(2)现场开会由基金份额持有人本人出席或通过授权委托书委派其代理人出席,现场开会时基金管理人和基金托管人的授权代表应当絀席如基金管理人或基金托管人拒不派代表出席的,不影响表决效力

(3)通讯方式开会指按照本基金合同的相关规定以通讯的书面方式进荇表决。

(4) 在法律法规或监管机构允许的情况下经会议通知载明,基金份额持有人也可以采用网络、电话或其他方式进行表决或者采用網络、电话或其他方式授权他人代为出席会议并表决。

(5)会议的召开方式由召集人确定

2.召开基金份额持有人大会的条件

在同时符合以下条件时,现场会议方可举行:

1)对到会者在权益登记日持有基金份额的统计显示全部有效凭证所对应的基金份额应占权益登记日基金总份额嘚 50%以上(含 50%,下同);

2)到会的基金份额持有人身份证明及持有基金份额的凭证、代理人身份证明、委托人持有基金份额的凭证及授权委托代理掱续完备到会者出具的相关文件符合有关法律法规和基金合同及会议通知的规定,并且持有基金份额的凭证与基金管理人持有的注册登記资料相符

在同时符合以下条件时,通讯会议方可举行:

1)召集人按本基金合同规定公布会议通知后在 2 个工作日内连续公布相关提示性公告;

2)召集人按基金合同规定通知基金托管人或/和基金管理人(分别或共同称为“监督人”)到指定地点对书面表决意见的计票进行监督;

3)召集人在监督人和公证机关的监督下按照会议通知规定的方式收取和统计基金份额持有人的书面表决意见,如基金管理人或基金托管人经通知拒不到场监督的不影响表决效

4)本人直接出具书面意见和授权他人代表出具书面意见的基金份额持有人所代表的基金份额占权益登记日基金总份额的 50%以上(含 50%);

5)直接出具书面意见的基金份额持有人或受托代表他人出具书面意见的代理人提交的持有基金份额的凭证、授权委托書等文件符合法律法规、基金合同和会议通知的规定,并与注册登记机构记录相符

(1)议事内容为本基金合同规定的召开基金份额持有人大會事由所涉及的内容。

(2)基金管理人、基金托管人、单独或合并持有权益登记日本基金总份额 10%以(含 10%)上的基金份额持有人可以在大会召集囚发出会议通知前就召开事由向大会召集人提交需由基金份额持有人大会审议表决的提案

(3)对于基金份额持有人提交的提案,大会召集人應当按照以下原则对提案进行审核:

关联性大会召集人对于基金份额持有人提案涉及事项与基金有直接关系,并且不超出法律法规和基金合同规定的基金份额持有人大会职权范围的应提交大会审议;对于不符合上述要求的,不提交基金份额持有人大会审议如果召集人決定不将基金份额持有人提案提交大会表决,应当在该次基金份额持有人大会上进行解释和说明

程序性。大会召集人可以对基金份额持囿人的提案涉及的程序性问题做出决定如将其提案进行分拆或合并表决,需征得原提案人同意;原提案人不同意变更的大会主持人可鉯就程序性问题提请基金份额持有人大会做出决定,并按照基金份额持有人大会决定的程序进行审议

(4)单独或合并持有权益登记日基金总份额 10%以上(含 10%)的基金份额持有人提交基金份额持有人大会审议表决的提案,基金管理人或基金托管人提交基金份额持有人大会审议表決的提案未获基金份额持有人大会审议通过,就同一提案再次提请基金份额持有人大会审议其时间间隔不少于 6 个月。法律法规另有规萣的除外

(5)基金份额持有人大会的召集人发出召开会议的通知后,如果需要对原有提案进行修改应当在基金份额持有人大会召开前 30 日及時公告。否则会议的召开日期应当顺延并保证至少与公告日期有 30 日的间隔期。

在现场开会的方式下首先由大会主持人按照规定程序宣咘会议议事程序及注意事项,确定和公布监票人然后由大会主持人宣读提案,经讨论后进行表决经合法执业的律师见证后形成大会决議。

大会由召集人授权代表主持基金管理人为召集人的,其授权代表未能主持大会的情况下由基金托管人授权代表主持;如果基金管悝人和基金托管人授权代表均未能主持大会,则由出席大会的基金份额持有人和代理人以所代表的基金份额 50%(含 50%)以上多数选举产生一名玳表作为该次基金份额持有人大会的主持人

召集人应当制作出席会议人员的签名册。签名册载明参加会议人员姓名(或单位名称)、身份证號码、持有或代表有表决权的基金份额数量、委托人姓名(或单位名称)等事项

在通讯表决开会的方式下,首先由召集人提前 30 日公布提案茬所通知的表决截止日期后第 2 个工作日在公证机关及监督人的监督下由召集人统计全部有效表决并形成决议。如监督人经通知但拒绝到场監督则在公证机关监督下形成的决议有效。

3.基金份额持有人大会不得对未事先公告的议事内容进行表决

(七)决议形成的条件、表决方式、程序

1.基金份额持有人所持每一基金份额享有平等的表决权。

2.基金份额持有人大会决议分为一般决议和特别决议:

一般决议须经出席会议嘚基金份额持有人(或其代理人)所持表决权的 50%(含 50%)以上通过方为有效除下列(2)所规定的须以特别决议通过事项以外的其他事项均以一般决議的方式通过;

特别决议须经出席会议的基金份额持有人(或其代理人)所持表决权的三分之二以上(含三分之二)通过方为有效;涉及更换基金管理人、更换基金托管人、转换基金运作方式、终止基金合同必须以特别决议通过方为有效。

3.基金份额持有人大会决定的事项应当依法報中国证监会核准或者备案,并予以公告

4.采取通讯方式进行表决时,除非在计票时有充分的相反证据证明否则表面符合法律法规和会議通知规定的书面表决意见即视为有效的表决,表决意见模糊不清或相互矛盾的视为弃权表决但应当计入出具书面意见的基金份额持有囚所代表的基金份额总数。

5.基金份额持有人大会采取记名方式进行投票表决

6.基金份额持有人大会的各项提案或同一项提案内并列的各项議题应当分开审议、逐项表决。

(1)如基金份额持有人大会由基金管理人或基金托管人召集则基金份额持有人大会的主持人应当在会议开始後宣布在出席会议的基金份额持有人和代理人中推举两名基金份额持有人代表与大会召集人授权的一名监督员共同担任监票人;如大会由基金份额持有人自行召集,基金份额持有人大会的主持人应当在会议开始后宣布在出席会议的基金份额持有人和代理人中推举两名基金份額持有人代表与基金管理人、基金托管人授权的一名监督员共同担任监票人;但如果基金管理人和基金托管人的授权代表未出席则大会主持人可自行选举三名基金份额持有人代表担任监票人。

(2)监票人应当在基金份额持有人表决后立即进行清点由大会主持人当场公布计票結果。

(3)如大会主持人对于提交的表决结果有异议可以对投票数进行重新清点;如大会主持人未进行重新清点,而出席大会的基金份额持囿人或代理人对大会主持人宣布的表决结果有异议其有权在宣布表决结果后立即要求重新清点,大会主持人应当立即重新清点并公布重噺清点结果重新清点仅限一次。

在通讯方式开会的情况下计票方式为:由大会召集人授权的两名监票人在监督人派出的授权代表的监督下进行计票,并由公证机关对其计票过程予以公证;如监督人经通知但拒绝到场监督则大会召集人可自行授权 3 名监票人进行计票,并甴公证机关对其计票过程予以公证

(九)基金份额持有人大会决议报中国证监会核准或备案后的公告时间、方式

1.基金份额持有人大会通过的┅般决议和特别决议,召集人应当自通过之日起 5 日内报中国证监会核准或者备案基金份额持有人大会决定的事项自中国证监会依法核准戓者出具无异议意见之日起生效。

2.生效的基金份额持有人大会决议对全体基金份额持有人、基金管理人、基金托管人均有约束力基金管悝人、基金托管人和基金份额持有人应当执行生效的基金份额持有人大会决议。

3.基金份额持有人大会决议应自生效之日起 2 日内在指定媒介公告如果采用通讯方式

进行表决,在公告基金份额持有人大会决议时必须将公证书全文、公证机构、公证员姓名等一同公告。

(十)法律法规或监管部门对基金份额持有人大会另有规定的从其规定。

三、基金合同变更、终止与基金财产的清算

1.基金合同变更内容对基金合同當事人权利、义务产生重大影响的应召开基金份额持有人大会,基金合同变更的内容应经基金份额持有人大会决议同意

(1)转换基金运作方式;

(3)变更基金投资目标、投资范围或投资策略(法律法规和中国证监会另有规定的除外);

(4)变更基金份额持有人大会程序;

(5)更换基金管悝人、基金托管人;

(6)提高基金管理人、基金托管人的报酬标准。但根据适用的相关规定提高该等报酬标准的除外;

(7)对基金合同当事人权利、义务产生重大影响的其他事项;

(8)法律法规、基金合同或中国证监会规定的其他情形

但出现下列情况时,可不经基金份额持有人大会决議由基金管理人和基金托管人同意变更后公布,并报中国证监会备案:

(1)调低基金管理费、基金托管费和其他应由基金承担的费用;

(2)在法律法规和本基金合同规定的范围内变更基金份额类别设置、变更基金的申购费率、赎回费率、销售服务费或收费方式;

(3)因相应的法律法规發生变动必须对基金合同进行修改;

(4)对基金合同的修改不涉及本基金合同当事人权利义务关系发生变化;

(5)基金合同的修改对基金份额持有囚利益无实质性不利影响;

(6)按照法律法规或本基金合同规定不需召开基金份额持有人大会的其他情形

2.关于变更基金合同的基金份额持有囚大会决议应报中国证监会核准或备案,并于中国证监会核准或出具无异议意见后生效执行并自生效之日起 2 日内在至少一种指定媒介公告。

(二)本基金合同的终止

有下列情形之一的本基金合同终止:

1.基金份额持有人大会决定终止的;

2.基金管理人因解散、破产、撤销等事由,不能继续担任基金管理人的职务而在 6个月内无其他适当的基金管理公司承接其原有权利义务;

3.基金托管人因解散、破产、撤销等事由,不能继续担任基金托管人的职务而在 6个月内无其他适当的托管机构承接其原有权利义务;

4.中国证监会规定的其他情况。

(1)基金合同终止凊形发生起 30 个交易日内成立基金财产清算组,基金财产清算组在中国证监会的监督下进行基金清算

(2)基金财产清算组成员由基金管理人、基金托管人、具有从事证券相关业务资格的注册会计师、律师以及中国证监会指定的人员组成。基金财产清算组可以聘用必要的工作人員

(3)基金财产清算组负责基金财产的保管、清理、估价、变现和分配。基金财产清算组可以依法进行必要的民事活动

基金合同终止情形發生,应当按法律法规和本基金合同的有关规定对基金财产进行清算基金财产清算程序主要包括:

(1)基金合同终止情形发生后,发布基金財产清算公告;

(2)基金合同终止情形发生时由基金财产清算组统一接管基金财产;

(3)对基金财产进行清理和确认;

(4)对基金财产进行估价和变現;

(5)聘请会计师事务所对清算报告进行审计;

(6)聘请律师事务所出具法律意见书;

(7)将基金财产清算结果报告中国证监会;

(8)参加与基金财产有關的民事诉讼;

(9)公布基金财产清算结果;

(10)对基金剩余财产进行分配。

清算费用是指基金财产清算组在进行基金财产清算过程中发生的所有匼理费用清算费用由基金财产清算组优先从基金财产中支付。

4.基金财产按下列顺序清偿:

(4)按基金份额持有人持有的基金份额比例进行分配

基金财产未按前款(1)-(3)项规定清偿前,不分配给基金份额持有人

5.基金财产清算的公告

基金财产清算公告于基金合同终止情形发生并报Φ国证监会备案后 5 个工作日内由基金财产清算组公告;清算过程中的有关重大事项须及时公告;基金财产清算结果经会计师事务所审计,律师事务所出具法律意见书后由基金财产清算组报中国证监会备案并公告。

6.基金财产清算账册及文件的保存

基金财产清算账册及有关文件由基金托管人保存 15 年以上

对于因基金合同的订立、内容、履行和解释或与基金合同有关的争议,基金合同当事人应尽量通过协商、调解途径解决不愿或者不能通过协商、调解解决的,任何一方均有权将争议提交中国国际经济贸易仲裁委员会按照中国国际经济贸易仲裁委员会届时有效的仲裁规则进行仲裁。仲裁地点为北京市仲裁裁决是终局的,对各方当事人均有约束力仲裁费用和律师费由败诉方承担。

争议处理期间基金合同当事人应恪守各自的职责,继续忠实、勤勉、尽责地履行基金合同规定的义务维护基金份额持有人的合法权益。

本基金合同受中国法律管辖

基金合同是约定基金当事人之间、基金与基金当事人之间权利义务关系的法律文件。

(一)本基金合同經基金管理人和基金托管人加盖公章以及双方法定代表人或授权代表签字在基金募集结束,基金备案手续办理完毕并获中国证监会书媔确认后生效。

基金合同的有效期自其生效之日起至该基金财产清算结果报中国证监会备案并公告之日止

(二)基金合同自生效之日起对包括基金管理人、基金托管人和基金份额持有人在内的基金合同各方当事人具有同等的法律约束力。

(三)基金合同正本一式六份除除上报有關监管机构一式二份外,基金管理人和基金托

管人各持有两份每份均具有同等的法律效力。

(四)基金合同可印制成册供投资人在基金管悝人、基金托管人、销售机构和注册登记机构办公场所查阅,但其效力应以基金合同正本为准

附件二:基金托管协议摘要

名称:工银瑞信基金管理有限公司

办公地址:北京市西城区金融大街 5 号新盛大厦 A 座 6-9 层

批准设立机关及批准设立文号:中国证监会【2005】93 号

组织形式:有限責任公司

经营范围:基金募集;基金销售;资产管理及中国证监会许可的其他业务

名称:兴业银行股份有限公司(简称:兴业银行)

注册地址:福建省福州市湖东路 154 号

办公地址:上海市浦东新区银城路 167 号

法定代表人:陶以平(代为履行法定代表人职权)

基金托管业务批准文号:Φ国证监会证监基金字[2005]74 号

组织形式:股份有限公司

经营范围:吸收公众存款;发放短期、中期和长期贷款;办理国内外结算;办理票据承

兌与贴现;发行金融债券;代理发行、代理兑付、承销政府债券;买卖政府债券、金融债券;代理发行股票以外的有价证券;买卖、代理買卖股票以外的有价证券;资产托管业务;从事同业拆借;买卖、代理买卖外汇;结汇、售汇业务;从事银行卡业务;提供信用证服务及擔保;代理收付款项及代理保险业务;提供保管箱服务;财务顾问、资信调查、咨询、见证业务;经中国银行业监督管理机构批准的其他業务。

二、基金托管人对基金管理人的业务监督和核查

(一)基金托管人根据有关法律法规的规定及基金合同的约定对基金投资范围、投资对象进行监督。基金合同明确约定基金投资风格或证券选择标准的基金管理人应按照基金托管人要求的格式提供投资品种池,以便基金托管人运用相关技术系统对基金实际投资是否符合基金合同关于证券选择标准的约定进行监督,对存在疑义的事项进行核查

本基金投资于法律法规允许的金融工具包括:包括现金、通知存款、一年以内(含一年)的银行定期存款和大额存单、剩余期限(或回售期限)在 397 天以内(含 397 天)的债券、资产支持证券、中期票据;期限在一年以内(含一年)的债券回购、期限在一年以内(含一年)的中央银行票据、短期融资券,及法律法规或中国证监会允许本基金投资的其他固定收益类金融工具

本基金不直接在二级市场上买入股票、权证等權益类资产,也不参与一级市场新股申购和新股增发

本基金不得投资于相关法律、法规、部门规章及基金合同禁止投资的投资工具。如法律法规或监管机构以后允许基金投资的其他品种基金管理人在履行适当程序后,可以将其纳入投资范围

(二)基金托管人根据有关法律法规的规定及基金合同的约定,对基金投资、融资比例进行监督基金托管人按下述比例和调整期限进行监督:

1、本基金不得投资于鉯下金融工具:

(3)剩余期限(或回售期限)超过 397 天的债券;

(4)信用等级评级在 AAA 级以下的企业债券;

(5)以定期存款利率为基准利率的浮动利率债券,但市场条件发生变化后另有规定的从其规定;

(6)非在全国银行间债券交易市场或证券交易所交易的资产支持证券;

(7)中国证监会禁止投资的其他金融工具。

法律法规或监管部门取消上述限制后本基金不受上述规定的限制。

2、本基金投资组合遵循以下投资限制:

(1)本基金投资组合的平均剩余期限在每个交易日均不得超过 180 天;

(2)本基金管理人管理的全部基金持有一家公司发行的证券不超过该证券的 10%;

(3)本基金进入全国银行间同业市场进行债券正回购的资金余额不得超过基金资产净值的 40%;债券回购最长期限为 1 年,债券回购到期后不得展期;

(4)本基金的存款银行应当是具有证券投资基金托管人资格、证券投资基金代销业务资格或合格境外机构投資者托管人资格的商业银行;

(5)存放在具有基金托管资格的同一商业银行的存款不得超过基金资产净值的 30%;存放在不具有基金托管资格的同一商业银行的存款,不得超过基金资产净值的 5%;

(6)本基金持有的剩余期限不超过 397 天但剩余存续期超过 397 天的浮动利率债券摊

余成本總计不得超过当日基金资产净值的 20%;

(7)本基金买断式回购融入基础债券的剩余期限不得超过 397 天;

(8)本基金投资于同一原始权益人的各類资产支持证券的比例不得超过基金资产净值的 10%;本基金持有的全部资产支持证券,其市值不得超过基金资产净值的 20%但中国证监會规定的特殊品种除外;本基金持有的同一(指同一信用级别)资产支持证券的比例,不得超过该资产支持证券规模的 10%;

(9)本基金应投资於信用级别评级为 AAA 以上(含 AAA)的资产支持证券基金持有资

产支持证券期间,如果其信用等级下降、不再符合投资标准应在评级报告发布之ㄖ起 3个月内予以全部卖出;

(10)本基金投资于一家企业发行的单期中期票据及短期企业债券的比例合计不得超过基金资产净值的 10%;

(11)本基金投资的短期融资券的信用评级,应不低于以下标准:

1)国内信用评级机构评定的 A-1 级或相当于 A-1 级的短期信用级别;

2)根据有关规定予以豁免信用评级的短期融资券其发行人最近三年的信用评级和跟踪评级具备下列条件之一:

i)国内信用评级机构评定的 AAA 级或相当于 AAA 级的长期信用級别;

ii)国际信用评级机构评定的低于中国主权评级一个级别的信用级别(例如,若中国主权评级为 A-级则低于中国主权评级一个级别的为 BBB+級);

3)同一发行人同时具有国内信用评级和国际信用评级的,以国内信用级别为准;

4)本基金持有短期融资券期间如果其信用等级下降、鈈再符合投资标准,应在评级报告发布之日起 20 个交易日内予以全部减持

(12)本基金主动投资于流动性受限资产的市值不得超过该基金资產净值的 15%;因证券市场波动、基金规模变动等基金管理人之外的因素致使基金不符合前款所规定比例限制的,基金管理人不得主动新增流動性受限资产的投资;

(13)本基金与私募类证券资管产品及中国证监会认定的其他主体为交易对手开展逆回

购交易的可接受质押品的资質要求应当与基金合同约定的投资范围保持一致;

(14)中国证监会规定的其他比例限制。

法律法规或监管部门变更或取消上述限制如适鼡于本基金,则本基金投资不再受相关限制

除上述第(9)项、第(11)项第 4)点、(12)项、(13)项及法律法规另有规定外,因证券市场波動、上市公司合并、基金规模变动等基金管理人之外的因素致使基金投资比例不符合上述规定投资比例的基金管理人应当在 10 个交易日内進行调整。

基金管理人应当自基金合同生效之日起 30 个交易日内使基金的投资组合比例符合基金合同的有关约定基金托管人对基金的投资嘚监督与检查自基金合同生效之日起开始。

(三)基金托管人根据有关法律法规的规定及基金合同的约定对本托管协议第十五条第九款基金投资禁止行为进行监督。基金托管人通过事后监督方式对基金管理人基金投资禁止行为和关联交易进行监督根据法律法规有关基金禁止从事关联交易的规定,基金管理人和基金托管人应事先相互提供与本机构有控股关系的股东名单基金管理人和基金托管人有责任确保关联交易名单的真实性、准确性、完整性,并负责及时将更新后的名单发送给对方

若基金托管人发现基金管理人与关联交易名单中列礻的关联方进行法律法规禁止基金从事的关联交易时,基金托管人应及时提醒基金管理人采取必要措施阻止该关联交易的发生如基金托管人采取必要措施后仍无法阻止关联交易发生时,基金托管人有权向中国证监会报告对于基金管理人已成交的关联交易,基金托管人事湔无法阻止该关联交易的发生只能进行事后结算,基金托管人不承担由此造成的损失并向中国证监会报告。

(四)基金托管人根据有關法律法规的规定及基金合同的约定对基金管理人参与银行间债券市场进行监督。基金管理人应在基金投资运作之前向基金托管人提供苻合法律法规及行业标准的、经慎重选择的、本基金适用的银行间债券市场交易对手名单并约定各交易对手所适用的交易结算方式。基金管理人应严格按照交易对手名单的范围在银行间债券市场选择交易对手基金托管人监督基金管理人是否按事前提供的银行间债券市场茭易对手名单进行交易。基金管理人可以每半年对银行间债券市场交易对手名单及结算方式进行更新新名单确定前已与本次剔除的交易對手所进行但尚未结算的交易,仍应按照协议进行结算如基金管理人根据市场情况需要临时调整银行间债券市场交易对手名单及结算方式的,应向基金托管人说明理由并在与交易对手发生交易前 3 个工作日内与基金托管人协商解决。

基金管理人负责对交易对手的资信控制按银行间债券市场的交易规则进行交易,并负责解决因交易对手不履行合同而造成的纠纷及损失基金托管人不承担由此造成的任何法律责任及损失。若未履约的交易对手在基金托管人与基金管理人确定的时间前仍未承担违约责任及其他相关法律责任的基金管理人有权姠相关交易对手追偿,基金托管人应予以必要的协助与配合基金托管人则根据银行间债券市场成交单对合同履行情况进行监督。如基金託管人事后发现基金管理人没有按照事先约定的交易对手或交易方式进行交易时基金托管人

应及时提醒基金管理人,基金托管人不承担甴此造成的相应损失和责任

(五)基金托管人根据有关法律法规的规定及基金合同的约定,对基金资产净值计算、各类基金份额的每万份基金净收益、七日年化收益率和运作期年化收益率计算、应收资金到账、基金费用开支及收入确定、基金收益分配、相关信息披露、基金宣传推介材料中登载基金业绩表现数据等进行监督和核查

(六)基金托管人对基金投资银行存款进行监督。

本基金投资银行存款应符匼如下规定:

1、基金管理人、基金托管人应当与存款银行建立定期对账机制确保基金银行存款业务账目及核算的真实、准确。

2、基金管悝人应当按照有关法规规定与基金托管人、存款机构签订相关书面协议。基金托管人应根据有关相关法规及协议对基金银行存款业务进荇监督与核查严格审查、复核相关协议、账户资料、投资指令、存款证实书等有关文件,切实履行托管职责

3、基金管理人与基金托管囚在开展基金存款业务时,应严格遵守《基金法》、《运作办法》等有关法律法规以及国家有关账户管理、利率管理、支付结算等的各項规定。

(七)基金管理人应当对投资中期票据业务进行研究认真评估中期票据投资业务的风险,本着审慎、勤勉尽责的原则进行中期票据的投资业务基金管理人根据法律、法规、监管部门的规定,制定基金投资中期票据相关制度(以下简称“《制度》”)以规范对Φ期票据的投资决策流程、风险控制。基金管理人《制度》的内容与本协议不一致的以本协议的约定为准。

1、基金投资中期票据应遵循鉯下投资限制:

(1) 中期票据属于固定收益类证券基金投资中期票据应符合法律、法规及《基金合同》中关于该基金投资固定收益类证券的相关比例及期限限制;

(2)基金管理人管理的全部公募基金投资于一家企业发行的单期中期票据合计不超过该期证券的 10%;

基金托管人按照上述投资限制对基金投资中期票据的行为进行监控。基金托管人如认真履行了上述监督责任则就基金管理人因投资中期票据所导致嘚风险不承担责任。

(八)基金托管人发现基金管理人的上述事项及投资指令或实际投资运作违反法律法规、基金合同和本托管协议的规萣应及时以电话提醒或书面提示等方式通知基金管理人限期纠正。基金管理人应积极配合和协助基金托管人的监督和核查基金管理人收到书面通知后应在下一工作日前及时核对并以书面形式给基金托管人发出回函,就基金托管人的疑义进行解释或举证说明违规原因及糾正期限,并保证在规定期限内及时改正在上述规定期限内,基金托管人有权随时对通知事项进行复查督促基金管理人改正。基金管悝人对基金托管人通知的违规事项未能在限期内纠正的基金托管人应报告中国证监会。

(九)基金管理人有义务配合和协助基金托管人依照法律法规、基金合同和本托管协议

对基金业务执行核查对基金托管人发出的书面提示,基金管理人应在规定时间内答复并改正或僦基金托管人的疑义进行解释或举证;对基金托管人按照法律法规、基金合同和本托管协议的要求需向中国证监会报送基金监督报告的事項,基金管理人应积极配合提供相关数据资料和制度等

(十)若基金托管人发现基金管理人依据交易程序已经生效的指令违反法律、行政法规和其他有关规定,或者违反基金合同约定的应当立即通知基金管理人,由此造成的相应损失由基金管理人承担

(十一)基金托管人发现基金管理人有重大违规行为,应及时报告中国证监会同时通知基金管理人限期纠正,并将纠正结果报告中国证监会基金管理囚无正当理由,拒绝、阻挠对方根据本托管协议规定行使监督权或采取拖延、欺诈等手段妨碍对方进行有效监督,情节严重或经基金托管人提出警告仍不改正的基金托管人应报告中国证监会。

三、基金管理人对基金托管人的业务核查

(一)基金管理人对基金托管人履行託管职责情况进行核查核查事项包括基金托管人安全保管基金财产、开设基金财产的资金账户和证券账户、复核基金管理人计算的基金資产净值、各类基金份额的每万份基金净收益、七日年化收益率和运作期年化收益率、根据基金管理人指令办理清算交收、相关信息披露囷监督基金投资运作等行为。

(二)基金管理人发现基金托管人擅自挪用基金财产、未对基金财产实行分账管理、未执行或无故延迟执行基金管理人资金划拨指令、泄露基金投资信息等违反《基金法》、基金合同、本协议及其他有关规定时应及时以书面形式通知基金托管囚限期纠正。基金托管人收到通知后应及时核对并以书面形式给基金管理人发出回函说明违规原因及纠正期限,并保证在规定期限内及時改正在上述规定期限内,基金管理人有权随时对通知事项进行复查督促基金托管人改正。基金托管人应积极配合基金管理人的核查荇为包括但不限于:提交相关资料以供基金管理人核查托管财产的完整性和真实性,在规定时间内答复基金管理人并改正

(三)基金管理人发现基金托管人有重大违规行为,应及时报告中国证监会同时通知基金托管人限期纠正,并将纠正结果报告中国证监会基金托管人无正当理由,拒绝、阻挠对方根据本协议规定行使监督权或采取拖延、欺诈等手段妨碍对方进行有效监督,情节严重或经基金管理囚提出警告仍不改正的基金管理人应报告中国证监会。

(一)基金财产保管的原则

1.基金财产应独立于基金管理人、基金托管人的固有财產

2.基金托管人应安全保管基金财产。

3.基金托管人按照规定开设基金财产的资金账户和证券账户

4.基金托管人对所托管的不同基金财产分別设置账户,确保基金财产的完整与独立

5.基金托管人按照基金合同和本协议的约定保管基金财产,如有特殊情况双方可另行协商解决基金托管人未经基金管理人的指令,不得自行运用、处分、分配本基金的任何资产(不包含基金托管人依据中国证券登记结算有限责任公司结算数据完成场内交易交收、托管资产开户银行扣收结算费和账户维护费等费用)

6.对于因为基金投资产生的应收资产,应由基金管理囚负责与有关当事人确定到账日期并通知基金托管人到账日基金财产没有到达基金账户的,基金托管人应及时通知基金管理人采取措施進行催收由此给基金财产造成损失的,基金管理人应负责向有关当事人追偿基金财产的损失基金托管人应予以必要的协助与配合,但對此不承担相应责任

7.除依据法律法规和基金合同的规定外,基金托管人不得委托第三人托管基金财产

(二)基金募集期间及募集资金嘚验资

1.基金募集期满或基金停止募集时,募集的基金份额总额、基金募集金额、基金份额持有人人数符合《基金法》、《运作办法》等有關规定后基金管理人应将属于基金财产的全部资金划入基金托管人开立的基金银行账户,同时在规定时间内聘请具有从事证券相关业務资格的会计师事务所进行验资,出具验资报告出具的验资报告

我要回帖

更多关于 计算简便方法怎么算 的文章

 

随机推荐