Magic Linux开发入门指南二.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Magic Linux开发入门指南二

Magic Linux开发入门指南二 本文献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 Magic Linux 开发入门指南(一) 制作一个 Linux 发布难吗? 很难。 制作一个 Linux 发布版需要很高深的技术吗? 你能行。 好多人很想参与 Magic Linux 的开发,但多数不知从何入手。 其实很简单,你只需要一台供你支配的 386 以上配置且能够上网的电脑,以及一个能够 工作在其上的 gcc 环境。 对,这就够了,其他的软件都是在帮助你更快的、更简便的完成这个工作。因为 Linux 源自于网络,发展于网络,能够上网才能得到 Linux;Linux 自身及在其之上运行的大多数 软件都是以源代码方式提供,且非 gcc 不能完成内核的编译。拥有了这些,你就可以开始将 这些源代码转化为可运行的内核、Shell 和一些应用软件,一点一点的就构成了一个完整的 可用的 Linux 系统。 本文就是讲述如何开始这些工作的。我会假定你对 Linux 有一定的了解,使用过如:cp、 mv、 等常用命令, rm 曾经成功的在某个 Linux 系统中安装过某个以源代码形式发布的软件, 有一些 C/C++或其他语言的经验。 另外,我所提到的 gcc 环境并不是单指 gcc 本身,而是一些与 gcc 相交织的软件集合, 它们共同工作,完成从源代码到可执行程序的转换过程,这个过程一般被称之为创建。 第一章 工具链的制作 在正式开始前,我还要让你了解一个重要的知识,那就是编译器、连接器和程序库他们 三者之间的关系,如果你已经非常了解了,可以略过这些内容。编译器只是将源代码翻译成 对应的机器代码, 但是这个时候这些代码是不能执行的, 因为既没有排列好执行顺序也没有 指定从哪里开始; 程序库实现了一些程序必要的行为, 比如你要输出一些内容到屏幕或从键 盘获得输入等;连接器将编译器产生的机器代码进行排序并告诉计算机(严格来讲是操作系 统)从什么地方开始执行,当程序需要输出一些内容到屏幕或从键盘获得输入时,请求程序 库完成这些事情。 虽然这些说法显得很不专业, 但是足以帮助你理解它们三者之间的关系了。 如果要获得更为专业、详细的知识请阅读相关专业书籍。 一个能够正常工作的 gcc 环境,需要三个源代码包的支持:binutils、gcc 和 glibc,它们 分别提供了连接器、编译器和程序库。其实他们并不仅仅提供了这些内容: binutils 是一个二进制工具集合,包含了汇编器、反汇编器、连接器、elf 可执行文件分 析器等重要工具,这些工具在进行 Linux 各种应用的开发时,发挥着巨大的作用。你可以在 /usr/bin 目录中找到他们。 gcc 是一个编译器集合,包含了 C、C++、Objective-C、Fortran、Java 和 Ada 语言,同时 为这些语言提供了一些标准库,如:libstdc++、libgcj,……。 gcc 的 C 是 Linux 的标准编译 器, linux 内核完全依赖于 gcc, 其他编译器不能编译 linux 内核。 由于 ABI(Application Binary Interface)的不兼容,其他编译器也不适合 Linux 上的大多数软件的编译,尤其那些使用 C++ 作为开发语言的软件系统。目前 Intel C/C++编译器开始兼容 gcc 的 ABI,因此现在可以采用 Intel C/C++编译器创建 Linux 上使用 C/C++开发的软件系统,但内核不行。gcc 被安装在 /usr/bin、/usr/lib 和/usr/include 目录中。 glibc 是提供系统调用和基本函数的 C 库,比如 open,malloc,printf 等等,所有动态连 接的程序都要用到它。它是用户程序与内核交流的标准接口。 这三个包在一起相互作用,来完成 Linux 的所有创建任务。除了 glibc 是自包含(自己依 赖于自己)的外,其他两个都要依赖于 glibc,同时 glibc 会与具体的内核版本有一定的依赖 性,但这并不是绝对的。注意,他们都是用 gcc 编译,并用 binutils 的连接器进行连接的。 这里就比较有趣了, 是先有鸡还是先有蛋呢?计算机的发展史咱们就不必讨论了, 在本章会 详细介绍如何来让他们的代码执行起来。但他们不是我们要的全部。 首先,你应该保证你有可用的 gcc 环境,能够用它让你的源代码变成可执行程序。往往 这需要你的计算机运行了某个版本的 Linux 发布。当然 Windows 也行,不过会比较麻烦, 我不建议你这么做,我也不会在这里讨论该怎么做。你也不要指望你现在的这个 gcc 环境可 以直

文档评论(0)

cbf96793 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档