们的目的是解释所有计算机系统的本质概念,并向你展示这些概念是如何实实在在地影响应用程序的正确性、性能和实用性的。其他的系统类书籍都是从构建者的角度来写的,讲述如何实现硬件或系统软件,包括操作系统、编译器和网络接口。而本书是从程序员的角度来写的,讲述应用程序员如何能够利用系统知识来编写出更好的程序。当然,学习一个计算机系统应该做些什么,是学习如何构建一个计算机系统的很好的出发点,所以,对于希望继续学习系统软硬件实现的人来说,本书也是一本很有价值的介绍性读物。大多数系统书籍还倾向于重点关注系统的某一个方面,比如:硬件架构、操作系统、编译器或者网络。本书则以程序员的视角统一覆盖了.上述所有方面的内容。
大纲 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抓开机速度
在.上个世纪90年代,单片机在我国迅速普及,已很难找到一种没有使用单片机的电子新产品。作者在那时出版了《单片机应用程序设计技术》和《单片机程序设计基础》两部著作,也算为推动我国单片机应用尽了一份力。由于那时的单片机以8位机为主,本身的硬件资源有限,所处理的问题也不是很复杂,故程序设计方法绝大多数还是“基于裸机编程”的,即不使用操作系统。进人21世纪后,一大批所谓“信息电子产品”开始普及,其特点是处理对象包含多媒体信息流.CPU的信息吞吐量极大提高,系统功能复杂,人机界面丰富,具有网络接口等。这类产品的硬件系统集成度非常高,大多采用32位CPU,存储器资源充足,具备了操作系统所需要的运行条件。这类产品的软件系统规模非常大,如果不使用操作系统来管理,则儿乎不可能开发成功.电子工程师熟练掌握"基于嵌人式实时操作系统的程序设计技术”,已经是开发这类信息电子产品的必备条件。 搞电子产品设计的技术人员几乎都是“电子类”专业出身的,其“硬件”功底不容置疑,但所学软件课程有限.大多只学过“C程序设计”“单片机原理与应用”和“汇编语言程序设计”这几门课.基本没有学过“数据结构”、“算法分析”和“操作系统”等软件课程,大多数工程技术人员还是靠一边工作一边自学来提高自己。各种软件书籍和教材大多采用“一本正经”的论述风格.对于软件功底不深的自学者来说.就像是难啃的天书。作者是电子类专业“科班出身”的大学教师.长期从事电子专业教学,并以程序设计类课程为主。为了教学需要,自己也自学了若干相关的软件课程,深深体会其中之艰辛。近年来,我开始为电子专业研究生上“嵌人式实时操作系统”的课程.对如何给电子专业讲授这门课有了一些体会,萌生了用“电子专业人员”看得懂的叙述风格写一本书的想法。经过几个月的构思,利用暑假的教学空闲时间撰写了本书,了却了这个心愿。
20世纪60年代中期,TI(TexasInstruments)公司大量生产了通用IC,如分别面向商用和军用的74系列和54系列。这些通用IC甚至沿用至今,仍是电子工程师们电路板上不可或缺的一部分。20世纪80年代,出现了可编程逻辑器件(PLD),如SPLD和CPLD,它们与ASIC相比,具有可重配置性和较短的开发调试时间,但实现的功能和电路都相对简单。为了弥补这一需要,Xilinx 公司推出了第一块现场可编程逻辑器件(FPGA),并且在其后的几十年间,FPGA得到了巨大的发展。 FPGA和 ASIC的不同主要在于: ①ASIC是定制IC,内部功能已经固化,只能开启或者关闭不同的功能模块;而FPGA是一个地地道道的可编程器件,用户可以根据自己的功能需求进行开发设计。 ②FPGA可重配置的灵活性是ASIC不具有的。因此,ASIC通常适用于大型项目,而对于需要快速投入市场且升级换代较快的小型项目使用FPGA则更有优势. FPGA之所以具有如此大的吸引力,不仅在于其开发周期短、开发软件投入少、 成本也在不断下降,更在于它符合电子产品高密度、低压、低功耗的趋势。
Docker 是一个开源的应用容器引擎,开发者可以利用 Docker 打包自己的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。 本书由 Docker 公司前服务与支持副总裁JamesTurnbull 编写,是权威的 Docker 开发指南。本书专注于Docker1.9及以上版本,指导读者完成 Docker的安装、部署、管理和扩展,带领读者经历从测试到生产的整个开发生命周期,让读者了解 Docker 适用于什么场景。书中先介绍 Docker及其组件的基础知识,然后介绍用Docker构建容器和服务来完成各种任务:利用Docker为新项目建立测试环境,演示如何使用持续集成的工作流集成 Docker,如何构建应用程序服务和平台,如何使用 Docker 的 API,如何扩展 Docker。本书适合对Docker 或容器开发感兴趣的系统管理员、运维人员和开发人员阅读。
MATLAB是一个可视化的计算程序,被广泛地使用于从个人计算机到超级计算机范围内 的各种计算机上。 MATLAB包括命令控制、可编程,有上百个预先定义好的命令和函数。这些函数能通过 用户自定义函数进一步扩展。 M AT L A B有许多强有力的命令。例如, M AT L A B能够用一个单一的命令求解线性系统, 能完成大量的高级矩阵处理。 M AT L A B有强有力的二维、三维图形工具。 MATLAB能与其他程序一起使用。例如, MATLAB的图形功能,可以在一个 F O RT R A N 程序中完成可视化计算。 25个不同的M AT L A B工具箱可应用于特殊的应用领域。 M AT L A B在以下的领域里解决各种问题是一个十分有效的工具: • 工业研究与开发。 • 数学教学,特别是线性代数。所有基本概念都能涉及。 • 在数值分析和科学计算方面的教学与研究。能够详细地研究和比较各种算法。 • 在诸如电子学、控制理论和物理学等工程和科学学科方面的教学与研究。 • 在诸如经济学、化学和生物学等有计算问题的所有其他领域中的教学与研究。 • 在MATLAB中创建的组是矩阵, MATLAB的名字取自矩阵实验室 (MATrix LABoratory)
本站基于Calibre构建,感谢开源界的力量。所有资源搜集于互联网,如有侵权请邮件联系。
Github | Docker | Library | Project
们的目的是解释所有计算机系统的本质概念,并向你展示这些概念是如何实实在在地影响应用程序的正确性、性能和实用性的。其他的系统类书籍都是从构建者的角度来写的,讲述如何实现硬件或系统软件,包括操作系统、编译器和网络接口。而本书是从程序员的角度来写的,讲述应用程序员如何能够利用系统知识来编写出更好的程序。当然,学习一个计算机系统应该做些什么,是学习如何构建一个计算机系统的很好的出发点,所以,对于希望继续学习系统软硬件实现的人来说,本书也是一本很有价值的介绍性读物。大多数系统书籍还倾向于重点关注系统的某一个方面,比如:硬件架构、操作系统、编译器或者网络。本书则以程序员的视角统一覆盖了.上述所有方面的内容。