前沿
前沿
- 管理您的纸质图书馆
- diff -u:内核开发的新变化
- 数值相对论
- 非 Linux FOSS
- 回收之友,再利用
- 使用 Sickbeard 整理您的节目
- 他们说
- LinuxJournal.com 的安全性
管理您的纸质图书馆
如果您是电子书阅读器,您很可能已经在使用出色的 Calibre 软件 (www.calibre-ebook.com)。如果还没有,请参阅 Dan Sawyer 在 2011 年 4 月刊中的文章。然而,像许多狂热的读者一样,我仍然觉得用纸质书制作的书籍有一种令人舒缓的感觉。不幸的是,很容易忘记我拥有的所有书籍。如果您是那种外借书籍的人,情况可能会变得更加复杂。 Alexandria 应运而生。
如果您有一个相当大的个人图书库,您可能会对 Alexandria (alexandria.rubyforge.org) 感兴趣。借助 Alexandria,您不仅可以管理、排序、组织和整合您的藏书,还可以跟踪您外借的书籍。您可以成为一个小型图书馆,而无需借书证!
至少,跟踪您的书籍是件好事。 Alexandria 使添加书籍变得轻而易举,而且大多数时候它甚至会自动为您下载封面艺术。您可以轻松地从一堆纸质书(图 1)变成一个充满完美像素的窗口(图 2)。
diff -u:内核开发的新变化
有时,一个大型内核项目会在标准内核开发过程之外进行大量工作,然后很难将代码合并到主线源代码树中。 Google 的 Linux 端口到 Nexus One 手机的情况已经持续了一段时间。 Nexus One 的开发过程涉及大量“微补丁”,这些补丁可能会使代码处于完全损坏的状态,但最终加起来就形成了它所产生的可工作系统。这与标准内核开发实践背道而驰,在标准内核开发实践中,每个补丁都应使内核代码处于可工作、可测试的状态。
Nexus One 开发过程中导致一些问题的另一个方面是,在某些情况下,无法明确确定给定代码段的真正作者。这仅仅是因为他们构建变更集的方式,但这对于任何试图将代码移植回官方树的人来说都是一个棘手的情况。
最近,Daniel Walker 以“任何人”的身份出现。他出于良好的意图,试图将 Nexus One 代码库整理成一种可以提交给内核人员的形式,其中一些人认为这种合并实际上早就应该进行了。
但是,由于难以确定归属,部分原因是 Daniel 本人可能不了解 git 变更日志中某些归属字段的真正意义,Daniel 采取了一种方法,导致了一些激烈的冲突,然后才得以澄清。由于他自己的补丁是对 Google 代码的重大修改,他只是将自己列为作者,并在变更日志注释中将代码的实际所有权归于 Google。
这引起了问题,因为有些人认为 Daniel 声称拥有他人的作品的作者身份;而另一些人则指出,如果没有变更集中“signed-off-by”字段的正确链条,就无法证明该代码已获得适当的 GPL 许可。其他人(Google 开发人员)认为,虽然 Daniel 不一定声称拥有不属于他的作品,但他们仍然希望在可行的情况下给予署名。
最终,误解似乎已经消除,尽管它很好地说明了一个大型第三方项目在尝试将其代码合并回主内核树之前,让其代码偏离主内核树到一定程度时会发生什么情况。
长期以来,我一直在撰写关于 BKL 及其未来消亡的文章。好吧,未来显然已经到来。 Arnd Bergmann 发布了他最近梦想中的补丁,不仅删除了最后出现的 BKL 用法,还删除了它的实际实现。它消失了。当消息宣布时,欢呼声和呐喊声在内核的会议厅中回荡。 Alan Cox 反思道:“很高兴看到它消失了——在 Linux 1.3 中,这似乎是个好主意。”
Reinhard Tartler 和 VAMOS 团队 发布了 undertaker,这是一个新工具,用于对 Linux 内核进行静态分析(无需编译或运行代码即可自动查找错误)。他们紧紧围绕产生误报进行了调整,称宁愿错过一个错误,也不愿错误地报告一个错误——有点像软件版的“无罪推定”。
数值相对论
本月,我们发现自己处于物理学的前沿,即数值广义相对论。由于我们尚未完善思维对思维的信息传输,因此我们实际上无法详细介绍这一切是如何运作的。如果您有兴趣,可以查看维基百科 (en.wikipedia.org/wiki/ADM_formalism) 或 Living Reviews (relativity.livingreviews.org/Articles/subject.html#NumRel)。在您完成这些操作,并且可能还参加了一些研究生课程之后,您可以继续阅读本文。
广义相对论与量子力学一起,描述了我们所知道的世界的最基本层面。问题在于,爱因斯坦方程只有一组非常小的解。而且,它们都是理想情况下的解。以下是最常见的几种:
史瓦西:静态、球对称。
雷斯纳-诺德斯特朗:静态、球对称、带电。
克尔:旋转、球对称。
克尔-纽曼:旋转、球对称、带电。
为了研究更现实的情况,例如一对相互绕行的黑洞,您需要数值求解爱因斯坦方程。传统上,这要么是由每位研究人员从头开始完成的,要么您可以继承另一位研究人员之前的一些工作。但是,现在有一个每个人都可以使用的项目,即爱因斯坦工具包。该项目最初是 Cactus Code。 Cactus Code 是一个框架,由一个中央核心(称为肉体)和许多插件(称为刺)组成。 Cactus Code 为任意数量领域的科学计算提供了通用框架。爱因斯坦工具包是 Cactus Code 的一个分支,仅包含数值相对论所需的刺。
广义相对论是爱因斯坦提出的引力理论,其中时间被认为只是另一个维度,就像三个空间维度一样。因此,三个空间维度和一个时间维度共同构成了时空。数值相对论(至少在一种更常见的技术中)重新引入了空间和时间之间的分离。基本思想是,您描述一个时间实例的空间,然后用方程描述该空间如何从一个时间移动到另一个时间。这种技术是由阿诺维特、德塞尔和米斯纳提出的,称为 ADM 形式主义。爱因斯坦工具包中的代码使用了这种技术的一种变体。
工具包代码可通过 Subversion 和 Git 获得。为了使最终用户更轻松地进行检出和更新,开发团队提供了一个名为 GetComponents 的脚本。此脚本希望使用 git,因此您需要在系统上安装 git。要获取它,您可以wget从
wget http://svn.cactuscode.org/Utilities/branches/ ↪ET_2010_11/Scripts/GetComponents chmod 777 GetComponents
虽然此脚本有多个选项,但大多数人只想使用它来获取爱因斯坦工具包的最新代码
./GetComponents -a http://svn.einsteintoolkit.org/ ↪manifest/branches/ET_2010_11/einsteintoolkit.th
这将下载您需要在子目录 Cactus 中获得运行系统的所有部件。要更新代码,您只需运行
./GetComponent -a -u ./einsteintoolkit.th
您可以这样做,因为文件 einsteintoolkit.th 实际上是由 GetComponents 脚本下载到当前目录的。
这是非常繁重的数字运算,因此您可能需要确保系统上安装了其他几个软件包。您将需要 C 编译器、C++ 编译器和 FORTRAN 编译器。您可能还需要安装 MPI。文件输入和输出以 ASCII 格式提供,但您可能需要考虑使用 HDF5 来处理更结构化的数据。某些刺可能还需要一些专门的库,例如 LAPACK。这取决于您实际使用的刺。
爱因斯坦工具包的设置方式是,您为特定可执行文件创建和使用配置。这样,您可以从同一个核心源代码中拥有多个配置,这些配置使用不同的刺组合。要创建新配置,只需键入make configname,其中 configname 是您给配置的名称。对于本文的其余部分,让我们玩一个名为 config1 的配置。因此,您将键入make config1,并获得一个名为 config1 的新子目录,其中包含所有必需的文件。不要忘记,这需要在由 GetComponents 脚本创建的 Cactus 目录中完成。完成此初始化后,您可以对此配置执行多个不同的命令。一个示例是make config1-configinfo,它会打印出此特定配置的配置选项(图 1)。
第一步是确保所有内容都配置正确。当您在上面创建新配置时,config 命令已为您运行。如果您决定实际想要包含其他一些选项,则可以使用以下命令重新运行 config 命令make config1-config <options>,其中<options>是您要设置的选项。这些选项的形式为<name>=<value>。一个示例是MPI=MPICH,如果您想编译以支持 MPICH 并行性。现在,您可以只输入以下内容来进行基本配置
make config1-config MPI=MPICH
如果您想重新开始,可以尝试make config1-clean或make config1-realclean。如果您完成了此特定配置,则可以使用以下命令完全删除它make config1-delete.
现在,一切都按照您想要的方式配置好了,您应该继续构建它。这只需使用以下命令即可完成make config1。现在,去喝一杯您最喜欢的饮料,同时让您的机器因编译而崩溃。这是一个相当复杂的软件,因此如果它在第一次尝试时没有干净地编译,请不要太失望。只需仔细检查错误消息,并进行必要的更改即可。最可能的原因是您没有安装所需的库或 make 系统找不到它。继续迭代构建步骤,直到获得完全编译的可执行文件。它应该位于子目录 exe 中。在本例中,您将最终获得一个名为 cactus_config1 的可执行文件。
您可以使用以下命令对此可执行文件运行一些基本测试make config1-testsuite。它会询问您一些关于要测试的内容的问题,但如果您在大多数情况下接受默认值,您应该没问题。当您到达末尾时,您可以要求系统运行所有测试、交互式运行它们或选择要运行的特定测试。请记住,如果您使用 MPICH,则需要 mpd 在相关主机上运行,以便测试套件能够正确运行。这绝不保证代码的正确性。这只是过程的第一步。与任何科学编程一样,您应该确保您获得的结果至少是合理的。
现在您有了可执行文件,您需要一些数据来馈送它。这是问题的另一方面——“初始数据”问题。爱因斯坦工具包使用参数文件来提交所有正在使用的刺所需的参数。开发团队提供了一些入门参数文件(位于 https://svn.einsteintoolkit.org/cactus/EinsteinExamples/branches/ET_2010_06/par),初学者可以下载这些文件以了解可能的内容。要运行您的可执行文件,请按以下方式运行它
cactus_config1 parfile.par
如果您运行的是 MPI 版本,它看起来像这样
mpirun -np X cactus_config1 parfile.par
其中X是要使用的 CPU 数量,而parfile.par是要使用的参数文件。
就目前而言,爱因斯坦工具包为进行数值相对论提供了一套非常强大的工具。但是,这仅仅是开始。真正的力量在于其可扩展性。它在 GPL 下分发,因此您可以自由下载和修改它,只要您愿意分享这些更改。但是,工具包的整个设计都基于您应该能够轻松更改系统的想法。它就像编写和包含一个新的刺一样简单。因为您拥有包含的刺的所有源代码,所以您有一些非常好的示例可以查看和学习。而且,由于刺在理想情况下是彼此独立的,因此您应该能够轻松地插入新的刺。要编译并链接到肉体的刺列表通过文件 configs/config1/ThornList 控制。
如果您决定编写自己的刺,我将在此处介绍一些概念。刺在理想情况下应与任何其他刺完全脱钩。任何通信都应通过肉体进行。这意味着数据应转换为标准格式之一并传递给肉体。刺负责从 IO 到数据管理再到实际的数字运算的所有事情。如果您正在研究一些新的算法或解决方案技术,那么这就是您要去的地方。
最后一步是获得漂亮的图形。您可能希望与他人分享您的结果,而通过图片似乎是最简单的方式。您将需要使用其他工具,例如 gnuplot,来生成绘图,甚至是从您的计算结果中生成电影。存在一些关于如何使用 gnuplot 等工具的教程。
我希望这已经为您提供了足够的知识,以便开始使用一个非常强大的数值相对论工具。而且,与往常一样,如果您有想要看到的主题,请告诉我。在那之前,继续探索。
非 Linux FOSS
如果您热爱 Linux 但发现自己经常被困在 Windows 上,Pendrivelinux.com 的朋友们已经为您准备好了。他们的 USB Linux 安装程序是一些最好的可用安装程序,但您只能使用 Windows 创建它们!无论您是想要用于 Linux ISO 文件的简单通用 USB 安装程序工具,还是想要创建具有多个可引导映像的 USB 驱动器,他们的工具都易于使用。
如果您有 Windows,但想要安装或使用 Linux,您应该尝试一下这些 USB 创建工具。您可能会发现 Windows 是安装 Linux 的最简单方法!
回收之友,再利用
回收是我们所有人都会处理,或者至少应该处理的事情,尤其是在技术方面。旧电脑、显示器、主板及其类似物都充满了有毒化学物质,必须妥善处理。值得庆幸的是,“绿色环保”是一种尚未真正失去热度的趋势。作为技术专家,我们理解需要减少功耗、回收旧技术以及在购买硬件时做出明智的购买决策。而且,我们也不应忘记回收的好伙伴 减少 和 再利用。
借助现代虚拟化技术,我们可以减少需要购买的服务器数量。再加上低功耗 CPU 带来的功耗降低,相对容易减少服务器机房中的浪费。不幸的是,它并不能完全消除问题。这就是再利用发挥作用的地方。在照片中,您将看到我收到的圣诞礼物时钟。它只是来自某种路由器的电路板,上面添加了“时钟内脏”。是的,这很 Geeky,但如果它挂在我的墙上,那么垃圾填埋场中就会少一件电脑废料。
不,像这样再利用旧技术无法解决我们的技术废物问题,但积少成多。此外,像我用旧 30 针 SIMM 内存芯片制成的相框这样的物品是很好的谈话素材。您以非传统方式再利用了哪些技术?发送照片至 shawn@linuxjournal.com,我将把其中一些照片发布在我们的网站上。也许我们都会为下一个节日季获得一些礼物创意!
使用 Sickbeard 整理您的节目
首先,免责声明:Sickbeard 程序是为了从 Usenet 和 torrent 站点盗版电视节目而创建的。我不纵容任何形式的盗版,但 Sickbeard 有一些令人惊叹的 其他 功能,使其值得一提。

Sickbeard 是一个基于服务器的应用程序,在您的文件服务器上运行,它可以管理和排序您的所有电视节目。如果您收集了使用 MythTV 录制的、从 DVD 翻录的、从 TiVo 中提取的或以任何方式获得的电视节目,以 Boxee 或 XBMC 等程序可以理解的方式组织它们可能会让人望而生畏。 Sickbeard 是一款可以自动排序、组织和重命名剧集的程序。它会让您知道是否缺少剧集,并且可以下载元数据和封面艺术。当新剧集添加到您的库中时,它甚至可以在您的 XBMC 家庭影院设备上弹出通知。
再次强调,Sickbeard 的设计初衷是不良的,但即使您不想从 Usenet 盗版电视节目,它也是保持 XBMC 数据库井井有条的好方法。请访问 www.sickbeard.com 查看。
他们说
真正的危险不是计算机开始像人一样思考,而是人开始像计算机一样思考。
—悉尼·J·哈里斯
未来的工厂将只有两名员工,一个人和一条狗。这个人将在那里喂狗。这条狗将在那里阻止人触摸设备。
—沃伦·G·班尼斯
这个国家需要的是一些省力的发明。
—阿诺德·格拉斯
如果继续下去,人会让他所有的肢体萎缩,只剩下按按钮的手指。
—弗兰克·劳埃德·赖特
LinuxJournal.com 的安全性
您知道您可以访问 www.linuxjournal.com/tag/security,在一个地方查看我们所有最新的安全相关文章吗?了解所有与安全相关的事项非常重要,因此我们希望您经常访问我们。
您是否有安全见解要与 LinuxJournal.com 读者分享?我们一直在寻找网站投稿者,因此如果您有内容要与大家分享,请告诉我们。请通过 webmistress@linuxjournal.com 给我们留言。