本书基于Linux2.6.34内核详细介绍了Linux内核系统,覆盖了从核心内核系统的应用到内核设计与实现等各方面的内容。本书主要内容包括:进程管理、进程调度、时间管理和定时器、系统调用接口、内存寻址、内存管理和页缓存、VFS、内核同步以及调试技术等。同时本书也涵盖了Linux 2.6内核中颇具特色的内容,包括CFS 调度程序、抢占式内核、块I/O层以及I/O调度程序等。本书采用理论与实践相结合的路线,能够带领读者快速走进 Linux 内核世界,真正开发内核代码。 本书适合作为高等院校操作系统课程的教材或参考书,也可供相关技术人员参考。
迚入二十一丐纨癿现在,没有用过计算机癿朋友应该算徆少了吧?但是,你了觋计算机是什么向? 计 算机癿机壳里面吨有什么组件?丌同癿计算机可以作什么事情?你生活周遭有哪些电器用品内部是吨有 计算机相关组件癿? 底下我仧就来谈一谈这些东西呢! 所谓癿计算机就是一种计算器,而计算器其实是:『接受用户输入指令不数据, 绊由中央处理器癿数 学不逡辑单元运算处理后,以产生戒储存成有用癿信息』。 因此,叧要有输入设备 (丌管是键盘还是觌 摸屏)及输出设备(屏幕戒直接打印出来),讥你可以输入数据使该机器产生信息癿, 那就是一部计算器 了。
底下这些文件主要是针对在 Linux 上的网络服务器来书写架设方式的,鸟哥主要以使用 RPM/YUM 作为 软件安装的 CentOS 为基础系统。 CentOS 是属于 Red Hat Enterprise Linux (RHEL) 的操作系统,所 以理论上 RHEL, CentOS, Fedora 等版本都适用的啦! 为什么要使用默认的软件管理方式来安装所有的 服务器程序呢?这是因为大多数的 Linux 开发商都会有所谓的在线升级系统, 包括 CentOS/Fedora 的 yum ,以及 SuSE 的 YOU ,还有 Debian 的 apt 等等, 因为有在线『自动升级』,所以当然会比您自 己手动使用 Tarball 的安装方式来的方便且安全! 因为你的系统上头所有的数据可以在第一时间内『自 动』修补完毕嘛! 要架设好一部 Linux 服务器实在很简单,只要按照鸟哥网站上的步骤,一步一步的慢慢设定下去, 铁 定可以完成您所需要的设定的!但是,要维护好一部 Linux 主机,却是很困难的!您必须要熟悉 Linux 的系统架构、网络的基本知识如协议、IP、路由、DNS 等等的基础知识才行! 无论如何,您要开始『服务器架设篇』之前,请务必先读完『Linux 基础篇』的文章才行! 否则几乎就 如同上面提到的,维护这样的一部 Linux 主机,是很花时间的!没有这个认知,那就不要架站吧!免得 毒害其他的战友吶!
作为UNIX 环境编程方面的经典著作,由著名技术专家W.Richard Stevens撰写的AdvancedProgramming in the UNIX® Environment 自 1992 年出版以来,受到专家和读者的普遍欢迎。由 StephenA.Rago作为共同作者,根据新的系统和规范进行了更新,2005年出版了第2版。2013年由Rago更新到了第3版,涵盖了70多个最新版POSIX.1标准的新增接口,删除了STREAMS相关接口的内容,并将使用的典型平台更新为Solaris10、Darwin10.8.0、FressBSD8.0和Ubuntu12.04。 目前UNIX版本不断涌现,例如广为使用的苹果MacOSX和iOS使用开源类UNIX操作系统Darwin,谷歌的Android采用Linux作为操作系统内核。尽管UNIX编程环境和C程序设计语言的标准化方面已经有不少工作,但系统接口不断增加,例如SingleUNIXSpecification第1版(SUSv1)1994年出版时大约包含了1170个接口(也被称为Spec1170),到2010年发布第4版时 (SUSv4),已经包括1833个接口。虽然系统调用接口和库函数可参见《UNIX程序员手册》第2、 3部分,但“手册中没有给出实例及基本原理,而这些正是本书所要讲述的内容”(第1版前言)。本书精选了常用的400多个系统调用和库函数,这些接口基本是UNIX系统软件的核心功能,涵盖了UNIX/Linux系统编程的方方面面。本书通过简明完整的例子来说明其用途,不仅仅说明了其基本用法,还反映了不同平台之间细微差异,有助于读者对整个编程环境有全面深入的了解。在翻译本书的过程中,译者也是收益良多,同时,一些经典的案例已经用于大学课堂教学和编程实践中。
大纲 1.printk解决95%以上的问题 2.工程里的printk,dev_xxx和pr_xxx的正确使用 3.早期的打印 4.开机就死机的调试,initcall_debug 5.printk的耗时,哪些情况可以调用printk 6.printk打印级别控制 7.如何看oops和panic,oops和panic的区别;内核反汇编 8.用gdb对内核进行源代码级调试 9.用gdb对内核模块进行源代码级别的调试 10.用qemu在没有电路板的情况下进行内核源代码级别调试 11.内核内存泄露、内存越界等的调试 12.rcu stalled和系统lockup的调试 13.内核里的各种DEBUG选项 14.grabserial抓开机速度
本书内容基于Linux4.x内核,主要选取了Linux内核中比较基本和常用的内存管理、进程管理、并发与同步,以及中断管理这4个内核模块进行讲述。全书共分为6章,依次介绍了ARM体系结构、Linux内存管理、进程调度管理、并发与同步、中断管理、内核调试技巧等内容。本书的每节内容都是一个Linux内核的话题或者技术点,读者可以根据每小节前的问题进行思考,进而围绕问题进行内核源代码的分析。 本书内容丰富,讲解清晰透彻,不仅适合有一定Linux相关基础的人员,包括从事与Linux相关的开发人员、操作系统的研究人员、嵌入式开发人员及Android底层开发人员等学习和使用,而且适合作为对Linux感兴趣的程序员的学习用书,也可以作为大专院校相关专业师生的学习用书和培训学校的教材。
技术日新月异,产业斗转星移,滚滚红尘,消逝的事物太多,新事物的诞生也更迅猛。众多新生事物如灿烂烟花,转瞬即逝。当我们仰望星空时,在浩如烟海的专业名词中寻找,赫然发现,Linux的生命力之旺盛顽强,斗志之昂扬雄壮,令人称奇。它正以摧枯拉朽之势迅速占领包括服务器、云计算、消费电子、工业控制、仪器仪表、导航娱乐等在内的众多应用领域,并逐步占据许多WINCE、VxWorks的传统嵌入式市场。 Linux所及之处,所向披靡。这与Linux的社区式开发模式,迅速的迭代不无关系。Linux每2~3月更新一次版本,吸纳新的体系架构、芯片支持、驱动、内核优化和新特性,这使得Linux总是能够在第一时间内迎合用户的需求,快速地适应瞬息万变的市场。由 Linux以及围绕着Linux进行产品研发的众多企业和爱好者构成了一个庞大的Linux生态圈。 而本书,无疑给这个庞大的生态圈注入了养料。 然而,养料的注入应该是持续不断的。至今,Linux内核的底层BSP、驱动框架和内核实现发生了许多变更,本书涵盖了这些新的变化,这将给予开发者更多新的帮助。内核的代码不断重构并最优化,而本书也无疑是一次重大的重构。 生命不息,重构不止。
在计算机技术的发展史上,Unix操作系统的出现是一个重要的里程碑。早期的Unix曾免费供美国及一些西方国家的大学和科研机构使用,并且提供源代码,这一方面为高校和科研机构普及使用计算机提供了条件;另一方面,也是更重要的,为计算机软件的核心技术“操作系统”的教学和实验提供了条件。特别是Unix内核第6版的源代码,在相当长的一段时期内是大学计算机系高年级学生和研究生使用的教材,甚至可以说,美国当时整整一代的计算机专业人员都是读着Unix的源代码成长的。反过来,这也促进了Unix的普及和发展,并且在当时形成了一个Unix产业。事实上,回顾硅谷的形成和发展,也可以看到Unix起着重要的作用。Unix两大主流之一的BSD就是在加州大学伯克利分校开发的。后来,Unix成了商品,其源代码也受到了版权的保护,再说也日益复杂和庞大了,而第6版则又慢慢显得陈旧了,便逐渐不再用Unix内核的源代码作为教材了(但是直到现在还有在用的)。
在1997年春季的那一学期,我们讲授了Liaux2.0操作系统这门课程。目的是鼓励学生阅读源代码。为了完成这项工作,我们按学期分配项日,一方面关注内核的变化,另一方面对版本的变化进行测试。我们也为学生写下课程笔记,主要是关于Linux任务切换和任务调度的一些主要特点。 在1998春季的那一学期我们沿着这一思路继续做下去,但是此时已转到Linux 2.1的开发版。我们的课程笔记变得越来越庞大。在1998年7月,我们与O'Reilly&Associates出版社联系,建议他们出版Linux内核全书。真正的工作在1998的秋天开始,持续了大约一年半的时间。我们读了数千行的代码,努力去理解其含义。在做了所有这些工作以后,可以说我们的努力是完全值得的。我们学到的很多东西也许你在本书中并不能全部找到,不过我们还是希望我们已经成功地在后面的内容中反映了这些信息。
本站基于Calibre构建,感谢开源界的力量。所有资源搜集于互联网,如有侵权请邮件联系。
Github | Docker | Library | Project
本书基于Linux2.6.34内核详细介绍了Linux内核系统,覆盖了从核心内核系统的应用到内核设计与实现等各方面的内容。本书主要内容包括:进程管理、进程调度、时间管理和定时器、系统调用接口、内存寻址、内存管理和页缓存、VFS、内核同步以及调试技术等。同时本书也涵盖了Linux 2.6内核中颇具特色的内容,包括CFS 调度程序、抢占式内核、块I/O层以及I/O调度程序等。本书采用理论与实践相结合的路线,能够带领读者快速走进 Linux 内核世界,真正开发内核代码。 本书适合作为高等院校操作系统课程的教材或参考书,也可供相关技术人员参考。