 |
 |
 |
 |
 |
 |
轻松编写 C++ 单元测试 googletest 与 googlemock 是 Google 公司于 2008 年发布的两套用于单元测试的应用框架,本文将向读者介绍如何应用这两套应用框架轻松编写 C++ 单元测试代码。以下讨论基于 gtest-1.2.1 及 gmock-1.0.0 。 |
|
|
|
2009年5月21日 |
|
| |
分布式编译环境中的负载均衡 本文标题中的“分布式编译”是一种通过在局域网内的多个节点上运行编译进程来提高构建速度的途径。然而在我们的实践当中发现,单纯的向各个节点分发任务而不考虑负载均衡往往会产生性能上的瓶颈。本文主要介绍如何解决这个问题。 |
|
|
|
2009年5月21日 |
|
| |
给明智的系统管理员的 10 条提示 本杰明·富兰克林是科学家、学者、政治家和……系统管理员?没错,早在 UNIX 系统出现之前 200 年,富兰克林已经对保持系统正常工作提出了建议。下面是富兰克林最著名的 10 条提示。 |
|
|
|
2009年5月18日 |
|
| |
使用 Linux 瘦客户机实现云计算 从 Linux 的角度探讨云计算,并发现一些最新颖、最流行的基于 Linux 的解决方案 —— 特别关注一些可以带来环境效益的选择。 |
|
|
|
2009年5月18日 |
|
| |
IBM Lotus Notes 8.5 for Linux 本地化版本结构与安装 IBM 自 Lotus Notes 8.5 开始推出了基于 RPM/DEB 安装包的 Linux 平台多语言本地化版本,这更符合 Linux 平台的特性,并且更易于安装管理,但产品安装包和安装卸载却有了很大变化,本文着重介绍这些变化。 |
|
|
|
2009年5月15日 |
|
| |
使用 Clonezilla 迁移到虚拟 Linux 环境 在本文中,学习如何使用开源的 Clonezilla Live 克隆软件将物理服务器转换成虚拟服务器。具体而言,就是如何使用基于映像的方法将物理服务器迁移到虚拟服务器。 |
|
|
|
2009年5月11日 |
|
| |
在 XML 内生成文档并重用信息,第 1 部分: 利用 XML 发布文档 XML 提供了在结构化数据集中标识数据项与子组件的方法,但是它源起于文档的开发和生成。针对 XML 文档标记有很多健壮的开放标准,而 XML 文档解析及格式转换工具也十分丰富,而且可以免费使用,这就使得在 UNIX 或 Linux 系统上安装并配置一个完整的文档开发及格式化环境变得非常容易。 |
|
|
|
2009年5月11日 |
|
| |
使用 Anacron 处理 Linux 关机问题 Linux 最初使用 Cron 自动执行常规系统维护,比如替换日志文件和更新垃圾邮件过滤规则。这种方法可以很好地服务于全天候运行的服务器和其他系统。但是,如果要在不使用计算机时关闭它以节约资源(常见于台式机和笔记本系统),那么则不能运行 Cron。如果不能定期运行 Cron,将会生成大量的日志文件并引发其他问题。Anacron 实用工具提供了一种解决方案,支持计算机在每次开机后运行常规的维护作业,即使这些开机时间是不固定的。 |
|
|
|
2009年5月11日 |
|
| |
内存详解 Java 堆耗尽并不是造成 java.lang.OutOfMemoryError 的惟一原因。如果本机内存耗尽,则会发生普通调试技巧无法解决的 OutOfMemoryError。本文解释什么是本机内存,Java 运行时如何使用它,它被耗尽时会出现什么情况,以及如何在 Windows 和 Linux 上调试本机 OutOfMemoryError。针对 AIX 系统的相同主题将在另一篇类似的文章中介绍。 |
|
|
|
2009年5月11日 |
|
| |
探索 Pexpect,第 1 部分:剖析 Pexpect Pexpect 是一个用来启动子程序并对其进行自动控制的 Python 模块。 Pexpect 可以用来和像 ssh、ftp、passwd、telnet 等命令行程序进行自动交互。本文章介绍 Pexpect 的主要用法和在实际应用中的注意点。 Python 语言的爱好者,系统管理人员,部署及测试人员都能使用 Pexpect 在自己的工作中实现与命令行交互的自动化。 |
|
|
|
2009年5月7日 |
|
| |
如何在 Linux 平台上安装“刀片地址管理器”并配置刀片虚地址 IBM BladeCenter Open Fabric Manager (BOFM) 是一个 IBM 新兴提出的解决方案, 它旨在让用户便利的配置和备份刀片的媒体存取控制 (MAC) 地址和光纤(FC)WWN 地址。“刀片地址管理器”是 IBM BladeCenter Open Fabric Manager (BOFM) 解决方案的主要功能之一 , 用来分配和管理这些地址。 本文介绍如何在 Linux 平台上安装卸载“刀片地址管理器”,如何搭建它运行所需的网络和软硬件环境,以及如何应用它为刀片配置虚拟地址。如果你有 Linux 的操作系统,并且在工作中需要部署刀片的局域网(LAN)和存储区域网络(SAN),或配置刀片服务器的启动设置的话,本文将使你受益颇多。 |
|
|
|
2009年5月7日 |
|
| |
Python 3 初探,第 2 部分: 高级主题 Python 3 是 Guido van Rossum 功能强大的通用编程语言的最新版本。它虽然打破了与 2.x 版本的向后兼容性,但却清理了某些语法方面的问题。本文是这个由两部分组成的系列文章中的第二篇,内容涵盖了 Python 更多的新特性和更高深的一些主题,比如在抽象基类、元类和修饰符等方面的变化。 |
|
|
|
2009年5月4日 |
|
| |
使用 cacti 批量监控服务器以及其 PHP 运作环境配置 本文主要介绍说明用于支持 Cacti 运作的 PHP+RRDtool 环境的详细配置方法。使其能集中式监控多台,不同平台类型的服务器。以及支持 SNMP 网络设备运作状态。 |
|
|
|
2009年4月30日 |
|
| |
对话 UNIX: 使用 Screen 创建并管理多个 shell 命令行是一种强大的工具,但是它有一个严重的缺点:如果 shell 中断了,您的工作也就停止了。要想让 shell 和您的工作保持活动状态(甚至是跨多个会话和中断的连接),可以使用 GNU Screen 作为控制台的窗口系统。 |
|
|
|
2009年4月29日 |
|
| |
实现 VM 部署自动化 有时,您需要同时创建和配置大量虚拟机,但是手动复制和配置大量虚拟机似乎是一件很麻烦的任务。在本文中,查看如何开发一个自动化的 VM 部署解决方案,以使您可以快速地启动和激活批量的自配置 VM。更让人惊喜的是,您将发现一种方法,可以让您在系统启动后对各个已部署虚拟机独立运行自定义应用程序。 |
|
|
|
2009年4月28日 |
|
| |
为 Informix Dynamic Server MACH 11 配置 Linux 共享磁盘 学习如何为 IBM Informix Dynamic Server (IDS) Version 11.50 配置真正的共享磁盘。本文讲解如何在 Ubuntu Linux 上设置和运行 IDS Shared Disk (SD) 从服务器。对于其他 Linux 发行版,参照这里的说明并稍加调整即可。
|
|
|
|
2009年4月27日 |
|
| |
功能丰富的 Perl: Perl 和 Amazon 云,第 1 部分 在这个 5 部分系列文章的第 1 部分中,Ted Zlatanov 解释了 Amazon 的 Simple Storage Service (S3) 和 SimpleDB 产品在构建 Web 站点方面的优势和不足。这个系列通过实际示例形象地介绍了 S3 和 SimpleDB 架构以及如何使用它们;在本文中,将使用 Perl 库构建一个简单的照片共享网站。 |
|
|
|
2009年4月27日 |
|
| |
Linux 的多线程编程的高效开发经验 本文中我们针对 Linux 上多线程编程的主要特性总结出 5 条经验,用以改善 Linux 多线程编程的习惯和避免其中的开发陷阱。在本文中,我们穿插一些 Windows 的编程用例用以对比 Linux 特性,以加深读者印象。 |
|
|
|
2009年4月23日 |
|
| |
Linux 内核的发展 生命的必然不仅包括死亡和纳税,还包括 GNU/Linux 操作系统的发展,最新的两个内核发布的确没有让人失望。2.6.28 和 2.6.29 版本包含了大量新的功能,比如先进的企业存储协议、两个新的文件系统、WiMAX 宽带网络支持以及存储完整性检查。通过本文了解为何现在就应该升级 Linux 内核。 |
|
|
|
2009年4月20日 |
|
| |
同步 UNIX 文件 有许多工具可以用来跨 UNIX 目录同步文件,但是要想有效且安全地完成这个任务,就需要多做一些工作。本文介绍跨 UNIX 文件系统和不同的计算机系统安全地同步文件的解决方案,包括如何为了执行备份同步文件的加密版本。 |
|
|
|
2009年4月20日 |
|
| |
Linux 技巧: 在系统引导期间查找 rootfs 作为一名 Linux 管理员,您可能会在增加外部存储卷之后或者甚至在安装新 Linux 操作系统之后,尝试重新启动服务器时遇到诸如 “cannot mount rootfs” 和 “kernel panic” 之类的 rootfs 错误。本文将概要介绍 x86 平台上的 Linux 引导进程,显示出现此问题的原因,并提供避免或修正此问题的四个技巧。 |
|
|
|
2009年4月20日 |
|
| |
了解和配置 PAM 插入式验证模块(Pluggable Authentication Module,PAM)API 将公开一组功能,应用程序程序员可以使用这些功能来实现与安全性相关的功能,例如用户验证、数据加密、LDAP 等。在本文中,获得在 Linux 中使用 PAM 模块的基本指南,了解如何配置 PAM,并了解如何通过 10 个简单步骤设计样例 PAM 登录应用程序。 |
|
|
|
2009年4月16日 |
|
| |
应用 openssl 工具进行 SSL 故障分析 当前 SSL 协议有着广泛的运用,在 SSL 服务器的身份认证出现问题时,怎样才能有效快速的找出问题的根源呢?本文结合 openssl 提供的命令行工具 s_client,罗列了多种认证失败的情况,并给出了问题诊断的方法。 |
|
|
|
2009年4月15日 |
|
| |
Ganglia 和 Nagios,第 1 部分: 用 Ganglia 监视企业集群 这是两部分系列文章的第一篇文章,介绍使用开源工具 Ganglia 和 Nagios 监视数据中心的解决方案。在第 1 部分中,查看如何安装和配置 Ganglia,它是基于层次结构设计的高性能集群的可扩展、分布式监视系统。此外,通过编写 Ganglia 插件并启用外部欺骗(spoofing),了解如何添加更多监视功能。 |
|
|
|
2009年4月13日 |
|
| |
对 Web 应用程序进行性能调优 了解 Web 应用程序的各种组件如何交互,以及在哪些地方可能发现性能瓶颈。开发人员和管理员都可以从本文受益,因为获得更好的性能是他们的责任。
|
|
|
|
2009年4月13日 |
|
| |
为 Nokia N810 开发感知 GPS 的应用程序,第 3 部分: 完成最后的任务 这个系列的文章展示如何使用基于 Linux 的 Nokia N810 Internet Tablet 及其内置 GPS 接收器构建感知全球定位系统(GPS)的应用程序。在这个分 3 部分的系列文章的最后一篇,您将完成开发 GPS 行程跟踪器(trip tracker)的最后一步,并准备发布它。 |
|
|
|
2009年4月8日 |
|
| |
Linux 内核中的 GCC 特性 Linux 内核使用 GNU Compiler Collection (GCC) 套件的几个特殊功能。这些功能包括提供快捷方式和简化以及向编译器提供优化提示等等。了解这些特殊的 GCC 特性,学习如何在 Linux 内核中使用它们。 |
|
|
|
2009年4月7日 |
|
| |
利用 squid 反向代理提高网站性能 本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性、安全性方面有很好的用途。作者在具体的实验环境下,利用 DNS 轮询和 Squid 反向代理技术,实现了网站的负载均衡,从而提高了网站的可用性和可靠性。 |
|
|
|
2009年4月2日 |
|
| |
在 System z 上使用 Linux 的 5 个网络/系统技巧 在 IBM System z 机器上启动 Linux 非常简单,但也很容易出现问题。如果在 S/390 系统上启动 Linux 遇到难以解决的问题时,可以尝试考虑以下方面:显示消息 “未知路由”、不良网络服务行为、关机时造成文件系统损坏、冗长的引导-路径-设备过程和虚拟 LAN 硬件安装。额外收获:关于 SUSE bug 的警告(和权宜之计)。 |
|
|
|
2009年4月2日 |
|
| |
在可插入脚本的应用程序中嵌入 Lua Lua 编程语言是一种小型的脚本语言,用于嵌入到其他程序中。通过使用 Lua 的 C API,可以编写用于从 C 调用 Lua 以及从 Lua 调用 C 的非常干净、简单的代码。对希望使用便捷的运行时脚本语言的开发人员而言,这使他们可以轻松地实现脚本语言所需的基本 API 元素,然后在自己的应用程序中使用 Lua 代码。本文介绍 Lua 语言如何成为一种简化常见开发任务的可行工具,并重点讨论嵌入脚本语言的一些原因。 |
|
|
|
2009年3月30日 |
|
| |
定制嵌入式系统中 Apache 的日志回滚工具 Apache 是目前世界上使用最广泛的 web 服务器。随着 Apache 的广泛使用,访问次数越多,日志就越多,如何有效的管理日志将是一个很重要的问题,因此选择一个好的日志管理程序是很有必要的。 |
|
|
|
2009年3月26日 |
|
| |
探索 Linux 通用 SCSI 驱动器 通过 SCSI 命令管理计算机上的数据,并将数据传输到 SCSI 设备。在本文中,作者介绍了一些 SCSI 命令,以及在 Linux 中使用 SCSI API 时执行 SCSI 命令的方法。他介绍了 SCSI 客户机/服务器模型和存储 SCSI 命令的背景。接下来解释 Linux 通用 SCSI 驱动器 API,并提供一个示例,讨论使用通用驱动器执行 inquiry 命令的系统。 |
|
|
|
2009年3月23日 |
|
| |
用 Guile 编写脚本 Scheme 是一种编程语言,而 Guile(Scheme 解释器和库)将它转换成嵌入式脚本语言,从而很好地将动态性引入到静态应用程序中。现在我们将快速概览 Guile,了解它在构建可扩展应用程序方面的强大特性。 |
|
|
|
2009年3月23日 |
|
| |
利用 AWK 的数值计算功能提升工作效率 Awk 是一种优秀的文本样式扫描和处理工具。本文侧重介绍了 awk 在数值计算方面的运用,并通过几个实际工作中的例子,阐述了如何利用 awk 的计算功能来提高我们的工作效率。 |
|
|
|
2009年3月19日 |
|
| |
在 UNIX 和 Linux 系统上安装和配置 WebSphere Application Server
学习如何在现代企业环境中使用应用服务器以及如何在 UNIX 和 Linux 系统上安装 IBM WebSphere Application Server,从而提供健壮的具有良好支持的企业 Web 环境的基础。本教程还解释如何在 UNIX 和 Linux 服务器的启动和关闭过程中集成 WebSphere Application Server,并提供许多其他参考资料的链接,帮助您快速地设置和运行 WebSphere Application Server。
|
|
|
|
2009年3月16日 |
|
| |
剖析 ext4 第 4 个扩展文件系统,即 ext4,是下一代的日志文件系统,它与上一代文件系统 ext3 是向后兼容的。尽管 ext4 目前还不是标准文件系统,但它将成为大部分下一代 Linux 发行版的默认文件系统。了解 ext4,以及它为什么将成为您最喜欢的新文件系统。 |
|
|
|
2009年3月16日 |
|
| |
使用通用 NFS 装载工具进行统一装载 为了在同时出现多个 NFS 版本导出时有效地实现统一装载,您必须具备一个 NFS 装载工具。了解通用 NFS 装载工具如何帮助减少多个 NFS 版本的处理,并简化这些版本的管理。本文描述通用 NFS 装载的概念,并且概括地介绍这个系统的优势及其应用。此外,本文还给出一些总体设计细节。 |
|
|
|
2009年3月16日 |
|
| |
在 IBM 集成虚拟化管理器上进行 Linux 分区的 DLPAR 操作,第 4 部分 动态逻辑分区(DLPAR)是 IBM System p 服务器上的一种虚拟化特性,该特性允许用户在分区运行的时候动态调整分区的资源分配,使得系统资源得到更为有效的利用,并且不影响应用或者服务的正常运行。集成虚拟化管理器(IVM)是一种与HMC类似的用于管理 System p 服务器的平台,也同样支持 DLPAR,不过与 HMC 上的 DLPAR 存在不少差异。本系列文章介绍 IVM 上 Linux 逻辑分区的 DLPAR,分成四个部分。本文是第四部分,介绍了虚拟磁盘和光学设备的动态调整。 |
|
|
|
2009年3月16日 |
|
| |
安全 Linux 容器实现指南 轻量级容器又称作 Virtual Private Servers (VPS) 或 Jails,它们是经常用于限制不可信应用程序或用户的工具。但是最近构造的轻量级容器没有提供充分的安全保证。使用 SELinux 或 Smack 策略增强这些容器之后,就可以在 Linux 中实现更加安全的容器。本文介绍如何创建受 Linux 安全模块保护的更加安全的容器。SELinux 和 Smack 策略的开发都在进行当中,并且在各自社区的帮助下不断得到改善。 |
|
|
|
2009年3月9日 |
|
| |
Linux 上的云计算 云计算和存储通过 Internet 将物理资源(比如处理器和存储空间)转换成可伸缩的共享资源(将云计算和存储作为 “服务”)。尽管虚拟化不是一个新概念,但是通过服务器虚拟化共享物理系统使得云计算和存储更加高效、伸缩性更强。通过云计算,用户可以访问大量的计算和存储资源,并且不必关心它们的位置和它们是如何配置的。正如您所料,Linux 在这个过程中扮演了重要的角色。探索云计算,了解其中的奥秘。[通过最新参考资料链接从 developerWorks 上获得关于云计算的最新内容。] |
|
|
|
2009年3月9日 |
|
| |
对话 UNIX: 在 Windows 上使用 Cygwin Cygwin 是一个用于 Microsoft Windows 操作系统的类 UNIX 环境。它包含一个真正的 UNIX shell、一个 Portable Operating System Interface (POSIX) 模拟库以及数千个 UNIX 实用程序。
|
|
|
|
2009年3月9日 |
|
| |
在 IBM 集成虚拟化管理器上进行 Linux 分区的 DLPAR 操作,第 3 部分 动态逻辑分区(DLPAR)是 IBM System p 服务器上的一种虚拟化特性,该特性允许用户在分区运行的时候动态调整分区的资源分配,使得系统资源得到更为有效的利用,并且不影响应用或者服务的正常运行。集成虚拟化管理器(IVM)是一种与 HMC 类似的用于管理 System p 服务器的平台,也同样支持 DLPAR,不过与 HMC 上的 DLPAR 存在不少差异。本系列文章介绍 IVM 上 Linux 逻辑分区的 DLPAR,分成四个部分。本文是第三部分,介绍了 IVM 对物理适配器的支持和适配器(包括虚拟适配器和物理适配器)的 DLPAR 操作,并对比了 IVM 和 HMC 上的 DLPAR。 |
|
|
|
2009年3月5日 |
|
| |
LXC:Linux 容器工具 容器可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。本文循序渐进地介绍容器工具 Linux Containers(LXC)。作者在文中演示如何设置和使用它们。 |
|
|
|
2009年3月2日 |
|
| |
系统管理员的 Ruby 除了用作强大的 Web 应用程序开发平台外,通过与 Rails 框架相结合,Ruby 还可以展现其较少被提及的另一面,那就是作为一种强大的脚本语言,就像 Python 或 Perl 那样。它拥有非常强大的功能,由于可以使用很多内建的和外部的库,因此可利用它的威力来解决通常系统管理工作环境中出现的很多脚本编写需求。而且,用 Ruby 编程也很有趣! |
|
|
|
2009年2月26日 |
|
| |
LoP/Cell/B.E.:缓冲区溢出漏洞,第 2 部分: 了解缓冲区溢出机制在基于 Linux on Power 的系统上如何进行 了解运行在基于 Power/Cell Broadband Engine Architecture 处理器的服务器中的 Linux 缓冲区溢出漏洞。当进程尝试将数据储存到固定长度的缓冲区的范围之外时,将出现缓冲区溢出。当出现这种情况时,可能会导致出现各种异常的系统行为,并且某些行为可能会对系统安全性造成威胁。本系列文章的第 2 部分将介绍如何在 32 位和 64 位模式中重写函数指针并通过 shell、网络和套接字代码样例阐述汇编组件(第 1 部分简要介绍了缓冲区溢出及 Power 和 Cell/B.E. 架构,然后说明如何更改目标系统中的进程执行流程以及如何在 32 位和 64 位模式中重写局部变量)。 |
|
|
|
2009年2月26日 |
|
| |
实现复合应用程序的高可用性 本文描述使用 Linux-HA 为复合应用程序实现高可用性。向复合应用程序交付高可用性具有很大的挑战性。由于复合应用程序由一些不同类型的应用程序组成,每个应用程序都具有不同的可用性需求,所以配置相当复杂。在本文中,作者描述如何为复合应用程序 Tivoli Maximo 设计和实现一种高可用性原型。其中的配置脚本展示了如何使用系统化和优先化的故障转移计划,向由相关应用程序组成的异构集群提供高可用性。 |
|
|
|
2009年2月23日 |
|
| |
在 IBM 集成虚拟化管理器上进行 Linux 分区的 DLPAR 操作,第 2 部分 动态逻辑分区(DLPAR)是 IBM System p 服务器上的一种虚拟化特性,该特性允许用户在分区运行的时候动态调整分区的资源分配,使得系统资源得到更为有效的利用,并且不影响应用或者服务的正常运行。集成虚拟化管理器(IVM)是一种与 HMC 类似的用于管理 System p 服务器的平台,也同样支持 DLPAR,不过与 HMC 上的 DLPAR 存在不少差异。本系列文章介绍 IVM 上 Linux 逻辑分区的 DLPAR,分成四个部分。本文是第二部分,介绍了处理器和内存的 DLPAR 操作。 |
|
|
|
2009年2月18日 |
|
| |
为 Nokia N810 开发感知 GPS 的应用程序,第 2 部分: 考虑选择 了解代码设计、库选择、单元测试和用户界面选择这些对您最有意义的内容。 |
|
|
|
2009年2月17日 |
|
| |
结合使用 Shell 和 STAX 实现 UAT 测试的自动化 文章分析了 UAT 的特性以及在 UAT 中实现测试自动化的重要性,进而提出了一个结合应用 Shell 脚本和 STAX 语言实现的从自动化下载 Build, 安装, 执行测试用例, 生成测试报告的自动化解决方案, 对其中每一个部分进行了具体的分析和实现。 |
|
|
|
2009年2月13日 |
|
| |
在 IBM 集成虚拟化管理器上进行 Linux 分区的 DLPAR 操作,第 1 部分 动态逻辑分区(DLPAR)是 IBM System p 服务器上的一种虚拟化特性,该特性允许用户在分区运行的时候动态调整分区的资源分配,使得系统资源得到更为有效的利用,并且不影响应用或者服务的正常运行。集成虚拟化管理器(IVM)是一种与 HMC 类似的用于管理 System p 服务器的平台,也同样支持 DLPAR,不过与 HMC 上的 DLPAR 存在不少差异。本系列文章介绍 IVM 上 Linux 逻辑分区的 DLPAR,分成四个部分。本文是第一部分,介绍了 IVM 和 Linux 对 DLPAR 的支持情况、Linux 分区上 DLPAR 环境的准备过程、以及 IVM 上 Linux 分区 DLPAR 的基本过程等背景知识。 |
|
|
|
2009年2月13日 |
|
| |
LoP/Cell/B.E.:缓冲区溢出漏洞,第 1 部分: 理解基于 Linux on Power 的系统缓冲区溢出问题 了解运行在基于 Power/Cell Broadband Engine Architecture 处理器的服务器中的 Linux 缓冲区溢出漏洞。当进程尝试将数据储存到固定长度的缓冲区的范围之外时,将出现缓冲区溢出。当出现这种情况时,可能会导致出现各种异常的系统行为,并且某些行为可能会对系统安全性造成威胁。本系列文章的第 1 部分将简要介绍缓冲区溢出及 Power 和 Cell/B.E. 架构,然后说明如何更改目标系统中的进程执行流程以及如何在 32 位和 64 位模式中重写局部变量(第 2 部分将介绍如何在 32 位和 64 位模式中重写函数指针并阐述如何通过 shell、网络和套接字代码样例组装组件)。 |
|
|
|
2009年2月9日 |
|
| |
在 linux 下使用 CMake 构建应用程序 本文介绍了一个跨平台的自动化构建系统 CMake 在 linux 上的使用方法。 CMake 是一个比 automake 更加容易使用的工具,能够使程序员从复杂的编译连接过程中解脱出来。文中通过一些例子介绍使用 CMake 处理多源文件目录的方法、查找并使用其他开发包的方法以及生成 debug 版和 release 版程序的方法。 |
|
|
|
2009年2月5日 |
|
| |
比较 IBM System p 上的 SLES (SUSE) 和 RHEL (Red Hat) 大多数计划在 IBM System p 上安装 Linux 的系统管理员最终都会遇到一个重要的问题:应该安装哪个 Linux 发行版?本文比较 Red Hat 和 Novell 提供的两个发行版,对比它们的优缺点。我们将讨论 Linux on POWER (LoP)、这两个发行版的历史、IBM 与它们的关系以及在决策过程中应该考虑的因素。我们还要对比在 SuSE Linux Enterprise Server (SLES) 和 Red Hat Enterprise Linux (RHEL) 上创建逻辑卷的过程。 |
|
|
|
2009年2月4日 |
|
| |
Python 3 初探,第 1 部分: Python 3 的新特性 Python 3 是 Guido van Rossum 功能强大的通用编程语言的最新版本。它虽然打破了与
2.x 版本的向后兼容性,但却清理了某些语法方面的问题。本文是系列文章中的第一篇,介绍了影响该语言及向后兼容性的各种变化,并且还提供了新特性的几个例子。 |
|
|
|
2009年2月2日 |
|
| |
Python 3 初探,第 1 部分: Python 3 的新特性 Python 3 是 Guido van Rossum 功能强大的通用编程语言的最新版本。它虽然打破了与
2.x 版本的向后兼容性,但却清理了某些语法方面的问题。本文是系列文章中的第一篇,介绍了影响该语言及向后兼容性的各种变化,并且还提供了新特性的几个例子。 |
|
|
|
2009年2月2日 |
|
| |
在 Linux 平台及 IPv4 环境中构建 IPv6 测试环境 随着互联网技术的不断发展,传统的 IPv4 地址已不能满足用户的需要。
新一代的 IPv6 协议也日益被广泛的接受和使用,越来越多的软件系统都要求支持 IPv6 网络协议。然而现有网络环境对 IPv6 的支持仍然非常有限,这给软件的开发和测试都带来了一定的困难。本文将介绍如何使用 Apache 在现有的 IPv4 网络中构建模拟的 IPv6 环境。 |
|
|
|
2009年1月31日 |
|
| |
Linux 进程管理剖析 Linux 的用户空间进程的创建和管理所涉及的原理与 Unix 有很多共同点,但也有一些特定于 Linux 的独特之处。在本文中,了解 Linux 进程的生命周期,探索用户进程创建、内存管理、调度和销毁的内核内幕。 |
|
|
|
2009年1月20日 |
|
| |
Open Ethernet IP core 介绍及其 ucLinux 驱动 Open Ethernet IP core 是一种支持 10M/100Mbps 以太网的开发源代码 MAC IP core,实现IEEE 802.3 MAC 层功能,对上下接口分别采用 Wishbone 总线和 MII 接口,由于其免费公开,可移植性和可定制性,在 FPGA SOC(System On Chip) 系统及嵌入式系统中被广泛采用,而在 ucLinux 操作系统中也有相应完善的设备驱动支持。在设计中采用 Open Ethernet IP core,可大大降低开发成本和缩短产品上市时间。 |
|
|
|
2009年1月15日 |
|
| |
安装和配置企业级 Web 服务器 学习如何在现代企业环境中使用 Web 服务器以及如何安装和集成 IBM HTTP Server。本教程解释为什么 IBM HTTP Server(IBM WebSphere Application Server 的关键组件)也适合作为单独的 Web 服务器,这是因为它具有标准的配置和无缝的升级路径,非常适合不断发展的企业 Web 环境。
|
|
|
|
2009年1月12日 |
|
| |
增强 Linux 服务器 无论用于测试还是用于生产,服务器都是攻击者的主要目标。通过采取适当的措施,您可以将易受攻击的 “盒子” 转换为增强的服务器并挫败攻击者。在本文中,您了解如何保护 SSH 会话,配置防火墙规则以及设置入侵检测来提醒您所有可能的 GNU/Linux 服务器攻击。深刻理解保护服务器的基本知识之后,您就可以以此为基础进一步增强系统。 |
|
|
|
2009年1月12日 |
|
| |
使用 /sys 文件系统访问 Linux 内核 sysfs 是 Linux 内核中设计较新的一种基于内存的文件系统,它的主要作用是用来表示 Linux 统一设备模型;本文对 sysfs 的目录结构概观、其与 Linux 统一设备模型的关系、常见属性的用法作一定介绍,并且就内核编程方面,以具体的例子来展示如何添加 sysfs 支持。 |
|
|
|
2009年1月8日 |
|
| |
Blade 和外部存储:设置一个容错环境 要想用 IBM blade 构建高可用的 Linux 服务器环境,首先需要在 blade 和任何外部存储之间设置一个容错的环境。这可以提供冗余并启用多路径。在本文中,学习如何集成一个基于 x86 的 IBM BladeCenter 服务器和外部 IBM BladeCenter Boot Disk System (DS3200) SAS 存储,这是在 Linux 上实现可靠的 blade 服务器环境的重要的前提条件。还讨论一些 Linux Volume Manager 的 “hot-add” 特性,帮助满足不断增加的存储系统需求。 |
|
|
|
2009年1月5日 |
|
| |
为 Nokia N810 开发感知 GPS 的应用程序,第 1 部分: 开发环境 学习如何配置针对 Nokia N810 Internet Tablet 的开发环境,包括在目标开发机器上针对 Python 语言设置 Eclipse。 |
|
|
|
2008年12月29日 |
|
| |
IBM Linux for Power 安装工具包服务器整合技术原理及其实现 IBM SCT(IBM Sever Consolidation Tool) 是 IBM Linux for Power 安装工具包提供的服务器整合工具。通过 IBMSCT,Linux 系统管理员仅需经过几下简单的鼠标点击操作和键盘输入操作,就可以方便、快捷地将 X86 服务器上的 LAMP 软件(Linux + Apache + MySQL + PHP/Python/Perl)及其数据迁移到 System P 服务器上,同时也可将 X86 服务器上的用户、用户组、配置文件以及相应的用户数据迁移到 System P 服务器上。尽管 IBM SCT 是服务器整合工具市场中的新成员,它以操作简单,功能强大得到了广大用户的青睐。 |
|
|
|
2008年12月24日 |
|
| |
使用 Linux 和 Hadoop 进行分布式计算 人们每天都依赖搜索引擎以从 Internet 的海量数据中找到特定的内容,但您曾经想过这些搜索是如何执行的吗?一种方法是 Apache 的 Hadoop,它是一个能够对海量数据进行分布式处理的软件框架。Hadoop 的一个应用是并行索引 Internet Web 页面。Hadoop 是一个受到 Yahoo!、Google 和 IBM 等公司支持的 Apache 项目。
本文将介绍 Hadoop 框架,并展示它为什么是最重要的基于 Linux 的分布式计算框架之一。 |
|
|
|
2008年12月22日 |
|
| |
嵌入式系统中进程间通信的监视方法 本文详细描述了一种利用 ptrace 系统调用,实现嵌入式系统内部进程通信的监视方法,并提供了相应的实现方案。
|
|
|
|
2008年12月18日 |
|
| |
增强 Linux 桌面安全性 虽然 GNU/Linux 被誉为比 Microsoft Windows 安全得多的操作系统,但是仍然需要保证 Linux 桌面的安全。本教程指导您完成安装反病毒软件、创建备份恢复计划以及使用防火墙的步骤。完成本教程后,您将获得使 Linux 桌面免受大部分攻击的知识和工具,防止计算机的非法访问。 |
|
|
|
2008年12月15日 |
|
| |
Linux 的源码安装工具 CheckInstall Checkinstall 是一个能从 tar.gz 类的源代码自动生成 RPM/Debian 或Slackware 安装包的程序。通过 CheckInstall,你就能用几乎所有的 tar.gz 类的源代码来生成“干净”的安装或者卸载包。 |
|
|
|
2008年12月11日 |
|
| |
使用 cron 进行自动维护 要想实现连续不停的计算,任务必须能够在任何时候运行。您可以在晚上定时醒来,在几十台机器上登录并输入各种命令;也可以放心地休息,而把工作交给 cron。cron 是一个守护进程,也就是不间断运行的进程,它根据调度计划执行命令。无论白天还是黑夜,无论工作多么繁重,cron 都会毫无怨言地注意时间并按时运行作业。学习如何配置和维护 cron,了解它的众多用途。
|
|
|
|
2008年12月10日 |
|
| |
DB2 和开放源代码,第 2 部分: 在 Linux 上使用 Google Maps API Version 2、DB2/Informix、PHP 和 JMeter 创建地图 Google 新的 Maps API Version 2 支持创建更高级的 mashup 应用程序。在本文中,将以本系列第 1 部分中讲解的基本 mashup 开发为基础,学习更高级的开发方法,并了解如何使用 DB2 REC2XML 函数减少 PHP 脚本中的代码行。学习如何用 DB2 或 Informix Dynamic Server 实现这个解决方案。
|
|
|
|
2008年12月10日 |
|
| |
自动化 Linux 云安装 简化操作系统安装过程能够减少管理云计算环境所需的时间。本文讲解如何在新的 IBM Power System 或 System p LPAR 上自动安装 SUSE Linux。这种安装方法也适用于安装 Red Hat Linux 或 AIX。 |
|
|
|
2008年12月8日 |
|
| |
SLES 10 新的系统启动参数 从 SLES 9 到 SLES 10,增加了很多新的系统参数,改变了系统的一些行为。本文将介绍参数 RUN_PARALLEL 的功能,它对于目录 /etc/init.d/ 下启动脚本的影响,以及如何消除这种影响。 |
|
|
|
2008年12月4日 |
|
| |
使用 Parallel NFS 增强文件系统 网络文件系统(Network File System,NFS)是大多数局域网(LAN)的重要组成部分。但 NFS 不适用于高性能计算中苛刻的输入输出密集型应用程序,至少以前是这样。NFS 标准的最新修改纳入了 Parallel NFS(pNFS),它是文件共享的并行实现,将传输速率提高了几个数量级。本文提供入门级介绍。 |
|
|
|
2008年12月1日 |
|
| |
对话 UNIX: !$#@*% 学习如何在 UNIX 中使用管道、重定向、操作符等特性。 |
|
|
|
2008年12月1日 |
|
| |
应用 Valgrind 发现 Linux 程序的内存问题 如何定位应用程序开发中的内存问题,一直是 inux 应用程序开发中的瓶颈所在。有一款非常优秀的 linux 下开源的内存问题检测工具:valgrind,能够极大的帮助你解决上述问题。掌握 valgrind 的使用以及工作原理,能够有效地定位进而避免应用开发中的内存问题。 |
|
|
|
2008年11月27日 |
|
| |
认识 GCC 4 这几年,GNU Compiler Collection(GCC)经历了从 GCC 3 到 GCC 4 的巨大转变。GCC 4 引入了一个新的优化框架(以及新的中间代码表示法)、新的目标和语言支持以及多种新的属性和选项。认识 GCC 4 的主要新特性及其优点。 |
|
|
|
2008年11月24日 |
|
| |
Linux 软路由性能测试及分析 本文介绍了 Linux 软路由的工作原理,并使用普通 PC 计算机作为硬件设备,在实际网络环境中测试和讨论了 Linux 软路由的性能。实验证明,在百兆以太网络环境中, Linux 软路由的数据报转发速度取决于网络卡的实际速度,并随着软路由系统的应用层服务的增加而降低。该结果为 Linux 软路由的应用和普及提供依据。 |
|
|
|
2008年11月20日 |
|
| |
为什么要在 Emacs 里面使用 Shell? Shell 是 Unix 系统管理员生活的一部分。早期的 Shell 直接运行在各种各样的 Terminal 里面,随着时间的推移,我们有了 X Window。大量的 Shell 开始运行 Xterm 里面。对于笔者来说呢,更加喜欢让 Shell 运行在 Emacs 里面。将 Shell 运行在 Emacs 里面与运行在 Xterm 里面到底有什么不同呢?相信我,将 Shell 从 Xterm 里面搬出来绝对不是一个赚取眼球,标新立异的决定。这篇文章介绍了将 Shell 从 Xterm 里面搬到 Emacs 里面带来的各种改变。这篇文章适合 Emacs 的初级与中级用户,需要读者具有一定的 Shell 使用经验。最好具有较长时间的 Shell 使用经历,以更加充分的体会到 Emacs 带来的变化。
文章中的内容谨代表作者的个人观点。不代表 IBM 的任何官方观点。所附代码仅在运行于 Cygwin 环境下的 GNU Emacs 当中测试通过。
|
|
|
|
2008年11月20日 |
|
| |
利用多核多线程进行程序优化 大家也许还记得 2005 年 3 月 C++ 大师 Herb Sutter 在 Dr.Dobb’s Journal 上发表了一篇名为《免费的午餐已经结束》的文章。文章指出:现在的程序员对效率、伸缩性、吞吐量等一系列性能指标相当忽视,很多性能问题都仰仗越来越快的 CPU 来解决。但 CPU 的速度在不久的将来,即将偏离摩尔定律的轨迹,并达到一定的极限。所以,越来越多的应用程序将不得不直面性能问题,而解决这些问题的办法就是采用并发编程技术。 |
|
|
|
2008年11月17日 |
|
| |
用 Python 编写插件 学习如何通过编写插件扩展 Python 命令行工具。
|
|
|
|
2008年11月13日 |
|
| |
从 Linux 命令行更新 Twitter 和 FriendFeed 学习如何使用 GNU Wget 和 cURL 将状态更新发送到 Twitter 和 FriendFeed,而不必使用 Twitter 桌面应用程序。此外,还学习如何从 Linux 命令行跟踪来自 Twitter 和 FriendFeed 的 feed。 |
|
|
|
2008年11月13日 |
|
| |
“懒惰”Linux:“懒惰”集群管理员的 11 个秘诀 “集群” 对于不同的人有不同的含义。在本文的上下文中,集群最好定义为 “横向扩展(scale-out)” —— 横向扩展集群一般包含大量相同类型的组件,比如 Web 场、表示场和高性能计算 (HPC) 系统。管理员会告诉您,对于横向扩展集群,必须百千次地重复修改,无论修改是多么小;最懒惰的管理员精通横向扩展管理技术,因此无论节点的数量有多少,需要的工作量都是相同的。在本文中,作者将泄露世界上最懒惰的 Linux 管理员的秘诀。 |
|
|
|
2008年11月10日 |
|
| |
使用 awstats 分析 Nginx 的访问日志 本文主要介绍如何通过 awstats 来分析 nginx 的访问日志,并通过 Nginx 输出分析结果到浏览器。 |
|
|
|
2008年11月3日 |
|
| |
tcsh shell 变量 tcsh 是最流行的 UNIX shell 之一。学习如何用 tcsh shell 变量简化自己的工作以及如何利用 tcsh 的高级安全特性。 |
|
|
|
2008年11月3日 |
|
| |
高性能自旋锁 MCS Spinlock 的设计与实现 自旋锁(Spinlock)是一种在 Linux 内核中广泛运用的底层同步机制。排队自旋锁(FIFO Ticket Spinlock)是 Linux 内核 2.6.25 版本中引入的一种新型自旋锁,它解决了传统自旋锁由于无序竞争导致的“公平性”问题。但是由于排队自旋锁在一个共享变量上“自旋”,因此在锁竞争激烈的多核或 NUMA 系统上导致性能低下。MCS Spinlock 是一种基于链表的高性能、可扩展的自旋锁,本文详细剖析它的原理与具体实现。 |
|
|
|
2008年10月30日 |
|
| |
对话 UNIX: 新改进的 Vim 编辑器 如果您曾和 IBM AIX(UNIX 的一个版本)或 Linux 打过交道,使用的很可能是 vi 编辑器。自 1976 年提出 vi 的概念开始,它已经成为编辑文件的主要工具。您可能会问:“有比 vi 功能更强大的编辑工具吗?”当然有,那就是 Vim,本文将详细介绍 Vim 增强功能,这些增强功能使 Vim 成为 UNIX 和 Linux 领域中广泛使用的编辑器。 |
|
|
|
2008年10月30日 |
|
| |
使用 Xen 虚拟服务器交付高可用性 详细了解如何通过 IBM System Director Virtual Availability Manager 实现 Xen 虚拟服务器的高可用性。Virtual Availability Manager 包含在 IBM System Director Virtualization Manager 包中,它是 IBM Director 的扩展。本文将向您介绍各个步骤,包括先决条件、设置和故障诊断等,使您开始实现快速交付虚拟高可用性功能。 |
|
|
|
2008年10月27日 |
|
| |
CMPI 中的内存管理及在 Open Pegasus 中的实现 本文首先简单介绍了 CMPI(Common Manageability Programming Interface) 规范与 Open Pegasus, 说明了 CMPI 规范中对多线程及内存管理方面的要求,然后以 Open Pegasus 中的实现为例,分析了为实现上述要求所需要的关键数据结构,最后全文进行了总结。 |
|
|
|
2008年10月23日 |
|
| |
使用 SQLAlchemy SQLAlchemy 是下一代的 Python Object Relational 映射器。通过本文您将了解如何使用新的 0.5 API、与第三方组件协作,并构建一个基本的 Web 应用程序。
|
|
|
|
2008年10月23日 |
|
| |
TASK_KILLABLE:Linux 中的新进程状态 Linux kernel 2.6.25 引入了一种新的进程状态,名为 TASK_KILLABLE,用于将进程置为睡眠状态,它可以替代有效但可能无法终止的 TASK_UNINTERRUPTIBLE 进程状态,以及易于唤醒但更加安全的 TASK_INTERRUPTIBLE 进程状态。2002 年,OpenAFS 文件系统驱动程序在阻塞所有信号之后等待事件中断时遇到了问题,而 TASK_KILLABLE 就是因此而被推出的。这种新的睡眠状态允许 TASK_UNINTERRUPTIBLE 响应致命信号。在本文中,作者将介绍这方面的内容,并结合 2.6.26 和早期版本 2.6.18 中的示例来讨论 Linux 内核发生的相关变化以及这些变化带来的新 API。 |
|
|
|
2008年10月20日 |
|
| |
使用 inotify 监控文件系统的活动 Inotify 是一个 Linux 特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。学习如何将 inotify 集成到您的应用程序中,并发现一组可用来进一步自动化系统管理的命令行工具。 |
|
|
|
2008年10月13日 |
|
| |
Linux 下使用 Ruby 进行 GTK 桌面开发 Ruby 是一门灵活的动态编程语言。GTK2 是开源的跨平台图像处理库。通过Ruby-GTK2 进行快速的 Linux 桌面图形应用开发。 |
|
|
|
2008年10月9日 |
|
| |
OpenWbem 的介绍及其 CMPI 接口的 CIM provider 的开发实现 通用信息模型 (Common Information Module) 相关的技术正在被广泛地应用于设备管理,网络控制,信息处理等领域, CIM 模型已经被 IT 界各大公司广泛用作上层管理软件的基础信息模型,如 IBM,HP,EMC 等。当设备提供商需要将其设备纳入信息模型和管理体系时, CIM provider 的开发就显得尤为重要。虽然如今 CIM 技术及其 provider 开发已经成为一项热门技术。但是大量的文档集中在 sfcb 及 pegasus 方面。基于 Openwbem 的 provider 开发的资料是少之又少。本文希望能填补一些空白,让需要基于 Openwbem 的 CIM provider 开发者快速越过开发前期的技术瓶颈障碍。 |
|
|
|
2008年9月26日 |
|
| |
探索 System p 上的 Red Hat Enterprise Linux 5 现在您作为团队中的 UNIX(R) 专家已有许多年,老板决定要尝试一下 System p 上的 Linux。您可以抵制这种变化,或者可以接受并学习 Linux,即使不是为了爱它而学习它。本文的目的是向 AIX 管理员介绍 Linux。本文将向您介绍您需要了解些什么知识,才能使得到 Linux 的转换更加简单。本文还将向您说明用于执行特定任务的等效命令,同时将讨论进程管理、文件系统管理、如何查看系统信息、安装软件包,以及您作为系统管理员需要了解的其他一些信息。虽然您不会通过阅读本文而成为 Linux 专家,但是本文将为您需要了解的知识提供一个很好的起点。 |
|
|
|
2008年9月24日 |
|
| |
通过零拷贝实现有效数据传输 本文解释了如何通过一种称为零拷贝的方法来提高运行于 Linux 和 UNIX 平台上的 I/O 密集型 Java 应用程序的性能。零拷贝不仅消除了中间缓冲区之间的冗余数据拷贝,还减少了用户空间和内核空间之间的上下文切换次数。 |
|
|
|
2008年9月23日 |
|
| |
Linux 的魅力: Nokia N810 开发 Nokia N810 警报接口允许开发人员通过编程的方式有效且轻松地设置警报。Peter Seebach 演示了如何将一个小型命令行程序连接到这个 API 并充分利用它。 |
|
|
|
2008年9月22日 |
|
| |
Linux 文件系统中元数据使用计数的机制 在 Linux 文件系统中,元数据的引用计数主要用于管理元数据(如 inode, dentry 结构)在内存中的创建、使用和释放。了解这部分的机制,有利于深入认识文件系统的运行机制,以及Linux如何在内存中管理元数据。这部分内容也是构建分布式文件系统所必须的知识,由此才能保证元数据在分布式文件系统中的正确使用。 |
|
|
|
2008年9月18日 |
|
| |
使用 Ttyutils 截获 UNIX/Linux 终端 对于大多数 UNIX 和 Linux 用户,终端无疑是不可或缺的。本文将描述一个可以让 UNIX 终端会话完整受控的软件包,它叫做 Ttyutils。这篇文档将向大家介绍 Ttyutils 的基本使用方法以及它的实现机制。
|
|
|
|
2008年9月18日 |
|
| |
高效构建 CIM 事件模型 在公共信息模型(Common Information Model,CIM)中,客户机应用程序可以订阅 CIM 事件通知。通常,应用程序可以通过不同的连接端口用多个事件处理程序创建事件过滤器,但是这将消耗大量网络资源并增加维护复杂度。在本文中,查看如何用一个特定连接端口注册多个 CIM 事件处理程序。另请查看如何用 SBLIM CIM 客户机库编写代码的一些提示。 |
|
|
|
2008年9月16日 |
|
| |
Linux 时钟处理机制 在 Linux 操作系统中,很多活动都和时间有关,例如:进程调度和网络处理等等。所以说,了解 Linux 操作系统中的时钟处理机制有助于更好地了解 Linux 操作系统的运作方式。本文分析了 Linux 2.6.25 内核的时钟处理机制,首先介绍了在计算机系统中的一些硬件计时器,然后重点介绍了 Linux 操作系统中的硬件时钟和软件时钟的处理过程以及软件时钟的应用。最后对全文进行了总结。 |
|
|
|
2008年9月11日 |
|
| |