前沿
前沿
- BackupPC
- diff -u:内核开发的新进展
- 非 Linux 开源软件
- Linux 用于科学
- Pithos
- Snowy——如果 Ubuntu One 让您感到冷淡
- 他们如是说
- LinuxJournal.com——一个极好的系统管理资源
BackupPC
有些工具非常出色,但不幸的是,如果没人提及它们,很多人就永远不会听说。BackupPC 就是其中之一。您可能在 Linux Journal Insider 播客中听到 Kyle Rankin 和我谈论过 BackupPC,或者您可能之前在Linux Journal 上看到过我们写过关于它的文章。如果您还没有了解过它,您应该去看看。BackupPC 有一些很棒的功能
基于硬盘的备份,无需磁带更换。
支持 NFS、SSH、SMB 和 rsync。
硬链接以节省宝贵的磁盘空间。
可以实时就地恢复单个文件。
强大而简单的 Web 界面。
错误邮件通知。
免费!
BackupPC 是那些更新频率不高的项目之一。它没有花哨的图形界面。它不需要持续维护。它只是工作,而且工作得很好。去看看:backuppc.sourceforge.net。
diff -u:内核开发的新进展
在持续进行的 big-kernel-lock 移除工作中,我们似乎非常非常接近于完全移除 BKL。在 linux-next 树中,它的剩余用户似乎已降至 20 个以下,而且大多数都在旧代码中,这些代码没有当前的维护者来处理它。文件系统代码、网络代码和一些驱动程序是曾经无处不在的大内核锁的全部剩余部分。Arnd Bergmann 发布了所有违规代码的完整列表,并且一大群开发人员已经跟进。
放弃 BKL 真正精彩的部分是,很多人长期以来都感到完全受其阻碍。它无处不在,而且似乎没有任何可行的替代方案。然后,人们做出了一个绝妙的决定,将所有大内核锁的出现都推到内核的外围——换句话说,推到只有一件事情会依赖于任何特定实例的地方。在此决定之前,BKL 深处内核内部,它的任何给定实例都会被整个代码区域所依赖,每个区域都依赖于它的不同方面。通过将其推到外围,突然之间,BKL 的哪些功能对于其各种用户实际上是必要的变得清晰起来。
事实证明,大多数 BKL 用户可以使用更简单的锁定结构来完成任务,尽管少数用户有更复杂的需求。但是,整个时期真的很酷,因为问题从非常棘手变得相当容易处理,到现在,它几乎已经被完全解决了。
如果您进行任何内核开发,您会注意到每个 git 补丁提交中的 LKML-Reference 标签,但是如果您最近没有阅读 www.faqs.org/rfcs/rfc5322.html,那么在这个在线电子邮件客户端时代,它可能对您来说没有完全意义。最近,在 linux-kernel 上有人提出,也许 LKML-Reference 标签应该只是一个 URL,链接到与该 git 提交对应的 linux-kernel 帖子,这些帖子存储在许多 linux-kernel Web 存档中的任何一个中。但是,正如当时一些人指出的那样,URL 会来来去去。Message-ID 标头是永恒的。
在过去,要支持哪个 GCC 版本的问题,很大程度上取决于哪个 GCC 版本惹恼了 Linus Torvalds。那时,问题往往是,“既然 GCC 开发人员已经实现了我们不喜欢的这种奇怪的行为,我们还能用这个非常旧版本的 GCC 编译多久?” 现在,问题更像是,“我们多久才能停止支持在这个非常旧版本的 GCC 下进行内核编译?这个旧版本很古怪,需要我们在内核中维护奇怪的东西。”
最近出现了一个问题,停止支持 3.3 和 3.4 版本的 GCC 是否可以。事实证明,即使 GCC 3.3.3 存在使其无法与最新内核正常工作的问题,某些发行版也会附带一个他们也称为 GCC 3.3.3 的修补版本。因此,任何试图提醒用户注意潜在损坏的尝试只会造成进一步的混乱。与此同时,由于某种原因,GCC 3.4 显然被大多数嵌入式系统开发人员使用。而且,在 ARM 架构上,GCC 3.4 也比更新版本的 GCC 快得多。因此,至少目前看来,这些仍然是支持内核编译的最旧版本的 GCC。如果您愿意,也可以使用更新版本的 GCC。
非 Linux 开源软件
Linux 世界可能存在关于哪种即时通讯客户端是最好的(Pidgin 或 Empathy)争论,但在 OS X 世界中,这场争论从未真正开始。Adium 是一款基于 libpurple 库的 OS X 原生开源应用程序。虽然 OS X 有原生的 Pidgin 客户端,但它远不如 Adium 那样精致和稳定。凭借 Apple 在稳定、优雅程序方面的声誉,开源社区通过对 Apple iChat 程序的这一回应真正超越了它。Adium 在多个层面都胜出,其源代码只需点击一下即可获得。如果您曾经使用 OS X 并想尝试在“另一个”专有操作系统上运行的优质开源软件,请查看 Adium:www.adium.im。
Linux 用于科学
欢迎来到关于使用 Linux 和开源软件进行科学研究的短篇文章新系列。免费(如啤酒免费)提供的工具降低了参与计算科学的成本。当您使用这些工具时所拥有的自由(如言论自由)使您能够在他人的工作基础上进行构建,从而提高所有人的知识水平。
在本系列中,我将介绍一些任何人都可以 дома 进行的小型科学实验,然后考虑一些 Linux 上可用的工具,您可以使用这些工具来分析结果。在一些纯粹的理论领域(如量子化学或广义相对论),我将只关注工具本身以及如何在没有 accompanying 实验的情况下使用它。
第一个实验是经典的——单摆 (en.wikipedia.org/wiki/Pendulum)。当您观察一个简单的单摆时,有两个明显的参数可以更改:摆锤的质量和绳子的长度。在家中执行此操作的一个简单方法是使用带螺母的螺栓。您可以将绳子系在螺栓的头上,并将另一端系在枢轴点上,例如浴帘杆。然后,您只需通过在螺栓上添加螺母来增加重量。这是本文的基本实验设置。
要收集的数据是每次振荡(一个完整的来回运动)所需的时间。因为您想弄清楚哪些参数会影响单摆,所以您需要针对几种不同的质量和长度执行此操作。为了帮助获得一致的时间,我们实际上来计时十次振荡需要多长时间。为了平均计算时间中的任何反应时间问题,让我们进行三次测量并取平均值。您应该得到类似于表 1 的结果。
表 1. 单摆数据
长度(厘米) | 重量(克) | 时间(秒) |
---|---|---|
18.8 | 102.0 | 0.9 |
18.8 | 118.5 | 0.9 |
18.8 | 135.0 | 0.9 |
18.8 | 151.5 | 0.9 |
37.6 | 102.0 | 1.3 |
37.6 | 118.5 | 1.3 |
37.6 | 135.0 | 1.3 |
37.6 | 151.5 | 1.3 |
57.6 | 102.0 | 1.5 |
57.6 | 118.5 | 1.5 |
57.6 | 135.0 | 1.5 |
57.6 | 151.5 | 1.5 |
88.8 | 102.0 | 1.9 |
88.8 | 118.5 | 1.9 |
88.8 | 135.0 | 1.9 |
88.8 | 151.5 | 1.9 |
现在您有了数据,您可以从中学习什么?为了进行一些基本分析,让我们看看 Scilab (www.scilab.org)。这是一个类似于 MATLAB 的应用程序,可用于数据分析和绘图。在 Ubuntu 或其他基于 Debian 的发行版上安装非常简单,只需
sudo apt-get install scilab
启动时,您应该看到类似于图 1 的内容。
通常,您要做的第一件事是绘制数据图表,看看是否有任何相关性突出显示。为此,您需要将数据导入 Scilab。最自然的格式是三个向量(长度、质量和时间),每行对应一次测量。在 Scilab 中,这将如下所示
height = [18.8, 18.8, 18.8, 18.8, 37.6, 37.6, 37.6, 37.6, 57.6, 57.6, 57.6, 57.6, 88.8, 88.8, 88.8, 88.8]; weight = [102.0, 118.5, 135.0, 151.5, 102.0, 118.5, 135.0, 151.5, 102.0, 118.5, 135.0, 151.5, 102.0, 118.5, 135.0, 151.5]; times = [0.9, 0.9, 0.9, 0.9, 1.3, 1.3, 1.3, 1.3, 1.5, 1.5, 1.5, 1.5, 1.9, 1.9, 1.9, 1.9];
您可能希望一次又一次地使用这些数据,进行不同类型的分析。为了以最简单的方式执行此操作,您可以将这些行存储在一个单独的文件中,并在要使用它时将其加载到您的 Scilab 环境中。您只需要调用 exec() 来加载和运行这些变量赋值。对于此示例,使用以下命令加载数据
exec("~/pendulum1.sce");
您可以使用 disp() 函数查看此数据的各个元素。要查看时间向量中的第一个值,您可以使用图 2 中显示的内容。要进行简单的二维绘图,例如高度与时间的绘图,只需执行
plot(height, times);
这看起来不是很直观,所以让我们添加一些文本来解释此图表显示的内容。您可以使用 xtitle 命令为图表设置标签和标题
xtitle("Pendulum Height vs Time", "Height(cm)", Time(s)");
这将生成一个看起来像图 3 的图表。但是,您有三个数据片段,即三个维度。如果您想生成三维图表,请使用
surf(height, weight, times);
这将生成数据的表面图。因为这个实验看起来很清楚,所以您实际上不需要完整的三维图。
所有这些数据可视化都表明重量实际上对时间没有任何影响。因此,让我们关注单摆的长度和时间之间的关系。该图看起来像一条几乎是直线,因此让我们假设它是直线,看看我们能得到什么。直线的公式是 y=a+bx。通常要做的事情是尝试将“最接近”的直线拟合到您拥有的数据。这方面的术语是线性回归。幸运的是,Scilab 有一个名为 regress() 的函数用于此目的。在这种情况下,只需执行
coeffs = regress(height, times); disp(coeffs(1)); disp(coeffs(2));
最终看起来像图 4。由此,您可以看到您刚刚拟合到数据的直线的斜率为 0.0137626 秒/厘米。这有道理吗?让我们看看一些理论来检查这个数字。
根据理论,您应该绘制时间值的平方与单摆长度的关系图。要获得时间值的平方,请使用
timess = times .* times;
这会将时间向量的第一个条目乘以自身,将第二个条目乘以自身(依此类推),直到整个向量。因此,新向量 timess 包含向量 times 中每个条目的平方。如果您现在使用 timess 而不是 times 进行线性回归,您将获得以下结果
a = 0.1081958 b = 0.0390888
根据理论,a 的值应由 ((2 * PI)2 / g) 给出,其中 g 是重力加速度。根据 Scilab,该值为
ans = (2 * 3.14159)^2 / (9.81 * 100); disp(ans);
您需要将 g 的值调整 100 倍才能将其更改为正确的厘米单位,这会得到 0.0402430。精确到小数点后两位,实验结果为 0.04,理论结果也为 0.04。这在图形上看起来像什么?您可以使用以下命令生成两个图表
plot(height, timess); plot(height, 0.1081958 + 0.0390888*height); xtitle("Simple Pendulum", "Length (cm)", "Times Squared (s^2)");
这看起来像图 5。考虑到测量的单摆长度范围仅覆盖 70 厘米,这似乎是一个相当接近的匹配。如果您使用更大范围的单摆长度进行测量,您可能会看到与理论更接近的匹配。但是,作为一个简单的示例实验,以展示 Scilab 函数的小列表,您已经看到简单单摆似乎相当好地遵循了理论。
下个月,我将介绍 Maxima,并看看简单单摆理论背后的数学原理,看看我是否可以推导出在物理学入门课程中教授的常用结果。
如果您希望我介绍计算科学的任何特定领域,请联系我并提供您的想法。
Pithos
我喜欢 Pandora Radio。真的非常喜欢。不幸的是,Web 浏览器是一个笨拙的收听界面。当然,它有效且运行良好。但是,它缺少媒体键支持等功能,如果您不小心关闭了浏览器窗口,BOOM——音乐就没了。
试试 Pithos。Pithos 界面非常简单,功能不多,但它所做的功能都做得非常好——播放 Pandora Radio。如果您的键盘有多媒体键,您也会欣赏 Pithos 的媒体键支持。如果您的电话响起,只需按下键盘上的暂停按钮即可暂停音乐,无论应用程序是否具有焦点。
如果您喜欢 Pandora Radio,请查看 Pithos。它值得下载:kevinmehall.net/p/pithos。
Snowy——如果 Ubuntu One 让您感到冷淡
Canonical 通过 Ubuntu One 开展了一项相当规模的云服务。它可以同步文件、音乐、首选项、联系人以及更多内容。但是,它只是部分免费,而且服务器是完全私有和专有的。保持服务器位完全封闭的理念让开源社区中的许多人感到不满。是的,Canonical 完全有权按照自己的意愿开发 Ubuntu One,但作为用户,我们也有权另寻他处。试试 Snowy。不,它不是 Ubuntu One 的全面替代品,但 Snowy 被设计为 Tomboy Notes 的免费(在两种意义上都是免费的)同步解决方案。
如果您想在线以及从多台计算机访问您的 Tomboy Notes,同时保持它们全部同步,请关注 Snowy。开发人员希望在 Gnome 3.0 发布时推出由 Snowy 驱动的免费在线同步服务。当然,您也可以自己下载 Snowy 并将您的笔记托管在您自己的服务器上,这正是我们第一次听说 Ubuntu One 时所希望的那样。请访问 live.gnome.org/Snowy 查看进度。
他们如是说
永远不要低估一个时间充裕但身无分文的孩子的决心。
—Cory Doctorow,《小兄弟》,2008 年
要获取技术未能改善生活质量的所有方式的列表,请按三。
—Alice Kahn
技术对艺术毫无贡献。
—Penn Jillette,《连线》杂志,1993 年
技术……巧妙地安排世界,使我们不必体验它。
—Max Frisch
想象一下,如果每周四你以通常的方式系鞋带,鞋子就会爆炸。这在我们使用电脑时经常发生,但没人想到抱怨。
—Jef Raskin,在《Doctor Dobb's Journal》中的采访
如果计算机变得过于强大,我们可以将它们组织成一个委员会——那会毁了它们。
—布拉德利的格言
LinuxJournal.com——一个极好的系统管理资源
当您翻阅本月Linux Journal 的页面时,您会发现丰富的资源来帮助您完成各种系统管理任务。当您彻底吸收了所有内容,并且您的脑袋有爆炸的危险时,我想为您提供一个额外的资源,这将帮助您实现完全的系统管理员涅槃——LinuxJournal.com。访问 www.linuxjournal.com/tag/sysadmin,以找到源源不断的技巧和窍门、行业评论和新闻。借助 LinuxJournal.com,您将及时了解行业趋势并发现新工具添加到您的技巧库中。
如果您是 Linux 系统管理员,请在该页面上添加书签并经常访问。也请考虑在那里留下评论。我们很想听取您的反馈,并有机会与您(我们的读者)互动。最重要的是,您可以贡献您自己的技巧、窍门和黑客技巧。如果您有任何内容要分享,请发送电子邮件至 webeditor@linuxjournal.com,您可能会在 LinuxJournal.com 上发表文章。我们期待您的来信!