FreeRTOS(读作"free-arr-toss")是一个嵌入式系统使用的开源实时操作系统。FreeRTOS被设计为“小巧,简单,和易用”,能支持许多不同硬件架构以及交叉编译器。 FreeRTOS自2002年Richard Barry开始开发以来,一直都在积极开发中。至于我,我不是FreeRTOS的开发人员或贡献者,我只不过是一个最终用户和爱好者。因此,这章将着重与FreeRTOS架构之“是什么
原文链接:http://www.aosabook.org/en/vtk.html 作者:Berk Geveci 与 Will Schroeder 可视化工具箱(Visualization Toolkit, VTK)是一种广泛使用的数据处理与可视化软件系统。它应用于科学计算、医学影像分析、计算几何、渲染、图像处理以及信息学等领域。本章,我们展示一个VTK的简要概览,包括一些使之成为一个成功系统的基本
作者:Cay Horstmann 译者:Xiao Jia(贾枭) 2002 年,我写了一本关于面向对象设计与模式的本科教材 [Hor05]。和很多书一样,这本书也源于我对经典课程的沮丧。一般来说,计算机科学专业的学生,会在他们的第一门编程课上,学习如何设计一个独立的类。而此后,直到在高年级的软件工程课中,他们才在面向对象设计方面接受更多的训练。在这门课程中,学生在几个星期内匆忙地学习 UML 和设
云计算提供了一个令人难以置信的计算平台。用户通过点击几下用户可以以每小时不到10美分的价格租用在云中的服务器,节约了使用物理设备的所有相关时间,精力和前期成本。云供应商提供虚拟机(虚拟机),而不是物理计算机来实现低成本运营。云计算的关键是虚拟化软件,被称为虚拟机监视器(虚拟机M),用来模拟一台物理机器。用户们非常安全地使用相互的客户虚拟机,而没有意识到他们通常与许多人共享物理机(“主机”)。 18
作者:Dirkjan Ochtman 译者:谢路云 状态:完成 原文链接:http://www.aosabook.org/en/mercurial.html Mercurial是一个现代分布式版本控制系统(VCS),主要由Python语言编写,以及一小部分C代码,以提高性能。在本章中,我会讨论Mercurial设计上的一些关于算法和数据结构的决策。首先,请允许我简短的回顾一下版本控制系统的历史,介
原文链接:http://www.aosabook.org/en/cmake.html 作者:Bill Hoffman, Kenneth Martin 1999年, 国家医学图书馆(National Libray of Medicine)雇用了一个称为Kitware的小公司,为支持复杂软件的跨平台配置,构建和发布来实现一个更好的解决方案。这个工作是ITK(一个医学开源可视化软件,Insight Se
Asterisk Russell Bryant Asterisk 1是基于GPLv2协议发布的一款开源电话应用平台。简单地说,这是一个服务端程序,用于处理电话的拨出、接入以及自定义流程。 此项目由Mark Spencer于1999年创始。当时Mark有一个自己的公司,叫做Linux支持服务公司,他需要一个电话系统来帮助自己操作业务。但他没有那么多钱去买这样一个系统,因此他决定自己做。随着Aster
第 10 章 gdb 目录 1. 单步执行和跟踪函数调用 2. 断点 3. 观察点 4. 段错误 程序中除了一目了然的Bug之外都需要一定的调试手段来分析到底错在哪。到目前为止我们的调试手段只有一种:根据程序执行时的出错现象假设错误原因,然后在代码中适当的位置插入printf,执行程序并分析打印结果,如果结果和预期的一样,就基本上证明了自己假设的错误原因,就可以动手修正Bug了,如果结果和预期的不
本章将介绍如何编写嵌入式的 Prolog 解释器。第 19 章中已经展示了编写数据库查询语句编译器的方法,这里我们再加入一个新的元素:规则。有了规则,就可以根据已有的知识通过推理得到新知。一组规则定义了表明事实之间相互蕴含关系的一棵树。由于这棵树可能包含无限多的事实,所以我们必须使用非确定性的搜索。 Prolog 是嵌入式语言的一个极好的例子。它融合了三个元素:模式匹配,非确定性,规则。其中,前两
Lisp 中,宏的特性让你能用变换的方式定义操作符。宏定义在本质上,是能生成 Lisp 代码的函数 -- 一个能写程序的程序。这一小小开端引发了巨大的可能性,同时也伴随着难以预料的风险。 第 7-10 章将带你走入宏的世界。本章会解释宏如何工作,介绍编写和调试它们的技术,然后分析一些宏风格中存在的问题。 7.1 宏是如何工作的 由于我们可以调用宏并得到它的返回值,因此宏往往被人们和函数联系在一起。
Linux 诞生和发展 作者:不详 Linux 操作系统是UNIX 操作系统的一种克隆系统。它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet 网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。Linux 操作系统的诞生、发展和成长过程始终依赖着以下五个重要支柱:UNIX 操
作者:不详 1965年时,贝尔实验室(Bell Labs)加入一项由奇异电子(General Electric)和麻省理工学院(MIT)合作的计画;该计画要建立一套多使用者、多任务、多层次(multi-user、multi- processor、multi-level)的MULTICS操作系统。直到1969年,因MULTICS计画的工作进度太慢,该计画就被停了下来。当时,Ken Thompson(
makefile makefile基础 makefile之隐含规则和模式规则 makefile之变量
用户可以通过定义宏来创建属于自己的special form。宏是一个具有与它相关联的转换器程序的标记。当Scheme遇到一个宏表达式,即以macro—作为开头的列表时,它会将宏的转换器应用于宏表达式中的子列表,而且会对最后的转换结果进行求值。 理想情况下,“宏”指代从一种代码文本到另一种代码文本的纯文本变换。这种变换对于缩写那些复杂的但经常出现的文本模式十分有用。 宏通过define-macro来
Lisp 代码是由 Lisp 对象的列表来表示。2.3 节宣称这让 Lisp 可以写出可自己写程序的程序。本章将示范如何跨越表达式与代码的界线。 10.1 求值 (Eval) 如何产生表达式是很直观的:调用 list 即可。我们没有考虑到的是,如何使 Lisp 将列表视为代码。这之间缺少的一环是函数 eval ,它接受一个表达式,将其求值,然后返回它的值: > (eval '(+ 1 2 3))