跳转到主要内容


developerWorks 中国  >  Linux  >  

文档库

developerWorks
 
  
 
 结果  1676   显示第 1 - 100 条结果     隐藏内容简介    
 
题目 日期依据日期排序 - 单击以反向排序
使用 Nagios 和向上集成模块实现 IBM 系统的管理
Nagios 是一款 Linux 上的成熟的监视系统运行状态的开源 IT 基础设施管理系统。它能够实现服务监视,错误通知,事件处理等主要功能。与传统的 IT 基础设施管理系统,如 Tivoli, HP OVO 等相比,Nagios 具有成本极低,结构简单,可维护性强等优势,受到了 SMB IT 管理人员的亲睐。仅仅从 SourceForge 网站上,就有超过 230 万份 Nagios 被用户下载。
    2009年12月10日  
 
IBM Lotus Notes 8.5 在 MAC 和 Linux 系统安装的新特性
本文介绍了 Lotus Notes 8.5 在 Linux 平台和 Mac 平台安装方面的新特性,包括安装之前的环境准备、安装过程、安装之后文件核查以及如何卸载,覆盖了所有支持平台,包括 Redhat、Suse、Ubuntu、Mac。最后,本文还介绍了如何使用 addToKit 工具对 Lotus Notes 8.5 进行定制安装。
    2009年12月8日  
 
通过 Shell 和 Expect 脚本实现对 IBM 刀片服务器高级管理模块固件的大量升级
刀片服务器已经在各行各业得到了大量应用,如何快速维护升级刀片服务器的高级管理模块(AMM)成为一个比较棘手的问题。现场工程师在客户现场经常会遇到,面对上百个 AMM 的固件升级工作,手头上没有一个非常方便的工具或者脚本,而不得不手动完成 AMM 固件的升级,耗费大量时间和人力。本文主要介绍一种可以实现同时升级大量 AMM 固件的方法和脚本程序。
    2009年12月8日  
 
对话 UNIX: 探察管道
管道操作符把一个 UNIX 命令连接到另一个命令,从而在命令行上创建专门的程序。但是,管道像是黑箱子,用户看不到从一个命令传递到下一个命令的数据。Pipe Viewer 可以探察管道。本文介绍如何在日常任务中使用它。
    2009年12月3日  
 
Linux 自检和 SystemTap
现代的操作系统内核提供自检功能,即动态地检查内核以理解其行为的能力。这些行为可以反映内核问题和性能瓶颈。拥有这些信息时候,您就可以调优或修改内核以避免出现故障。本文探索一个名为 SystemTap 的开放源码基础设施,它为 Linux 内核提供这种动态的自检。
    2009年12月3日  
 
Perl 多进程技术在自动化测试中的应用
在 IT 产品系统测试的自动化项目中,经常有并行处理多个子任务的需求,为了提高测试效率,就需要用到多进程或者多线程编程。文章介绍了 Perl 多进程的用法和适用场景,以及 Perl 多进程和多线程的关系。同时结合企业级 IT 产品系统测试的自动化特点,介绍了 Perl 多进程在这方面的应用。
    2009年11月29日  
 
Unix/Linux 系统自动化管理: 邮件系统篇
本文是 Unix/Linux 系统管理自动化系列中的一篇,主要讲述邮件系统的配置,以及如何利用 Perl 脚本来实现电子邮件的自动发送。本文内容包括邮件传输代理 (MTA) 在 AIX 和 LINUX 系统中的具体配置,如何通过 sendmail 发送邮件,以及如何接收局域网内的用户邮件。
    2009年11月26日  
 
通过 ulimit 改善系统性能
本文介绍了 ulimit 内键指令的主要功能以及用于改善系统性能的 ulimit 使用方法。通过这篇文章,读者不仅可以了解 ulimit 所起的作用,并且可以学会如何更好地通过 ulimit 限制资源的使用来改善系统性能。
    2009年11月26日  
 
下一代 Linux 文件系统:NiLFS(2) 和 exofs
Linux 在文件系统领域不断创新。它支持任何操作系统上的众多不同文件系统。它还提供尖端文件系统技术。Linux 最近又引入两种新的文件系统,它们是 NiLFS(2) 日志结构文件系统和 exofs 基于对象的存储系统。探索这两种文件系统背后的动机和它们的优点。
    2009年11月23日  
 
使用 SLES Encrypt File Container 保护远程 AIX V6.1 静止数据
讨论如何使用 SLES 提供的 Encrypt File Container 特性通过 NFS 协议保护由 AIX 导出并由 SUSE Linux Enterprise Server 使用的静止数据。
    2009年11月19日  
 
Linux 内核内存检测工具 - Kmemcheck
本文是 Linux 内核内存检测工具系列中的一篇,主要分析了 Kmemcheck 的原理,配置以及它的典型应用。读者在阅读完本文之后,能轻松地学会怎样利用 Kmemcheck 来对内核程序进行检测,同时也能从 Kmemcheck 的设计原理中得到一些启发。
    2009年11月19日  
 
Linux 虚拟化和 PCI 透传技术
处理器已经演变为针对虚拟环境提高性能,但 I/O 方面发生了什么变化呢?了解一种名为设备(或 PCI)透传(passthrough)的 I/O 性能增强技术,这种创新技术通过使用来自 Intel (VT-d) 或 AMD (IOMMU) 的硬件支持改进 PCI 设备的性能。
    2009年11月19日  
 
从 NILFS2 看 Log-Structure 文件系统
NILFS,BTRFS,Ext4 是最近 Linux 最引人注目的几个文件系统,他们各有特色,代表了 Linux 文件系统不同的发展方向和设计理念。在不同的应用场景下,人们采用会不同的文件系统。本文从 NILFS2 的使用和实现出发,探讨 Log-Structure 这种文件系统设计方法,希望能对理解这种技术有所帮助。
    2009年11月19日  
 
用 Linux 和 Apache Hadoop 进行云计算
IBM、Google、VMWare 和 Amazon 等公司已经开始提供云计算产品和战略。本文讲解如何使用 Apache Hadoop 构建一个 MapReduce 框架以建立 Hadoop 集群,以及如何创建在 Hadoop 上运行的示例 MapReduce 应用程序。还将讨论如何在云上设置耗费时间/磁盘的任务。
    2009年11月19日  
 
学习 Linux,101: 流、管道和重定向
您是不是认为流和管道让 Linux 专家听起来像管道工?现在您就有机会了解流和管道以及如何重定向和分离流。您甚至还将了解如何将流转变成命令参数。您可以为准备 Linux 系统管理员认证考试 LPI 101 而学习本文,也可以仅仅是为了从中获得乐趣。
    2009年11月16日  
 
将工作环境迁移到 Linux
随着 Linux 桌面体验的日趋完善,越来越多的人希望尝试将工作平台迁移到 Linux 之上。Linux 系统提供了绝大多数日常工作所需的工具和支持,但由于界面差异和使用习惯等原因,很多功能并不能被新用户迅速发现并掌握。本文面向初次迁移到 Linux 平台并希望使用图形模式工作的用户,从日常工作需要的角度出发 , 以 Ubuntu 9.04(gNome) 为例,讲解大多数常用功能在 Linux 下的配置与应用。
    2009年11月12日  
 
Emacs Gnus 的基本配置与使用
本文将详细介绍用 Emacs Gnus 上新闻组、收发邮件的基本配置方法,基本的使用技巧等。通过这篇文章,对 Gnus 建立起基本的概念,并能满足日常的 Gnus 使用。
    2009年11月12日  
 
使用 DS8000 和 DMMP 支持多路径 SAN 启动
使用多路径从存储区域网络启动服务器可以给复杂的现代数据中心环境带来明显的好处,比如提高可用性,增加访问范围,能够更加轻松地管理和维护系统,提供可靠性等等。要通过 SAN 设备启动 Linux 系统,您需要将 SAN 启动操作系统设置为支持多路径驱动程序的存储器;这是本文的中心。笔者将引导您在 IBM System Storage DS8000 上完成 SAN 启动 Linux 系统的设置过程,该存储器必须具有 Device-Mapper MultiPath (DMMP) 提供的多路径功能。
    2009年11月12日  
 
虚拟设备和 Open Virtualization Format
虚拟化不仅推进了服务器效率最大化的程度,还开启了通向以前不可能实现的新技术的大门。虚拟设备就是这样一种技术,它彻底改变了软件交付、配置和管理的方式。但是虚拟设备背后的力量在于在不同管理程序(hypervisor)之间共享虚拟设备的能力。了解虚拟设备背后的理念和好处,发现一个用于虚拟设备互操作性的标准解决方案 —— Open Virtualization Format。
    2009年11月9日  
 
减少 Linux 耗电,第 3 部分: 调优结果
这个分为三部分的系列帮助您调整系统以提高能源效率。在第 3 部分中,作者通过比较 5 个内核调控器的调优状态和未调优状态展示如何优化一个基于 Linux 的 System x 服务器。
    2009年11月5日  
 
侦测程序句柄泄露的统计方法
在 Linux 平台上运行的进程都会从系统资源申请一定数量的句柄,而且系统控制了进程能够申请的最大句柄数量。用户程序如果不及时释放无用的句柄,将会引起句柄泄露,从而可能造成申请资源失败。该文章从 linux 内核角度分析了句柄的产生和泄漏的原因,并采用一种应用统计侦测句柄的方法,为用户判断程序句柄是否泄漏提供了更直观的依据。
    2009年11月5日  
 
学习 Linux,101: 文件和目录管理
您可能已经听说过 “Linux 中的每项内容都可以看作一个文件”,那么就让我们通过牢固地掌握文件和目录管理内容来开始我们的 Linux 学习吧 —— 寻找、列出、移动、复制和归档。您可以利用本文的内容来准备 Linux 系统管理员认证 LPI 101 考试,或者仅仅是从中获取乐趣。
    2009年11月2日  
 
实战 SSH 端口转发
通过本文的介绍,读者可以从中了解到如何应用 SSH 端口转发机制来解决日常工作 / 生活中的一些问题。学会在非安全环境下使用端口转发来加密网络应用,保护个人隐私以及重要商业信息。同时也能够用此技术解决工作中一些常见问题,例如解决防火墙及网络应用本身带来的一些限制。
    2009年10月31日  
 
Linux 下定时器的实现方式分析
定时器属于基本的基础组件,不管是用户空间的程序开发,还是内核空间的程序开发,很多时候都需要有定时器作为基础组件的支持,但使用场景的不同,对定时器的实现考虑也不尽相同,本文讨论了在 Linux 环境下,应用层和内核层的定时器的各种实现方法,并分析了各种实现方法的利弊以及适宜的使用环境。
    2009年10月31日  
 
Unix/Linux 系统自动化管理: 内存管理篇
本文是 Unix/Linux 系统管理自动化系列中的一篇文章,主要介绍了内存管理所涉及的命令,并通过编写自动化脚本实现了内存管理与监控的自动化
    2009年10月29日  
 
UNIX 网络性能分析
了解 UNIX 网络布局会帮助您了解自己的网络及其运行方式。但是,当 UNIX 网络性能和传输文件或连接服务的速度突然下降时,究竟发生了什么?如何诊断网络问题并找到网络中出现问题的地方?本文介绍一些快速发现和识别性能问题的方法以及解决问题的步骤。
    2009年10月27日  
 
减少 Linux 耗电,第 2 部分: 一般设置和与调控器相关的设置
这个分三部分的系列帮助您调整系统以提高能源效率。在第 2 部分中,详细了解 Linux CPUfreq 子系统的一般设置,以及关于五个内核调控器(performance、powersave、userspace、ondemand 和 conservative)的更多信息和设置。
    2009年10月26日  
 
Linux 平台上的软件包管理
安装,升级和卸载应用软件是影响用户对操作系统评价的决定性因素之一。对于日渐流行的 GNU/Linux 操作系统,拥有简洁强大的软件包管理机制功不可没。本文从基本的 rpm/dpkg 命令行出发,以 RHEL 和 UBUNTU 为例,介绍典型 Linux 系统中应用软件的管理和使用。
    2009年10月22日  
 
Unix/Linux 系统自动化管理: 系统更新篇
系统升级与更新是 Unix/Linux 系统管理中一个非常重要的组成部分。它可以增强系统的功能,让系统更好地发挥起最大性能,同时也能修补系统的漏洞 , 增强系统的稳定性和安全性,防止系统遭到病毒或黑客的攻击与破坏。一般来说,不同的操作系统系统都采用了不一样的系统升级与更新方法。本文将介绍 Unix/Linux 操作系统上几种常用的系统升级与更新方法,并在针对于它们的自动化脚本实现方面作了一些尝试,希望对读者能起到一些抛砖引玉的作用。
    2009年10月21日  
 
从 Solaris 向 Linux on POWER 迁移指南
遵循这个分为六步的指南可以加速移植速度。了解移植过程中通常会遇到的 Solaris 与 Linux on POWER 之间的差别。介绍在基于 IBM POWER 处理器的系统上运行的 Linux 开发环境,查看 SUN 的编译器/连接程序开关与 GNU GCC 和 IBM 原始编译器的开关之间的比较。最后,了解用于性能分析的工具和 Linux on POWER 的软件包。[本文根据最新产品版本进行了更新 —— 编辑。]
    2009年10月19日  
 
通过 Linux 回收日用硬件的三种方法
过时的计算机硬件可能由于年代久远而变得不太可靠,但它代表的是您的组织的价值 —— 无论在办公室还是在家中。您可以使用 Linux 重新安排旧机器的用途来实现它们的价值。
    2009年10月19日  
 
Linux on POWER:发行版迁移和二进制兼容性考虑事项
了解二进制兼容性以及它与运行在 Linux on POWER 上的不同操作环境之间的关系。考察 IBM 支持的两个 Linux on POWER 发行版,即 Red Hat Enterprise Linux (RHEL) 和 SUSE LINUX Enterprise Server (SLES),了解它们各自的各个版本之间的二进制兼容性。总体而言,通过在版本之间维护的稳定 Application Binary Interface (ABI) 可以实现从基于 2.6.9 内核的 RHEL4 顺利迁移到基于 2.6.18 内核的 RHEL5。该方法同样适用于从基于 2.6.5 内核的 SLES9 迁移到基于 2.6.16 内核的 SLES10。了解能够改善 Linux on POWER 应用程序的性能的新技术,并遵循一些步骤确保未来的多个发行版之间的二进制兼容性。[“参考资料” 部分提供额外的参考内容 —— 编辑。]
    2009年10月15日  
 
集中高效管理 Xen 虚拟服务器
Xen 是可用于 Linux 内核的一种非常重要的虚拟化引擎,获得了包括 IBM 在内的众多厂商的广泛支持,被内置于各种 Linux 变种的发行版中,但是长期以来一直缺少高效的集中管理工具。 IBM Systems Director 是一个平台管理工具。通过利用行业通用标准,IBM Systems Director 可以支持多种操作系统和虚拟化技术,简化了在多系统环境中对物理系统和虚拟系统的管理。 本文以基于 SuSE Linux Enterprise Server 10 x86(以下简称 SLES10)的 Xen 为例,讲解如何利用 IBM System Director 6.1(以下简称 Director 6.1)内置的 Virtualization Manager 管理该虚拟化平台,已达到降低管理难度,提高管理效率的目的。 .
    2009年10月15日  
 
ftrace 简介
Trace 对于软件的维护和性能分析至关重要,ftrace 是当前 Linux 内核中一种新的 trace 工具。本文介绍 ftrace 的使用和实现原理,并将 ftrace 和 systemTap,LTTng 等软件进行对比,希望读者能够对 ftrace 有一个全面的了解。
    2009年10月15日  
 
Unix/Linux 系统自动化管理: 磁盘管理篇(下)
本文是 Unix/Linux 系统管理自动化系列中的一篇,主要讲述如何实现磁盘 I/O 自动化监控。
    2009年10月14日  
 
减少 Linux 电耗,第 1 部分: CPUfreq 子系统
在本系列的三篇文章中,您将从电源效率的角度全面调优自己的系统。在第 1 部分中,了解在电源效率方面调优基于 Linux 的 System x 服务器的各种组件和概念。了解如何启动 Linux CPUfreq 子系统,获取 CPU 电源状态和 CPU 性能状态,以及确保提高系统电源效率所需的 5 种内核调控器。
    2009年10月12日  
 
Linux 内核 SCSI IO 子系统分析
本文基于 LINUX2.6.18 内核,从 SCSI 设备访问请求的提交,SCSI 命令的处理、错误恢复几个方面浅析了 LINUX 内核中 SCSI 子系统的 IO 的处理机制。
    2009年9月30日  
 
Linux 虚拟系统文件交换器剖析
Linux 的最显著特征是灵活性和扩展性,例如它的虚拟文件系统交换器(VFS)。您可以在各种设备上创建文件系统,包括传统的磁盘、USB flash 驱动、内存以及其他储存设备。您还可以在另一个文件系统环境中嵌入文件系统。探索导致 VFS 如此强大的因素,并了解 VFS 的主要接口和进程。
    2009年9月28日  
 
如何写出优美的 C 代码
面向对象的语言更接近人的思维方式,而且在很大程度上降低了代码的复杂性,同时提高了代码的可读性和可维护性,传统的 C 代码同样可以设计出比较易读,易维护,复杂度较低的优美代码,本文将通过一个实际的例子来说明这一点。
    2009年9月25日  
 
学习 Linux,101: 文本流和过滤器
文本操作不仅仅是指复制和粘帖,在不使用 GUI 的情况下,这一点尤其明显。通过本文为 Linux Professional Institute Certification (LPIC) 101 考试做准备,或者仅仅是从中得到乐趣。在这篇文章中,Ian Shields 向您介绍了在 Linux 上使用 GNU 文本实用程序(textutils)包中的过滤器进行文本操作。在阅读完本文后,您将能够像专家一样熟练地操作文本。
    2009年9月21日  
 
企业级加密文件系统 eCryptfs 详解
近年来,保护个人敏感数据成为人们关注的热点问题,使用加密技术成为一种比较成功的保护方法。eCryptfs 是一个功能强大的企业级加密文件系统,通过堆叠在其它文件系统之上(如 Ext2, Ext3, ReiserFS, JFS 等),为应用程序提供透明、动态、高效和安全的加密功能。本文先介绍加密文件系统的背景,然后介绍 eCryptfs 的使用方法,最后阐述 eCryptfs 的设计原理。
    2009年9月17日  
 
Perl 面向对象编程的两种实现和比较
本文比较了在 Perl 中两种主流的面向对象编程的实现方式,基于匿名哈希表的实现和基于数组的实现。深刻地剖析了两种实现的技术内幕,并且提供了可供读者直接使用的代码和模块示例。在文章的最后作者比较了两种实现方式的优劣,并对读者给出了在实际工作中选择何种方式实现面向对象编程的建议。
    2009年9月17日  
 
Unix/Linux 系统自动化管理: 网络接口带宽管理篇
本文是 Unix/Linux 系统管理自动化系列中的一篇,主要讲述如何实现自动化监控网络接口带宽状态并及时通知系统管理员采取相应措施。
    2009年9月16日  
 
学习 Linux,101: LPIC-1 路线图
使用这个路线图,查找可以帮助您学习和复习基本 Linux 任务的 IBM developerWorks 文章。并且,如果您正在准备面向 Linux 系统管理员的专业认证,那么这些文章可以帮助您准备 Linux Professional Institute Certification (LPIC) 考试 101 和考试 102。这个路线图是根据 101 和 102 考试的目标 43 组织的,您需要通过这两门考试来获得 LPI 级别 1 认证。
    2009年9月14日  
 
Unix/Linux 系统自动化管理: CPU 管理篇
本文是 Unix/Linux 系统管理自动化系列中的一篇,主要讲述如何实现自动化监控 CPU 的使用状态。
    2009年9月10日  
 
Linux 大页面使用与实现简介
为了减少 TLB Miss 对应用程序性能的影响,Linux 内核支持以 2MB 作为物理页面分页的基本单位。 Linux 内核采用基于 Hugetlb 伪文件系统的实现方式支持大页面,虽然较大地提升了应用程序的性能,但由于不能做到完全的透明性,对应用程序的移植带来了挑战。本文对 Linux 大页面机制的使用和实现进行了简要的介绍和分析。
    2009年9月10日  
 
使用 IBM Systems Director 6.1 实现 Linux 系统集群的账户集中式管理
IBM Systems Director6.1 提供了对大中型规模的局域网系统中的 Linux 集群或是 Microsoft Win 集群的平台管理功能。从账号权限的角度,它提供的功能包括基于配置文件的节点账号管理,基于角色的集中权限管理。除此之外,Director6.1 还支持与主流的 LDAP 服务器的集成。
    2009年9月10日  
 
对话 UNIX: 手册页
UNIX 有成百上千条命令,不可能记住所有选项和细节。好在不需要这样:手册(UNIX 内置的联机参考系统)是用户最好的朋友。
    2009年9月9日  
 
学习 Linux,101: Linux 命令行
GUI 非常优秀,但是要释放 Linux 的真正威力,命令行是任何东西都无法取代的。在这篇文章中,Ian Shields 为您介绍了 bash shell 的一些主要特性,并重点介绍对 LPI 认证非常重要的特性。阅读完本文后,您将可以非常熟练地使用基本的 Linux 命令,比如 echo 和 exit、设置环境变量,以及收集系统信息。
    2009年9月7日  
 
InfiniBand 技术及其在 Linux 系统中的配置简介
随着服务器处理速度的不断加快,用户对提升网络传输速度的需求也越来越紧迫,传统意义上的输入 / 输出技术, 如 PCI、以太等,已经无法满足这种需求。如何更为有效的提高数据传输速度,增加有效带宽成为摆在人们面前必须解决的一个重大问题。 InfiniBand 标准就是在这种情况下应运而生的,它在很大程度上解决了传统输入 / 输出架构的传输瓶颈问题 , 运行速度可达到每端口 2.5Gb/s 或 10Gb/s 。 目前,这项技术已经广泛应用到高性能计算等领域,Linux 操作系统内核也对其提供了全面的支持,本文将逐一介绍 InfiniBand 技术架构,以及如何在 Red Hat Enterprise Linux 5.3 和 SLES11 系统中配置 InfiniBand 网络设备,包括网卡驱动的安装以及 IPoIB(IP over InfiniBand)接口配置。
    2009年9月3日  
 
Unix/Linux 系统自动化管理: 远程登录篇
本文是 Unix/Linux 系统管理自动化系列中的一篇,主要讲述如何利用脚本来实现远程服务器系统的自动化登录和在远程系统上执行命令。
    2009年9月3日  
 
Linux文件系统中元数据的加锁机制与组织方式
在文件系统中,元数据的加锁机制是保证元数据事务操作正确进行的重要机制。目前的文献很少系统地讲述这方面的内容。本文从 Linux 内核源代码中总结出元数据加锁的规则与机制,展示其在设计过程中的思路及所遇到的问题,并揭示出元数据加锁机制与元数据组织方式之间的关联性。从中可以看到元数据的组织方式直接决定了元数据的加锁机制的制定,而元数据的加锁机制则是认识和理解元数据组织方式的一个绝佳角度。了解这部分知识,可以扩展我们对文件系统元数据组织方式的设计思路。
    2009年9月3日  
 
在 Beagle Board 上引导 Linux
Beagle Board 是一种开放硬件的单板计算机,能够以合理的速度运行 Linux,同时保持价格低廉。了解 Beagle Board 以及如何以低廉的价格建立 Linux 开发环境。
    2009年9月3日  
 
来自 OSCON 2009 的思想:开放的政府和并发性
O'Reilly Open Source Convention (OSCON) 的可贵之处在于,它是一个收集关于软件开发的先进思想的场合。在 2009 年的大会上提出了许多新颖的思想,David Mertz 对这些思想进行浓缩,集中介绍两个非常不同但都很重要的领域:开放的政府和并发。
    2009年8月31日  
 
避免 UNIX 和 Linux 中的常见错误
    2009年8月27日  
 
探索 Pexpect,第 2 部分:Pexpect 的实例分析
Pexpect 是一个用来启动子程序并对其进行自动控制的纯 Python 模块。 Pexpect 可以用来和像 ssh、ftp、passwd、telnet 等命令行程序进行自动交互。继第一部分《探索 Pexpect,第 1 部分:剖析 Pexpect 》介绍了 Pexpect 的基础和如何使用后,本文将结合具体实例入手,详细介绍 Pexpect 的用法和在实际应用中的注意点。
    2009年8月26日  
 
Linux 技巧: 从命令行创建像素标尺
学习如何使用 Linux 命令行和一些基本的 Bash 脚本编写技巧,以便使用 ImageMagick 在图像上绘制线条和文本,同时创建一个像素标尺。
    2009年8月24日  
 
面向 Subversion 用户的 Git,第 1 部分: 入门指南
分布式版本控制系统(DVCS)提供了大量优于集中式 VCS 的优点,对于尝试研究 Subversion 模型的用户,Git 是一个非常不错的起点。这个共包含两部分的系列文章的第 1 部分使用 Subversion 作为一个基准,展示了如何安装 Git、设置一个远程存储库,以及开始使用基本的 Git 命令。
    2009年8月24日  
 
Unix/Linux 系统自动化管理: 数据备份与同步篇
本文是 Unix/Linux 系统管理自动化系列中的一篇,主要讲述如何实现自动化备份与同步系统数据。
    2009年8月20日  
 
新一代 Linux 文件系统 btrfs 简介
Btrfs 被称为是下一代 Linux 文件系统。近年来 ext2/3 遇到越来越多的扩展性问题,在期待 ext4 的同时,人们发现了 btrfs,据说它采用了很多先进的文件系统设计,不仅解决了 ext2/3 的扩展性问题,还让人们看到了下一代文件系统所具有的许多其他特性。这一切都让人不禁心生好奇,btrfs 究竟提供了哪些特性?它是如何实现的?本文便围绕这些问题展开探讨,首先研究了 btrfs 所提供的新特性,并简要介绍了 btrfs 内部实现这些特性的原理;然后演示了 btrfs 的常用命令。
    2009年8月20日  
 
通过 GPT 和 Linux 充分利用大型驱动器
脆弱的主引导记录(MBR)分区模式不能完全处理超过 2TB 的磁盘 —— 这个曾经遥远的磁盘存储瓶颈问题正在快速成为现实。1TB 磁盘现在已经很常见,2TB 磁盘正在开始出现,着眼于未来的人士正在考虑 MBR 分区模式的替代方法。很明显,MBR 的继任者是 GUID Partition Table (GPT)。本文介绍如何确保您的 Linux 系统为未来的磁盘存储做好准备。
    2009年8月17日  
 
应用级集群系统的设计
集群系统在企业 IT 应用中的部署越来越广泛,基于某个具体业务的应用级集群服务系统也越来越得到重视,围绕这个主题,本文简要地探讨了应用级集群一般性的设计思路,重点针对分层业务资源、业务资源监测器、负载均衡器和故障转移管理器等四部分。
    2009年8月13日  
 
虚拟化技术漫谈
随着近年多核系统、集群、网格甚至云计算的广泛部署,虚拟化技术在商业应用上的优势日益体现,不仅降低了 IT 成本,而且还增强了系统安全性和可靠性,虚拟化的概念也逐渐深入到人们日常的工作与生活中。本文针对 x86 平台,首先给出虚拟化技术的基本概念和分类,然后阐述纯软件虚拟化的实现原理和面临的挑战,最后详细介绍 Intel-VT 硬件辅助虚拟化技术。
    2009年8月13日  
 
Unix/Linux 系统自动化管理: 日志管理篇
本文是Unix/Linux系统管理自动化系列中的一篇,主要讲述如何实现自动化监控系统日志中的错误以及警告信息并及时通知系统管理员。
    2009年8月13日  
 
在 Linux KVM 上创建一个 ooRexx 构建环境
使用 ooRexx 开发随需应变的软件构建服务,ooRexx 使用 Linux 内核虚拟机(KVM)提升性能。KVM 充当客户操作系统的主机,为用户构建目标软件。Apache Web 服务器控制构建并存储结果,供用户在以后检索结果。通过本文了解如何设置构建服务器和创建客户机,定制构建请求,以及组织和访问构建结果。
    2009年8月10日  
 
利用 SysRq 键排除和诊断系统故障
本文从一次典型的系统挂起事件,引出 SysRq 键的用途。然后介绍了如何启用 SysRq,以及使用 SysRq 的两种方式。接着通过 SysRq 在不同场合的用途分别介绍了各个功能键的使用,并对每个功能键的样例输出做了简单分析。最后,笔者从自身角度对 SysRq 功能做了一个简单的评价,并提供了一部分参考资料,以便读者进一步了解 SysRq 。本文所有操作实例均在 RHEL5u2 x86/kernel 2.6.18-92 上进行,体系与内核的差异会对 SysRq 的信息收集和显示有少许影响,详情请参考内核文档中的 sysrq.txt 关于平台部分的描述。
    2009年8月6日  
 
Perl 对 C 的扩展接口
XS 语言是一种用来在 Perl 和需要在 Perl 内使用的 C 代码(或者 C 库)之间创建扩展的接口描述文件格式。XS 接口为 C 库链接创建了一个静态链接到 Perl 或者能被 Perl 动态导入的新库。本文的主要目的是介绍如何在 Unix 环境下编写 XS 接口并成功通过编译,从而实现 Perl 对 C 的扩展,提高代码重用率。
    2009年8月6日  
 
Python 测试框架: 选择和运行测试
最近出现了行业级的 Python 测试框架,这意味着 Python 测试可以编写得更简洁、更统一,能够产生更好的结果报告。本文讨论三种最流行的测试框架如何识别和收集测试,以及它们如何支持编写完整的测试层,共享共同的 setup 和 teardown 代码。
    2009年8月5日  
 
SolarNetOne: 适用于所有人的太阳能网络
在世界上的许多地方,电力网络十分简陋,计算机属于稀缺资源,而网络连接则更加罕见。因此,正如许多其他现代惯例和技术一样,人们逐渐被分为 “有计算能力者” 和 “无计算能力者”。然而,许多人正在消除这一划分。SolarNetOne 是一个已交付使用的网络热点 —— 电力,计算机和卫星上行链路,它能够安装在任何地方,而费用还不到一辆普通轿车的价钱。
    2009年8月3日  
 
KVM 虚拟机在 IBM System x 上应用
虚拟化技术已经成功的被用于基于 POWER 构架的 IBM Power 服务器。如何在基于 x86 处理器 IBM System x 系列服务器应用虚拟化技术呢?最新的 Intel VT(Virtualization Technology)和 AMD SVM(安全虚拟机 , Secure Virtual Machine,也叫 AMD-V)从硬件上支持了虚拟技术。 KVM 正是利用了 x86 硬件虚拟化特性,实现了虚拟机性能的最优化。本文详细介绍了在 IBM System x3500 上使用 SLES11 和 KVM 虚拟化技术,如何安装配置了多台虚拟机,并对虚拟机的性能做了初步的优化。
    2009年7月30日  
 
Unix/Linux 系统自动化管理: 磁盘管理篇
本文是 Unix/Linux 系统管理自动化系列中的一篇,主要讲述如何实现自动化监控磁盘空间状态并及时通知系统管理员采取相应措施。
    2009年7月30日  
 
使用脚本编写 Vim 编辑器,第 2 部分: 用户定义函数
要将应用程序分解为正确的、可维护的组件,从而管理实际编程任务的复杂性,用户定义函数是必不可少的一种工具。本文是本系列文章的第二篇,介绍了如何使用 Vimscript 语言创建和部署新函数,并通过一些实际的示例展示这样做的必要性。
    2009年7月27日  
 
使用 OVF Toolkit 构建虚拟工具
Open Virtualization Format (OVF) 是用于封装和分发将在虚拟机上运行的虚拟工具(或软件)的开放标准。该标准描述了一种 “开放、安全、可迁移、有效以及可扩展的格式,用于封装和分发将在虚拟机上运行的软件”;该标准的目的是不再需要绑定到任何特定的管理程序或处理器架构。在本文中,作者将描述 OVF 标准以及由 IBM 开发的 OVF Toolkit。
    2009年7月27日  
 
内核中的 telnet 服务
通过在 Linux 的 ICMP 协议栈中嵌入一个私有的类 telnet 服务(称为 ktelnetd),开发人员可以从外部连接到嵌入式设备的内核中,并利用预置的命令检查内核的参数,甚至调整运行状态。这种方法有助于开发人员诊断和定位系统的异常。
    2009年7月23日  
 
使用 Blue Gene/L 建立蛋白质模型
Blue Gene/L 超级计算机为科学家提供了一流的计算能力和复杂的数据虚拟化工具,帮助他们深入学科的前沿。了解此项技术如何帮助计算分子生物学家创建蛋白质折叠和错误折叠模拟,以更多好理解这些复杂的分子。
    2009年7月23日  
 
Unix/Linux 系统自动化管理: 进程管理篇
本文是 Unix/Linux 系统管理自动化系列中的一篇,主要讲述如何实现自动化监控进程状态和性能并及时通知系统管理员。
    2009年7月23日  
 
Python 测试框架: 寻找要测试的模块
最近出现了行业级的 Python 测试框架,这意味着 Python 测试可以编写得更简洁、更统一,能够产生更好的结果报告。本文讨论先进的测试框架如何提供健壮的应用程序测试自动发现,以及这如何替代过去维护的集中式测试列表。
    2009年7月20日  
 
KDE 4 plasmoid 简介
KDE 4 包括许多振奋人心的新技术,其中包括 Plasma,该特性构成了 KDE 4 的桌面 shell。下面让我们看看如何编写简单的 Plasma applet(称为 plasmoid)以显著改善桌面体验,以及如何将一个 plasmoid 变成一个简单的内存监控器。
    2009年7月20日  
 
用 Cygwin 在 Microsoft Windows 中创建类 Linux
随着信息技术的发展,应用软件复杂度的提高,单一的操作系统平台已经不能满足软件开发和测试的需要,通常受到一些软件运行环境的制约,一个应用解决方案当中会包含多个服务器,而且服务器具有不同的操作系统。这样,不同操作系统之间的互通通常是一个困扰软件开发和测试的难题,本文介绍了如何利用开源的 Cygwin 软件在 Microsoft Windows 中创建类 Linux 开发环境从而可以与 Linux 或 Unix 服务器实现互通,以方便应用软件的开发和测试。
    2009年7月16日  
 
Ksh93 高级特性简介
ksh 是 UNIX/Linux 下流行的 shell 语言,ksh93 是 ksh 的增强型版本;相比于 ksh,ksh93 提供了更接近于高级语言的特性,包括 c 风格的 for 循环,关联数组,名字引用,复合变量和更方便的字符串操作,本文讨论了这些高级特性并说明它们的应用。
    2009年7月16日  
 
功能丰富的 Perl: Perl 和 Amazon 云,第 5 部分
这个共分 5 部分的系列文章向您介绍了如何使用 Perl 和 Apache 构建一个照片共享网站,从而访问 Amazon 的 Simple Storage Service (S3) 和 SimpleDB。在这最后一期文章中,我们将考察完整 mod_perl 站点的模板,包括一个用于索引的模板、三个用于上传的模板(通用模板、S3 表单和 URL 添加)、一个用于浏览照片和评论的模板,以及一个用于递归式地浏览(即遍历浏览)照片评论的模板。
    2009年7月13日  
 
对话 UNIX: 适用于任何 UNIX 系统的 10 个出色的工具
UNIX 工具一直在变化。本文介绍 10 个有用的工具,其中一些是您以前可能不太关注的工具,一些是新工具。
    2009年7月13日  
 
IBM 开放协作客户机解决方案,第 5 部分: IBM 开放虚拟客户机的体系结构决策和执行选项
许多公司希望通过成本低廉的战略提高效率和业务敏捷性,他们发现客户机虚拟化是一种保持市场竞争力的有效战略。本文介绍当今市场上适用于 Linux® 桌面的一些虚拟化技术。本文讨论如何通过各种利用 IBM® 开放协作客户机解决方案的虚拟化技术,增加 IT 基础结构的业务价值,提供出色的桌面系统,充分利用 Web 2.0 和云计算的强大能力。
    2009年7月10日  
 
IBM 开放协作客户机解决方案,第 4 部分: 把业务应用程序迁移到 Linux 桌面
您是否希望把基础结构和业务线应用程序迁移到 Linux 桌面环境中,同时又需要访问重要的 Microsoft Windows 应用程序或遗留应用程序?在考虑迁移到 Linux 时,必须找到支持这些重要的业务线应用程序的方法。本文介绍一些工具,它们可以帮助您从 Linux 桌面访问这些应用程序。
    2009年7月10日  
 
IBM 开放协作客户机解决方案,第 2 部分: 针对桌面迁移的组织规划和用户分类
学习把环境迁移到 Linux® 客户机上涉及的步骤,包括组织规划和用户分类。本文根据客户的经验全面介绍如何规划和执行迁移,同时尽可能减少对用户的干扰。
    2009年7月10日  
 
IBM 开放协作客户机解决方案,第 3 部分: 技术规划
学习把环境迁移到 Linux 客户机上涉及的步骤,包括技术规划。本文根据客户的经验全面介绍如何规划和执行迁移,同时尽可能减少对用户的干扰。
    2009年7月10日  
 
理解 chroot
chroot 在 Linux 系统中发挥了根目录的切换工作,同时带来了系统的安全性等好处。本文通过编写 chroot 来理解 chroot 的作用和好处,这不仅有助于更好的使用 chroot,同时加深了对 Linix 系统初始 RAM 磁盘工作的认识。
    2009年7月9日  
 
IBM Lotus Domino,Linux,虚拟化,可伸缩性:不再是相互排斥的术语
您是否对于不得不将 IBM Lotus Domino 系统被迫适应基础设施而感到厌烦?使用最新版本的 64 位 Lotus Domino on Linux® 和虚拟化技术,现在可以在单个物理基础设施内为 Lotus Domino on Linux 实现大型企业环境。本文将描述一些已完成的基准测试,以及该解决方案的早期采纳者的采用效果,展示了基础设施如何适应 Lotus Domino 并一同扩展。
    2009年7月7日  
 
UNIX 网络分析
通过使用各种不同的工具,您可以深入地了解自己的网络。如果希望了解网络的布局、数据包的目的地以及操作者,就需要使用不同的工具来帮助您描绘一幅网络结构图,从中了解网络以及将要发生事情。本教程探讨了一些技巧,可以帮助监视 UNIX 网络的通信量和内容,以及在网络上发现和诊断问题。
    2009年7月6日  
 
Linux 上的常用文件传输方式介绍与比较
Linux 环境中有多种方式可以实现不同主机之间的文件传输或同步。在不同的场景下,选择合适的方法进行传输会大大提高工作效率以及质量。本文通过总结 Linux 环境下常用的几种文件传输方法,结合具体使用实例以及对这些方法优缺点的分析对比,希望能够对需要在 Linux 或 unix 环境下进行文件传输或同步的朋友提供一些帮助。
    2009年7月2日  
 
IBM Systems Director 6.1 在 AIX 和 Linux 系统上的安装和部署
IBM Systems Director 6.1( 以下简称 Director 6.1) 是一套平台管理软件。它能够帮助企业轻松有效的管理物理设备和虚拟 IT 环境,帮助客户缩短故障排除时间,提高系统可用性。并且,通过提高 IT 管理效率和提高系统使用率来降低成本。IBM Systems Director 为客户提供了简单易用的方式来对不同硬件设备(包括服务器和存储等),不同的操作系统和不同虚拟环境进行集中的管理。
    2009年6月30日  
 
剖析 Linux hypervisor
Linux 的最重要创新之一就是转变为 hypervisor(运行其他操作系统的操作系统)。现在涌现许多使用 Linux 作为内核的 hypervisor 解决方案。本文探索hypervisor背后的原理,以及两个使用 Linux 作为平台的 hypervisor(KVM 和 Lguest)。
    2009年6月29日  
 
使用代理技术解决 Openwsman 项目中的参数类型问题
本文主要介绍了 WS-Management 协议和 Openwsman 开源项目,通过 Openwsman 和 CIM 的结合,用户可以通过 Web service 发布和管理系统信息资源。本文介绍了一种通过代理技术来解决当前 Openwsman 中存在的参数类型只能为字符串问题的方案,应用该方案,Openwsman 可以获得更高的可用性和可靠性。
    2009年6月25日  
 
在 Linux 下安装 GNU ARM 工具链
可以使用多种工具编写不同版本的 ARM 内核,但最流行的一组工具是 GNU ARM 工具链。更多地了解如何使用 ARM 内核进行嵌入式开发,以及如何安装并使用 GNU 工具。
    2009年6月25日  
 
Linux:节约、干净和环保
绿色 IT 是当今技术趋势的热点之一,而 GNU/Linux 社区已经开始应对这一挑战。通过与其他几家企业合作,GNU/Linux 操作系统提供了专门针对能源消耗、二氧化碳排放和电子垃圾的解决方案。
    2009年6月22日  
 
Linux Scheduling Domains
随着系统规模的不断扩大,以 Hyper-threading, SMP, NUMA architectures,以及近年来很热门的多核 (Multi-core) 技术为代表的高端系统得到越来越广泛的应用。这样复杂的系统给 Linux 内核的调度器带来了严峻的考验。因此,从 Linux 2.6 内核开始引入了 Scheduling Domains 的概念,用它来维护 CPU 之间的负载平衡,最大化多 CPU 的效率、性能,同时最低化系统的功耗 (Power) 。
    2009年6月18日  
 
Linux 多线程应用中如何编写安全的信号处理函数
关于代码的可重入性,设计开发人员一般只考虑到线程安全,异步信号处理函数的安全却往往被忽略。本文首先介绍如何编写安全的异步信号处理函数;然后举例说明在多线程应用中如何构建模型让异步信号在指定的线程中以同步的方式处理。
    2009年6月18日  
 
浅谈 Linux 内核开发之 PCI 设备驱动
本文介绍了 PCI 的基本概念,并从 Linux 内核的角度出发,介绍了 PCI 设备的初始化以及配置。
    2009年6月11日  
 
敏捷规划实践
您是否希望实现敏捷规划?您是否正在进行迭代开发并且仍然身陷困境?在本文中,作者将利用他的经验帮助并指导 IBM 产品团队获得能够回答上述问题的路线图:“如何利用敏捷规划开始开发发布版软件”?他介绍了敏捷规划的基本知识,并分享了他的一些观点,指出了哪些方法是有效的以及哪些方法是无效的。
    2009年6月8日  
 
基于 Linux 的 IGMP Proxy 的实现
近年来,基于 IP 多播的业务越来越受到重视,特别是消费类电子产品的普及,对于多播业务的支持提出了一个新的要求。一般说来,像 ADSL Router 等消费类电子产品并没有必要去实现一个完整且复杂的多播路由协议,针对于此,IGMP Proxy 以及 IGMP Snooping 等解决方案被提出来,以更好的透过这些设备来支持多播业务的部署。
    2009年6月4日  
 
rsync 命令家族
使用 rsync 更轻松更快速地同步两台机器(比如笔记本计算机和桌面计算机),这提供一种高效的算法和多种选项。另外,如果不喜欢命令行操作,还可以通过几个图形化工具更简便地使用 rsync。
    2009年6月4日  
 
使用脚本编写 Vim 编辑器,第 1 部分: 变量、值和表达式
Vimscript 是一种用于改造和扩展 Vim 编辑器的机制。使用脚本可以创建新工具、简化常见任务,甚至重新设计并取代已有的编辑特性。本文是本系列文章的第一篇,介绍了 Vimscript 编程语言的基本元素:值、变量、表达式、语句、函数和命令。将通过一系列简单的示例演示和解释这些特性。
    2009年6月1日  
 
GCC 中的编译器堆栈保护技术
以堆栈溢出为代表的缓冲区溢出攻击已经成为一种普遍的安全漏洞和攻击手段。本文首先对编译器层面的堆栈保护技术作简要介绍,然后通过实例来展示 GCC 中堆栈保护的实现方式和效果。最后介绍一些 GCC 堆栈保护的缺陷和局限。
    2009年5月31日  
 
Ganglia 和 Nagios,第 2 部分: 使用 Nagios 监视企业集群
这是使用开源工具 Ganglia 和 Nagios 手动监视数据中心系列的第二篇文章。在第 2 部分中,将学习如何安装和配置 Nagios、常见的开源计算机系统、观察托管和服务的网络监视应用程序软件,并学习如何在出现问题时警告用户。本文还演示如何结合 Nagios 和 Ganglia(接第 1 部分),如何为 Nagios 标准集群、网格、云添加两个额外特性,以帮助监视网络交换机和资源管理器。
    2009年5月25日  
 
使用 Python 实现多进程
通过使用 Python 2.6 内置的多进程模块,将您的 Unix Python 应用程序扩展为使用多核。多进程模拟了 Python 线程 API 的部分功能,让开发人员能够对多组进程进行高级控制,同时也合并了许多特定于进程的额外特性。
    2009年5月21日  
 
对话 UNIX: Squirrel--可移植的 shell 和脚本语言
如果您不满足于特定的 shell 仅能在某个特殊平台上运行,那么可尝试使用 Squirrel Shell。Squirrel Shell 提供了一种高级的、面向对象的脚本语言,在 UNIX、Linux、Mac OS X 和 Windows 系统上都可以良好地运行。只需要编写一次脚本,就可以在多个平台上运行。
    2009年5月21日  
 
轻松编写 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日  
 
从脚本编写到面向对象的 Python 编程
从编写过程式脚本转换到面向对象的编程通常是非常困难的。本文探索如何重用来自 PHP、Bash 或 Python 脚本的程序,转换到 Python 中的面向对象的编程。本文还将简略地谈到函数式编程的适当使用。
    2008年9月11日  
 
Cognos 8 BI Server 在 Linux 上的安装及与 IHS,WAS,DB2 的配置
Cognos BI 是一个在面向服务的体系结构上提供报表、分析、企业事件管理等完整 BI 功能的 BI 产品。本文将介绍如何在 linux 上安装 Cognos 8 BI Server,以及如何与 IBM Http Server, WAS, DB2 进行配置。
    2008年9月11日  
 
利用开源软件开发 Web 应用程序
Web 开发人员正在经历一场复兴。过去的十年间,程序员一直艰苦地进行以服务器为中心的编码,现在他们开始把代码编写转到中前端,这让 Web 浏览器演变成了其自身的计算平台。这场复兴主要归功于独创性。最新一代的工具和应用程序框架可以自动化和简化构建、部署和维护一个网站所需的艰苦工作。可用的工具较先前更多,而且所有最新型的工具都是开源的。本教程向您悉数介绍了可供开发人员创建和部署 Web 应用程序使用的这些免费软件。
    2008年9月9日  
 
Boost 库中的实用工具类使用入门
实用工具类(utility classes)开发和维护会耗费程序员的时间。Boost 通过提供几个高质量的库,从而简化了此过程,您可以将这些库轻松集成到现有的代码库中。本文简单概述一些较流行的 Boost 实用工具类,并帮助您了解如何将它们投入使用。
    2008年9月8日  
 
Linux 动态库剖析
动态链接的共享库是 GNU/Linux 的一个重要方面。该种库允许可执行文件在运行时动态访问外部函数,从而(通过在需要时才会引入函数的方式)减少它们对内存的总体占用。本文研究了创建和使用静态库的过程,详细描述了开发它们的各种工具,并揭秘了这些库的工作方式。
    2008年9月8日  
 
JPEG 原理详细实例分析及其在嵌入式 Linux 中的应用
作为一个基本的图像压缩方式,JPEG 已经得到了广泛的运用,但 JPEG 相关的基本原理,却经常被忽视,或解释得很不确切。 这里我们详细讨论一下 JPEG 的编码原理,并结合实例来给出一个更加感性的认识。
    2008年9月4日  
 
Java 运行时监控,第 3 部分: 监控应用程序生态系统的性能与可用性
本文为 Java 应用程序运行时监控系列的第三部分,也是最后一部分,主要介绍在监视应用程序支持和依赖服务的性能和可用性时应使用哪些策略与技巧。所谓支持和依赖服务包括底层主机操作系统、运行数据库以及通信基础设施。文章结尾针对性能数据管理问题以及数据的报告和可视化做了论述。
    2008年9月2日  
 
从头开始构建一个嵌入式 Linux 发行版
学习如何为嵌入式环境构建一个定制 Linux 发行版,本教程针对的是 Technologic Systems TS-7800 单板计算机。在这篇教程中,将学习交叉编译、启动装载器、文件系统、根文件系统、磁盘镜像和启动过程,您可以在构建系统和创建发行版时选择它们。
    2008年9月1日  
 
使用 Linux on Power 刀片服务器实现复杂的网络
刀片服务器是许多应用程序和服务的最佳选择,对于电信服务提供商尤其如此。但是,这些提供商网络的独特需求常常需要复杂的配置,需要预先进行详细的研究和规划,这样才能满足所有严格的功能性需求。通过本文我们可以学习在部署 POWER6 JS22 刀片服务器时,如何规划和搭建必备的网络配置。
    2008年8月25日  
 
技巧:AWK 关联数组的一个应用
本文通过一个实例阐述了 AWK 关联数组的应用,读者可以通过这篇文章得到理论和实践两方面的知识,例子很简单,希望这篇文章能起到抛砖引玉的作用。
    2008年8月21日  
 
TCP 连接断连问题剖析
TCP 连接的保持并不需要任何额外的操作,但在实际应用中,要长时间保持一个 TCP 连接则会受到诸多因素的影响。本文介绍了几种常见的导致 TCP 连接断连的原因,并在此基础上,以 AIX 系统上 TCP 连接的异常断连为例,借助相应的网络分析工具,逐步揭开 AIX 上 TCP 断连的原因,并给出两种可行的解决方案。
    2008年8月21日  
 
对话 UNIX: 关于 inode
您是否曾经对一些 UNIX 命令(如 df)中的 Iused 和 %Iused 的含义感到困惑,或者当人们讨论 inode 的时候不知所云?UNIX 和 Linux 系统都使用了 inode ,当然 IBM AIX 也不例外。本文将向您介绍什么是 inode 、为什么对于 UNIX 来说 inode 非常重要、 inode 的结构,以及操作 inode 的命令。
    2008年8月11日  
 
“懒惰” Linux 管理员的 10 个关键技巧
学会这 10 个技巧后,您将成为世界上最强大的 Linux 系统管理员,整个世界是有点夸张,但要在一个大团队中工作,这些技巧是十分必要的。学习 SHH 通道、VNC、密码恢复、控制台侦察等等。各个技巧都附有例子,可以将这些例子复制到自己的系统中。
    2008年8月11日  
 
Linux 可加载内核模块剖析
Linux 可加载内核模块(从内核的 1.2 版本开始引入)是 Linux 内核的最重要创新之一。它们提供了可伸缩的、动态的内核。探索隐藏在可加载模块后面的原理,并学习这些独立的对象如何动态地转换成 Linux 内核的一部分。
    2008年8月7日  
 
通过 Firefox 扩展为 Google Calendar 加密
当今的 Web 应用程序为在线存储、访问和协作提供了许多便利。虽然一些应用程序为用户数据提供了加密,但为数不多。本文提供了添加基本加密支持所需的工具和代码,使您可以在一个最流行的在线日程表上加密用户数据。通过运用 Firefox 扩展和 Gnu Privacy Guard 的巨大灵活性,本文展示如何将加密的事件描述存储到 Google Calendar 应用程序,并且只向拥有解密密匙的用户显示纯文本。
    2008年8月4日  
 
Linux 的 Spinlock 在 MIPS 多核处理器中的设计与实现
Spinlock 在 Linux 中被广泛应用于解决多核处理器之间访问共享资源的互斥问题,本文以 MIPS 多核处理器为例,介绍了 Spinlock 的设计与实现,以及 Spinlock 的不足与扩展。
    2008年8月4日  
 
通用线程: awk 实例,第 1 部分
Awk 是一种名称奇怪但功能强大的语言。本文是一个包含三部分的系列的第一篇。在本文中,DanielRobbins 将使您迅速掌握 awk 编程技巧。随着本系列的进展,将讨论更高级的主题,最后将演示一个真实的高级 awk 应用程序。
    2008年7月28日  
 
通过定制 Apache 获得最佳性能
本教程讲解如何通过优化 Linux 提高 Apache 的性能。
    2008年7月24日  
 
Notes8 for Linux 本地化版本的安装和使用
随着 Linux 桌面级应用的普及,IBM 推出了基于 Linux 平台的多语言本地化版本的 Notes,给客户带来更多的体验和应用,下面我们开始 Notes on Linux 之旅。
    2008年7月24日  
 
在 Linux 上进行自动备份
重要数据的丢失可能意味着致命的破坏。尽管如此,还是有无数专业人员忽视了对他们的数据的备份。虽然原因可能各不相同,但是,最常见的一个解释是,执行例行备份确实烦琐。由于机器擅长于完成普通而重复的任务,因此,自动化备份的过程是降低工作内在的枯燥性和人们与生俱来的拖延倾向的关键所在。
    2008年7月21日  
 
使用 Nginx 提升网站访问速度
本文主要介绍如何在 Linux 系统上安装高性能的 HTTP 服务器 —— Nginx、并在不改变原有网站结构的条件下用 Nginx 来提升网站的访问速度。
    2008年7月18日  
 
Linux SLUB 分配器详解
多年以来,Linux 内核使用一种称为 SLAB 的内核对象缓冲区分配器。但是,随着系统规模的不断增大,SLAB 逐渐暴露出自身的诸多不足。SLUB 是 Linux 内核 2.6.22 版本中引入的一种新型分配器,它具有设计简单、代码精简、额外内存占用率小、扩展性高,性能优秀、方便调试等特点。本文先介绍 SLAB 分配器的基本原理,然后分析其不足之处并详细介绍 SLUB 的设计思想,最后介绍 SLUB 接口 API 函数及对象分配/释放函数的具体实现。
    2008年7月16日  
 
从 Windows 向 Linux 迁移设备控制应用程序
通过认识 Microsoft Windows 和 Linux 操作系统设备控制的工作原理,本文将简化从 Microsoft Windows 向 Linux 迁移设备控制应用程序。本文分析二者的差别,并给出 C/C++ 示例。
    2008年7月14日  
 
闭包的概念、形式与应用
随着硬件性能的提升以及编译技术和虚拟机技术的改进,一些曾被性能问题所限制的动态语言开始受到关注,Python、Ruby 和 Lua 等语言都开始在应用中崭露头角。动态语言因其方便快捷的开发方式成为很多人喜爱的编程语言,伴随动态语言的流行,我们经常听到一个名词——闭包,很多人会问闭包是什么?闭包是用来做什么的?本文汇集了有关闭包的概念、应用及其在一些编程语言中的表现形式,以供参考。
    2008年7月10日  
 
Linux 日志文件系统剖析
在近代历史上,日志文件系统被认为十分奇特,主要是处于研究阶段。而如今,日志文件系统(ext3)已经成为 Linux 的缺省文件系统。本文向大家揭示了日志文件系统背后的一些思想,以及在电源故障或系统崩溃时,如何提供更好的完整性。此外本文还介绍了现行的几种日志文件系统和下一代日志文件系统。
    2008年7月7日  
 
Linux 2.6 中的文件锁
本文的目的是想帮助读者理清 Linux 2.6中文件锁的概念以及 Linux 2.6 都提供了何种数据结构以及关键的系统调用来实现文件锁,从而可以帮助读者更好地使用文件锁来解决多个进程读取同一个文件的互斥问题。本文主要描述了 Linux 中各类文件锁的概念,使用场景,内核中描述文件锁的数据结构以及与文件锁密切相关的系统调用等内容。
    2008年7月3日  
 
Cell 编程登堂入室
在普通的 PC 机上就可以模拟出 Cell 多核处理器的环境,进行程序开发和编译运行。本文主要介绍在 x86 机器上搭建 Cell 编程环境及其向量化编程的实现,最后介绍了如何做简单的性能测试。
    2008年6月27日  
 
用 Emacs Muse 来制作测试结果报告
Emacs Muse 是一个可以在 Emacs 中写 Wiki 文档的插件,通过 Emacs Muse,我们可以很容易地编写 Wiki 文档,并生成各种格式的文件。本文介绍了如何扩展使用 Emacs Muse —— 一个 Emacs 编辑器插件来生成精美的测试结果报告。
    2008年6月26日  
 
系统管理员工具包: 使用 SNMP 数据
许多设备内置了简单网络管理协议(Simple Network Management Protocol,SNMP),但是当您只想检查某个简单统计数据或者跟踪某个特定设备或问题时,能够读取和分析该信息的工具和软件通常太大和太复杂了。本文研究一些用于从设备中获取 SNMP 信息的简化方法,以及如何将该信息集成到网络数据映射的其他部分中。
    2008年6月23日  
 
将应用程序移植到 Linux for System z
基于 Linux for IBM System z 的服务器整合有很多优势,但移植现有应用程序需要一些专业知识。本文针对如何组织项目移植提供了一般性建议,包括关于大型机虚拟化、字节顺序以及专门针对 System z 的地址计算等一些的技术细节。本文还讨论了 System z 支持开发工具(编译器、链接器和调试器)的方式,也介绍了 IBM 的免费的 Migration Kit for Solaris OS to Linux。
    2008年6月23日  
 
通过附加的磁盘在 BladeCenter S 上安装和启动 Linux
IBM BladeCenter S 机箱是第一个集成了服务器和存储器的 IBM BladeCenter。本文将介绍如何在刀片服务器的附加磁盘上安装 SUSE Linux 10 以及如何从附加磁盘启动刀片服务器。本文还讨论了如何检查存储器和刀片服务器状态,如何将磁盘映射到刀片服务器,如何把 SAS 磁盘配置为启动介质,如何在附加磁盘上安装操作系统以及如何处理最常见的安装错误。
    2008年6月19日  
 
在 PyGTK 中管理部件几何结构
GTK+ 中有一些容器小部件,通过使用该工具箱的 API,可以创建用户定义的容器。在 PyGTK 中也公开了这个 API。在本文中,学习如何在 PyGTK 中创建一个“权重表(weighted-table)” 容器。本文的实现介绍了 GTK+ 几何结构管理的基本模型,并让您大致了解实现容器部件时应该考虑哪些事项。
    2008年6月17日  
 
tput 入门
UNIX 所拥有的最强大的功能之一是能够创建 shell 脚本,让用户的生活更轻松。这些脚本涉及的范围非常广泛,从简单的单行程序一直到包括数千行代码的程序。许多情况下,shell 脚本将发展为基于菜单的脚本,脚本编写者希望向用户显示除滚动文本之外的更多内容。有时候,shell 脚本编写者只希望向用户显示输出中的一行或两行,提醒用户重点关注警告消息。
    2008年6月12日  
 
Linux flash 文件系统剖析
您之前可能听说过 Journaling Flash File System(JFFS)和 Yet Another Flash File System(YAFFS),但是您知道使用底层 flash 设备的文件系统意味着什么吗?本文将向您介绍 Linux 的 flash 文件系统,并探索它们如何通过平均读写(wear leveling)处理底层的可消耗设备(flash 部件),并鉴别各种不同的 flash 文件系统以及它们的基本设计。
    2008年6月10日  
 
Linux 内核的排队自旋锁(FIFO Ticket Spinlock)
排队自旋锁(FIFO Ticket Spinlock)是 Linux 内核 2.6.25 版本中引入的一种新型自旋锁,它解决了传统自旋锁由于无序竞争导致的“公平性”问题。本文详细介绍了排队自旋锁的设计原理和具体实现,并与 Windows 操作系统采用的类似技术进行比较。最后讨论可能的扩展排队自旋锁的一些想法。
    2008年6月5日  
 
使用内存盘提高OLTP数据库的性能和可用性
使用 OLTP (在线联机事务处理) 的用户,高度关注数据库的并发能力和相应速度,同时他们也关注数据库的高可用性,但他们的数据库一般都比较小,完全能够全部放到内存中。本文介绍如何使用 Linux 内存盘 ( Ramdisk ) ,配置高性能、高可用性的 DB2 数据库服务器,从而提高企业自身的商业价值和核心竞争力。
    2008年6月5日  
 
安全增强 Linux (SELinux) 剖析
Linux 一直被认为是最安全的操作系统之一,但是通过引入安全增强 Linux(Security-Enhanced Linux,SELinux),National Security Agency (NSA) 将 Linux 的安全性提升到了新的高度。SELinux 通过对内核和用户空间进行修改,对现有的 GNU/Linux 操作系统进行了扩展,从而使其变得坚不可摧。如果您现在正在使用 2.6 版的内核,就会惊奇地发现您已经在使用 SELinux 了!本文将探究 SELinux 背后的思想及其实现方法。
    2008年6月2日  
 
迁移到 ext4
Ext4 是众多 Linux 文件系统中的最新版本,它将像以前的版本一样重要和流行。作为 Linux 系统管理员,您应该了解迁移到 ext4 的优缺点和基本步骤。本文将介绍何时应采用 ext4、如何在 ext4 中使用传统的文件系统维护工具以及如何充分利用该文件系统。
    2008年6月2日  
 
在 PlayStation 3 上进行 Linux 开发,第 3 部分: 采用小工具来瘦身 X11
索尼的 PlayStation 3(PS3)能运行 Linux,但是要运行良好,还需要做些调整。在本系列的第三篇文章中,Peter Seebach 介绍了如何为 X11 瘦身,使之能适合更小的内存预算。
    2008年5月29日  
 
Linux 技巧:让进程在后台可靠运行的几种方法
本文将向您介绍在不同的场景下,让进程在断开连接后依然保持运行的几种方法。
    2008年5月29日  
 
使用 Python 创建 UNIX 命令行工具
如果您在 IT 部门担任 UNIX 系统管理员、软件开发人员甚至是经理,掌握几项技能将使您与众不同。您对 OSI 模型是否有充分的了解?您对子网划分是否得心应手?您了解 UNXI 权限吗?让我为您的技能背景增添一个不起眼的命令行工具。在本文结束时,在 IT 部门担任任何职位的读者都应该至少能创建一个简单的命令行工具。
    2008年5月29日  
 
LPI 301 考试准备,主题 306:容量规划
在本教程中,Sean Walberg 帮助您准备 Linux Professional Institute Senior Level Linux Professional(LPIC-3)考试。这是共有 6 个教程的系列教程的最后一个,Sean 介绍如何监视系统资源、解决资源问题和分析系统容量。
    2008年5月26日  
 
用 Hadoop 进行分布式并行编程, 第 1 部分
Hadoop 是一个实现了 MapReduce 计算模型的开源分布式并行编程框架,借助于 Hadoop, 程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量数据的计算。本文将介绍 MapReduce 计算模型,分布式并行计算等基本概念,以及 Hadoop 的安装部署和基本运行方法。
    2008年5月22日  
 
用 Hadoop 进行分布式并行编程, 第 2 部分
Hadoop 是一个实现了 MapReduce 计算模型的开源分布式并行编程框架,借助于 Hadoop, 程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量数据的计算。在本文中,详细介绍了如何针对一个具体的并行计算任务,基于 Hadoop 编写程序,如何使用 IBM MapReduce Tools 在 Eclipse 环境中编译并运行 Hadoop 程序。
    2008年5月22日  
 
在 PlayStation 3 上进行 Linux 开发,第 2 部分: 内存操作
索尼的 PlayStation 3(PS3)能运行 Linux,但是要运行良好,需要做些调整。本篇文章是本系列的第二篇文章,在这篇文章中 Peter Seebach 研究了大量耗用内存的地方,以及如何找回内存。
    2008年5月19日  
 
实时 Linux 架构剖析
Linux 的速度或效率都非常不错,只是在一些情况下,这样的速度还不能满足需求。我们需要的是在特定的容差范围内确定性地满足调度期限的能力。本文将揭示各种实现实时 Linux 的可选方案以及它们如何实现实时性 - 从早期的模仿虚拟化解决方案的架构到如今标准 2.6 内核中可用的选项。
    2008年5月19日  
 
在 Linux 平台中调试 C/C++ 内存泄漏方法
由于 C 和 C++ 程序中完全由程序员自主申请和释放内存,稍不注意,就会在系统中导入内存错误。同时,内存错误往往非常严重,一般会带来诸如系统崩溃,内存耗尽这样严重的后果。本文将从静态分析和动态检测两个角度介绍在 Linux 环境进行内存泄漏检测的方法,并重点介绍静态分析工具 BEAM、动态监测工具 Valgrind 和 rational purify 的使用方法。相信通过本文的介绍,能给大家对处理其它产品或项目内存泄漏相关的问题时提供借鉴。
    2008年5月15日  
 
LPI 301 考试准备,主题 305:集成和迁移
在本教程中,Sean Walberg 帮助您准备 Linux Professional Institute Senior Level Linux Professional(LPIC-3)考试。这个系列共有六篇教程,本教程是第五篇,Sean 介绍 LDAP 与系统的登录和应用程序的集成。还详细描述了服务器与外部 Microsoft Active Directory 的集成过程。
    2008年5月12日  
 
TCP 选择性应答的性能权衡
选择性应答(SACK)是 TCP 的一项可选特性,可以提高某些网络中所有可用带宽的使用效率。虽然 SACK 可以提高吞吐量,但事实证明,对于 TCP 发送方来说,处理这种类型的应答严重占用 CPU。这个弱点在商业网点中可能会被一些恶意的同行利用。本文进行了一些实验性评测,展示这种问题在 Linux TCP 协议栈中的影响程度。大多数发行版在默认情况下都会启用 SACK 功能。
    2008年5月8日  
 
Linux 2.6 内核中的最新电源管理技术综述,第 1 部分
本系列文章将结合近年来不断在各种硬件上新增的节能技术,从 Linux 2.6 内核及整个 software stack 如何添加对这些创新的节能技术的支持这一角度,为读者介绍 Linux 操作系统近几年来在电源管理方面所取得的长足进步以及未来的发展方向。
    2008年5月8日  
 
远程监视主机会话
用户可以使用 3270 终端模拟器访问 z/OS 主机。在这篇文章中,将学习如何构建简单的 UNIX 或 Linux shell 脚本,利用该脚本通过第二个终端模拟器实时查看主机用户的一举一动。
    2008年5月6日  
 
LPI 301 考试准备,主题 304:使用指南
在本教程中,Sean Walberg 帮助您准备 Linux Professional Institute Senior Level Linux Professional(LPIC-3)考试。本系列包含 6 篇教程,本文是第 4 篇。在本教程中,Sean 将引导您搜索 LDAP 树和使用命令行工具。您还将学会如何设置 Microsoft Outlook,以查询 LDAP 树。
    2008年4月28日  
 
如何恢复 Linux 上删除的文件,第 7 部分
reiserfs 文件系统所采用的 B+ 树的动态变化特性为恢复删除文件增加了很多困难。本文将逐渐分析在 reiserfs 文件系统中删除文件前后磁盘数据的变化,从而探讨恢复删除文件的方法。
    2008年4月24日  
 
系统管理员工具包: 更改 UID 和 GID
在进行 UID 或 GID 更改时,了解 AIX 中的文件所有权发生什么变化非常重要。如果不理解更改 UID 或 GID 的结果,可能会对您的服务器和环境造成严重问题。
    2008年4月21日  
 
为刀片服务器准备自安装驱动
按照本文介绍的九个步骤为运行 SUSE Linux Enterprise Server 10 的 IBM BladeCenter HS20 刀片服务器构建可引导的自安装硬盘驱动(这些步骤在其他刀片服务器上也适用)。当系统第一次从这个驱动引导时,会自动开始在硬盘上安装 Linux,从而简化了预先加载操作系统的任务,也减轻了用户的工作负担。
    2008年4月17日  
 
Linux_Macintosh 平台下 Eclipse 环境中的 JNI 混合语言调试
在当今的应用程序开发尤其是大型程序开发中,混合语言的使用已经是相当普 遍了。在 Java 应用程序开发中,程序员可以很方便的使用 JNI(Java Native Interface) 来实现 C/C++ 和 Java 代码的相互调用。本文简要介绍了在 Linux/Macintosh 平台上针对 JNI 的混合语言调试环境的搭建以及调试方法,并通过一个调试实例来给读者提供一个比较直观的演示。
    2008年4月17日  
 
在 PlayStation 3 上进行 Linux 开发,第 1 部分: 不仅仅是玩具
索尼的 PlayStation 3(PS3)能运行 Linux,但是要运行得好,还需要做些调整。在本系列的第一篇文章中,Peter Seebach 介绍了 PS3 Linux 的功能和好处,解释了稍做调整就能解决的一些问题。
    2008年4月15日  
 
系统管理员工具包: 日志文件基础知识
在典型的 UNIX 或 Linux 计算机操作过程中会创建许多日志文件。其中一些日志文件包含有用的信息;还有一些可帮助您进行容量和资源规划。本文重点介绍不同日志文件中记录的基本信息、它们的位置以及如何使用该信息确定系统的运行情况。
    2008年4月15日  
 
如何恢复 Linux 上删除的文件,第 6 部分
reiserfs 对于小文件的存取速度非常高,这取决于它所采用的精美的设计:reiserfs 文件系统就是一棵动态的 B+ 树,小文件和大文件的尾部数据都可以通过保存到叶子节点中而加快存取速度。本文将探讨 reiserfs 的设计和实现内幕,并从中探讨恢复删除文件的可能性。
    2008年4月10日  
 
实现 Xen 和 DS4800 多路存储
随着 Xen 开源 hypervisor 被很多企业用于生产部署,可能需要为 Xen 环境提供从主机适配器到硬盘驱动器的全冗余存储。在本文中,学习如何使用 Red Hat Enterprise Linux 5.1 设置 Xen 并提供对 IBM System Storage DS4800 的多路存储访问。
    2008年4月7日  
 
基于 GNOME2 桌面的 GConf 配置系统的介绍
GConf 是在基于 GNOME2 的系统中用于应用程序属性配置和管理的工具,完成类似于 Windows 操作系统中注册表的功能。本文讨论了在 GNOME2 桌面中 GConf 配置管理系统的机制以及使用其相关 API 开发应用程序的方法。本文主要内容包括 GConf 工具的介绍,使用以及相关的开发实践。本文适用于 Linux 应用程序的开发人员。
    2008年4月3日  
 
LPI 301 考试准备,主题 303: 配置
在本教程中,Sean Walberg 帮助您准备 Linux Professional Institute Senior Level Linux Professional (LPIC-3) 考试。这个系列共有六篇教程,本教程是第三篇,Sean 介绍如何配置 Lightweight Directory Access Protocol (LDAP) 服务器,包括访问控制、安全性和性能。学完本教程后,您将掌握 LDAP 服务器配置。
    2008年3月31日  
 
为 C/C++ 项目构建您自己的内存管理器
代码的性能优化是一项非常重要的工作。经常可以看到,采用 C 或 C++ 编写的、功能正确的软件在执行时耗费大量的内存、时间、或者在最糟的情况下既耗内存又费时间。作为一名开发人员,可以使用 C/C++ 提供的功能强大的工具来改进处理时间,并且防止内存破坏,这些工具其中之一是控制如何在代码中分配或者释放内存。通过介绍如何针对特定的情况创建自己的内存管理器,本教程对内存管理的相关概念进行了揭秘。
    2008年3月31日  
 
如何恢复 Linux 上删除的文件,第 5 部分:ext4
为了支持更大的文件系统,ext4 对 ext3 的现有实现进行了一系列扩充,使用 48 位的块号来增大块号寻址范围,并采用 extent 的设计来简化对数据块的索引,这势必会影响到磁盘数据结构的变化,以及删除文件的恢复。本文将逐一介绍 ext4 在对大文件系统支持方面所采用的全新设计,并探讨 ext4 文件系统中文件的删除和恢复的相关技术。
    2008年3月31日  
 
针对 OLPC 膝上型电脑的桌面开发
XO 膝上型电脑(每个儿童一台膝上型电脑计划)是一个廉价的膝上型电脑项目,此项目旨在帮助教育全世界的儿童。这种膝上型电脑包含许多创新,比如新颖、廉价且耐用的硬件设计,以及使用 GNU/Linux 作为底层操作系统。XO 还包括一个使用 Python 编写的应用环境,该环境包含一个叫做 Sugar 的人机界面,每个人(包括儿童)都可以访问。本文摘录自 developerWorks 教程 “OLPC 膝上型电脑的应用程序开发”,其中介绍了 Sugar API 并展示了如何使用 Python 在 Sugar 中开发和调试图形活动。
    2008年3月24日  
 
Linux 技巧:重定向 stderr 和 stdout 输出到 gdb 窗口
本文介绍了一个实用 gdb 调试技巧。 它结合实际例子,一步一步示意如何重定向 stderr 和 stdout 到 gdb窗口,使得查看应用程序的输出信息更为方便,从而提高调试者的工作效率。
    2008年3月20日  
 
使用多实例化提高安全性
如果您关心保护全域可写入的(world-writeable)共享目录(比如 /tmp 或 /var/tmp)不被滥用,那么 Linux Pluggable Authentication Module (PAM) 可以帮助您。当用户登录您的系统时,pam_namespace 模块为他们创建独立的名称空间。这种独立由 Linux 操作系统强制执行,可以使用户免受多种类型的安全攻击。这篇针对 Linux 系统管理员的文章将展示使用 PAM 启用名称空间的步骤。
    2008年3月20日  
 
read 系统调用剖析
大部分程序员可能会有这样的疑问:当在程序中调用库函数 read 时,这个请求是经过哪些处理最终到达磁盘的呢,数据又是怎么被拷贝到用户缓存区的呢?本文介绍了从 read 系统调用发出到结束处理的全过程。该过程包括两个部分:用户空间的处理、核心空间的处理。用户空间处理部分是系统调用从用户态切到核心态的过程。核心空间处理部分则是 read 系统调用在 linux 内核中处理的整个过程。
    2008年3月13日  
 
SELinux 中基于角色的访问控制
基于角色的访问控制(Role-based access control,RBAC)是通用的安全模型,可以通过把角色分配给用户然后把权限分配给这些角色来简化管理。RBAC 在 Security-Enhanced Linux (SELinux) 中用作用户与底层类型增强(Type Enforcement,TE)模型之间的抽象层,用于提供细粒度的访问控制,但是并不是针对简化管理。了解如何将 SELinux 环境的三个部分(策略、内核和用户空间)结合使用以增强 RBAC 并把 Linux 用户绑定到 TE 策略中。
    2008年3月6日  
 
如何恢复 Linux 上删除的文件,第 4 部分
作为 ext2 文件系统的后继者,ext3 文件系统由于日志的存在,使其可用性大大增加。尽管 ext3 文件系统可以完全兼容 ext2 文件系统,但是由于关键的一点区别却使得在 ext3 上恢复删除文件变得异常困难。本文将逐渐探讨其中的原因,并给出了三种解决方案:正文匹配,元数据备份,以及修改 ext3 的实现。
    2008年3月6日  
 
探索 Ubuntu Mobile and Embedded
Ubuntu 是一种用于 GNU/Linux 操作系统的出色的服务器和桌面发行版,但是您是否知道它也非常适合手持设备和移动嵌入式设备?Ubuntu 的最新版本(Gutsy Gibbon)现在通过 Ubuntu Mobile and Embedded(UME)项目支持嵌入式和移动设备。通过本文了解 UME 项目和使用方法。
    2008年2月28日  
 
Bash 中的递归函数
作为一种解释性语言,尽管 bash 对编程提供了一定的支持,但是在某些方面却存在一些限制。本文将逐一探讨在 bash 中编写递归函数时需要注意的返回值、参数传递和性能等方面的问题,并给出可能的解决方法,最后对如何优化 shell 脚本性能提供了一个建议。
    2008年2月21日  
 
对 GPFS 集群进行基于 SNMP 的监视
在 3.2 版本中,IBM General Parallel File System(GPFS)在 Linux 上提供了 Simple Network Management Protocol(SNMP)服务。管理员可以使用这些服务收集关于 GPFS 集群状态的 SNMP 数据,从而快速识别磁盘故障等问题。系统用一个收集器节点收集陷阱信息,管理员可以在另一个管理节点上远程监视和分析这些信息。本文介绍一种在 GPFS 集群中进行基本 SNMP 检验的方法。
    2008年2月18日  
 
使用完全公平调度程序(CFS)进行多任务处理
Linux 2.6.23 内核附带了一个模块化调度程序内核和一个被实现为调度模块的完全公平调度程序(Completely Fair Scheduler,CFS)。本文将介绍 CFS 的主要特性和工作原理,并提前预览 2.6.24 版本中的预期变动。
    2008年2月4日  
 
Awk 中变量作用域的问题
本文从两个错误的例程开始,提出 Awk 中全局变量污染的现象,并分析其发生的原因。接下来,针对 Awk 变量作用域的特点,提出两种避免全局变量污染的常用方法,引出 Awk 中定义局部变量的方法,并提出修改过后的代码。然后,通过 Awk 的变量调试功能,提出修改过后代码存在的不足,并引出编写通用函数应注意的地方。最后,通过简单说明 Awk 中包含头文件的方法,倡导大家更科学,更有效的使用 Awk 这一文本处理利器。文章的结尾提供了一些常用的 Awk 参考文档,供大家学习参考。
    2008年1月31日  
 
Linux 焦点模型分析
本文以 SUSE 10 为例,通过实例帮助读者理解 Linux 环境下焦点系统与鼠标、键盘输入的关系,并讨论其与 Windows 环境下焦点系统的区别。另外,本文还将介绍 X server 、 window manager 以及应用程序之间如何相互配合以管理焦点。最后本文将简要介绍 GTK 的焦点模型。 本文面向 Linux 应用程序开发人员,以及 GUI 应用程序移植人员。帮助读者深入理解 Linux 系统的焦点系统与管理方式。
    2008年1月21日  
 
高性能服务器网络可伸缩性
高性能可伸缩服务器的大量使用增加了网络和系统性能的复杂性。在本文中,学习如何对多节点高性能 Linux 系统进行优化(使用系统板载千兆以太网适配器,有 1 到 4 个节点)。了解可能导致问题的网络可伸缩性场景以及避免问题的方法。
    2008年1月20日  
 
巧用 GRUB 实现系统环境的远程恢复
本文介绍了如何通过 Linux 的 GRUB 和 Ghost 实现 Linux 和 windows 系统的远程恢复。通过本文,您会了解到 Linux 和 Windows 的启动方式,他们的不同点和相同点,如何实现一个简单的自启动程序以及如何实现功能强大的远程恢复。
    2008年1月17日  
 
Linux 的魅力: 自动上传 Nokia N800 照片
Linux 的魅力的 3 期文章用实际例子演示了如何着手构建 Nokia N800 应用程序:使用摄像机功能创建 Webcam。本文是第 3 期,也是最后一期。本文将编写一个自动照片上传例程,用于上传所拍照片。
    2008年1月14日  
 
如何恢复 Linux 上删除的文件,第 3 部分
恢复系统中删除的文件是一个非常繁琐的过程,而 e2undel 这个工具可以用来方便地恢复文件系统中已删除的文件。本文将首先讨论 e2undel 的工作原理和用法,并对之进行一些改进。然后讨论了文件系统故障、文件系统重建、磁盘物理损坏等情况下应该如何恢复数据。
    2008年1月10日  
 
Linux 的魅力: 访问 Nokia N800 摄像机
Linux 的魅力的 3 期文章用实际例子演示了如何构建应用程序:使用摄像机功能创建 Webcam。在这期文章中,讨论如何使用 gstreamer 开始构建摄像机应用程序,以访问 Nokia N800 设备的 Webcam(需要做的工作也许比您想象的更少,尤其是在我们借鉴现有的应用程序之后)。
    2008年1月7日  
 
针对 OLPC 膝上型电脑的应用程序开发
XO 膝上型电脑(由 One-Laptop-Per-Child 组织所发起的)是一个廉价的膝上型电脑项目,旨在帮助教育全世界的儿童。XO 膝上型电脑包含了多项创新,例如新颖、廉价且耐用的硬件设计以及使用 GNU/Linux 作为底层操作系统。XO 也包含一个用 Python 编写的应用程序环境,该环境含有一个叫做 Sugar 的任何人(包括儿童)都能用的人机界面。本文探讨了 Sugar API 并学习如何在 Sugar 中使用 Python 语言开发和调试图形活动。
    2008年1月3日  
 
LPI 301 考试准备,主题 302: 安装与开发
在本教程中,Sean Walberg 帮助您准备 Linux Professional Institute Senior Level Linux Professional(LPIC-3)考试。在这个共 6 个教程的系列的第二篇中,Sean 介绍 Lightweight Directory Access Protocol(LDAP)服务器的安装和配置,并编写一些访问数据的 Perl 脚本。学完本教程之后,您将掌握 LDAP 服务器的安装、配置和编程。
    2007年12月27日  
 
如何恢复 Linux 上删除的文件,第 2 部分
除了普通文件之外,UNIX/Linux 中还存在一些特殊的文件,包括目录、字符设备、块设备、命名管道、socket 以及链接;另外还存在一些带有文件洞的文件,这些特殊文件的恢复是和其存储机制紧密联系在一起的,本文将从这些特殊文件的存储原理和机制入手,逐步介绍这些特殊文件的恢复方法。
    2007年12月24日  
 
uClinux 在 S3C4510B 嵌入式开发板上的移植和开发详解
本文对 uClinux 在 S3C4510B 嵌入式开发板上的移植、网络服务设置、驱动以及用户程序开发等问题进行了较为详细的介绍。本文中所总结的经验可供在上述嵌入式环境下工作的开发人员借鉴,也能为其他嵌入式平台的开发提供一定的启发。
    2007年12月20日  
 
Linux 的魅力: 开发 Nokia N800
围绕 Nokia N800 电话/Internet tablet/Webcam 核心并详细探查基于 scratchbox 的构建环境。
    2007年12月17日  
 
如何恢复 Linux 上删除的文件,第 1 部分
要想恢复误删除的文件,必须清楚数据在磁盘上究竟是如何存储的,以及如何定位并恢复数据。本文从数据恢复的角度,着重介绍了 ext2 文件系统中使用的一些基本概念和重要数据结构,并通过几个实例介绍了如何手工恢复已经删除的文件。最后针对 ext2 现有实现存在的大文件无法正常恢复的问题,通过修改内核中的实现,给出了一种解决方案。
    2007年12月13日  
 
面向 OpenMoko Linux 手机的软件开发
OpenMoko 环境提供了一个完全免费的开发环境,可以在受支持的手机硬件上运行应用程序和系统代码,消除对私有代码的依赖性。本教程介绍了 OpenEmbedded 构建环境,使用它为 OpenMoko 手机(如 Neo 1973)创建文件系统映像。
    2007年12月10日  
 
了解 TCP 系统调用序列
TCP/IP 编程接口提供各种系统调用,以帮助您有效地使用该协议。TCP 堆栈代码数量繁多,深入到内核级别的完整调用序列可以帮助您了解 TCP 堆栈。本文是关于 TCP 堆栈级函数调用的一站式详细信息,并描述在进行应用程序级的系统调用时在内核级的函数调用序列。在本文中,将回顾和学习 TCP 调用序列,其中包括对 FreeBSD 的引用,以及在用户级进行系统调用后在 TCP 堆栈中发生的重要函数调用。
    2007年12月10日  
 
Linux 调度器发展简述
刚刚发布的 2.6.23 内核中包含了一个重要的变化,用CFS替代了以前的调度器。CFS 被合并到 mainline 之前,关于内核调度器还有一个重要的 patch:RSDL。最终 2.6.23 决定将 CFS 合并到 mainline 而放弃了 RSDL。为什么要引入新的调度器,CFS 和 RSDL 有什么联系和区别?本文试图对内核调度算法的发展历史做一个简要介绍,希望能对上述问题的理解有所帮助。
    2007年12月6日  
 
Linux SCSI 子系统剖析
Small Computer Systems Interface (SCSI) 是一组标准集,它定义了与大量设备(主要是与存储相关的设备)通信所需的接口和协议。 Linux 提供了一种 SCSI 子系统,用于与这些设备通信。Linux 是分层架构的一个很好的例子,它将高层的驱动器(比如磁盘驱动器或光驱)连接到物理接口,比如 Fibre Channel 或 Serial Attached SCSI(SAS)。本文向您介绍了 Linux SCSI 子系统,并且讨论了这些子系统将来的发展方向。
    2007年12月6日  
 
Linux 文件系统剖析
在文件系统方面,Linux 可以算得上操作系统中的 “瑞士军刀”。Linux 支持许多种文件系统,从日志型文件系统到集群文件系统和加密文件系统。对于使用标准的和比较奇特的文件系统以及开发文件系统来说,Linux 是极好的平台。本文讨论 Linux 内核中的虚拟文件系统(VFS,有时候称为虚拟文件系统交换器),然后介绍将文件系统连接在一起的主要结构。
    2007年12月3日  
 
developerWorks 图书频道: C++ 应用程序性能优化,第 6 章:内存池
本章首先简单介绍自定义内存池性能优化的原理,然后列举软件开发中常用的内存池的不同类型,并给出具体实现的实例。
    2007年11月29日  
 
developerWorks 图书频道: C++ 应用程序性能优化,第 2 章:C++ 语言特性的性能分析
本章从 C++ 的一些语言特性来分析影响性能的方面。
    2007年11月29日  
 
Linux 技巧:谈 Linux GNU 实用工具兼容性
GNU utility 的默认行为和 POSIX 标准有不兼容的地方。Linux 系统的不同版本采用了不同版本的 POSIX 标准,而 POSIX 不同版本标准之间有不兼容的地方。这两个不兼容问题对于产品在 Linux 各个平台之间的可移植性影响很大。
    2007年11月29日  
 
LPI 301 考试准备,主题 301: 概念、体系结构和设计
在本教程中,Sean Walberg 帮助您准备 Linux Professional Institute Senior Level Linux Professional(LPIC-3)考试。在这个共 6 个教程的系列的第一篇中,Sean 介绍 Lightweight Directory Access Protocol(LDAP)的概念、体系结构和设计。学完本教程之后,您将掌握 LDAP 的概念和体系结构、目录设计和模式。
    2007年11月26日  
 
使用GDB进行代码覆盖率测试
虽然一般大家都把 gdb 作为一个调试工具,但是我们发现,利用 gdb 本身强大的符号处理和进程控制功能,还可以用 gdb 做代码覆盖率测试。
    2007年11月22日  
 
Python 中的元类编程,第 3 部分
编程时太多的聪明反而会使设计更复杂、代码更脆弱、学习曲线更陡峭,最糟的是,调试也更加困难。Michele 和 David 觉得,这在一定程度上归因于对他们早期的 Python 元类文章的接受而引起的聪明过度。在本文中,他们试图帮助程序员避免小聪明,以修正这些错误。
    2007年11月22日  
 
Linux 同步方法剖析
在学习 Linux 的过程中,您也许接触过并发(concurrency)、临界段(critical section)和锁定,但是如何在内核中使用这些概念呢?本文讨论了 2.6 版内核中可用的锁定机制,包括原子运算符(atomic operator)、自旋锁(spinlock)、读/写锁(reader/writer lock)和内核信号量(kernel semaphore)。本文还探讨了每种机制最适合应用到哪些地方,以构建安全高效的内核代码。
    2007年11月19日  
 
使用 developerWorks Word 和 Writer 模板写作
欢迎作者们!本篇文章将向您展示如何使用 Microsoft Word 或 OpenOffice.org Writer 为 developerWorks 中国网站创作技术文章和教程。所需步骤很简单。首先下载针对 Word 或 Writer 的模板,然后填写模板中的字段,最后根据模板中的指导完成文章或教程。本文还包括一些排版以及将其提交给 developerWorks 工作人员的小技巧。
    2007年11月15日  
 
在 Linux 服务器上使用 NIMOL 安装 AIX
本文介绍了使用 NIMOL 服务器安装 AIX 的详细步骤和常见问题的解决办法。此方法适用于安装 AIX™ 5L 的各种版本。
    2007年11月15日  
 
POSIX 文件能力:分配根用户的能力
Linux 多年来都使用能力(capability)的概念,但是最近实现了 POSIX 文件能力。POSIX 文件能力将根用户的权力划分成更小的特权,比如读取文件或跟踪另一个用户拥有的进程。通过为文件分配能力,可以让非特权用户能够用这些指定的特权执行文件。在本文中,了解程序如何使用能力,以及如何改变系统 setuid root 二进制代码来使用文件能力。
    2007年11月12日  
 
Linux 中软件 RAID 使用常见问题解决
在文章“Linux 中软件 RAID 的使用”中我们讲述了 Linux 系统中软 RAID 的基本概念和如何使用 mdadm 程序来管理软 RAID 设备,通过对 mdadm 命令的主要参数来介绍软 RAID 设备的创建,删除,停止和扩展等操作,以及其元数据和位图 bitmap 数据的管理方法。在本文中我们讨论使用软 RAID 设备常见的问题以及解决的方法。
    2007年11月8日  
 
Linux 中软件 RAID 的使用
在以数据为中心的信息时代,如何妥善有效地保护数据是存储系统的核心问题之一。人们可以忍受计算机宕机,所有应用程序重新启动或者硬件损坏,但是他们要求信息永远不会丢失。冗余磁盘阵列(Redundant Array of Independent Disks )技术是各种企业信息系统和个人广泛使用的解决方案,一般的中高档服务器多使用硬件RAID控制器,但是由于硬件RAID控制器的价格昂贵,导致系统成本大大增加。而随着处理器的性能快速发展,使得软件RAID的解决方法得到人们的重视。这里我们主要介绍在Linux系统中软件RAID的配置和使用方法,它既降低了系统的总投资,也能满足系统应用的需要。
    2007年11月8日  
 
Linux 汇编器:对比 GAS 和 NASM
本文解释两种最流行的 Linux 汇编器 —— GNU Assembler(GAS)和 Netwide Assembler(NASM) —— 之间一些比较重要的语法差异和语义差异,包括基本语法、变量和内存访问、宏处理、函数和外部例程、堆栈处理以及重复执行代码块的技术方面的差异。
    2007年11月5日  
 
IBM Installation Toolkit:在 POWER 上加载 Linux
IBM Installation Toolkit for Linux on POWER 简化了虚拟化和非虚拟化 Power 机器上的 Linux 安装,为您提供了一张可引导的急救 DVD,还提供了充分利用 Power 平台所必需的软件。了解如何使用这个工具包在 IBM System p 和 System i5 机器上安装 Red Hat Enterprise Linux 和 SUSE Linux Enterprise Server。
    2007年11月1日  
 
使用 watchdog 构建高可用性的 Linux 系统及应用
本文首先介绍 Linux 内核对硬件、软件 watchdog 的支持;然后通过一个开源项目watchdog daemon介绍如何在一个系统监控应用中加入 watchdog 的使用以提高系统的可用性,以及如何在一个 Linux 服务应用中加入watchdog 模块以提高应用的可用性。
    2007年10月29日  
 
Ext3 和 ext4 文件系统在线调整大小内幕
在 Linux 平台下很多用户都在使用 ext3 文件系统,主要原因是其可靠性,健壮性和兼容性。在 Linux 2.6 内核中已经包括了适合在服务器环境中使用的很多特性,譬如目录索引,块预留,在线调整大小。为支持更大容量的文件系统,其下一个版本 ext4 也正处于开发中。本文主要介绍当前 ext3 和 ext4 文件系统中在线调整大小的工作机制,以及如何使用 meta block group 来扩展其大小。
    2007年10月29日  
 
使用 QEMU 进行系统仿真
QEMU 是一个面向完整 PC 系统的开源仿真器。除了仿真处理器外,QEMU 还允许仿真所有必要的子系统,如连网硬件和视频硬件。它还允许实现高级概念上的仿真(如对称多处理系统(多达 255 个 CPU)和其他处理器架构(如 ARM 和 PowerPC)。本文将研究 QEMU 及其架构,并展示了如何在 Linux 主机上仿真来宾操作系统。
    2007年10月22日  
 
developerWorks 图书频道: GUI 应用程序移植,第 4 章:窗口子系统
窗口子系统是整个图形用户界面系统的核心--用户所有的交互操作无一不是围绕窗口进行的。Windows 和 Linux 操作系统都提供了各自的窗口系统,虽然它们具有一些类似的概念和特性,但从系统架构和实现方式上差别还是很大的,这种差别给在 Linux 上模拟 Windows 窗口系统的特性和行为带来了一定的困难。本章首先对 Windows 和 Linux 的窗口系统做比较,然后阐述模拟层的窗口类、窗口和窗口句柄、窗口过程、窗口绘图等是如何实现的。
    2007年10月18日  
 
developerWorks 图书频道: GUI 应用程序移植,第 1 章:移植架构
API 模拟的移植方法,是为现有大量Windows程序提供一个统一的移植到Linux平台的方案。其核心是,设计和开发人员不需要深入到每一段需要移植的程序源码内部,而在Linux上提供一层Windows程序运行所需要API的实现。这样,从理论上讲,已有的Windows应用程序GUI逻辑接口不加任何修改,就能和这一模拟层提供的动态库一起编译链接,生成Linux格式的可执行文件,从而完成移植。
    2007年10月18日  
 
应用挂载名称空间
如果能够让用户自由地创建他们的文件系统,而不受系统管理员指定的结构的限制,那么会怎么样?用户可以导出自己的文件系统树的一部分,并将其他用户导出的文件系统树导入自己的树中。本文向 Linux 系统管理员介绍用挂载传播实现这种设置的详细步骤。
    2007年10月15日  
 
Domino V8 在 UNIX/Linux 平台上的安装及其常见问题
Domino V8 在 UNIX/Linux 平台上提供了新的安装程序,安装程序采用了 ISMP(Install Shield Multi-Platform)技术,这样用户不论是在 Windows 平台还是 UNIX/Linux 平台都会得到一致的安装体验。本文详细介绍了 Domino V8 在 UNIX/Linux 平台上的安装过程,包含四种安装模式:图形模式安装、控制台模式安装、静默安装和远程安装。文章着重介绍了 Domino V8 中出现的一些新的安装特性,并讨论了在安装过程中可能出现的各种问题。涉及的系统平台包含 AIX on PowerPC; Linux on x86 和 Sun Solaris on UltraSPARC。其他平台例如 Linux on PowerPC 和 iSeries 等不在本文讨论之中。
    2007年10月15日  
 
逻辑卷管理
卷管理在 -ix 环境(UNIX、AIX 等等)中并不是新特性。逻辑卷管理(logical volume management,LVM)在 Linux 内核 2.4v1 和 2.6.9v2 中就已经出现了。本文讨论 LVM2 最有用的特性(LVM2 是一个相当新的用户空间工具集,它提供逻辑卷管理功能),并提供几种简化系统管理任务的方法。
    2007年10月11日  
 
可爱的 Python: Python 之优雅与瑕疵,第 2 部分
在这篇分两部分的系列文章中,David 讨论了添加到最近几个 Python 版本中的一些不那么引人注目的特性和不恰当特性,目的是向业余 Python 编程人员揭示 Python 优点的同时使他们能够避免错误。本期文章将讨论的内容包括属性和方法、描述符和特性。
    2007年10月8日  
 
系统管理工具包: 使用 SSH 进行分布式管理
使用安全 Shell (SSH) 在远程 UNIX(R) 系统中运行命令,并使用一些简单的脚本构成一个系统,该系统允许您在一台计算机中同时管理许多系统,而无需直接登录到计算机本身。本文还介绍了分布式管理系统的基础知识,以及使用该技术的某些脚本和解决方案。
    2007年9月27日  
 
为 gdb 增加书签功能
使用 gdb 调试程序主要依赖断点和单步执行,当当错误代码跳过后 gdb 无法回退。书签功能使得 gdb 能够支持回退调试。程序员一旦在程序中设置了书签,就可以在后续调试过程中随时回退到书签点继续调试。
    2007年9月27日  
 
对话 UNIX,第 12 部分: 自己动手完成项目
如果您的 UNIX(R) 系统中缺少某种所需的工具,那么您也许可以在可联机获取的各种各样的软件中找到适当的解决方案。这个月,让我们来学习如何从源代码构建软件。
    2007年9月24日  
 
用 cairo 实现跨平台图形
cairo 的目标是以跨平台的方式在打印机和屏幕上产生相同的输出,它正在成为 Linux 图形领域的重要软件。GNOME、GTK+、Pango 等许多软件已经使用了它提供的 2D 功能。
    2007年9月24日  
 
Hacking initrd.img - 添加网卡驱动,网络安装 Linux
本文通过将网卡驱动加入到 initrd.img 中,使 Linux 内核在启动的过程中能正确识别并加载网卡驱动,从而使网络安装得以进行。
    2007年9月20日  
 
使用简单的 5 个步骤设置 Web 服务器集群
使用 Linux Virtual Server 和 Heartbeat v2,分 5 个步骤跨越多个物理或虚拟 Linux 服务器轻松构建高度可用的 Apache Web 服务器集群。
    2007年9月17日  
 
使用 gperf 实现高效的 C/C++ 命令行处理
GNU 的 gperf 工具是一种 “完美的” 散列函数,可以为用户提供的一组特定字符串生成散列表、散列函数和查找函数的 C/C++ 代码。通过本文学习如何使用 gperf 实现 C/C++ 代码中高效的命令行处理。
    2007年9月10日  
 
Linux 技巧: 控制预定作业的持续时间
假设您需要在深夜里运行 30 分钟某些 trace 程序以调试一个棘手的问题,或者您希望将 Linux 系统当作闹钟使唤。本文介绍的技巧将帮助您在运行一段时间(或满足其他条件)后停止执行某些作业,例如使用 cron 和 at 功能启动的作业。
    2007年9月3日  
 
Linux 下的一个全新的性能测量和调式诊断工具 Systemtap, 第 3 部分: Systemtap
本系列文章详细地介绍了一个Linux下的全新的调式、诊断和性能测量工具Systemtap和它所依赖的基础kprobe以及促使开发该工具的先驱DTrace并给出实际使用例子使读者更进一步了解和认识这些工具。 本文是该系列文章之三,它讲解了Systemtap的原理,Systemtap与DTrace比较,以及安装要求和安装步骤,最后通过一个例子向读者展示Systemtap的工作机理。本系列文章之一讲解了kprobe的原理、编程接口、局限性和使用注意事项并给出实际使用示例帮助读者理解和认识kprobe。本系列文章之二讲解了DTrace的原理。
    2007年8月31日  
 
Linux 下的一个全新的性能测量和调式诊断工具 Systemtap,第 1 部分: kprobe
本系列文章详细地介绍了一个Linux下的全新的调式、诊断和性能测量工具Systemtap和它所依赖的基础kprobe以及促使开发该工具的先驱DTrace并给出实际使用例子使读者更进一步了解和认识这些工具。 本文是该系列文章之一,它讲解了kprobe的原理、编程接口、局限性和使用注意事项并给出实际使用示例帮助读者理解和认识kprobe。本系列文章之二讲解了DTrace以及Systemtap与DTrace比较。本系列文章之三讲解了Systemtap的原理,并通过一个例子向读者展示Systemtap的工作机理。
    2007年8月31日  
 
Linux 下的一个全新的性能测量和调式诊断工具 Systemtap, 第 2 部分: DTrace
本系列文章详细地介绍了一个 Linux 下的全新的调式、诊断和性能测量工具 Systemtap 和它所依赖的基础 kprobe 以及促使开发该工具的先驱 DTrace 并给出实际使用例子使读者更进一步了解和认识这些工具。 本文是该系列文章之二,它详细地讲解了 DTrace 的原理。本系列文章之一讲解了 kprobe 的原理、编程接口、局限性和使用注意事项并给出实际使用示例帮助读者理解和认识 kprobe。本系列文章之三讲解了 Systemtap 的原理,以及 Systemtap 与 DTrace 比较,并通过一个例子向读者展示 Systemtap 的工作机理。
    2007年8月31日  
 
Linux 技巧: 用 cron 和 at 调度作业
系统管理员需要在系统负载低的午夜运行作业,或者需要每天或每周运行作业,同时又不愿意牺牲睡眠时间或假期。调度任务的其他原因包括自动执行日常任务或者确保每次都以相同的方式处理任务。本文帮助您使用 cron 和 at 功能调度作业定期运行或在指定的时间运行一次。
    2007年8月27日  
 
利用隧道感受IPV6
本文简单介绍了IPV6的相关知识,描述了如何通过Hurricane Electric提供的免费IPV6隧道,连接到IPV6网络的方法。
    2007年8月23日  
 
从文件 I/O 看 Linux 的虚拟文件系统
Linux 允许众多不同的文件系统共存,并支持跨文件系统的文件操作,这是因为有虚拟文件系统的存在。虚拟文件系统,即VFS(Virtual File System)是 Linux 内核中的一个软件抽象层。它通过一些数据结构及其方法向实际的文件系统如 ext2,vfat 提供接口机制。本文在简要介绍 VFS 的相关数据结构后,以文件 I/O 为切入点深入 Linux 内核源代码,追踪了 sys_open 和 sys_read 两个系统调用的代码结构,并在追踪的过程中理清了跨文件系统的文件操作的基本原理和“一切皆是文件”的口号得以实现的根本。
    2007年8月23日  
 
工业级的 Linux 锁定,第 2 部分:只执行签名的二进制代码
本教程是含两部分的系列教程的第二部分,这个系列介绍了为何要锁定 Linux机器来理顺相关的支持和管理过程,本教程讲解如何对 Linux 内核进行配置,使其只执行签名的二进制代码。
    2007年8月20日  
 
嵌入式 Linux 产品的 safe mode 设计与实现
目前的各种嵌入式产品已经丰富多彩,它们正改变着我们的生活方式。随着嵌入式产品功能的增加,如何让用户对已购买的产品的升级能安全地、顺利地完成,避免升级过程中出现的意外掉电所引起的产品故障,这样的问题要求嵌入产品设计开发者在设计时就将产品的 safe mode 安全模式考虑进去。 这里我们将以一个嵌入式Linux 网络播放器为例,来说明 safe mode 安全模式的设计与实现。通过本文,我们可以了解到针对一个实际的嵌入式系统,设计中需要注意的技术要点和实现细节。
    2007年8月20日  
 
发行版丛林探险
新接触 Linux 的用户通常会对有如此众多的发行版可以选择而产生困扰。好消息是我们可以安全地忽略其中的大多数。本文可以帮助您在众多发行版中作出选择,以开始 Linux 的探索,并且能够帮助您理解为什么要选择这种发行版。
    2007年8月13日  
 
LPI 102 考试准备,主题 111:管理任务
在这个教程中,Ian Shields 将继续帮助您准备参加 Linux Professional Institute 的初级管理(LPIC-1)考试 102。这是 9 篇系列教程中的第 6 篇。在本教程中,Ian 将向您介绍管理任务。在学完本教程之后,您将掌握如何管理用户和组、设置用户配置文件和环境、使用日志文件、调度作业、备份数据和维护系统时间。
    2007年8月9日  
 
在 Linux on POWER 上利用透明大内存页
通过本文,了解更多有关 libhugetlbfs 库以及如何将这些库与 GNU Compiler Collection (GCC) 或 IBM XL C/C++ 及 XL Fortran compilers for Linux(R) 结合使用的信息。libhugetlbfs 是一个开源社区项目,可为客户应用程序提供到系统大内存页的透明访问。SUSE Linux Enterprise Server 10 (SLES 10) 和 Red Hat Enterprise Server Linux 5 (RHEL 5) 现均支持 libhugetlbfs。尽管大量支持 Linux 大内存页的硬件平台也都支持 libhugetlbfs,但本文只侧重于介绍基于 IBM POWER 处理器的系统上的 16MB 大内存页支持。
    2007年8月9日  
 
在 POWER5 上配置 SUSE Linux 实现性能最大化
IBM POWER5(TM) 和 POWER5+(TM) 系统提供了非常优秀的虚拟化能力。通过阅读本文,您将理解影响运行 SUSE Linux Enterprise Server (SLES) 10 的 IBM POWER5 系统虚拟化性能的因素,并学习如何使用一些可以帮助诊断和解决性能问题的工具。您还将看到几个如何测试和改进性能的例子。
    2007年8月6日  
 
linux 技巧:使用 screen 管理你的远程会话
你是不是经常需要远程登录到Linux服务器?你是不是经常为一些长时间运行的任务头疼?还在用 nohup 吗?那么来看看 screen 吧,它会给你一个惊喜!
    2007年7月31日  
 
Linux 技巧: Bash 参数和参数扩展
您是否有时想知道如何对脚本使用参数,以及如何将参数传递给内部函数或其他脚本?是否需要对参数或选项做一些简单的有效性测试?或者对参数字符串执行一些简单的析取和替换操作?本文将向您介绍参数的用法和 bash shell 中的各种参数扩展。
    2007年7月30日  
 
LAMP 系统性能调优,第 3 部分: MySQL 服务器调优
如今,开发人员不断地开发和部署使用 LAMP(Linux、Apache、MySQL 和 PHP/Perl)架构的应用程序。但是,服务器管理员常常对应用程序本身没有什么控制能力,因为应用程序是别人编写的。这份共三部分的系列文章将讨论许多服务器配置问题,这些配置会影响应用程序的性能。本文是本系列文章的第三部分,也是最后一部分,将重点讨论为实现最高效率而对数据库层进行的调优。
    2007年7月30日  
 
使用 GDB 调试多进程程序
GDB 是 linux 系统上常用的调试工具,本文介绍了使用 GDB 调试多进程程序的几种方法,并对各种方法进行比较。
    2007年7月30日  
 
UNIX 新手指南,第4部分: 一些很好的 Shell 诀窍
当编写 Shell 程序时,您通常会遇到一些特殊的情况,希望采用自动方式处理。本教程包括一些关于此类情况的 Bourne Shell 脚本示例。这些情况包括字符串的进制转换(十进制到十六进制、十六进制到十进制、十进制到八进制,等等)、在管道循环中读取键盘、Subshell 执行、内联输入、为目录中的每个文件执行一次命令,以及使用多种方法构造连续循环。本系列文章的第 4 部分总结了一批执行有用功能的 Shell 单命令行程序。
    2007年7月27日  
 
Shell脚本调试技术
本文全面系统地介绍了shell脚本调试技术,包括使用echo, tee, trap等命令输出关键信息,跟踪变量的值,在脚本中植入调试钩子,使用“-n”选项进行shell脚本的语法检查, 使用“-x”选项实现shell脚本逐条语句的跟踪,巧妙地利用shell的内置变量增强“-x”选项的输出信息等。
    2007年7月26日  
 
PS3 fab-to-lab,第 1 部分: 从 Sony PLAYSTATION 3 构建 Linux 实验设备
如何将 Cell Broadband Engine(Cell/B.E.)处理器从一个现成的 Sony PLAYSTATION 3(PS3)上取下来,用它来构造一个基于 Linux 的实验设备呢(也就是,将现有的产品 Cell/B.E. 还原成实验设备)?在本系列文章中,Lewin Edwards 将向您展示如何从游戏控制台转到音频带宽频谱分析器和函数生成器。首先,他将介绍本项目的设计内容,然后在您开始着手在 Cell/B.E. 处理器上生成并分析信号时详细介绍用户接口的实现。
    2007年7月26日  
 
轻量级 Web 服务器
最近几年,市场上出现了很多有趣的 Web 服务器实现,包括 lighthttpd、litespeed 和 mongrel 等。这些 Web 服务器都宣称结合了性能、易管理性、可移植性、安全性和其他相关价值。下面的工程研究将调查轻量级 Web 服务器,以帮助您选择最可能满足下一个项目的技术需求的 Web 服务器。
    2007年7月23日  
 
安装大型 Linux 集群,第 4 部分: 节点安装和 GPFS 集群配置
从多个独立的硬件和软件,包括 System x 和 IBM TotalStorage,创建一个可运行的 Linux 集群。第 4 部分提供了设置存储后端所需的操作指导的后半部分内容,包括在每个节点上安装 GPFS(General Parallel File System)代码,以及为存储节点配置 Qlogic 适配器。最后,本文将带领您遍历创建 GPFS 集群的步骤。
    2007年7月23日  
 
工业级的 Linux 锁定,第 1 部分:删除 shell
为技术和非技术用户维护大量已安装好的 Linux 机器对管理员来说是件头痛的事情。技术用户喜欢利用 Linux 极端的可配置特性将一切都更改成他们希望的那样,而非技术用户则会在其自己的文件系统内盲目运行。本教程是含两部分的系列教程的第 1 部分,介绍了为何要锁定这些机器来理顺相关的支持和管理过程以及如何进行锁定。在本教程中,您将学习如何从基础安装系统中删除解释器。
    2007年7月19日  
 
使用源代码将 Glibc 升级到 2.6
本文介绍了一种使用源代码的方式升级系统标准动态库到 Glibc2.6 的方法。该方法是安全的,即使遇到升级失败,也能把系统恢复为原来的状态。系统环境不同,源代码的编译和安装方法会有很大的差异,因此本文也只能针对一种特定的平台(Mandriva Linux release 2006.0)的 Glibc 进行升级。撰写本文的目的,是为了给出一个升级 Glibc 的例子,读者可以参考本文介绍的方法升级 Glibc,但是一定要根据系统的实际情况作相应的调整。
    2007年7月19日  
 
Linux 网络栈剖析
Linux 操作系统的最大特性之一就是它的网络栈。它最初源于 BSD 的网络栈,具有一套非常干净的接口,组织得非常好。其接口范围从协议无关层(例如通用 socket 层接口或设备层)到各种网络协议的具体层。本文将从分层角度对 Linux 网络栈的接口进行探索,并介绍其中的一些主要结构。
    2007年7月16日  
 
Linux Desktop Entry 文件深入解析
Desktop Entry 文件是 Linux 桌面系统中用于描述程序启动配置信息的文件。Desktop Entry 文件实现了类似于 Windows 操作系统中快捷方式的功能。本文详细介绍了 Linux Desktop Entry 文件的定义,编程和使用方式。读者可以通过文章末尾的实例操作进一步加深对 Desktop Entry 文件应用的领会。
    2007年7月12日  
 
Sugar、XO 膝上型电脑和 OLPC
One Laptop per Child (OLPC) 是一个组织,旨在利用相关软件技术开发低成本的膝上型电脑 (USD100) 以便向全世界的儿童普及计算机教育。由于针对的是儿童,所以它必须提供新颖的用户界面和应用程序以便孩子们可以把玩各种工具来尽情体验和学习。OLPC 的操作系统是 Linux 内核的一个端口,并带一种称为 Sugar 的独特界面。在本文中,您将学习有关 Sugar 人机界面的内容,了解如何在标准的 PC 上利用 QEMU 对 OLPC 膝上型电脑进行虚拟化,遍历 Sugar 和 OLPC 的各种功能。
    2007年7月12日  
 
使用 ActiveScaffold 增强 Ruby on Rails 的功能
节省点时间,少一些头痛,使用 Ruby on Rails ActiveScaffold 插件可以创建更容易维护的页面。ActiveScaffold 可以处理用户接口所需的所有 CRUD(创建、读取、更新和删除)操作,这样可以为您节省更多时间来重点关注更有挑战(也更有趣的)问题。
    2007年7月9日  
 
Linux 上的 WebSphere MQ 开发快速入门
本文将通过用于向队列发送消息和从队列接收消息的示例应用程序说明如何在 Linux 上着手安装和配置 WebSphere MQ,以及如何为 MQ 环境开发 Java 应用程序。
    2007年7月5日  
 
OProfile 对 POWER 的支持
学习扩展 OProfile 概要分析工具以支持 IBM POWER4、POWER5 和 PowerPC 970 体系结构的实现细节,并了解性能计数器事件规范如何工作于 OProfile 内。
    2007年7月5日  
 
64 位 Linux 中 Power Architecture Time Base 的寄存器
使用 Power Architecture 技术的 Time Base 寄存器可以在使用 PowerPC 和 Cell Broadband Engine(Cell/B.E.)微处理器运行 Linux 的系统中以纳秒的精度来度量时间。可以有效使用这些技术的应用程序包括时间戳事务(通常是对单一用途的消息进行加密或进行数字签名),对代码进行分析,实现微小、精确的软件延时。
    2007年7月5日  
 
Linux 密钥保留服务入门
Linux 密钥保留服务是在 Linux 2.6 中引入的,这是在 Linux 平台上处理身份验证、密码学、跨域用户映射和其他安全问题的出色的新方法。了解 Linux 密钥保留服务的组件,并通过一个示例应用程序了解它的使用方法。
    2007年7月5日  
 
SoC 抽匣: Cell Broadband Engine 芯片:面向大众的高速负载转移
Cell Broadband Engine(Cell/B.E.)芯片引领着计算领域中的宽带革命,随着世界范围的连接和宽带不断改变我们生活的环境,它为超级计算、医疗图像处理和许多新兴的应用程序提供了核心硅片 DNA。本文研究应用程序代码在运行 Yellow Dog Linux 的 Sony PLAYSTATION 3 Cell Broadband Engine 系统上的性能。文中用一个简单的程序演示多线程应用程序如何使用 Synergistic Processing Elements 转移工作负载,从而获得显著的速度提升。
    2007年7月5日  
 
Linux 内核剖析
Linux 内核是一个庞大而复杂的操作系统的核心,不过尽管庞大,但是却采用子系统和分层的概念很好地进行了组织。在本文中,您将探索 Linux 内核的总体结构,并学习一些主要的子系统和核心接口。您还可以通过其他 IBM 文章的链接更深入地进行学习。
    2007年7月2日  
 
使用 SSH 建立安全通信信道
使用各种开放源码的工具,如安全 Shell (SSH)、PuTTY 和 Cygwin,对几乎任何需要访问的资源创建安全的连接。目前,有关 SSH 隧道建立和设置的信息并不是很完整,而且局限于特定的应用程序,或者编写于系统管理员的级别。随着安全需求的日益增长,除了添加边界防火墙、严格控制允许的网络端口的数目之外,用户还需要一种简单地进行配置、操作的方法,最重要的是,安全地完成日常的任务以及访问那些他们经常访问的服务。本文描述了对连接到基于 AIX(R) 或 Linux(R) 的 SSH 服务器的简单 SSH 客户端的设置,这种服务器为典型的、懂得技术的用户提供了设置、配置和操作的能力,以便通过一种灵活的方式在 SSH 服务的基础上实现数据和服务的隧道化。
    2007年6月29日  
 
uClinux 启动过程详细分析
uclinux启动的详细过程有着诸多的信息可以给我们巨大的启发,我们在这里讨论的就是要对这些信息做一个具体细致的分析,通过我们的讨论,大家会对uclinux启动过程中出现的、以前感觉熟悉的、但却又似是而非的东西有一个确切的了解,并且能了解到这些输出信息的来龙去脉。
    2007年6月28日  
 
JPEG 编解码在 Cell 上的优化
JPEG编解码是比较常用的图像处理过程,本文主要介绍如何充分利用 Cell 的特性,优化 JPEG 的编解码过程,使其达到最佳性能。本文虽然主要是说明 JPEG 编解码的优化过程,但是其中使用到的优化方法,也是 Cell 上常用的优化手段,对于其他应用程序在 Cell 上的优化也很有借鉴作用。
    2007年6月28日  
 
安装大型 Linux 集群,第 3 部分: 存储和共享文件系统
从多个独立的硬件和软件,包括 System x(TM) 和 IBM TotalStorage(R),创建一个可运行的 Linux 集群。第 3 部分提供了设置存储后端所需的操作指导的前半部分内容,包括有关存储架构、所需硬件和 Storage Area Network 的详细信息。
    2007年6月22日  
 
编写易于理解代码的六种方式
对于一名开发人员,时间是最宝贵的资源。本文所要介绍的这六种编写可维护代码的方法可以保证让您节省时间和少受挫折:在编写注释上多花一分钟,会让您少受一小时研读代码的痛苦折磨。
    2007年6月18日  
 
为 Linux 或 UNIX 版本 SAP 安装多个 DB2 9 数据库服务器
按照每步的指示说明,在同一台服务器上的 SAP 环境中安装 DB2 软件的多个拷贝。
    2007年6月14日  
 
在 OpenPower 上兜兜风,第 2 部分: 到 64 位系统上的移植问题
在 OpenPower 上兜兜风系列文章的第 2 部分,Peter Seebach 将介绍向 64 位系统进行移植时所遇到的代码可移植问题,详细介绍了代码和数据的可移植性,并给出几个少见的真正需要修改代码的具体例子。
    2007年6月14日  
 
工作中用声音控制计算机上命令的执行
使用 Linux 或 Microsoft Windows、开源 sndpeek 程序和简单的 Perl 脚本来读取特定的音调事件(确切地说就是对着计算机吹口哨、低声哼唱或唱歌)序列并根据这些音调运行命令。您可以用低促的口哨声让计算机为您检查电子邮,也可以用贝多芬第五交响曲的前奏解锁屏幕保护程序。这样您就可以更加高效地工作。
    2007年6月14日  
 
在 OpenPower 上兜兜风,第 3 部分: 如何避免必须移植代码
为什么移植非常困难?“在 OpenPower 上兜兜风” 系列文章的最后这篇文章中,Peter Seebach 将介绍从一种体系结构移植到另外一种体系结构上时涉及哪些问题,并对 API 和 硬件接口进行比较。
    2007年6月14日  
 
Linux slab 分配器剖析
良好的操作系统性能部分依赖于操作系统有效管理资源的能力。在过去,堆内存管理器是实际的规范,但是其性能会受到内存碎片和内存回收需求的影响。现在,Linux 内核使用了源自于 Solaris 的一种方法,但是这种方法在嵌入式系统中已经使用了很长时间了,它是将内存作为对象按照大小进行分配。本文将探索 slab 分配器背后所采用的思想,并介绍这种方法提供的接口和用法。
    2007年6月11日  
 
LAMP 系统性能调优,第 2 部分: 优化 Apache 和 PHP
如今,使用 LAMP(Linux、Apache、MySQL 和 PHP/Perl)架构的应用程序不断被开发和部署。但是,服务器管理员常常对应用程序本身几乎没有控制能力,因为应用程序是别人编写的。这份共三部分的系列文章将讨论许多服务器配置问题,这些配置会影响应用程序的性能。第二篇文章重点讨论可为优化 Apache 和 PHP 而采取的措施。
    2007年6月7日  
 
Linux 系统审计样例
您认为您拥有一个安全的 Linux 系统吗?在安装和设置过程中按照最佳实践的提示是必须的,但是如果您没有设置正常的系统审计,就丢失了一半保险。本文讨论现有的一些工具,并提供了几个样例脚本来对真实环境中的处理实现自动化。
    2007年6月4日  
 
Second Life 客户机,第 3 部分: 向 Second Life 中添加简单的翻译
在 Second Life 软件探索之旅的最后一程,您将学习如何在 Second Life 中插入一个简单的命令行程序,它可以提供语言翻译功能。
    2007年5月31日  
 
Second Life 客户机,第 2 部分: 深入研究文档
Second Life 客户机的开发者文档采用了 wiki。在 Second Life 软件探索之旅的第 2 阶段,我们将查看该文档,并使用它对客户机进行一些修改。
    2007年5月31日  
 
探索 Linux 内核虚拟机
Linux 既有良好的灵活性,在虚拟化方面同样出色。但是最近,随着内核虚拟机(KVM)的出现,Linux 虚拟化的前景发生了变化。KVM 是构成主流 Linux 内核(V2.6.20)一部分的第一个虚拟化解决方案。KVM 支持 Linux 客户操作系统的虚拟化 —— 甚至支持其硬件对虚拟化敏感的 Windows 系统的虚拟化。了解 Linux KVM 的架构并了解它与内核的紧密集成为何会改变您使用 Linux 的方式。
    2007年5月28日  
 
在 Cell BE 处理器上编写高性能的应用程序,第 6 部分: 用 DMA 传输进行智能缓冲区管理
研究双缓冲和多重缓冲概念,从而通过处理和数据传输的并行化来提高代码速度,并让 SPE 的内存流控制器(MFC)产生最佳的装载和存储操作次序。
    2007年5月24日  
 
实时 Java,第 3 部分: 线程化和同步
本文是关于实时 Java 系列文章(共 5 部分)的第三篇,考察了 Java 实时规范(RTSJ)的实现必须支持的线程化和同步问题。您还将了解开发和部署实时应用程序时必须牢记的一些有关这两方面的基本考虑。
    2007年5月24日  
 
在 Cell BE 处理器上编写高性能的应用程序,第 5 部分: 使用 C/C++ 对 SPU 进行编程
在 “在 Cell BE 处理器上编写高性能的应用程序” 系列文章的第 5 部分中,我们将应用您对于 SPU(synergistic processing unit)的知识使用 C/C++ 语言对 Cell Broadband Engine(Cell BE)处理器进行编程。您将学习如何使用向量扩展,引导编译器进行分支预测,并使用 C/C++ 实现 DMA 传输。
    2007年5月24日  
 
用 coLinux 进行虚拟化
目前,用 VmWare、Xen 和 Kernel-based Virtual Machine(KVM)进行虚拟化非常热门。但是,您是否知道也可以让 Linux 与 Microsoft Windows 进行协作?本文讨论 Cooperative Linux(coLinux),首先简单介绍虚拟化,然后讨论 coLinux 采用的方式。您还会了解如何在 Windows 上设置并运行 coLinux。
    2007年5月21日  
 
在 IBM Systems 上安装 Linux 服务器,第 1 部分: Linux 服务器的基本安装和配置
学习如何在 IBM 独立机架服务器上安装并配置 Red Hat Enterprise Linux(R) 4。示例展示了在 x86 系统上的安装,不过这些示例也可以应用到各种硬件架构上,包括 x86_64、IA64、S/390(R) 和 ppc64。
    2007年5月16日  
 
Linux 内核中断内幕
本文对中断系统进行了全面的分析与探讨,主要包括中断控制器、中断分类、中断亲和力、中断线程化与 SMP 中的中断迁徙等。首先对中断工作原理进行了简要分析,接着详细探讨了中断亲和力的实现原理,最后对中断线程化与非线程化中断之间的实现机理进行了对比分析。
    2007年5月14日  
 
Second Life 客户机,第 1 部分: 玩转 Second Life
Linden Lab 所开发的 Second Life 查看器程序的开源发行版为我们提供了宝贵的机会,可以了解封闭开发模型与开源开发模型的力量对比。本文是系列文章的第一篇,将简要介绍这些开发风格之间的区别,并讨论在设置自己的编译环境中都涉及哪些问题。
    2007年5月14日  
 
在 Linux on POWER 上进行应用程序开发
在 IBM System p(TM) 和 System i(TM) POWER 平台上开发和部署 Linux(R) 应用程序与在其他 Linux 系统上的开发和部署相似。在本文中,讨论对于 Linux on POWER 系统应该了解的相似性和差异。
    2007年5月10日  
 
LAMP 系统性能调优,第 1 部分: 理解 LAMP 架构
如今,使用 LAMP(Linux、Apache、MySQL 和 PHP/Perl)架构的应用程序不断被开发和部署。 但是,服务器管理员常常对应用程序本身几乎没有控制能力,因为应用程序是别人编写的。这份共三部分的系列文章将讨论许多服务器配置问题,这些配置会影响应用程序的性能。第一篇文章讨论 LAMP 架构、一些性能度量技术以及一些基本的 Linux 内核、硬盘和文件系统调节。后续的文章将研究 Apache、MySQL 和 PHP 组件的调优。
    2007年5月9日  
 
可爱的 Python: Python 之优雅与瑕疵,第 1 部分
自从 Python 1.5.2(一个长期以来一直稳定且可靠的版本)迈入 “黄金时代” 以来,Python 增加了许多语法特性以及内置函数和类型。这些改进单独地看都是合理的调整,但是作为一个整体,它们使 Python 变得更加复杂,不再是有经验的程序员 “花上一个下午” 就能够掌握的语言了;另外,一些修改在带来好处的同时也有缺陷。
    2007年4月29日  
 
用于 Power 体系结构的汇编语言,第 4 部分: 函数调用和 PowerPC 64 位 ABI
ABI,或称为应用程序二进制接口,是一组允许使用不同语言编写的程序或使用不同编译器链接的程序相互调用彼此的函数的约定集。本文是 4 部分系列文章的最后一部分,讨论了用于 64 位 ELF (类 UNIX)系统上的 PowerPC ABI;不管您是否使用汇编语言编写程序,它们都可以帮助您为 POWER5 和其他基于 PowerPC 的处理器更加有效地编写 64 位应用程序。32 位的 ABI 也是存在的,但在本文中并没有介绍。
    2007年4月26日  
 
使用 Linux 应用服务器场的远程计算
您是否听说过 Web 2.0?很好,这就是 “效用计算 2.0”,它是网络引导、SSL、VNC 和其他熟悉的概念和技术的组合(所有这些技术都位于 Linux),它可以带来极大的投资回报。请了解加州大学是如何设置服务器场环境来为学生提供安全远程桌面应用程序服务的。
    2007年4月23日  
 
在 OpenPower 上兜兜风,第 1 部分: 探索 POWER5 上的 64 位开发
OpenPower 程序提供了对运行 64 位 Linux on POWER5 处理器的服务器进行自由远程访问的能力。在 OpenPower 上兜兜风系列文章的第 1 部分中,作者 Peter Seebach 将介绍获得系统访问能力和为其编译应用程序(32 位和 64 位)的过程。他还特别关注那些没有 root 特权的 “客户” 软件开发特有的问题 —— 有些东西对于大部分 Linux 用户来说以前从未遇到过。
    2007年4月20日  
 
使用 Linux 系统调用的内核命令
Linux 系统调用 —— 我们每天都在使用它们。不过您清楚系统调用是如何在用户空间和内核之间执行的吗?本文将探究 Linux 系统调用接口(SCI),学习如何添加新的系统调用(以及实现这种功能的其他方法),并介绍与 SCI 有关的一些工具。
    2007年4月17日  
 
使用 VMware ESX Server 在 Linux 虚拟机上安装 DB2 Enterprise 9
本文介绍了使用 VMware ESX Server 3.0.1 为 DB2 9 在 Linux 上设置虚拟机的步骤。
    2007年4月16日  
 
在 Cell BE 处理器上编写高性能的应用程序,第 3 部分: 接触 SPU
继续对 Cell Broadband Engine (Cell BE) 处理器的 SPE 及其底层工作原理进行深入探讨。本期文章将展示其中的存储对齐问题及 SPE 间的通信。
    2007年4月12日  
 
在 Cell BE 处理器上编写高性能的应用程序,第 2 部分: 在 Sony PLAYSTATION 3 的 SPE 上编程
本期的“在 Cell BE 处理器上编写高性能的应用程序” 将向您介绍如何充分利用 Sony PLAYSTATION 3 (PS3) 的 SPE (synergistic processing element)。本系列的第 1 部分展示了如何在 PS3 上安装 Linux 并给出了一个简短的示例程序。第 2 部分将对 Cell Broadband Engine 处理器的 SPE 做深入的探讨,研究一下这些 SPE 的底层工作原理。
    2007年4月12日  
 
用 Ghosd 和 Perl 创建丰富多彩的屏幕显示内容
使用 Perl、Ghosd 和网络编程根据来自本地系统和远程计算机的消息显示文本和图形的屏幕覆盖图。定义自定义图像、字体大小和颜色来传递与桌面集成的信息。
    2007年4月12日  
 
在 Cell BE 处理器上编写高性能的应用程序,第 4 部分: 针对 SPU 编程以提高性能
为 Cell Broadband Engine (Cell BE)处理器的 SPU(synergistic processing unit)编写优化代码,并让程序闪电般快速运行。本文是在 Cell BE 处理器上编写高性能的应用程序系列文章的一部分,介绍了 SIMD 向量编程、分支消除、循环展开、指令调度和分支提示技术。前面的文章已经介绍了 Sony PLAYSTATION 3、Cell BE 架构和 SPU 编程的基本知识。
    2007年4月12日  
 
Linux 技巧: 用 CUPS 打印 DVI 文件
您是否试过在 Linux 上打印 DVI 或其他文件却得到 “unsupported format”(不支持的格式)的消息?本文所述技巧介绍了如何组合现有工具制作一个打印 DVI 文件的 CUPS 打印过滤器。
    2007年4月9日  
 
Linux on POWER 上的 RAID
本篇文章介绍了 Linux on POWER 服务器上的独立磁盘实现的软硬件冗余阵列(RAID)。在某些方面,本篇文章还对 RAID 设置中的一些问题和缺陷做了回应。因而,本文的内容涵盖了 RAID 本身的基础知识、Linux on POWER 的引导过程、软硬件 RAID 以及一个有关如何配置硬件 RAID 的示例。
    2007年4月6日  
 
在 IBM Systems 上安装 Linux 服务器,第 2 部分: 使用基于 NFS 的网络安装方法安装多台 Linux 服务器
学习如何使用基于网络的安装方法来同时安装多台 Linux 服务器。在 Harish Chauhan 系列文章的第 2 部分中,我们将理解如何在安装了 Red Hat Enterprise Linux Version 4 的 System x 上使用 NFS(Network File Share)配置和安装系统。
    2007年4月6日  
 
使用开源软件设计、开发和部署协作型 Web 站点,第 4 部分: 在 Linux 中建立开发环境
在 Linux 中安装和配置开发基于 Drupal 的 Web 站点所需的软件,以及开发环境所需的软件,包括 Eclipse、MySQL、Drupal、Apache、PHP 和 phpMyAdmin。
    2007年4月2日  
 
Linux 和对称多处理
正如主流中央处理器(CPU)供应商所证明的那样,多核处理器随时准备着占领桌面和嵌入式市场。多处理带来了更高的性能,也同时带来了新的问题。本文将探讨多处理和开发使用 SMP 的 Linux 应用程序背后的思想。
    2007年4月2日  
 
构建 Fedora Live CD
尽管 Fedora Linux 是一个很流行且很成熟的 Linux 发行版,并且很多人已经创建了基于 Fedora 的 Live CD 发行版,但 Fedora 项目本身直到 2006 年 12 月才正式发布它的第一个 Live CD 版本。通过本文,了解如何使用 Pilgrim(Fedora Live CD 创建工具)的重写(rewrite)构建易于使用的定制 Live CD。
    2007年3月30日  
 
并行启动应用程序从而加速 Linux 的引导
对于 Linux 的最大抱怨(尤其来自开发人员)就是 Linux 的引导速度。默认情况下,Linux 是一个通用的操作系统,可以作为一个开箱即用的客户机桌面或服务器使用。由于 Linux 具有很好的灵活性,因此可以用作各种用途的基础,但对于任何特定的配置来说,尚不是最理想的选择。本文将向您展示可以提高 Linux 引导速度的一些方法,包括两种可以对初始化过程进行并行化操作的方法。本文还介绍了如何图形化地表现引导过程的性能。
    2007年3月26日  
 
LPI 102 考试准备,主题 109: Shell、脚本、编程和编译
在这个教程中,Ian Shields 将继续帮助您准备参加 Linux Professional Institute 的初级管理(LPIC-1)考试 102。这是 9 篇系列教程中的第 5 篇。在本教程中,Ian 将向您介绍 Bash shell、脚本和 Bash shell 编程方面的内容。在学完本教程之后,您将掌握如何对自己的 shell 环境进行定制,如何使用 shell 编程结构来创建函数和脚本,如何设置和取消环境变量,以及如何使用各种登录脚本。
    2007年3月23日  
 
Emacs 编辑环境,第 1 部分: 学习 Emacs 的基础知识
精通 Emacs 编辑器,并深入研究它赖以成名的最先进的编辑命令。开放源代码的 Emacs 编辑器(UNIX® 计算系统中最强大的功能之一)是一个复杂的大型应用程序,从编辑文本到作为一个完整的开发环境,它几乎无所不能。它具有丰富的功能,而且与您见过的任何程序都不一样,尤其是在指定和输入命令方面。这篇教程是本系列的第一篇,它提供了一份简明、可供亲手实践的介绍,让您了解最重要的 Emacs 编辑概念和功能。
    2007年3月20日  
 
Linux 技巧: Bash 测试和比较函数
您是否为 Bash shell 中大量的测试和比较选项而困惑呢?这个技巧可以帮助您解密不同类型的文件、算术和字符串测试,这样您就能够知道什么时候使用 test、[ ]、[[ ]]、(( ))或 if-then-else 了。
    2007年3月16日  
 
安装大型 Linux 集群,第 1 部分: 简介和硬件配置
从许多分离的硬件和软件,包括 IBM(R) System x(TM)和 IBM TotalStorage(R) systems 创建工作的 Linux(R) 集群。本文是共分多部分的系列教程的第一部分,介绍了硬件配置,包括理解架构、规划逻辑网络设计、设置终端服务器以及更新固件等内容。
    2007年3月13日  
 
安装大型 Linux 集群,第 2 部分: 配置管理服务器和安装节点
从多个独立的硬件和软件,包括 IBM System x(TM) 和 IBM TotalStorage(R) 系统,创建一个可运行的 Linux(R) 集群。这个系列包含多个部分,本文是其中的第 2 部分,阐述了如何配置集群中的管理服务器以及如何安装节点。
    2007年3月13日  
 
Xilinx hijinx,第 1 部分: ML403 全新体验
通过本文,了解选择基于 FPGA 的系统而不选择传统的硬 IP 微控制器的原因,借鉴传统编程人员首次接触基于 RAM 的可编程逻辑时所面临的学习曲线。在这个新的系列中,Lewin Edwards 将打开 Xilinx ML403 嵌入式开发工具包,为您详述其中的一些特性。
    2007年3月9日  
 
使用 Portland 改善 Linux 桌面移植性
Portland 是个新的开源项目,它承诺要帮助 Linux 应用程序在多种桌面环境中运行,包括 Gnome 和 KDE,从而简化 Linux 应用程序的部署和商业化。虽然该技术仍很年轻,但现在已经可以使用 Portland 了,并且它看上去正在不断快速改进。现在开始使用 Portland 1.0 中的 XdgUtils 工具集。
    2007年3月6日  
 
使用 SSL 保护 VNC 应用程序
SSL 为使用 VNC 和标准 Web 浏览器对远程桌面进行方便、安全的访问提供了一种新颖的机制。
    2007年3月2日  
 
降低 Linux 内存开销
物理内存不足可能会严重影响 Linux 的性能。在本文中,我们将学习如何精确地度量 Linux 系统所使用的内存量。还将以 Ubuntu 系统为例学习有关降低内存需求的实践建议。
    2007年2月26日  
 
Xilinx hijinx,第 2 部分: 构建和加载比特流和 PowerPC 代码
本文将探索一个完整 Virtex4 项目的硬件和软件方面。在 Xilinx hijinx 系列的第二部分(也是最后一部分)中,您将向项目中添加或从中删除设备核心、连接项目组件、构建比特流、把它与 C 代码集成,并把整个结果下载到 FPGA。
    2007年2月22日  
 
使用命令行高效地进行文本编辑
简单研究一下可节省时间和精力的一些基本命令行文本编辑程序。文本编辑操作通常在文本编辑器应用程序中交互式地进行。然而,有些任务可以直接从 UNIX(R) 命令行方便快捷地完成。此外,还可以在脚本中使用这些单命令行程序来自动化各种编辑过程。
    2007年2月16日  
 
用于 Power 体系结构的汇编语言,第 3 部分: 使用 PowerPC 分支处理器进行编程
在前两篇文章中,您看到了 POWER5 处理器上的程序是如何使用 64 位 PowerPC 指令集工作的、PowerPC 指令集是如何对内存进行寻址的,以及如何编写与位置无关的代码。在本文中,您将学习如何使用 PowerPC 指令集中功能强大的条件和分支指令。
    2007年2月13日  
 
用机器生成的音乐监控 Linux 计算机
使用 Perl 和 FluidSynth 创建系统状态的实时音乐组合。了解如何将各种系统监视数据集成为一种生成和声、MIDI 控制的音频合成。探究可帮助您监控和管理计算环境的音频信息方法和配置。
    2007年2月5日  
 
在 Cell BE 处理器上编写高性能的应用程序,第 1 部分: 简介 PLAYSTATION 3 上的 Linux
Sony PLAYSTATION 3(PS3)对于程序员来说是尝试使用新 Cell Broadband Engine(Cell BE)处理器进行开发最简单也是最经济的方法。本文将探索这个领域中的内容,介绍如何在 PS3 上安装 Linux,如何开始在 PS3 上针对 Cell BE 处理器进行开发。
    2007年2月5日  
 
基于 libmad 的简单 MP3 流媒体播放器的实现
本文在 Fedora 5 Linux 下实现了一个基于 libmad 的 MP3 流媒体播放器。此流媒体播放器可以播放基于 HTTP 1.1 协议传输的 MP3 流媒体数据。
    2007年2月2日  
 
结合使用集成虚拟化管理器和 Linux on POWER
IBM 集成虚拟化管理器(Integrated Virtualization Manager,IVM)是 Virtual I/O Server 的一个新组件,它包含于 Advanced Power Virtualization 功能部件之中。通过使用 IVM,用户现在可以在 IBM POWER5 服务器上管理分区,而不需要使用硬件管理控制台(Hardware Management Console,HMC)。本文对 IVM 的功能进行了概述,列举了 IVM 和 HMC 的不同之处,并介绍了如何使用 IVM 来创建和管理 Linux on POWER 分区。
    2007年1月30日  
 
在 Qt 中处理平台相关的底层事件
事件是由窗口系统或 Qt 本身对各种事务的反应而产生的。 当用户按下一个键或者鼠标按钮,就会相应产生一个键盘或者鼠标事件。 当窗口第一次显示,会产生一个绘图事件,从而通知最新的可见窗口绘制自身。 使用 Qt 编程时,很少需要考虑事件,因为 Qt 的窗口组件会在事件发生的时候发送信号,然后利用 Signal-Slot 机制进行相应的事件处理。 但是,在编写自定义 Widget 或者需要修改现有Widget的特性时,或者需要处理平台相关的底层事件时,事件则变得很重要。 本文以 XWindow 平台为例,介绍 Qt 如何处理平台相关的底层事件。
    2007年1月28日  
 
可爱的 Python: Decorator 简化元编程
Python 使元编程成为可能,不过每个版本的 Python 都有一些细微的区别(并且不是完全兼容),这使我们实现元编程的道路变得更加崎岖。一类函数对象的使用由来已久,同样还有一些技术用于探索和实现魔术般的属性。在版本 2.2 中,Python 增加了一种很有帮助的定制元类机制,但是其代价就是令用户绞尽脑汁。最近,在 2.4 版本中,Python 增加了 “decorator” ,这是适于执行大部分元编程的最新方式 —— 也是到目前为止对用户最友好的方式。
    2007年1月23日  
 
通过振动向 Linux ThinkPad 传输信息
通过修改内核以在受震动导致内核出现紧急情况时自动重置 Linux 膝上型计算机,让您的计算机处于受保护的状态。在内核空间和用户空间中实现震动检测算法,从而执行自动关闭并在特定动力条件得到满足时重新启动。
    2007年1月15日  
 
虚拟 Linux
虚拟化的含义丰富,应用广泛。目前虚拟化技术主要关注于服务器虚拟化,即在一个宿主计算机上提供多个独立操作系统。本文将探索虚拟化背后的思想,然后讨论实现虚拟化的一些技术。我们还将了解现有的其他一些虚拟化技术,例如 Linux 上操作系统的虚拟化。
    2007年1月15日  
 
利用 IP 别名在一块网卡上托管多个 SSL 站点
人们对于结合使用 SSL 和基于名称的虚拟主机的兴趣与日俱增。有些人认为这是不可能的,但是在 Apache 中,您可以通过基于 IP 的虚拟主机实现虚拟主机。在这篇文章中,John Liao 和 Jim Miles 将为您介绍具体做法。
    2007年1月15日  
 
惰性编程和惰性求值
惰性编程是一种将对函数或请求的处理延迟到真正需要结果时进行的通用概念。有很多应用程序都采用了这种概念,有的非常明显,有些则不太明显。从惰性编程的角度来思考问题,可以帮您消除代码中不必要的计算,也可以帮您重构程序以使之更加面向问题。
    2007年1月8日  
 
管理 Java 类路径(UNIX 和 Mac OS X)
类路径是 Java 平台中最复杂也最令人头痛的部分之一,但熟练掌握类路径对成为一名专业 Java 程序员来说却又十分关键。在本文中,Elliotte Rusty Harold 为您阐述了类路径和源路径的复杂性,并向您展示了如何在 UNIX 和 Mac OS X 中熟练掌握它们。如果您使用的是 Windows,请参阅本文的姊妹篇。
    2007年1月4日  
 
GNOME2 桌面系统中基于 MIME 类型的应用程序集成
本文讨论了 GNOME2 桌面系统中基于 MIME 类型的应用程序集成的两种方法。在 GNOME2.8 前,GNOME2 使用自己的 MIME 定义方法来集成应用程序;从 2.8 开始,GNOME2 采用了 XDG(X Desktop Group) 提出的 MIME 数据库规范来集成应用程序。在介绍这两种方法的同时,本文也针对这两种方法,介绍了开发实践中的经验与技巧。本文适用于 LINUX 应用程序的开发人员。
    2007年1月4日  
 
如何在 POWER 上使用 IBM XL C/C++ Advanced Edition V7.0 for Linux:GCC 用户指南
本文旨在帮助研究基于 IBM POWER 处理器的系统的 Linux 开发人员快速从 GNU gcc 和 gcc-c++ 编译器(称为 GCC)迁移到 IBM XL C/C++ Advanced Edition V7.0。本文是对 2003 年 7 月首次出版的“How to Use IBM VisualAge C++ Version 6.0 for Linux on IBM pSeries and iSeries”一文的更新。
    2006年12月31日  
 
用 Apache Proxy 的指令(mod_proxy)改进 LAMP 安全性
在本文中,Nick Maynard 描述了一种使用 Apache 的 mod_proxy 模块改进 LAMP 设置的安全性的方法。本文专门针对 Linux;但是,也可以将一些原理应用于其他操作系统。
    2006年12月31日  
 
Relay:一种内核到用户空间的高效数据传输技术
Relay 是一种从 Linux 内核到用户空间的高效数据传输技术。通过用户定义的 relay 通道,内核空间的程序能够高效、可靠、便捷地将数据传输到用户空间。Relay 特别适用于内核空间有大量数据需要传输到用户空间的情形,目前已经广泛应用在内核调试工具如 SystemTap中。本文介绍了 Relay 的历史和原理,并且用一个简单的实例介绍了 Relay 的具体用法。
    2006年12月28日  
 
GNU 线性编程工具包(GNU Linear Programming Kit),第 3 部分: 高级问题和最佳解决方案
GNU 线性编程工具包(GNU Linear Programming Kit,GLPK)是一个功能强大的工具,被证明可以很好地解决具有多限制的数值问题。本文是 3 部分系列文章中的第 3 篇,阐述如何使用 GLPK 和 glpsol 客户端工具结合 GNU MathProg 语言来解决香水生产问题和篮球阵容问题。
    2006年12月26日  
 
Windows 打印选项设置在 Linux 平台上的一种移植方法
移植是实现传统高层应用程序跨平台运行的一项核心技术。打印子系统移植是应用程序移植的重要组成部分。实现打印选项设置模块在不同平台上的用户接口UI(User Interface)转换是实现打印子系统移植过程中的一项核心技术。 本文将重点阐述一种使用GNOME Print在Linux平台上实现Windows打印选项设置的移植方法。
    2006年12月21日  
 
用于 Power 体系结构的汇编语言,第 2 部分: PowerPC 上加载和存储的艺术
本系列的上一篇文章简要介绍了如何使用 64 位 PowerPC 指令集在 POWER5 和其他使用这些指令的处理器上进行汇编语言编程。本文将继续探索这个主题,讨论在 Linux 和类 UNIX 操作系统上使用 64 位 PowerPC 汇编语言进行编程的具体内容,着重介绍数据访问方法和与位置无关的代码。
    2006年12月18日  
 
在 Ubuntu 6.10 上安装并使用 Lotus Notes 7
Lotus Notes 从版本 7 开始正式支持 Linux 平台,但是官方只支持 Red Hat Linux。本文介绍了在颇为流行的桌面操作系统 Ubuntu Linux 6.10 上安装和使用 Lotus Notes 7.0.1 时会遇到的问题,以及如何解决这些问题。这些经验同样可以适用于其他 Linux 分发版。
    2006年12月18日  
 
Linux 的魅力: Linux 助力 Nokia 770
基于 Linux 的 Nokia 770 Internet tablet 对于 Linux 爱好者来说是一个迷人的东西。尽管它没有人们对掌上电脑所期望的大部分个人信息管理(PIM)程序,但是它在开发环境方面的一些新优点使它极受这些爱好者及专业嵌入式开发人员的垂青。
    2006年12月11日  
 
基于 GTK+ 和 X-window 的 GUI 在嵌入式 Linux 中的应用
在嵌入式 Linux 下有很多图形界面系统 GUI,包括 Qt/Embedded,FLTK,Microwindows 和 GTK+ 等。作为一个开发者,到底使用什么样的 GUI 系统呢?对一个系统,将它改造为符合你的需求,你要做多少修改呢?修改后的系统的尺寸一般会有多大呢?这些都是开发人员会遇到的问题。我们在这里讨论的就是要对这些内容做一个具体细致的分析,通过我们的讨论,大家会对基于 GTK+ 和 X 的 GUI 在嵌入式Linux 下的应用有一个确切的了解。
    2006年12月7日  
 
在 Linux 上构建 Web spider
Web spider 是用来进行 Internet 信息的搜索、过滤和聚合的软件代理。使用通用脚本语言和一些 Web 模块组合,就可以轻松地开发自己的 Web spider。本文介绍了如何为 Linux 构建 spider 和 scraper,从而实现在 Web 站点上爬行并搜集信息,具体到本例就是搜集股票数据。
    2006年12月4日  
 
可爱的 Python: 使用 setuptools 孵化 Python egg
David 在本文中将带领我们了解一下 setuptools 框架,它是 Python Enterprise Application Kit(PEAK)的一个副项目。 setuptools 替换了标准的 distutils 库,并为 Python 添加了版本化的包和依赖性管理。Perl 用户比较熟悉 CPAN,而 Ruby 用户则比较熟悉 Gems;引导 setuptools 的 ez_setup 工具和随之而生的扩展后的 easy_install 与 “Cheeseshop”(Python Package Index,也称为 “PyPI”)一起工作来实现相同的功能。另外,setuptools 还让我们可以将自己的库包装成一个称为 “egg” 的包,它与 Java 的 JAR 文件类似,不过是用于 Python 的。
    2006年11月30日  
 
Linux 上的数据可视化工具
Linux 上用来实现数据的图形可视化的应用程序有很多,从简单的 2-D 绘图到 3-D 制图,再到科学图形编程和图形模拟。幸运的是,这方面的工具有很多开放源码实现,包括 gnuplot、GNU Octave、Scilab、MayaVi、Maxima 等。每个工具都有自己的优缺点,并且都是针对不同的应用程序而设计的。对这些开放源码图形可视化工具进行一下探索,有助于我们更好地决定哪个工具最适合我们的应用程序。
    2006年11月27日  
 
用于 Power 体系结构的汇编语言,第 1 部分: 编程概念和基本 PowerPC 指令
POWER5 处理器是一款应用广泛的 64 位高性能处理器。这是本系列的第一篇文章,介绍汇编语言概念和 PowerPC 指令集,整个系列从整体上介绍了汇编语言,特别是 POWER5 的汇编语言编程。
    2006年11月23日  
 
调试 make
make 工具如 GNU make、System V make 和 Berkeley make 是用来组织应用程序编译过程的基本工具,但是每个 make 工具之间又有所不同。本文将介绍 makefile 的结构,避免如何在创建 makefile 时出现一些共同的错误,并探索如何修复或解决可移植性问题,还为解决突发的问题提供了一些技巧。
    2006年11月20日  
 
Windows 打印机管理在 Linux 平台上的移植实现
本文介绍了一种在 Linux 平台上实现 Windows 打印机管理的移植方法及具体实现细节。通过本文,读者可以了解相关技术,并把这些技术直接应用到实际软件开发中。
    2006年11月16日  
 
Linux 的魅力: MediaMVP 内幕
作为一款 MP3 和 MPEG 播放器,Hauppauge MediaMVP 使您能够通过电视机播放数字媒体。它是一种目标明确的嵌入式设备,也是在微型硬件上的简洁 Linux 实现的最佳例子。
    2006年11月16日  
 
使用 m17n 实现各国语言间代码移植
为了让 Linux 应用程序在全世界范围都可以使用,而不会在西方语言与世界上其他语言之间产生任何区别,我们应该发行一些本地化后的版本,它们可以输入、存储、提取或呈现任何语言,而不管这些语言是多么复杂。多语言库,或称为 m17n,为类 UNIX 平台上的所有语言提供了一个国际化解决方案。
    2006年11月13日  
 
使用 OpenSSL API 进行安全编程,第 3 部分: 提供安全服务
如果没有安全的服务器应用程序,那么也就不需要安全的客户机应用程序。使用 OpenSSL,我们可以创建安全的服务器应用程序,尽管文档让这一切看起来非常复杂,但实际并非如此。本文中我们将学习如何使用在这个 3 部分系列文章的第 1 部分中学习到的概念来构建安全的服务器应用程序。
    2006年11月9日  
 
Linux 的版本控制
版本控制系统或资源管理系统是现代软件开发的一个重要方面。不使用版本控制系统就如同超速驾驶一辆汽车:很刺激,也可能会更快抵达目的地,但事故却在所难免。本文概述了软件配置管理(SCM)系统及其优势,内容涵盖 CVS、Subversion、Arch 和 Git。本文还讨论了最常见的 SCM 体系结构。本文在最后给出了新出现的一些方法及这些方法与先前方法的区别。
    2006年11月6日  
 
LPI 102 考试准备:Linux 文档,初级管理(LPIC-1)主题 108
在这个教程中,Ian Shields 将继续帮助您准备参加 Linux Professional Institute 的初级管理(LPIC-1)考试 102。这是 9 篇系列教程 中的第 4 篇。在本教程中,Ian 将向您介绍 Linux 的文档方面的内容。在学完本教程之后,您将掌握如何使用和管理本地文档、查找 Internet 上的文档以及使用自动登录消息来通知用户系统事件的发生。
    2006年10月30日  
 
技巧:一个 Shell 程序的性能优化
编写 Linux Shell 脚本程序不要仅限于完成基本的程序功能,认真的分析 Shell 脚本并找出优化的方法对个人能力的提高以及对脚本程序的质量改善都有重要的意义,希望读者能从本文中获得许多实用的 Shell 程序方法。
    2006年10月30日  
 
C 语言中的指针和内存泄漏
在使用 C 语言时,您是否对花时间调试指针和内存泄漏问题感到厌倦?如果是这样,那么本文就适合您。您将了解可能导致内存破坏的指针操作类型,您还将研究一些场景,了解要在使用动态内存分配时考虑什么问题。
    2006年10月26日  
 
用 wxWidget 构建跨平台的 GUI
wxWidgets 工具包提供图形用户界面(GUI)开发所需的一些功能强大的跨平台工具。除了原生的 C++, 还有其他几种语言提供了使用该工具包所需的包装程序。本文将介绍如何使用 wxWidgets 工具包来在所选用的编程语言中创建用途广泛的 GUI。
    2006年10月26日  
 
NFSv4 提供无缝的网络访问
网络文件系统(NFS)从 20 世纪 80 年代中期开始就已成为免费操作系统的一部分,并且成为了专有 UNIX 系统的最爱。了解 NFS 方面的知识十分重要,其原因很简单:能够在 UNIX 网络之间实现无缝访问对于系统来说非常关键。在本文中我们将学习 NFS 最新的发行版 NFSv4 如何解决很多关键问题,尤其是版本 2 和版本 3 中都十分明显的安全性问题。
    2006年10月23日  
 
基于网络的 Red Hat 无人值守安装
本文介绍了 PC 平台上的一种快速 Red Hat Linux 安装方案。它具有很高的自动化程度--用户只需手工启动机器并选择从网络启动,就可以完成整个安装过程。在需要批量安装大量 Red Hat Linux 系统和需要技术人员 Red Hat Linux 安装支持的情况下,这种方案可以节省大量的时间。而且由于不需要额外的软件和光驱和软驱等硬件设备,在成本上也有很大优势。所有安装 Red Hat Linux 的开发/测试人员,和 IT 支持人员都能够从本文中获益。读者在阅读本文前需要有 Red Hat Linux 的安装经验。
    2006年10月19日  
 
LPI 102 考试准备,主题 107: 打印
在这个教程中,Ian Shields 将继续帮助您准备参加 Linux Professional Institute 的初级管理(LPIC-1)考试 102。这是 9 篇系列教程 中的第 3 篇。在本教程中,Ian 将向您介绍 Linux 的打印方面的内容。在学完本教程之后,您将掌握如何在 Linux 系统上对打印机、打印队列和用户的打印作业进行管理。
    2006年10月16日  
 
GNU 线性编程工具包(GNU Linear Programming Kit),第 2 部分: 线性编程中的中间问题
本文将继续介绍有关和 glpsol 客户机工具以及 GNU MathProg 语言的使用。在本文中,我们将从一个日常饮食问题入手来介绍如何表述一个简单的多类型变量,并声明二元参数。然后通过一个邮局资源分配问题来介绍 MathProg 表达式和只使用整型的决策变量。
    2006年10月12日  
 
开源机器人技术工具包
构建机器人需要涉及很多学科的技能,包括嵌入式固件和硬件设计、传感器的选择、控制系统的设计,以及机械结构设计。而仿真环境可以为测试、评测和机器人技术算法的可视化提供一个虚拟的舞台,而不用花费高昂的开发成本(和时间)。本文将简要介绍一些 Linux 的开源机器人技术工具包及功能,并帮助我们判断哪些技术最适合我们使用。
    2006年10月8日  
 
使用异步 I/O 大大提高应用程序的性能
Linux 中最常用的输入/输出(I/O)模型是同步 I/O。在这个模型中,当请求发出之后,应用程序就会阻塞,直到请求满足为止。这是很好的一种解决方案,因为调用应用程序在等待 I/O 请求完成时不需要使用任何中央处理单元(CPU)。但是在某些情况中,I/O 请求可能需要与其他进程产生交叠。可移植操作系统接口(POSIX)异步 I/O(AIO)应用程序接口(API)就提供了这种功能。在本文中,我们将对这个 API 概要进行介绍,并来了解一下如何使用它。
    2006年9月28日  
 
用于 Linux 的开放 BIOS
在很多系统上,引导时间中有很大一部分都花费在为 MS-DOS 提供传统支持上面了。有很多项目,包括 LinuxBIOS 和 Open Firmware,都试图使用最新的代码来替换原有的 BIOS 系统,它们只实现加载并运行 Linux 内核所必需的功能。本文对这个领域的内容简要进行了介绍。
    2006年9月25日  
 
例解 autoconf 和 automake 生成 Makefile 文件
本文介绍了在 linux 系统中,通过 Gnu autoconf 和 automake 生成 Makefile 的方法。主要探讨了生成 Makefile 的来龙去脉及其机理,接着详细介绍了配置 Configure.in 的方法及其规则。
    2006年9月21日  
 
使用 Linux 文本工具简化数据的提取
很多 Linux 系统管理员都需要做一些整理纯文本配置文件的乏味工作。幸运的是,Linux 有很多源自于 UNIX 的数据提取工具,包括 head、tail、grep、egrep、fgrep、cut、paste、join、awk 等。本文给出了几个真实的例子,它们可以展示如何使用这些简单的命令行工具更好地服务于系统管理工作。本文将逐一介绍这些数据提取工具及其操作,将它们应用到日常工作所使用的典型文件中,并介绍一下为什么这些工具对于从这些文件中提取数据来说非常重要。
    2006年9月21日  
 
Python Web 框架,第 2 部分: 使用 TurboGears 和 Python 开发 Web 站点
本系列文章一共有两篇,本文是第二篇。在本文中,我们将展示 TurboGears 的用法,它是另外一个基于 Python 的 MVC 风格的 Web 应用程序框架。在第一篇文章中我们介绍了 Django 框架,本文将介绍如何使用 TurboGears 来创建一个基于 Web 的应用程序,并将对 Turbogears 和 Django 进行比较。
    2006年9月18日  
 
Sqlite 数据库在基于 Linux 的 Media NAS 系统中的应用
本文阐述在一个基于 Linux 的 Media NAS 系统中,如何使用了 Sqlite 数据库作为 NAS 系统中 Media 数据的存储数据库,来完成 Media 文件的共享,从而能使 Digital Media Player 播放设备通过 UPnP AV Server 服务对NAS 上的 Media 文件进行播放。
    2006年9月14日  
 
Linux 笔记本基于 “敲打” 的命令
有史以来第一次,您可以敲打一下计算机并得到有意义的响应!使用 Linux 和 Hard Drive Active Protection System(硬盘活动保护系统,HDAPS)内核驱动程序,我们可以访问 Lenovo(以前称为 IBM )ThinkPads 上的嵌入式加速器,然后处理加速器的数据来读取特定 “敲打” 事件序列(也就是您使用关节敲打笔记本的事件序列),并基于这些敲打事件运行一些命令。双击锁定屏幕,然后敲入密码来解锁。敲打显示屏一次就可以让 MP3 播放器前进一个音轨。这类可能事物是无穷无尽的。
    2006年9月14日  
 
BusyBox 简化嵌入式 Linux 系统
BusyBox 是很多标准 Linux 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet(不过它的选项比传统的版本要少);有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。本文将探索 BusyBox 的目标,它是如何工作的,以及为什么它对于内存有限的环境来说是如此重要。
    2006年9月11日  
 
Linux 调度器内幕
Linux 内核继续不断发展并采用新技术,在可靠性、可伸缩性和性能方面获得了长足的发展。2.6 版本的内核最重要的特性之一是由 Ingo Molnar 实现的调度器。这个调度器是动态的,可以支持负载均衡,并以恒定的速度进行操作 —— O(1)。本文将介绍 Linux 2.6 调度器的这些属性以及更多内容。
    2006年9月7日  
 
GNU 线性编程工具包(GNU Linear Programming Kit),第 1 部分: 线性优化简介
GNU Linear Programming Kit 对于解决具有多种约束的数学问题来说是一个功能非常强大的工具。本文简要介绍了如何使用 GLPK(glpsol 客户机工具)和 GNU MathProg 语言来解决 Giapetto 的 Woodcarving 公司(一家玩具制造商)的作业优化问题。
    2006年9月4日  
 
对比 Linux on POWER 概要分析器
概要分析器有助于查明应用程序中的一些常见性能问题。本文将比较并对比 Linux on POWER 上三种常用的开放源码概要分析器:OProfile、gprof 和 tprof,它们可用于 SUSE 和 Red Hat Linux 发行版的最终用户和编程人员。为了演示每个概要分析器的优缺点(包括概要分析器在运行期间增加的任何开销),本文将概要分析一个简单的排序程序,合并了三个不同的排序算法。
    2006年8月31日  
 
Linux 线程模型的比较:LinuxThreads 和 NPTL
LinuxThreads 项目最初将多线程的概念引入了 Linux,但是 LinuxThreads 并不遵守 POSIX 线程标准。尽管更新的 Native POSIX Thread Library(NPTL)库填补了一些空白,但是这仍然存在一些问题。本文为那些需要将自己的应用程序从 LinuxThreads 移植到 NPTL 上或者只是希望理解有何区别的开发人员介绍这两种 Linux 线程模型之间的区别。
    2006年8月28日  
 
使用 Flex 和 Bison 更好地进行错误处理
尽管使用 Flex 和 Bison 生成程序非常简单,但是要让这些程序产生用户友好的语法和语义错误消息却很困难。本文将介绍 Flex 和 Bison 的错误处理特性,并展示如何使用它们,然后详细介绍它们的一些缺陷。
    2006年8月24日  
 
Linux 初始 RAM 磁盘(initrd)概述
Linux 初始 RAM 磁盘(initrd)是在系统引导过程中挂载的一个临时根文件系统,用来支持两阶段的引导过程。initrd 文件中包含了各种可执行程序和驱动程序,它们可以用来挂载实际的根文件系统,然后再将这个 initrd RAM 磁盘卸载,并释放内存。在很多嵌入式 Linux 系统中,initrd 就是最终的根文件系统。本文将探索 Linux 2.6 的初始 RAM 磁盘,包括如何创建以及如何在 Linux 内核中使用。
    2006年8月21日  
 
Linux 的魅力: 这个古老的机器:使用 X10 实现家庭自动化
80 年代人们的梦想之一是,有朝一日,每个人都拥有火箭汽车,计算机控制着家里的所有东西,比如灯。我们还没有拥有火箭汽车,但是 X10 协议使我们能够远程地开/关设备。在本文中,Peter Seebach 讲解如何使用现有的硬件和几百行简单的代码来设置和驱动 X10 设备。
    2006年8月17日  
 
LPI 202 考试准备: 网络故障诊断:中级管理(LPIC-2)主题 214
本文是由 7 篇文章 组成的介绍 Linux 上网络管理的系列教程的最后一篇。在本教程中,David Mertz 将继续带领大家准备 Linux Professional Institute Intermediate Level Administration(LPIC-2)Exam 202 的考试。本教程将回顾 LPI 202 系列教程,重点介绍如何使用已经介绍过的基本工具来修复网络问题。对工具的回顾分为两类:配置工具和诊断工具。
    2006年8月14日  
 
使用 Git 管理源代码
Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。我们可以自己下载这个软件用于对内核的 hack 分析,或者用来管理自己的软件开发项目。本文将向您展示如何使用 Git 工具开始分析 Linux 。
    2006年8月10日  
 
LSB 简介
目前 Linux 的发行版非常繁多,为了促进 Linux 不同发行版间的兼容性,LSB(Linux Standards Base)开发了一系列标准,使各种软件可以很好地在兼容 LSB 标准的系统上运行,从而可以帮助软件供应商更好地在 Linux 系统上开发产品,或将已有的产品移植到 Linux 系统上。
    2006年8月7日  
 
配置 FTP 服务器以支持 IPv6
下一代协议,Internet Protocol version 6 (IPv6),被广泛认为是 Internet 和网络世界的未来。这种认同已鼓励各个 IT 公司开发支持并使用 IPv6 地址格式进行相互通信的应用程序。在本文中,学习配置 File Transfer Protocol (FTP) 服务器以支持 IPv6,然后通过一个简单的使用 IPv6 地址的 Java 程序来与 FTP 服务器通信。
    2006年8月7日  
 
向 Linux Standard Base 进行移植
由于 Linux 是一个开放的操作系统,因此我们可以对其进行配置,将其汇编成适合特定需要的系统。然而,尽管多样性和众多选择为用户带来了很多益处,但是各种发行版本之 间的差异也给那些必须为大体相似但却存在少许区别的平台提供软件包并提供支持的软件开发人员带来了很多困扰。幸运的是,如果应用程序遵守 Linux Standard Base(LSB)规范,并且所使用的 Linux 也兼容 LSB 标准,那么这个应用程序就可以确保很好地运行。在本文中我们将对 LSB 进行探索,并学习如何将自己的代码移植到这种标准上。
    2006年8月3日  
 
Linux 引导过程内幕
引导 Linux 系统的过程包括很多阶段。不管您是引导一个标准的 x86 桌面系统,还是引导一台嵌入式的 PowerPC 机器,很多流程都惊人地相似。本文将探索 Linux 的引导过程,从最初的引导到启动第一个用户空间应用程序。在本文介绍的过程中,您将学习到各种与引导有关的主题,例如引导加载程序、内核解压、初始 RAM 磁盘以及 Linux 引导的其他一些元素。
    2006年7月26日  
 
LPI 202 考试准备: 系统安全性:中级管理(LPIC-2)主题 212
在本教程中,David Mertz 将继续带领大家准备 Linux Professional Institute Intermediate Level Administration(LPIC-2)Exam 202 的考试。本教程将根据需要从安全敏感网络服务器的角度来简要介绍一些与 Linux 有关的主题,包括路由、防火墙、NAT 转换以及相关工具的常见问题。本文将解决为 FTP 和 SSH 设置安全策略时存在的问题,回顾如何使用 tcpd、hosts.allow 以及相关的文件来实现通用的访问控制,还将介绍一些基本的安全监视工具,以及在什么地方可以找到安全资源。
    2006年7月20日  
 
Continuation 和高级流程控制
流程控制通常非常简单:包括序列化、选择和迭代等过程。很多一直在使用这些基本控制结构的程序员都曾经经历过一段困难的时间来确定哪种流程控制是必需的。本文将简要介绍有关 continuation 的内容,并向您展示如何用最新的方法来考虑流程控制的问题。
    2006年7月17日  
 
Fusyn + RTNPTL:Linux 实时健壮的同步机制
本文主要叙述了目前 Linux 环境需要提供健壮和实时同步机制的必要性,并提出了实现的一个方案。这种同步机制对于 linux 进一步开拓服务器市场是非常重要的,尤其是电信市场。
    2006年7月13日  
 
使用 BogoSec 分析软件安全性
BogoSec 是一个源代码评测工具,它封装了很多源代码扫描程序,会对目标代码调用这些程序,并得到一个最终分数,从而近似地反映代码的安全质量。本文讨论了 BogoSec 所采用的方法和实现,并给出了对很多测试用例运行 BogoSec 的结果,包括 Apache Web server、OpenSSH、Sendmail、Perl 等。
    2006年7月10日  
 
技巧:Vimdiff 使用
各种 IDE 大行其道的同时,传统的命令行工具以其短小精悍,随手可得的特点仍有很大的生存空间,这篇短文介绍了一个文本比较和合并的小工具:vimdiff。希望能对在 Unix/Linux 系统上进行开发的朋友有所帮助。
    2006年7月6日  
 
Python Web 框架,第 1 部分: 使用 Django 和 Python 开发 Web 站点
本系列文章一共有两篇,本文是其中的第一篇。在这一篇文章中,我们将展示 Django 的用法,Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 Web 应用程序框架。使用 Django,我们在几分钟之内就可以创建高品质、易维护、数据库驱动的应用程序。
    2006年7月3日  
 
Linux 内核中的 Device Mapper 机制
本文结合具体代码对 Linux 内核中的 device mapper 映射机制进行了介绍。Device mapper 是 Linux 2.6 内核中提供的一种从逻辑设备到物理设备的映射框架机制,在该机制下,用户可以很方便的根据自己的需要制定实现存储资源的管理策略,当前比较流行的 Linux 下的逻辑卷管理器如 LVM2(Linux Volume Manager 2 version)、EVMS(Enterprise Volume Management System)、dmraid(Device Mapper Raid Tool)等都是基于该机制实现的。理解该机制是进一步分析、理解这些卷管理器的实现及设计的基础。通过本文也可以进一步理解 Linux 系统块一级 IO的设计和实现。
    2006年6月29日  
 
使用 OpenLDAP 集中管理用户帐号
使用轻量级目录访问协议(LDAP)构建集中的身份验证系统可以减少管理成本,增强安全性,避免数据复制的问题,并提高数据的一致性。随着 Linux 的不断成熟,已经出现了很多工具用来简化用户帐号信息到 LDAP 目录的迁移。还开发了一些工具用来在客户机和目录服务器之间启用加密通信配置,并通过复制提供容错性。本文将向您展示如何配置服务器和客户机在 Red Hat Linux 上使用 OpenLDAP。
    2006年6月26日  
 
Linux ACL 体验
在安全管理日益重要的今天,传统的 Unix 文件系统的 UGO 权限管理方式已经无法满足日常系统管理工作的需要。而 ACL 机制逐渐成为主流的权限管理方式。本文主要介绍了在基于 Linux2.6 内核的发行版 Fedora Core 上进行的一些 ACL 基本功能的实验。
    2006年6月22日  
 
从头开始生成 SELinux
SELinux 是美国国家安全局对于强制访问控制的实现,是 Linux 上最杰出的新安全子系统。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。本文将向您展示如何手工转换一个非 SELinux 的系统,目的是展示 SELinux 是如何集成到系统中的。
    2006年6月19日  
 
LPI 202 考试准备: 网络客户端管理,中级管理 (LPIC-2) 主题 210
本系列包括 7 个教程 介绍了 Linux 上的中级网络管理。本教程是第 5 部分,David Mertz 继续帮助您准备参加 Linux Professional Institute 中级管理 (LPIC-2) 考试 202。在本教程中,您将学习几种协议在一个网络中的客户机上的网络设置的集中配置。DHCP 广泛用于建立到客户机器的基本联络,比如分配 IP 地址。在更高级别,NIS 和(更通常的)LDAP 用于网络中机器之间任意的共享信息。本教程还讨论了 PAM,这是一种灵活的、联网的用户身份认证系统。
    2006年6月15日  
 
使用 Lua 编写可嵌入式脚本
虽然编译性编程语言和脚本语言各自具有自己独特的优点,但是如果我们使用这两种类型的语言来编写大型的应用程序会是什么样子呢?Lua 是一种嵌入式脚本语言,它非常小,速度很快,功能却非常强大。在创建其他配置文件或资源格式(以及与之对应的解析器)之前,请尝试一下 Lua。
    2006年6月12日  
 
使用 Lua 编写可嵌入式脚本
虽然编译性编程语言和脚本语言各自具有自己独特的优点,但是如果我们使用这两种类型的语言来编写大型的应用程序会是什么样子呢?Lua 是一种嵌入式脚本语言,它非常小,速度很快,功能却非常强大。在创建其他配置文件或资源格式(以及与之对应的解析器)之前,请尝试一下 Lua。
    2006年6月12日  
 
LPI 202 考试准备,主题 208: Web 服务
本系列包括 7 个教程, 介绍了 Linux 上的中级网络管理。本教程是第 4 部分,David Mertz 继续帮助您准备参加 Linux Professional Institute 中级管理 (LPIC-2) 考试 208。这里,David Mertz 讨论了如何配置和运行 Apache HTTP 服务器及 Squid 代理服务器。
    2006年6月8日  
 
Eclipse for Linux on POWER 的安装和使用
Eclipse 是一个为构建软件提供开发平台和一组应用程序框架的开放源码社区。在本文中我们将学习如何安装并使用 Eclipse,尤其是为运行在基于 IBM POWER 处理器的系统上的 Linux 版本。我们还将通过几个示例 Java 和 C 程序来学习如何使用 Eclipse 来编译并运行应用程序。
    2006年6月5日  
 
XML 问题: 管道流微格式
XML 一种越来越常见的用法是让小段内容通过任意的处理工作流,就像 UNIX 管道中的文本那样。这些片段可能来自一个或多个文档,可以是整个文档也可以是其中的某些部分,也可能按需由其他来源综合而成,因此非常适合用流来描述。使用明确定义的 XML 或 XHTML 片段的微格式(microformat)方法非常适合于这种处理方式。本文介绍了一些这样的例子,即使用现有的 Python 和 Java(TM) 工具以及 hCard 和 hCalendar 微格式。
    2006年6月1日  
 
急性者的 WebSphere 优化:如何通过 20% 的工作获得 80% 的性能改善
本文向您介绍如何通过最少的工作优化 WebSphere Application Server V6 以获得最大的性能改善。它侧重于使用 wsadmin 和 Jython 进行命令行优化,而不是使用 GUI 技术。通过应用一些根据经验获得的方法,能够通过最少的管理工作使 WebSphere Application Server 最佳地利用可用的硬件资源。这里描述的技术适用于任何性能优化问题——只有某些特定经验方法是特定于 WebSphere 的。
    2006年5月29日  
 
将 Samba 用作主域控制器
开源 Samba 可将 UNIX 或 Linux 系统转换为供 Microsoft Windows 网络客户端使用的文件或打印服务器。Tom Syroid 为您提供了一个有趣的教程,演示了如何在 xSeries 服务器上将 Samba 配置为主域控制器。
    2006年5月25日  
 
为商业 UNIX 系统重新组织您的 Linux 技能
在本教程中,您将了解到如何更好地将您的 Linux 技能迁移到 AIX 和 Solaris 中。Linux 正大行其道,但如果您已经具有 Linux 的使用经验并需要将其应用于商业 UNIX 环境,那应该怎么办呢?UNIX 和 Linux 有很多相似之处,并存在许多相同的原理;同样使用 Shell,root 用户依然拥有强大的功能,并且许多工具和应用程序也都是一样的。但应该如何理解两者之间的细微差别和不同呢?
    2006年5月25日  
 
LPI 102 考试准备,主题 106: 引导、初始化、关机和运行级别
在这个教程中,Ian Shields 继续帮助您准备参加 Linux Professional Institute 初级管理(LPIC-1)考试 102。这是 共有 9 个教程的系列 中的第二个教程。在这个教程中,Ian 向您介绍 Linux 的启动和关闭。在学完本教程之后,您将掌握如何引导系统、设置内核参数以及关闭或重新引导系统。
    2006年5月25日  
 
使用 MPI 的高性能集群,第 2 部分: 使用 ch_p4mpd 在 OpenPower 720 上安装和配置 MPI
设置集群的方法有很多种。本系列文章专注于如何设置高性能集群。您将了解到如何在两种不同的模式下构建和安装 Message Passing Interface (MPI)。本系列的第 1 部分涉及到使用 ch_p4,而第 2 部分则包含了 ch_p4mpd。
    2006年5月25日  
 
使用 MPI 的高性能集群,第 1 部分: 使用 ch_p4 在 OpenPower 720 上安装和配置 MPI
设置集群的方法有很多种。本系列文章专注于如何设置高性能集群。您将了解到如何在两种不同的模式下构建和安装 Message Passing Interface (MPI)。本系列的第 1 部分涉及到使用 ch_p4,而第 2 部分则包含了 ch_p4mpd。
    2006年5月25日  
 
在 Linux 中使用 ReiserFS 文件系统
查看 ext2(第二版扩展文件系统)、ext3(第三版扩展文件系统)和 Reiser4 文件系统,并研究如何创建您自己的 Reiser4 文件系统。ext2 是最常用的文件系统,也是传统 UNIX(R) 风格的文件系统,但它对最新式硬盘大小的兼容性不是很好。ext3 文件系统添加了日记记录功能,而其他方面并没有多大变化。如果您想获得真正的高级技术,那么您可能打算研究最近的 Reiser4 文件系统。
    2006年5月25日  
 
让 UNIX 和 Linux 一起工作
了解如何使用网络信息服务(Network Information Service,NIS)来在 Linux(R) 和 UNIX(R) 间共享核心数据库,以及如何使用网络文件系统(Network File System,NFS)来通过直接链接或自动加载器共享文件系统。尽管 UNIX 和 Linux 相似,但二者之间仍然存在一些差异,可能会导致集成这两个系统的过程复杂化。例如,这两类系统均采用相同的身份验证系统,但大部分系统都是彼此独立的。通过共享此身份验证信息,可以为网络中的任何服务器提供单点登录(single sign-on,SSO)功能。
    2006年5月25日  
 
Linux 和 Xdmx 的分布式多线程支持
学习在开发可以提高计算体验的多屏幕配置和物理布局时可以使用的工具。可以用 Linux 和 Xdmx 创建一个跨越独立计算机的多个显示设备的连续桌面。把运行 Linux 的笔记本计算机和台式计算机组合在一起,创建一个大型显示器,以提高生产效率。研究在不需要购买图形卡的情况下如何设置大型显示墙和创建多线程设置。
    2006年5月23日  
 
Linux2.6 内核的 Initrd 机制解析
Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。本文首先介绍了什么是 initrd 技术,然后分别介绍了 Linux2.4 内核和 2.6 内核的 initrd 的处理流程。最后通过对 Linux2.6 内核的 initrd 处理部分代码的分析,使读者可以对 initrd 技术有一个全面的认识。为了更好的阅读本文,要求读者对 Linux 的 VFS 以及 initrd 有一个初步的了解。
    2006年5月23日  
 
IBM NFS/DFS Authentication Gateway
本文介绍如何利用 Network File System Version 4 (NFS Version 4) 现在提供的新特性。随着大型企业的存储需求不断增长和 NFS 实现提供的特性越来越多,对于企业而言,迁移到 NFS Version 4 具有重要的商业意义。在本文中,我们将讨论在 AIX(R) 和 Linux(R) 上从 IBM Distributed Computing Environment (DCE)/Distributed File System(TM) (DFS(TM)) 基础结构迁移到 NFS Version 4 on 的必要性和不同策略。
    2006年5月20日  
 
将 Linux 应用程序移植到 64 位系统上
随着 64 位体系结构的普及,针对 64 位系统准备好您的 Linux 软件已经变得比以前更为重要。在本文中,您将学习如何在进行语句声明、赋值、位移、类型转换、字符串格式化以及更多操作时,防止出现可移植性缺陷。
    2006年5月18日  
 
功能丰富的 Perl: Perl 书籍,第 2 部分
本文将介绍系统管理的两个不同层次。Unix Power Tools,Shelley Powers、Jerry Peek、Tim O'Reilly 和 Mike Loukides 著,采用一种简单易读的方式介绍了系统管理的基本知识,这对于系统管理人员来说是一本必读书籍。Analytical Network and System Administration,Mark Burgess 著,向那些具有坚实的计算机科学和数学理论知识的系统管理员介绍一些高级主题。
    2006年5月15日  
 
通过 Perl 编程访问 DB2 Universal Database
在本文中,我们将学习如何编写简单的 Perl 程序来提取或操作 IBM DB2 UDB 中存储的数据。我们将从一个简单的任务入手:从数据库中选择一行数据放入一个 Perl 程序中;逐步介绍一些高级主题,包括处理大对象和调用存储过程。
    2006年5月12日  
 
LPI 102 考试准备:内核,初级管理(LPIC-1)主题 105
在这个教程中,Ian Shields 开始帮助您准备参加 Linux Professional Institute 初级管理(LPIC-1)考试 102。这是共有 9 个教程的系列中的第一个教程。在这个教程中,Ian 向您介绍 Linux 的内核。在学完本教程之后,您将掌握如何构建、安装和查询 Linux 内核及其内核模块。
    2006年5月11日  
 
Linux 内核的文件 Cache 管理机制介绍
文件 Cache 管理是 Linux 内核中一个很重要并且较难理解的组成部分。本文详细介绍了 Linux 内核中文件 Cache 管理的各个方面,希望能够对开发者理解相关代码有所帮助。
    2006年5月11日  
 
使用 GNU profiler 来提高代码运行速度
改进应用程序的性能是一项非常耗时耗力的工作,但是究竟程序中是哪些函数消耗掉了大部分执行时间,这通常都不是非常明显的。在本文中我们将学习如何使用 gprof 为 Linux 平台上的用户空间和系统调用精确分析性能瓶颈。
    2006年5月8日  
 
DSL Linux:集成了大量软件包的小型发行版
您需要一个名片大小的将大量软件集成到有限空间的小型开放源码操作系统吗?您可以了解一下 DSL Linux。这篇快速简介将向您展示如何使用这个小型的操作系统,重点介绍了几个应用程序,详细介绍了如何加载和启动这个操作系统,并介绍了如何在使用一个可引导 CD 时在两次会话之间保存设置。
    2006年4月30日  
 
功能丰富的 Perl: Perl 书籍,第 1 部分
本文将介绍对任何 Perl 库都非常有用的两本书籍,一本是面向初学者的 Randal Schwartz's Perls of Wisdom,Randal Schwartz 著;另外一本更高级的是 Higher-Order Perl,Mark Jason Dominus 著。
    2006年4月27日  
 
使用 /proc 文件系统来访问 Linux 内核的内容
/proc 文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在 Linux 内核空间和用户空间之间进行通信。在 /proc 文件系统中,我们可以将对虚拟文件的读写作为与内核中实体进行通信的一种手段,但是与普通文件不同的是,这些虚拟文件的内容都是动态创建的。本文对 /proc 虚拟文件系统进行了介绍,并展示了它的用法。
    2006年4月24日  
 
连接器(Netlink Connector)及其应用
本文详细介绍了 Linux 2.6 内核引入的内核空间与用户空间通信的新机制连接器,并通过典型示例讲解了它的使用。
    2006年4月20日  
 
在双引导 Linux 系统上实现 OS 自动切换
利用本文中介绍的这些技巧,我们可以在一个双引导的机器上自动从一个操作系统切换到另外一个操作系统,无需任何人工干预。您可以使用本文提供的脚本在自己的机器上复制这种同时运行 Linux 和 Windows 的设置。
    2006年4月17日  
 
Gtk2-perl 编程: 控件编程
这篇文章是"Gtk2-perl 编程"的后续,上篇文章只是简单的介绍了 Gtk2-perl 编程的概念与大方面的问题,从本篇开始,我们来详细的介绍一下 Gtk2-perl 的各个部分。本文主要向大家介绍 Gtk2-perl 中的控件。
    2006年4月13日  
 
使用 SCTP 优化网络
流控制传输协议(Stream Control Transmission Protocol,SCTP)是一种可靠的传输协议,它在两个端点之间提供稳定、有序的数据传递服务(非常类似于 TCP),并且可以保护数据消息边界(例如 UDP)。然而,与 TCP 和 UDP 不同,SCTP 是通过多宿主(Multi-homing)和多流(Multi-streaming)功能提供这些收益的,这两种功能均可提高可用性。在本文中,我们将学习 Linux 2.6 内核中 SCTP 的关键特性,并通过服务器和客户机的源代码了解该协议提供多流的能力。
    2006年4月10日  
 
使用 FUSE 开发自己的文件系统
使用用户空间的文件系统(FUSE),您无需理解文件系统的内幕,也不用学习内核模块编程的知识,就可以开发用户空间的文件系统框架。本文是一篇简单的逐步介绍的指南,内容包括安装、定制和启用 FUSE 和 AFS,这样您就可以在 Linux 的用户空间中创建自己的功能完备的文件系统了。
    2006年4月10日  
 
元编程艺术,第 3 部分:企业元编程
随着图形化工具和文本工具不断使编程任务变得更加简单和更容易描述,企业元编程也正在变得更加常见,这是因为在对象管理组(Object Management Group,OMG)的模型驱动架构(Model Driven Architecture,MDA)中不断进行了形式化处理。本文是 3 篇系列文章中的第 3 篇,探索了元编程的缺陷,介绍了 MDA 以及它可以解决的问题,并给出了一个使用 MDA 的文本系统的简短实例。
    2006年4月3日  
 
使用 Service Location Protocol 自动化客户机的管理
Service Location Protocol(服务位置协议,SLP)是一个 Internet 标准 RFC,也是一套软件框架,它允许网络应用程序发现并配置网络服务。您可以使用 SLP 来开发零配置的应用程序,并简化网络互连设备的管理。本文首先简要介绍 SLP 及其架构的内容,然后使用一个开放源码实现来展示该协议的用法。
    2006年4月3日  
 
Linux 上的 Apache、Cloudscape 和 PHP
您想知道如何从头构建 PHP 数据库应用程序吗?这个教程向您讲解如何安装 IBM DB2 Run Time Client,从而访问 IBM Cloudscape 数据库。我们还将安装和配置 Apache Web 服务器以驻留应用程序,以及编译和配置 Apache 的 PHP 模块。本教程的最后一部分讲解如何使用 Cloudscape Network Server 和 Apache 来检验数据库应用程序。
    2006年3月28日  
 
LPI 101 考试准备:X Window 系统,初级管理(LPIC-1)主题 110
在本教程中,Ian 将向我们介绍 Linux 上的 X Window 系统。在学习完本教程之后,您将了解如何安装并维护 X Window 系统。这个教程的内容涉及了 Linux 上 X 使用的主要包:XFree86 和 X.Org。
    2006年3月27日  
 
Vim 实用技术,第 2 部分: 常用插件
第一部分介绍了一些基本的 Vim 使用技巧。掌握这些技巧可以很大地提高编辑效率,但是 Vim 的强大功能并不仅限于此。Vim 还可以通过“插件”来进行功能扩展。精确地说,是通过脚本来进行扩展,脚本类型有插件、语法加亮、配色方案、文件类型检测等多种。大部分的脚本都是由 Vim 的用户写的,解决了用户身边的问题,使 Vim 变得更加有用。本章将介绍最常用的一些脚本,其中除了一个属于“语法加亮”脚本外,其它都属于“插件”类型。关于如何写脚本的一些基础知识将在下一部分进行一些介绍。
    2006年3月22日  
 
Vim 实用技术,第 1 部分: 实用技巧
本系列文章分三部分详细阐述了 Vim 的使用技巧、插件、定制。第一部分主要是深入分析了 Vim 的使用。
    2006年3月22日  
 
Vim 实用技术,第 3 部分: 定制 Vim
前面两部分讲的都是如何使用现有的 Vim 系统,本部分则会通过实例来讲如何定制 Vim 的行为。良好的定制可以让使用 Vim 变得更为得心应手;同时,在掌握了基本的定制之后,也许你就会想进一步写一些自己的 Vim 脚本,从而真正地成为一个 Vim 专家。
    2006年3月22日  
 
以娱乐 LiveCD 丰富您的桌面
无需经过冗长的安装和配置即可在 Linux 系统上听音乐、观看 DVD。在本文中您将了解 4 种软件包:MoviX2、GeeXBoX、WOMP! 和 LLGP,它们可将娱乐融入您的计算机。
    2006年3月20日  
 
在 Linux LiveCD 上分发软件
Linux LiveCD 将操作系统和应用程序全部置于一张 CD 上,在压缩性、可移植性和/或安全性是您考虑的重点时,这是一种分发软件的便捷方法。
    2006年3月20日  
 
Samba 的基于 LDAP 的身份验证
本教程讲解如何使用安全的基于 LDAP 的身份验证机制将 Samba 安装和配置为主域控制器。还描述如何为基于 PAM 的身份验证配置 LDAP 服务器 OpenLDAP,以及如何用 Transport Layer Security(TLS)保护 Samba 和 OpenLDAP 之间的链路。完整的系统包括安全的文件共享和打印共享设置,以及健壮的 LDAP 服务器,这些设施支持的功能甚至超出了 Samba 的需要。另外,Windows 客户机能够登录到作为主域控制器的 Samba 服务器,并能够根据它们的组成员关系共享自动挂装的驱动器。
    2006年3月16日  
 
元编程艺术,第 2 部分:用 Scheme 进行元编程
元编程 ―― 编写代码生成器或编写本身编写代码的程序 ―― 有许多有用的属性,比如简化代码维护以及制作样板代码。本系列的第一篇文章解释了为什么需要进行元编程,研究了元编程的一些组件,展示了如何构建代码生成器,并介绍对语言敏感的宏编程。在本文中,学习 Scheme 编程语言中的元编程技术和应用,展示如何编写宏以及它们如何显著地简化大型编程任务。
    2006年3月16日  
 
使用 R 编写统计程序,第 3 部分:可重用和面向对象编程
R 是一种作为自由软件发布的富统计环境,其中包括一种编程语言、一个交互式 shell 以及丰富的图形功能。本文延续 David 的前两期文章(与 Brad Huntting 一起编写),研究 R 中的面向对象以及 R 中的其他一些一般编程概念。
    2006年3月13日  
 
通过网络在 IBM p5 服务器上安装 Enterprise Linux
在本文中,您将学习如何通过网络引导 eServer(TM) p5 服务器并在服务器上安装 Red Hat(R) Enterprise Linux(R)。需要在 eServer p5 服务器上安装 Linux 的测试人员、开发人员和技术支持人员都能够从本文中获益。在开始安装过程之前,需要基本了解 Red Hat 或 Enterprise Linux 安装、Linux 网络配置和使用 Hardware Management Console(HMC)进行 p5 服务器 LPAR 操作。
    2006年3月6日  
 
通过网络在 IBM p5 服务器上安装 Enterprise Linux
在本文中,您将学习如何引导 eServer™>||CHR(59)||< p5 服务器并通过网络在服务器上安装 Red Hat Enterprise Linux。需要在 eServer p5 服务器上安装 Linux 的测试人员、开发人员和技术支持人员都能够从本文中获益。在开始安装过程之前,需要基本了解 Red Hat 或 Enterprise Linux 安装、Linux 网络配置和使用 Hardware Management Console(HMC)进行 p5 服务器 LPAR 操作。
    2006年3月6日  
 
Linux 上的 Apache、Cloudscape 和 PHP:成功的组合
您想知道如何从头构建 PHP 数据库应用程序吗?这个教程向您讲解如何安装 IBM DB2 Run Time Client,从而访问 IBM Cloudscape 数据库。我们还将安装和配置 Apache Web 服务器以驻留应用程序,以及编译和配置 Apache 的 PHP 模块。本教程的最后一部分讲解如何使用 Cloudscape Network Server 和 Apache 来检验数据库应用程序。
    2006年2月23日  
 
探索 Linux 内存模型
在这篇 Linux 内存模型指南中,我们将学习如何构建和管理内存方面的基础知识。本指南介绍了内存控制单元、分页模型方面的内容,并详细介绍了物理内存区域方面的知识。
    2006年2月23日  
 
探索 Linux 内存模型
在这篇 Linux 内存模型指南中,我们将学习如何构建和管理内存方面的基础知识。本指南介绍了内存控制单元、分页模型方面的内容,并详细介绍了物理内存区域方面的知识。
    2006年2月23日  
 
在 Linux 下用户空间与内核空间数据交换的方式,第 2 部分: procfs、seq_file、debugfs 和 relayfs
本系列文章包括两篇,它们文详细地地介绍了Linux系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数、模块参数与 sysfs、sysctl、系统调用、netlink、procfs、seq_file、debugfs和relayfs,并给出具体的例子帮助读者掌握这些技术的使用。本文是该系列文章的第二篇,它介绍了 procfs、seq_file、debugfs 和 relayfs,并结合给出的例子程序详细地说明了它们如何使用。
    2006年2月16日  
 
在 Linux 下用户空间与内核空间数据交换的方式,第 1 部分: 内核启动参数、模块参数与sysfs、sysctl、系统调用和netlink
本系列文章包括两篇,它们文详细地介绍了 Linux 系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数、模块参数与 sysfs、sysctl、系统调用、netlink、procfs、seq_file、debugfs和relayfs,并给出具体的例子帮助读者掌握这些技术的使用。 本文是该系列文章的第一篇,它介绍了内核启动参数、模块参数与sysfs、sysctl、系统调用和netlink,并结合给出的例子程序详细地说明了它们如何使用。
    2006年2月16日  
 
提高 Linux 上 socket 性能
使用 Sockets API,我们可以开发客户机和服务器应用程序,它们可以在本地网络上进行通信,也可以通过 Internet 在全球范围内进行通信。与其他 API 一样,您可以通过一些方法使用 Sockets API,从而提高 Socket 的性能,或者限制 Socket 的性能。本文探索了 4 种使用 Sockets API 来获取应用程序的最大性能并对 GNU/Linux® 环境进行优化从而达到最好结果的方法。
    2006年2月13日  
 
从 2.4 到 2.6:Linux 内核可装载模块机制的改变对设备驱动的影响
从 2.4 到 2.6,Linux 内核在可装载模块机制、设备模型、一些核心 API 等方面发生较大改变,设备驱动开发人员面临着将驱动从 2.4 移植到 2.6 内核,或是使驱动同时支持2.4 与 2.6 内核的任务。站在设备驱动开发人员的角度,驱动由一个或几个外部可加载内核模块组成,本文针对 2.6 内核里模块机制的改变对编写设备驱动程序的影响,从内核模块的编译、装载时的版本检查、初始化与退出、模块使用计数、输出内核符号、命令行输入参数、许可证声明等方面比较了 2.4 与 2.6 内核的区别;并总结了使设备驱动同时支持 2.4 与 2.6 内核的一系列模板。
    2006年2月9日  
 
使用 MD5 加密来增强 Linux 上 Java 应用程序的安全性
UNIX/Linux PAM 兼容系统使用了这样一种认证机制,即以 crypt() 系统调用的 GNU MD5 扩展为基础。本文对这些扩展进行了介绍,并向您展示了 MD5 加密的一种 Java 实现,它可以与 UNIX/Linux 系统兼容。
    2006年2月6日  
 
使用诊断 LiveCD 恢复受危害的系统
您希望不用经过冗长的系统安装和配置过程就可以评估 Linux 系统的完整性并恢复丢失的数据吗?Helix 和 Plan-B 这两个软件包将通过 LiveCD 的神奇力量帮助您获得这种能力。
    2006年1月31日  
 
LPI 101 考试准备: 设备、Linux 文件系统与 FHS
在本教程中,Ian 向您介绍 Linux 设备、文件系统和文件层次标准(FHS)。在学完本教程之后,您将知道如何用不同的 Linux 文件系统创建和格式化分区,以及如何管理和维护这些系统。
    2006年1月26日  
 
针对 Windows 的 Linux 屏幕保护程序
您可以创建并打包一个 Linux® LiveCD,这样它就可以使用标准的 Microsoft® Windows® 安装过程进行安装,并能像标准的 Windows 屏幕保护程序一样进行工作。本文回答了人们对于开放源码软件最为关心的两个问题,并会展示 Linux 的确可以在 Windows 上运行。
    2006年1月23日  
 
Linux 的魅力: Zaurus 引领嵌入式 Linux
Sharp Zaurus 手持式系统是嵌入式 Linux 系统的一个先锋,Peter Seebach 认为在一种技术早期出现时就为其贡献自己的力量是一个好主意。在这个“Linux 的魅力”系列文章中,Peter 将对 Zaurus SL-5600 进行一下拆解,从而更好地了解一下它的历史。
    2006年1月16日  
 
为 Linux 安装触摸屏
从历史发展上来说,缺乏友好的界面一直都阻碍着 Linux 成为终端用户的一个商业产品;但是 Linux 的确是有 GUI 的,这已经是昨日新闻了。那么为消费者创建一个易于使用的 Linux 产品的下一个步骤是什么呢?我们来假设一下面向用户的 LCD 触摸屏的情况。前端触摸屏可以让后台的 Linux 应用程序在多种设备中非常有用,例如定制的数字媒体中心(可以是家里,也可以是汽车中)、DVR、PVR 甚至是家用机器人所使用的控制界面。潜在的用户到底有多少,这完全取决于您的想像。在本文中,我们将概要介绍如何安装一个 Sony PSone 的 LCD,创建一个 modeline,并安装一个触摸屏 -- 所有这些都是在 Linux 上进行的。
    2006年1月9日  
 
Gtk2-perl 编程
作为 Perl Gui 编程的一颗闪亮点,Gtk2-perl 给我们带来了全新的 Gui 编程能力。本文就讲述了 gtk2-perl 编程的一些基本要领,以及入门所必知的几点知识,并且在文中我们还展示了一个简易的浏览器的编写过程。
    2006年1月5日  
 
LPI 202 考试准备,主题 207:域名系统(DNS)
本文是 7 篇介绍 Linux 上网络管理系列教程的第 3 篇。在本教程中,David Mertz 将简要介绍 DNS 方面的知识,并讨论如何使用 Linux 作为一个 DNS 服务器,主要是使用 BIND 9。作者将展示如何设置和配置服务、如何创建正向和反向查找区域(zone)以及如何确保服务器可以安全地免受攻击。
    2006年1月4日  
 
LPI 202 考试准备: 邮件和新闻,中级管理(LPIC-2)主题 206
本文是 7 篇介绍 Linux 上中级网络管理系列教程的第 2 篇。在本教程中,David Mertz 将讨论如何使用 Linux 作为一个邮件服务器和一个新闻服务器。总体来说,e-mail 可能是 Internet 上最为重要的一种应用,Linux 可能是运行 e-mail 服务的最佳平台。本教程将介绍邮件传输、本地邮件过滤以及邮件列表维护软件等方面的内容。本教程还将简要讨论 NNTP 协议使用的服务器软件。
    2005年12月27日  
 
JFFS2 文件系统及新特性介绍
这篇文章首先分析了在闪存上使用 JFFS2 的必要性,然后详细的阐述了 JFFS2 实现的内部机制,包括日志结构的文件系统,关键的数据结构,挂载过程和垃圾收集机制。同时也指出了 JFFS2 的局限性,并介绍了最新的针对 JFFS2 的不足进行改进的补丁程序。最后对 JFFS3 的设计思想和现在的开发状况给予了简单的介绍。
    2005年12月22日  
 
将信号用作 Linux 调试工具
通过重点分析使用信号处理程序捕获到的数据,您可以加速调试过程中耗时最多的一个步骤:寻找 bug。本文介绍了 Linux 信号的背景知识,并给出了已在 PPC Linux 上测试通过的示例,然后介绍如何设计自己的信号处理程序来输出信息,从而快速定位代码中有问题的部分。
    2005年12月19日  
 
LPI 101 考试准备: GNU 和 UNIX 命令
GUI 是很不错,但是要想充分发挥 Linux 真正的能力,没有什么能够替代命令行。本教程向您介绍 Linux 命令行以及一些 GNU 和 UNIX 命令。学完本教程之后,您将熟悉如何在 Linux 系统上使用命令。
    2005年12月15日  
 
Linux 系统内核的调试
本文将首先介绍 Linux 内核上的一些内核代码监视和错误跟踪技术,这些调试和跟踪方法因所要求的使用环境和使用方法而各有不同,然后重点介绍三种 Linux 内核的源代码级的调试方法。
    2005年12月12日  
 
LPI 202 考试准备(主题 205):网络配置
本教程是 7 篇介绍 Linux 上网络管理系列教程的第 1 篇。在本教程中,David Mertz 将向您介绍如何配置基本的 TCP/IP 网络,内容从硬件层(通常是以太网、modem、ISDN 或 802.11)到网络地址的路由。后续教程中将介绍对这些配置网络进行操作的高级服务器。
    2005年12月8日  
 
在 Linux 中处理来自共享对象的同步事件
尽管在诸如 C++ 之类的高级语言中有效地利用共享内存并不简单,但是我们是可以克服这些内在困难的。本文将介绍两种在 Linux 上用来使用共享内存的 C++ 设计模式,并给出了一些样例代码;这些方法非常有用,它们打开了更有效地进行进程间通信的大门。
    2005年12月5日  
 
在 Linux 上处理来自共享对象的同步事件
尽管在诸如 C++ 之类的高级语言中有效地利用共享内存并不简单,但是我们是可以克服这些内在困难的。本文将介绍两种在 Linux 上用来使用共享内存的 C++ 设计模式,并给出了一些样例代码;这些方法非常有用,它们打开了更有效地进行进程间通信的大门。
    2005年12月5日  
 
Linux 上的中断和硬件模拟,第 1 部分:为虚拟设备驱动程序开发建立一个环境
这个系列的文章一共有两篇,介绍的是如何实现中断和硬件的模拟,目的是简化驱动程序的开发。本文是第 1 部分,介绍各种策略和实现细节,您可以对中断模拟应用它们,包括前提条件、硬件、软件设置和用来测试中断服务例程(ISR)的测试用例。
    2005年11月28日  
 
高性能的 Linux 集群,第 2 部分:构建一个工作集群
高性能计算(HPC)正在越来越变得简单,这是由于两个原因:开放源码软件概念的采用,以及集群技术的精练。本文是两篇系列文章中的第二篇,讨论了如何使用 MPI 进行并行编程,并概要介绍了集群管理和基准测试技术。本文还介绍了如何使用 OSCAR 来构建一个 Linux 集群,这是一个用来构建健壮集群的开放源码项目。
    2005年11月24日  
 
inotify -- Linux 2.6 内核中的文件系统变化通知机制
本文详细地介绍了在 Linux 2.6.13 内核中新引入的文件系统变化通知机制 inotify,并举例说明了它的使用与典型应用案例。
    2005年11月24日  
 
元编程艺术,第 1 部分:元编程简介
目前应用最广泛的技术之一是编写生成其他程序或部分程序的程序。十分有必要学习为什么要采用元编程,以及元编程都有哪些组件(文本宏语言,专用代码生成器)。在本文中,您将学习到如何构建一个代码生成器,并详细了解如何使用 Scheme 编写对语言敏感的宏。
    2005年11月21日  
 
使用 Ruby 进行 socket 编程
本教程将向您介绍如何使用 Ruby 开发基于 socket 的网络应用程序。作者首先介绍了一些 Ruby 的基础知识,然后介绍一些对于 socket 编程最重要的类,最后通过一个聊天应用程序来展示这些类的用法。本教程最后将介绍一些高级类,它们可以简化构建动态 Web 服务器、邮件服务器和客户机以及实现其他应用层协议的工作。
    2005年11月17日  
 
管理处理器的亲和性(affinity)
了解 Linux 2.6 调度器如何处理 CPU 亲和性(affinity)可以帮助您更好地设计用户空间的应用程序。软亲和性(affinity)意味着进程并不会在处理器之间频繁迁移,而硬亲和性(affinity)则意味着进程需要在您指定的处理器上运行。本文介绍了当前的 亲和性(affinity)机制,解释为什么和如何使用亲和性(affinity),并给出了几个样例代码来显示如何使用这种功能。
    2005年11月14日  
 
使用 Python 进行 socket 编程
本教程将向您介绍如何使用 Python 开发基于 socket 的网络应用程序。在本教程中,您将首先学习一些 Python 的基础知识,并了解 Python 是如何成为一种很好的网络编程语言的。然后您将着重了解 Python 的基本 socket 特性,我们使用了一个样例聊天程序作为参考;并了解一下可以提供异步通信的其他高级类。
    2005年11月10日  
 
功能丰富的 Perl: Perl 增强了对 Unicode 的支持
尽管到 Perl 6 中才宣称完全支持 Unicode,但是在 Perl 5.8.6 中内嵌的对 Unicode 的支持已经足以开始编写本地化的应用程序了。Ted 使用自己所钟爱的编辑器 Yudit,介绍了 Perl 如何读取、解释和处理 UTF-8 编码的 Unicode。
    2005年11月7日  
 
Linux on POWER 上的动态逻辑分区
POWER5(TM)体系结构的一个强大特性是它可以支持通过逻辑分区(LPAR)进行服务器的合并。动态逻辑分区提高了分区系统的灵活性,它让管理员可以添加、删除或在分区之间移动系统资源,而不用重新启动分区。本文是为 Linux(R) on POWER(TM) 系统管理员或应用程序开发人员而编写的,帮助他们学习如何在 Linux 上使用动态 LPAR,如何使用它来控制一个分区的资源,如何确定这些资源的变化。
    2005年11月7日  
 
Mono 把 .NET 应用程序移植到 Linux
Mono 是基于 .NET 的开放源码开发平台,它让您可以使用各种 .NET 兼容语言创建强大、灵活的 Linux 应用程序,同时利用跨平台的能力。本文带领您在系统上安装 Mono,并开发第一个用 Mono 编译的可同时在 Linux 和 Windows 上运行的 C# 应用程序。
    2005年10月31日  
 
LPI 201 考试准备: 故障诊断,中级管理 (LPIC-2) 主题 214
在本教程中,Brad Huntting 和 David Mertz 继续帮助您准备 Linux Professional Institute 中级管理(LPIC-2)考试 201。这是八期教程的最后一期,主要讨论出现问题的时候怎么办。很多内容在前面的教程中已经详细地介绍过了。
    2005年10月24日  
 
LPI 201 考试准备: 系统定制和自动化,中级管理 (LPIC-2) 主题 213
在本教程中,David Mertz 和 Brad Huntting 继续帮助您准备 Linux Professional Institute 中级管理(LPIC-2)考试 201。本系列教程分 8 个部分,这是第 7 部分。在这一部分中,介绍编写脚本自动处理系统事件的基本方法,包括报告和状态的生成、清除和一般维护。
    2005年10月24日  
 
LPI 201 考试准备: 系统维护,中级管理 (LPIC-2) 主题 211
在本教程中,David Mertz 继续帮助您准备 Linux Professional Institute 中级管理(LPIC-2)考试 201。本系列教程分 8 个部分,这是第 6 部分。在这一部分中,您将学习系统日志、软件打包和备份策略的基本概念。
    2005年10月24日  
 
LPI 201 考试准备: 文件和服务共享,中级管理 (LPIC-2) 主题 209
在本教程中,Brad Huntting 和 David Mertz 继续帮助您准备 Linux Professional Institute 中级管理(LPIC-2)考试 201。本系列教程分 8 个部分,这是第 5 部分。在这一部分中,您将学会如何通过 Linux 支持的几种协议把 Linux 系统用作网络文件服务器。
    2005年10月24日  
 
LPI 201 考试准备: 硬件,中级管理 (LPIC-2) 主题 204
在本教程中,David Mertz 和 Brad Huntting 继续帮助您准备 Linux Professional Institute 中级管理(LPIC-2)考试 201。本系列教程分 8 个部分,这是第 4 部分。在这一部分中,您将学会如何为 Linux 系统添加和配置硬件,包括 RAID 阵列、PCMCIA 卡、其他存储设备、显示器、视频控制器和其他组件。
    2005年10月24日  
 
LPI 201 考试准备: 文件系统,中级管理 (LPIC-2) 主题 203
在本教程中,David Mertz 继续帮助您准备参加 Linux Professional Institute 中级管理 (LPIC-2) 考试 201。本系列教程分 8 个部分,这是第 3 部分。在这一部分中,您将学习如何控制文件系统的安装和卸载、检查现有的文件系统、创建文件系统以及在受损的文件系统上执行修复操作。
    2005年10月24日  
 
LPI 201 考试准备: 系统启动,中级管理 (LPIC-2) 主题 202
在本教程中,David Mertz 继续帮助您准备参加 Linux Professional Institute 中级管理 (LPIC-2) 考试 201。本系列教程分 8 个部分,这是第 2 部分。在这一部分中,您将学习 Linux 系统在系统初始化期间所经历的步骤,以及如何针对您的特定需要来进行修改和定制。
    2005年10月24日  
 
LPI 201 考试准备:Linux 内核,中级管理 (LPIC-2) 主题 201
在本教程中,David Mertz 开始帮助您准备参加 Linux Professional Institute 中级管理(LPIC-2)考试 201。本系列教程分 8 个部分,这是第 1 部分。在这一部分中,您将学会如何理解、编译和定制 Linux 内核。
    2005年10月24日  
 
自动进行团队构建和单元测试过程
极限编程和敏捷方法建议开发过程要包含持续集成和单元测试。支持这些实践的一个实际方法是设置一个自动系统,每当源代码发生变化时,都自动构建和测试源代码的最新版本。这篇文章将介绍为 Java 项目建立基于 Linux 的构建服务器时涉及的实际问题。
    2005年10月24日  
 
Linux 上的 DB2 内存和文件缓存性能调优
内存的使用和文件缓存是彼此相关的两个部分,它们一起影响着性能,在对数据库系统进行调优时,要重点考虑这两个方面。本文总结了 Linux 上特有的一些 DB2 UDB 特性,以便充分利用这些重要的系统资源。
    2005年10月24日  
 
可爱的 Python: 深入 PEAK 的新特性
Python Enterprise Application Kit (PEAK)是一个用于快速开发和重用应用程序组件的框架。当 Python 自己已经成为一种高级语言之后,PEAK 还可以提供更高级的抽象。最近在 PEAK 中添加的一个功能是创建通用函数,并根据断言进行分派,而不只是根据类型进行分派。听起来很神秘?下面我们来详细了解一下。
    2005年10月20日  
 
高性能的 Linux 集群,第 1 部分:集群基础
高性能计算(HPC)正在变得越来越简单,这是由于两个原因:开放源码软件概念的采用,以及集群技术的精炼。本文是两篇系列文章中的第一篇,讨论了集群的类型、用途以及在 HPC 领域变得更加流行的原因、HPC 基础以及 Linux 在 HPC 中的角色。
    2005年10月17日  
 
如何有效使用OpenPower720,第 3 部分:虚拟化设置
本文主要介绍 OpenPower720 的虚拟化设置过程,包括如何设置和使用虚拟 SCSI、以太网卡、串口连接。
    2005年10月17日  
 
LPI 101 考试准备:Linux 安装与包管理
在本教程中,Ian Shields 继续帮助您准备参加 Linux Professional Institute 初级管理(LPIC-1)考试 101。本系列包括 5 个教程,这是第 2 个教程,Ian 将介绍 Linux 安装和包管理。在学完本教程之后,您将掌握 Linux 如何使用硬盘分区、Linux 如何引导以及如何安装和管理软件包。
    2005年10月13日  
 
Linux 套接字编程中的 5 个隐患
Socket API 是网络应用程序开发中实际应用的标准 API。尽管该 API 简单,但是开发新手可能会经历一些常见的问题。本文识别一些最常见的隐患并向您显示如何避免它们。
    2005年10月8日  
 
Linux 的魅力:小型日程表挑战大型群件
要决定轮到谁来涮碗,使用昂贵的群件简直是大材小用。在这个月,Peter 使用他的古老的 Linux 机器构建了一个很小的基于 Web 的家用日程表。在这个专栏中,Peter 研究了运行在不同种类硬件上的 Linux ―― PDA、嵌入式设备,或者是没有人认为会有用的古老的设备。他依次研究了具体的 Linux 设备并向您详细展示如何在过时的硬件上使用 Linux。
    2005年9月29日  
 
有关 31 位库和 64 位库在 Red Hat Enterprise Linux 4.0 (RHEL 4.0) on zSeries 上共存的几点建议
Linux 发行版,例如 Red Hat 和 SUSE,都可以在 IBM eServer zSeries 机器上使用 31 位和 64 位的体系结构。zSeries 机器上的 64 位处理器可以允许 31 位和 64 位的应用程序共存,并且能够在同一个 Linux 映像文件上同时运行。阅读本文中给出的建议,您就可以了解如何安装一些定制的包来启用这种功能。
    2005年9月29日  
 
Linux on OpenPower
对于 Linux 的支持已经扩展到了 IBM 所有的产品上,IBM eServer OpenPower 也不例外。按照 IBM Linux 架构师 Harish Chauhan 的指引,您将在本文中体验如何在 OpenPower 上安装和配置 Red Hat Enterprise Linux (RHEL) / SUSE Linux Enterprise Server (SLES) 的过程。
    2005年9月20日  
 
引导加载程序之争:了解 LILO 和 GRUB
从普通的桌面用户到 Linux 系统管理员,大部分 Linux 用户都使用过一种名为引导加载程序的工具。此类工具的不同变种会提供不同层次的支持和功能。在很多情况下,Linux 发行版默认安装的引导加载程序并不总是适合需要;每个引导加载程序的默认设置也是如此。在本文中,Laurence Bonney 讨论了两个流行的引导加载程序 —— LILO 和 GRUB —— 的优点和缺点,并建议了很多配置,以充分发掘机器的潜力。
    2005年9月20日  
 
POWER5 上 Linux 虚拟化:实用设置指南
学习如何使用可用于基于 Linux on IBM POWER5 处理器的服务器的虚拟化功能。本教程将演示如何在一个分区上安装 SUSE LINUX Enterprise Server 9 Service Pack 1(SLES9SP1),并将其配置为一个虚拟的 I/O 服务器。
    2005年9月15日  
 
破译 Linux 2.6 内核,第 2 部分:进行第一次破译
本教程是由两部分构成的系列的第 2 部分,通过这部分可以了解 Linux 内核源代码的组织,建立对系统调用的理解,并完成您自己的内核模块和补丁。
    2005年9月15日  
 
LPI 101 考试准备:硬件和体系结构
通过本教程,Ian Shields 开始帮助您准备参加 Linux Professional Institute 初级管理员(Junior Level Administration,LPIC-1)101 考试。这是五篇系列教程中的第一篇,在本文中 Ian 向您介绍了如何在 Linux 中配置系统硬件。完成本教程时,您将了解 Linux 如何配置在现代 PC 机上发现的硬件,以及如果遇到问题从何处着手研究。
    2005年9月15日  
 
使用 GLib 工具集管理 C 数据
通过本教程学习如何在 C 程序中使用 GLib 工具数据结构来有效地管理数据。特别地,您将学会如何在 C 中根据需要使用 GLib 的内置数据结构/容器 ―― 链表、散列表、数组、树、队列和关系。
    2005年9月5日  
 
KDE 环境下的虚拟文件系统 — KIO
本篇文章主要介绍了 Linux 平台下的虚拟文件系统概念以及 KDE 桌面环境下 KIO 机制。通过对这些概念的掌握,最后详细分析并实现一个"我的共享"应用的形式来展示 KIO强大的网络透明性和虚拟文件系统的功能。
    2005年9月1日  
 
如何有效使用OpenPower720,第 3 部分: 虚拟化设置
本文主要介绍 OpenPower720 的虚拟化设置过程,包括如何设置和使用虚拟 SCSI、以太网卡、串口连接。 这也是读者朋友咨询较多的一个问题。
    2005年9月1日  
 
Linux日志文件系统及性能分析
日志文件系统可以在系统发生断电或者其它系统故障时保证整体数据的完整性,Linux是目前支持日志文件系统最多的操作系统之一,本文重点研究了Linux常用的日志文件系统:EXT3、ReiserFS、XFS和JFS日志技术,并采用标准的测试工具PostMark和Bonnie++对它们进行了测试,给出了详细的性能分析,对Linux服务器应用具有重要的参考价值。
    2005年9月1日  
 
如何为嵌入式开发建立交叉编译环境
在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。文章通过一个具体的例子说明了这些嵌入式交叉编译开发工具的制作过程。
    2005年9月1日  
 
Linux on Power 上的调试工具和技术
调试是一项主要的软件开发活动,作为应用程序开发人员,您无法避免对程序进行调试。有效的调试不仅能缩短软件开发周期,而且可以节省成本。本文简要介绍了在用户空间的 C/C++ 和 Java(TM) 应用程序中查找 bug 的技术,并介绍了一些可以在 Linux(TM) for POWER(TM) 架构上使用的调试技术。
    2005年8月29日  
 
Linux 2.6.10 内核下 PCI Express Native 热插拔框架的实现机制
PCI 热插拔技术,可以有效避免由更换外设引起的服务器系统停机,对于提高服务器系统可用性和可扩展性意义重大。本文讨论了 PCI Express 热插拔所涉及的软件因素,并基于此,剖析了 Linux 2.6.10 内核下 PCI Express 插槽热插拔子系统的关键实现机制。
    2005年8月18日  
 
使用 FreeBSD 的原因
FreeBSD 操作系统在免费操作系统中是一个不为人熟知的巨人。从 386BSD 项目开始,FreeBSD 操作系统成为主要针对于 Intel 芯片及其克隆产品的、运行速度极快的、类似 UNIX 的操作系统。FreeBSD 在许多方面 替代了基于 GNU/Linux 的操作系统。它运行于过时的 Intel 机器和 64 位 AMD 芯片之上,在一些全球最大的文件服务器上,它每天可以处理数 TB 的文件。
    2005年8月18日  
 
Linux 内核的同步机制,第 2 部分
这是本系列文章的第二部分,它详细地介绍了Linux内核中的同步机制:大内核锁、读写锁、大读者锁、RCU和顺序锁的API,使用要求以及一些典型示例。本系列文章的第一部分则详细地介绍了 Linux 内核中的其它一些同步机制,包括原子操作、信号量、读写信号量和自旋锁的API,使用要求以及一些典型示例。
    2005年8月15日  
 
Linux 内核的同步机制,第 1 部分
本系列文章分两部分,第一部分详细地介绍了 Linux 内核中的同步机制:原子操作、信号量、读写信号量和自旋锁的API,使用要求以及一些典型示例。第二部分将详细介绍在Linux内核中的另外一些同步机制,包括大内核锁、读写锁、大读者锁、RCU和顺序锁。
    2005年8月15日  
 
使用 Linux LiveCD 评估系统的安全性
您希望不用经过冗长的安装和配置过程就可以实现对 Linux 系统安全性的评估吗?在本文中我们会介绍 4 个包: Auditor、Whoppix、Knoppix-STD 和 PHLAK,采用这些包之后,您就可以利用 LiveCD 了。
    2005年8月15日  
 
学习 PHP,第 3 部分
本系列教程通过构建一个简单的工作流应用程序来介绍如何使用 PHP,分为三部分,这是第 3 部分。本期教程将介绍如何使用 HTTP 身份验证、流化文件以及如何创建对象和异常。
    2005年8月11日  
 
学习 PHP,第 2 部分
本系列教程通过建立一个工作流应用程序介绍使用 PHP 的方方面面。本教程共分为三部分,这是第 2 部分。如果您对 PHP 有基本的了解,并且希望学习从浏览器上传文件、会话或者使用 PHP 处理 XML,请阅读本教程。
    2005年8月4日  
 
学习 PHP,第 1 部分
这是三部分组成的系列教程,通过叙述如何构建一个文档流系统来介绍基本的 PHP 脚本、数据库的使用以及来自文件系统的流。此部分,我们讲述了构建 PHP 脚本的基本知识,包括语法、HTML 格式和数据库连接。
    2005年8月4日  
 
在 Linux 上构建无线 ISP
为您的办公室或邻居设置一个无线的 Internet 服务提供者(WISP)并不需要繁重的劳动或昂贵的投资。如果您使用一些很容易购买到的设备和 Linux 来构建网络,那么可以利用 shell 脚本的强大功能来简化网络的管理。本文将提供一些您所需要的技巧和脚本。
    2005年8月1日  
 
Linux 的魅力: TiVo 揭密
每个人都已经知道 TiVo 可以“运行 Linux”。在这一期的“Linux 的魅力”中,Peter 将介绍一下在 TiVo 上安装的 Linux 系统。研究 TiVo 系统可以展示出一个公司是如何从桌面操作系统转换到嵌入式系统的。
    2005年7月25日  
 
Linux 上的高可用中间件,第 5 部分: IBM DB2 Universal Database
数据是所有业务的心脏,对数据的访问的宕机时间应该维持在最少。在本文中,我们将来了解一下如何为 IBM DB2 Universal Database 设置并实现一个 Linux 的高可用解决方案,DB2 是一个数据库管理系统,可以为构建健壮的、随需应变的业务应用程序提供一个灵活而又节约成本的数据库平台。使用这个详细的指南,您可以设置并运行一个高可用的 DB2 UDB 数据库。
    2005年7月25日  
 
Linux 2.6内核中新的锁机制――RCU
本文详细地介绍了 Linux 2.6 内核中新的锁机制 RCU(Read-Copy Update) 的实现机制,使用要求与典型应用。
    2005年7月22日  
 
RPM 打包技术与典型 SPEC 文件分析
本文分为两部分,第一部分阐述了 rpm 工具的功能以及 rpmbuild 工具,详细的介绍了 spec文件的书写规则以及关键部分,第二部分对一个典型的 spec 文件做了详细的分析。
    2005年7月21日  
 
Spufs:Cell Synergistic Processing Unit 用作一个虚拟文件系统
对于 Linux on the Cell 的基本平台支持早已搭建好了,目前正努力加入主流的 Linux 内核树。阅读本文可以了解 Cell 这种独一无二的体系结构,以及可以运行 Linux 的 SPU 文件系统接口。
    2005年7月18日  
 
精通递归程序设计
命令式语言开发人员并不经常使用递归这一工具,因为他们认为这样会较慢而且浪费空间,不过,作者通过示例表明,可以使用一些技术来尽量减少或者避免这些问题。他介绍了递归以及递归程序设计模式的概念,研究了如何使用它们来编写保证正确的程序。示例是使用 Scheme 和 C 编写的。
    2005年7月14日  
 
用 Graphviz 可视化函数调用
花一些时间遍历一下源代码,可以向您展现所有的函数调用过程;但是如果函数指针非常复杂,或者代码太长且晦涩难懂,那么这个过程就可能更加困难了。本文将向您介绍如何使用开源软件和一些定制的代码来构建一个动态的图形函数调用生成器。
    2005年7月11日  
 
测试优先 Ruby 编程
测试优先编程(Test-first programming)是敏捷编程方法的一个良好扩展,敏捷编程(agile programming)方法可以让您更有信心地编写代码、更容易地进行重构(refactor)以及更快速地让代码满足新的需要。本教程先从使用 Ruby 编程语言创建测试优先编程模型开始介绍。完成本教程之后,您应该可以开始更快、更自信地产生健壮、实用的代码。
    2005年7月7日  
 
使用 Snort 和 PHP 构建一个小型网络防御系统
本文在 Linux 环境下,利用 Snort 和 Iptables 构建了一个小型网络防御系统,由 PHP 页面提供了一个远程管理工具,并给出关键程序的实现和说明。
    2005年7月7日  
 
Linux on x86 程序到 Linux on POWER 的移植指南
要将 Linux(TM) C/C++ 程序从 x86 平台(Intel(R) 或 AMD)移植到 Linux on POWER(TM) 上,可以使用下面介绍的这些详细步骤。首先,我们来了解要为这种移植准备哪些内容;然后再遵循本文介绍的实现技巧就可以将 x86 平台的 Linux 上运行的代码移植到 POWER 平台上。
    2005年7月4日  
 
使用 Ruby on Rails 快速开发 Web 应用程序
虽然还是测试版本,但 Ruby on Rails 已经成为进行 Web 应用程序开发的一个新途径。Rails 的成功之处在于能够自动化大部分常见类型的 Web 应用程序的创建,而且在您希望添加定制或者有特殊要求时,并不会受到限制。不仅如此,同那些只能完成 Web 应用程序单方面需求的自由软件(Free Software)库相比,Rails 包含了非常完整的一套工具。
    2005年7月4日  
 
RPM 打包技术与典型 SPEC 文件分析
本文分为两部分,第一部分阐述了 rpm 工具的功能以及 rpmbuild 工具,详细的介绍了 spec文件的书写规则以及关键部分,第二部分对一个典型的 spec 文件做了详细的分析。
    2005年7月1日  
 
如何有效使用OpenPower720(上)
在本文中我们将介绍 OpenPower 系列的典型机型 OpenPower720,讲解如何更加有效的使用它及其相关概念。希望通过我们的介绍,不仅使你能够更加熟练的操作 OpenPower720 服务器,而且能够更加深入的理解 OpenPower 系列硬件平台的价值所在。
    2005年7月1日  
 
如何有效使用OpenPower720(下)
在上篇中我们介绍了 POWER 架构、如何有效使用 SMI 和 ASMI、如何有效使用 HMC。这篇主要介绍:如何有效使用 LPAR 和 Virtualization 技术、如何有效安装红旗 Linux 系统、如何更新 Firmware。
    2005年7月1日  
 
Linux on POWER: 发行版迁移及二进制兼容性注意事项
了解二进制兼容性,因为它关系到运行在 POWER(TM) 上 Linux(R) 中的不同操作环境。研究 IBM(R) 支持的两个 Linux on POWER 发行版本,Red Hat Enterprise Linux(RHEL)和 SUSE LINUX Enterprise Server(SLES), 注意各版本之间的二进制兼容性。通常,可以从基于 2.4 内核的 RHEL3 向基于 2.6 内核的 RHEL4 进行顺利迁移,因为这两个版本之间维护了稳定的应用程序二进制接口(Application Binary Interface,ABI),并将 RHEL4 的很多特性反向移植到了 REHL3 中。尽管基于 2.4 内核的 SLES8 与基于 2.6 内核的 SLES9 的线程模型有所不同,但在很多情形下,这两个版本之间仍保持了二进制兼容性。了解可以提高 Linux on POWER 应用程序性能的新技术,将来可以遵循这些步骤来确保多个版本之间的二进制兼容性。
    2005年7月1日  
 
将 Windows IPC 应用程序移植到 Linux,第 2 部分:信号量和事件
随着开发人员将一些普及的 Windows 应用程序迁移到 Linux 平台,企业中正在进行的向开放源码迁移的浪潮有可能引发极大的移植问题。这个由三部分组成的系列文章提供了一个映射指南,并附有一些例子,以简化从 Windows 到 Linux 的转移。本文是系列文章的第 2 部分,将介绍两种同步对象类型:信号量和事件。
    2005年6月27日  
 
OpenAFS 帮助聚集分布式数据
分布式文件系统近来没有什么新闻,因为使用它们的主要是公司和教育网络,总共只有几千个用户。从概念上来说,对于这样的系统如何适合开放源码文件系统这个领域,还并非总是很清楚。Open Andrew File System (OpenAFS) 是对 Network File System (NFS) 的成熟的替代方案,它能适应大量的用户,并能减轻管理的痛苦。
    2005年6月27日  
 
Linux 的魅力:让古老的机器重获新生
人们说 Linux 使得老机器变得有用。这是真的吗?在这个新系列中,Peter Seebach 使用了一台废弃的膝上型电脑,以每月 50 美元的预算构建了一台能够真正做一些有意义的事情的家用电器。
    2005年6月27日  
 
使用 OProfile for Linux on POWER 识别性能瓶颈
了解关于 OProfile 的知识,学习如何在基于 IBM(R) POWER(TM) 处理器、运行 Linux(TM) 的服务器上使用它。首先,阅读关于 OProfile 的概述,并了解它在 Linux on POWER 上的实现,然后跟随作者给出的两个例子,学习如何在 Linux on POWER 平台上使用 OProfile 分析代码和结果。
    2005年6月27日  
 
在 Linux 上构建一个 RADIUS 服务器
作为一名网络管理员,您需要为您所需管理的每个网络设备存放用于管理的用户信息。但是网络设备通常只支持有限的用户管理功能。学习如何使用 Linux 上的一个外部 RADIUS 服务器来验证用户,具体来说是通过一个 LDAP 服务器进行验证,可以集中放置存储在 LDAP 服务器上并且由 RADIUS 服务器进行验证的用户信息,从而既可以减少用户管理上的管理开销,又可以使远程登录过程更加安全。
    2005年6月23日  
 
如何构建自己的 Linux 发行版
Linux From Scratch (LFS) 及其后代代表一种新方法,向用户揭示 Linux 操作系统是如何工作的。LFS 基于这样的假设,即一部分一部分地编译完整的操作系统不仅能够揭示操作系统是如何工作的,也允许独立的操作人员为速度、内存占用或安全性而构建系统。
    2005年6月23日  
 
Linux SEK 2005 Release 1: 安装 IBM Rational Software Modeler V6.0 for Linux 试用版
按照本文中介绍的步骤在 Red Hat Enterprise Linux 3(RHEL3)或 SUSE Enterprise Linux 9(SLES9)上安装 IBM Rational Software Modeler V6 试用版。本文对那些刚开始接触 Linux 或基于 UNIX 的操作系统的开发人员来说最有帮助。
    2005年6月20日  
 
Linux SEK 2005 Release 1: 安装 IBM Rational Software Architect V6.0 for Linux 试用版
遵循这些步骤,在 Red Hat Enterprise Linux 3(RHEL3)或 SUSE Enterprise Linux 9(SLES9)上安装 IBM Rational Software Architect V6 试用版。本文对那些刚开始接触 Linux 或基于 UNIX 的操作系统的 开发人员最有帮助。
    2005年6月20日  
 
构建一个 Perl/CGI 投票系统
许多 Web 部署的应用程序都是在精心设计的数据库驱动的服务器端开发框架中编写的,例如 PHP 和 Java servlet,但是对于一些简单的程序(例如,整个数据库要能够存放在 Web 服务器的 RAM 中)来说,使用加锁的 DMB 文件和 Perl MLDBM 模块可以很容易地实现数据持久性。本文将给出一个基于 Web 的投票系统的真实的例子,重点介绍如何利用最小的外部模块、如何舍弃基于客户机的 cookie 以及如何利用 CGI 属性的优点。
    2005年6月16日  
 
Linux SEK 2005 Release 1: 安装 IBM Rational Agent Controller for Linux
按照本文中介绍的步骤可以在 Red Hat Enterprise Linux 3(RHEL3)或 SUSE Enterprise Linux 9(SLES9)上安装 IBM Rational Agent Controller。不熟悉基于 Linux 或 UNIX 的操作系统的开发人员可以从本文中获得大部分需要的内容。
    2005年6月16日  
 
利用开源 GIS 确定方位
地理信息系统(Geographic Information Systems,GIS)软件依赖于覆盖整个地球的数据集。为处理大量的 GIS 数据及其格式,编程人员创建了若干开源库和 GIS 套件。本文简要介绍可用于 UNIX 和 Linux 的 GIS 工具和库的范围和深度。
    2005年6月16日  
 
IBM eServer BladeCenter JS20 快速设置指南
按照下列指南安装 IBM(R) eServer(TM) BladeCenter(TM) JS20。
    2005年6月13日  
 
Linux on POWER 中的 GNU C/C++ 工具链
在本文中,您将学习有关 Linux (TM) on POWER(TM)中 GNU 工具链的知识。本文将重点介绍可用于使用 Linux on POWER 上的 GNU 编译器(compiler)、链接器(linker)和加载器(loader)的一些常用选项,还将讨论 GNU binutils,重点考虑特定于 Linux on POWER 的一些考虑事项,以及 SUSE Linux Enterprise Server Version 9 和 Red Hat Enterprise Linux Version 4 中提供的一些新特性。
    2005年6月13日  
 
Linux,非 x86 上的舞台
显然,Linux 已经成为对非 x86 平台很有吸引力的一个选择。为什么呢?在本文中,作者将研究这种现象的原因,其中包括这样一些事实:非 x86 平台上的 Linux 支持支付得起的、容于实现的虚拟化;提供更好的可靠性、电力消耗和扩展的内存支持;覆盖的机器范围更广,为用户提供大范围的选择;让古老的硬件重焕青春;以及促进革新。
    2005年6月6日  
 
多语言编辑器的高级用户指南
了解 Unicode 编码的字符集如何使多语言的编辑成为可能,以及运行在 Linux 上的现有 Unicode 编辑器使用这些工具的方式。Unicode 编辑器,如 Yudit 和 Mined,被设计为允许使用 Unicode 编码的字符集进行多语言编辑。运行这些编辑器所需的架构非常复杂,而且还需要一些精心配置好的库,特别是当 Unicode 编辑器依赖于 Linux 和 UNIX 系统库资源,而不是提供自己的字符和字符串管理方法时。
    2005年6月6日  
 
功能丰富的 Perl: 通过 Perl 使用 IMAP,第 2 部分
Ted 回到了使用 Mail::IMAPClient 来访问 IMAP 的主题,他将 ifrom.pl 当作是另外一个检查 IMAP 和 POP3 邮件的替代工具。这次 Ted 会介绍使用隧道(有时称为“端口转发”),并将这个脚本应用于 Maildir 邮件存储格式。
    2005年6月6日  
 
探索 Python,第 1 部分:Python 的内置数值类型
Python 编程语言具有很高的灵活性,它支持多种编程方法,包括过程化的、面向对象的和函数式的。但最重要的是,在 Python 中编写程序是件令人愉悦的事。该语言对开发进程有支持作用,决不会妨碍它。本文是关于 Python 编程系列文章的第一篇,主要介绍 Python 及其内置数值类型。
    2005年6月6日  
 
Linux SEK 2005 Release 1: 安装 IBM Rational Web Developer V6.0 for Linux 试用版
按照本文中介绍的步骤可以在 Red Hat Enterprise Linux 3(RHEL3)或 SUSE Enterprise Linux 9(SLES9)上安装 IBM Rational Web Developer V6.0 for Linux 试用版。不熟悉基于 Linux 或 UNIX 的操作系统的开发人员可以从本文中获得大部分需要的内容。
    2005年6月2日  
 
Linux 实时技术与典型实现分析, 第 2 部分: Ingo Molnar 的实时补丁
这是本系列文章(分两部分)的第 2 部分,详细分析了一个典型的实时实现(Ingo's RT patch)。第 1 部分阐述了实时的概念、衡量实时性的指标,详细地分析了嵌入式系统对 Linux 实时性的需求以及 Linux 在实时性方面的不足,然后简单地描述了三个著名的 Linux 实时实现。
    2005年6月1日  
 
Linux 实时技术与典型实现分析, 第 1 部分: 介绍
本系列文章分两部分,第 1 部分阐述了实时的概念、衡量实时性的指标,详细地分析了嵌入式系统对 Linux 实时性的需求以及 Linux 在实时性方面的不足,然后简单地描述了三个著名的 Linux 实时实现,第 2 部分对一个典型的实时实现(Ingo's RT patch)做了详尽的分析。
    2005年6月1日  
 
GCC 4.0 的新特性
本文侧重介绍了 GCC 4.0 内部结构相对于 3.4.x 版本的一些全新变化。
    2005年6月1日  
 
使用 PLAM 加速分布式事务
为了缩短分布式客户机/服务器应用程序中事务的执行时间,您可以对一个事务所涉及的实体之间的授权信息流加以提炼。在本文中,您将学习如何使用可插入授权模块(Pluggable Authorization Module,PLAM)来减少客户机和服务器之间传递的冗余授权信息。PLAM 是一个 DCE 风格的授权框架模型,它可以缩短请求的往返周期。
    2005年5月30日  
 
从 Solaris 迁移到 x86 上的 Linux 指南
Solaris 被认为是风格与 Linux 最为接近的一种 UNIX,但是对于程序的迁移来说,它们在诸如内存映射、线程以及对自然语言的支持等领域还是有很大区别的。这个移植指南可以为您在计划将程序移植到 Linux/x86 上时提供一些建议,并且帮助您理解开发环境和体系架构之间的区别。
    2005年5月30日  
 
Linux SEK 2005 Release 1: 安装 IBM Rational Application Developer V6.0 for Linux 试用版
按照本文中介绍的步骤可以在 Red Hat Enterprise Linux 3(RHEL3)或 SUSE Enterprise Linux 9(SLES9)上安装 IBM Rational Application Developer V6.0 for Linux 试用版。不熟悉基于 Linux 或 UNIX 的操作系统的开发人员可以从本文中获得大部分需要的内容。
    2005年5月23日  
 
Linux SEK 2005 Release 1:安装 IBM Rational Application Developer V6.0 for Linux 试用版
按照本文中介绍的步骤可以在 Red Hat Enterprise Linux 3(RHEL3)或 SUSE Enterprise Linux 9(SLES9)上安装 IBM Rational Application Developer V6.0 for Linux 试用版。不熟悉基于 Linux 或 UNIX 的操作系统的开发人员可以从本文中获得大部分需要的内容。
    2005年5月23日  
 
使用 OpenSSL API 进行安全编程,第 2 部分:安全握手
安全套接字层(SSL)会话中的安全握手非常重要,这是因为该连接中的所有安全性都是在握手过程中建立的。本文将介绍如何增强 SSL 握手的安全性,从而防止中间人(MITM)攻击 ―― 此时入侵的一方会伪装成另外一个可信源。本文还会介绍数字证书的概念,以及 OpenSSL API 如何处理数字证书。
    2005年5月23日  
 
使用 Trace32 对 FLASH 编程
随着软硬件复杂性的增加,在嵌入式系统开发中,调试器对项目的开发进度、质量起着越来越重要的作用。在众多的调试器中,Lauterbach 公司的 Trace32 凭借其强大的功能,出色的性能,成为目前嵌入式系统开发中,尤其是高端系统中普遍采用的调试工具。
    2005年5月19日  
 
RT-Signal 及其应用要点
本文指出 POSIX RT-Signal 在应用中的使用方法和在设备驱动程序编写中的要点,以及内核中对应的技术内幕,特别的,纠正了著作 Linux Device Driver [3] [4]中相关的错误内容。实时信号驱动可以形成一个高性能的可伸缩 I/O 处理框架。
    2005年5月16日  
 
当 VMware 发生故障时
尽管采用了弹性最好的方案,系统也有崩溃的时候。本文就为您提供一些解决系统崩溃的指导准则,包括到哪里去查看问题,以及如何解释问题,并提供一些问题修正的解答,本文的一切都是围绕 VMware ESX 框架进行的。
    2005年5月15日  
 
让 Linux 更安全,第 3 部分: 加固系统
学习能够使您的 Linux 系统更能抵御攻击的技术,包括保护引导过程和本地文件、为服务和后台进程加锁、强制实行配额和限制、启用强制访问控制(mandatory access control),以及识别那些在使用新软件更新安全设施时可能会引入的安全漏洞。本系列的第 1 部分介绍了安全性的概念以及潜在的威胁。第 2 部分列出了计划安全安装时需要谨记的事情。
    2005年5月15日  
 
Linux on POWER:开发概览
Linux(TM) 为您的业务解决方案带来了开放标准,以及最大限度的可用性和灵活性。它提高了基于 POWER(TM) 处理器的 IBM(R) eServer(TM) 系列服务器的性能和可靠性,应用程序可以充分利用 Linux on POWER 的优点。本文简要介绍了 Linux on POWER 所采用的硬件和软件环境,目的是为应用程序开发人员提供一些在入门时需要了解的知识。
    2005年5月12日  
 
通过 Informix Dynamic Server 10.0 利用 Linux 的特性
IBM Informix Dynamic Server 10.0 使用异步 I/O、直接 I/O 和向量 I/O 来提高性能,并使用处理器亲和来取得更大的可伸缩性和并行性,透明地优化和利用 Linux 环境。
    2005年5月12日  
 
将 Windows IPC 应用移植到 Linux,第 1 部分:进程和线程
随着开发者将原本普遍的 Windows 应用迁移到 Linux 平台,正在进行的向开源迁移的浪潮有可能引发极大的移植问题。这个由三部分构成的系列文章提供一个映射指南,并附有例子,能够简化从 Windows 到 Linux 的转变。第 1 部分介绍了进程和线程。
    2005年5月9日  
 
MySQL for Linux on POWER,第 2 部分: 开发应用
MySQL 数据库服务器可以运行在基于 IBM(R) POWER(TM) 和 PowerPC(R) 处理器的服务器上的 Linux(R)(统称为 POWER 上 的 Linux)中,通过此系列文章的第 2 部分(也是最后一部分)了解其可用性。第 2 部分的重点是 使用某些主流编程语言为 MySQL 开发应用程序,比如 PHP、Java(TM)、C/C++、Python 和 Perl。 作为面向在 POWER 上 Linux 中使用 MySQL 的应用程序开发者的一篇简短指南,本文适合那些熟悉自己的系统环境、 网络、媒体设备和磁盘资源的 MySQL 开发者和数据库管理员阅读。
    2005年5月8日  
 
基于 linux 平台的 libpcap 源代码分析
libpcap 是 unix/linux 平台下的网络数据包捕获函数包,大多数网络监控软件都以它为基础。Libpcap 可以在绝大多数类 unix 平台下工作,本文分析了 libpcap 在 linux 下的源代码实现,其中重点是 linux 的底层包捕获机制和过滤器设置方式,同时也简要的讨论了 libpcap 使用的包过滤机制 BPF。
    2005年5月1日  
 
MySQL for Linux on POWER,第 1 部分: 数据库创建简介
MySQL 数据库服务器可以运行在基于 IBM POWER 和 PowerPC 处理器的服务上的 Linux(统称为 POWER 上 Linux)中,通过本文了解其可用性。作为面向在 POWER 上 Linux 中使用 MySQL 的应用程序开发者的一篇简短指南,本文适合那些熟悉自己的系统环境、网络、媒体设计和磁盘资源的 MySQL 开发者和数据库管理员阅读。
    2005年4月27日  
 
用 Guile 来为 GTK+ 应用添加扩展语言 Scheme
本文以用 GTK+ 开发一个简单的绘图应用,结合 Guile 来为这个简单的应用增添一种扩展语言 - Scheme 语言,从而使我们的这个简单应用具有灵活的扩展功能。
    2005年4月26日  
 
使用 inotify 监控 Linux 文件系统事件
inotify 是文件系统事件监控机制,计划包含在即将发布的 Linux 内核中作为 dnotify 的有效替代。dnotify 是较早内核支持的文件监控机制。Inotify 是一种强大的、细粒度的、异步的机制,它满足各种各样的文件监控需要,不仅限于安全和性能。下面让我们一起学习如何安装 inotify 和如何构建一个示例用户空间应用程序来响应文件系统事件。
    2005年4月25日  
 
功能丰富的 Perl: 使用 AppConfig 进行复杂的分层配置
AppConfig 是在简单情况下用 Perl 配置应用程序的一种有用工具,但是有些时候,在命令行处理和配置文件解析方面需要更多功能。不是使用 XML 或 YAML 这类数据格式,您可以通过稍许额外的努力,改变 AppConfig 使其能够处理复杂的命令行开关以创建多层散列。
    2005年4月25日  
 
将 Win32 C/C++ 应用程序迁移到 POWER 上的 Linux,第 3 部分: 信号
将您的 Win32 C/C++ 应用程序迁移到 POWER 上的 Linux,并从信号(semaphore)应用程序接口(application program interface,API)的角度理解 Win32 到 Linux 的映射。Nam Keung 将通过详细的代码示例来为您描述这一过程。
    2005年4月21日  
 
将 Win32 C/C++ 应用程序迁移到 POWER 上的 Linux,第 2 部分: 互斥
本系列文章可以帮助您将 Win32 C/C++ 应用程序移植到 POWER 上的 Linux。高级程序员 Nam Keung 和 pSeries Linux 技术顾问 Chakarat Skawratananond 从互斥(mutex)应用程序接口(application program interface,API)的角度阐述了如何将 Win32 映射到 Linux。本系列的第 1 部分集中关注的是 Win32 API 的映射。
    2005年4月21日  
 
高阶函数
函数是计算机程序功能强大的构建块。使用函数可以将代码划分为更简单、更容易管理的代码段,还可以将程序划分为可重用的单元--这些单元既可以在本程序中使用,也可以在其他程序中使用。在本文中,我们将介绍如何基于一些模板在运行时创建新函数,如何创建一些在运行时可以使用参数配置的函数,以及在函数中 Scheme 语言如何成为一个有价值的工具。
    2005年4月18日  
 
在 Linux 上使用 Bugzilla 跟踪 bug
对于负责提供支持的人而言,保持对问题、难题及其修订的跟踪,可能会是一项棘手的任务; 不过,有一个完美的开源方案可以满足这一要求:Bugzilla。安装它之后,您就可以方便地跟踪 bug 了, 并可在发现特定的问题和解决方案时得到通知。本文给出了在 Linux 系统上安装 Bugzilla 的逐步指南。
    2005年4月18日  
 
Linux 上的高可用中间件,第 4 部分: IBM WebSphere Application Server
本文是关于在高可用配置中实现中间件的 5 部分中的第 4 部分,通过本文学习实现 IBM WebSphere Application Server 高可用配置的详细方法,获得灵活性和适应性,并有效地满足您随需应变环境的需求。
    2005年4月4日  
 
功能丰富的 Perl: 在数据库表中嵌入 Perl
在本期文章中,Ted 介绍的是 Perl 和数据库。具体来说,他通过 Class::DBI CPAN 模块和 MySQL 来向您介绍如何在数据库表中嵌入 Perl。
    2005年4月4日  
 
使用 Xen:使用虚拟 Linux 来测试应用程序
Xen 是可用于 Linux 内核的一种虚拟化技术,让您可以像在现有环境中一样安装并测试新的升级,而不必担心破坏原有的系统。作者将向您介绍如何使用 Fedora Core 安装 Xen,不过,安装之后,在任何发行版本上的 Xen 中,所有程序运转起来都是相同的。了解 Linux 上的虚拟化,知道具有一个用于测试新软件的沙盒的好处,并练习在同一台 Linux 机器上运行多个虚拟机。
    2005年4月4日  
 
解析 Linux 中的 VFS 文件系统机制
本文阐述 Linux 中的文件系统部分,源代码来自基于 IA32 的 2.4.20 内核。总体上说 Linux 下的文件系统主要可分为三大块:一是上层的文件系统的系统调用,二是虚拟文件系统 VFS(Virtual Filesystem Switch),三是挂载到 VFS 中的各实际文件系统,例如 ext2,jffs 等。本文侧重于通过具体的代码分析来解释 Linux 内核中 VFS 的内在机制,在这过程中会涉及到上层文件系统调用和下层实际文件系统的如何挂载。文章试图从一个比较高的角度来解释 Linux 下的 VFS 文件系统机制。
    2005年4月1日  
 
嵌入式数据库系统Berkeley DB
Berkeley DB是历史悠久的嵌入式数据库系统,主要应用在UNIX/LINUX操作系统上,其设计思想是简单、小巧、可靠、高性能。本文是对DB开发的一个入门级指南,重点讨论了DB的核心数据结构和数据访问算法,并通过实际的代码演示如何使用DB。最后有一个对DB的简单总结,并提出作者对工具选择的一些感想。
    2005年4月1日  
 
IBM JVM for Linux JIT 诊断简介
本文简要介绍 Just-In-Time(JIT)编译器和 Mixed Mode Interpreter(MMI)优化技术,在 IBM 的 JVM 1.3.1 和 1.4.2 中使用了这两种技术,它们对于从 Sun Hotspot JVM 上迁移过来的 Java 程序可能产生影响。
    2005年3月28日  
 
IBM JVM for Linux on POWER 的性能调优技巧
本文将介绍用于 iSeries 和 pSeries 上的 IBM JVM for Linux 的一些重要性能调优问题。在撰写这篇文章的时候,IBM 推出了 JDK 1.3.1 32-bit 和 JDK 1.4.2,但无论是 32 位还是 64 位风格的,都适用于 IBM iSeries 和 pSeries 上的 Linux。本文中提供的技巧可应用于 IBM iSeries 和 pSeries 上的 IBM JDK 1.3.1 和 JDK 1.4.2 for Linux,但是本文的特别针对目标是最新的 IBM JDK 版本 JDK 1.4.2。
    2005年3月28日  
 
如何将 z/VM VDISKS 取代实际物理 DASD 用于 Linux 交换设备
虚拟磁盘(Virtual DISK,VDISK)是在内存中创建的高速磁盘。软件工程师 Dionne Graff 在本文中介绍了如何为 Linux 交换设备设置 z/VM VDISK。
    2005年3月24日  
 
Linux 操作系统安装盘的定制
本文阐述如何以一个现有的 RedHat Linux系统安装盘为蓝本,定制符合需要的 Linux 系统安装盘。
    2005年3月24日  
 
在 Windows 便携式电脑使用 X
本文是对关于使用便携式电脑在 UNIX 上工作的上一篇文章的更新。作者描述了如何在便携式电脑上像直接连接到 UNIX 服务器控制台终端那样运行同一环境。本文讨论了如何使用 X 客户机,安装 uwin 和通过 VPN 运行 X 客户机。
    2005年3月21日  
 
Linux 上的高可用中间件,第 3 部分:IBM LoadLeveler
对随需应变的商务而言,工作负载管理至关重要。IBM LoadLeveler 是一个作业管理系统,它通过匹配作业的处理需求与可用资源,让用户可以在更短的时间内运行更多作业。保持作业管理系统的最大限度系统正常运行时间日益重要。学习如何去使用 LoadLeveler 内在的高可用能力获得 LoadLeveler 集群的高可用性,以及如何使用开放源代码的高可用性软件来进一步提高其可用性。
    2005年3月21日  
 
在 Windows 便携式电脑使用 X
作者描述了如何在便携式电脑上像直接连接到 UNIX 服务器控制台终端那样运行同一环境。本文讨论了如何使用 X 客户机,安装 uwin 和通过 VPN 运行 X 客户机。
    2005年3月21日  
 
将企业应用程序从 UNIX 移植到 Linux
当前 UNIX 上的企业级软件大部分都是为了迎合大公司的商务需要。因而它必须支持新出现的技术,并能顺应迅速发展的市场潮流,比如强大而灵活的 Linux 操作系统的大量使用。由于这种软件大部分是大型的、多线程的而且是多进程的,所以将其移植到 Linux 面临着挑战。通过本文,可以获得在把某个企业级软件真正移植到 Linux 的过程中得到的清单和建议。
    2005年3月17日  
 
Linux on POWER 的 JNI 编程实例
本文通过一些简化的示例描述了重要的 Java 本地接口(Java Native Interface,JNI)编程概念,并在适当的地方着重指出了特定于 POWER 上 Linux 的以及通常的编程隐患。
    2005年3月14日  
 
Linux 下 C++ 异常处理技巧
处理 C++ 中的异常会在语言级别上遇到少许隐含限制,但在某些情况下,您可以绕过它们。学习各种利用异常的方法,您就可以生产更可靠的应用程序。
    2005年3月7日  
 
Linux SEK 2005 Release 1: 针对 Linux 开发新手的基本任务
IBM 提供了大量用于 Linux 的试用软件。在大部分情况下,您需要登录进入 Linux 系统中进行安装, 为完成某些任务还要成为超级用户(或者 root),打开一个终端或者 shell 窗口,然后挂载一个 CR-ROM。 如果您对 Linux 不太熟悉,本文将全程指导您完成这些任务以及更多任务。 要获得用于 Linux 的试用版 IBM 软件,您可以订购 Linux Software Evaluation Kit(SEK)2005 Release 1 或者从 developerWorks 直接下载试用产品。
    2005年3月7日  
 
在 Linux 上实现基于 Socket 的多进程实时通信
套接口(Socket)为目前 Linux 上最为广泛使用的一种的进程间通信机制。但是它不能直接用来多进程之间的相互实时通信。本文提出一个基于 Socket 的多进程之间通信的实现方法,并给出样本程序的实现和说明。
    2005年3月3日  
 
IBM JVM for Linux JIT 诊断简介
本文简要介绍 Just-In-Time(JIT)编译器和 Mixed Mode Interpreter(MMI)优化技术,在 IBM 的 JVM 1.3.1 和 1.4.2 中使用了这两种技术,它们对于从 Sun Hotspot JVM 上迁移过来的 Java 程序可能产生影响。
    2005年3月1日  
 
IBM JVM for Linux on POWER 的性能调优技巧
本文将介绍用于 iSeries 和 pSeries 上的 IBM JVM for Linux 的一些重要性能调优问题。在撰写这篇文章的时候,IBM 推出了 JDK 1.3.1 32-bit 和 JDK 1.4.2,但无论是 32 位还是 64 位风格的,都适用于 IBM iSeries 和 pSeries 上的 Linux。本文中提供的技巧可应用于 IBM iSeries 和 pSeries 上的 IBM JDK 1.3.1 和 JDK 1.4.2 for Linux,但是本文的特别针对目标是最新的 IBM JDK 版本 JDK 1.4.2。
    2005年3月1日  
 
从 Solaris 向 Linux on POWER 迁移指南
遵循这个分为六步的指南,可以加速移植速度。了解移植过程中通常会遇到的 Solaris 与 Linux on POWER 之间的差别。介绍在基于 IBM POWER 处理器的系统上运行的 Linux 的开发环境,查看 SUN 的编译器/连接程序开关与 GNU GCC 和 IBM 原始编译的开关之间进行的比较。最后,了解用于性能分析的工具和用于 Linux on POWER 的软件包。
    2005年2月28日  
 
使用 coLinux 和 openMosix 构建异构集群
您可以通过以下三种方法的任意一种来创建一个集群:完全迁移到一个单一的平台,部分迁移,或者是以混合的方式创建。在本文中,将学习如何通过集群代理实现最后一种方法,并了解如何将 coLinux 与 openMosix 结合起来为异构环境提供高性能集群中间件。在这个异构的环境中,Linux 将提供稳定性和性能,而且 Windows 用户可以继续使用他们的应用程序,根本不用关心其中的区别。
    2005年2月28日  
 
可爱的 Python: Pyrex 扩展并加速 Python 应用程序
作者在使用 Pyrex 加速自己的纯 Python 版本的 hashcash,Pyrex 是一种用来编写 Python 扩展模块的语言,可以代替 C 语言来完成这项工作。作者还对使用 Pyrex 编写代码(通常是在大型的 Python 应用程序中使用)和使用 Psyco 编译器加速 Python 应用程序进行了对比,后者作者已经在 developerWorks 撰写文章进行了介绍。
    2005年2月25日  
 
使用可重入函数进行更安全的信号处理
如果要对函数进行并发访问,不管是通过线程还是通过进程,您都可能会遇到函数不可重入所导致的问题。在本文中,通过示例代码了解如果可重入性不能得到保证会产生何种异常,尤其要注意信号。引入了五条可取的编程经验,并对提出的编译器模型进行了讨论,在这个模型中,可重入性由编译器前端处理。
    2005年2月20日  
 
IBM eServer OpenPower 710 集群入门介绍
本文介绍了基本的集群组成部分,以及在 IBM eServer OpenPower 710 上通过利用其 64-位 POWER5 架构来构建 Linux 集群时可以使用的软件工具。本文是为那些有兴趣构建一个新的运行于 OpenPower 710 服务器上的 Linux 集群,或者有兴趣将某个已有集群转换到 OpenPower 710 服务器上的读者所准备的一篇介绍性文章。
    2005年2月7日  
 
PowerPC 的仿真和交叉开发
本文为那些无法与 PowerPC 的真实硬件亲密接触的开发人员介绍 PowerPC 的仿真(emulation)和交叉编译(cross-compiling)。本文适合那些熟悉计算机体系结构、拥有基于 x86 的工作站并且有兴趣对 PowerPC 进行实验的开发人员。
    2005年2月7日  
 
访问控制框架中多策略模块的组合方法
访问控制框架可以很好地满足安全操作系统发展对多安全策略的需求,但是多个安全策略之间可能存在冲突,如何有效组织多个安全策略形成最终的安全决定,则是访问控制框架需要考虑的比较重要的问题。本文对当前主要的访问控制框架进行分析,针对其存在的问题:没有主从和优先顺序以及有主从顺序,但对策略模块的要求太高,提出了一种新的多策略组合方法:基于控制标记的多策略组合方法,它根据控制标记的不同对应安全策略的主从和优先关系。本文在给出多策略组合算法后,并将其在基于Linux的GFAC访问控制框架上得以实现。
    2005年2月1日  
 
通过有效处理列表更好地实现编程
单链表是使得程序员可以描述多种类型的数据的一种有效抽象;可以将链表的使用扩展到任意类型数据的处理当中,这为处理数据提供一个有效的工具。在本文中,我们将考虑这些处理,并研究 Lisp 的变种 Scheme,它是一门易于使用的面向列表的语言,具有列表处理能力,但不像 C 那样复杂。
    2005年1月31日  
 
剖析共享程序库
共享程序库通过版本号来完成对应用程序所使用程序库的升级,同时保留了对原有应用程序的兼容。本文将讨论此方法的实际内幕,以及在常规 Linux 系统上的 /usr/lib 中有很多符号链接的原因。
    2005年1月31日  
 
Linux on POWER 二进制兼容性
本文评论了关于 Linux on POWER 的二进制不兼容性的来源、为什么存在这些来源,以及开发人员如何将这些不兼容性对代码的影响降低到最小。
    2005年1月24日  
 
Linux 上的高可用中间件,第 2 部分: WebSphere MQ
本文是由 5 个部分组成的关于在高可用配置中使用中间件的系列教程的第 2 部分,通过本文,您将学习如何在 heartbeat 集群上安装和配置 IBM WebSphere MQ 消息中间件,使其具备在出现系统故障时能够进行故障恢复的能力。
    2005年1月24日  
 
使用 ClusterKnoppix 构建负载平衡集群
集群(一组协同工作的计算机)是充分利用计算资源的一个重要概念,因为它能够将工作负载从一个超载的系统(或节点)迁移到集群中的另一个系统上。本文将阐述如何使用基于 Knoppix 的 LiveCD 建立一个负载平衡 Linux 集群。
    2005年1月22日  
 
Redhat 安装程序 anaconda 分析
本文作者结合自己在实践中的心得体会,针对 Redhat9.0 的安装程序 anaconda 作了粗略的分析。
    2005年1月20日  
 
编写适用于模拟器的 Linux 代码
在某台计算机上模拟其他计算机的历史已经很长,通常是为了使用遗留应用程序,或者是为了使用为在更稳定、响应更快的 OS 系统上运行流行的 OS 而编写的应用程序。随着 Linux 越来越流行,当开发人员规划将运行于非 Linux 系统上的二进制程序时,需要审视他们的选择。本文将研究模拟器的功能,并将详细地研究硬件模拟和软件模拟的问题。
    2005年1月17日  
 
IBM eServer i5 和 p5 上的 Linux 开发概述
在 Linux PPC 上启用 IA32 代码可以通过两种编译器集实现:GNU Compiler Collection(GCC)和 Visual Age Compilers。本文将介绍使用这两种编译器将 32 位软件从 Linux IA32 移植到 Linux PowerPC 上的一些技巧。
    2005年1月17日  
 
IBM eServer i5 和 p5 上的 Linux 开发概述
在 Linux PPC 上启用 IA32 代码可以通过两种编译器集实现:GNU Compiler Collection(GCC)和 Visual Age Compilers。本文将介绍使用这两种编译器将 32 位软件从 Linux IA32 移植到 Linux PowerPC 上的一些技巧。
    2005年1月17日  
 
安全编程: 安全地调用组件
应用程序通常都会调用其他组件,例如底层的操作系统、数据库系统、可重用的库、Internet 服务(例如 DNS)、Web 服务,等等。本文通过讨论只使用安全组件、只传递有效数据,确保数据可以正确进行处理,检查返回值和异常情况,并且当数据在应用程序和组件之间传递时对数据进行保护,从而解释如何防止攻击者利用对其他组件的调用。
    2005年1月16日  
 
以低廉的代价进行 PowerPC 开发
Kuro Box 在某些方面非常吸引人:可用的单板 PowerPC 计算机,只需要 160 美元 —— 而其他 PowerPC 开发板(development board)的价格通常是其十倍。在 developerWorks 的硬件 howto 中,Peter Seebach 详尽地指导您完成配置和安装。
    2005年1月14日  
 
将 Win32 C/C++ 应用程序迁移到 POWER 上的 Liunx,第 1 部分:进程、线程和共享内存服务
本文的内容是 Win32 API(特别是进程、线程和共享内存服务)到 POWER 上 Linux 的映射。本文可以帮助您确定哪种映射服务最适合您的需要。作者向您详细介绍了他在移植 Win32 C/C++ 应用程序时遇到的 API 映射。
    2005年1月6日  
 
将 Win32 C/C++ 应用程序迁移到 POWER 上的 Linux,第 1 部分: 进程、线程和共享内存服务
本文的内容是 Win32 API(特别是进程、线程和共享内存服务)到 POWER 上 Linux 的映射。本文可以帮助您确定哪种映射服务最适合您的需要。作者向您详细介绍了他在移植 Win32 C/C++ 应用程序时遇到的 API 映射。
    2005年1月6日  
 
IBM eServer iSeries 和 pSeries 服务器运行 Linux 的差异
因为从在 IBM eServer iSeries 服务器上运行 Linux 开始,计算环境和传统的 iSeries 工作负载就已经发生了改变。据说,Linux 和 OS/400 是可用的最稳定的两种操作环境。但是,实际上是 Linux 在 iSeries 硬件上的运行与 OS/400 本身的结合创造了这个令人兴奋的环境。每个部分都将自己的强大能力引入到这个综合体中,为解决方案开发人员和终端用户提供了更多的可能性。
    2005年1月6日  
 
在 C 应用程序中嵌入 Perl 脚本
您是否曾经想要一个向应用程序添加脚本元素(scriptable element)的快速方式?在应用程序中嵌入现有语言是与原来的系统合并的一个最简单且最有效的方式。得到的好处是,用既定的语言以灵活的方式扩展应用程序的功能,使用户不必重新构建就可以使用扩展的功能。在本教程中,您将学习在应用程序中嵌入脚本语言的过程。您将看到如何构建应用程序,以及如何提供支持完整参数和返回值支持的包装器函数(wrapper function)。
    2005年1月4日  
 
深入浅出VA函数
本文主要介绍可变参数的函数使用,然后分析它的原理,程序员自己如何对它们实现和封装,最后是可能会出现的问题和避免措施。
    2005年1月1日  
 
动态替换Linux核心函数的原理和实现
在调试Linux核心模块时,有时需要能够实时获取内部某个路径上的某些函数的执行状态,例如查看传入的变量是否是期望的值,以便判断整个执行流程是否依然正常。由于系统运行时的动态性,使得在执行之前无法预先知道在执行路径的什么地方可能出现问题,因此只能在整个路径上增加许多不必要的信息查询点,造成有用的状态信息被淹没,而且这种增加信息输出的方式(一般是在核心中通过printk语句打印)需要重新编译内核,重新引导,造成了时间上浪费。此时就需要有一种能够方便地实时截取执行路径上怀疑点的方法,本文描述了一种动态替换linux核心函数的基本实现原理。
    2005年1月1日  
 
基于 Python Matplotlib 模块的高质量图形输出
Matplotlib 是一个用来绘制二维图形的 Python 模块,它克隆了许多 Matlab 中的函数, 用以帮助 Python 用户轻松获得高质量(达到出版水平)的二维图形。
    2005年1月1日  
 
苹果 PowerPC 硬件平台上 Java 技术 IBM 开发工具包
本文展示了如何在用于 IBM POWER 和 IBM PowerPC 硬件的 Linux 发行版本和用于 Apple PowerPC 硬件上的 Linux 中使用全功能的而且得到产品检验的 IBM Java 开发工具。
    2004年12月30日  
 
Linux 让网络更强大,第 3 部分:用 Samba 集成 Linux 和 Windows
这是由三部分组成的系列教程的第三部分,介绍了如何利用 Linux 让您的网络更强大。本教程教您如何使用 Samba 集成 Linux 和 Windows 网络。同时还提供了样例代码和配置文件以帮助理解。
    2004年12月27日  
 
基于 iSeries 和 DB2 UDB for iSeries 的 Linux 三层应用程序最佳实践、设计和性能优化
自 Linux 在 IBM eServer iSeries 服务器上运行开始,计算环境和传统的 iSeries 工作负载就发生了变化。人们称 Linux 和 OS/400 是最稳定的操作环境。但实际上在 iSeries 硬件上运行的 Linux 与 OS/400 本身的结合创造了这个非凡的环境。每个部分都将自己的强大能力引入到这个综合体中,为解决方案开发人员和终端用户等提供了更多的可能性。iSeries 硬件及其分区能力不仅使用户能够利用整个 iSeries 服务器,而且创造了把多台服务器统一成一个的伟大神话。OS/400 在稳定性、安全性和业务线应用程序方面享有毫无瑕疵的美誉,DB2 UDB for iSeries 则是其基础。而 Linux 则在这些传统的作业方式中引入了开放源码运动,让用户增加原来的 iSeries 服务器中没有的功能,开发自己的解决方案。因此,Linux on iSeries 实现在 2001 年度的 Linux World 中赢得“最佳展示奖”就毫不奇怪了。
    2004年12月27日  
 
利用 DB2 和 WebSphere Studio Application Developer 在 Linux 上开发数据库网页
本文将讨论在 Linux 系统中使用 DB2 Universal Database Version 8.2 和 WebSphere Studio Application Developer 进行数据库网页的快速应用开发。我们将创建数据库、表和列,并使用 SQL 填充和访问数据库。一旦创建了数据库,我们将使用 servlet 和 JSP 访问该数据库。
    2004年12月27日  
 
GCC 中 SIMD 指令的应用方法
X86架构上的多媒体应用开发,如果能够使用SIMD指令进行优化, 性能将大大提高。目前,IA-32的SIMD指令包括MMX,SSE,SSE2等几级。 在GCC的开发环境中,有几种使用SIMD指令的方式,本文逐一介绍。
    2004年12月23日  
 
Linux 让网络更强大,第 2 部分:建立 DHCP 服务器管理 IP 地址
这是由三部分组成的系列教程的第二部分,介绍了如何利用 Linux 让您的网络更强大。本教程教您如何使用 Internet Systems Consortium (ISC) DHCP 搭建 Dynamic Host Configuration Protocol (DHCP) 服务器。同时还提供了样例代码和配置文件以帮助理解。
    2004年12月20日  
 
Linux 让网络更强大,第 1 部分:使用 ISC BIND 建立 DNS 服务器
这是由三部分组成的系列教程的第一部分,介绍了如何利用 Linux 让您的网络更强大。 本教程特别阐述了如何使用 Internet Systems Consortium (ISC) BIND 建立 DNS。同时还提供了样例代码和配置文件以帮助理解。
    2004年12月20日  
 
安装 XAMPP 进行方便集成开发
诸如 Apache Friends 中的 XAMPP 之类的开放源码软件简化了开源项目的开发,方式是通过简化在稳定和标准化环境中应用程序的编写和分发。传统情况下,AMPP -- Apache、MySQL、PHP 和 Perl -- 都是以单独产品的形式进行安装和配置。将它们集成到中间件软件中的承诺使得开源项目的开发相对于 J2EE应用程序的开发来说更具竞争力,至少对于底层的应用程序来说是如此。在本文中,您将学习如何在 Mandrake Linux 10.0 上安装、配置和备份 XAMPP,以及如何配置和管理 XAMPP,以及如何在 XAMPP 环境中安装自己的应用程序。
    2004年12月16日  
 
使用 Linux 负载均衡实现 DB2 连接路由
Balance 是用于 Linux 平台的一种功能强大的开源工具,可以用它将 DB2 客户机连接分散到多台服务器上。本文将告诉您什么是 DB2 UDB 连接路由,并解释如何使用它来平衡 Linux 平台上的客户机请求。
    2004年12月13日  
 
从 SuSE Linux Enterprise Server V8 更新到 V9
如果您已经在使用 SLES 8,那么可以直接更新到 SLES 9,这要胜于从头重新安装。本文将研究更新的过程,而且还将提供一些关于如何成功更新的建议。
    2004年12月10日  
 
从 SuSE Linux Enterprise Server V8 更新到 V9
如果您已经在使用 SLES 8,那么可以直接更新到 SLES 9,这要胜于从头重新安装。本文将研究更新的过程,而且还将提供一些关于如何成功更新的建议。
    2004年12月10日  
 
在 iSeries 和 pSeries 上将 Linux 内核从 2.4 迁移到 2.6
在文中,我们重点介绍了 Linux 内核版本 2.4 与 2.6 在 POWER 上的区别。
    2004年12月10日  
 
在 iSeries 和 pSeries 上将 Linux 内核从 2.4 迁移到 2.6
在文中,我们重点介绍了 Linux 内核版本 2.4 与 2.6 在 POWER 上的区别。
    2004年12月10日  
 
Linux 专题:Shell 编程系列
Shell 编程系列主要内容有 Shell 工具、shell 脚本开发、系统管理等。
    2004年12月10日  
 
在 iSeries 上安装 SUSE Linux Enterprise Server V9
本文带您经历在 IBM iSeries 服务器上的客分区中安装 SUSE Enterprise Server V9 所需的步骤。从创建客分区开始,然后再设置虚拟网络,创建存储空间,配置网络地址转换,最后,启动并运行 SUSE Linux 安装程序。
    2004年12月8日  
 
Linux 和 AIX 双引导
您可能已经多次发现,有必要同时在 Linux 和 AIX 操作环境中进行开发。本文将介绍在同一 IBM eServer pSeries(包括 eServer p5)、eServer i5 或者 eServer OpenPower 服务器上双引导 Linux 和 AIX。
    2004年12月7日  
 
Linux for pSeries 的安装与管理(SLES 9)
Linux for POWER 已经出现了一段时间,并将继续成为一个引人注目的运行 Linux 的环境。本文将介绍 Linux 在 IBM pSeries 系统上的安装。
    2004年12月2日  
 
技巧: 使用truss、strace或ltrace诊断软件的"疑难杂症"
本文通过三个实际案例演示如何使用truss、strace和ltrace这三个常用的调试工具来快速诊断软件的"疑难杂症"。
    2004年12月1日  
 
UNIX/LINUX 平台可执行文件格式分析
本文讨论了 UNIX/LINUX 平台下三种主要的可执行文件格式:a.out(assembler and link editor output 汇编器和链接编辑器的输出)、COFF(Common Object File Format 通用对象文件格式)、ELF(Executable and Linking Format 可执行和链接格式)。首先是对可执行文件格式的一个综述,并通过描述 ELF 文件加载过程以揭示可执行文件内容与加载运行操作之间的关系。随后依此讨论了此三种文件格式,并着重讨论 ELF 文件的动态连接机制,其间也穿插了对各种文件格式优缺点的评价。最后对三种可执行文件格式有一个简单总结,并提出作者对可文件格式评价的一些感想。
    2004年12月1日  
 
Python 与 Gnumeric 共舞
本文介绍使用Python为Gnumeric编写插件函数,帮助读者理解用Python进行应用程序二次开发过程的原理和技巧。
    2004年12月1日  
 
内存管理内幕
本文将对 Linux 程序员可以使用的内存管理技术进行概括,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半手工地管理内存,以及如何使用垃圾收集自动管理内存。
    2004年11月29日  
 
浅谈测试驱动开发(TDD)
测试驱动开发(TDD)是极限编程的重要特点,它以不断的测试推动代码的开发,既简化了代码,又保证了软件质量。本文从开发人员使用的角度,介绍了 TDD 优势、原理、过程、原则、测试技术、Tips 等方面。
    2004年11月18日  
 
优化 Perl
Perl 是一门非常灵活的语言,然而,其易用特性会使程序员滋生出一种懒散的编程习惯。我们应该对这些坏习惯负责,同时可以采取一些快捷步骤来提高 Perl 应用程序的性能。在本文中,我们将介绍优化的一些关键内容,了解哪些解决方案有效、哪些无效,以及如何继续构建并扩展设计时就考虑到优化和速度的应用程序。
    2004年11月15日  
 
让 Linux 更安全,第 2 部分:计划安装
惟有谨小慎微者方可幸存,与其他领域一样,在确保 Linux 系统的安全时,这句话也同样适用。幸运的是,有很多安全特性,或者已经编译到内核中,或者已经加入到很多 Linux 发行版本中,或者可以以开放源代码应用程序的形式单独获得。第 2 部分涵盖了清单评估、风险分析、确定用户类别和访问特权,以及安全获得 Linux 发行版本的更详细行动计划和步骤。
    2004年11月11日  
 
虚拟网卡 TUN/TAP 驱动程序设计原理
本文将介绍 TUN/TAP 驱动的使用并分析虚拟网卡 TUN/TAP 驱动程序在 Linux 环境下的设计思路。
    2004年11月10日  
 
可爱的 Python: 用 hashcash 打击垃圾邮件
hashcash 是一个基于可广泛应用的 SHA-1 算法的巧妙系统,它使得请求者要进行大量可参数化的工作,而求值程序仍可以“廉价”地进行检验。换句话说,发送者为了向您的收件箱中放入一些内容,不得不去做一些切实的工作。您当然可以使用 hashcash 来防止垃圾邮件,不过它还有其他方面的应用,其中包括为 Wiki 防止垃圾邮件以及加速分布式并行应用程序的运转。在本文中,您将接触到 David 自己的基于 Python 的 hashcash 实现。
    2004年11月9日  
 
功能丰富的 Perl: 遗传算法仿真多细胞机体
遗传编程建立在达尔文适者生存的自然选择法则的基础之上,利用变异和复制来生成算法,该算法可创建不断改进的计算机程序。本文是关于遗传算法的第三部分,Ted 从他上一次结束的地方继续讲述,介绍了如何仿真一个多细胞机体。
    2004年11月8日  
 
Linux 上的高可用中间件,第 1 部分:Heartbeat 和 Apache Web 服务器
本文是由 5 篇文章组成的系列文章中的第一篇,在文中,您将了解高可用性对软件意味着什么,学习如何在一个两节点系统上安装并设置来自 High-Availability Linux 项目的 heartbeat 软件。您还将学到如何配置 Apache Web 服务器,将其作为一项高可用性服务来运行。
    2004年11月8日  
 
CpuMemSets 在 Linux 中的实现
本文将以 SGI 的 ProPack v2.2 为研究对象,分析 CpuMemSets 在Linux-2.4.20 中的具体实现。CpuMemSets 是 SGI 进行的一个开放源码项目,由针对 Linux2.4 内核的补丁、用户库、python 模块和 runon 等命令共四部分组成,以实现处理器和内存块的分区为目标,控制系统资源(处理器、内存块)面向内核、任务以及虚拟存储区的分配,为 dplace、RunOn 等 NUMA 工具提供支持,最终优化 Linux 系统的 NUMA 性能。
    2004年11月4日  
 
开放源代码:创新与风险的平衡
开源社区基于互联网,可以说无所不在,最终用户的需要会被贴出,而总是急于得到承认或只是乐于技术上精益求精的程序员们会写出应用程序(application),随后,便有大量的个人调试和重写它。开源软件的潜力就是能够快速开发出IP应用程序,这非常重要,因为Internet在固定和移动通信中带来更新的服务。MySQL,Apache,Open Forge,GNU,Linux还有其他无数的开源项目,开放的接口使得模块间可以互相交流,也使得应用程序之间可以相互操作。
    2004年11月4日  
 
功能丰富的 Perl: Perl 6 语法和正则表达式
Perl 6 终于即将面世。在本文中,Ted 将向您介绍 Perl 6 语言的语法和正则表达式,并将它们与当前可用的 Perl 5 Parse::RecDescent 模块进行对比。认识 Perl 正则表达式的新特性,并学会如何具体使用新奇而且强大的 Perl 脚本语言。
    2004年11月2日  
 
SkyEye硬件模拟平台,第三部分: 硬件仿真实现之六
本系列文章的第三部分主要介绍了SkyEye硬件模拟平台的实现细节。主要内容包括SkyEye的总体设计、SkyEye的可扩展框架、SkyEye的关键数据结构、SkyEye对各种CPU的模拟实现、SkyEye对各种外设的模拟实现、如何安装使用SkyEye以及如何扩展SkyEye的仿真模块等。对SkyEye的深入了解,有助于对嵌入式硬件系统有更深入的认识,特别是对操作系统、驱动程序如何与嵌入式硬件系统进行交互有更深刻的了解。
    2004年11月1日  
 
SkyEye硬件模拟平台,第三部分: 硬件仿真实现之五
本系列文章的第三部分主要介绍了SkyEye硬件模拟平台的实现细节。主要内容包括SkyEye的总体设计、SkyEye的可扩展框架、SkyEye的关键数据结构、SkyEye对各种CPU的模拟实现、SkyEye对各种外设的模拟实现、如何安装使用SkyEye以及如何扩展SkyEye的仿真模块等。对SkyEye的深入了解,有助于对嵌入式硬件系统有更深入的认识,特别是对操作系统、驱动程序如何与嵌入式硬件系统进行交互有更深刻的了解。
    2004年11月1日  
 
SkyEye硬件模拟平台,第三部分: 硬件仿真实现之四
本系列文章的第三部分主要介绍了SkyEye硬件模拟平台的实现细节。主要内容包括SkyEye的总体设计、SkyEye的可扩展框架、SkyEye的关键数据结构、SkyEye对各种CPU的模拟实现、SkyEye对各种外设的模拟实现、如何安装使用SkyEye以及如何扩展SkyEye的仿真模块等。对SkyEye的深入了解,有助于对嵌入式硬件系统有更深入的认识,特别是对操作系统、驱动程序如何与嵌入式硬件系统进行交互有更深刻的了解。
    2004年11月1日  
 
技巧:Linux I/O重定向的一些小技巧
Linux I/O 重定向虽然很简单,但在脚本编写、系统管理时却要常常打交道,搞清其中使用技巧非常有用。
    2004年11月1日  
 
安全编程: 避免竞争条件
了解什么是竞争条件,以及它们为什么会引发安全问题。本文将向您展示如何在类 UNIX (Unix-like)系统中处理常见的竞争条件,其中包括如何正确创建锁文件、锁文件的替代者,如何处理文件系统,以及如何处理共享目录(特别是如何在 /tmp 目录下正确创建临时目录)。您需要对信号处理稍有了解。
    2004年10月25日  
 
用 DB2、PHP 和 Linux 实现 Web 投票
Web 投票(polling)或 Web 表决(voting)为从网站访问者那里获得反馈提供了一种很好的方式。本文展示了如何使用 IBM DB2 UDB、PHP 和 Linux 将这项功能添加到 Web 站点中。您将研究的设计包括:使用数据库存储选票信息,使用 PHP 脚本语言实现投票,以及创建、管理和审查选票。
    2004年10月25日  
 
X86-64上的Linux VM管理系统
本文主要分析运行于X86-64上的Linux操作系统的虚拟内存管理系统,所用的Linux是Suse 8,内核版本是2.4.19。
    2004年10月21日  
 
Linux 对象存储文件系统的研究
随着高性能计算由传统的主机方式向网络化集群演变,传统的基于主机的存储架构已逐渐向网络化存储发展,计算和存储分离的趋势越来越明显。针对SAN和NAS的不足,国际上已开展针对Linux集群的新型文件系统��对象存储文件系统的研究,本文重点论述了存储对象文件系统的架构、技术特点,并针对Lustre对象存储文件系统进行了初步测试,结果表明对象存储文件系统在可扩展性、性能、易用性等方面都有显著提高,随着网络化存储技术的不断成熟,对象存储文件系统将成为重要的发展方向。
    2004年10月18日  
 
使用 R 编写统计程序: 第 2 部分. 功能编程和数据采集
本系列共分三个部分,这是第 2 部分,David 和 Brad 将基于他们的第一期文章继续对 R(R 是一个作为自由软件发布的功能丰富的统计 环境)进行论述。既然数据是井然有序的,所以我们将深入研究语言的功能性。
    2004年10月18日  
 
使用 R 编写统计程序:第 1 部分. 初涉大量统计工具
在这个由三部分组成的系列文章的第一篇中,David 和 Brad 向您介绍了一个作为自由软件发布的功能丰富的统计环境:R。它包括一门编程语言、一个交互式 shell 以及广泛的图形功能。另外, R 附带了一组令人惊叹的用于数学和统计处理的函数 ―― 还可以利用可选程序包中的更多功能。
    2004年10月11日  
 
在 iPAQ 上运行 Linux
在 iPAQ 上安装 Linux 对于赋予成熟的硬件以新的活力或者使已有的工具变得更好,可能是一种很好的方式,尤其当您是桌面 Linux 的拥趸者时更是如此。在这个过程中您可以充分利用已有的知识,还可以享受到熟悉(双关语,Familiar)而且免费的开放源代码软件的益处。在本文中,学习如何用 Linux 来武装您的 HP-Compaq iPAQ PDA。
    2004年10月11日  
 
SkyEye硬件模拟平台,第三部分: 硬件仿真实现之三
本系列文章的第三部分主要介绍了SkyEye硬件模拟平台的实现细节。主要内容包括SkyEye的总体设计、SkyEye的可扩展框架、SkyEye的关键数据结构、SkyEye对各种CPU的模拟实现、SkyEye对各种外设的模拟实现、如何安装使用SkyEye以及如何扩展SkyEye的仿真模块等。对SkyEye的深入了解,有助于对嵌入式硬件系统有更深入的认识,特别是对操作系统、驱动程序如何与嵌入式硬件系统进行交互有更深刻的了解。
    2004年10月1日  
 
SkyEye硬件模拟平台,第三部分: 硬件仿真实现之二
本系列文章的第三部分主要介绍了SkyEye硬件模拟平台的实现细节。主要内容包括SkyEye的总体设计、SkyEye的可扩展框架、SkyEye的关键数据结构、SkyEye对各种CPU的模拟实现、SkyEye对各种外设的模拟实现、如何安装使用SkyEye以及如何扩展SkyEye的仿真模块等。对SkyEye的深入了解,有助于对嵌入式硬件系统有更深入的认识,特别是对操作系统、驱动程序如何与嵌入式硬件系统进行交互有更深刻的了解。
    2004年10月1日  
 
SkyEye硬件模拟平台,第三部分: 硬件仿真实现之一
本系列文章的第三部分主要介绍了SkyEye硬件模拟平台的实现细节。主要内容包括SkyEye的总体设计、SkyEye的可扩展框架、SkyEye的关键数据结构、SkyEye对各种CPU的模拟实现、SkyEye对各种外设的模拟实现、如何安装使用SkyEye以及如何扩展SkyEye的仿真模块等。对SkyEye的深入了解,有助于对嵌入式硬件系统有更深入的认识,特别是对操作系统、驱动程序如何与嵌入式硬件系统进行交互有更深刻的了解。
    2004年10月1日  
 
为Linux应用构造有限状态机
有限自动机(Finite Automata Machine)是计算机科学的重要基石,它在软件开发领域内通常被称作有限状态机(Finite State Machine),是一种应用非常广泛的软件设计模式(Design Pattern)。本文介绍如何构建基于状态机的软件系统,以及如何利用Linux下的工具来自动生成实用的状态机框架。
    2004年10月1日  
 
Scheme语言深入
在Scheme语言中,符号类型的用法、过程的多参数情况、Continuation、记录类型、宏定义与模块等等一些问题成为阻挡初学者的门槛,也是深入理解和使用Scheme语言编程的关键,下面分别论述,做为对《Scheme语言概要》一文的补充。
    2004年10月1日  
 
功能丰富的 Perl: 有趣的 Ion 窗口管理器
请关注 Ion 窗口管理器这个功能强大却又很简单的程序,可以用它来管理应用程序在桌面上调用的窗口。Ion 并非华而不实,一旦习惯了它,您的工作效率将因此得到极大的提高,而且您会感到奇怪:为什么以前还使用其他窗口管理器。
    2004年9月29日  
 
将应用程序从 OS/2 迁移到 Linux 上:第 3 部分,计时器和 DLL 调用
Linux 是新千年里最杰出的操作系统,而传统的操作系统,如 OS/2,现在正在逐渐淘汰出局。 本系列文章是为那些正经受迁移/移植痛苦的开发人员撰写的,可以帮助他们将 OS/2 系统驱动和应用程序移植到 Linux 上。本系列文章共分为 3 期,这是是最后一期,重点 介绍了如何在 OS/2 和 Linux 中进行计时器调用和 DLL 调用,着眼于两系统之间的映射。
    2004年9月27日  
 
为您的 Linux 应用开发加油提速 2004:安装 IBM Tivoli Directory Server V5.2 for Linux
IBM Tivoli Directory Server V5.2 是一个为 Web 应用程序提供身份管理的强大的 LDAP 应用程序。 本文详尽地向您介绍了如何在 Linux 上安装、配置和运行 IBM Tivoli Directory Server V5.2。
    2004年9月27日  
 
使用 lex 和 yacc 编译代码,第 2 部分:开发和故障检修
本文是由两部分构成的系列文章的第二篇,将研究更高级的 lex/yacc 开发,并介绍基本的问题诊断技术。留心在您眼前解析的电子邮件标题!对含义模糊的错误消息感到惊奇!观察计算机确实在进行计算!
    2004年9月24日  
 
通过 ccache 改善协同构建时间
借助 CVS,可以很好地使用 cc 或者 gcc 将 C/C++ 项目协同构建为共享源代码文件和其他组件,但是,当应用程序融入了任何其他人的改变时,构建所需要的时间可能是相当可观的。即便您不是作为小组成员来编译项目,重新编译一个应用程序也会需要很长时间。ccache 工具通过将头文件高速缓存到源文件之中而改进了构建性能,因而通过减少每一步编译时添加头文件所需要的时间而提高了构建速度。通过本文学习如何构建和安装 ccache、如何在您现有的环境中使用它以及如何在小组开发项目中改善编译时间。您还将了解到如何同时使用 ccache 和distcc 来使开发环境达到最佳性能。
    2004年9月24日  
 
将应用程序从 OS/2 迁移到 Linux 上: 第 3 部分,计时器和 DLL 调用
Linux 是新千年里最杰出的操作系统,而传统的操作系统,如 OS/2,现在正在逐渐淘汰出局。本系列文章是为那些正经受迁移/移植痛苦的开发人员撰写的,可以帮助他们将 OS/2系统驱动和应用程序移植到 Linux 上。本系列文章共分为 3 期,这是是最后一期,重点介绍了如何在 OS/2 和 Linux 中进行计时器调用和 DLL 调用,着眼于两系统之间的映射。
    2004年9月24日  
 
使用 lex 和 yacc 编译代码,第 1 部分:介绍
lex 和 yacc 是自动编译 C 代码的工具,适合于解析简单的语言。这些工具经常用作编译器或者解释器的组成部分,或者用于读取配置文件。在这两篇文章的第一篇中,Peter Seebach 阐明了 lex 和 yacc 的实际功能,并展示了如何在简单的任务中使用它们。
    2004年9月23日  
 
连接到 Linux Web 服务引擎的 DB2 瘦客户机:第 2 部分
本文演示了如何用 Linux 上的 Kylix 3 构建 SOAP Web 服务引擎的用户界面(瘦客户机应用程序),以便将 DB2 UDB 数据库表中的数据暴露出来。
    2004年9月20日  
 
Linux2.6.6 内核下 ACPI PCI Hot-Plug 的实现机制<下>
ACPI (Advanced Configuration and Power Interface) 是由业界一些软硬件公司共同开发的开放式工业规范。它能使软、硬件、操作系统(OS),主机板和外围设备,依照一定的方式管理用电情况,系统硬件产生的 Hot-Plug 事件,让操作系统从用户的角度上直接支配即插即用设备,不同于以往直接通过基于 BIOS 的方式的管理。
    2004年9月20日  
 
Linux2.6.6 内核下 ACPI PCI Hot-Plug 的实现机制<上>
ACPI (Advanced Configuration and Power Interface) 是由业界一些软硬件公司共同开发的开放式工业规范。它能使软、硬件、操作系统(OS),主机板和外围设备,依照一定的方式管理用电情况,系统硬件产生的 Hot-Plug 事件,让操作系统从用户的角度上直接支配即插即用设备,不同于以往直接通过基于 BIOS 的方式的管理。
    2004年9月20日  
 
使用 Kprobes 调试内核
使用 printk 收集 Linux 内核的调试信息是一个众所周知的方法 —— 而使用 Kprobes,不需要经常重新引导和重新编译内核就可以完成这一任务。Kprobes 与 2.6 内核结合起来提供了一个动态插入 printk 的轻量级、无干扰而且强大的装置。记录调试信息(比如内核栈追踪、内核数据结构和寄存器)日志从来没有这么简单过!
    2004年9月19日  
 
SYN Cookie 原理及其在 Linux 内核中的实现
本文就分别介绍一下 SYN Flood 攻击和 SYN Cookie 的原理,更重要的是介绍 Linux 内核中实现SYN Cookie 的方式。最后,本文给出一种增强目前 Linux 中 SYN Cookie 功能的想法。
    2004年9月16日  
 
自动化应用程序构建和发布的过程
您已经足够多地考虑了为单一类型的系统构建开放源代码应用程序的情形,但是,如果您正在构建的应用程序需要在多种不同的、不兼容的机器上发布,又该怎么办呢?这个问题不太容易解决,但是,可以使用一些准则和定制的脚本来简化这一过程。本文研究的是如何创建一个构建和发布应用程序的结构,包括高度定制的版本,以及一种能在多种机器上尽可能轻松地传播应用程序(手工地或者自动地)的简单途径。
    2004年9月14日  
 
为您的 Linux 应用开发加油提速 2004:安装 IBM WebSphere Studio Application Developer V5.1.2 for Linux
遵循这些步骤轻松安装 IBM WebSphere Studio Application Developer V5.1.2。本文适用的对象是那些刚接触 Linux 或基于 UNIX 操作系统的开发人员。
    2004年9月9日  
 
在 JS20 刀片服务器上安装 SUSE Linux Enterprise Server 8
从 BladeCenter 管理模块到 SUSE Linux Enterprise Server 8 的安装,本文描述了在 IBM eServer BladeCenter JS20 刀片服务器上进行 Linux 基本安装的步骤。
    2004年9月2日  
 
Linux 上实现双向进程间通信管道
本文阐述了一个使用 socketpair 系统调用在 Linux 上实现双向进程通讯管道的方法,并提供了一个实现。
    2004年9月1日  
 
为您的 Linux 应用开发加油提速 2004: 安装 WebSphere Application Server Version 5.1
本文展示了如何在 Red Hat Enterprise Linux v.3(RHEL3)或者 SUSE Linux Enterprise Server 8(SLES8)上安装、配置和测试 WebSphere Application Server V5.1。本文适用的对象是那些刚接触 Linux 或基于 UNIX 操作系统的开发人员。
    2004年9月1日  
 
为您的 Linux 应用开发加油提速 2004: 安装 DB2 Version 8.1.6
本文将指导您轻松地完成安装 IBM DB2 Universal Database Personal Edition V8.1.6 和 IBM Java 运行时环境(Java Runtime Environment,JRE)的步骤。本文适用的对象是那些刚接触 Linux 或基于 UNIX 操作系统的开发人员。
    2004年9月1日  
 
SkyEye硬件模拟平台, 第一部分: SkyEye 介绍
本文主要介绍了SkyEye硬件模拟平台起源,背景和发展状况。SkyEye是一个可以模拟嵌入式硬件开发板的系统软件。通过SkyEye的了解,有助于对嵌入式硬件系统有更深入的认识,特别是对操作系统、驱动程序如何与嵌入式硬件系统进行交互有更深刻的了解。
    2004年9月1日  
 
SkyEye硬件模拟平台,第二部分: 安装与使用
本文主要介绍SkyEye硬件模拟平台的安装与使用。对SkyEye的使用,可以调试和开发多种嵌入式操作系统和系统软件,有助于对操作系统、驱动程序如何与嵌入式硬件系统进行交互有更深刻的了解。
    2004年9月1日  
 
developerWorks Linux 专栏
为了方便大家系统地学习 Linux,我们通过 theme 形式收集了目前 Linux 专区中的所有专栏文章。在此您可集中了解、学习各种热门的 Linux 专栏。
    2004年9月1日  
 
在 Linux 上用 Kylix 3 构建 DB2 Web 服务引擎:第 1 部分
本文演示了如何在 Linux 上用 Kylix 3 构建 SOAP Web 服务引擎,向外界暴露 DB2 UDB 数据库表中的数据。
    2004年8月30日  
 
PAM 的应用开发和内部实现源码分析
本文主要通过对 Linux PAM 源代码进行分析,阐述了 PAM 的内部实现机制和怎样在应用程序中应用 PAM 进行认证,以及怎样开发 PAM 服务模块。
    2004年8月30日  
 
在 POWER 服务器上安装 OpenOffice.org for Linux
很多用户都需要使用高效的办公套件,POWER 上的 Linux 的用户也不例外。OpenOffice.org 提供了一个可用于多种平台的开放源代码产品,其中包括了办公用户所需要的很多关键应用程序。本文阐明了如何在 iSeries 和 pSeries 服务器上的多用户 Linux 中安装和配置 OpenOffice.org。
    2004年8月26日  
 
可爱的 Python: 了解 DParser for Python
首先初步了解 DParser 这一由 J. Plevyak 编写的简单而强大的解析工具。然后了解用于 Python 的DParser,它为 Python 程序员提供了一个访问 DParser 的无缝接口,并看看它与上一期中介绍的解析器的比较。语法规则以类似于 Spark 或 PLY 的方式通过 Python 函数文档字符串加入到 DParser 中。
    2004年8月23日  
 
深入分析 Linux 内核链表
本文详细分析了 2.6.x 内核中链表结构的实现,并通过实例对每个链表操作接口进行了详尽的讲解。
    2004年8月23日  
 
在 Perl/Tk 中使用高级窗口小部件
Perl 是现在最流行的语言之一,从关键任务项目到 Web 应用程序再到“glue”,到处都使用了 Perl。不过,它并不常用于 GUI 编程和原型设计。Philipp K. Janert 认为它应该用于此类应用,在您研究了 Perl/Tk 的一些较为复杂的窗口小部件以后,您也可能会这样认为。
    2004年8月23日  
 
专家访谈:Karl Bishop 谈 WebSphere Portal 和 Linux
在这篇一问一答的文章里,我们邀请到了 Karl Bishop 专家来回答关于 WebSphere Portal、Linux、WebSphere Studio 和 WebSphere Application Server 的问题。
    2004年8月19日  
 
使用 D-BUS 连接桌面应用程序
D-BUS 是一个大有前途的消息总线和活动系统,正开始深入地渗透到 Linux 桌面之中。了解创建它的原因、它的用途以及发展前景。
    2004年8月19日  
 
gnuplot 让您的数据可视化
使用 Gnuplot 4.0 将数据和函数转换为专业的图表,Gnuplot 4.0 是一种免费分发的绘图工具。本文是 gnuplot 的实践指南,着重讲述了有效使用此工具的一些惯例。
    2004年8月16日  
 
Power Mac G5 上的 Yellow Dog Linux :Power 开发者工作站上的 Linux
IBM PowerPC 970 CPU 是设计精良、性能卓越的芯片,它安装于 Apple Computer 的数百万台 Power Macintosh G5 终端用户系统上。这些 CPU 大大降低了在桌面机和小型服务器上进行 64 位计算的门槛。当前, Terra Soft 的测试版 Y-HPC 是仅有的能运行于 G5 之上的两种 64 位 Linux 之一。顾名思义,这些支持 G5 的测试版 ―― 既包括 32 位版本也包括 64 位版本 ―― 只是用于评测。本文让我们提前了解了 G5 上的 Linux 将要具备的功能,供那些有兴趣在产品化版本出现之前试验这一产品的开发者参考。
    2004年8月16日  
 
从 FireWire 设备引导 Linux
获得外置驱动器是一种为较老设备注入生机的极好方法,或者允许您在不能(或不想)改变内置硬盘驱动器的机器上运行 Linux。
    2004年8月15日  
 
利用 Kylix 3(和 WebSnap)在 Linux 上构建 DB2 Web 服务器应用程序
本文展示了如何使用 Kylix 3 构建 Web 服务器应用程序,将 IBM DB2 UDB SAMPLE 数据库暴露在 Web 上。
    2004年8月12日  
 
使用 OpenSSL API 进行安全编程
学习如何使用 OpenSSL ―― 用于安全通信的最著名的开放库 ―― 的 API 有些强人所难,因为其文档并不完全。您可以通过本文中的提示补充这方面的知识,并驾驭该 API。在建立基本的连接之后,就可以查看如何使用 OpenSSL 的 BIO 库来建立安全连接和非安全连接。与此同时,您还会学到一些关于错误检测的知识。
    2004年8月9日  
 
在 Linux 上自由运行
随着 Wi-Fi 的普及,Linux 也已加入这一行列。在本文中,Roman Vichr 阐述了 Linux 如何为很多无线工具和项目提供帮助 ―― 同时得到这些工具的帮助。
    2004年8月2日  
 
Kylix 3 for C++ 与 Linux 上的 IBM DB2 UDB v8.1
本文展示了如何使用 C++ 版的 Kylix 3 来操作 IBM DB2 UDB 表。
    2004年8月2日  
 
让 Linux 更安全,第 1 部分:介绍
惟有谨小慎微者方可幸存,与其他领域一样,在确保 Linux 系统的安全时,这句话也同样适用。幸运的是,有很多安全部件,或者已经编译到内核中,或者已经加入到很多 Linux 发行版本中,或者可以以开放源代码应用程序的形式单独获得。作为本系列的第 1 部分,本文将使您开始理解安全的概念及潜在的危险,并为您真正需要知道的内容做好准备:如何保护和加固基于 Linux 的安装。
    2004年8月2日  
 
让 Linux 更安全,第 1 部分:介绍
惟有谨小慎微者方可幸存,与其他领域一样,在确保 Linux 系统的安全时,这句话也同样适用。幸运的是,有很多安全部件,或者已经编译到内核中,或者已经加入到很多 Linux 发行版本中,或者可以以开放源代码应用程序的形式单独获得。作为本系列的第 1 部分,本文将使您开始理解安全的概念及潜在的危险,并为您真正需要知道的内容做好准备:如何保护和加固基于 Linux 的安装。
    2004年8月2日  
 
在 iSeries 和 pSeries 的 Linux 上安装 IBM Tivoli 存储管理器
本文给出了安装的要点,以及在 IBM eServer iSeries 和 pSeries 服务器的 Linux 上开始使用 IBM Tivoli Storage Management(ITSM)服务器方便地备份和恢复您的 IT 环境的步骤。
    2004年7月26日  
 
GCC 的编译流程及中间表示层 RTL 的初步探索
本文将以 C 语言为例,介绍 gcc 在接受一个 .c 文件的输入之后,其前端是如何进行处理并得到一个中间表示并转交给后端处理。然后,在了解了 gcc 的工作流程后,介绍一下作者尝试在 gcc 内部的 RTL 表示层中 hack gcc 的过程,与大家分享一些经验,希望能给对有兴趣研究和开发 gcc 的读者有所帮助。
    2004年7月26日  
 
可爱的 Python:自然语言工具包入门
在本期文章中,David 向您介绍了自然语言工具包(Natural Language Toolkit),它是一个将学术语言技术应用于文本数据集的 Python 库。称为“文本处理”的程序设计是其基本功能;更深入的是专门用于研究自然语言的语法以及语义分析的能力。
    2004年7月26日  
 
为您的 Linux 应用开发加油提速: 在 iSeries 上安装用于 Linux 的 DB2
本文展示了如何在 iSeries 上安装 DB2 版本 8.1 以及如何完成基本的管理任务以得到一个可用的 DB2 环境,比如 ControlCenter 设置、数据库创建准备、数据库创建。
    2004年7月21日  
 
用于 PowerPC 上的 Linux 的五个易用的性能分析工具
本文介绍的是 Performance Inspector,其中包括一套用于 Linux 的性能分析工具。作者介绍了如何下载和安装所需要的软件和工具以及如何收集性能分析数据。她还给出了五个基本工具的详细使用方法,您可以用它们来分析 C/C++ 和 Java 应用程序的性能,以及您的系统的整体性能。
    2004年7月20日  
 
Linux 内核压力测试
自动软件测试让您可以在一段时间内运行相同的测试,从而确保您所比较的内容具备真正的可比性。在本文中, Linux Test Project 团队的成员们分享了他们对 Linux? 内核进行压力所使用的测试的方法、原理以及脚本和工具。
    2004年7月19日  
 
PowerPC 上 Linux 的五个易用的性能分析工具
本文介绍的是 Performance Inspector,其中包括一套用于 Linux 的性能分析工具。作者介绍了如何下载和安装所需要的软件和工具以及如何收集性能分析数据。她还给出了五个基本工具的详细使用方法,您可以用它们来分析 C/C++ 和 Java 应用程序的性能,以及您的系统的整体性能。
    2004年7月19日  
 
使用 ipmitool 实现 Linux 系统下对服务器的 ipmi 管理
IPMI 是一种可扩展的标准,它定义了如何监控硬件和传感器、控制系统部件以及记录重大事件,随着ipmi技术在服务器中的应用,利用 ipmi 的众多优势就成为服务器管理特别是集群管理中不可缺少的部分。本文首先介绍了 ipmi 的一些基本概念,然后给出了如何利用ipmitool这一工具实现linux系统中 ipmi 管理的具体步骤和方法。
    2004年7月15日  
 
使用 distcc 缩短编译时间
有一些人推崇 RPM 式的预编译二进制或其他这类的安装程序方法所带来的便利。但这可能并不经济,尤其是对那些经常被使用的程序而言:预编译的二进制的运行速度将永远比不上为您的机器优化编译的那些程序的速度,但如果使用分布式编译器,您就可以两者兼得:快速的编译速度和更快的应用程序。您所需要的就是 distcc。
    2004年7月12日  
 
Linux 内核空间与用户空间通信的实现与分析
多数的 Linux 内核态程序都需要和用户空间的进程交换数据,但 Linux 内核态无法对传统的 Linux 进程间同步和通信的方法提供足够的支持。本文总结并比较了几种内核态与用户态进程通信的实现方法,并推荐使用 netlink 套接字实现中断环境与用户态进程通信。
    2004年7月12日  
 
功能丰富的 Perl: 管理 Linux 配置文件
一般的开发者用于定位、学习和调试配置文件的所花费的时间,比您预期的要更长。不过,使用一个您可能每天都在用的工具:CVS 树,您就可以节约那些时间——并减轻精力和挫折的负担。使用这些技巧来备份、发布最令您头痛的 Linux(和 UNIX)配置文件,并使其变得可移植。
    2004年7月10日  
 
使用 Glitch 学习 OpenGL
OpenGL是目前应用最为广泛的高性能工业图形标准,是开发高质量的二维或三维交互式图形应用程序的首选环境。本文介绍了开源的OpenGL辅助学习软件Glitch的基本设计思想、用法以及其它一些内容。
    2004年7月8日  
 
Linux 的 NUMA 技术
NUMA(Non-Uniform Memory Access Architecture)系统在市场上的应用越来越广泛,许多厂商都成功推出了基于 NUMA 架构的服务器,本文重点讨论了当前 Linux 的 NUMA 技术,主要包括:存储管理、NUMA 调度和用户层的 API,并在 SGI 的 Altix 350 系统上进行了 NUMA 基本测试,对进行 Linux NUMA 技术的研究具有参考价值。
    2004年7月8日  
 
在 Linux 上构建 WAP 网关
实现移动服务的最热门技术是无线应用协议(Wireless Application Protocol,WAP)。用于 WAP 的开放源代码网关执行 Web 服务器与移动电话之间的协议转换,本文对它的优势进行了讨论。
    2004年7月5日  
 
netperf 与网络性能测量
本文首先介绍网络性能测量的一些基本概念和方法,然后结合 netperf 工具的使用,具体的讨论如何测试不同情况下的网络性能。
    2004年7月1日  
 
使用 Linux LiveCD
很多 Linux 发行版本已经被设计为所谓的“LiveCD”,即可以直接引导为可用 Linux 系统的 CD。与大多数广为应用的发行版本中可以使用的“急救模式(rescue mode)”引导选项相反,这些 LiveCD 的设计是,当从 CD 引导起来后,提供一整套可以使用的工具,其中有一些是通用的,有一些是高度专用的。David Mertz 介绍了 Linux 市场中这一迅速成长的分支。
    2004年7月1日  
 
Linux 系统内核空间与用户空间通信的实现与分析
多数的 Linux 内核态程序都需要和用户空间的进程交换数据,但 Linux 内核态无法对传统的 Linux 进程间同步和通信的方法提供足够的支持。本文总结并比较了几种内核态与用户态进程通信的实现方法,并推荐使用 netlink 套接字实现中断环境与用户态进程通信。
    2004年7月1日  
 
比较 IBM 开放集合类与 STL 集合类
在很多应用程序中,对标准数据结构或者集合结构的需要是必不可少的。本文比较了 IBM 开放集合类 (Open Collection Classes)和标准模板库(Standard Template Library,STL)集合类。如果您需要将使用 STL 集合类的应用程序移植为使用 IBM 开放集合类,或者反之,您可能会发现本文会有所帮助。
    2004年7月1日  
 
Linux 线程库性能测试与分析
NPTL 成为 glibc "正选"线程库后,它的性能如何受到很多人的关注。本文就针对NPTL 与 LinuxThreads 的性能比较,以及超线程、内核可抢占等特性对线程性能的影响进行了全面评测。
    2004年7月1日  
 
NAPI 技术在 Linux 网络驱动上的应用和完善
NAPI 是 Linux 上采用的一种提高网络处理效率的技术,它的核心概念就是不采用中断的方式读取数据,而代之以 POLL 的方法来轮询数据,类似于底半方式(bottom-half 的处理模式);但是目前在 Linux 的 NAPI 工作效率比较差,本文在分析 NAPI 的同时,提供了一种高效的改善方式供大家参考。
    2004年6月28日  
 
使用 Maypole 构建 Web 应用程序
Simon Cozens 将他对啤酒的喜爱转化为一个 Perl 应用程序服务器——从一个简单的前端到数据库服务器,再发展为一个社区网络 Web 应用程序。无论如何,他从啤酒开始讲起。
    2004年6月25日  
 
用 GStreamer 简化 Linux 多媒体开发
GStreamer 是 GNOME 桌面环境下用来构建流媒体应用的编程框架(framework),其目标是要简化音/视频应用程序的开发,目前已经能够被用来处理像 MP3、Ogg、MPEG1、MPEG2、AVI、Quicktime 等多种格式的多媒体数据。
    2004年6月24日  
 
安全编程: 最小化特权
安全的程序必须最小化特权,以降低缺陷转化为安全漏洞的可能性。本文讨论了如何通过最小化有特权的模块、授与的特权以及特权的有效时间来最小化特权。文章不仅讨论了一些传统的类 UNIX 特权机制,还讨论了较新的机制,如 FreeBSD 的 jail(),Linux 安全模块(Linux Security Modules,LSM)框架,以及 Security-Enhanced Linux(SELinux)。
    2004年6月20日  
 
在 Linux 上构建 LSID 中心 -- 基于 Java 的生命科学标识权威中心整合生物数据资源
我们将向您演示如何从头开始逐步构建一个基于 Java 的生命科学标识(Life Sciences Identifier,LSID)中心。我们将演示如何在 Linux 平台上分别针对一个极小数据集和从蛋白质序列数据库(protein sequence database)Swiss-Prot 下载的数据,构建 LSID 中心。
    2004年6月17日  
 
使用 Python 构造神经网络
Hopfield 网络是最容易理解的神经网络模型之一——它们也会是实用的。Hopfield 网络的主要功能是消除噪声和重构已知的图案。Python 程序员 Andrew Blais 是您学习 Hopfield 网络和研究他的 net.py 应用程序的向导。
    2004年6月15日  
 
Vmware 实现一台电脑中的网络
本文探讨在一台电脑上面利用软件模拟多个电脑,并实现较复杂的网络环境下多个模拟机器的联网,并以zebra路由软件和ipv6使用为例做了测试和说明。
    2004年6月10日  
 
使用 kexec 快速重启 Linux -- 为获得更多正常运行时间而不再使用引导装载程序
即使您的工作不要求您每天多次重新启动您的 Linux 机器,等待系统启动也实在是一件枯燥的事情。因而有了 kexec。本质上讲,kexec 是一个让您可以重新启动到一个新 Linux 内核的快速重新引导功能部件 ―― 不必通过引导装载程序。更快速的重新启动即使对于正常运行时间并不是至关重要时也是有益的 ―― 对那些每天都要多次重新启动机器的内核和系统软件开发者来说更可谓是救生者。kexec 当前只能用在 x86 32 位平台上。
    2004年6月10日  
 
Linux 下一种 ELF 文件的代码签名验证机制
本文将描述一种LINUX下ELF文件的代码签名及验证机制的设计与实现,这种机制能有效防止基于ELF文件的恶意代码的入侵,并同时提供了灵活的分级验证机制,使系统在安全性与效率方面取得最佳平衡。
    2004年6月2日  
 
集群的可扩展性及其分布式体系结构(3)--下
这篇文章是《集群的可扩展性及其分布式体系结构》的第三篇。主要介绍集群的软硬件结构的层次结构模型、主要的分类方法和决定集群设计的四大要素:HA、SSI、作业管理和通信。笔者旨在通过几个不同切入点的分析,构筑集群的抽象模型,使读者在现实中分析、设计集群时有所参考。
    2004年6月1日  
 
集群的可扩展性及其分布式体系结构(3)--上
这篇文章是《集群的可扩展性及其分布式体系结构》的第三篇。主要介绍集群的软硬件结构的层次结构模型、主要的分类方法和决定集群设计的四大要素:HA、SSI、作业管理和通信。笔者旨在通过几个不同切入点的分析,构筑集群的抽象模型,使读者在现实中分析、设计集群时有所参考。
    2004年6月1日  
 
基于Linux的集群系统(十一)--Linux集群系统的实现(上)
本篇是《基于linux的集群系统》的最后一篇。作者将向我们讲述一个Linux集群系统的具体实现过程。限于篇幅分为上、下两部分。
    2004年6月1日  
 
基于Linux的集群系统(十一)--Linux集群系统的实现(下)
本篇是《基于linux的集群系统》实现篇的下部分。将向我们讲述各个模块的具体设计和实现。
    2004年6月1日  
 
Linux 中网络数据包捕获
该中级教程涉及了捕获处理数据包的几种不同机制。安全应用 -- 如 VPN、firewalls、和 sniffers,网络应用如路由器 -- 都要依赖于本文所阐述的方法来完成各自的工作。一旦有这方面的问题,也要依此来解决。此教程中包括数据包截获的各方面知识:Linux 内核从 2.2.x 到目前的版本,技术方面从 divert socket、 netfilter 到中断处理,还有一堆内核源代码本身等等。千万不要错过哦。
    2004年5月31日  
 
将应用程序从 OS/2 迁移到 Linux 上: 第 2 部分,内存管理、IPC 和文件处理 -- 管道和共享内存
Linux 是新千年里最杰出的操作系统,而传统的操作系统,如 OS/2,现在正在逐渐淘汰出局。本系列文章是为那些正经受迁移/移植痛苦的开发人员撰写的,可以帮助他们将 OS/2 系统驱程序和应用程序移植到 Linux 上。本系列文章共分为 3 期,这是是第 2 期,着重介绍了管道、内存和文件的管理。
    2004年5月31日  
 
IA64 Linux 外部中断处理机制
本文分析和介绍了 Intel IA64 体系结构中新型的中断处理方式��SAPIC(Streamlined Advanced Programmable Interrupt Controller),通过分析 IA64 Linux 2.4.21 内核的外部中断处理过程,着重讨论了 IA64 Linux 对 SAPIC 的支持,为 IA64 Linux 系统开发人员实现 SAPIC 的中断处理提供技术参考。
    2004年5月27日  
 
提升 Linux 开发者的能力 -- 在基于 POWER 的系统中开始使用企业版 Linux
64 位 POWER 体系结构是公认的高性能、可靠而且有用的企业平台,它为 UNIX 和 Linux 应用程序开发者提供了新的选择。不管是谁,只要有在其他平台上使用 AIX 或者 Linux 的经验,就可以受益于与世界顶尖的 IBM 硬件 POWER 相结合的开放源代码社区强有力的基础。
    2004年5月24日  
 
善用重定向提高工作效率
文件的输入/输出重定向是Linux系统中一个重要的机制。借助于重定向用户往往可以比较轻松地完成某些任务,从而提高工作效率。本文结合作者的使用经验,列举和总结了一些使用输入/输出重定向的实例和技巧。
    2004年5月20日  
 
体验 Wine:Windows 到 Linux 的转换 -- 在 Linux 上运行 Windows 应用程序
Wine 是一个令人神往而且目标远大的开放源代码项目,它尝试去解决在 Linux 上运行 Windows 可执行文件的复杂问题。尽管 Wine 不是一个新项目,但是,人们对 Linux 桌面的期望以及对 Linux 应用程序的需求日益增加,使得它现在仍具有重要意义。本文对 Wine 进行了介绍,并提出了几种获得 Wine 内部操作经验的途径。
    2004年5月17日  
 
为您的 Linux 应用开发加油提速: 在 Linux 上与 DB2 和 WebSphere 一起使用 EJB 持久性
本文所面向的读者是在 iSeries 上使用 Linux 开发企业应用程序的开发人员,他们希望在 DB2/400 中用 EJB 持久性去创建并加载 EJB 数据。您将学会在 iSeries DB2/400 中如何借助用于 EJB 持久性的 JDBC 提供者和数据源去配置用于 iSeries 上 Linux 中的 WebSphere Application Server。您将创建一个 JDBC 提供者,创建一个 Java 2 连接器(Java 2 Connector,J2C)认证数据条目,并在 iSeries DB2/400 中配置一个访问数据库的数据源。
    2004年5月1日  
 
Linux 2.6 对新型 CPU 快速系统调用的支持
文章分析了在 Linux 2.6 中引入的对 Intel CPU 快速系统调用指令 SYSENTER/SYSEXIT 支持的实现。Linux 驱动及内核开发者通过了解快速系统调用指令的机制,可以在自己的代码中通过利用这一机制,提高系统性能,并避开由快速系统调用方式带来的一些局限(如系统调用中嵌套系统调用)。
    2004年5月1日  
 
功能丰富的 Perl: 三本必备的 Perl 书籍
在本期文章中,Ted 对三本 Perl 编程书籍进行了评论,为您总结了这三本书中包含的关键信息以及新版本如何被更新。
    2004年5月1日  
 
在 Linux 中使用共享对象
充分利用共享内存并不总是容易的。在本文中,IBM 的 Sachin Agrawal 与我们共享了他的 C++ 专门技术,展示了面向对象如何去利用一个独特而实用的进程间通信通道的关键优势。
    2004年5月1日  
 
利用 Eclipse Visual Editor 项目构建 GUI
与许多 Eclipse.org 项目类似,Visual Editor 项目的目标是构建一个用于构建工具(在这里是用于构建图形用户接口的工具)的工具。关于 Visual Editor 项目最有趣的事情是它已经发布了一个参考实现。Visual Editor 版本 0.5 是用于构建 AWT/Swing 应用程序的 GUI 构建器,这是一个期待已久的 Eclipse 特性。在很快就要发布的、预定在 2004 年中期提交的 1.0 版中,将增加对于 SWT 的支持。在本文中,您将获得关于 Visual Editor 及其背后技术的概览,以及 Visual Editor 0.5 用于构建 AWT/Swing 应用程序的特性的一个简短示范,以及关于 Visual Editor 1.0 中的 SWT 支持的预览。
    2004年5月1日  
 
可爱的 Python: Python Enterprise Application Kit
PEAK 是一个用于快速开发和重用应用程序组件的 Python 框架。虽然 Python 本身就已经是一门非常高层次的语言,但 PEAK 提供了更高层次的抽象,这些抽象主要来自于对元类(metaclass)及其他高级 Python 技术的巧妙运用。在很多方面,PEAK 对 Python 的贡献相当于 J2EE 对 Java 的贡献。PEAK 中的形式化部分体现在协议的显式规范中,具体说是在可以单独获得的 PyProtocols 包中。
    2004年5月1日  
 
使用 GNU 文本实用程序
这篇入门至中级水平的教程介绍了 GNU 文本实用程序,并展示了如何使用它们来处理日志文件、文档、结构化文本数据库,以及其他文本性数据或内容源。
    2004年4月26日  
 
交叉开发入门
当编译器运行在一个为另一系统产生可执行程序的系统上时,就会出现交叉编译——当目标系统没有编译工具的本地设置时,或者当主机系统更快或具有更多资源时,这是一个重要的概念。在这篇 how-to 文章中,Peter Seebach 讨论了交叉编译环境的初始设置(使用 Sharp Zaurus 手持计算机作为焦点),并且介绍了工具的安装、基本编译、在 Sharp Zaurus 手持计算机上安装程序,以及像创建使用 configure 脚本的程序这样的高级问题。
    2004年4月26日  
 
敏捷思维: 架构设计中的方法学(9)
在定义了架构愿景之后,团队中的所有人员应该对待开发的软件有一定的了解了。但是,面对一个庞大的软件系统,接下来要做些什么呢?分而治之的思想是计算机领域非常重要的思想,因此我们也从这里开始入手。要进行应用软件的设计,分层是非常重要的思想,掌握好分层的思想,设计出的软件是可以令人赏心悦目的。由于这一章的重要性和特殊性,本章的内容分为上下两节,并不采取模式描述语言的方式。
    2004年4月26日  
 
用 Runtime Syp 调整 Eclipse 的启动性能,第 2 部分 -- 成功的骗局
Runtime Spy 是 Eclipse.org 提供的核心工具 (Core Tools) 之一,它是特别设计的一个透视图及一组视图,用于帮助您找到并诊断插件启动性能问题。本文介绍了如何发现可能会导致启动时间过长的常见设计错误,以及如何去纠正它们。其中的一个案例研究说明了 Runtime Spy 如何用于提高 IBM WebSphere Studio Application Developer 的启动性能。上一篇文章,也就是 第 1 部分,对 Runtime Spy 进行了介绍。
    2004年4月26日  
 
Linux 无线网络技术 -- Linux 上的 WLAN、Bluetooth、GPRS、GSM 和 Infrared Data 一览
当今,不考虑 Linux 和无线网络技术的话,就无法谈到计算机和网络。在这篇文章中,Sreekrishnan Venkateswaran 用 Linux 观点阐释了通过 WLAN、Bluetooth、GPRS、GSM 以及 IrDA 实现无线联网。他使用各种不同的无线设备和相应的内核层,以及用户空间工具来示范它们在 Linux 下如何工作。
    2004年4月19日  
 
深入OSS开发
本文将对OSS(Open Sound System)的开发进行一些深入的讨论,具体的内容包括:播放音频的时延问题,并定量的对不同的缓冲区配置进行分析;非阻塞write;应用程序对驱动程序中DMA buffer的直接访问。
    2004年4月15日  
 
用 PHP 使 Web 数据分析进入更高境界
对 Web 数据进行有效和多层次的分析是许多面向 Web 企业能够生存的关键因素,数据分析检验的设计(和决策)通常是系统管理员和内部应用程序设计人员的工作,而他们可能除了能够把原始计数制成表格之外,对统计学没有更多的了解。在本文中,Paul Meagher 向 Web 开发人员传授了将推论统计学应用到 Web 数据流所需的技能和概念。
    2004年4月8日  
 
将应用程序从 OS/2 移植到 Linux 上:第 1 部分,线程、互斥锁、信号量 -- POSIX、OS/2 以及如何在两者之间架起桥梁
Linux 是新千年里最杰出的操作系统,而传统的操作系统,如 OS/2,现在正在逐渐淘汰出局。本系列文章是为那些正经受迁移/移植痛苦的开发人员撰写的,可以帮助他们将 OS/2 系统驱动和应用程序移植到 Linux 上。文中介绍了如何将各种 OS/2 调用一一映射到 Linux 上,涉及的内容包括线程、IPC、内存管理、定时器处理、文件处理等。此外,文中还介绍了一些可以从 OS/2 映射到 Linux 上的预处理器指令和编译器/链接器选项。本系列文章总共三篇,本文是其中的第一篇。
    2004年4月8日  
 
Perl 模块部署自动化
如果跨任何种类的许多不同计算机运行 Perl,您会知道跨这些计算机安装 Perl 扩展模块是多么令人厌烦。如果有 Web 服务器农场,并且需要将每台机器和用于安装的一组扩展模块的最新信息保持一致,那么管理过程会更糟。CPAN 对此可能有所帮助,但 CPAN 存在一些问题,这些问题使它无法成为可以在网络上广泛使用的解决方案。在介绍最终系统之前,本文将提供一些可能的解决方案。主要目标是统一的安装/模块集合、单一下载和在网络上所有计算机中使用一组有保证的统一版本号。
    2004年4月7日  
 
Linux Socket 编程,第二部分
该中级教程是在 Linux Socket 编程第一部分的基础上的展开,主要集中在用户数据报协议 (UDP)方面,向读者展示如何用 C 和 Python 写 UDP sockets 应用程序,对于其他语言也适用。
    2004年4月5日  
 
通过命令行处理图形
没有什么能象命令行工具这样适合于处理大批量的任务,对于图像操作也不例外。Web 开发人员和管理员会喜欢轻松处理大量文件的能力,无论是使用命令行还是脚本。程序员 Michael Still 介绍了 ImageMagick 套件,这是一个用于以多种格式对图像进行缩放大小、旋转、转换和其它操作的 Linux 工具箱,无论图像的数量是一个还是上百个,它都可以一次处理掉。
    2004年4月5日  
 
C 编程最佳实践
尽管 C 语言问世已近 30 年,但它的魅力仍未减退。C 语言继续吸引着众多的人们,他们为了编写新的应用程序,或者移植或维护现有的应用程序而必须学习新技能。
    2004年4月5日  
 
Linux下批量计时中的问题
在作者的前面一篇文章中,讨论了在Linux下与计时相关的一些基本问题,以及解决这些问题的手段和方法。本文将会关注大规模测试下的计时方法问题,以及中间会遇到的一些异常情况及其应对的策略。
    2004年4月5日  
 
软件质量之路(5):面向组件的大规模软件架构
在中小规模的软件中,对象和对象之间的协作关系就能够满足需要。但是当软件规模扩大,复杂度上升的时候,面向对象技术强调的协作却表现出另一个极端的特点-耦合度太高导致的复杂度。这时候就需要有一种新的方法来弥补面向对象技术的弱点。
    2004年4月5日  
 
自我管理数据缓冲区内存
C 程序设计语言定义了两个标准的内存管理函数:malloc() 和 free()。C 程序员经常使用那些函数在运行时分配缓冲区,以便在函数之间传递数据。然而在许多场合下,您无法预先确定缓冲区所需的实际大小,这对于构造复杂的 C 程序来说,可能会导致几个根本性的问题。在本文中,Xiaoming Zhang 倡导一种自我管理的抽象数据缓冲区。他概括地给出了抽象缓冲区的伪 C 代码实现,并详细介绍了采用这种机制的优点。
    2004年4月5日  
 
软件质量之路(3):测试驱动开发
测试不能够证明错误不存在,只能够证明错误存在。尽可能测试一切可以测试的东西。
    2004年4月1日  
 
通过命令行进一步处理图形
没有什么能像命令行工具这样适合于处理大批量的任务,对于图像处理也不例外。Web 开发人员和管理员会喜欢轻松处理大量文件的能力,无论是使用命令行还是脚本。程序员 Michael Still 给出了更多关于 ImageMagick 套件的示例,这一次向您示范了如何将圆角、徽标或者边框和边添加到您的图像中,以及如何与多页文件格式 (包括 Adobe PDF 格式)进行转换。
    2004年4月1日  
 
软件质量之路(4):建立核心框架
框架是一种特殊的软件,他为软件开发带来了高度的重用性,但同时他也需要高技巧的设计。软件组织使用框架来积累知识,推动软件开发是一种有效的方式,但前提是你能够了解如何设计一个框架。
    2004年4月1日  
 
为您的 Linux 应用开发加油提速: 在 iSeries 和 pSeries 上安装 WebSphere Application Server V5.0 for Linux
本文演示了如何在 iSeries 和 pSeries 上安装、配置和验证用于 Linux 的 WebSphere Application Server V5.0.2。其步骤涵盖了管理控制台和示例程序的使用。我们还研究了包含在 WebSphere Application Server 中的一个名为 Plants By WebSphere 的 J2EE 电子商务应用程序。
    2004年4月1日  
 
为您的 Linux 应用开发加油提速: 在 iSeries 上安装 Linux
本文描述了如何在 iSeries 环境中将 Linux 安装并设置为一个客户操作系统。
    2004年4月1日  
 
Linux 2.6 调度系统分析
本文从 Linux 2.4 调度系统的缺陷入手,详细分析了 Linux 2.6 调度系统的原理和实现细节,并对与调度系统相关的负载平衡、NUMA 结构以及实时性能进行了分析和评价。文末,作者从调度系统的发展和实现出发,对 Linux 的发展特点和方向提出了自己的看法。
    2004年4月1日  
 
为您的 Linux 应用开发加油提速 2004: 创建 WebSphere Application Server V5 群集
本文介绍了用于负载均衡和故障切换的群集,并描述了如何使用 IBM WebSphere Application Server Version 5 for Linux 在 IBM iSeries 和 pSeries 服务器上安装设置群集。本文中的步骤和例子基于一个网络,这个网络由两台 64 位 POWER 处理器的 iSeries 或 pSeries 服务器(或者两个逻辑分区)通过网络连接起来而构成,运行的操作系统为 UnitedLinux Version 1.0 for iSeries/pSeries(PowerPC)。不过,在您的网络结构中的任意异构平台(pSeries、iSeries、xSeries 或 zSeries 机器)上同样可以使用 WebSphere Application Server Version 5 for Linux 构建群集。
    2004年4月1日  
 
用 Runtime Spy 调整 Eclipse 的启动性能,第 1 部分
本文介绍了可以自 Eclipse.org 获得的核心工具 (Core Tools) 之一:Runtime Spy。Runtime Spy 是特别设计的一个透视图及一组视图,用于帮助您找到并诊断插件启动性能问题。
    2004年4月1日  
 
远程控制 KDE 应用程序
应用程序的远程控制指的是当其正处于运行状态时,除了能够接受通常的用户动作之外,还可以被命令行中的命令甚至脚本进行操作。DCOP 是 KDE 桌面环境中的进程间通信协议,它允许程序向外界暴露自己的一些接口,也是实现对 KDE 应用程序进行远程控制的基础。
    2004年4月1日  
 
可爱的 Python: Python 中的测试框架
在这一期文章中,David 研究了 Python 的两个用于单元测试的标准模块:unittest 和 doctest。这些模块扩展了用来确认函数内部的先置条件和后置条件的内置 assert 语句的能力。David 讨论了将测试融入到 Python 开发中的最好方法,同时权衡了用于不同类型项目的不同风格的优势。
    2004年4月1日  
 
人类的 POWER
在最近 10 年中,IBM 在半导体领域实现了一个又一个的突破:铜技术,绝缘硅,硅锗合金,应变硅和 low-k 绝缘体。所有这些技术都滋生于 IBM 肥沃的研究土壤。这种对现代芯片制造知根知底的能力并非是空穴来风,而是来自于半导体工业中最先进的 R & D 部门的封闭且洁净的实验室。
    2004年4月1日  
 
为您的 Linux 应用开发加油提速: 在 pSeries 上安装 Linux
在分区的环境中,Linux 在 POWER 系统上可以正常工作,而且可以与其他操作系统很好地共处。Linux 的安装让您可以用开放源代码工具和开放标准的优势来作为先进硬件的补充。这一强大的结合让开发人员和管理员可以更有力地控制他们的环境。本文将引导您使用 SuSE SLES 8 发行版本完成用于 pSeries 的 Linux 的完全安装的全过程。
    2004年4月1日  
 
内核比较: 2.6 内核中网络的改进
从隧道和更好的文件安全性到加密和隐私保护,新的 Linux 内核中引入了对网络很多方面的支持与改进。本文的内容包括,这些改进会如何影响用户,并且它们使 Linux 更为安全,更适用于企业。
    2004年4月1日  
 
PowerPC 体系结构开发者指南
从超级计算机到游戏控制台,从服务器到手机,随处可见 PowerPC 处理器的身影 -- 它们的体系结构全都相同。本篇对 PowerPC 应用级编程模型的介绍概述了指令集、重要的寄存器以及其他细节,这些细节对于开发可靠的、高性能的 PowerPC 应用程序和保持代码在不同处理器的兼容性来说是必须要了解的。
    2004年4月1日  
 
用 Runtime Syp 调整 Eclipse 的启动性能,第 2 部分
Runtime Spy 是 Eclipse.org 提供的核心工具 (Core Tools) 之一,它是特别设计的一个透视图及一组视图,用于帮助您找到并诊断插件启动性能问题。本文介绍了如何发现可能会导致启动时间过长的常见设计错误,以及如何去纠正它们。其中的一个案例研究说明了 Runtime Spy 如何用于提高 IBM WebSphere Studio Application Developer 的启动性能。上一篇文章,也就是第 1 部分,对 Runtime Spy 进行了介绍。
    2004年4月1日  
 
Qt 的内部进程通信机制
Qt 作为一种跨平台的基于 C++ 的 GUI 系统,能够提供给用户构造图形用户界面的强大功能。自从 1996 年 Qt 被 Trolltech 公司发布以来,该系统成为世界上很多成功的图形用户应用所使用的主要系统。更为重要的是,Linux 操作系统的桌面环境系统 KDE 也是基于 Qt 构造的。目前,Qt 已经提供了对包括 MS/Windows、Unix/X11 和嵌入式平台的支持,得到了越来越广泛的应用。
    2004年4月1日  
 
Qt中的多线程编程
Qt 作为一种基于 C++ 的跨平台 GUI 系统,能够提供给用户构造图形用户界面的强大功能。为了满足用户构造复杂图形界面系统的需求,Qt 提供了丰富的多线程编程支持。
    2004年4月1日  
 
为您的 Linux 应用开发加油提速 2004: 在用于 iSeries 和 pSeries 的 Linux 上安装 Globus Toolkit 3.0
Globus Toolkit 是新近出现的网格计算技术的焦点,Globus Toolkit 3.0(GT3)全部用 Java 编写。POWER(iSeries 和 pSeries 服务器)上 Linux 的 GT3 安装模块包仍处于开发过程中,但是还不能使用。在这里,本文介绍了如何在单独的节点上安装 GT3。
    2004年4月1日  
 
用 Eclipse Modeling Framework 实现模型驱动开发,第 1 部分
Eclipse Modeling Framework(EMF)是一个开放源代码的模型驱动应用程序开发框架。它可以基于 XML Schema、UML 或经过注释的 Java 中指定的模型,创建 Java 代码,实现图形化的数据编辑、操纵、读取和序列化。EMF 是 IBM WebSphere Studio 和 Eclipse 项目中很多工具的基础。本文将帮助您逐步了解创建模型、生成代码、使用生成的应用程序和定制编辑器的整个过程。
    2004年4月1日  
 
用 C99 进行开放源代码的开发
C99 是什么?谁需要它?它可用了吗?Poter Seebach 讨论了 ISO C 标准的 1999 年修订版,着重于 Linux 和 BSD 系统上新特性的可用性。
    2004年4月1日  
 
内核比较: 2.6 内核中改进了内存管理
2.6 Linux 内核使用了许多技术来改进对大量内存的使用,使得 Linux 比以往任何时候都更适用于企业。本文列出了一些更重要的改变,包括反向映射(reverse mapping)、使用更大的内存页、页表条目存储在高端内存中,以及更稳定的内存管理器。
    2004年4月1日  
 
人人可用的 Rexx -- 使用自由软件 Rexx 的实现来编写脚本
很容易在“小语言”的世界中迷失方向 ―― 它们中相当多是出于一个公司、个人或者一个项目的特殊需要而编写出来的。Rexx 就是这些语言中的一个,已经在 IBM 的操作系统上使用很长时间了,而且令人满意的最新实现可以用于 Linux 和其他免费软件操作系统。在相对粗糙的 shell 脚本和笨重的拘泥形式的完全系统语言的夹缝之中,Rexx 有其用武之地。Rexx 值得很多 Linux 程序员和系统管理员将其添加到收集的关键工具中。
    2004年3月29日  
 
软件质量之路(2):日构建
日构建是一项非常基础的软件开发实践,遗憾的是,并没有多少组织真正意识到它的好处。通过本章的讨论,你可以知道日构建对软件开发的意义,了解日构建的基本情况以及如何着手进行日构建。
    2004年3月25日  
 
为您的 Linux 应用开发加油提速: 用 WebSphere Studio Site Developer V5 在 90 秒内开发“Hello, World”
本文向您演示了如何在 Linux 环境中用 WebSphere Studio Site Developer 创建并测试一个“Hello,World”应用程序,然后演示了如何添加“便笺页(scrap page)”以测试 Java 代码片断。
    2004年3月22日  
 
利用 openSSH 和 Linux 隧道化数据库流量
对于黑客来说,数据库流量中包含的敏感信息是一个极具吸引力的攻击目标。Linux 和 openSSH 为加密这种流量提供了一种简单而有效的方式。
    2004年3月22日  
 
使用 Eclipse 帮助系统为项目编制文档 -- 构建易于使用且可搜索的帮助文档
具有非常强大的 IDE 的 Eclipse 平台中有其自己的帮助系统,这个系统基于一个引用 HTML 文件的 XML 目录表。鲜为人知的是,您不必去编写 Eclipse 插件就可以使用它。任何项目都可以使用一个简化版的平台来提供专业的、易用的和可搜索的文档。这个文档系统已经成功地应用于许多 IBM 项目,包括像 WebSphere Application Server 那样大的项目。
    2004年3月22日  
 
用 WebSphere 和 DB2 构建数据库应用程序
通过一个简单的商品交易系统的一些部分,本教程将教您如何从 WebSphere Studio 和 Java 应用程序中,对一个 DB2 数据库执行选择、插入和更新操作。之后,通过 WebSphere Studio 的帮助,把这个应用程序转化为一个 Web 服务。本教程还讨论了 DB2 用户定义函数和存储过程。
    2004年3月18日  
 
PowerPC 汇编 — PowerPC 汇编简介
目前汇编语言在编程领域并未广为人知,而 PowerPC 汇编更是异乎寻常的陌生。Hollis Blanchard 从 PowerPC 的角度对汇编语言作了概述并对比了三种体系结构 ia32、ppc 和 ppc64 的示例。
    2004年3月9日  
 
Linux 2.4调度系统分析
本文详尽地分析了Linux 2.4内核中调度系统的工作原理,特别是i386体系结构下SMP系统的调度表现。通过对2.4调度系统实现原理及其细节的分析,文章在文末指出了2.4调度系统在功能上、实时性上以及多处理机系统表现上存在的不足,为后继的2.6系统的分析作铺垫。
    2004年3月9日  
 
使用 Eclipse 平台共享代码
本文概述了 Eclipse 平台如何支持软件项目中的源代码版本控制。首先,我们将简要讨论一下团队代码开发的思想,然后研究 Eclipse 如何使用 CVS 代码资源库。我们还将研究一些源代码管理软件工具,可以通过 Eclipse 插件扩展来支持这些工具。
    2004年3月9日  
 
用 Eclipse 平台进行 C/C++ 开发
我们将概述如何在 C/C++ 开发项目中使用 Eclipse 平台。尽管 Eclipse 主要是一个 Java 开发环境,但其体系结构确保了对其它编程语言的支持。在本文中,您将学习如何使用 C/C++ 开发工具箱(C/C++ Development Toolkit,CDT),它是可用于 Eclipse 的最佳 C/C++ 工具箱。
    2004年3月9日  
 
在 Linux 上构建网络路由器
Zebra 是一个开源的 TCP/IP 路由软件,同 Cisco Internet 网络操作系统(IOS)类似。它灵活而且具有强大的功能,可以处理路由信息协议(RIP)、开放式最短路径优先协议(OSPF)和边界网关协议以及这些协议的所有变体。本文介绍了作者安装 Zebra 并且使之与真正的 Cisco 路由器配合来动态地管理路由。
    2004年3月9日  
 
功能丰富的 Perl: 通过 Perl 使用 IMAP
Ted 向您介绍如何使用 Mail::IMAPClient CPAN 模块访问 IMAP。通过使用 Mail::IMAPClient,他构建了可替代其它 IMAP 和 POP3 邮件检查器的 ifrom 实用程序。ifrom 有其独一无二的优点,可利用这些优点列出、打印和移动 IMAP 服务器上的消息,并备份 IMAP 邮件。
    2004年3月9日  
 
开发人员的笔记
Sppence Murray 是 Linux 开发高手之一,同时长期以来他一直是 UNIX 的坚定支持者。本文介绍的是 Murray 和他在 Codemonks Consulting 的同事在日常的 Linux 开发以及应用服务工作中用到的基本技术: shell 脚本,相信 Linux 的开发人员都会受益于这项有用而且通用的技术。
    2004年3月9日  
 
Qt 和 PyQt
Qt 工具箱是一个使用广泛的跨平台 GUI 工具箱,可用于 Windows、Linux、Mac OSX 和许多手持平台。QT 具有良好结构化(但灵活)的面向对象的结构、清晰的文档以及直观的 API。本文中,David Mertz 和 Boudewijn Rempt 探讨了 Qt 库,集中讨论了允许 Python 程序员访问 Qt 功能的 PyQt 绑定。
    2004年3月9日  
 
Linux on Mac:POWER 程序员初级读本 -- 您所忠爱的操作系统不是只能用于 x86
尽管大部分 Linux 用户已将 Linux 作为他们的 x86 兼容机的操作系统,但 Linux 在 PowerPC 机器上也运行得相当好。David 简单介绍了 PowerPC 和 Apple 公司生产的各种令人喜爱的 PPC 机器上的 Linux,在这些机器上使用 Linux 对众多用户来说用处极大。
    2004年3月8日  
 
IA-64 Linux存储管理
采用显式并行指令计算(EPIC)结构的安腾处理器是Intel公司新一代64位处理器,HP、SGI、Intel等大公司都纷纷推出了高性能的安腾服务器系统。Linux是目前支持IA-64服务器平台的主流操作系统之一。本文重点描述了IA-64 Linux存储管理,包括IA-64 Linux灵活的地址空间划分、页表、TLB等机制。
    2004年3月4日  
 
为您的 Linux 应用开发加油提速 2004: 在 Linux 上开发 Web 服务
本文使用一个假想的银行应用程序作为例子,指导您完成在 Linux 上生成和测试一个 Web 服务的过程。我们将使用来自 IBM 的 WebSphere Studio Application Developer 5.0 中的 Web 服务工具和可扩展标记语言(Extensible Markup Language,XML)编辑器来为服务器开发 Web 服务。然后我们将创建一个客户应用程序来访问该服务。最后我们将在 WebSphere Studio 的测试环境中测试该服务和客户应用程序。在此过程中,我们将为新手重点介绍一些 Linux 特性。
    2004年3月4日  
 
为您的 Linux 应用开发加油提速:在 Power 上使用 Linux 开放源代码工具 -- 如何找到、使用和参与开放源代码项目
本文主要介绍用于 POWER 微处理器体系结构上的 Linux 的开放源代码工具,不过其中讨论的问题对开放源代码软件在 Linux 中的使用都是共同的。本文中提及的所有项目都对(但不限于)POWER 上的 Linux 可用。
    2004年3月4日  
 
软件质量之路(1): 软件质量框架
软件质量的重要性是不言而喻的,但是当所有人都意识到它的重要性的时候,却很少有人能够清晰的描述出如何才能够提高软件质量。软件质量框架的目的就在于提出一个评价的原型,帮助我们分析一种方法和技术是否能够提高软件质量。
    2004年3月1日  
 
pthreads 的基本用法
线程问题是令许多程序员头痛的问题。UNIX 的进程模型简单易懂,但有时效率低下。线程技术通常能使性能得到实质性的改进,付出的代价就是代码有点混乱。本文揭开了 POSIX 线程接口的神秘面纱,并提供了线程化代码的实际例子作为参考。
    2004年3月1日  
 
软件质量之路(3): 测试驱动开发
测试不能够证明错误不存在,只能够证明错误存在。尽可能测试一切可以测试的东西。
    2004年3月1日  
 
打造Linux下的CD播放器
本文详细介绍了音频CD的基本知识,以及如何在Linux下编写实用的CD播放软件,内容涵盖音轨处理、播放控制和音量调节等诸多方面。
    2004年3月1日  
 
安全编程: 防止缓冲区溢出
本文讨论 Linux/UNIX 系统中最常见的缺陷:缓冲区溢出。本文首先解释什么是缓冲区溢出,以及它们为何如此常见和如此危险。然后讨论广泛用于解决缓冲区溢出的新 Linux 和 UNIX 方法 ―― 以及为什么这些方法还不足够。随后将展示 C/C++ 程序中防止缓冲区溢出的各种方法,同时包括静态调整大小的方法(比如标准的 C 库和 OpenBSD/strlcpy 解决方案)和动态调整大小的解决方案,以及一些将为您提供帮助的工具。最后,本文以一些关于缓冲区溢出缺陷的未来发展形势的预测来结束全文的讨论。
    2004年3月1日  
 
内核比较: 从 2.4 到 2.6 内核开发中的改进
期待已久的 2.6 内核终于到来了。IBM Linux Technology Center 的 Paul Larson 暗中关注那些让 2.6 成为有史以来最好内核的工具、测试和技术 —— 从修正控制和回归测试到缺陷追踪和列表保持。
    2004年3月1日  
 
内核比较:2.4 和 2.6 上的 Web 服务
在支持企业应用程序方面,Linux 2.6 内核做了很多改进。本文给出了 IBM Linux Technology Center 的 Web 服务测试工作的结果,从各个不同的角度对 Linux 2.4 和 2.6 内核进行了比较。其中的亮点是 2.6 内核的关键增强功能、测试方法学和测试本身的结果。最终结果:2.6 内核提供 Web 页服务要比 2.4 快得多,并且可靠性一点也不差。
    2004年3月1日  
 
用Diff和Patch工具维护源码
在Unix系统下,维护源码版本可以使用很多方法,其中最常用的当然是大名鼎鼎的CVS,但实际上,简单的版本维护工作并没有必要使用复杂的CVS等专门的版本维护工具,Unix标配中的diff和patch工具就完全可以完成代码的简单备份和升级工作。
    2004年3月1日  
 
用 DCOP 连接 KDE 应用程序
在 KDE 桌面背后,暗藏着一系列强大的脚本技术,可以让高级用户自动地完成很多任务。在本文中,Martyn Honeyford 向我们介绍了这些技术,并解释了如何才能让它们发挥最大作用。
    2004年3月1日  
 
一个跨平台的 C++ 内存泄漏检测器
内存泄漏对于C/C++程序员来说也可以算作是个永恒的话题了吧。在Windows下,MFC的一个很有用的功能就是能在程序运行结束时报告是否发生了内存泄漏。在Linux下,相对来说就没有那么容易使用的解决方案了:像mpatrol之类的现有工具,易用性、附加开销和性能都不是很理想。本文实现一个极易于使用、跨平台的C++内存泄漏检测器。并对相关的技术问题作一下探讨。
    2004年3月1日  
 
功能丰富的 Perl: 在 MP3 和 Perl 中寻找乐趣,第 2 部分
Ted 继续介绍如何通过他的 autotag.pl 应用程序,同时借助 Perl、FreeDB 和各种 CPAN 模块来处理和猜测 MP3 标签。
    2004年3月1日  
 
用 DSF 模拟设备
Device Simulator Framework(DSF)为您的所有设备提供了一个易用的输入输出控制 (ioctl) 接口,无论这些设备是否确实存在。对那些经验丰富的内核和设备驱动程序软件开发人员而言,DSF 让调试和测试设备代码变得更容易,而这些工作如果没有 DSF 将难以进行模拟和再现。
    2004年3月1日  
 
PowerPC上ELF可执行文件的符号解析(一)
作者首先简单介绍了符号静态解析和动态解析的不同之处,接着分析了和动态解析相关的概念,然后讲述PowerPC Linux是如何作动态符号解析的,并辅以实例详细说明,最后总结了i386和PowerPC实现动态解析的异同之处;本篇文章侧重分析32位PowerPC Linux上的符号动态解析。
    2004年2月26日  
 
PowerPC上ELF可执行文件的符号解析(二)
作者首先介绍了在64位环境下PowerPC区别于32位的两个概念,接着讲述了在64位环境下PowerPC Linux是如何作变量符号动态解析,然后重点讲解函数符号动态符号解析,并辅以实例详细说明,最后总结了32位和64位实现函数符号动态解析的异同之处。
    2004年2月26日  
 
战胜 Linux 中的 Bug -- zSeries 上的 Linux 应用程序调试技巧
调试 zSeries 上的 Linux 应用程序类似于调试其他体系结构上的 Linux 应用程序。对于有经验的 Linux 开发人员,最大的挑战是理解新的系统体系结构。对于刚接触 Linux 的大型机开发人员,掌握新的调试工具似乎是一项令人畏惧的任务。不要害怕。本文将提供一些有用的提示来帮助您入门。
    2004年2月23日  
 
gdb(GNU 调试器):基础 -- 关于调试 Linux 代码的有用技巧
gdb 可用于源代码级调试,以及跟踪没有源代码的程序或检查某个终止的程序留下的核心文件。
    2004年2月23日  
 
Eclipse 和 HSQLDB:将关系数据库服务器嵌入到 Eclipse 中,第 2 部分 -- 如何编写将 HSQLDB 数据库服务器集成到 Eclipse Workbench 中的插件
本系列的第 1 部分介绍了用于嵌入式应用程序的 HSQLDB 引擎,它也可以作为以“大型”数据库为对象的项目的开发平台。我们创建了一个 Eclipse 插件,并在 Workbench 菜单中启动了已有的工具。在此第 2 部分,我们将考虑如何利用 Eclipse 的特性来克服在第 1 部分中开发的插件的一些局限性,例如允许多个同时活动的 HSQLDB 服务器实例,每个实例分别去监听不同 TCP 端口上的连接。
    2004年2月16日  
 
编写 Linux 实用程序的艺术 -- 开发有用的小命令行工具
Linux 因附带大量的工具和集成这些工具的优秀方法而著名。Peter Seebach 将讨论新工具是如何开发的,以及如何把一个一次性的程序转变为您将在未来几年中使用的实用程序。
    2004年2月16日  
 
安全编程: 警惕输入
本文论述了数据进入您的程序的各种途径,重点是如何适当地对它们进行处理;您甚至可能还没有了解它们全部!本文首先论述了如何设计程序来限制数据可以进入您的程序的途径,以及您的设计会如何影响哪些可以成为输入。然后论述了各种不同的输入通道以及如何使用这些通道,包括环境变量、文件、文件描述符、命令行、图形用户界面(GUI)、网络数据以及其他的输入。
    2004年2月10日  
 
可爱的 Python:点评 Python IDE -- Python 开发变得更容易
David 着眼于四个运行于类 Unix 操作系统之上的开源 Python 代码开发环境。他对两个通用的和两个 Python 专用的编辑器/环境进行了评价,并对比了其各自的优点。
    2004年2月9日  
 
异步消息的传递-回调机制
软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是三者当中最简单的,而回调又常常是异步调用的基础,因此,下面我们着重讨论回调机制在不同软件架构中的实现。
    2004年2月6日  
 
Linux音频编程指南
虽然目前Linux的优势主要体现在网络服务方面,但事实上同样也有着非常丰富的媒体功能,本文就是以多媒体应用中最基本的声音为对象,介绍如何在Linux平台下开发实际的音频应用程序,同时还给出了一些常用的音频编程框架。
    2004年2月1日  
 
Linux下的实时流媒体编程
流媒体指的是在网络中使用流技术传输的连续时基媒体,其特点是在播放前不需要下载整个文件,而是采用边下载边播放的方式,它是视频会议、IP电话等应用场合的技术基础。RTP是进行实时流媒体传输的标准协议和关键技术,本文介绍如何在Linux下利用JRTPLIB进行实时流媒体编程。
    2004年2月1日  
 
测试 Linux 的可靠性
本文记录了 Linux 内核和其他核心 OS 组件的测试结果与分析,从库和设备驱动程序到文件系统和网络,测试范围无所不含,所有的测试都是在相当不利的条件下进行,并且经历了很长的时间。IBM Linux Technology Center 刚刚结束了这次长达三个多月的全面测试,并将他们的 LTP (Linux Test Project) 测试结果与 developerWorks 的读者共享。
    2004年2月1日  
 
用 curl 和 scsh 编写 web 脚本
在本文中我们将要介绍如何使用 curl 这个简单灵巧的 web 工具加上 scsh 这个基于 scheme 语言的威力强大的 UNIX shell 来编写各种古怪的 web 脚本来帮助我们泡网。
    2004年1月20日  
 
应用 Python 解决一些实际问题
Python 是一种简洁优美的脚本语言.它的诸多优点使它在完成某些任务时轻松自如。本文通过几个具体的例子阐明了这一点
    2004年1月15日  
 
Eclipse 平台入门
本文为您提供关于 Eclipse 平台的概述,包括其起源和体系结构。本文首先简要讨论 Eclipse 的开放源代码性质及其对多种编程语言的支持,然后通过一个简单的程序例子展示 Java 开发环境。本文还将考查以插件扩展形式可用的一些软件开发工具,并展示一个用于 UML 建模的插件扩展。
    2004年1月10日  
 
为 SWT 应用程序配备内容助理
对于 Eclipse Java 编辑器的用户,内容助理是一个众所周知的特性。按一下 Ctrl + 空格键,带有一组完成建议的窗口就会弹出来。选择某个特定的建议将会打开另一个窗口,其中显示了插入选定建议之后的预览效果。可以使用回车键来接受某个建议,或双击该建议以将它插入当前文档。本文将展示如何容易地向基于 SWT 的应用程序(不管是独立应用程序还是 Eclipse 工作台的插件)添加这个特性。
    2004年1月10日  
 
使用 IBM Directory Server 进行 Linux 用户验证
本文介绍如何使用 IBM Directory Server 进行 Linux 用户验证。作者循序渐进地介绍了如何对 Directory Server 和 Linux 进行配置,以实现一个使用 Directory Server 对 Linux 用户进行验证的基本配置。
    2004年1月1日  
 
Windows 到 Linux 之旅: 第 8 部分. 备份与恢复
IBM 电子商务架构师 Chris Walden 将通过他在 developerWorks 上发表的九篇系列文章来指导您如何在 Linux 环境中运用您的 Windows 操作技巧。本部分将考察 Linux 系统上的内容,同时在考虑到恢复和安全的情况下,计划并实现常规备份。
    2004年1月1日  
 
Windows 到 Linux 之旅: 第 2 部分. 控制台速成班
IBM 电子商务架构师 Chris Walden 将通过他在 developerWorks 上发表的九篇系列文章来指导您如何在 Linux 环境中运用您的 Windows 操作技巧。本部分将介绍各种不同的 shell 和一些最基本的 Linux 命令。
    2004年1月1日  
 
Windows 到 Linux 之旅: 第 3 部分. Webmin 简介
IBM 电子商务架构师 Chris Walden 将通过他在 developerWorks 上发表的九篇系列文章来指导您如何在 Linux 环境中运用您的 Windows 操作技巧。本部分介绍了 Webmin 的安装和使用,它是一个基于浏览器的管理工具,可以应用于 Linux 和其他一些平台,提供了可以完成很多管理和操作任务的图形化界面。
    2004年1月1日  
 
Windows 到 Linux 之旅: 第 9 部分. 安装软件
IBM 电子商务架构师 Chris Walden 将通过他在 developerWorks 上发表的九篇系列文章来指导您如何在 Linux 环境中运用您的 Windows 操作技巧。在这最后一部分中,我们将下载和编译一个软件包,讨论自动化包管理的优点和缺点,同时了解 RPM 系统。
    2004年1月1日  
 
Windows 到 Linux 之旅: 第 6 部分. 使用分区和文件系统
IBM 电子商务架构师 Chris Walden 将通过他在 developerWorks 上发表的九篇系列文章来指导您如何在 Linux 环境中运用您的 Windows 操作技巧。在本部分,我们研究了 Linux 的分层目录结构,以及装载和设备。
    2004年1月1日  
 
Windows 到 Linux 之旅: 第 4 部分. 用户管理
IBM 电子商务架构师 Chris Walden 将通过他在 developerWorks 上发表的九篇系列文章来指导您如何在 Linux 环境中运用您的 Windows 操作技巧。在本部分,我们使用 Webmin 界面和命令行添加、删除用户和组,并介绍了密码和组文件的映像。
    2004年1月1日  
 
Scheme语言概要(下)
Scheme语言是LISP语言的一个方言(或说成变种),它诞生于1975年的MIT,对于这个有近三十年历史的编程语言来说,它并没有象C++,java,C#那样受到商业领域的青睐,在国内更是显为人知。但它在国外的计算机教育领域内却是有着广泛应用的,有很多人学的第一门计算机语言就是Scheme语言。
    2003年12月31日  
 
Scheme语言概要(上)
Scheme语言是LISP语言的一个方言(或说成变种),它诞生于1975年的MIT,对于这个有近三十年历史的编程语言来说,它并没有象C++,java,C#那样受到商业领域的青睐,在国内更是显为人知。但它在国外的计算机教育领域内却是有着广泛应用的,有很多人学的第一门计算机语言就是Scheme语言。
    2003年12月31日  
 
使用 Knoppix 进行系统恢复
本文介绍了如何利用一张 Knoppix CD 访问无法引导的 Linux 系统,取得配置文件的读写权,创建和管理分区和文件系统,将文件拷贝到不同的存贮媒介或者网络上。您可以用 Knoppix 来进行硬件和系统配置的检测和分区、文件系统的创建和管理。您可以使用 Knoppix 友好的图形界面或者命令工具来完成以上任务。
    2003年12月26日  
 
功能丰富的 Perl:: 趣谈 MP3 和 Perl,第 1 部分
每一位自我陶醉的计算机和音乐爱好者都需要能够操纵 MP3 —— 娱乐性数字音乐的事实标准。在本文中,Ted 介绍了几种使用autotag.pl 应用程序管理和操纵(搜索、标记、重命名和注释,等等)MP3 的方法。Ted 向读者详细介绍了此应用程序,描述了 CPAN模块如何启用该应用程序。
    2003年12月18日  
 
Intel平台下linux中ELF文件动态链接的加载、解析及实例分析(二): 函数解析与卸载
上篇文章Intel平台下Linux中ELF文件动态链接的加载、解析及实例分析(一): 加载阐述了ELF文件被加载的时候所经历的一般过程。那我们现在就来解决在上一篇文章的最后所提到的那几个问题,以及那些在dl_open_worker中没有讲解的代码。
    2003年12月18日  
 
Linux Socket 编程,第一部分
本教程展示如何开始使用套接字编程。重点集中于 C 和 Python,本教程指导您完成一个回显(echo)服务器和客户机(它们通过 TCP/IP 来连接)的创建过程。它描述了基础的网络、层和协议概念,同时提供了丰富的示例源代码。
    2003年12月15日  
 
使用开源软件 Mantis 实施缺陷跟踪的成功实践
缺陷管理贯穿于整个软件开发生命周期中, 是不可缺少的环节,但在国内一些中小型开发商中没有得到足够得重视。本文结合实际应用,系统地介绍了缺陷跟踪开源软件 Buggit 和 Mantis, 以期抛砖引玉,引起重视。
    2003年12月15日  
 
使用 Twisted 框架进行网络编程,第 4 部分
在本系列文章的最后一期中,David 把目光放在了 Twisted 包中专用的协议和服务器上,其重点是安全连接。
    2003年12月14日  
 
面向对象软件开发和过程(六)-- 针对契约设计
针对契约设计是一种严谨的软件设计思路,它有助于提高软件的质量。软件设计中经常出现的bug往往是由于需要的前提条件或数据不能够得到满足而导致的。针对契约设计通过一种约束性的方法,解决了这个问题。
    2003年12月11日  
 
面向对象软件开发和过程(四) -- 重用
重用是面向对象开发中的一个非常重要的特性,由于重用的特点,它能够降低开发投入,并提高软件的质量。那么,在面向对象开发中,究竟该如何掌握重用呢?又该如何将重用应用到开发过程中呢?
    2003年12月11日  
 
面向对象软件开发和过程(五)-- 优化代码的组织
相信任何一位程序员都曾经见过面条状的代码,这种代码给人留下的只是噩梦。面向对象能够支持较好的代码组织方式,基本的处理思路是先将问题于分而治之,然后再把分开的代码整合起来。分而治之和整合组合起来,成为组织代码的关键思路。
    2003年12月11日  
 
面向对象软件开发和过程(三)-- 案例实战(下)
在这一章中,我们使用第一章中的分析框架对第二章中的案例进行分析。在分析之后,我们会看到,应该如何从代码的角度来回望过程。
    2003年12月11日  
 
面向对象软件开发和过程(二): 案例实战(上)
在本文中,我们通过一个实例,来分析代码对过程中种种因素的影响。由于本文讨论的是面向对象代码,因此我们选择了面向对象的一个特性来进行分析。我们从案例的基本情况开始介绍,分析异常管理的基本思路,以及我们为什么需要引入对异常的管理。然后我们根据前文定义的分析框架来分析引入异常管理需要哪些方面的考虑,以及如何实施。
    2003年12月11日  
 
面向对象软件开发和过程(一): 代码是核心
在一个有效的组织中,必定拥有杰出的一线人才。软件设计也是一样的,一线人才的素质决定了软件的质量。从敏捷的观点来看,代码是检验软件过程是否有效的最终标准。目前为止,以及在短时间的未来,我们都不太可能完全脱离代码进行软件设计。所以,软件过程中的任何一个活动都是为了能够产出优秀的代码。所以,代码才是核心。
    2003年12月11日  
 
面向对象软件开发和过程(七)-- 业务建模
业务建模是OOAD的重要组成部分,简单的说,业务建模就对业务领域问题进行结构化的描述。这个描述将会直接指导最终生成的软件,业务模型是否具有扩展性,业务模型是否能够正确的反映需求,都将影响最终软件的质量。
    2003年12月11日  
 
驾驭 Eclipse 功能部件
如果您想开发插件共享给其他人,那么学习如何有效地使用功能部件是最基本的。本文就如何组织功能部件和优化使用插件开发环境来开发功能部件和插件提出了一些建议,同时介绍了定制 Eclipse 行为的高级技术。即便您只是想学习如何设置 Eclipse,以使您可以自定义任何工作空间的初始化属性值,或者是学习如何使用链接文件来管理您添加到 Eclipse 的组件,本文对您来说也将有所帮助。
    2003年12月10日  
 
功能丰富的 Perl: 在 Perl 中使用倒排表
对于Perl 程序员,尤其是那些要和数据序列和 Unicode 打交道的程序员来说,倒排表是不可或缺的工具。在本文中,Ted 以他自己完成并提交到CPAN 网络上的一个 Perl 实现为例,为我们讲解了倒排表,并介绍了如何用倒排表来压缩比特串及普通的数据。
    2003年12月9日  
 
更佳编程之路: 第 12 章. 使用 perledit: 段编辑文件
在本系列文章中,Ted 以自顶向下的方式地开发了 cfperl 项目 — 它只是一个用 Perl 编写的 cfengine 解释器。本文的内容是基于 Perl 的文件编辑。他研究了应该怎样去做以及这样做的原因,并介绍了用到的四条新命令。
    2003年12月9日  
 
Eclipse 和 HSQLDB: 将关系数据库服务器嵌入到 Eclipse 中,第 1 部分 -- 如何编写将 HSQLDB 数据库服务器集成到 Eclipse Workbench 中的插件
本文介绍如何开发将 HSQLDB 纯 Java 关系数据库服务器集成到 Eclipse Workbench 中的插件。尽管不如 DB2 功能强大,也不如 MySQL 流行,但 HSQLDB(超音速 SQL 数据库)可以满足很大范围内 Java 应用程序的需要,因为它具有可扩展性,而且对内存/处理器的要求不高。
    2003年12月4日  
 
调试 configure
通常,在软件包的 README 文件中只能找到非常简单的“编译说明:运行 configure,然后运行 make”。但是,这样行不通时怎么办?在本文中,Peter Seebash 讲述了当自动的配置脚本失效时应该如何去做——以及作为开发者您应如何尽量避免这种错误。毕竟,如果您的程序无法编译,其结果将和您的程序编译后不能运行一样,您的用户会减少。
    2003年12月1日  
 
用 OProfile 彻底了解性能
由于在硬件和软件之间有一些意料之外的交互,分析 Linux 操作系统和应用程序的代码可能是很困难的,但评测( profiling )办法可以识别出系统的性能问题。本文介绍的是 Oprofile,这是一种用于 Linux 的评测工具,将包含在即将发布的稳定内核中。
    2003年12月1日  
 
嵌入式系统 Boot Loader 技术内幕
本文详细地介绍了基于嵌入式系统中的 OS 启动加载程序 ―― Boot Loader 的概念、软件设计的主要任务以及结构框架等内容。
    2003年12月1日  
 
编写 GnomeVFS 模块
本文描述了如何使用 GnomeVFS(一个用于访问不同文件系统的 C 库)扩展 GNOME 以及开发自己的虚拟文件系统扩展。本文围绕一个假想的、可以用来访问内存中目录树的示例文件系统展开。
    2003年12月1日  
 
在 Windows 机器为 DB2 UDB for Linux 建立 VMware 环境
本文向您展示了如何通过使用 VMware 在 Windows 机器上建立 DB2 UDB for Linux 虚拟环境,并解释了使用虚拟环境的诸多好处。
    2003年12月1日  
 
Linux串口上网的简单实现
本文主要说明某些简易 Linux 环境或者嵌入式 Linux 中实现串口上网的简单实现,这在工业控制中有着广泛的应用。希望对实现无网卡设备上网的方法有抛砖引玉的作用。
    2003年12月1日  
 
Scheme 程序语言介绍之一
Scheme 是差不多三十年前诞生在 MIT 人工智能实验室的一门程序语言。它是 Lisp 语言的一个发展。今天的 Scheme 语言在程序语言的理论研究和实际的软件工程应用两个方面都发挥着持久的和越来越重要的影响力。本文作者在 IBM developerWorks 中国网站 Linux 技术专区上的另一个系列,专门介绍 Scheme 语言在 UNIX 系统上的应用。本文介绍 Scheme 的语言特性,不涉及到具体的应用。在本文的最后,我们开发了一个在 Scheme 环境里面模拟中华学习机上的 BASIC 环境的简单的程序解释器。
    2003年12月1日  
 
服务器诊所: 数据处理的利器 R
R 是一个用于统计计算的成熟的开源软件。它的使用很简单,有时甚至只用它的部分功能也能满足您的需要。
    2003年12月1日  
 
可爱的 Python: Numerical Python
Numerical Python (通常称为 NumPy) 是一个广为应用的 Python 扩展库,用于快速处理任意维数的固定类型数组。由于底层代码是充分优化的 C 语言代码,因而对数组的主要操作在 NumPy 调用中执行时,速度不再受到 Python 解释器的限制。因为 NumPy 已经取得了这样的成功,所以 NumPy 的开发者将用一个叫做 Numarray 的新模块来取代 NumPy,新模块基本上 (但并不是完全) 与 NumPy 兼容。在本文中,David 介绍了 NumPy 的一般功能,以及 Numarray 将要带来的一些特殊改进。
    2003年12月1日  
 
用LSID构建生命科学协作网络 -- 通用协议提供了基础
如果能被广泛采用,"生命科学标识"(LSID, Life Sciences Identifier)协议将使得多个不同组织的科学家和研究员可以以一种从未被考虑过的方式进行数据的共享和协作。你可以用一组J2EE组件来构建实现LSID协议的服务,这些J2EE组件把协议对自身的操作抽象出去,只留下编写服务逻辑的必需内容。
    2003年11月27日  
 
从这里开始学习 Linux
本文将向您推荐一些资料,这些资料有助于您开始使用 Linux。Linux 不是 UNIX,尽管它与 UNIX 非常相似。IBM 在 Linux 和 UNIX 领域(以及其它许多领域)都有很多产品。
    2003年11月26日  
 
利用异常表处理 Linux 内核态缺页异常
本文通过分析 Linux 源码中的缺页异常处理部分,介绍了 GCC 提供的嵌入式汇编的扩展功能,向读者揭示了运行在核心态的进程如何通过内核设置好的异常表进行缺页异常处理的过程。
    2003年11月17日  
 
利用 SashXB 提升 Weblications -- 操作 GTK 小窗口部件、使用扩展,等等
本文是为熟悉 SashXB 的开发人员所写的。涵盖了几个高级的主题,如回调、GTK 小窗口部件操作和几种常用 SashXB 扩展的使用,使用了来自基于 LDAP 的 Intranet 目录导航和为 SashXB 编写的搜索工具的代码示例。
    2003年11月13日  
 
用 scheme 语言进行 UNIX 系统编程
在这篇文章中,我们首先来看一看用 scheme 语言进行系统程序设计的一些基本的特征。在后续的文 章中,我们将要看到更多的、更有用的 scheme 语言的系统程序设计的例子。
    2003年11月13日  
 
为 Windows 用户准备的简明 Linux 词汇表
本词汇表简明地解释了 Linux 产品常用的许多术语、首字母缩写词和缩写的意思和意义。
    2003年11月10日  
 
任何人都可以重构
Eclipse 提供了一组强大的自动重构(refactoring)功能,这些功能穿插在其他功能当中,使您能够重命名 Java元素,移动类和包,从具体的类中创建接口,将嵌套的类变成顶级类,以及从旧方法的代码片断中析取出新的方法。您熟悉了 Eclipse 的重构工具之后,就掌握了一种提高生产率的好方法。本文综览Eclipse 的重构特性,并通过例子阐明了使用这些特性的方法与原因。
    2003年11月10日  
 
为您的 Linux 应用程序加油提速 2003:安装 WebSphere Application Server V5
本文演示了在 Linux 上如何安装、配置和测试 WebSphere Application Server 5.0。在这些步骤中,您将使用 Linux 命令来验证是否安装了必需的软件,检查是否有足够的可用磁盘空间,并对 CD 中的文件进行解压缩。然后您将安装 WebSphere Application Server,并运行它及其管理控制台(Administration Console)。最后您将除去在对分发版文件进行解压缩时所创建的临时文件。
    2003年11月6日  
 
加快 Linux 的引导
本文向您描述了如何在不影响可用性的前提下加快 Linux 操作系统的引导速度。当然,这种方法要求您对系统服务及服务之间的依赖关系有所理解,如果它们可以并行启动,就让它们并行启动而不是串行启动。
    2003年11月1日  
 
用QT创建新风格Howto
本文介绍了如何使用qt提供的接口来设计自己的GUI风格(look and feel),并通过一个具体的例子(使QSpinBox垂直显示)来详细说明过程。运行环境:redhat 9.0,qt-x11-free-3.2.*
    2003年11月1日  
 
走向 Linux 2.6
即将发布的新的稳定的内核支持更多类型的处理器,并且可靠性和可扩展性得到了提高,因而将推动 Linux 得到更广泛的应用。在这里我们将重点介绍一些不同程度的变化,并给出部分代码样例。
    2003年11月1日  
 
Python 中的元类编程,第 2 部分
Michele 和 David 在 developerWorks 上发表的第一篇关于元类编程的文章收到了很多读者反馈, 其中,有一些是来自于那些希望掌握 Python 元类的精妙之处但仍感困惑的读者。本文将重温元类的使用和它们与面向对象编程概念的关系,对比类的实例化与继承,区分类方法和元方法,以及解释并解决元类冲突。
    2003年11月1日  
 
Windows 到 Linux 之旅: 第 1 部分. Linux 思想
IBM 电子商务架构师 Chris Walden 将通过他在 developerWorks 上发表的九篇系列文章来指导您如何在 Linux 环境中运用您的 Windows 操作技巧。我们首先来认识 Linux 和 Windows 之间的不同之处与相似之处,并学会不要总是通过重新引导系统来解决问题。
    2003年11月1日  
 
MetroSphere 的构成,第 16 部分:使用 CVS 进行安全的版本管理
本教程中,系统管理员 Brian Bilbrey 和 Tom Syroid 概述了从 CVS 向安全应用的转换(作为 Studio B 的 MetroSphere 项目的一部分,分别从 server 和 client 端进行)的必备条件。
    2003年10月30日  
 
通过COM口管理LINUX服务器
本文简要地介绍了如何通过常见的COM口进行LINUX服务器的控制台的扩展,具有实用性和简易性,不受服务器网络等条件的限制,可以方便地管理实际生产环境中的LINUX服务器。
    2003年10月30日  
 
Linux下缓冲区溢出攻击的原理及对策
本文首先向读者讲解了Linux下进程地址空间的布局以及进程堆栈帧的结构,然后在此基础上介绍了Linux下缓冲区溢出攻击的原理及对策。
    2003年10月27日  
 
MetroSphere 的构成,第 9 部分:安装和保护 Red Hat Linux
本文描述了安装和保护 Red Hat Linux 8.0 服务器的各方面,这是为安装 WebSphere Portal Enable 做准备。
    2003年10月27日  
 
Perl 编程系列
 
    2003年10月23日  
 
专业的LaTeX:在Linux下编写高质量的文档
Linux下的OpenOffice、KWord等字处理软件虽然在功能上与Microsoft Word类似,但目前在易用性和可用性方面仍然存在许多不足,直接使用它们来生成高质量的文档显然还不太现实。本文介绍如何用LaTeX这一专业级的排版系统,在Linux下编写和生成高质量的科技论文。
    2003年10月23日  
 
扩展 Eclipse 的 Java 开发工具 -- 什么是可能的,从哪里开始以及如何继续
Eclipse 的 Java 开发环境的重构(refactor)能力是它提供的最有用的特性之一。本文将向您介绍创建您自己的重构(作为 Eclipse 的自然扩展)步骤。
    2003年10月23日  
 
Linux 中的计时
本文描述了Linux系统中一些与计时相关的问题和解决方法。因为在学习和研究的过程中我们经常需要统计程序或程序段的耗时,评估它们的性能好坏。因而这些问题对于我们来说,经常会遇到。掌握多种计时方法对于开发人员或科研工作者来说都是必须掌握的一项技能。本文解决了在Linux计时当中经常会遇到的一些技术问题,相信会对他人的工作有所帮助。
    2003年10月20日  
 
利用 tclRFB 创建 VNC 系统 -- 探讨远程控制软件可编程性一面
尽管 VNC(Virtual Network Computing,虚拟网络计算) 技术已广泛用作程序员和管理员的“生产力工具”,但该技术的功能远远超过这些。tclRFB 为分布式体系结构提供了可能。
    2003年10月20日  
 
Linux Netfilter实现机制和扩展技术
本文从Linux网络协议栈中报文的流动过程分析开始,对Linux 2.4.x内核中最流行的防火墙构建平台Netfilter进行了深入分析,着重介绍了如何在Netfilter-iptables机制中进行应用扩展,并在文末给出了一个利用扩展Netfilter-iptables实现VPN的方案。
    2003年10月16日  
 
使用Hibernate来实现持久对象
对象、关系的映射(ORM)是一种耗时的工作,在Java环境下,有几种框架来表示持久数据,如实体Bean、OJB、JDO、Hibernate等。Hibernate是一种新的ORM映射工具,它不仅提供了从Java类到数据表的映射,也提供了数据查询和恢复等机制。本文介绍怎么在Web应用开发中配置Hibernate的环境,并且使用Hibernate来开发一个具体的实例。
    2003年10月16日  
 
普及计算:电子商务无时无处不在 -- 用这个简单的体系结构蓝图构建基于 PDA 的业务应用程序
本文介绍了用于构建无线电子商务解决方案的体系结构蓝图,该解决方案将无缝地集成到现有电子商务基础结构中。通过将 Linux 的效率和功能与 IBM 最新的普及计算解决方案结合在一起,作者逐步指导您构建方便的基于 PDA 的销售应用程序。
    2003年10月13日  
 
Intel平台下Linux中ELF文件动态链接的加载、解析及实例分析(一): 加载
动态链接,一个经常被人提起的话题。但在这方面很少有文章来阐明这个重要的软件运行机制,只有一些关于动态链接库编程的文章。本系列文章就是要从源代码的层次来探讨这个问题。
    2003年10月13日  
 
基于Linux的实时系统
越来越多的开发者在基于Linux系统构造嵌入式实时应用,他们迫切地需要一份基于Linux系统构造嵌入式实时系统的指南性的文章。考虑到这种需求,本文在介绍了几种基本的实时进程调度算法的基础上,研究了普通的Linux操作系统的进程调度,并十分全面地调查了各种实时Linux系统为了支持实时特性对普通Linux系统所做的改进。文章分析了将Linux操作系统应用于实时领域中时所出现的一些问题,并总结了各种实时Linux是如何解决这些问题的,最后对于如何将这些已有的研究成果应用与实际的研究和开发工作中作了很好的建议。
    2003年10月11日  
 
使用图形编辑框架创建基于 Eclipse 的应用程序
本文描述了使用图形编辑框架(Graphical Editing Framework,GEF)创建一个基于 Eclipse 的应用程序所涉及的初始步骤。GEF 被用来构建各种用于 Eclipse 的应用程序,包括状态图、活动图、类图、用于 AWT、Swing 和 SWT 的 GUI 构建器以及过程流编辑器。Eclipse 和 GEF 都是开放源码技术。二者也都包含在 IBM 的 WebSphere Studio 工作台中。
    2003年10月10日  
 
使用 Eclipse 平台进行调试
本文概述了怎样使用 Eclipse 平台的内置调试功能来调试您的软件项目。
    2003年10月9日  
 
用 Perl/Tk 实现数据可视化
生成可视化的表示方式通常是理解大型数据集的最好途径,但是标准的工具(例如 gnuplot)通常很难实现。本文向您展示了如何使用 Perl/Tk 这个 Perl 标准工具箱来快速地构建自定义绘图工具。
    2003年10月1日  
 
实时管理 Linux
/proc 文件系统是 Linux 的优秀特性之一,本文向您详细讲述了它的一些最实用的基础知识。使用 /proc,您再也不用关闭并重新引导机器来管理操作系统的许多细节问题,这对那些要求系统的可用性尽可能高的管理员来说非常有用。
    2003年9月26日  
 
实时管理 Linux
/proc 文件系统是 Linux 的优秀特性之一,本文向您详细讲述了它的一些最实用的基础知识。使用 /proc,您再也不用关闭并重新引导机器来管理操作系统的许多细节问题,这对那些要求系统的可用性尽可能高的管理员来说非常有用。
    2003年9月26日  
 
服务器诊所: 编写出色的异常 -- 改进错误处理风格
许多开发人员对待异常系统就好像在运用一种浪漫语言一样:熟悉其中的词语,但却不清楚要以此说明什么。Cameron 对此提出了实用的建议,指出系统应该抛出什么和捕获什么。
    2003年9月22日  
 
维护 Eclipse 插件 -- 如何利用 Eclipse 工具来诊断客户问题
本文描述了可用于诊断客户报告的 Eclipse 插件问题的策略。这些策略最强大之处在于能够将一个调试会话从一个 Eclipse 实例附加到正在远程主机上运行的 Eclipse 实例上。本文中所描述的策略对于基于 Eclipse 2.x 的所有产品都有效,如 WebSphere Studio Application Developer 和 WebSphere Studio Site Developer。
    2003年9月22日  
 
在Linux下构造高性能、高可用、高可伸缩性的服务集群
随着Internet技术的迅猛发展,网络技术、性能的不断提高,高可伸缩性、高可用性、可管理性、价格有效性的网络服务技术将成为网络服务技术的主导。各种平台下的技术方案应运而生。本文试图以一篇完整的理论+实践性的文字来介绍如何在优秀的开源操作系统Linux下创建低成本、高性能、高可用的服务集群系统。文中所使用的系统和软件包均为最新版本。希望通过对本文的阅读能使你对如何创建Linux下的集群系统有所帮助。
    2003年9月17日  
 
在 Red Hat Linux 上安装 WebSphere Portal Server 4.2:WebSphere Application Server 和 Portal Server
在 Red Hat Linux 上安装 IBM WebSphere Portal Enable V4.2 过程很复杂,分两个层面,第一个层面是 LDAP,用于用户认证和一次登录功能,上一篇教程讲述 DB2 和 IBM Directory Server(IDS)的安装。 第二个层面是 Portal Server 本身的安装,这一部分在本教程中讨论 -- 概述 DB2、WebSphere Application Server 和 WebSphere Portal Server 的安装。
    2003年9月15日  
 
在 Red Hat Linux 上安装 WebSphere Portal:DB2 和 IDS
在 Red Hat Linux 上安装 IBM WebSphere Portal Enable V4.2 过程很复杂,分两个层面,第一个层面是 LDAP,用于用户认证和一次登录功能,这是本教程所要讨论的 -- 讲述 DB2 和 IBM Directory Server(IDS)的安装。 第二个层面是 Portal Server 本身的安装,这一部分在这篇教程的续篇中讨论 -- 概述 DB2、WebSphere Application Server 和 WebSphere Portal Server 的安装。
    2003年9月15日  
 
使用 Twisted 框架进行网络编程,第 2 部分
在这个关于 Twisted 系列的第一篇文章中,David 介绍了异步服务器编程。虽然正如 David 在本文中所说的,从某种角度而言 Web 服务器是另一种网络服务,但 Twisted 提供了许多用于编写 Web 服务的高级技术。
    2003年9月14日  
 
使用 Twisted 框架进行网络编程,第 3 部分
在本系列的前一部分中,David介绍了一些较高级别的用于编写 Web 服务的技术,包括使用 .rpy 扩展名来提供动态页面。在这一部分中,他将介绍动态Web 服务,以及如何使用 Woven 应用来为模板化页面生成动态 Web 页面。
    2003年9月14日  
 
使用 Twisted Matrix 框架来进行网络编程,第 1 部分
Twisted Matrix 是一种越来越受欢迎的纯 Python 框架,用来进行网络服务和应用程序的编程。虽然 Twisted Matrix 中有大量松散耦合的模块化组件,但该框架的中心概念还是非阻塞异步服务器这一思想。在本文中,David 向您介绍了一种新编程风格,对于习惯于线程技术或分叉服务器的开发人员来说,这是一种新颖的编程风格,但它却能在繁重负载的情况下带来极高的效率。
    2003年9月14日  
 
Linux 2.6 内核的精彩世界
Linux内核2.6版的开发已经接近尾声,2.6测试版发布已经二个月了,正式版预计明年年初发布。作为一个主要发布版本,2.6相对于2.4有很大的改动;它引入了许多新的特性,同样也去除很多过时的特性。它在哪些方面有大的改动?它对Linux的开发人员以及其他层面的Linux用户可能有什么样的影响?阅读本文,您将得到答案。--译者
    2003年9月11日  
 
Linux下PCI设备驱动程序开发
PCI是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准。Linux的内核能较好地支持PCI总线,本文以Intel 386体系结构为主,探讨了在Linux下开发PCI设备驱动程序的基本框架。
    2003年9月10日  
 
使用 JFreeChart来创建基于web的图表
JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,本文介绍了如何使用JFreeChart来创建基于web的图表.
    2003年9月10日  
 
将 ActiveX 控件集成到 SWT 应用程序
通过使用标准窗口小部件工具箱(Standard Widget Toolkit,SWT),您可以开发独立的 Java 应用程序,它看起来和操作起来类似本机应用程序。如果您花了很多时间来开发用于 Windows 的 Java 客户机端应用程序,那么您或许希望将一些本机 Windows 组件集成到您的应用程序中。SWT,作为正在开发中的 Eclipse 项目的一部分,通过为您提供在独立 SWT 应用程序中方便地利用和集成 ActiveX 控件的方法来实现这一需求。
    2003年9月9日  
 
JFace 开发向导
无论您使用什么语言开发 GUI 应用程序,收集用户输入的交互式机制都是不可或缺的。属于开发中的 Eclipse 项目的 JFace 工具箱提供了一组功能强大的用户界面组件,开发人员可以轻松地在独立应用程序中利用这些组件。JFace 工具箱中比较有趣的组件之一是对向导的支持。JFace 向导和标准窗口小部件工具箱(Standard Widget Toolkit,SWT)内的其它用户界面组件结合起来提供了灵活的机制,以便系统化地收集用户输入和执行数据验证。
    2003年9月9日  
 
使用 Java Web Start 部署 SWT 应用程序 -- 开发非常漂亮的客户机端的 Java 应用程序
在 SWT 应用程序开发过程中的某一阶段 ― 通常是在基本原型运作之后 ― 开发人员开始关注部署过程。与传统的 Java 应用程序不同,SWT 应用程序需要在应用程序运行之前装入某些特定于操作系统的库。虽然正在进行的这些库的部署和维护似乎是件头痛的事,但是请放心,有一种方案可以解决这种问题,那就是 Sun 的 Java Web Start。SWT 与 Java Web Start 的结合给开发人员提供了功能强大的工具,用它们可以部署非常漂亮的客户机端 Java 应用程序。
    2003年9月8日  
 
Web框架设计与实现:Maverick
在j2ee项目工程中合理的使用web框架能有效提高工作效率,增强程序的可维护型和可扩展性。本文主要介绍maverick框架的设计与实现。
    2003年9月4日  
 
嵌入式Linux开发系列之一: 走进嵌入式Linux的世界
随着信息化技术的发展和数字化产品的普及,以计算机技术、芯片技术和软件技术为核心的嵌入式系统再度成为当前研究和应用的热点,通信、计算机、消费电子技术(3C)合一的趋势正在逐步形成,无所不在的网络和无所不在的计算(everything connecting, everywhere computing)正在将人类带入一个崭新的信息社会。
    2003年9月1日  
 
在Linux下构造高性能、高可用、高可伸缩性的服务集群
随着Internet技术的迅猛发展,网络技术、性能的不断提高,高可伸缩性、高可用性、可管理性、价格有效性的网络服务技术将成为网络服务技术的主导。各种平台下的技术方案应运而生。本文试图以一篇完整的理论+实践性的文字来介绍如何在优秀的开源操作系统Linux下创建低成本、高性能、高可用的服务集群系统。文中所使用的系统和软件包均为最新版本。希望通过对本文的阅读能使你对如何创建Linux下的集群系统有所帮助。
    2003年9月1日  
 
Linux 内核调试器内幕
调试内核问题时,能够跟踪内核执行情况并查看其内存和数据结构是非常有用的。Linux 中的内置内核调试器 KDB 提供了这种功能。在本文中您将了解如何使用 KDB 所提供的功能,以及如何在 Linux 机器上安装和设置 KDB。您还将熟悉 KDB 中可以使用的命令以及设置和显示选项。
    2003年9月1日  
 
活用 XP: (七)实战结对
结对编程的根本思路是改善开发团队内部的沟通质量。在实际情况中,不同的开发团队面临着不同的沟通问题。那么,该如何找到一个共通的指导思路呢,又该如何根据实际的情况进行调整呢?
    2003年9月1日  
 
linux 电源管理
本文分析了 linux 电源管理的标准,以及 apm 的工作原理。
    2003年9月1日  
 
服务器诊所: 使用 ssh 进行安全的连接
您肯定希望用 ssh 从远程站点使用您的服务器,但是要让这个过程进展顺利还得用到一些技巧。
    2003年9月1日  
 
在 Linux 上构建无线接入点
当您的主要目标是拥有编写和修改自己的管理软件这一能力的时候,就需要定制的无线接入点。看一看使用 Linux 构建无线网桥都涉及哪些考虑事项,包括软件和硬件方面的考虑事项。
    2003年9月1日  
 
创建 Debian Linux 软件包
学习创建用于分发程序和源代码的 Debian 软件包的基础知识。本文介绍了一个软件包所必需的全部组件,以及如何将这些组件结合在一起生成最终产品。
    2003年9月1日  
 
高影响力的Web层群集,第一部分:利用JavaGroups扩展Web服务及应用
在本系列文章中,Sing Li分析了三种可以允许高影响力Web层群集的开放源代码软件基础,首先介绍 JavaGroups。
    2003年9月1日  
 
服务器诊所: 在 Linux 上仿真老式操作系统
在 Linux 上能够仿真各种各样的操作系统。这不仅仅只是学术实践,这些“托管的 OS”对不少服务器室来说是现实的投资。
    2003年9月1日  
 
便利的开发工具-log4cpp快速使用指南
log4cpp是个基于LGPL的开源项目,是基于优秀的日志处理跟踪项目Java语言的log4j移植过来的。log4j介绍的文档很多,在java领域使用的也比较广泛,而这个功能强大的库对国内的C++语言开发人员却使用的不多。这里从开发人员使用的角度介绍这个库,使开发人员用最少的代价尽快掌握这种技术。下面先简单介绍一下这个项目的优点(也是log4j的优点),然后分原理,手动使用步骤,配置文件驱动方式使用步骤,其他考虑等方面进行讨论。以下讨论基于log4cpp0.3.4b。
    2003年9月1日  
 
活用 XP: (八)杂说
XP 还拥有其它优秀的实践,本文讨论了XP的另外三个实践,并研究如何在项目中灵活的使用它们。
    2003年9月1日  
 
远程升级LINUX系统
本文简要地介绍了使用 Red Hat LINUX 的 kickstart 及网络安装功能方便快捷地升级己有 LINUX 系统,文中的例子是从 Red Hat 7.2 远程升级到 Red Hat 9.0。
    2003年8月28日  
 
创建本机的跨平台 GUI 应用程序(重述)
在本文中,Kirk 重述了该主题并讨论了对 Windows、GNOME 和 SWT 2.0 的支持。这一次,他使用 Ant 来演示如何自动构建您的本机应用程序,然后演示了如何将所有这些集成到 Eclipse IDE。
    2003年8月25日  
 
构建 Linux 测试网络
本教程阐述了如何结合 Samba 和 GRUB 来构建紧凑且具高适应性的跨平台测试网络,使它能够对少量机器上大量的操作系统进行引导和联网。尽管 Samba 和 GRUB 可以管理许多不同的操作系统,但本教程只集中讨论 Linux 和 Windows。
    2003年8月15日  
 
集群与jetspeed
本文目的在于分析Jetspeed支持集群的现状。首先介绍了集群计算的背景知识,然后使用tomcat作为例子配置了一个集群,接着分析了jetspeed对集群的支持现状,提出了解决这些问题的办法,最后详细解释了jetspeed保存sesson数据的操作,这将对jetspeed的改造有帮助。
    2003年8月14日  
 
Linux bootloader 编写方法
对于移植 linux 到其它开发板的人来说,编写 boot loader 是一个不可避免的过程。对于学习linux的人来讲,编写 bootloader 也是一个很有挑战性的工作。本文通过对 linux引导协议进行分析,详细阐述了如何编写一个可以在 i386 机器上引导 2.4.20内核的基本的bootloader。
    2003年8月11日  
 
Linux 关机重启流程分析
linux下的关机和重启流程对于一般的桌面应用和网络服务器来说并不重要,但是在用户自己定义的嵌入式系统内核中就有一定的研究意义,通过了解Linux 关机重启的流程,我们对它可以修改和自定义,甚至以此为基础开发出全新的功能来。
    2003年8月11日  
 
GObject对象系统
简单的说,GObject对象系统是一个建立在GLIB基础上的,用C语言完成的,具有跨平台特色的、灵活的、可扩展的、非常容易映射到其它语言的面向对象的框架。如果你是一个C语言的执着的追随者,你没有理由不研究一下它。
    2003年8月10日  
 
程序的链接和装入及Linux下动态链接的实现
程序的链接和装入存在着多种方法,而如今最为流行的当属动态链接、动态装入方法。本文首先回顾了链接器和装入器的基本工作原理及这一技术的发展历史,然后通过实际的例子剖析了Linux系统下动态链接的实现。了解底层关键技术的实现细节对系统分析和设计人员无疑是必须的,尤其当我们在面对实时系统,需要对程序执行时的时空效率有着精确的度量和把握时,这种知识更显重要。
    2003年8月10日  
 
用 PHP 实现的简单线性回归: 第 1 部分
PHP 领域中缺少了一个功能强大的工具:基于语言的数学库。在这个由两部分组成的系列文章中,Paul Meagher 希望通过提供一个如何开发分析模型库的示例来启发 PHP 开发人员去开发和实现基于 PHP 的数学库。在第 1 部分中,他演示了如何使用 PHP 作为实现语言来开发和实现简单线性回归(Simple Linear Regression)算法包的核心部分。在第 2 部分中,作者在该包中添加了一些功能:针对中小规模数据集的有用的数据分析工具。
    2003年8月10日  
 
GNOMEnclature: 为 GNOME 2 作好准备,第 2 部分
在这个最近才重新启动的 GNOMEnclature 专栏的第 2 篇文章中,相对而言还是 GNOME 新手的“通用线程”(Common threads)专栏作家 Daniel Robbins 从新的 GNOME 开发人员的角度研究了新的 Glib 对象系统。到本文结束时,您将十分了解 GNOME,足以决定是否要亲自尝试使用该系统(即使您是 C 的忠实拥趸)。
    2003年8月9日  
 
服务器诊所:使虚拟文件系统工作-- 实践证明 VFS 抽象概念极其有效
虚拟文件系统(VFS)是一个抽象概念,它具有极其高效的用途。几种流行的语言现在都支持 VFS 构造,Cameron Laird 向您说明这些构造适用于什么。
    2003年8月7日  
 
WebSphere Application Server 5.0在Linux平台上中文界面乱码问题的解决
当WebSphere Application Server(以下简称为WAS)安装到中文Linux平台时,经常出现中文被显示为方块的情况,本文将告诉您如何解决这个中文显示问题。
    2003年8月7日  
 
深入Struts 1.1
作为基于MVC模式的Web应用最经典框架,Struts已经正式推出了1.1版本,该版本在以往版本的基础上,提供了许多激动人心的新功能。本文就将带你走进Struts 1.1去深入地了解这些功能。
    2003年8月7日  
 
轻松将 DLL 移植到 Palm OS -- 用 Perl 轻松地将动态 Windows 库移植到 Palm OS 上
过去,将现有的 Windows DLL 移植到 Palm OS 是一项十分麻烦的工作。现在,让 Martyn Honeyford 向您介绍一项有趣的技术,它使用 Perl 使移植工作变得更加容易。他演示了一个 Perl 脚本,该脚本分析已有的 C 源代码,然后自动生成移植所需的众多源文件。您应该能够用这里描述的代码来帮助您进行自己的移植项目。您还将获得一些技巧,在 Martyn Honeyford 介绍的工具无能为力的地方,这些技巧能够为您的移植工作提供帮助。
    2003年8月4日  
 
便利的开发工具 CppUnit 快速使用指南
本文从基本原理,CppUnit 原理,手动使用步骤,通常使用步骤,其他实际问题等方面对 CppUnit 进行讨论。讨论基于CppUnit1.8.0。
    2003年8月4日  
 
可爱的 Python:使用 itertools 模块中的组合函数 -- Python 中的函数编程变“懒惰”了
Python 2.2 对 Python 语言引入了简单的生成器,并根据底层迭代器重新构思了标准循环。在 Python 2.3 中,生成器成了标准(不需要 _future_),而且引入了新模块 itertools 以与迭代器一起灵活地工作。itertools 模块本质上是一组组合高阶函数,只不过这些函数与惰性迭代器一起工作,而不是与有限列表一起工作。在这篇专栏文章中,David 研究了该新模块,并使您感受一下组合迭代器所具有的富有表现力的强大新功能。
    2003年8月4日  
 
改进错误处理风格
许多开发人员对待异常系统就好像在运用一种浪漫语言一样:熟悉其中的词语,但却不清楚要以此说明什么。Cameron 对此提出了实用的建议,指出系统应该抛出什么和捕获什么。
    2003年8月3日  
 
活用 XP: (二)考核和评估之别
螺旋、迭代、增量,不同的名词代表了同样的含义-分阶段开发软件。众多的方法学都采用了这种思路设计软件过程。但是在实践中,更多时候,分阶段开发软件带来的是痛苦。看来,我们常常被书中优美的叙述所迷惑,却没有真正想过实施中的难题。那么,如何管理分阶段的软件开发呢?如何应对现实中的难题呢?
    2003年8月1日  
 
活用 XP: (六)强化沟通
结对编程是本系列文章讨论的最后一个主题,也是备受争议的一个主题。为什么一个人的工作要两个人来完成,这对于老板来说简直就是犯罪。和前面的主题类似的,我们要学习和应用一项实践,关键的还是要把握其实质。
    2003年8月1日  
 
活用 XP: (五)测试管理
无论从那一点上来看,要保证软件的质量,测试工作是少不了的。而测试往往又是经常被忽略的。对于敏捷方法,精益编程而言,如何保证测试的有效性?如何减小测试的成本?是测试中首要考虑的两个问题。
    2003年8月1日  
 
活用 XP: (四)需求和故事
如何分析需求,如何记录需求,如何将需求映射为设计,这些永远是需求分析中最为重要的问题。XP提倡以一种简单实用的态度来对待需求,而在软件开发的历史中,需求分析从来都是最需要严谨对待的工作流程。究竟谁是对的?
    2003年8月1日  
 
活用 XP: (三)实践迭代
在了解了分阶段开发软件的基本思路之后,紧接着就需要考虑实施的问题。分阶段开发最难的,并不是在过程的控制上,而是在软件设计能力上。
    2003年8月1日  
 
活用 XP: (一)发挥过程和人的力量
以 XP 为代表的敏捷方法开始被越来越多的业内人士所熟悉,也有很多人对敏捷的思路表示出兴趣,但是在实践的过程中,总是出现这样或是那样的问题,究竟XP能不能用于指导实践呢,或者 XP 仅仅只能够存在于书中?本文将为您解答这个问题。
    2003年8月1日  
 
揭开极端编程的神秘面纱:工作的首选(XP)工具
希望尝试XP的团队经常不知道从何开始。通常他们有太多关于XP的问题。但技术之后将是什么呢?这个月,Roy Miller结合理论和实践来讨论您应使用什么工具以及如何使用它们。
    2003年7月31日  
 
用BeanShell实现公式管理
本文中,作者讲述了如何用BeanShell(一种Java 解释器)实现公式管理系统。从该系统的实现中大家可以了解到BeanShell带给我们灵活的Java 脚本机制。
    2003年7月28日  
 
在 Linux 上烧录 CD -- 命令行上的 mkisofs 和 cdrecord 使这一切成为可能
Linux 为创建 CD 提供了功能强大且灵活的工具。您可以创建在几乎任何平台上都可读的盘,还可以创建 .iso 文件以供下载和分发。
    2003年7月28日  
 
可爱的 Python: 多分派
面向对象编程的多功能性有许多是通过多态性获得的,多态性是指:倘若有合适的上下文,不同类型的对象可以用类似的方式进行工作。但大多数 OOP 编程是单分派(single dispatch)的;也就是说,仅有一个指定的对象确定采用哪一个代码路径。从概念上来说,较通用的技术是允许函数/方法的所有参数确定其专门化。本文介绍了用 Python 进行多分派(multiple dispatch)的实现,并演示了用该实现生成更佳程序的示例。
    2003年7月26日  
 
服务器诊所: Fortran,在 Linux 上安家
许多面向 Fortran 的开发人员在 Linux 上找到了快乐的家园。除了新的开发和移植,在 Linux 上使用 Fortran 这一任务中还有相当多的工作涉及旧的应用程序,其中一些已有三十五年以上的历史。
    2003年7月26日  
 
如何在linux下检测内存泄漏
本文针对 linux 下的 C++ 程序的内存泄漏的检测方法及其实现进行探讨。其中包括 C++ 中的 new 和 delete 的基本原理,内存检测子系统的实现原理和具体方法,以及内存泄漏检测的高级话题。作为内存检测子系统实现的一部分,提供了一个具有更好的使用特性的互斥体(Mutex)类。
    2003年7月26日  
 
如何增强 Linux 系统的安全性,第一部分: Linux 安全模块(LSM)简介
Linux安全模块(LSM)是Linux内核的一个轻量级通用访问控制框架。本文介绍Linux安全模块(LSM)的相关背景,设计思想,实现方法;并说明如何使用Linux安全模块(LSM)来增强Linux系统的安全性:一方面是供内核开发人员和安全研究人员使用的接口,另一方面是供普通用户使用的模块,以及具体的使用方法。如果读者具有Linux内核和安全的相关背景知识,可以有助于对本文的理解;如果不具有,可以先阅读本文最后参考资料中列出的IBM dW上的三篇文章。
    2003年7月26日  
 
快速构架Linux防火墙
本文介绍一个工具软件,可以帮助你在Linux的GUI图形用户界面下快速构架一个防火墙。Firestarter 是一个完全的免费软件,它可以在KDE和GNOME环境下,它提供图形界面免去了在生硬的文本环境下配置防火墙的麻烦。
    2003年7月21日  
 
改进 Linux 性能 -- 用于改进系统响应速度的一些实用示例
Cameron Laird 提供了一些有用的示例,这些示例对于很有可能在您自己的应用程序开发中发生的各种性能问题而言,是很合适的模型。
    2003年7月21日  
 
Linux下的硬件驱动――USB设备(下)
USB骨架程序(usb-skeleton),是USB驱动程序的基础,通过对它源码的学习和理解,可以使我们迅速地了解USB驱动架构,迅速地开发我们自己的USB硬件的驱动。
    2003年7月17日  
 
Linux下的硬件驱动――USB设备(上)
USB设备越来越多,而Linux在硬件配置上仍然没有做到完全即插即用,对于Linux怎样配置和使用他们,也越来越成为困扰我们的一大问题。本文着力从Linux系统下设备驱动的架构,去阐述怎样去使用和配置以及怎样编制USB设备驱动。对于一般用户,可以使我们明晰Linux设备驱动方式,为更好地配置和使用USB设备提供了方便;而对于希望开发Linux系统下USB设备驱动的程序员,提供了初步学习USB驱动架构的机会。
    2003年7月17日  
 
技巧:用 uniq 除去重复行
重复行通常不会造成问题,但是有时候它们的确会引起问题。此时,不必花上一个下午的时间来为它们编制过滤器,uniq 命令便是唾手可得的好工具。了解一下它是如何节省您的时间和精力的。
    2003年7月14日  
 
在 Eclipse Workbench 之外使用 Eclipse GUI,第 3 部分:添加操作、菜单和工具栏
本文是本系列的第三篇也是最后一篇文章,在本文中,A. O. Van Emmenis 将通过添加操作、菜单栏、弹出菜单和工具栏完成在第 1 和第 2 部分中着手讨论的文件资源管理器示例。他将演示如何设置菜单项特性,如何重用菜单和工具栏中的操作,以及如何通过侦听来自查看器的事件使操作识别上下文。示例操作使用实用程序来启动程序和访问系统剪贴板。
    2003年7月14日  
 
深入 Linux PAM 体系结构
本文阐述了 Linux-PAM 的概念,同时还与读者一道分析了 Linux-PAM 的体系结构,作者希望籍此以加深读者对 Linux-PAM 的理解,以便对其有更深层的把握。
    2003年7月10日  
 
安全编程: 验证输入
本文介绍了如何验证输入――任何安全程序的首要环节之一。
    2003年7月10日  
 
安全编程: 开发安全的程序
本专栏说明了如何编写安全的应用程序;重点讨论的是 Linux 操作系统,但是其中的许多原则也适用于任何系统。在当今联网的世界中,软件开发人员必须知道如何编写安全的程序,然而人们还未广泛认识到这一信息,也未向人们广泛讲授过这一信息。本文是安全编程(Secure programmer)专栏的第一篇文章,它介绍了如何编写安全的应用程序的基本思想,并讨论了如何针对特定的应用程序确定安全性需求。以后的几篇专栏文章将主要讨论几种不同的常见安全性漏洞以及如何防止它们。
    2003年7月10日  
 
在 Python 中封装 GObject
无论您是否对 C 特别精通,通过学习如何在 Python 中封装可供使用的 GTK+ C 模块,都使您能够在 Python 中根据您的需要随时使用用 C 编码的 GObject。
    2003年7月10日  
 
GNU 编译器家族 GCC 内部探密: 探索 GCC 前端的内部结构
我们在本文中说明 GCC 源码包中的例子编程语言 Treelang 的实现细节。主要目的在于辑此说明所谓 GCC 前端的编程方法。限于篇幅,本文只能略略讲一下 GCC 前端的内部结构的框架部分。本文中所涉及到的源程序均位于 GCC 源码包中的 gcc/ 目录和 gcc/treelang/ 目录下。本文的代码分析基于 GCC CVS 中的最新(2003 年六月)的开发版本。
    2003年7月10日  
 
IBM Cluster 1350与CSM
本文首先对Linux高性能集群Cluster1350及其集群管理系统CSM (Cluster System Management)进行了简要的介绍,然后对CSM的体系结构进行了比较详细的剖析。
    2003年7月9日  
 
用 Eclipse 进行 XML 开发
本文概述了 Eclipse 平台如何支持 XML(可扩展标记语言,Extensible Markup Language)开发。Eclipse 并不直接支持 XML 代码编辑。然而,因为 Eclipse 是一个用于构建开发人员工具的与平台无关的框架,因此可以相对容易地添加对新语言的支持。
    2003年7月9日  
 
功能丰富的 Perl: 用 Perl 进行应用程序配置,第 2 部分
如果使用手工构建方法,那么基于文件的配置很快就会崩溃。在本文中,Ted 演示了 AppConfig 模块如何处理本地配置存储。他研究了 AppConfig 模块的高级特性:验证、自动操作、修改散列和数组变量以及“单选按钮”样式的互斥选项。在本文中,我将讨论如何通过使用 CPAN AppConfig 模块来为 Perl 程序进行高级的、基于文件的配置。有关AppConfig 的介绍以及使用配置管理模块背后的基本原理,请参阅我上一篇有关这一主题的“功能丰富的 Perl”文章
    2003年7月9日  
 
更佳编程之路: 第 10 章. 使用 cfperl 进行用户管理
在这一系列文章中,Ted 一直在开发 cfperl 项目 — 该项目仅仅是一个用 Perl 编写的 cfengine 解释器。他讨论了 users: 节,可以方便地在这一部分添加、修改或删除用户和组。
    2003年7月9日  
 
更佳编程之路: 第 11 章. 利用 cfperl 进行 crontab 管理
在本系列文章中,Ted 从头到尾完整地开发了 cfperl 项目 — 它只是一个用 Perl 编写的 cfengine 解释器。在本文中,他讨论了“cron”这一部分,可在其中方便地添加或删除 crontab 项。
    2003年7月9日  
 
可爱的 Jython
可爱的 Jython :Jython 是 Python 编程语言的 100% 纯 Java 实现。本文中,作者通过比照 Python 和 Java 语言创建类的方法,以及它们如何使用解释器向 Java 开发人员介绍了 Jython 2.1。
    2003年7月9日  
 
更佳编程之路: 第 9 章. 类和缺省解析器
cfperl 项目(用 Perl 编写的 cfengine 解释器)是自顶向下开发的。在本文中,我们将讨论组和类,以及如何处理未知输入。
    2003年7月9日  
 
What is AspectJ
网上出现了很多讲解AspectJ的资料,但大多是从讲解AspectJ语法开始,本文从另一个角度讲解AspectJ,作者着重介绍了AspectJ的设计思路和运行原理
    2003年7月7日  
 
技巧:用 tr 过滤文件 -- 了解文本实用程序
没有人曾说过 sed 很容易 ― 它确实不容易!但通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。
    2003年7月7日  
 
Linux汇编语言开发指南
本文为那些在 Linux 平台上编写汇编代码的程序员提供指南,介绍 Linux 汇编语言的语法格式和开发工具,并辅以具体的例子讲述如何开发实用的Linux汇编程序。
    2003年7月7日  
 
Linux 下串口编程入门
Linux 操作系统从一开始就对串行口提供了很好的支持,本文就 Linux 下的串行口通讯编程进行简单的介绍。
    2003年7月7日  
 
使用 Web 服务来访问 DB2:在 Linux 上创建 Web 服务来访问 DB2
本教程演示了通过 Web 服务访问您的 DB2 数据是如何之方便。它向您说明了如何用 Linux 平台上的 WebSphere Studio Application Developer V5 来开发和测试使用 DB2 数据的 Web 服务。在本教程中,您将创建一个四层的样本应用程序来构造一个二手车销售的网络。
    2003年7月3日  
 
Python设计模式系列之四: 创建型Abstract Factory模式
软件设计大师总是要比初学者更加清楚该如何设计软件,因为他们手中掌握着设计模式这一法宝。作为一种高级的软件复用形式,设计模式是众多优秀软件设计师集体智慧的结晶,能够很好地指导软件设计过程。本系列文章讲述如何在用Python开发软件系统时应用各种设计模式,此次介绍的是创建型抽象工厂(Abstract Factory)模式。
    2003年7月3日  
 
Python 设计模式系列之二: 创建型 Simple Factory 模式
软件设计大师总是要比初学者更加清楚该如何设计软件,因为他们手中掌握着设计模式这一法宝。作为一种高级的软件复用形式,设计模式是众多优秀软件设计师集体智慧的结晶,能够很好地指导软件设计过程。本系列文章讲述如何在用Python开发软件时应用各种设计模式,此次介绍的是创建型简单工厂(Simple factory)模式。
    2003年7月3日  
 
Python设计模式系列之一: 用模式改善软件设计
软件设计大师总是要比初学者更加清楚该如何设计软件,因为他们手中掌握着设计模式这一法宝。作为一种高级的软件复用形式,设计模式是众多优秀软件设计师集体智慧的结晶,能够很好地指导软件设计过程。本系列文章介绍如何在用Python开发软件时应用各种设计模式,Python是一种简单、灵活、高效的原型语言,特别适合于用来理解和掌握设计模式。
    2003年7月3日  
 
服务器诊所: 使虚拟文件系统工作
虚拟文件系统(VFS)是一个抽象概念,它具有极其高效的用途。现在几种流行的语言都支持 VFS 构造,并且 Cameron Laird 向您说明这些构造适用于什么。
    2003年7月3日  
 
Python设计模式系列之三: 创建型Factory Method模式
本系列文章讲述如何在用Python开发软件时应用各种设计模式,此次介绍的是创建型工厂方法(Factory Method)模式。
    2003年7月3日  
 
采访:让 Samba 超出 POSIX -- 就最近重写 Samba 采访 Andrew Tridgell
developerWorks 就 Tridge 在 IBM 的工作、Samba 3.0 的状态以及他对 smbd 重写的看法与之进行了交谈。
    2003年7月3日  
 
使用libnet与libpcap构造TCP/IP协议软件
本文在RED HAT Linux8.0+以太网环境下,利用libnet和libpcap库实现了一个以太网上用户态的单进程的TCP/IP协议软件包:minitcpip,该软件实现了TCP协议的基本通讯功能,并提供了一个调试接口和一个与标准SOCKET接口类似的接口函数库minisocket,方便用户的调试与应用软件的调用。
    2003年6月30日  
 
在 Eclipse Workbench 之外使用 Eclipse GUI,第 2 部分:使用 JFace 图像注册表
在本文中,A. O. Van Emmenis 继续研究在第 1 部分中着手构建的示例。他将完善内容提供程序和标签提供程序,并演示如何在 JFace 查看器中使用排序和过滤。他将演示如何给窗口添加状态行,给两个查看器添加图标,并讨论如何通过使用 JFace 图像注册表来节省系统资源。
    2003年6月30日  
 
模板引擎SMARTY
用PHP实现MVC开发模式的逻辑层和表示层有多种模板引擎可供选择,但是官方引擎SMARTY诞生后,选择就有了变化。它的理念和实现都是相当"前卫"的。本文主要讨论SMARTY之于其他模板引擎的不同特点,简要介绍了该引擎的安装及使用,并用一个小的测试案例对比了SMARTY和PHPLIB template的速度和易用性。
    2003年6月26日  
 
Tiny CC 发挥 C 语言的威力 之一: 介绍
本文介绍 GNU/Linux 系统上最小的 C 语言编译器 Tiny C 编译器。Tiny C 编译器不仅仅是一个常规意义上的 C 语言编译器,它还使得用户可以像使用脚本语言一样使用 C 语言进行快捷的脚本编程。我们着重介绍用 C 语言进行脚本程序开发的魅力。这个系列将由三篇文章组成,这是第一篇,介绍;在第二篇中,我们将说明如何用标准 C 语言完成通常用 sed 和 awk 完成的字符串处理的工作;在第三篇中,我们将说明如何在自己的编译器项目中使用 TCC 作为机器代码生成器。
    2003年6月26日  
 
采访:Eric Raymond 回归基础 -- 与黑客历史学家交谈
Eric S. Raymond 是 The Cathedral and the Bazaar 的作者和现在十分著名的“万圣节文件(Halloween Documents)”的发表者,他谈论了他最新的项目并说明了 UNIX 开发人员为什么不喜欢 IDE。自由作家 Robert McMillan 采访了这位年长且极具智慧的开放源码拥护者。
    2003年6月26日  
 
Linux网桥的实现分析与使用
本文分析了Linux 2.4.x内核的网桥的实现方法,并且描述了如何使用2.4中的网桥。
    2003年6月23日  
 
技巧:用 sort 和 tsort 对文件进行排序
通过使用 sort 和 tsort,而不是采取使用 Perl 或 Awk 的较复杂的解决方案,可以节省时间,同时还能避免令人头疼的问题。Jacek Artymiak 将向您说明如何做到这一点。
    2003年6月16日  
 
部署Linux防病毒软件RAV AntiVirus Desktop For Linux v8
这里介绍RAV AntiVirus Desktop For Linux v8的可以跨平台使用。
    2003年6月12日  
 
集群的可扩展性及其分布式体系结构之十一
续上篇对TCP splicing技术应用于面向内容的负载平衡技术,我们将在这里进一步探讨TCP Splicing中,对于TCP报文处理的个别细节,包括两个被Splicing的连接之间如何处理报文序号映射,常见的TCP 选项的兼容性等问题做出分析和探讨。
    2003年6月9日  
 
集群的可扩展性及其分布式体系结构之十
本部分,将对面向内容交换的负载平衡中,使用的主要网络通信技术手段进行分析。其中,关于通信的半工(TCP HandOff)和双工(TCP Splicing粘合模式)是目前Content Switch(面向内容交换)集群系统使用的主要技术。传统的负载平衡技术主要有应用层协议代理服务器、三层和四层交换等。其中,应用层代理技术,面向特定的应用层协议,对客户端和服务器的数据流进行转换;三层和四层交换通过识别数据报文的有效地址信息进行双向的映射和调度。不管采用哪一种技术,其根本模式都是在网络连接的基础上进一步对数据包进行业务级分流。
    2003年6月9日  
 
集群的可扩展性及其分布式体系结构之八
本篇是集群系列之七的续篇。主要针对大多数主流的面向连接(也就是面向IP包)进行网络负载平衡系统的固有缺陷进行分析。因为传统的基于IP或者TCP映射的负载均衡技术针对TCPIP协议数据中的有效地址信息进行负载平衡的调度工作,例如TCp或者UDP协议的源目Ip地址,端口等。缺点是显然的:这种面向连接的均衡无法知道数据请求的具体内容,也就是content blind。无法根据数据请求的切实内容进行有针对性的负载平衡。
    2003年6月9日  
 
更佳编程之路: 第 8 章. 顶级解析器和复合类解析器
在本文中,Ted 说明了 cfperl 的顶级解析器和复合类解析器的工作原理,使我们能够更加清楚解析器所起的重要作用。
    2003年6月9日  
 
Linux环境进程间通信(六):套接口(sockets)
在本专题的前面几个部分,如消息队列、信号灯、共享内存等,都是基于Sys V的IPC机制进行讨论的,它们的应用局限在单一计算机内的进程间通信;基于BSD套接口不仅可以实现单机内的进程间通信,还可以实现不同计算机进程之间的通信。本文将主要介绍BSD套接口(sockets),以及基于套接口的重要而基本的API。
    2003年6月9日  
 
集群的可扩展性及其分布式体系结构之九
上文主要讨论了基于IP包转发和TCP连接调度的负载平衡集群技术的主要缺陷。这里针对前面的问题,提出面向数据内容调度的负载平衡技术,是对原有三层和四层交换的一种改进,旨在提高集群的总体吞吐性能和复杂应用的适应能力。
    2003年6月9日  
 
功能丰富的 Perl: 一行程序 102
Ted 通过描述从打印一系列行到从尾到头地列出文件内容,演示了如何更少地使用这些简洁的一行 Perl 脚本来做更多的事。
    2003年6月9日  
 
Linux 2.4.x 网络协议栈QoS模块(TC)的设计与实现
本文描述了linux 2.4.x内核中对Qos支持的设计与实现,并且对缺省的数据包调度机制PFIFO进行了详细的分析。
    2003年6月5日  
 
如何自动登录linux(续)
在”如何自动登录linux”中,以redhat 7.2操作系统平台为背景,阐述了如何实现自动登录X window(系统启动级别为5),并自动运行指定的应用程序。本文以redhat 8.0操作系统平台为背景,阐述如何实现启动级别为3时的自动登录,及自动运行相应程序,并简要介绍了如何在redhat 8.0下自动登录X window(系统启动级别为5),并自动运行指定的应用程序。
    2003年6月1日  
 
FLTK编程模型
FLTK(Fast Light Tool Kit 发音为fulltick) 是一种使用C++开发的GUI工具包,它可以应用于Unix,Linux,MS-Windows95/98/NT/2000和MacOS操作系统平台,相对于其它的许多图形接口开发工具包(如MFC、GTK、QT等),它具有体积很小、速度比较快,且有着更好的移植性。本文就FLTK编程的一些基本方法进行介绍。
    2003年5月22日  
 
JAVA开放源码项目与工具在企业应用开发中的运用
近两年,开放源码项目发展日益壮大,出现了很多有着广阔用户群体的项目与产品,它们在企业应用开发中正在发挥着越来越大的作用。本文以基于J2EE架构的企业应用开发为例,探讨了如何在项目中深入运用JAVA开发源码项目与工具。
    2003年5月19日  
 
Linux 线程实现机制分析
自从多线程编程的概念出现在 Linux 中以来,Linux 多线应用的发展总是与两个问题脱不开干系:兼容性、效率。本文从线程模型入手,通过分析目前 Linux 平台上最流行的 LinuxThreads 线程库的实现及其不足,描述了 Linux 社区是如何看待和解决兼容性和效率这两个问题的。
    2003年5月19日  
 
Linux环境进程间通信(五):共享内存(下)
在共享内存(上)中,主要围绕着系统调用mmap()进行讨论的,本部分将讨论系统V共享内存,并通过实验结果对比来阐述两者的异同。系统V共享内存指的是把所有共享数据放在共享内存区域(IPC shared memory region),任何想要访问该数据的进程都必须在本进程的地址空间新增一块内存区域,用来映射存放共享数据的物理内存页面。
    2003年5月19日  
 
Linux环境进程间通信(五):共享内存(上)
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。
    2003年5月19日  
 
用 4Suite 进行 Python/XML 开发,第 5 部分
本教程为 Python 开发人员演示了如何使用流行的开放源码 4Suite 工具箱进行 XML 处理,以创建 Web 资源库应用程序。
    2003年5月15日  
 
漫谈企业应用项目的软件开发过程 -- 一个PRM系统实施的经验与教训
本文以一个PRM项目为例, 探讨了目前国内软件开发企业在软件开发过程中,尤其是企业应用系统项目开发中,面临的问题以及如何利用敏捷软件开发方法的解决方案。
    2003年5月15日  
 
ARP协议揭密
IP数据包常通过以太网发送。以太网设备并不识别32位IP地址:它们是以48位以太网地址传输以太网数据包的。因此,IP驱动器必须把IP目的地址转换成以太网网目的地址。在这两种地址之间存在着某种静态的或算法的映射,常常需要查看一张表。地址解析协议( Address Resolution Protocol,ARP)就是用来确定这些映象的协议。
    2003年5月15日  
 
Linux下写者优先的读写锁的设计
现在的linux内核源代码的发行版本而言,已经实现了读写锁的一个类型,就是读者优先的读写锁。而我要设计的读写锁,则是以写进程为优先的考虑的对象,如果有写的请求发出,则它会在被允许的最快时间内得到响应。这样的好处是在一个由很多客户端以读的权限访问的服务器(如一般的公众服务器),如果管理员对服务器的某些内容或配置进行修改的话,那它的及时性就有可能无法满足。
    2003年5月12日  
 
用Comanche轻松配置Apache
本文介绍一个软件 Comanche, 可以让你在图形界面下轻松配置管理 Apache 服务器。
    2003年5月12日  
 
Python自动单元测试框架
软件的测试是一件非常乏味的事情,在测试别人编写的软件时尤其如此,程序员通常都只对编写代码感兴趣,而不喜欢文档编写和软件测试这类"没有创新"的工作。既然如此,为什么不让程序员在编写软件时自己加入一些用于测试的代码,使测试过程自动化呢?在软件工程中,这一技术称为自动单元测试,本文介绍在用Python开发软件时如何实现这一目标。
    2003年5月10日  
 
浅析GLib
GLib是GTK+和GNOME工程的基础底层核心程序库,是一个综合用途的实用的轻量级的C程序库,它提供C语言的常用的数据结构的定义、相关的处理函数,有趣而实用的宏,可移植的封装和一些运行时机能,如事件循环、线程、动态调用、对象系统等的API。它能够在类UNIX的操作系统平台(如LINUX, HP-UNIX等),WINDOWS,OS2和BeOS等操作系统台上运行。
    2003年5月10日  
 
在 Linux for iSeries 上设置高可用性防火墙
很久以来,在 PC 上运行的 Linux 一直被公认为家庭网络的既便宜又安全的防火墙解决方案。既然 Linux 可以在 iSeries 服务器上运行,那么 iSeries 客户就有很大的机会将 Linux 防火墙用于他们的企业网络。
    2003年5月6日  
 
过程塑造:(一)从方法到编码
这是一篇偏重于介绍方法学(特别是Agile方法)实践的文章。其读者对象是那些希望在自己的软件团体中引入某个过程方法,但又不知从何入手的开发人员、项目经理们。本文中所提到的内容更适合于应用在小型的软件团队中。对于较大规模的软件团队,本文中的部分内容也适用。
    2003年4月28日  
 
过程塑造:(三)代码是最终目的
过程的最终目的是代码,开发过程中的所有活动都围绕着这一目的而展开。如果没有最后的用于交付的代码,软件就无法成为软件。因此,必须保证过程能够产出代码,而且是优秀的代码。
    2003年4月28日  
 
过程塑造:(六)短期利益和长期利益的权衡
软件过程的改进是一个长期的过程,属于长期的利益。如果长期利益和短期利益相冲突的时候我们应该如何处理。我们有什么办法来令短期利益和长期利益结合起来呢?
    2003年4月28日  
 
过程塑造:(五)活跃和混乱、严谨和死板
软件工程需要在科学和艺术之间求得权衡,科学的一面包括了软件开发规范、准则、实践、过程、方法;而艺术的一面则囊括了人员的激励、协调,组织的设计等因素。因此我们需要审视我们的规则、过程、方法,它们是否能够发挥出人的创新性?或是它是否足以约束人的行为?
    2003年4月28日  
 
过程塑造:(二)知识接力
在软件过程中,我们如何保证信息能够得到正确的传递呢?我们用什么方法来避免信息传递的失真呢?我们如何在这样一个过程中处理人与人之间的交互呢?在正确传递信息的情况下,我们又如何保证投入的最小化呢?保证知识。
    2003年4月28日  
 
过程塑造:(四)一致性的思考
一致性原则是软件开发中重要原则,也是最令人困惑的原则。做到完全的一致性将会导致高昂的成本,而不一致又会导致项目出现各种各样的问题。可以想到,这又是一个需要权衡的问题。
    2003年4月28日  
 
用 Pixie 管理 Perl 持久性
Pixie 模块用不同的方法使您的 Perl 项目与关系数据库连接。它抛开了模式,从而允许更大的灵活性。当然,这样做会有些缺点,但对于许多项目,您将发现它能非常好地满足要求。
    2003年4月26日  
 
用户模式 Linux 简介
曾经希望有个运行 Linux 应用的地方(且不会对任何其它东西有危害)吗?您的 killer 应用杀死对方要花费很多时间吗?最初旨在作为内核开发人员的工具,通过 UML,您可以设置多个不但相互隔离的、而且与硬件隔离的虚拟机。现在,您可以测试您的应用成败而不会破坏主机系统 -- 甚至重新引导。经验丰富的管理员 Carla Schroder 向您演示怎么做。
    2003年4月24日  
 
在 IBM xSeries 上使用 OpenMosix 的优点:第 3 部分(共 3 部分)
本文是由 3 部分组成的系列文章的第 3 部分。在第 1 部分中,您了解了可用于 Linux 的群集技术的清晰、易懂的简介,以及对 openMosix 的简介。在第 2 部分中,您配置并运行了功能齐全的 openMosix 群集。现在,在第 3 部分中,您将看到一些使用 openMosix 来解决计算难题的方法。
    2003年4月21日  
 
在 IBM xSeries 上使用 OpenMosix 的优点:第 2 部分(共 3 部分)
本文是由 3 部分组成的系列文章的第 2 部分。在第 1 部分中,向您介绍了当前可用于 Linux 的群集技术并介绍了 openMosix。在第 2 部分结束时,您将拥有一个已配置的功能齐全的 openMosix 群集,并使之运行。
    2003年4月21日  
 
在 IBM xSeries 上使用 OpenMosix 的优点:第 1 部分(共 3 部分)
在读完这个由三部分组成的系列时,您能够启动并运行自己的 openMosix 袖珍群集,并可以准备用它来有效地加速您的计算任务。在第 1 部分中,您将获得对当前可用于 Linux 的群集技术清晰和易懂的简介,以及对 openMosix 的简介。
    2003年4月21日  
 
WebSphere Studio Application Developer 5.0 安装指南(中文版pdf)
本指南包括安装WSAD 5.0的软硬件先决条件和在Windows和Linux平台上各个组件的安装与卸载步骤说明。
    2003年4月15日  
 
将 Samba 用作 PDC
想将您的 Microsoft 客户端机器和 Linux 或 Unix 服务器整合吗?开放源码 Samba 可以将 Unix 或 Linux 系统转换为 Microsoft Windows 网络客户机的文件和打印服务器。现在开始学习如何在 xSeries 服务器上将 Samba 配置为主域控制器吧。
    2003年4月10日  
 
将 LDAP 目录用于 Samba 认证
开放源码 Samba 将 Unix 或 Linux 系统转变成了用于 Microsoft Windows 网络客户机的文件和打印服务器。您可以配置 LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)来为 Samba PDC(主域控制器)提供用户认证。
    2003年4月10日  
 
集群的可扩展性及其分布式体系结构之七--网络负载平衡常见问题
阔别已久的集群系列终于又和大家见面了,埋头研究了一段时间,也实现了一些系统的具体实现,从中获得了不少体验。接下来准备就遇到的问题和体会同广大爱好者一同交流。这一章主要介绍了在进行一个负载平衡项目中遇到的一些错误。
    2003年4月9日  
 
在 Eclipse Workbench 之外使用 Eclipse GUI,第 1 部分: 单独使用 JFace 和 SWT
尽管人们通常在 Eclipse Workbench 内部使用 Eclipse GUI 组件(JFace 和 SWT),但它们本身被设计为自包含的框架。即使在 Eclipse Workbench 之外,JFace 的可插入式设计仍允许您用极少的代码开发复杂的 GUI。在由三篇文章组成的这一系列中,A. O. Van Emmenis 将演示如何构建这样的独立应用程序。在第 1 部分中,他从“Hello, World”示例开始,然后逐步将其构建成一个(非常)简单的文件资源管理器。他介绍了一些主要的 JFace 类(和几个 SWT 窗口构件),同时还介绍了一些技巧、窍门和设计问题。
    2003年4月9日  
 
Linux环境进程间通信(四):信号灯
信号灯与其他进程间通信方式不大相同,它主要提供对进程间共享资源访问控制机制。相当于内存中的标志,进程可以根据它判定是否能够访问某些共享资源,同时,进程也可以修改该标志。除了用于访问控制外,还可用于进程同步。
    2003年4月7日  
 
过程塑造: (一)从方法到编码
这是一篇偏重于介绍方法学(特别是Agile方法)实践的文章。其读者对象是那些希望在自己的软件团体中引入某个过程方法,但又不知从何入手的开发人员、项目经理们。本文中所提到的内容更适合于应用在小型的软件团队中。对于较大规模的软件团队,本文中的部分内容也适用。
    2003年4月1日  
 
过程塑造: (三)代码是最终目的
过程的最终目的是代码,开发过程中的所有活动都围绕着这一目的而展开。如果没有最后的用于交付的代码,软件就无法成为软件。因此,必须保证过程能够产出代码,而且是优秀的代码。
    2003年4月1日  
 
过程塑造: (六)短期利益和长期利益的权衡
软件过程的改进是一个长期的过程,属于长期的利益。如果长期利益和短期利益相冲突的时候我们应该如何处理。我们有什么办法来令短期利益和长期利益结合起来呢?
    2003年4月1日  
 
过程塑造: (五)活跃和混乱、严谨和死板
软件工程需要在科学和艺术之间求得权衡,科学的一面包括了软件开发规范、准则、实践、过程、方法;而艺术的一面则囊括了人员的激励、协调,组织的设计等因素。因此我们需要审视我们的规则、过程、方法,它们是否能够发挥出人的创新性?或是它是否足以约束人的行为?
    2003年4月1日  
 
过程塑造: (二)知识接力
在软件过程中,我们如何保证信息能够得到正确的传递呢?我们用什么方法来避免信息传递的失真呢?我们如何在这样一个过程中处理人与人之间的交互呢?在正确传递信息的情况下,我们又如何保证投入的最小化呢?
    2003年4月1日  
 
过程塑造: (四)一致性的思考
一致性原则是软件开发中重要原则,也是最令人困惑的原则。做到完全的一致性将会导致高昂的成本,而不一致又会导致项目出现各种各样的问题。可以想到,这又是一个需要权衡的问题。
    2003年4月1日  
 
Python 中的元类编程
大多数读者都已熟悉面向对象编程的概念:继承、封装和多态性。但如果有了确定的父类,则通常认为创建给定类的对象是“千篇一律”的操作。事实证明,当可以定制对象创建的过程时,许多新的编程构造变得更容易,或者成为可能。元类支持某些类型的“面向方面编程”,例如,您可以用一些特性来增强类,譬如,跟踪能力、对象持久性、异常日志记录以及其它特性。
    2003年3月26日  
 
OSS--跨平台的音频接口简介
OSS(Open Sound System)是 unix 平台上一个统一的音频接口, 即只要音频处理应用程序按照OSS的API来编写,那么在移植到另外一个平台时,只需要重新编译即可。
    2003年3月26日  
 
在 RedFlag 3.0 服务器上安装 IBM Directory Server 4.1
IBM Directory 是作为独立守护进程运行的轻量级目录访问协议(LDAP)目录。它基于客户机/服务器模型来提供对 LDAP 服务器的客户机访问。IBM Directory 提供了一种在中央位置维护目录信息 以进行存储、更新、检索和交换的简单方法。
    2003年3月26日  
 
创建 KParts 组件,第 2 部分
本教程说明了如何在 KDE 应用程序中使用 KParts 组件。它说明了如何使用 KDE Trader 来定位合适的组件,如何处理用户界面合并,以及如何在 Part Manager 的帮助下在同一个窗口中嵌入多个部件。
    2003年3月20日  
 
使用 Python 访问 DB2 for Linux
Python 数据库 API 是实现 Python 到数据库管理系统接口的标准规范。 DB2 模块是实现 Python 数据库的标准。本教程涵盖了整个 API,并提供了一些样例代码,可以在 Python 的交互模式下运行。使用的数据库是 DB2 UDB 8.1 企业 Linux 版带的 sample 数据库。
    2003年3月18日  
 
Linux 的无线连接
本教程的适用对象是这样一些开发人员、系统管理员和最终用户:他们正在寻求有关对 Linux 下的无线网卡进行配置的详细且循序渐进的指南。内容包括重新编译内核以支持 PCMCIA-CS 库、提取并编译 PCMCIA-CS 原码、发现并编译支持各种无限网卡的驱动,以及配置无线网卡来连接无线访问设备。
    2003年3月14日  
 
快速启动 Linux 应用:安装 WebSphere Application Server
本文演示了如何在 Linux 上安装、配置和测试 Websphere Application Server 4.x。在这些步骤中,您将使用 Linux 命令来验证是否安装了必需的软件,检查是否有足够的可用磁盘空间,并将从 CD 解压缩文件。然后您将安装 Websphere Application Server,并运行它和它的管理控制台。最后,您将除去解压缩分发版文件时所创建的临时文件。
    2003年3月10日  
 
Linux下免费数据库PostgreSQL开发入门
本文介绍使用 C/C++ 结合数据库自带的 libpq 和 libPq++ 库来开发 Linux 下有名的免费数据库 PostgreSQL,详细描述了怎样使用开发库来操作数据的步骤和流程。
    2003年3月8日  
 
Linux内核配置系统浅析
随着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中。面对日益庞大的 Linux 内核源代码,开发者在完成自己的内核代码后,都将面临着同样的问题,即如何将源代码融入到 Linux 内核中,增加相应的 Linux 配置选项,并最终被编译进 Linux 内核。这就需要了解 Linux 的内核配置系统。
    2003年3月1日  
 
异步消息的传递-回调机制
软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。回调和异步调用的关系非常紧密,通常我们使用回调来实现异步消息的注册,通过异步调用来实现消息的通知。同步调用是三者当中最简单的,而回调又常常是异步调用的基础,因此,下面我们着重讨论回调机制在不同软件架构中的实现。
    2003年3月1日  
 
快速启动您的 Linux 应用: 安装必备 Linux 软件包
要参与“快速启动您的 Linux 应用”计划,将需要一个额外的软件包(pdksh),它并不是作为大多数标准 Linux 安装的一部分而被安装的。本文将告诉您如何从 Red Hat 安装 CD 或使用 YaST2 工具从 SuSE 添加它。本文在 2002 年 10 月 1 日做了大量更新,为 SuSE Linux 用户添加了许多额外的详细信息。
    2003年3月1日  
 
linux 下结合 IBM DB2 进行 Apache 网站开发 -- Python DB2 接口
本教程旨在引导您掌握使用 PHP、Perl 或 Python 语言和 DB2 for linux 开发基于 Web 的应用程序所需的步骤。
    2003年3月1日  
 
Linux 下结合 IBM DB2 进行 Apache 网站开发 -- 前提条件
本教程旨在引导您掌握使用 PHP、Perl 或 Python 语言和 DB2 for Linux 开发基于 Web 的应用程序所需的步骤。
    2003年3月1日  
 
Linux 下结合 IBM DB2 进行 Apache 网站开发 -- PHP DB2 接口
本教程旨在引导您掌握使用 PHP、Perl 或 Python 语言和 DB2 for Linux 开发基于 Web 的应用程序所需的步骤。
    2003年3月1日  
 
Linux 下结合 IBM DB2 进行 Apache 网站开发 -- Perl DB2 接口
本教程旨在引导您掌握使用 PHP、Perl 或 Python 语言和 DB2 for Linux 开发基于 Web 的应用程序所需的步骤。
    2003年3月1日  
 
Linux 下结合 IBM DB2 进行 Apache 网站开发 -- 简介
本教程旨在引导您掌握使用 PHP、Perl 或 Python 语言和 DB2 for Linux 开发基于 Web 的应用程序所需的步骤。
    2003年3月1日  
 
Linux 下结合 IBM DB2 进行 Apache 网站开发 -- 安装
本教程旨在引导您掌握使用 PHP、Perl 或 Python 语言和 DB2 for Linux 开发基于 Web 的应用程序所需的步骤。
    2003年3月1日  
 
DB2 编程
本教程旨在引导您掌握使用 PHP、Perl 或 Python 语言和 DB2 for Linux 开发基于 Web 的应用程序所需的步骤。
    2003年3月1日  
 
敏捷思维: 架构设计中的方法学(13)
敏捷方法的兴起对设计提出了新的要求,其最核心的一点是针对无法在项目一开始就固化的需求进行演进型的设计。在项目一开始就进行细致、准确的架构设计变得越来越难,因此,架构设计在项目的进展中被不断的改进,这相应导致了编码、测试等活动的不稳定。但是,软件最终必须是以稳定的代码形式交付的。因此,架构设计必须要经历从不稳定到稳定的过程。而架构设计能够稳定的前提就是需求的稳定。
    2003年3月1日  
 
敏捷思维- 架构设计中的方法学(7)
我们已经讨论了敏捷架构设计的4种过程模式,在这一章中,我们对这四种过程模式做一个小结,并讨论4者间的关系以及体现在模式中的敏捷方法论特色。通过这一章的描述,大家能够对前面的内容有更进一步的了解。
    2003年3月1日  
 
GTK+中的插件
很多朋友都知道,在Linux操作系统中可以用C语言来编写代码,经过简单的编译,就可以轻松的开发出静态链接库或动态链接库。一般情况下我们使用动态链接库,必需在编译过程中加入相应的标识,使编译出来的应用程序在运行时自动加载动态链接库;而插件(plug-in)实际上就是对动态链接库的一种灵活运用,应用程序绕开了编译过程中的链接这一操作环节,通过编码直接调用动态库中的函数和资源。
    2003年3月1日  
 
简单GTK+自定义控件的创建
很多在WINDOWS下用DELPHI做开发的朋友都会做自定义控件,本文讲述在用LINUX下的GTK+做图形界面开发时如何轻松地做出自定义控件来。
    2003年3月1日  
 
Linux 用户技术 FAQ
如果您是 Linux 的新手(或只是稍有了解),那么在您学习的过程中一定会产生大量的问题和值得关注的事。尤其如果您以前使用的是 Microsoft Windows,这种情况更加明显。本文解决各种各样的问题,既有常见的也有很少被提及的,并按主题进行分组。本文的重点是要帮助 Windows 用户转向 Linux。但是,从其它操作系统转向 Linux 的用户也能从本文中找到不少有用的信息。
    2003年3月1日  
 
设计步骤
关于设计和创建商业站点 Web 页面的书籍、教程和课程有很多。本项目的目的是讨论如何将 DB2 与服务器端脚本语言一起使用。
    2003年3月1日  
 
Windows 到 Linux 之旅: 第 7 部分. 网络
IBM 电子商务架构师 Chris Walden 将通过他在 developerWorks 上发表的九篇系列文章来指导您如何在 Linux 环境中运用您的 Windows 操作技巧。本部分将探讨网络,这是 Linux 做得最好的方面之一。
    2003年3月1日  
 
Windows 到 Linux 之旅: 第 5 部分. Linux 日志
IBM 电子商务架构师 Chris Walden 将通过他在 developerWorks 上发表的九篇系列文章来指导您如何在 Linux 环境中运用您的 Windows 操作技巧。在本部分,我们追踪、处理和轮循日志,以增强系统安全,收集信息。
    2003年3月1日  
 
Windows 到 Linux 之旅: 系列文章概述
IBM 电子商务架构师 Chris Walden 将通过他在 developerWorks 上发表的九篇系列文章来指导您如何在 Linux 环境中运用您的 Windows 操作技巧。他无所不谈,从日志到网络,从命令行到帮助系统 —— 甚至包括如何通过可用的源代码来编译软件包。
    2003年3月1日  
 
GNOME 高级 UI 设计
GTK 编程从来没有如此简单过:IBM 的开发人员 Vladimir Silva 共享了他的技巧、他的热情和他为 SimpLIstic sKin 界面(或者说是 SLIK)修改的代码。
    2003年3月1日  
 
敏捷思维: 架构设计中的方法学(15) -- 进一步阅读
敏捷架构设计一文到目前已经全部结束,由于架构设计是一个很大的话题,要在一篇文章中完全把架构设计讲清楚是很难的。因此本文的最后一个章节中提供了一组书籍和文章,这些资料都和架构设计有关,本文的写作过程也从中获益良多,故而推荐给有兴趣的读者。
    2003年2月28日  
 
可爱的 Python: 创建声明性迷你语言
Python 的面向对象和透明自省功能使您可以轻松地创建用于编程任务的声明性迷你语言。在本专栏文章中,David 并未仔细研究如何使用 Python 来解释或翻译其它的专门语言(尽管可以做得到),而是研究如何将 Python 代码本身有效地限定在一组声明性元素中。他将向您说明开发人员如何能使用声明技术来简练清晰地陈述应用程序的要求,而让“幕后的”框架来完成繁重的工作。
    2003年2月27日  
 
敏捷思维: 架构设计中的方法学(14) -- 代码验证
要保证架构的稳定和成功,利用代码对架构进行验证是一种实用的手段。代码验证的核心是测试,特别是单元测试。而测试的基本操作思路是测试优先,它是敏捷方法中非常重要的一项实践,是重构和稳定核模式的重要保障。
    2003年2月25日  
 
大转变:利用 Kylix 3 从 Windows 迁移到 Linux
了解利用 Borland Kylix3 重新编译用于 Linux 的 Borland Delphi 7/IBM DB2 应用程序涉及了哪些内容
    2003年2月25日  
 
架构设计中的方法学(13) -- 稳定化
敏捷方法的兴起对设计提出了新的要求,其最核心的一点是针对无法在项目一开始就固化的需求进行演进型的设计。在项目一开始就进行细致、准确的架构设计变得越来越难,因此,架构设计在项目的进展中被不断的改进,这相应导致了编码、测试等活动的不稳定。但是,软件最终必须是以稳定的代码形式交付的。因此,架构设计必须要经历从不稳定到稳定的过程。而架构设计能够稳定的前提就是需求的稳定。
    2003年2月20日  
 
SashXB 把小型 RAD 给予 Linux
SashXB 用包装本机功能的对象来扩展了 JavaScript ― 并提供从头开始编写应用程序所需的所有工具。在本文中,SashXB 的开发者讲述了它的内部构造并演示了 SashXB 是如何简化应用程序的开发、下载和安装的。
    2003年2月18日  
 
用 Linux 打造路由器
本文介绍如何将一台电脑用免费软件打造成一台功能强大的多功能路由器。这样可以节省一大笔费用。
    2003年2月14日  
 
技巧:使用 head 和 tail 以块方式读取文本流
Jacek 在本技巧文章中介绍了 head 和 tail 命令,它们对于以块方式处理静态和动态文件中的数据非常有用。
    2003年2月11日  
 
使用 Stow 管理软件包
本文是关于 Stow 的,它是用于 Linux 的软件安装管理实用程序,它许多地方都优于“久经考验”的 Red Hat 和 Debian 软件包管理系统。通过使用 Stow,可以将应用程序打包成标准的 tar 文件,并按照逻辑安排应用程序二进制文件,以易于访问。
    2003年2月10日  
 
Knoppix 提供了一个可引导的、容量为一张光盘的 Linux
如果您曾经希望获得一个能够运行的便携式 Linux 安装,并且它可以在任何硬件上以相同的方式运行,那么请继续阅读本文。Knoppix 将一个专门的、非常有用的 Linux 分发版打包在了一张可引导的 CD-ROM 上。
    2003年2月10日  
 
应用GTK+编程
GTK+采用具有OO特色的C语言开发框架,这使它在开发GUI应用程序能和操作系统紧密结合,同时具有很大简洁性,其中的很多代码只要简单的复制和更改即可完成,只用一个C源代码文件就可以创建一个LINUX下的GUI程序。本文的代码运行环境是 Redhat7.2,GTK+ 版本是 gtk+ 2.1.2。
    2003年2月10日  
 
用C语言扩展Python的功能
Pyton和C分别有着各自的优缺点,用Python开发程序速度快,可靠性高,并且有许多现成模块可供使用,但执行速度相对较慢;C语言则正好相反,其执行速度快,但开发效率低。为了充分利用两种语言各自的优点,比较好的做法是用Python开发整个软件框架,而用C语言实现其关键模块。本文介绍如何利用C语言来扩展Python的功能,并辅以具体的实例讲述如何编写Python的扩展模块。
    2003年2月3日  
 
敏捷思维: 架构设计中的方法学(14)
要保证架构的稳定和成功,利用代码对架构进行验证是一种实用的手段。代码验证的核心是测试,特别是单元测试。而测试的基本操作思路是测试优先,它是敏捷方法中非常重要的一项实践,是重构和稳定核模式的重要保障。
    2003年2月1日  
 
敏捷思维: 架构设计中的方法学(15)
敏捷架构设计一文到目前已经全部结束,由于架构设计是一个很大的话题,要在一篇文章中完全把架构设计讲清楚是很难的。因此本文的最后一个章节中提供了一组书籍和文章,这些资料都和架构设计有关,本文的写作过程也从中获益良多,故而推荐给有兴趣的读者。
    2003年2月1日  
 
4Suite 进行 Python 和 XML 开发,第四部分:合成和更新
4Suite 是一个Python的用于 XML 处理的开放源码的、全面的库和工具箱,它实现了许多与 XML 相关的开放标准。本教程是介绍 4Suite 的系列教程的第四部分。向开发人员介绍了 W3C XML 规范 XPointer、XInclude 和 XML Base,以及独立规范 XUpdate,对于更新部分 XML 文档,除 XSLT 和 DOM 解析方法外,XUpdate 是另一种可供选择的方法。作者还详细介绍了如何通过他们的开放源码 Python 工具集 4Suite 来使用这些 XML 指向、合成和更新技术。
    2003年1月24日  
 
Linux 系统安全(二) ―― 日志
阐述 Linux 环境中的系统记帐和系统日志管理以及怎么用一些工具更加方便有效的管理日志信息。
    2003年1月24日  
 
Linux系统安全(三) ――系统安全工具介绍
本文介绍一些可以用于linux的安全工具,这些工具对于固化您的服务器将起到一定的作用,可以解决各方面的问题。我们的重点只是想让您了解这些工具,对安装配置以及使用不会给出很详细的介绍。
    2003年1月24日  
 
Linux系统安全(一) ―― 安装与设置
我们把主要精力放在用Linux搭建安全的服务器上面。我们通过系统设置和一些共享的安全软件固化我们的系统,使其能做到真正的安全。第一部分主要从安装和设置方面阐述 Linux 作为服务器应注意的方面。
    2003年1月21日  
 
通用线程:高级文件系统实现者指南,第 13 部分 - EVMS 详情
在高级文件系统实现者指南中,Daniel Robbins 向您展示了如何在 Linux 2.4 中使用最新的文件系统技术。在 AFIG 系列文章的这一结束篇中,Daniel 继续讨论用于 Linux 的企业卷管理系统(Enterprise Volume Management System,简称 EVMS)。他向您显示了如何使用 evmsn 来利用新硬盘,对它分区并在其上创建 LVM 卷。接着,他向您介绍了重要的 EVMS 概念,当您继续研究此功能强大的技术时,您会发现这些概念是必不可少的。
    2003年1月21日  
 
使用Kylix3开发Apache DSO
kylix是Linux下非常好的集成开发工具(个人认为是windows程序员转向Linux最适合的),前一段工作中使用Kylix3进行了Apache动态共享对象(DSO)的开发,在开发工作中遇到了许多的问题,经过摸索一一解决了,有些经验给大家共享,以免后来者走弯路。
    2003年1月17日  
 
Linux 环境进程间通信(三):消息队列
本系列文章中的前两部分,我们探讨管道及信号两种通信机制,本文将深入第三部分,介绍系统 V 消息队列及其相应 API。
    2003年1月14日  
 
改善 Linux 内核性能和可伸缩性
改善 Linux 性能的第一步是对其进行量化。但如何精确地对 Linux的性能或与它相当的系统性能进行量化呢?在本文中,IBM Linux 技术中心的成员描述了他们在去年底对Linux 2.4 和 2.5 内核所做的几个基准程序测试,就这些专家经验,以飨读者。
    2003年1月10日  
 
Linux 集群认证
很久以来,在 PC 上运行的 Linux 一直被公认为家庭网络的既便宜又安全的防火墙解决方案。
    2003年1月10日  
 
开发利器 Lazarus 入门
Lazarus是一个用于Free Pascal的快速应用开发(RAD)的面向对象的Pascal集成开发环境(IDE)。
    2003年1月10日  
 
linux系统安全(三): 系统安全工具介绍
我们把主要精力放在用Linux搭建安全的服务器上面。我们通过系统设置和一些共享的安全软件固化我们的系统,使其能做到真正的安全。第一部分主要从安装和设置方面阐述 Linux 作为服务器应注意的方面。
    2003年1月9日  
 
linux系统安全(一): 安装与设置
我们把主要精力放在用Linux搭建安全的服务器上面。我们通过系统设置和一些共享的安全软件固化我们的系统,使其能做到真正的安全。第一部分主要从安装和设置方面阐述 Linux 作为服务器应注意的方面。
    2003年1月9日  
 
linux系统安全(二): 日志
我们主要讲一下Linux环境中的系统记帐和系统日志管理以及怎么用一些工具更加方便有效的管理日志信息。
    2003年1月9日  
 
功能丰富的 Perl: 绑定的变量
Ted 以 CPAN 模块作为具体示例,通过其用法和实现,解释了绑定变量的基础知识。范围涵盖了标量、数组和散列变量。
    2003年1月9日  
 
技巧:用 cat 合并文件
在我们有关 GNU 文本实用程序的连续系列中,Jacek Artymiak 对 cat 做了一下研究 ― cat 这个命令是 UNIX 爱好者所热爱的,也是厌恶 UNIX 的人所憎恶的。
    2003年1月7日  
 
Linux环境进程间通信(二):信号(下)
在信号(上)中,讨论了linux信号种类、来源、如何安装一个信号以及对信号集的操作。本部分则首先讨论从信号的生命周期上认识信号,或者宏观上看似简单的信号机制(进程收到信号后,作相应的处理,看上去再简单不过了),在微观上究竟是如何实现的,也是在更深层次上理解信号。接下来还讨论了信号编程的一些注意事项,最后给出了信号编程的一些实例。
    2003年1月7日  
 
快速启动您的 Linux 应用: 安装和配置 SuSE Linux Enterprise Server(SLES)8
本文着重讨论了在工作站或便携式电脑上安装和配置 SuSE Linux Enterprise Server(SLES)8 的关键需求和步骤。通过我们建议的安装,您可以探究 Linux 并轻松地使用它。我有意将本文写得很简短。有关详细信息,请参考硬拷贝 SuSE Linux 文档或安装 CD 上的 SuSE Linux 文档。有关疑问、意见或帮助,请访问技术支持论坛。
    2003年1月3日  
 
快速启动 Linux 应用程序 2003: 创建基于 Struts 的 Web 应用程序
本文将指导您轻松地完成安装 DB2 8.1 和 IBM Java 运行时环境(Java Runtime Environment,JRE)的步骤。本文适用的对象是那些刚接触 Linux 或基于 UNIX 操作系统的开发人员。在论坛中与作者和其他读者分享您对本文提出的问题和观点。
    2003年1月3日  
 
Linux环境进程间通信(二):信号(上)
linux信号机制远远比想象的复杂,本文力争用最短的篇幅,对该机制做了深入细致的分析。信号应用实例将在信号(下)中给出。
    2003年1月3日  
 
为您的 Linux 应用开发加油提速 2004: 针对 Linux 开发新手的基本任务
要在 Linux 系统上安装大量加油提速(Speed-start)软件,您需要以 root 用户(也可能是其他用户)身份登录,打开终端或 shell 窗口,然后安装 CD-ROM。如果您对 Linux 不太熟悉,本文将全程指导您完成这些任务以及更多任务。
    2003年1月1日  
 
使用 Qt 制作 Skin
Skin(表皮) 是制作比较酷的软件界面的有利工具. 一个软件可以同时使用多种Skin 以取得不同的外观, 使同一个软件有截然不同的风格. 用户可以根据自己的喜好选择 不同的风格. 本节介绍使用 Qt 制作 Skin 的方法.
    2003年1月1日  
 
更佳编程之路: 第 6 章 开发 cfperl,从头开始
Perl 专家 Ted Zlatanov 开始着手一个新的编码项目来创建 cfperl ― 用 Perl 编写的 cfengine解释器。象任何开发良好的项目起步时应该做得那样,Ted 项目开始时研究了许可证选项和版本控制,建立完成工作的计划,并作了一些调查,以确保自己没有重复别人的工作。
    2003年1月1日  
 
超线程加快了 Linux 的速度
Intel Xeon 处理器引入了一种称为超线程(Hyper-Threading,HT)的新技术,对于操作系统来说,它使单个处理器可以象两个逻辑处理器那样运行。使用了该技术,由于每个逻辑处理器内可以并行执行线程,所以它允许物理处理器同时执行多个线程,这会产生显著的性能提高。我们着手对您能期望看到的提高幅度进行量化。
    2003年1月1日  
 
交换型网络环境嗅探原理及LINUX下的实现
传统的嗅探器在共享型以太网中可以捕获到所有数据包,但在交换型以太网中却无法工作。本文介绍利用 ARP 欺骗模式,改变其它主机 arp 高速缓存中的记录,使所有数据包都到达本机且由本机转发,从而达到捕获数据包的效果。
    2002年12月31日  
 
敏捷思维 - 架构设计中的方法学(12)
当架构模型进行迭代的过程中,必然伴随着对模型进行修改和改进。我们如何防止对模型的修改,又如何保证对模型进行正确的改进?
    2002年12月27日  
 
Python 自省指南
自省揭示了关于程序对象的有用信息。Python 是动态的面向对象的编程语言,提供了很棒的自省支持。本文展示了该语言的许多能力,从最基本形式的帮助到较为高级形式的调查。
    2002年12月26日  
 
Python 自省指南
自省揭示了关于程序对象的有用信息。Python 是动态的面向对象的编程语言,提供了很棒的自省支持。本文展示了该语言的许多能力,从最基本形式的帮助到较为高级形式的调查。
    2002年12月26日  
 
可爱的 Python: SimPy 简化了复杂模型
人们常常难以理解或预知实际系统的随机行为。有时可能精确论证系统的统计特性(诸如一般的、最差和最好的性能特性)。但在其它时候,只有实际运行(或模拟)系统时,具体设计的缺陷才会显现出来。本文中,David 讨论了 SimPy,它是一种 Python 包,允许您非常方便地创建离散事件系统的模型。
    2002年12月26日  
 
敏捷思维 - 精化和合并(11)
对于一个已经初步建立好的模型(分析模型或是设计模型)来说,对其进行精化和合并是必要的步骤。
    2002年12月17日  
 
技巧:了解 textutils
GNU 文本实用程序包(包括用于 Microsoft Windows 的 Cygwin 和用于 Mac OS X 的 Fink)是一个功能强大且灵活的工具集,它可以在 Linux 和所有其它 UNIX 及类 UNIX 的操作系统下进行自动化的文本处理。这一系列的介绍性技巧文章为 Linux 用户简要介绍了 GNU 文本处理工具 ― 如何使用它们、如何避免缺陷以及如何将它们组合在一起形成功能强大的定制的工具。
    2002年12月17日  
 
Linux环境进程间通信(一):管道及有名管道
管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。
    2002年12月13日  
 
深刻理解Linux进程间通信(IPC)
一个大型的应用系统,往往需要众多进程协作,进程(Linux进程概念见附1)间通信的重要性显而易见。本文阐述了Linux环境下的几种主要进程间通信手段,并针对每个通信手段关键技术环节给出详细实例。为达到阐明问题的目的,本文还对某些通信手段的内部实现机制进行了分析。
    2002年12月13日  
 
GTK+2.0 中的容器控件与布局技巧
学习图形界面编程,要过的第一关就是熟悉控件的使用,快速掌握控件的使用和布局技巧是初学者最为迫切的要求,本文向有意在LINUX下用GTK+2.0开发图形界面应用程序的初学者朋友们指出这一途径
    2002年12月10日  
 
交换型网络环境嗅探原理及LINUX下的实现
传统的嗅探器在共享型以太网中可以捕获到所有数据包,但在交换型以太网中却无法工作。本文介绍利用 ARP 欺骗模式,改变其它主机 arp 高速缓存中的记录,使所有数据包都到达本机且由本机转发,从而达到捕获数据包的效果。
    2002年12月9日  
 
强制的安全
IBM Developers 网站是专为软件开发商设计的,它有许多通向开发商工具、资源和程序的链接。
    2002年12月9日  
 
通用线程:高级文件系统实现者指南,第 12 部分
在这个由多篇文章组成的“高级文件系统实现者指南”专栏中,Daniel Robbins 向您展示了如何在 Linux 2.4 中使用最新的文件系统技术。在此期间,他与您一同分享有关对现实实现的宝贵建议、性能信息和一些重要的技术说明,以便您尽可能轻松愉快地体验新的文件系统。在本文中,Daniel 介绍了用于 Linux 的企业卷管理系统(Enterprise Volume Management System (EVMS))。他说明了 EVMS 是什么、为什么迫切需要它以及为什么它很可能改变在 Linux 系统上管理存储的方法。
    2002年12月5日  
 
如何远程安装Linux
本文介绍了在不需要光驱和软驱的情况下,如何通过PXE协议快速安装Linux的原理和步骤,这对于提高安装Linux的效率非常有帮助;同时,PXE协议也可以作为无盘linux技术,用于引导远程的Linux启动。
    2002年12月3日  
 
Python 自省指南
自省揭示了关于程序对象的有用信息。Python 是动态的面向对象的编程语言,提供了很棒的自省支持。本文展示了该语言的许多能力,从最基本形式的帮助到较为高级形式的调查。
    2002年12月1日  
 
netfilter: Linux 防火墙在内核中的实现
本文介绍 Linux 的防火墙技术 netfilter/iptables 在 Linux 内核中的具体实现。
    2002年12月1日  
 
服务器诊所: 服务器上的 RTF
办公室工作人员习惯交换用 Microsoft Word .DOC 格式编码的文档。丰富的开放源码工具使得自动化管理这些文档的内容成为可能。
    2002年12月1日  
 
用 WebSphere Studio Application Developer 4.0 进行小组开发 ― 第 3 部分:在 RedHat Linux 7 上安装 CVS 并将其配置为 SCM 资源库
本文,即关于在 IBM WebSphere Studio Application Developer 中进行小组开发的系列文章的第三篇,重点讲解如何在 RedHat Linux 7 上安装 CVS 并将其配置为 SCM 资源库。
    2002年11月28日  
 
Linux高性能集群 - 资源管理和系统管理
本文是Linux高性能集群系列文章的第五部分。这一部分首先介绍集群系统中的资源管理主要任务和系统管理主要任务,然后列举并比较了几种常用的资源管理软件和系统管理软件。
    2002年11月28日  
 
生物科学中的开放源码
目前,生物信息学和生物科学中开放源码的使用仍处于起步阶段。还有很长一段发展历程摆在我们面前。本文介绍了几个技术软件开发,明年它们会对生物信息学产生极大的影响。
    2002年11月26日  
 
用 PHP 实现的简单线性回归,第 2 部分
本系列文章的第 1 部分结尾处提到了简单线性回归(Simple Linear Regression)类中缺少的三个元素。在本文中,作者 Paul Meagher 用基于 PHP 的概率函数弥补了这些缺陷,演示了如何将输出方法集成到 SimpleLinearRegression 类中并创建了图形输出。他通过构建数据研究工具解决了这些问题,该工具旨在深层次地研究中小规模的数据集所包含的信息。(在第 1 部分中,作者演示了如何用 PHP 作为实现语言来开发和实现简单线性回归算法包的核心部分。)
    2002年11月26日  
 
Python 持久性管理
持久性就是指保持对象,甚至在多次执行同一程序之间也保持对象。通过本文,您会对 Python对象的各种持久性机制(从关系数据库到 Python 的 pickle以及其它机制)有一个总体认识。另外,还会让您更深一步地了解Python 的对象序列化能力。
    2002年11月26日  
 
揭开极端编程的神秘面纱:“XP 精华”重访,第 2 部分
在揭开极端编程的神秘面纱系列的这个月的文章中,Roy Miller 解释了作为 XP 团队的一个程序员意味着什么,以及六种程序员方法如何适合特定的环境。虽然 19 种 XP 方法都很重要,但对于一个开发软件的团队来说,程序员方法是最重要的。
    2002年11月26日  
 
服务器诊所: 通过使用 Perl/Tk 把 GUI 加入服务器编程
作为系统程序员,您习惯性地使用命令行界面。可能您已不了解用轻量级图形用户界面(graphical user interface,GUI)来包装现有的功能是多么地容易。新发布的 Perl/Tk 及时地提醒您高质量有时候伴随着易用性。
    2002年11月26日  
 
UnitedLinux 内幕
UnitedLinux 是由 SuSE、Turbolinux、Conectiva 和 SCO 这四家 Linux 供应商组成的联盟创建的,这四家供应商汇聚了各自的专长,联手推出了这个单一的、基于标准的核心 Linux 操作系统。由于主要将该操作系统设计为服务器操作系统,所以它将具有极佳的可靠性和稳定性;而且,由于构建在基于制定良好的标准上,所以它将有助于确保较高程度的软硬件兼容性,这一点一定会受到软件开发人员、集成商、硬件供应商以及客户的青睐。它实现其承诺了吗?随着本月该新 OS 投放市场,现在我们有机会更进一步地研究它。
    2002年11月26日  
 
Linux高性能集群 - 软件体系结构
本文是高性能集群系列文章的第四部分。本文首先给出了Beowulf集群的软件体系结构。然后分别讨论了集群和操作系统、文件系统的关系。最后讨论了集群应用并行化的问题。
    2002年11月20日  
 
Linux高性能集群 - 硬件和网络体系结构
本文是高性能集群系列文章的第三部分。在本文中,笔者以IBM eServer Cluster 1300为例介绍了Beowulf集群中硬件和网络体系结构和组成部分。
    2002年11月20日  
 
构建基于 LDAP 的地址簿
本教程向您演示了如何创建一个基于 LDAP 的后端来存储多个应用程序可以方便共享的联系人信息。同时,我们提供了 LDAP 基础知识的概述,并向您介绍了一个预先构建的联系人管理工具,该工具将帮助您着手使用这一开放技术。
    2002年11月19日  
 
垃圾邮件过滤技术
多年来不请自来的电子邮件问题日渐严重地困扰着人们,但现在有了解决这一问题的办法。在本文中,David 讨论并比较了几种主要的方法来自动消除不需要的电子邮件,同时,还介绍和测试了一些采用这些方法的流行的工具。
    2002年11月14日  
 
关注 Enhydra
本文介绍了Enhydra的概念和核心技术,试图从历史和纵横向的比较中多角度地认识Enhydra,以抛砖引玉,为Enhydra的发展尽绵薄之力。
    2002年11月10日  
 
Linux高性能计算集群 -- Beowulf集群
本文是高性能集群系列文章的第二部分。在本文中,笔者首先介绍了Beowulf集群的历史、分类,然后重点阐述了Beowulf集群的系统架构和各部分组件:硬件、网络、软件和应用。
    2002年11月9日  
 
Linux高性能计算集群 - 概述
本文是Linux高性能集群系列文章的第一部分。这一部分介绍了集群系统的基本知识,并解释了两类主要的集群:高可用集群和高性能集群。本系列文章的后面几部分将围绕Beowulf高性能集群展开。笔者先介绍Beowulf集群的体系结构,然后陆续介绍Beowulf集群的硬件、网络、软件和应用程序的部分的系统构成,最后集群系统管理软件。
    2002年11月9日  
 
开放源码卫星控制
如何控制用三种语言编写的、在四个开发平台上开发的并且部署到多个客户机环境的卫星控制系统呢?自然应该使用开放源码。当一个错误的动作会导致付出几百万美元的代价时,则要依靠团队合作精神、巧妙的设计和开放标准来防止项目 ― 如果不是卫星 ― 象卫星坠地烧毁一样失败。
    2002年11月8日  
 
敏捷思维- 架构设计中的方法学(10)
上篇我们用了大量的篇幅来观察了一个实际的例子,相信大家已经对分层有了一个比较具体的概念了。在这一篇中我们就对分层在实践中可能会遇到的问题做一个讨论。分层在架构设计中是一种非常常见的,但是又很不容易用好的技术。因此我们这里花了很大的气力来讨论它。
    2002年11月8日  
 
敏捷思维- 架构设计中的方法学(9)
要进行应用软件的设计,分层是非常重要的思想,掌握好分层的思想,设计出的软件是可以令人赏心悦目的。由于这一章的重要性和特殊性,本章的内容分为上下两节,并不采取模式描述语言的方式。
    2002年11月5日  
 
防范网络嗅探
最普遍的安全威胁来自内部,同时这些威胁通常都是致命的,其破坏性也远大于外部威胁。其中网络嗅探对于安全防护一般的网络来说,操作简单的同时威胁巨大,很多黑客也使用嗅探器进行网络入侵的渗透.. 网络嗅探器对信息安全的威胁来自其被动性和非干扰性,使得网络嗅探具有很强的隐蔽性,往往让网络信息泄密变得不容易被发现。
    2002年11月5日  
 
将中间件连接到 Apache 2.0
Apache 2.0 提供了许多 API 改进。Uche Ogbuji 将给出一个 Apache 2.0 过滤器模块示例,并将用示例说明新的 API。
    2002年11月5日  
 
快速启动 Linux 应用: 安装和使用 IBM WebSphere MQ for Linux
本文演示了如何安装和使用 IBM WebSphere MQ(前称是 MQSeries)。本文的第一部分帮助您从 IBM WebSphere MQ Open Beta Program 下载和安装 IBM WebSphere MQ。第二部分帮助您创建 MQ 队列,用 MQ 命令处理那些队列,以及用 MQ 样本程序处理 MQ 消息。有关的问题、评论或帮助信息,请访问我们的技术支持论坛。
    2002年11月1日  
 
敏捷思维: 架构设计中的方法学(12)
当架构模型进行迭代的过程中,必然伴随着对模型进行修改和改进。我们如何防止对模型的修改,又如何保证对模型进行正确的改进?
    2002年11月1日  
 
敏捷思维: 架构设计中的方法学(11)
对于一个已经初步建立好的模型(分析模型或是设计模型)来说,对其进行精化和合并是必要的步骤。
    2002年11月1日  
 
敏捷思维: 架构设计中的方法学(10)
上篇我们用了大量的篇幅来观察了一个实际的例子,相信大家已经对分层有了一个比较具体的概念了。在这一篇中我们就对分层在实践中可能会遇到的问题做一个讨论。分层在架构设计中是一种非常常见的,但是又很不容易用好的技术。因此我们这里花了很大的气力来讨论它。
    2002年11月1日  
 
《人月神话》―― 一次豆豆式的书评尝试
《人月神话 (The Mythical Man-Month)》是软件行业中的一部里程碑式的名著。作者Brooks曾任IBM System/360项目经理,被称为“S/360之父”。在书中,他详细讨论了包括工期规划、团队组成、文档、排错等软件项目进行全程中的方方面面。本文考察了该书成功的原因,对书中涉及的若干重点问题做出了进一步分析,并展望了该书可能为中国软件业带来的启示。
    2002年11月1日  
 
运行时:上下文切换, 第 2 部分
本月 Ed 研究了调度程序的两种行为。第一种行为是向调度程序的切换决策添加更多选项后的反应。第二种行为通过在多个线程中执行相同的工作负载来说明公平性。本文提供了源代码,因此您可以自己进行尝试。
    2002年10月29日  
 
为最佳性能而调优 Red Hat
这篇免费、dW 独有的教程将详细讲述如何把"标准的"Red Hat 系统配置成优化的稳定的系统,以满足个人的需要和偏爱。虽然这里的材料是基于 Red Hat 7.3,但是这里的许多技术和过程同样适用于其它主流 Linux 分发版。尽管标题是"性能调优",但是您将很快发现性能和安全性紧密相关。讨论的主题包括:安装问题,选择、更新和维护已安装的软件包,系统服务管理、硬盘驱动器优化和提高网络性能,编译定制的内核。
    2002年10月25日  
 
从 Solaris 向 Linux 移植应用程序的技术指导,版本 1.0
Solaris 和 Linux 都与 Unix 多少有些关系,那么它们应该有很多共同之处吧? 然而事实却并非如此 ― 它们之间的不同之处引出了很多“gotcha”问题。就让我们用这篇移植技术指导向您展示如何将 Solaris 应用程序移植到 Linux 平台上吧。
    2002年10月15日  
 
实验室中的开放源码
科学和工程实验室长期以来一直依靠专用产品进行日常数据分析工作。现在,许多实验室转而使用开放源码产品和开发语言,以获得传统产品无法向他们提供的特殊技术优势。
    2002年10月10日  
 
轻量级 Linux,第 1 部分
硬件过时只是因为它运行的软件过时:现代操作系统结合最新的应用程序就能使旧系统恢复生产力。本文针对如何在旧硬件或内存与存储器有限的现代硬件上构建有效的 Linux 系统,提供了最佳实践和循序渐进的指导。
    2002年10月10日  
 
服务器诊所: 用于交叉生成应用程序的 Xmingwin
有了 Xmingwin,就可以从 Linux 服务器生成 Windows 程序。本专栏文章提供了设置 Xmingwin 的方法,并概述了之所以这样做的最重要的几个理由。
    2002年10月10日  
 
利用 Linux 群集进行不间断认证
当某个组织添加应用程序和服务时,集中进行认证和密码服务可以提高安全性,并减少管理和开发人员的难题。但是,将所有服务合并到一台服务器会导致可靠性问题。高可用性对于企业认证服务尤为重要,因为在许多情况下,当认证停止工作时,整个企业将陷于停顿。本文描述了我们该如何使用开放源码软件创建可靠的、高度可用的认证服务器。
    2002年10月10日  
 
安全设置运行 Java 服务的 Linux
企业 Java 专家 Dennis Sosnoski 从 Java 服务器技术如何适合 Linux 来开始阐述他的观点,然后给出在 Linux 上安全地设置 Tomcat Java servlet 引擎的一点建议。
    2002年10月10日  
 
开发 LSB 认证的应用程序
Linux 标准库(Linux Standard Base)向确保 Linux 应用程序之间的二进制兼容性迈出了一大步,它应该大大减少在多平台上操作所需的测试和验证。Linux 标准库的主席 George Kraft 用五个简单的步骤为您演示如何构建经 LSB 认证的应用程序。
    2002年10月10日  
 
功能丰富的 Perl: 一行程序 101
那些将 Perl 用作编程语言的人经常忽视了:Perl 用作命令行操作的快速而又难看的脚本编制引擎时是很有用的。通过命令行,Perl 仅用一行就可以实现大多数其它语言需要数页代码才能完成的任务。跟着 Teodor,他会教给您一些有用的示例。
    2002年10月9日  
 
功能丰富的 Perl: 编写说英语的 Perl 程序
设计程序的用户界面可能很困难而且耗时。Teodor Zlatanov 讨论了如何使用 Parse::RecDescent 模块来用简单的英语创建用户界面文法。他还展示了向程序添加功能或从程序除去功能时,更改文法是如何的方便。另外还与标准的 CLI 解析器和 GUI 进行了比较,讨论了这种方法的优缺点。
    2002年10月9日  
 
功能丰富的 Perl:遗传算法,下一代
Ted 将带您进一步了解如何使用 Perl 遗传算法。他将继续研究他在其有关遗传算法的第一篇专栏文章中未完成的主题:使用列表,该列表寻找某一个体的 DNA 中的一组字典单词。
    2002年10月9日  
 
开始使用 freeVSD - 强化您的开发环境
Joe Brockmeier 在本文中将讨论 freeVSD,Linux 中的一种“虚拟服务器守护程序”,它允许多个虚拟服务器在同一个物理的机器上运行。每个虚拟服务器都有自己独立的 Web 托管环境。它通常用于托管工作,但您也可以将其部署为允许一台机器充当几个开发者的开发试验平台。
    2002年9月29日  
 
敏捷思维- 架构设计中的方法学(8)
从这一篇开始,我们将会进入另一个不同的主题,和前面所讨论的模式专注于组织、过程、方法不同,以后介绍的模式更偏重于设计。但是过程、方法的影子依然在我们的讨论中隐约可见。架构愿景是一个很简单的模式,在软件开发中所占的时间也很短。但是这并不意味着架构愿景不重要。相反,它会是设计过程不可或缺的一环。
    2002年9月27日  
 
系统调用跟我学(4)--进程管理相关的系统调用之三
这是本专栏中进程相关的系统调用的最后一篇,用2个实例演示了以往学习的内容。其一是Mini Shell,仿常用的Bash而做,但对其作了大大简化;其二是一个Daemon程序,可以使读者一窥服务器编程的端倪。
    2002年9月20日  
 
DIY:自己动手做一个迷你 Linux 系统
本文将带领大家构建一个迷你型的 Linux 系统。它占用的硬盘空间远小于 16M 字节,但是却包括了 XFree86 的 X Window 窗口系统。
    2002年9月18日  
 
用 4Suite 进行 Python 和 XML 开发,第三部分:4RDF
4Suite 是一个Python的用于 XML 处理的开放源码的、全面的库和工具箱,它实现了许多与 XML 相关的开放标准。本教程是介绍 4Suite 的系列教程的第三部分。研究了资源描述框架(Resource Description Framework )的细节,并带有如何与 Python 一起使用的各种 RDF 设施的实践示例。
    2002年9月17日  
 
说一门新外语,O'Caml (之二)
这是本系列中的第二篇文章。在上一篇文章中,可以说我们从高空鸟瞰了 O'Caml 程序设计语言中的一些显著特征。包括 O'Caml 的跨平台特性,它在程序语言家族的族谱中的位置,它的 geeky factor,以及它所提倡的 Functional 程序设计方式。在本篇文章中,我们将要靠近一些,更加仔细的看一看 O'Caml 中这个重要的程序设计方式,Functional 程序设计。
    2002年9月17日  
 
把 UNIX 应用程序移植到 Linux -- 提示和技巧
您知道 Linux 现在已是世界第二的服务器操作系统吗?今天,您的应用程序在 Linux 上运行吗?如果不是,那么本文将给您些提示和技巧,在您把应用程序移植到 Linux 的时候为您提供指导。本文依据的是软件工程师的经验,这些工程师来自独立软件供应商(Independent Software Vendors,ISV)和全世界的 IBM 实验室,他们参与了许多把应用程序移植到 Linux 的项目。
    2002年9月17日  
 
采访: 安腾传道者
别去管贬低者,David Mosberger — 最初将 GCC 移植到 IA-64 的开发人员以及 IA-64 上的 Linux 首席内核架构设计师 — 认为您应关注 Intel 的新 64 位芯片。
    2002年9月17日  
 
用 SpamAssassin 消灭垃圾邮件
偶尔收到不请自来的电子邮件可能只是有点麻烦,但我们现在所遭受的无处不在的垃圾邮件之灾极大地影响了众多用户对合法邮件的收取,并且许多人已完全愤怒了。我们要查找所有这些邮件是如何发出的 — 而且更重要的是,要对此做些什么。
    2002年9月17日  
 
通用线程:: 高级文件系统实现者指南,第 11 部分
Daniel Robbins 在“高级文件系统实现者指南”系列文章中向您展示了如何使用 Linux 2.4 内文件系统的最新技术。此外,他还将给您一些很有价值而且实用的实现建议,告诉您性能信息以及重要的技术说明以使您能尽可能愉快的使用新文件系统。在这篇文章中,Daniel 介绍了 XFS、ReiserFS 和 ext3 文件系统的最新状况,告诉您一些他在 Gentoo Linux 担任首席架构师的经历。而且,他还大致介绍了这几种文件系统在接下来的半年到一年内的发展方向。
    2002年9月16日  
 
如何实现自动登录Linux
开机自动登录linux,并自动运行X window应用程序,有其特殊的应用背景,如基于linux平台的监控系统,linux启动后不需要身份验证,而直接运行监控程序等等。本文以Redhat7.2为平台,结合linux启动过程,介绍了如何避免身份验证自动登录,并直接进入X window自动运行应用程序。
    2002年9月15日  
 
用 WebSphere Studio Application Developer 编写 piggybank 应用程序
本文告诉您如何创建、测试和调试简单的 piggybank 应用程序。文中的说明指导您如何使用 WebSphere Studio Application Developer 所提供的 Swing 功能一步步创建单机客户程序。
    2002年9月13日  
 
netfilter/iptables 简介
netfilter/iptables 是与最新的 2.4.x 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器,则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。Mugdha Vairagade 将介绍 netfilter/iptables 系统、它是如何工作的、它的优点、安装和配置以及如何使用它来配置 Linux 系统上的防火墙以过滤 IP 信息包。
    2002年9月11日  
 
敏捷思维- 架构设计中的方法学(7)
我们已经讨论了敏捷架构设计的4种过程模式,在这一章中,我们对这四种过程模式做一个小结,并讨论4者间的关系以及体现在模式中的敏捷方法论特色。通过这一章的描述,大家能够对前面的内容有更进一步的了解。
    2002年9月10日  
 
LINUX系统性能调谐
本文从磁盘,文件及文件系统,内存和编译等方面详细的讲述了如何对Linux系统性能进行调谐。不管是Linux服务器还是客户机或者用户单机,按照本文提供的调谐方法,均可不同程度地改善Linux系统的性能。
    2002年9月9日  
 
用 PHP 开发健壮的代码: 编写可重用函数,第 3 部分
在本系列文章(有关如何在实际情况下开发有效的 PHP 代码)的第 3 部分中,Amol Hatwar 讨论了如何构建最有效的功能型函数,使用这些函数不会牺牲太多性能或可管理性。作者重点阐述了如何编写可重用函数,并介绍了如何避免与该任务相关的一些最常见问题。
    2002年9月9日  
 
用 PHP 开发健壮的代码: 有效地使用变量,第 2 部分
“用 PHP 开发健壮的代码”是关于解决大中型应用程序中的实际问题的系列文章。在本文中,PHP 老手 Amol Hatwar 讨论了如何有效地使用变量。他还演示了如何通过使用 PHP 中可变的变量名来构造配置文件解析器,以便简化脚本配置。
    2002年9月9日  
 
快速启动您的 Linux 应用: 使用 DB2 和 DB2 控制中心
本文将指导您通过命令行处理器(Command Line Processor)设置和使用 DB2 7.2。您还将了解图形控制中心(Control Center,帮助您探究和控制数据库)和图形命令中心(Command Center,帮助您生成 SQL 查询)的使用。本文所讨论的其它主题包括 Java 运行时环境的设置、有用的 Linux 实用程序功能以及 bash 概要文件定制。
    2002年9月1日  
 
服务器诊所: 用于服务器的 PDF
对于几种类别的顶级质量的可显示输出来说,PDF 是公认的标准。尽管大多数程序员把它看作“桌面”技术 — 内容专家通过“另存为”操作选择的一种格式,但是,通过服务器端 PDF 创建的自动化,您可以使文档管理处理更有效。本月,Cameron 介绍用于 PDF 管理和编程的 ReportLab 库。
    2002年9月1日  
 
敏捷思维- 架构设计中的方法学(8)
从这一篇开始,我们将会进入另一个不同的主题,和前面所讨论的模式专注于组织、过程、方法不同,以后介绍的模式更偏重于设计。但是过程、方法的影子依然在我们的讨论中隐约可见。架构愿景是一个很简单的模式,在软件开发中所占的时间也很短。但是这并不意味着架构愿景不重要。相反,它会是设计过程不可或缺的一环。
    2002年9月1日  
 
A brief history of spam
Do you think spam was only just invented? No, it's been bothering people for years, and you can read all about it here.
    2002年9月1日  
 
将 OS/2 应用程序移植到 Linux(用 C 语言)
在转换到 Linux 之前注意一下,提早发现陷阱。LANDP 小组带领您了解 OS/2 和 Linux 之间的差别,以便您的移植工程才能更顺利地进行。
    2002年8月30日  
 
使用 Puffin 测试 Web 应用程序: Puffin 测试框架,第 1 部分
这个由四篇文章组成的系列的第一篇介绍了 Puffin 测试系统。Puffin 是一个用于测试 Web 应用程序的开放源代码的框架。使用 Puffin,您甚至可以为最复杂的 Web 应用程序构建动态驱动的回归测试。Puffin 是 100% 用 Python 写的,很容易扩展到甚至可以处理模糊的测试情况。
    2002年8月27日  
 
生活在 Emacs 中
这篇免费、dW 独有的教程将教您使用功能强大、流行的无模式文本编辑器 Emacs 的基础知识。为了让您很快熟悉这个优秀的编辑器,本教程先讲述基本概念和常用操作,然后在这基础上提高。
    2002年8月20日  
 
开发 Linux 命令行实用程序
本文将指导您学习如何编写即使对最终用户而言也足够简单的 Linux 命令行实用程序。本文以概述可靠的命令行最佳实践开始,并以详细地研究一个有效的选页工具结束,为您提供动手编写自己的实用程序所需要的背景知识。
    2002年8月16日  
 
结合 PHP 使用 HTML 表单
能较容易地对用户通过 HTML 表单提交的信息进行操作的能力一直是 PHP 的优势之一。事实上,PHP 版本 4.1 添加了几个访问该信息的新方法并有效地除去了以前版本中最常用的一个方法。本文研究了使用 HTML 表单上提交的信息的不同方法,并同时使用了 PHP 较早的版本和较新的版本。本文首先从研究单个值开始,然后构建可以一般性地访问任何可用的表单值的页面。
    2002年8月12日  
 
用 PHP 开发健壮的代码,第 1 部分
用 PHP 开发健壮的代码系列文章是关于解决大中型应用程序中的实际问题的。这一系列文章主要侧重于 PHP 4 中可用的新功能,重点介绍了大量使开发工作更容易的技巧和窍门。在这一系列文章中,您将发现许多要学习的示例和技术,还附带了大量样本代码。在这第一篇文章中,PHP 高手 Amol Hatwar 从更高的角度介绍了如何为中到大型 Web 应用程序设计和编写无错误、可维护的代码。
    2002年8月9日  
 
系统调用跟我学(3)--进程管理相关的系统调用之二
本文介绍了Linux下的进程的一些概念,并着重讲解了与Linux进程管理相关的重要系统调用wait,waitpid和exec函数族,辅助一些例程说明了它们的特点和使用方法。
    2002年8月9日  
 
掌握 Linux 调试技术
您可以用各种方法来监控运行着的用户空间程序:可以为其运行调试器并单步调试该程序,添加打印语句,或者添加工具来分析程序。本文描述了几种可以用来调试在 Linux 上运行的程序的方法。我们将回顾四种调试问题的情况,这些问题包括段错误,内存溢出和泄漏,还有挂起。
    2002年8月9日  
 
服务器诊所: 实用 Linux 安全性
安全性是一个庞大和具有挑战性的主题,但每个负责服务器端工作的人都应当知道基本步骤。Cameron 概括了一些使您的用户帐户清洁和安全的方法。
    2002年8月9日  
 
服务器诊所: 用并发来提高速度
人们普遍对并发 — 多处理 — 存有误解。本月的“服务器诊所”要介绍基本的并发概念,为了使您的业务在服务器机柜中安全地进行,您需要这些并发概念。
    2002年8月9日  
 
基于MySQL的数据库集群系统的实现
您的WebApp系统是否正在使用一个MySQL的数据库系统?您的客户是不是总是抱怨页面结果反馈的非常慢?您的MySQL系统的负载是不是总是维持在一个非常高的状态下?本文将为您提供一个分担MySQL系统的负载的方法,以及由此派生出来的一个MySQL-HA-Proxy的开发项目。使用本文提供的方法,您将以最小的源代码改动,获得MySQL系统的高效运转。
    2002年8月6日  
 
Jigdo: 下载 Debian 光盘的新方法
本文介绍 Jigdo。Jigdo 一词是 Jigsaw Download 缩写,意思是拼图式的下载工具。这是 Debian 推荐的下载 Debian GNU/Linux 光盘的工具。Jigdo 不仅是一个好用的下载大型文件(比如 CD 和 DVD 光盘映像文件)的实用工具,它也从一个侧面展示了 Debian GNU/Linux 的一些有别于其它 GNU/Linux Distribution 的特点。
    2002年8月2日  
 
使用 Sendmail 群集的高度可用/可伸缩 Sendmail
IBM eServer 开发者园地是关于 IBM eServer 硬件及相关软件开发人员的内容和参考资料的不断增长的集合。IBM eServer 开发者园地专注于提供 iSeries、pSeries、xSeries 和 zSeries 的开发人员内容,包括文章、样本代码、教程、如何做、工具、新闻、案例学习和论坛 — 实际上是开发人员想要和需要的有助于完成其工作的任何内容。
    2002年8月1日  
 
使用 Sendmail 群集的高度可用/可伸缩 Sendmail
IBM eServer 开发者园地是关于 IBM eServer 硬件及相关软件开发人员的内容和参考资料的不断增长的集合。IBM eServer 开发者园地专注于提供 iSeries、pSeries、xSeries 和 zSeries 的开发人员内容,包括文章、样本代码、教程、如何做、工具、新闻、案例学习和论坛 — 实际上是开发人员想要和需要的有助于完成其工作的任何内容。
    2002年8月1日  
 
Web 认证示例
IBM eServer 开发者园地是一个不断成长的 IBM eServer 硬件和相关软件开发人员的内容和资源宝库。IBM eServer 开发者园地专门为 iSeries、pSeries、xSeries 和 zSeries 开发人员提供内容,包括文章、样本代码、教程、how-to、工具、新闻、案例分析和论坛 — 真正为开发人员提供其所想和所需以帮助其完成工作。
    2002年8月1日  
 
Web 认证示例
IBM eServer 开发者园地是一个不断成长的 IBM eServer 硬件和相关软件开发人员的内容和资源宝库。IBM eServer 开发者园地专门为 iSeries、pSeries、xSeries 和 zSeries 开发人员提供内容,包括文章、样本代码、教程、how-to、工具、新闻、案例分析和论坛 — 真正为开发人员提供其所想和所需以帮助其完成工作。
    2002年8月1日  
 
使用 Sendmail 群集的高度可用/可伸缩 Sendmail
IBM eServer 开发者园地收集的适用于 IBM eServer 硬件和相关软件开发人员的内容和资源在不断增加,专注于 iSeries、pSeries、xSeries 和 zSeries 开发人员的内容,IBM eServer 开发者园地提供了文章、样本代码、教程、how-to、工具、新闻、案例学习、论坛 — 几乎包含开发人员希望或需要能帮助他们完成工作的所有东西。
    2002年8月1日  
 
使用 Sendmail 群集的高度可用/可伸缩 Sendmail
IBM eServer 开发者园地收集的适用于 IBM eServer 硬件和相关软件开发人员的内容和资源在不断增加,专注于 iSeries、pSeries、xSeries 和 zSeries 开发人员的内容,IBM eServer 开发者园地提供了文章、样本代码、教程、how-to、工具、新闻、案例学习、论坛 — 几乎包含开发人员希望或需要能帮助他们完成工作的所有东西。
    2002年8月1日  
 
使用 Sendmail 群集的高度可用/可伸缩 Sendmail
IBM eServer Developer Domain 是一个为使用 IBM eServer 硬件和相关软件的开发人员提供的内容和资源的不断扩大的集合。IBM eServer Developer Domain 致力于 iSeries、pSeries、xSeries 和 zSeries 开发人员内容,它提供了文章、样本代码、教程、how-to、工具、新闻、案例研究和论坛 — 实际上是协助开发人员完成他们工作而想要或需要的任何东西。
    2002年8月1日  
 
使用 Sendmail 群集的高度可用/可伸缩 Sendmail
IBM eServer Developer Domain 是一个为使用 IBM eServer 硬件和相关软件的开发人员提供的内容和资源的不断扩大的集合。IBM eServer Developer Domain 致力于 iSeries、pSeries、xSeries 和 zSeries 开发人员内容,它提供了文章、样本代码、教程、how-to、工具、新闻、案例研究和论坛 — 实际上是协助开发人员完成他们工作而想要或需要的任何东西。
    2002年8月1日  
 
使用 Sendmail 群集的高度可用/可伸缩 Sendmail
IBM eServer Developer Domain 是一个为使用 IBM eServer 硬件和相关软件的开发人员提供的内容和资源的不断扩大的集合。IBM eServer Developer Domain 致力于 iSeries、pSeries、xSeries 和 zSeries 开发人员内容,它提供了文章、样本代码、教程、how-to、工具、新闻、案例研究和论坛 — 实际上是协助开发人员完成他们工作而想要或需要的任何东西。
    2002年8月1日  
 
使用 Sendmail 群集的高度可用/可伸缩 Sendmail
IBM eServer Developer Domain 是一个为使用 IBM eServer 硬件和相关软件的开发人员提供的内容和资源的不断扩大的集合。IBM eServer Developer Domain 致力于 iSeries、pSeries、xSeries 和 zSeries 开发人员内容,它提供了文章、样本代码、教程、how-to、工具、新闻、案例研究和论坛 — 实际上是协助开发人员完成他们工作而想要或需要的任何东西。
    2002年8月1日  
 
Slapd startup script
IBM eServer Developer Domain is an ever-growing collection of content and resources for developers on IBM eServer hardware and related software. Dedicated to iSeries, pSeries, xSeries and zSeries developer content , IBM eServer Developer Domain offers articles, sample code, tutorials, how-tos, tools, news, case studies, discussion forums -- virtually anything developers want or need to help get their jobs done.
    2002年8月1日  
 
Slave configuration file
IBM eServer Developer Domain is an ever-growing collection of content and resources for developers on IBM eServer hardware and related software. Dedicated to iSeries, pSeries, xSeries and zSeries developer content , IBM eServer Developer Domain offers articles, sample code, tutorials, how-tos, tools, news, case studies, discussion forums -- virtually anything developers want or need to help get their jobs done.
    2002年8月1日  
 
Master configuration file
IBM eServer Developer Domain is an ever-growing collection of content and resources for developers on IBM eServer hardware and related software. Dedicated to iSeries, pSeries, xSeries and zSeries developer content , IBM eServer Developer Domain offers articles, sample code, tutorials, how-tos, tools, news, case studies, discussion forums -- virtually anything developers want or need to help get their jobs done.
    2002年8月1日  
 
Heartbeat client query program
IBM eServer Developer Domain is an ever-growing collection of content and resources for developers on IBM eServer hardware and related software. Dedicated to iSeries, pSeries, xSeries and zSeries developer content , IBM eServer Developer Domain offers articles, sample code, tutorials, how-tos, tools, news, case studies, discussion forums -- virtually anything developers want or need to help get their jobs done.
    2002年8月1日  
 
Slapd startup script
IBM eServer Developer Domain is an ever-growing collection of content and resources for developers on IBM eServer hardware and related software. Dedicated to iSeries, pSeries, xSeries and zSeries developer content , IBM eServer Developer Domain offers articles, sample code, tutorials, how-tos, tools, news, case studies, discussion forums -- virtually anything developers want or need to help get their jobs done.
    2002年8月1日  
 
Slave configuration file
IBM eServer Developer Domain is an ever-growing collection of content and resources for developers on IBM eServer hardware and related software. Dedicated to iSeries, pSeries, xSeries and zSeries developer content , IBM eServer Developer Domain offers articles, sample code, tutorials, how-tos, tools, news, case studies, discussion forums -- virtually anything developers want or need to help get their jobs done.
    2002年8月1日  
 
Master configuration file
IBM eServer Developer Domain is an ever-growing collection of content and resources for developers on IBM eServer hardware and related software. Dedicated to iSeries, pSeries, xSeries and zSeries developer content , IBM eServer Developer Domain offers articles, sample code, tutorials, how-tos, tools, news, case studies, discussion forums -- virtually anything developers want or need to help get their jobs done.
    2002年8月1日  
 
Heartbeat client query program
IBM eServer Developer Domain is an ever-growing collection of content and resources for developers on IBM eServer hardware and related software. Dedicated to iSeries, pSeries, xSeries and zSeries developer content , IBM eServer Developer Domain offers articles, sample code, tutorials, how-tos, tools, news, case studies, discussion forums -- virtually anything developers want or need to help get their jobs done.
    2002年8月1日  
 
UPnP协议编程实践(二)
本文是《UPnP编程实践》系列的第二篇,主要介绍UPnP的设备发现过程的协议实现。关于UPnP协议的框架性介绍,您可以参考《UPnP编程实践》系列的第一篇。UPnP协议的设备发现过程使用简单服务发现协议,此协议实现了在网络中发现网络服务,控制点定位网络上相关资源和设备在网络上声明其可用性的方法。
    2002年7月30日  
 
说一门新外语,O'Caml (之一)
本文介绍一个对大多数读者朋友来说,相信都相对比较新奇的编程语言,这就是 O'Caml。这是在 Perl 之外,又一门以骆驼为吉祥物的编程语言。不过,O'Caml 的骆驼可是很富有曼妙的诗意的啊。相信读者朋友们在经过了一番探索后,会明白这曼妙的诗意究竟是缘何而来。
    2002年7月26日  
 
用 libtiff 进行图形编程,第 2 部分
TIFF 是极为普遍但却很复杂的光栅图像格式。Libtiff 是 TIFF 规范的标准实现,它免费而且可以在许多操作系统上运行。本文将向您展示如何将 libtiff 用于绘制灰度和彩色图像。
    2002年7月26日  
 
创建 KParts 组件,第 1 部分
这篇免费、dW 独有的教程向开发人员展示了如何创建 KParts 组件。它介绍了只读部件和读写部件以及网络透明性等核心 KParts 概念。
    2002年7月16日  
 
敏捷思维- 架构设计中的方法学(6)
迭代是一种软件开发的生命周期模型,在设计中应用迭代设计,我们可以得到很多的好处。
    2002年7月12日  
 
供初学者使用的 wxHTML
本文假定您具有基本的 wxPython 知识。作者将为我们讲述如何使用 wxPython 构建一个具备基本浏览器功能的应用程序。
    2002年7月12日  
 
测试您国际化的 Eclipse 插件 — 如何测试用于国际市场的 Eclipse 插件
本文向您演示了如何验证您国际化的产品,使您对翻译测试期间可能遇到的常见问题类型有所准备。本文包括一个定义 Properties File Compare 视图的 Eclipse 插件,该插件可以帮助您的翻译测试人员更快地找到错误。
    2002年7月9日  
 
Linux 文件系统的桌面应用
本文中要介绍一个所谓的"Linux 文件系统的守护神",这是指一个能实时地观察 Linux 文件系统的变化情况的程序模块。能够实时的观察文件系统的变化情况,并做出及时的适当的反应,这对于应用 Linux 做桌面计算机系统来说,是十分的有趣,也是十分的重要的。本文还要介绍 Linux 文件系统的异步 I/O 的扩展。同样,这对于 Linux 系统的桌面应用也是关键的。
    2002年7月9日  
 
敏捷思维- 架构设计中的方法学(5)
XP非常强调简单的设计原则:能够用数组实现的功能决不用链表。在其它Agile方法中,简单的原则也被反复的强调。在这一章,我们就对简单性做一个全面的了解。
    2002年7月5日  
 
Linux/Unix下ODBC的安装、配置与编程
本文主要内容是介绍ODBC的简单原理,以及如何在Linux/Unix下进行ODBC的安装、配置与编程。
    2002年7月2日  
 
敏捷思维: 架构设计中的方法学(6)
迭代是一种软件开发的生命周期模型,在设计中应用迭代设计,我们可以得到很多的好处。
    2002年7月1日  
 
运行时: 上下文切换
这个月,Ed 将单独讨论与上下文切换有关的开销,并对其进行测量。请单击文章顶部或底部的讨论,在讨论论坛与作者和其他读者分享您对本文的看法。
    2002年7月1日  
 
服务器诊所: 轻量级 Web 技术
虽然可以找到许许多多关于 Web 编程的材料,但多数都是想“哗众取宠”,以给最终用户留下特殊的印象。与此同时,对于构造服务器友好的 Web 应用程序简单但有效的技术,人们却知之甚少。本月的“服务器诊所”就来讲解两个很有用的观念,它们对于任何服务器端语言都适用。请单击文章顶部或底部的讨论,在讨论论坛中与作者及其他读者交流关于本文的心得。
    2002年7月1日  
 
UPnP协议编程实践(二)
本文是《UPnP编程实践》系列的第二篇,主要介绍UPnP的设备发现过程的协议实现。关于UPnP协议的框架性介绍,您可以参考《UPnP编程实践》系列的第一篇。UPnP协议的设备发现过程使用简单服务发现协议,此协议实现了在网络中发现网络服务,控制点定位网络上相关资源和设备在网络上声明其可用性的方法。本文首先介绍协议的工作过程,包括协议的一般模型,以及与HTTP协议之间的关系,然后介绍HTTP协议的基本知识,主要介绍在简单服务发现协议中使用的一些协议请求和响应的消息格式。最后详细介绍协议的设备通知和设备(服务)查询机制,包括设备通知消息和设备查询协议的通讯过程,以及每个HTTP协议扩展字段的含义。
    2002年7月1日  
 
快速启动您的 Linux 应用: 安装 DB2 和 JRE
本文将指导您轻松地完成安装 DB2 和 IBM Java 运行时环境(JRE)的步骤。本文适用的对象是那些不熟悉 Linux 或基于 UNIX 操作系统的开发人员。通过单击本文顶部或底部的讨论,在论坛中与作者和其他读者分享您对本文提出的问题和观点。
    2002年7月1日  
 
C 和 C++ 的矩阵库
本文将介绍一些目前可在 Linux 环境中使用的开放源代码 C/C++ 矩阵库。在这里具体讨论的库有三个:Meschach 库为 C 代码编写的项目提供例程,用于矩阵和向量的运算;Cooperware Matrix(CwMtx)库可用于 C++ 代码编写;Blitz 库为 C++ 提供可用整数、浮点数、复数和规范的用户定义的类型的 n 维数组类。Andrew Blais 是 Gnosis,Inc. 的研究员和作家,他在 developerWorks 已投稿多次,从事神经网络方面的工作。
    2002年7月1日  
 
敏捷思维: 架构设计中的方法学(5)
XP非常强调简单的设计原则:能够用数组实现的功能决不用链表。在其它Agile方法中,简单的原则也被反复的强调。在这一章,我们就对简单性做一个全面的了解。
    2002年7月1日  
 
可爱的 Python: 基于生成器的状态机
Python 2.2 中引进的简单生成器可用于简化状态机以及模仿协同程序。David 在“可爱的 Python”专栏较早前的一个部分中介绍了一个状态机处理的抽象模式。从那时起,简单生成器的引进就为描述机器提供了一些更自然的范例。协同程序是一种“外来”流机制,广泛使用的语言几乎都不支持这种机制(甚至连非 Stackless Python 都不支持它)。然而,Python 的新生成器几乎完全支持协同程序,几乎不用模仿任何额外的步骤。在本文中,David 通过说明性代码样本解释了所有相关概念。[由于编排上的混乱,这个专栏的文章没有完全按顺序发表。本文原计划在 David 的专栏文章用 Python 生成器实现“轻便线程”之前发表。对于因此而带给您的任何困惑我们表示歉意。―编者]
    2002年7月1日  
 
Linux 2.4.x内核同步机制
本文将Linux内核中用于同步的几种机制集中起来分析,强调了它们之间在实现和使用上的不同。
    2002年6月28日  
 
Linux 2.4.x内核软中断机制
本文从Linux内核几种软中断机制相互关系和发展沿革入手,分析了这些机制的实现方法,给出了它们的基本用法。
    2002年6月21日  
 
UPnP协议编程实践(一)
本专题主要是介绍UPnP的工作原理和基本概念,包括SSDP、GENA和FXPP等基本协议,以及在Linux下如何使用Intel提供的UPnP开发包实现UPnP控制点和设备。本文是这个专题的第一篇,主要介绍UPnP的工作原理和基本概念。
    2002年6月18日  
 
用"RAID 0.0999" 写保护 Linux 硬盘分区
本文针对的是 Linux Kernel 2.4.xx 版本。在 Linux Kernel 2.5.xx 版本中,Block 设备一块有较大的改动,所以不在本文的考虑范围之内。本文首先介绍Linux Kernel 中软件 RAID 技术的实现。在此基础之上,本文进一步介绍作者的一个"玩具"项目,给 Linux 的硬盘分区加上写保护。那么,在硬盘分区被加上写保护以后,如果系统需要往硬盘分区上写数据怎么办呢?数据将被写在受到保护的硬盘分区的外面的一层保护膜上面。每次系统重新启动以后,这层保护膜都会被重新擦除干净。本文把这种利用一层保护膜给硬盘分区加上写保护功能的技术称之为 RAID 0.0999,因为它是在 RAID 0 的基础上做了稍许改动之后实现的。
    2002年6月1日  
 
开放源码项目: 国际化 Eclipse 插件
本文是为编写进入国际市场的 Eclipse 插件而准备的路线图。首先,我们将简短回顾国际化的动机和技术问题,然后逐步说明国际化插件的步骤。最后,我们将说明如何将这些步骤应用到 Eclipse Platform 本身的国际化过程中。
    2002年6月1日  
 
Ext2 文件系统的硬盘布局
本文主要讲述 Linux 上比较流行的 ext2 文件系统在硬盘分区上的详细布局情况。Ext2 文件系统加上日志支持的下一个版本是 ext3 文件系统,它和 ext2 文件系统在硬盘布局上是一样的,其差别仅仅是 ext3 文件系统在硬盘上多出了一个特殊的 inode(可以理解为一个特殊文件),用来记录文件系统的日志,也即所谓的 journal。由于本文并不讨论日志文件,所以本文的内容对于 ext2 和 ext3 都是适用的。
    2002年6月1日  
 
巧用AWK处理二进制数据文件
本文主要是介绍如何将AWK和其他Unix下的文本处理工具组合起来,使得一个只能处理文本文件的工具,同样可以处理二进制数据文件中的数据。
    2002年6月1日  
 
UPnP协议编程实践(一)
本专题主要是介绍UPnP的工作原理和基本概念,包括SSDP、GENA和FXPP等基本协议,以及在Linux下如何使用Intel提供的UPnP开发包实现UPnP控制点和设备。本文是这个专题的第一篇,主要介绍UPnP的工作原理和基本概念。
    2002年6月1日  
 
服务器诊所: 应用程序部署
在典型的编程中,几乎失去平衡的方面之一是对最终用户体验结果的忽视。我们都花很多精力去编写优秀而有用的程序;但是,把这些程序交付到用户手中这件事却是我们开发者做得最糟糕的标志性事情之一。在这个月中,Cameron 将讲解解决这个问题的技术性办法。
    2002年6月1日  
 
可爱的 Python: 用 Python 生成器实现“轻便线程”
在“可爱的 Python”的前面一部分中,David 介绍了一种用生成器和简单的调度程序模拟完整协同程序的方法。我们也许可以用直观的方式来扩展这种调度程序,使其允许对多进程使用极为轻量级的线程。与 Stackless Python 微线程非常相似,伪协同程序“轻便线程”几乎不需要 OS(甚至用户区)线程的上下文切换和内存开销。David 在这里介绍了轻便线程,一种巧妙的解决方案,它用来解决使用普通解决方案处理将涉及大量协同进程的问题。
    2002年6月1日  
 
系统调用跟我学(2)--进程管理相关的系统调用之一
本文介绍了Linux下的进程概念,并着重讲解了与Linux进程管理相关的4个重要系统调用getpid,fork,exit和_exit,辅助一些例程说明了它们的特点和使用方法。
    2002年5月31日  
 
Unix主机安全漏洞分析及漏洞扫描器的设计与实现
主机漏洞扫描技术是一门较新兴的技术,它从另一个角度来解决网络安全上的问题。具体来讲,防火墙技术是被动防御、入侵检测技术是被动监测,而主机漏洞扫描技术则是自身主动进行有关安全方面的检测。因此,从网络安全立体纵深、多层次防御的角度出发,主动进行检测安全漏洞越来越受到人们的重视。
    2002年5月28日  
 
Linux服务器集群系统(四)
本文主要讲述了LVS集群的IP负载均衡软件IPVS在内核中实现的各种连接调度算法。针对请求的服务时间变化很大,给出一个动态反馈负载均衡算法,它结合内核中的加权连接调度算法,根据动态反馈回来的负载信息来调整服务器的权值,来进一步避免服务器间的负载不平衡。
    2002年5月20日  
 
敏捷思维- 架构设计中的方法学(4)
团队设计是敏捷方法论中很重要的一项实践。我们这里说的团队,指的并不是复数的人。一群人就是一群人,并没有办法构成团队。要想成为团队,有很多的工作要做。
    2002年5月17日  
 
Linux下防范缓冲区溢出攻击的系统安全策略
缓冲区溢出攻击是目前黑客最常用的攻击手段之一,为了应对不断涌现的缓冲区溢出攻击,我们研究了在Linux系统下防范缓冲区溢出的方法,通过研究,总结了在Linux平台下防范缓冲区溢出攻击的安全策略,这些安全策略可以应用于一般企业内部服务器,包括web服务器、mail服务器、samba服务器、ftp服务器以及proxy服务器等。在实际使用中,我们发现通过这些安全策略的配置能够对缓冲区溢出攻击起到很好的防范措施。
    2002年5月10日  
 
操作系统理论的探索 (之三)
本文将进一步阐述《操作系统的过去、现在和未来》中有关"规则"的概念,并为系列中的《系统模型》和《操作系统参数化》提供讨论的基础。 在上篇中主要深入分析两个概念:量化与规则,讨论两者的定义、特性与关系,为后续文章奠定概念基础。
    2002年5月10日  
 
可爱的 Python: 更新您的 Python 读物列表,第 3 部分
自 David 的最近书籍综述发表在“可爱的 Python”专栏以来,又出版了许多关于 Python 的有趣书籍。本文将提供最近的 Python 书籍(或在上次综述中遗漏的书籍)的新比较评论。
    2002年5月9日  
 
可爱的 Python: 使用 Spark 模块解析
Spark 是一种用 Python 编写的强大的、通用的解析器/编译器框架。在某些方面,Spark 所提供的比 SimpleParse 或其它 Python 解析器提供的都要多。然而,因为它完全是用 Python 编写的,所以速度也会比较慢。David 在本文中讨论了 Spark 模块,给出了一些代码样本,解释了它的用途,并对其应用领域提供了一些建议。
    2002年5月9日  
 
可爱的 Python: 用 Psyco 让 Python 运行得像 C 一样快
Python 的设计在很多方面都类似于 Java 的设计。两者都利用了解释专门的伪编译字节码的虚拟机。JVM 比 Python 更高级的一个方面在于优化了字节码的执行。Psyco,一种 Python 专用编译器,帮助平衡了这一竞争。Psyco 现在是个外部模块,但是在将来的某一天它可能会包括到 Python 本身中去。只需极少量的额外编程,通常就可以使用 Psyco 将 Python 代码的速度提高好几个数量级。在本文中,David Mertz 研究了 Psyco 是什么,并在一些应用程序中对它进行了测试。
    2002年5月9日  
 
快速启动您的 Linux 应用: 针对 Linux 开发新手的基本任务
要在 Linux 系统上安装大量的快速启动软件,您将需要以 root 用户(或者可能是另一个用户)身份进行登录,打开终端或 shell 窗口并挂装 CD-ROM。如果您还是一位 Linux 新手,本文将指导您完成这些任务及其它更多工作。
    2002年5月1日  
 
供初学者使用的 wxHTML
本文假定您具有基本的 wxPython 知识。作者将为我们讲述如何使用 wxPython 构建一个独立的浏览器应用程序,同时保证这种架构足够简单从而可以方便地将浏览器功能移植到其他应用程序中去。
    2002年5月1日  
 
服务器诊所: 一本 Linux 开发人员的必备书籍
为管理好您的服务器和程序,所能做的最适宜的事是为自己买一本 Thomas A. Limoncelli 和 Christine Hogan 合著的书籍 ― The Practice of System and Network Administration。尽管这本新书是针对管理员的,但对于开发人员,书中也充满了有价值的课程。虽然在近 800 页中仅有一处提到 Linux(还是旁敲侧击地提到),但是它所阐述的原则将有助于您更好地理解自己的日常工作。请通过单击文章顶部或底部的“讨论”,在论坛中与作者和其他读者分享您的想法。
    2002年5月1日  
 
集群的可扩展性及其分布式体系结构(6)
本节主要介绍网络负载均衡的几类基本的算法,以及在这些算法基础上所构建的复杂的网载均衡体系。这些负载均衡体系都针对了实际应用中的某些特殊需要进行了优化处理,有着各自的适用面。
    2002年4月29日  
 
数据文件的归并算法在大型机中的应用
本文讲述了在大型机上采用经典算法对数据文件进行高效的归并的方法,对于相关从业者有极好的借鉴意义。
    2002年4月29日  
 
敏捷思维- 架构设计中的方法学(3)
评判软件成功的标准有很多,对于敏捷方法论来说,成功的标准首先在于交付可用的软件。为了保证软件的可用性,最重要的就是做好需求。做好需求的方法有很多,但这并不是我们讨论的主题。对于我们要开始的架构设计的工作来说,从需求出发来设计架构,这就是保证软件可用性的一个基本的保证。
    2002年4月26日  
 
通用线程:OpenSSH 密钥管理,第 3 部分
在这一系列的第三篇文章中,Daniel Robbins 向您显示了如何利用 OpenSSH 代理程序连接转发来增强安全性。他还分享 keychain shell 脚本的近期改进。
    2002年4月26日  
 
集群的可扩展性及其分布式体系结构(5)
在上一章,我们初步介绍了网络负载均衡的一点基本概念。并在负载均衡概念的基础上,对LVS集群系统的实现模式有了一个初步的了解,介绍了网络负载均衡的层次化结构描述。在本文章中,我们将从分布式作业调度的角度进行负载平衡特别是网络负载平衡的分析,研究在集群环境下负载均衡的实现手段、均衡算法。
    2002年4月18日  
 
敏捷思维- 架构设计中的方法学(2)
通过上一章的介绍,我们对敏捷和方法有了一个大致的了解,从这一章起,我们开始对软件开发过程中架构设计的研究。记住一点,我们并不是为了架构设计而研究架构设计,我们的目的在于敏捷方法学的应用。
    2002年4月12日  
 
Linux服务器集群系统(三)
本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集群中实现的三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR)的工作原理,以及它们的优缺点。
    2002年4月10日  
 
Linux服务器集群系统(一)
本文介绍了Linux服务器集群系统――LVS(Linux Virtual Server)项目的产生背景和目标,并描述了LVS服务器集群框架及目前提供的软件,列举LVS集群系统的特点和一些实际应用,最后,本文谈论了LVS项目的开发进展和开发感触。
    2002年4月10日  
 
Linux服务器集群系统(二)
本文主要介绍了LVS集群的体系结构。先给出LVS集群的通用体系结构,并讨论了其的设计原则和相应的特点;最后将LVS集群应用于建立可伸缩的Web、Media、Cache和Mail等网络服务。
    2002年4月10日  
 
通用线程: 高级文件系统实现者指南:第 10 部分
随着 Linux 发行版 2.4 的出现,带来了许多新的文件系统的可能性,包括 Reiserfs、XFS、GFS 等等。这些文件系统听上去很酷,但它们究竟能做什么、擅长哪些方面,以及您究竟如何在 Linux 生产环境中安全地使用它们?Daniel Robbins 通过向您展现如何在 Linux 2.4 下设置这些新的高级文件系统来解答这些问题。在这一部分中,Daniel 向您展现了如何在您的系统上安装 XFS 并使其运行,他也探讨了 XFS 的一些更高级特性。
    2002年4月1日  
 
快速启动您的 Linux 应用: 测试 WebSphere Application Server
本文向您演示了如何通过调用 Servlet Snoop servlet 和测试 Enterprise Java Bean 来验证 WebSphere Application Server 的配置和操作是否正确。
    2002年4月1日  
 
技巧: 双引导 Linux
有可以使用的多个 Linux 安装允许您方便地测试同一个程序的不同库,观察您的程序如何与其它程序交互,或者只是到处调节一下参数看看会发生什么。这对开发和测试 ― 以及客户支持迟早有用。假定您没有许多机器吗?别担心 ― 在单台机器上安装多个 Linux 实例是件容易的事,因为您将很快从这篇技巧中发现这一点,这篇技巧文章是由 IBM 实习生 Chuks Onwuneme 和 Farhan Khawaja 编写的。
    2002年4月1日  
 
将 MFC 应用程序移植到 Linux
将 Windows 应用程序移植到 Linux 不必涉及再培训的痛苦经历。Markus Neifer 演示了如何使用 wxWindows 移植 MFC,指导读者使用 wxWindows 这一开放源码工具箱,并循序渐进地向读者介绍了一个完整的移植示例。
    2002年4月1日  
 
覆盖 GNU C 库 ― 轻而易举
一种调试 glibc 函数的好方法是用您自己的版本覆盖所关注的函数。在没有root 许可权和不必重新编译 libc 源代码的情况下就可以完成这个任务。想象一下编写您自己的 open() 版本该有多激动啊!
    2002年4月1日  
 
创建本机、跨平台 GUI 应用程序
Java 语言在服务器端和 applet 领域已经大行其道,但是对于最终用户应用程序,通常它不是主角。其实不一定会是这种情况。使用 Linux、用于 Java 的 GNU 编译器(GNU Compiler for Java)和标准窗口构件工具箱(Standard Widget Toolkit),您可以创建用 Java 语言编写的快速、本机 GUI 应用程序。(Windows 版本的也不远了。)经验丰富的 Java 开发人员 Kirk Vogen 说明了如何做到这一步。通过单击本文顶部或底部的讨论在论坛中将您对本文的想法与作者和其他读者一起分享。
    2002年4月1日  
 
服务器诊所: Expect 超出预期
Cameron Laird 用一篇对受欢迎的 Expect 工具的概述开启了他新的月度专栏,Expect 是一种功能大大超出大多数程序员和管理员认识的语言。Expect 非常适合保持服务器正常运转所需的通用工作,实际上,它可以作为一种(几乎)通用的编程语言。通过单击本文顶部或底部的讨论在论坛中将您对本文的想法与作者和其他读者一起分享。
    2002年4月1日  
 
敏捷思维- 架构设计中的方法学(1)
方法论对软件开发而言意味着什么?我们如何看待软件开发中的方法论?方法论能够成为软件开发的救命稻草吗?在读过此文后,这些疑惑就会得到解答。
    2002年3月29日  
 
操作系统理论的探索 (之二)
从三个角度分析操作系统发展的轨迹,预测未来智能化操作系统的发展过程。然后提出支撑结构的概念,以归纳现有操作系统模型,分析现有模型的共同点和未来模型的突破口,并进一步描述实现智能化操作系统前所需完成的任务。
    2002年3月22日  
 
使用 Mosix 的 Linux 集群
这篇免费、dW 独有的集群教程将非常细致地向您介绍可用于 Linux 的集群技术,还会逐步指导您完成使用 MOSIX 建立自己的 Linux 群集的过程。集群技术允许两个或多个 Linux 系统合并它们的计算资源,这样它们就可以协同地而不是孤立地工作。 如果您有兴趣学习有关集群的更多知识,那么本教程很适合您。即使您只是想熟悉一下 Linux 集群技术而并非真的想自己建立群集,您也可能会发现本教程是非常有益的。但是,如果希望开始使用集群技术,那么本教程将为您提供一种确实简便和不费力的方法。那么,休息一会儿,点击鼠标和尽情享受吧!
    2002年3月19日  
 
操作系统理论的探索 (之一)
操作系统的定义是什么,它是否引起过你的注意,在此,将以全新的角度来分析这个古老而简单的定义,为你展示一个新的思维空间。通过引入操作协议的概念来分析操作系统的定义,并进一步按用户角度分析操作系统的需求,推导新的操作系统含义。作为整个系列的第一篇,本文从简单的操作系统定义入手进行讨论,所有的观点都是一家之言,希望能激发大家对操作系统理论的兴趣。
    2002年3月5日  
 
Debian的软件包管家:dselect用法小结
dselect是debian发布中重要的软件包管理工具,功能非常强大,也有些复杂,初看起来可能不太容易掌握。其实,dselect的工作方式非常自然,象一个好的老师一样循循善诱,你只要按照dselect的提示,一步一步的走下去,就把软件包安装好了。好了,我们看看,dselect是如何指导我们轻松愉快的安装debian软件包的。
    2002年3月5日  
 
集群的可扩展性及其分布式体系结构(4)
在之前的三篇文章中,我们介绍了集群的分布式体系结构,各大要素以及考量、设计集群的一些要点。其实仅有这些理论基础知识还远远不够。集群技术的任何一点都足以写出几本书来。重要的是,通过全面的介绍,我们能够为接下来的案例讨论打好基础。本文将主要介绍基于Linux的集群技术�D�DIPVS(based IP Virtual Server)也叫做LVS(Linux Virtual Server)。通过对LVS的具体分析,了解LVS在体系结构设计,技术实现细节和应用中可能遇到的一些问题的详细分析讨论,逐步掌握在Linux下实现集群系统的基本知识。
    2002年3月2日  
 
敏捷思维: 架构设计中的方法学(2)
通过上一章的介绍,我们对敏捷和方法有了一个大致的了解,从这一章起,我们开始对软件开发过程中架构设计的研究。记住一点,我们并不是为了架构设计而研究架构设计,我们的目的在于敏捷方法学的应用。
    2002年3月1日  
 
系统调用跟我学(1)
本文是Linux系统调用专栏系列文章的第一篇,对Linux系统调用的定义、基本原理、使用方法和注意事项大概作了一个介绍,以便读者对Linux系统调用建立一个大致的印象。
    2002年3月1日  
 
Linux系统调用列表
本文列出了大部分常见的Linux系统调用,并附有简要中文说明。
    2002年3月1日  
 
敏捷思维: 架构设计中的方法学(1)
方法论对软件开发而言意味着什么?我们如何看待软件开发中的方法论?方法论能够成为软件开发的救命稻草吗?在读过此文后,这些疑惑就会得到解答。
    2002年3月1日  
 
敏捷思维: 架构设计中的方法学(3)
我们说,和重型方法偏重于计划、过程和中间产物不同,敏捷方法更加看重人和沟通。人和沟通永远是第一位的,而计划、过程和中间产物,那只是保证沟通、实现目标的手段。这并不是说计划、过程、中间产物不重要,只是不能够本末倒置注:我们把中间产物定义为为了实现跨边界的沟通而制定的文档、模型、代码。例如设计文档、数据模型等。参考RUP的Artifact。
    2002年3月1日  
 
嵌入式设备上的 Linux 系统开发
如果您刚接触嵌入式开发,那么大量可用的引导装载程序(bootloader)、规模缩小的分发版(distribution)、文件系统和 GUI 看起来可能太多了。但是这些丰富的选项实际上是一种恩赐,允许您调整开发或用户环境以完全符合您的需要。对 Linux 嵌入式开发的概述将帮助您理解所有这些选项。
    2002年3月1日  
 
敏捷思维: 架构设计中的方法学(4)
团队设计是敏捷方法论中很重要的一项实践。我们这里说的团队,指的并不是复数的人。一群人就是一群人,并没有办法构成团队。要想成为团队,有很多的工作要做。
    2002年3月1日  
 
用 libtiff 进行图形编程
TIFF 是一种极其常见但又相当复杂的光栅图像格式。Libtiff 是一种 TIFF 规范的标准 ANSI C 实现,它是免费的并且可以在许多操作系统上工作。本文讨论了 TIFF 的一些缺陷并指导您使用 libtiff 库。本文还演示了如何将 libtiff 用于绘制黑白图像的示例。
    2002年3月1日  
 
用 libtiff 进行图形编程
TIFF 是一种极其常见但又相当复杂的光栅图像格式。Libtiff 是一种 TIFF 规范的标准 ANSI C 实现,它是免费的并且可以在许多操作系统上工作。本文讨论了 TIFF 的一些缺陷并指导您使用 libtiff 库。本文还演示了如何将 libtiff 用于绘制黑白图像的示例。
    2002年3月1日  
 
使用 MakeMaker 构建 Perl 项目
如果已经使用了一段时间 UNIX 或 Linux,可能编写过一些 Perl 程序来自动完成简单任务。这些程序的每一个都完成某些基本的和简单的事情,用手工完成这些事情可能需要 10 到 20 分钟。在本文中,Sean 将向您显示如何将这样一个 Perl 程序转换成更健壮的编程项目,从而更适合广泛分发到许多完全不同的平台上。
    2002年2月26日  
 
更佳编程之路: 第二章
developerWorks 上的这个系列文章包含使用 Perl 进行更佳编程的完整指南。在这第二部分中,Teodor 仔细研究了代码中的注释。对于软件团队的长期目标来说,程序代码中的注释可能与实际代码本身一样重要。不幸的是,它们经常也是最容易被忽视的。通过技巧、讲解、示例和轶事,Teodor 从头到尾深入讨论了对程序语言进行注释的迫切本质。
    2002年2月26日  
 
Linux 上使用 Sendmail 群集的高可用/可伸缩的 Sendmail
运行 Sendmail 的服务器群集能够在有竞争力的价格上提供高性能和高可用性。对于经验丰富的系统管理员,这一贯是常用的做法。本文描述了我们的研究,量化和描述实现高可用/可伸缩 Sendmail 的方法。
    2002年2月16日  
 
用 KParts 编码
本文讨论 KParts — 一种在 KDE(K 桌面环境(K Desktop Environment))中建立的图形组件的体系结构。KParts 通过将图形组件嵌入应用程序的窗口使需要同一功能的应用程序共享一个组件。 本文将 KParts 与其它组件模型(如 CORBA)进行比较,并描述了 KParts 中使用的主要概念,包括操作、插件、部件管理器和 GUI 合并。
    2002年2月9日  
 
Webmin: Unix上的GUI管理工具(2)
本文是对 Webmin介绍的第二部分,着重探讨 Webmin的技术内幕和如何编写 Webmin模块。文中首先介绍剖析了 Webmin内部结构,然后在 Webmin发行包基础上了裁减出了一个 Webmin的核心,最后介绍如何编写一个 Webmin模块。
    2002年2月1日  
 
Webmin: Unix上的GUI管理工具(1)
对于刚刚接触Unix的系统管理员来说,正确高效地完成各种关键的系统配置简直是一件不可能的任务。即使是一个很有经验的Unix的管理员,也常常会为某些复杂的配置文件的格式而苦恼。因此拥有一个Unix上的GUI管理工具一直是广大Unix爱好者的美好愿望。这里作者将介绍一个基于Web的Unix管理工具Webmin。对Webmin的介绍分为两个部分:第一部分着眼于Webmin的主要功能和使用,第二部分探讨Webmin的技术内幕并介绍如何编写一个Webmin的管理模块。本文是对Webmin介绍的第一部分。
    2002年2月1日  
 
运行时: 管理进程和线程
在Ed 的前一篇专栏文章中,他关注于单一系统中的套接字编程及其性能。在以后的专栏文章中,他将讨论一些他还未完成的话题,但这个月他的主题是 Linux 和 Windows 系统中线程和进程的管理。他将讨论进程和线程之间的区别,演示如何创建和清除它们并编写一个程序,您可以在您的系统上使用该程序来研究线程的管理。请在论坛上与作者和其他读者分享您对本文的想法。
    2002年2月1日  
 
功能丰富的 Perl: 介绍用于系统管理的 cfengine
cfengine(配置引擎)是一种 UNIX 管理工具,其目的是使简单的管理的任务自动化,使困难的任务变得较容易。它的目标是使系统从任何状态收敛到一种理想状态。依照它的作者 Mark Burgess 所说,cfengine 总是使您的系统更接近于您所定义的配置; 它决不会使系统变得更糟。在本文中,Ted 通过演示一些简单的 cfengine 使用,使您熟悉这一独特的系统管理工具。
    2002年2月1日  
 
用 RPM 打包软件,第 3 部分
RPM 是一种广泛用于交付 Linux 软件的工具; 用户可以轻松地安装用 RPM 打包的产品。在本文(该系列文章的第 2 篇)中,Dan 说明了在不具备 root 权限的情况下如何对软件进行打包,在不做更改的情况下如何处理不在 Linux 上构建的软件,以及如何分发您的工作结果。
    2002年2月1日  
 
运行时: 调度线程
Ed 继续了他有关线程的讨论,这一次,他将他的系统应用到测试中,该测试使用了一个可以发挥机器处理多个线程能力的程序。通过单击文章顶部或底部论坛中的讨论,与作者和其他读者分享您有关本文的见解。
    2002年2月1日  
 
集群系统MOSIX分析(4)
集群系统的各组成部分经常要互相通讯,MOSIX提供了一个连接层抽象(linker layer),在套接字接口之上使用TCP/UDP协议进行通信。
    2002年1月22日  
 
集群系统MOSIX分析(1)
集群系统以其较高的性价比越来越受到普遍的欢迎。在本部分中,我们简单的介绍了集群系统和进程迁移。
    2002年1月22日  
 
集群系统MOSIX分析(2)
本部分简要介绍了MOSIX系统实现的一些特性。
    2002年1月22日  
 
集群系统MOSIX分析(5)
在这部分中,我们将具体介绍MOSIX中进程迁移的实现,包括迁移的一般过程以及进程状态的提取和恢复。
    2002年1月22日  
 
集群系统MOSIX分析(7)
信号提供了一种通知进程系统事件发生的机制,它也是作为用户进程之间通信和同步的一种原始机制。在进程迁移的情况下,如何处理信号呢?这部分介绍了MOSIX系统对信号机制的处理。
    2002年1月22日  
 
集群系统MOSIX分析(3)
MOSIX系统的一个主要设计目标就是提供透明性,尽可能的支持单系统印象(SSI)。代理/远程概念对了理解MOSIX系统的实现起着非常重要的作用。
    2002年1月22日  
 
集群系统MOSIX分析(6)
LINUX内核是通过系统调用为用户程序提供服务的。这部分我们将看看MOSIX是怎么处理迁移进程的系统调用请求的。
    2002年1月22日  
 
Tcl/Tk 快速入门
这篇免费、dW 独有的教程是针对那些具有一种或多种编程或脚本语言经验的人员设计的。您可以在几种平台(包括 Win32 和 MacOS 以及几个 *NIX 环境)上使用 Tcl/Tk,本教程是针对安装了 GNU/Linux 的环境而编写的。
    2002年1月21日  
 
浅谈Happy Linux3.0中GB18030打印
本文将为您阐述在Happy Linux3.0中如何实现GB18030打印。同时还讲述了打印技术的基本原理和PostScript等相关知识。
    2002年1月18日  
 
Linux 上的 PKCS #11 openCryptoki
密码术正在迅速成为我们日常生活中的一个重要部分。然而密码技术应用程序给当今的服务器平台添加了沉重的运算负担。越来越多的系统开始使用专门硬件来分担这些运算,同时也帮助确保密钥资料的安全性。本文将讨论 openCryptoki,一种正在迅速成为非 Windows 平台事实工业标准的 API,它被用来建立密码硬件和用户空间应用程序之间的接口。特别是本文将介绍针对 IBM 密码硬件(openCryptoki)的 PKCS #11 实现的细节,此密码硬件是基于开放源码格式的,在 developerWorks 上可获得。
    2002年1月15日  
 
需求的实践(5)��细节需求时期(下)
和业务建模时期不同的是,我不再花费笔墨讨论需求要如何做,因为做法、注意点和业务建模时期并没有什么太大的区别。而在完整的流程上,像RUP、XP之类的方法学可比我讲的要好的多。因此,我会把焦点集中在我在实际工作中的一些困惑,以及一些思考。
    2002年1月15日  
 
需求的实践(5)��细节需求时期(上)
从这一篇开始,我们开始进入细节需求时期。和业务建模时期注重于软件概貌不同的是,细节需求时期讲究充分挖掘涉众的需求,并作为其它的活动的输入。细节需求时期和业务建模时期有着不同的做法,迭代、小版本发布的思想是非常重要的。
    2002年1月15日  
 
基于B/S结构的Unix/Linux服务器远程配置工具的设计与实现
本文向各位介绍的是作者在联想主持开发的第一个Linux 方案级产品---满意OA中的主要核心部分─基于B/S结构的Unix/Linux服务器远程配置工具的设计与实现。以下我们简称其为“配置工具”。
    2002年1月11日  
 
Qt 国际化编程
本篇讨论 Qt 库对国际化的支持,将介绍 Qt 对文本显示,输入和打印的支持,和如何 使用Qt 开发国际化的软件。
    2002年1月9日  
 
在 Linux 下配置 TCP/IP
这篇免费、dW 独有的教程首先回顾 TCP/IP 的起源,然后阐述 TCP/IP 发展所依据的模型,最后还讨论 TCP/IP 是如何工作的 ― 包括 IP 地址、子网以及路由。打好这些理论基础之后,我们将讨论 Linux 所需要的各种网络配置文件以及如何初始化网络接口和如何编辑系统路由表。在本教程的最后,我们将简要看一下如何分析网络以及如何确保数据准确无误地到达应到之处。
    2002年1月8日  
 
通用线程: 高级文件系统实现者指南,第 9 部分
随着 Linux 2.4 发行版的到来,给我们带来了使用多种新文件系统的可能性,包括 Reiserfs、XFS、GFS 以及其它文件系统。这些文件系统听起来很酷,但是它们到底能做什么,它们擅长于什么,还有,您到底如何着手在 Linux 生产环境下安全地使用它们呢?Daniel Robbins 通过向您展示如何在 Linux 2.4 下设置这些新的高级文件系统来回答这些问题。在这一部分,Daniel 介绍了 XFS ― 目前可用于 Linux 的 SGI 的免费企业级文件系统。
    2002年1月1日  
 
用 WebSphere Studio Application Developer 在 90 秒内快速启动您的 Linux 应用程序: “Hello, World”
本文向您演示了如何创建并测试“Hello, World”应用程序,然后演示了在Linux 环境中使用 WebSphere Studio Application Developer 来添加“便笺页(scrap page)”以测试 Java 代码片段是多么的容易。本文最初使用 Windows 环境中的示例于 2002 年 1 月发表。developerWorks 感谢 Tom Mitchell 的原作,以及您在这里看到的 Ian Shields 的 Linux 更新。
    2002年1月1日  
 
更佳编程之路: 第五章
本 developerWorks 文章系列完整介绍了如何用 Perl 进行更佳编程。在本文(也是本系列的第五部分)中,Teodor 解释了什么是面向对象编程,何时使用它以及它是如何在 Perl 中工作的。面向对象编程(OOP)是一种强大的编程技术,但它不是万能药。优秀的程序员必须理解如何使用它,并且必须知道何时依赖更传统的编程技术。在 Perl 中使用 OOP 很简单。与 C++ 和 Java 等限制性更强的 OOP 语言不同,Perl 中的 OOP 很少对程序员施加强制性约束。OOP 是对每一名程序员的工具箱的必要补充,并且是用于扩展可用 Perl 解决的问题范围的非常有用的技术。
    2002年1月1日  
 
可爱的 Python: 使用 SimpleParse 模块进行解析
为 Python 编写的解析工具很多。本专栏讨论了一种构建在 Python 之上的高级解析语言。 SimpleParse 在 mxTextTools 之上提供了一种 EBNF 样式的句法,从而很清晰地阐明了语法的表达式。
    2002年1月1日  
 
GNOMEnclature: 为 GNOME 2 作好准备,第 1 部分
developerWorks 很高兴地宣布要重新创办 Linux 专区中很受欢迎的GNOMEnclature专栏。 在这个专栏中,CodeFactory的 Mikael Hallendal 和 Richard Hult 将向您提供充分利用新的 GNOME 2 平台所需的内部信息。 在这个系列中,您将学习如何使用 GNOME 2 提供的新库和改进后的库, 以使您可以编写自己的 Nautilus 视图、面板 applet 和其它更多东西。在本文中,Mikael 和 Richard 通过浅显易懂地介绍 GTK+ 2(GNOME 2 桌面环境的新基础)来重新开始本系列。到本文的末尾,您将完成编写和编译一些样本 GTK+ 2 程序并且很好地理解了 GTK+ 2 对于 GTK+ 1 的许多改进。
    2002年1月1日  
 
更佳编程之路: 第四章
developerWorks 上的这个文章系列包含一个有关如何用 Perl 进行更佳编程的完整指南。在本文(也就是第四部分)中,Teodor 介绍了函数型编程和几个基本的 Perl 习惯用法,如 map() 和 grep() 函数以及 Schwartzian 和 Guttman-Rosler 变换,它们对于那些追求代码的执行速度和优雅性的 Perl 程序员来说十分重要。
    2002年1月1日  
 
用 4Suite 进行 Python 和 XML 开发,第一部分:PyXml
在系列的第一篇文章里,教程涵盖了 PyXml,包含在 Fourthought 的 4Suite 中的W3C 的“DOM 级别 2”规范的一个实现。4Suite 是一个Python的用于 XML 处理的开放源码的、全面的库和工具箱,它实现了许多与 XML 相关的开放标准。这一系列教程介绍了 4Suite 并给了使用4Suite 进行 XML 开发的实践示例。
    2001年12月31日  
 
为 Linux 应用程序编写 DLL
插件和 DLL 通常是用来无须编写整个新应用程序而添加功能的极好方法。在 Linux 中,插件和 DLL 以动态库形式实现。电子商务顾问兼设计师 Allen Wilson 介绍了动态库并且向您演示了如何在某个应用程序正在运行之后使用动态库来改变该应用程序。
    2001年12月28日  
 
需求的实践(4)--业务建模时期(上)
在大规模的需求调研展开之前,有一个重要的工作要做。这项工作在项目中所占的时间跨度非常的小,但是却有非常重要的意义。不同的人、不同的方法对这项工作有不同的描述,在我们的文章中,根据UP的思想,称之为"业务建模"。
    2001年12月28日  
 
需求的实践(4)--业务建模时期(下)
和上一篇的理论不同,这一篇文章更注重于实际,举出了在业务建模简短需要注意的一些原则和实践,每一条都来自于实践之中,也都有理论的支持。其中的很多内容更是经过多次的失败才总结出来的。相信大家如果能够理解这些原则和实践的某些方面,至少能够避免重蹈覆辙。
    2001年12月28日  
 
介绍 XFree86 4.x
在这篇免费、dW 独有的教程中,Chris Houser 向您演示了如何使 XFree86 4.x(Linux 版的标准免费 X 服务器)在您的系统上启动与运行起来。Chris 逐步指导您完成配置 X 以与硬件一起正确工作并使用您所喜欢的分辨率和颜色深度来使 X 运行起来的过程。另外,Chris 还论及了 X 的用法基础,包括远程运行 X 应用程序、保护 X 和使用 X 资源数据库来配置 X 应用程序。他还向您演示了在 Xfree86 启动时如何启动您所喜欢的窗口管理器、桌面环境和应用程序。在本教程结束时,您将很好地领会 XFree86 的基本原理,可以准备将 XFree86 的许多功能应用到实际使用中。
    2001年12月24日  
 
Linux 中 x86 的内联汇编
Bharata B. Rao 提供了在 Linux 平台上使用和构造 x86 内联汇编的概括性介绍。他介绍了内联汇编及其各种用法的基础知识,提供了一些基本的内联汇编编码指导,并解释了在 Linux 内核中内联汇编代码的一些实例。
    2001年12月19日  
 
量子计算入门
在未来的几十年里,量子计算机很可能会走出科幻小说与科研实验室(主要在 IBM)进入实际应用。在量子计算机(Quantum Computers,QC)上可以有效的解决与复杂的组合数学有关的一类问题,对于确定性计算机而言,这些问题是很讨厌的。建立在向量数学基本知识的基础之上,本文将对量子计算作一番介绍。说明用的示例使用了 qcl(量子计算语言,quantum computing language),这是在 GNU General Public License 管理之下分发的、用于量子计算机的一种免费的程序语言。qcl 允许开发人员模拟并测试“虚拟的”量子计算机。
    2001年12月11日  
 
用Curses函数编写一个汉诺塔游戏
Curses是为了适应网络上各式各样不同类型的终端,而在UNIX上特别发展出的一套函数库,以专门用来处理UNIX上光标移动及屏幕的显示。本文将为你讲述Curses的编程技巧,并为你提供一个汉诺塔游戏的例程。
    2001年12月7日  
 
通用线程: 高级文件系统实现者指南,第 8 部分
随着 Linux 发行版 2.4 的出现,带来了许多新的文件系统的可能性,包括 Reiserfs、XFS、GFS 等等。这些文件系统听上去很酷,但它们究竟能做什么、擅长哪些方面,以及您究竟如何在 Linux 生产环境中安全地使用它们?Daniel Robbins 通过向您展现如何在 Linux 2.4 下设置这些新的高级文件系统来解答这些问题。在这一部分中,Daniel 继续着眼于 ext3,这是带有日志记录能力的 ext2 的一种新改进的版本。他揭示了 ext3 的所有内在信息,并演示了 ext3 data=journal 某些极其出色的的交互式性能测试数据。
    2001年12月1日  
 
MVC 模式、类封装还是黑客代码
编码对于合格的 PHP 程序员来说并不是什么难事(也许只是花费时间长短的问题),因此系统分析和设计这一阶段就显得尤为重要。不过本文并不打算讨论和需求分析、获取商业逻辑相关的话题,而是针对系统设计方面进行探讨。
    2001年12月1日  
 
理解 Linux 配置文件
本文说明了 Linux 系统的配置文件,在多用户、多任务环境中,配置文件控制用户权限、系统应用程序、守护进程、服务和其它管理任务。这些任务包括管理用户帐号、分配磁盘配额、管理电子邮件和新闻组,以及配置内核参数。本文还根据配置文件的使用和其所影响的服务的情况对目前 Red Hat Linux 系统中的配置文件进行了分类。
    2001年12月1日  
 
在 Linux(或异构)网络上共享计算机,第 2 部分
本文是两篇比较 SSH、远程 X、VNC 和其它技术作为远程运行应用程序方法的文章的第 2 部分。在这一部分中,David 研究了一些 VNC 配置问题,提到了 IBM 的 Desktop On-Call,介绍了远程 X 并讨论了一些有关安全性的问题。
    2001年12月1日  
 
更佳编程之路: 第三章
本 developerWorks 文章系列完整介绍了如何用 Perl 进行更佳的编程。在本文(也是本系列的第三部分)中,Teodor 简要介绍了 Perl 循环语法,条件语句以及如何编写整洁(clean)的代码。虽然本章不打算从头开始教您 Perl,但它对那些有兴趣学习如何将 Perl 更好地应用到日常工作中的初级和中级 Perl 程序员来说将十分有用。
    2001年12月1日  
 
在 Linux(或异构)网络上共享计算机,第 1 部分
在这两篇文章的第一篇中,David 比较和对照了“安全 shell(SSH)”和“虚拟网络计算(VNC)”,这两种技术允许用户在一台工作站上运行位于另一台计算机上的应用程序。(他没有涉及文件和打印共享或诸如 httpd、ftpd、smtp 或 nntpd 之类的“因特网”服务,虽然这些技术也可以有效地“共享”上述计算机中的某些资源。)然而,他确实给出了 SSH 和 VNC 的安装和配置的提示,并评论了工具的稳定性、选项和许可证状况。
    2001年12月1日  
 
用 RPM 打包软件,第 2 部分
RPM 是一种广泛用于发布 Linux 软件的工具; 用户可以轻松地安装用 RPM 打包的产品。在本文(该系列文章的第 2 篇)中,Dan 说明了在不具备 root 权限的情况下如何对软件进行打包,在不做更改的情况下如何处理不在 Linux 上构建的软件,以及如何分发您的工作结果。
    2001年12月1日  
 
介绍机器人技术--机器人走进开放源代码
Darrick Addison 是一个在数据库、网络、用户界面和嵌入式系统方面具有丰富经验的开发人员,他介绍了机器人技术领域和与机器人系统有关的问题。他谈到了机械设计、传感系统、电子控制和软件。他还讨论了微控制器系统,包括串行接口连接和存储映象接口连接,并谈到了某些可供选择的开放源代码软件。
    2001年11月27日  
 
提高开放式 UNIX 平台的安全性
本文要看一下使用一种新方法提高开放式 UNIX 安全性的小外壳(shell)应用程序。本文提供了对代码逐步的分析。作者的专业领域是 Web 编程及尖端网络安全性开发。
    2001年11月23日  
 
基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(六)
本文讲述了 MiniGUI 为应用程序提供的非 GUI/GDI 接口,这些接口能够帮助应用程序更好地和操作系统交互,扩展应用程序功能,并提高应用程序的可移植性。内容主要涉及到如下几个方面:MiniGUI-Lite 和 select 系统调用;基于 UNIX Domain Socket 的进程间通讯;编写可移植性代码等。
    2001年11月22日  
 
《硬件的自动检测与配置》常见问题解答
在我的关于硬件检测与配置的两篇文章《如何在Linux下实现硬件的检测》和《如何在Linux下实现设备的配置》发表之后,陆续收到了一些读者来信。他们问了很多关于硬件配置方面的问题,现在我把这些最典型的问题加以整理,写成这篇文章。由于我不可能接触到所有的硬件设备,所以对于内置MODEM和声卡只能提供一些方法性的指导,而不能提供关于配置过程详细到每一步的一个描述。我希望这篇文章会对大家学习和使用Linux有所帮助。
    2001年11月19日  
 
用 Unicode 表示的多语言形式
对于多语言 Unicode 页面,一开始最实用的用法之一将是,出于调查或商业目的,比较从各种语言到各种形式的类似信息。本文研究了第一步,如何可能以 Unicode 构造这样的多语言形式,并且概述了这些多语言形式如何可以形成未来全球多语言软件的基础。
    2001年11月16日  
 
用 C 扩展 Python 和 Zope
一旦明白怎样用 C 扩展 Phthon,您就会知道这很容易,把 Python 扩展封装到 Zope 也同样容易。难点是如何从各式各样的文档集中找到那些您需要的重要信息,而 Michael 已在本文帮您收集了这些信息。
    2001年11月16日  
 
解决 Linux 中的安全性问题
一旦在计算机或网络上启动并运行了 Linux,并且安装了应用程序,就万事大吉了,对吗?唔,对,但不全对。您的系统也许在运行,但如果不考虑安全性问题,您可能正在使您自己处于非常严重的困境中。
    2001年11月16日  
 
通用线程:OpenSSH 密钥管理,第 2 部分
在第二篇文章里,Daniel 介绍 ssh-agent(专用密钥高速缓存)及 keychain,这个特殊的 bash 脚本的设计使基于密钥的认证极为方便和灵活。
    2001年11月14日  
 
更佳编程之路: 第二章
developerWorks 上的这个系列文章包含使用 Perl进行更佳编程的完整指南。在这第二部分中,Teodor仔细研究了代码中的注释。对于软件团队的长期目标来说,程序代码中的注释可能与实际代码本身一样重要。不幸的是,它们经常也是最容易被忽视的。通过技巧、讲解、示例和轶事,Teodor从头到尾深入讨论了对程序语言进行注释的迫切本质。
    2001年11月12日  
 
基于Linux的集群系统(十)
本篇是实现过程的第三个理论先导篇,作者将向我们讲述负载平衡策略,并对各种负载平衡策略作了比较。
    2001年11月3日  
 
集群的可扩展性及其分布式体系结构(1)
这是一个新的关于集群技术的专栏。作者将侧重就集群的可扩展性及体系结构分析、原理论、集群的考量、具体的分析案例(LVS、beowulf、MOSIX)、集群高可用技术、分布式文件系统等等各个方面为您更加深入的介绍集群系统。本文是第一篇。主要阐述集群起源的概念,分布式系统的定义和目标体现。作者通过一个故事讲述了考虑集群解决方案时需要注意的是:如何正确看待集群,应该从什么角度来考察一个集群系统。解决了集群的这一根本性立场和观点角度,才能利用集群的技术解决现实问题。
    2001年11月2日  
 
Source Insight3.0: Linux源代码阅读的利器
阅读源代码是钻研技术的最佳手段,而Linux提供了一个庞大的源代码库,但是,由于缺乏良好的源代码阅读工具,使得阅读Linux源代码尤其是内核源代码十分困难,在本文中,笔者向大家推荐一个优秀的源代码阅读工具,并介绍了它的使用方法。
    2001年11月1日  
 
集群的可扩展性及其分布式体系结构(2)
这篇文章是《集群的可扩展性及其分布式体系结构》第二篇的下半部分,将继续介绍常见的几类并行计算体系结构、可扩展与单一系统映象、集群的重要指标等内容。
    2001年11月1日  
 
集群的可扩展性及其分布式体系结构(2)-上
这篇文章是《集群的可扩展性及其分布式体系结构》的第二篇,主要介绍集群计算中可扩展性的主要意义。本文描述了集群常见的几类体系结构和考量集群时的出发点。通过图表的形式,讨论集群系统中几大重要因素之间的相互关系。同时,作为对比,列出一些和集群在体系结构上具有可比性的一些系统如Mpp,SMP等,通过比较,使读者能够掌握集群在体系结构发展中的地位和意义。
    2001年11月1日  
 
Posix线程编程指南(4)
这是一个关于Posix线程编程的专栏。作者在阐明概念的基础上,将向您详细讲述Posix线程库API。本文是第四篇将向您讲述线程中止。
    2001年11月1日  
 
Posix线程编程指南(5)
这是一个关于Posix线程编程的专栏。作者在阐明概念的基础上,将向您详细讲述Posix线程库API。本文是第五篇将向您讲述pthread_self()、pthread_equal()和pthread_once()等杂项函数。
    2001年11月1日  
 
可爱的 Python: 更新您的 Python 读物列表,第 2 部分
自从我 2001 年 2 月发表最近书籍摘要以来,又有许多关于 Python的有趣书籍出版。本文将对最近的 Python书籍(或在上次摘要中遗漏的书籍)提供新的比较评价。
    2001年11月1日  
 
功能丰富的 Perl: 将 xinetd 程序用于系统管理
每个 UNIX 管理员都熟悉 inetd,inetd 是一个守护程序,通过一个集中的配置文件(inetd.conf)来管理大多数入网连接。xinetd 守护程序是 inetd 的替代,它提供许多改进的或新的特性,以及更容易的配置。Ted 解释了 inetd 背后的概念,并且给出了在您自己的站点上设置 xinetd 的示例。
    2001年11月1日  
 
需求的实践(2)
本文作为这个关于需求的软件工程专栏的第二篇,作者将继续花了一些篇幅来讨论软件工程中的一些基本概念,以求大家能够从整体的角度来理解需求过程。
    2001年11月1日  
 
基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南
我们在“MiniGUI1.1.0 版本引入的新 GDI 功能和函数”一文中描述了在 1.1.0Pre4版本中添加的新 GDI 相关函数的功能及其使用。目前,MiniGUI 1.1.0Pre7版本已经发布,该版本较 1.1.0Pre4 版本新增了若干 GDI 函数,新 GDI接口也相对成熟。本文将描述新增的 GDI 接口及其使用。
    2001年11月1日  
 
PEAR实践: PHP中MVC机制的实现(一)
在以前的几篇文章里面,我们讨论了PEAR的大部份内容,想必你对PEAR也应该有了比较深刻的认识了。那么如何在实际的开发中应用呢,如何应用PEAR的思想来开发一个项目?从本篇开始,我将带领大家进入PEAR的实践篇。今后,我将和大家一起讨论一些实际的应用。
    2001年11月1日  
 
运行时: 编写套接字程序
在上个月的专栏中,Ed 谈到了同步原语,并简要地重述了关于管道的内容。这个月,他首先论述使用套接字的通信。Ed 演示了编写套接字程序的一些技术,并显示了他的编程技术在各种不同操作系统环境中的不同表现。请在论坛与作者和其他读者分享您关于本文的心得。32 * 3 * 2 * 524,288 = 100,663,296
    2001年11月1日  
 
更佳编程之路: 简介与第 1 章
任何软件开发小组的成功或失败很大程度上取决于团队精神。对于构思良好而又不断变化的指导思想而言,从经理到成员,团队是否是一个整体是由它各个部分的和谐程度决定的。在打破完美程序员的神话后,Teodor将解散原有的缺乏创见的软件开发小组,然后再把它建设为一个和谐的,有活力的整体。欢迎来到 developerWorks 阅读全面指导如何更好地用 Perl编程的系列文章。在这一系列文章的第一部分里,Teodor介绍了他写的书,并以一种崭新的观点来论述编码指南。
    2001年11月1日  
 
基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南
为了让读者对嵌入式 Linux 当中能够使用的图形及图形用户界面有个较为全面的认识,本文将为读者介绍一些嵌入式 Linux 系统中常见的图形及图形用户界面系统,并作为《基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南》系列的最后一篇文章。本文首先概述了 Linux 图形领域的基本设施,然后描述了一些可供嵌入式 Linux 系统使用的高级图形库以及图形用户界面支持系统,并大概比较了这些系统的优缺点。希望能对嵌入式 Linux 系统的开发有所帮助。
    2001年11月1日  
 
用 RPM 打包软件,第 1 部分
RPM 是广泛使用的用于交付 Linux 软件的工具,用户可以轻松的安装用 RPM 打包的产品。在本文中(系列文章的第 1 篇),IBM 软件工程师 Dan Poirier 向您演示如何在 Red Hat Linux 7.1 系统上用 RPM 打包简单软件。
    2001年11月1日  
 
通用线程: 高级文件系统实现者指南,第 7 部分
Linux 的 2.4 发行版带来了使用多种新文件系统的可能性,包括 Reiserfs、XFS、GFS 以及其它文件系统。这些文件系统听起来很酷,但是它们到底能做什么,它们擅长于什么,还有,您到底如何着手在 Linux 生产环境下安全地使用它们呢?Daniel Robbins 通过向您展示如何在 Linux 2.4 上设置这些新的高级文件系统来回答这些问题。在这一部分,Daniel 研究了 ext3,它是 ext2 的新改进版,具有日志记录能力。
    2001年11月1日  
 
《硬件的自动检测与配置》 FAQ
    2001年11月1日  
 
通用线程:OpenSSH 密钥管理,第 1 部分
在本系列文章中,您将学习 RSA 和 DSA 认证的工作原理,以及了解如何正确设置无密码认证。在本系列的第一篇文章里,Daniel Robbins 主要介绍 RSA 和 DSA 认证协议并向您展示如何在网络上应用这些协议。
    2001年10月30日  
 
用 PHP 和 MySQL 创建动态站点
这篇免费的、dW 独有的教程分析了使用 PHP 和 MySQL 创建动态 Web 站点的几个实例。当教程结束时,您将懂得动态站点怎样工作以及它们怎样为内容服务,并且您要做好准备,为来自您的站点的动态内容提供服务。
    2001年10月26日  
 
RunTime: 上下文切换,第 2 部分
本月 Ed 研究了调度程序的两种行为。第一种行为是向调度程序的切换决策添加更多选项后的反应。第二种行为通过在多个线程中执行相同的工作负载来说明公平性。本文提供了源代码,因此您可以自己进行尝试。
    2001年10月19日  
 
运行时: 使进程和线程同步
在 Ed 以前的文章中谈到了管道,一种 Windows 和 Linux 上进程间通信的形式。本文中,他探讨了进程间同步原语(作为控制两个进程访问同一资源的方法)。象往常一样,Ed 的目的是推荐几种方法来优化编程实践,并且演示了那些编程实践的性能。单击本文顶部或底部的讨论进入论坛,与作者以及其他读者分享您对本文的看法。
    2001年10月19日  
 
在 XFree86 窗口系统中实现对 GB18030 的支持(二)
本文是《在 XFree86 窗口系统中实现对 GB18030 的支持》的第二篇,将具体介绍如何在XFree86中实现对 GB18030的支持。
    2001年10月12日  
 
Small Business Suite for Linux
本文介绍 IBM Small Business Suite for Linux,它为那些希望在 Web 上开展业务的小型企业提供了一个集成的解决方案。Kevin Czap 将描述如何快速地在 Web 上建立并运行电子商务,如何进行远程安装,以及如何最方便地添加定制应用程序。
    2001年10月10日  
 
Posix线程编程指南(2)
这是一个关于Posix线程编程的专栏。作者在阐明概念的基础上,将向您详细讲述Posix线程库API。本文是第二篇将向您讲述线程的私有数据。
    2001年10月1日  
 
Posix线程编程指南(3)
这是一个关于Posix线程编程的专栏。作者在阐明概念的基础上,将向您详细讲述Posix线程库API。本文是第三篇将向您讲述线程同步。
    2001年10月1日  
 
Posix线程编程指南(1)
这是一个关于Posix线程编程的专栏。作者在阐明概念的基础上,将向您详细讲述Posix线程库API。本文是第一篇将向您讲述线程的创建与取消。
    2001年10月1日  
 
需求的实践(3)
软件开发人员总是在困惑为什么软件分明是按照需求做出来的,可是客户为什么仍然不满意。客户总是在困惑为什么软件和自己想要的差距会那么大。这究竟是怎么回事?如何才能把开发人员和客户之间的沟壑填平?本文作为这个关于需求的软件工程专栏的第三篇,将向您介绍这个把客户和开发人员联系在一起的工具�D�DUML(统一建模语言,Unified Modeling Language)。
    2001年10月1日  
 
运行时: Windows 2000、Windows XP 和 Linux 中的管道
本月 Ed 从管道入手,开始了对操作系统编程接口的一系列研究。他还把最近发布的 Windows XP 操作系统也纳入了他所研究的对象。在这部分,Ed 将在 Windows 2000 Advanced Server(已装有 Service Pack 2)、Linux (基于 Red Hat 7.1)和新发行的 Windows XP 专业版上使用管道。请点击本文顶部或底部的“讨论”以便在论坛中与作者和其它读者分享您的想法。
    2001年10月1日  
 
构造Linux的图形化安装程序(4)
本文是构造Linux的图形化安装程序系列文章的第四部分,内容主要包括RPM基本命令介绍,RPM包的定制过程,RPM SPEC文件的主要内容,RPM函数库简单参考和安装程序中关于RPM包管理部分源码的简单介绍。通过这部分的介绍,希望读者能对Linux系统下RPM包的定制过程和RPM包的系统安装过程有一个基本的了解。
    2001年10月1日  
 
基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南
本文向读者展现了 MiniGUI 的最新开发成果,即在 MiniGUI 1.1.0Pre4 版本中引入的新的 GAL 和新的 GDI 功能和接口。这些接口最终会出现在 MiniGUI 1.1.0 正式版本中。本文主要内容包括 GAL 和 GDI 的关系,新 GAL 引擎的接口特点,新 GDI 的功能增强以及接口应用范例等等。
    2001年10月1日  
 
Linux&Unix系统中基础服务应用及其在分布式实时系统中的持久性实现
本文叙述了分布式实时系统中基础服务应用概念,对其持久性实现做了详细的分析。
    2001年10月1日  
 
Linux环境下实现组件返回消息的技巧
我们在编写Linux运行库时,特别是作为组件提交给其他程序员使用时,很有必要提供返回消息以提高组件在开发过程中的可用性。本文将为您讲述一些实用的技巧。
    2001年10月1日  
 
神奇的VIM
当今世界,文本编辑器种类繁多,大有'乱花渐欲迷人眼'之势。中国有句古语:手巧不如家什妙,作为IT业的专业人士,选择一款优秀的编辑软件至关重要。笔者认为:LINUX下的VIM※以其强大的功能和无穷的魅力将使您终生受益。
    2001年10月1日  
 
用C语言实现Ping程序功能
大部分人用ping命令只是作为查看另一个系统的网络连接是否正常的一种简单方法。在这篇文章中,作者将介绍如何用C语言编写一个模拟ping命令功能的程序。
    2001年10月1日  
 
需求的实践(1)
在这个关于软件工程的新专栏里,作者将通过一系列的文章,结合理论知识,实践案例,优秀的工具介绍,经典文章导读,告诉您软件工程中最重要的一个过程�D�D需求过程各方各面的知识。通过阅读,您将了解到,需求的知识体系,需求的过程能力,相关的软件工程知识,在实践中如何做好需求分析。文章虽然有很多的例子,但是,文章主要还是偏向于宣传一种思想,一种面向对象的思想,一种实践的思想。
    2001年10月1日  
 
可爱的 Python: [anygui] 项目预览
在 Python 世界中有一个非常有趣的 [anygui] 项目,它已经进入了早期的开发阶段。[anygui] 项目打算作为许多主要图形工具箱的下层 API。一旦完全开发成功,Python 程序员就可以调用一个公共 [anygui] 函数 ― 例如,为创建一个窗口 ― 可由“最适当好用”的工具箱来完成这项工作。在 Windows 上,可以使用到 Win32 API(或者 wxWindows);在 MacOS 上,可能本机调用;在 BeOS 上,使用 Bethon;在 Linux 上,使用 TKinter 或者 GTK;在 Telnet 屏幕上使用 ncurses ― 所有这些都取决于给定的机器上安装的和可用的软件。本文讨论了 [anygui] 当前的开发状态,以及该项目要达到的目标。
    2001年10月1日  
 
是你期待的吗?
Zend Engine是PHP语言的语法解释核心,它的发展变化必然会极大的影响PHP的语言特征和执行特性。Zend Engine 2.0在众人期待中尚未推出,但是从其释出的未来蓝图(草稿)中可以推测出一些PHP的将来模样。
    2001年10月1日  
 
通用线程: 高级文件系统实现者指南,第 6 部分
Linux 发行版 2.4 中,可能有一批新的文件系统,包括 Reiserfs, XFS, GFS 等。这些文件系统听起来很酷,但它们确切能做什么呢,它们擅长于什么呢,以及您又怎样在产品 Linux 环境下安全地使用它们呢? Daniel Robbins 通过向您演示如何在 Linux 2.4 下来安装这些高级文件系统回答这些问题。在这一安装过程中,Daniel 向您演示了如何使用一个初始化封装器来(最终!)将您的系统转换到“devfs mode”。
    2001年10月1日  
 
通用线程: 高级文件系统实现者指南,第 5 部分
Linux 2.4 发行版能支持很多新的文件系统,包括 Reiserfs、XFS、GFS和其它文件系统。这些文件系统听起来不错,但它们到底能做什么,擅长做什么,又如何在 Linux 生产环境中,安全地着手使用这些文件系统呢?Daniel Robbins 通过演示如何在 Linux 2.4 系统下,安装这些新的高级文件系统来回答这些问题。在这部分中,Daniel 将带您经历为系统准备 devfs 的整个过程。阅读完本文,将可以在系统上启用 devfs;在下一篇文章里 Daniel Robbins 将介绍 devfs 最终安装的细节。
    2001年10月1日  
 
从 Solaris 到 Linux 的移植向导
IBM 成员 Malcom Zung 与 Brian Thomson 将告诉您为什么要将应用程序从 Sun Solaris 移植到 Linux,并给出了一些指导、建议和参考资料以提供帮助。文中还介绍了作者的一个方便的在线工具,您可以用这个工具来检测 API,以了解您的 Solaris 应用程序使用的 API 在 Linux 上的兼容性如何。
    2001年10月1日  
 
Linux 机器备份
这篇免费的、dW 独有的教程将教给您一些技巧,使您在不幸遇上最糟糕的局面时能够恢复过来。即使是新的、高品质的硬盘驱动器偶而也会出现故障。因此,经常性的系统备份,尤其是对于那些整天忙碌着不停的修改代码的开发者们,是非常必要的。本教程将告诉您如何保护自己免于丢失大量的关键数据。
    2001年9月25日  
 
如何用开放源码软件挣钱
软件可以是免费的,但这并不意味着您不能从开放源码挣到钱。顾问 Donald Rosenberg 将告诉您具有开放源码技巧的开发人员如何在各种商业模型和许可证之间进行选择。想成为软件供应商的开发人员必须确定要对其软件施以多少控制,是完全所有权保护还是完全开放的许可证(“GNU 常规公共许可证”)或者位于两者之间的控制,如“Mozilla 公共许可证”。Donald 向您介绍密钥许可证并解释它们的不同之处。
    2001年9月21日  
 
Beowulf 群集:合众为一
Andrew Blais 介绍了 Beouwulf 群集的概念,它通过在 Linux 或 NT 下使用多 CPU 并行地执行程序片段,从而极大地减少了软件的处理时间。他描述了(群集)多种不同的实现,群集的相对性能和使其有效所需的技术。
    2001年9月12日  
 
用 Ruby 语言编程
本文是Ruby系列的第一篇,作者将从讨论变量、引号、数组、对象和方法开始探讨 Ruby。这一 Ruby 系列中的后几篇文章将会涉及更多高级的课题,包括开发图形化应用程序以及和数据库一起使用 Ruby。
    2001年9月4日  
 
实战ReiserFS文件系统
ReiserFS文件系统是一种新的linux文件系统。它通过一种与众不同的方式--完全平衡树结构来容纳数据, 包括文件数据,文件名以及日志支持,并能在上面继续保持很快的搜索速度和很高的效率。ReiserFS文件系统一直以来被用在高端Unix系统上如,SGI。
    2001年9月4日  
 
构造Linux的图形化安装程序(1)
这是一个向用户介绍如何构造Linux的图形化安装程序的专栏。介绍的内容包括:安装环境的定制,图形化启动,本地化支持,分区功能,如何支持reiserfs、raid、lvm,rpm包的安装,定制各种启动配置脚本等等。本文是这个系列文章的第一篇,主要是向您介绍如何定制系统安装环境,包括生成安装内核,初始Ram盘的生成,最小化安装环境的定制。
    2001年9月1日  
 
功能丰富的 Perl: 用 Perl 读写 Excel 文件
直到最近才开启了通往 Microsoft Excel 这个最流行的桌面电子表格应用程序的大门。本文研究了在 Windows 和 Linux 中如何使用 Perl 和几个简单模块读写 Excel 文件。本文的作者 Teodor Zlatanov 是一名 Perl 专家,自 1992 年起,他一直在该社区中工作,在他涉足的各种领域中,他专长于文本解析中的开放源码工作。
    2001年9月1日  
 
提高开放式 UNIX 平台的安全性
本文要看一下使用一种新方法提高开放式 UNIX 安全性的小外壳(shell)应用程序。本文提供了对代码逐步的分析。作者的专业领域是 Web 编程及尖端网络安全性开发。
    2001年9月1日  
 
构造Linux的图形化安装程序(2)
本文是构造Linux的图形化安装程序系列文章的第二部分,主要介绍在安装程序装入内存之后,如何启动图形环境并设置中文语言环境。文中除了介绍安装程序对这两个功能的具体编程实现,还介绍了Linux中文化的一些基本知识,包括如何定制安装程序显示中所需要的Locale环境(Glibc和X Window系统两部分),po文件的处理。
    2001年9月1日  
 
在 XFree86 窗口系统中实现对 GB18030 的支持(二)
本文是《在 XFree86 窗口系统中实现对 GB18030 的支持》的第二篇,将具体介绍如何在XFree86中实现对 GB18030的支持。
    2001年9月1日  
 
通用线程: 高级文件系统实现者指南,第 4 部分
伴随着 Linux 2.4 版本的发行,出现了大量的文件系统可能性,其中包括 ReiserFS、XFS、GFS 和其它文件系统。这些文件系统听起来的确都很酷,但是它们真正能做些什么呢,擅长在哪些方面,以及在 Linux 产品环境下如何才能安全地使用它们呢?Daniel Robbins 通过向您展示如何在 Linux 2.4 的环境下建立这些新的高级文件系统来回答以上的问题。遵从这个方法,它提供了在实际实现过程中的有价值的建议、性能信息和重要的技术性注意要点,以便于您在新的文件系统中能有令人愉快的经历。在本文中:Daniel 解释了使用设备管理文件系统 devfs 的意义和好处,让您对其有所认识以便在下一篇文章中向您展示如何最佳地在系统上安装 devfs。
    2001年9月1日  
 
通用线程: 高级文件系统实现者指南,第 3 部分
伴随着 Linux 2.4 版本的发行,出现了大量的文件系统可能性,其中包括 ReiserFS、XFS、GFS 和其它文件系统。这些文件系统听起来的确都很酷,但是它们真正能做些什么呢,擅长在哪些方面,以及在 Linux 产品环境下如何才能安全地使用它们呢?Daniel Robbins 通过向您展示如何在 Linux 2.4 的环境下建立这些新的高级文件系统来回答以上的问题。在这个部分,Daniel 简单地介绍了 tmpfs,一个基于 VM 的文件系统,还向您介绍了 2.4 版本的“绑定”安装功能带来的新的可能。
    2001年9月1日  
 
可爱的 Python: 迭代器和简单生成器
Python 2.2 引进了一种带有新关键字的新型构造。这种构造是生成器;关键字是yield。生成器使几个新型、强大和富有表现力的编程习惯用法成为可能,但初看,要理解生成器,还是有一点困难。本文中,David 由浅入深地介绍了生成器,同时,还介绍了迭代器的相关问题。
    2001年9月1日  
 
在 XFree86 窗口系统中实现对 GB18030 的支持(一)
GB18030 是最新的汉字编码字符集国家标准, 向下兼容 GBK 和 GB2312 标准。本文将向您讲述如何在 XFree86 窗口系统中实现对GB18030 标准的支持。
    2001年9月1日  
 
Narval 简介
Uche Ogbuji 介绍说,Narval 是一个开放源代码的软件,它可以让用户处理信息管理的任务。通过为许多的任务提供一个综合的自治代理系统,Narval 有可能会被开发成一个 Linux 下的杀手级应用程序。
    2001年8月14日  
 
基于Linux的集群系统(九)
本篇是实现过程的第二个理论先导篇,作者将向我们讲述负载平衡机制的理论研究。
    2001年8月12日  
 
基于Linux的集群系统(六)
本篇是《关键技术分析》的第二篇,将为您讲述集群系统高可用性,主要包括集群管理器和节点的高可用性。
    2001年8月12日  
 
基于Linux的集群系统(七)
本篇是《关键技术分析》的第三篇,将为您讲述集群系统文件系统,主要包括Coda,Global,xFS,MOSIX文件系统。
    2001年8月12日  
 
基于Linux的集群系统(八)
从本篇开始,作者将就集群系统中某些重要部分的具体实现进行讨论。本篇作为实现过程的理论先导篇,将向我们讲述TCP/IP的基本原理及其在LINUX上的实现。
    2001年8月12日  
 
AIX与Linux的联姻��AIX Affinity with Linux
本文将就AIX Affinity with Linux的发展以及在AIX操作系统下如何进行Linux的开发和如何将自由开发的Linux应用移植到AIX操作系统做介绍,目的是让更多的朋友在AIX系统平台上使用Linux, 并同时感受到AIX操作系统在整体性能上的魅力。
    2001年8月10日  
 
NEWT程序设计指南
NEWT是在Linux下一个基于文本方式的窗口开发工具,最初是为Red Hat Linux的安装程序而设计的。本文将告诉您怎样一步步使用NEWT为自己的应用程序加上文本方式下的窗口界面。
    2001年8月7日  
 
通用线程: 高级文件系统实现者指南,第 2 部分
随着 Linux 2.4的发行,出现了使用很多新的文件系统的可能性, 包括ReiserFS、XFS、GFS和另外一些文件系统。这些文件系统听起来很“酷”,但是它们到底能做些什么呢,它们擅长什么,还有您究竟怎样才能在一个产品Linux 环境中安全地使用它们呢?在本系列文章中,Daniel Robbins通过向您展示怎样在 Linux 2.4下安装这些新的高级文件系统,回答了这些问题。在他的本系列前面的文章中,Daniel 介绍了日志和 ReiserFS 的好处。在本文中 Daniel将教您安装一个非常稳定的基于 Linux 2.4 的 ReiserFS系统。
    2001年8月1日  
 
功能丰富的 Perl: Perl 用于实现遗传算法
遗传编程建立在达尔文最适者生存的自然选择法则的基础之上,利用变异和复制来生成算法,该算法可创建不断改进的计算机程序。在本专栏里,您将开始了解用浅显的术语表述的遗传算法。Ted 给出了几种特定的任务的 Perl 实现,您可以用于广泛的用途。为了示范遗传算法,Ted 繁殖了一些数字和字母,应用于公式以测试这些数字的适应性,而繁殖的字母则形成了英语单词。
    2001年8月1日  
 
基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南
本文讲述 MiniGUI 中 GDI 函数及其使用。主要包括:设备上下文的概念、获取和释放;矩形操作和区域操作;基本绘图函数;位图操作函数;逻辑字体操作函数等。
    2001年8月1日  
 
构造Linux的图形化安装程序(3)
本文是构造Linux的图形化安装程序系列文章的第三部分,作者将从基本的分区表结构开始,介绍分区功能的实现和如何支持RAID、LVM这些高级功能。
    2001年8月1日  
 
如何在Linux下实现设备的配置(下)
本文是《如何在Linux下实现设备的配置》的第二部分,将接着向您介绍窗口系统(XFree86)的配置过程。
    2001年8月1日  
 
如何在Linux下实现设备的配置(上)
本文是《如何在Linux下实现硬件的自动检测》的姊妹篇。将为您介绍在进行了设备检测,通过设备信息文件获得了设备对应的驱动程序,工作参数等信息后,如何对于几种最常见的设备进行配置、生成正确的配置脚本,以使设备正常工作。
    2001年8月1日  
 
基于面向对象操作系统开发平台(OSKit)的分析与程序设计(4)
本文是《基于面向对象操作系统开发平台(OSKIT)的分析与程序设计》的第四篇,作者将对线程调度进行分析。
    2001年8月1日  
 
基于面向对象操作系统开发平台(OSKit)的分析与程序设计(2)
本文是《基于面向对象操作系统开发平台(OSKIT)的分析与程序设计》的第二篇,作者将为我们介绍线程的初始化。
    2001年8月1日  
 
基于面向对象操作系统开发平台(OSKit)的分析与程序设计(3)
本文是《基于面向对象操作系统开发平台(OSKIT)的分析与程序设计》的第三篇,作者将对线程通讯进行分析。
    2001年8月1日  
 
分布式应用中基于事件驱动的应用开发模型
本文将为您讲述如何为分布式应用建立事件驱动的开发模型。并以Linux系统为例,展示了事件驱动开发的基本框架。
    2001年8月1日  
 
可爱的 Python: pydoc 和 distutils 模块
最新的 Python 版本中引入了一些模块和工具,使之不只是作为一种语言,而是作为一种工具得到了改进。作者 David Mertz 回顾了一些模块,它们通过改进文档以及 Python 模块和包的分发包使 Python 开发者的工作变得非常轻松。
    2001年8月1日  
 
PEAR:创建中间的数据库应用层
对于PHP的应用程序来说,90%以上需要和数据库来打交道。那么,你是如何操纵数据库的?当你的后端数据库升级或变迁后,你的这些程序是否能够随之平滑地升级和挂接呢?如果你正在考虑这个问题,那么不妨和我来讨论一下,如何使用PEAR中的DB类来创建与数据库无关的数据库应用层。
    2001年8月1日  
 
基于 PalmOS 的编程语言
大多数考虑开发 PalmOS 应用程序的人可能会设想先在台式机上编写 C/C++ 代码,然后再交叉编译到 PalmOS 上。有一种完全不同的 PalmOS 开发的方法。作者 David Mertz 和 Andrew Blais 研究了可以完全在 Palm 手持设备上运行的全部编程语言和开发环境产品,涉及从程序编辑到最终运行的完整过程。这些工具为移动程序员创造了新的可能性。
    2001年8月1日  
 
嵌入式 Linux 应用:概述
在对嵌入式 Linux 的应用及其环境做了一番考察之后,接下来 Darrick Addison 将一步步地教您如何建立开发这些应用的软、硬件环境。
    2001年8月1日  
 
Linux Unicode 编程
作为一个计算机的多位字符表示系统,Unicode 支持世界上所有语言的编码和转换。这篇文章说明了 Linux 应用程序中的国际语言支持的重要性,以及规划 Unicode 支持并将之结合到 Linux 应用程序中去的思想。
    2001年8月1日  
 
用 C 扩展 Python 和 Zope
一旦明白怎样用 C 扩展 Phthon,您就会知道这很容易,把 Python 扩展封装到 Zope 中也同样容易。难点是如何从各式各样的文档集中找到那些您需要的重要信息,而 Michael 已在本文帮您收集了这些信息。
    2001年8月1日  
 
基于面向对象操作系统开发平台(OSKit)的分析与程序设计(1)
《基于面向对象操作系统开发平台(OSKit)的分析与程序设计》是我们奉献给读者的一个新专栏。本专栏的作者汤海京将向大家系统地介绍OSKit的线程机制,主要论述了三大部分内容,它们是:线程通讯,线程初始化和线程调度。希望读者能在最短的时间内了解OSKit。本文是第一篇《前言及绪论》。
    2001年8月1日  
 
Cultured Perl: Genetic algorithms applied with Perl
This Genetic algorithm illustrates word DNA (512 bits).
    2001年8月1日  
 
Cultured Perl: Genetic algorithms applied with Perl
This Genetic algorithm illustrates numeric DNA (between 0 and 255).
    2001年8月1日  
 
Cultured Perl: Genetic algorithms applied with Perl
This Algorithm GA was obtained from the Genetic Algorithms FAQ.
    2001年8月1日  
 
实战ReiserFS文件系统
ReiserFS文件系统是一种新的linux文件系统。它通过一种与众不同的方式--完全平衡树结构来容纳数据, 包括文件数据,文件名以及日志支持,并能在上面继续保持很快的搜索速度和很高的效率。ReiserFS文件系统一直以来被用在高端Unix系统上如,SGI。
    2001年8月1日  
 
面向大众的免费芯片
Jamil Khatib 回顾了用于芯片设计的开放硬件模型。在对开放硬件工程做了简单介绍之后,他论述了为什么硬件设计应该服从开放源代码软件模型的原因、当前的开放硬件组织的努力方向以及将开放模型从软件转换到硬件中所出现的问题。
    2001年7月31日  
 
强制的安全
在 6 月的最后一天,克林顿总统做了一件史无前例的事:他用一张智能卡,而不是钢笔将一项议案变为了法律。(事实上,在律师们争论古老的美国宪法是否可以灵活到允许数字签名的时候,书面文件还是被人工签署的。)克林顿是如何签署这项法令的无疑将吸引绝大部分人的注意,但这项法令本身也同样的重要:全球和国内商业法案中的电子签名会使数字签名在功能上完全等同于多种笔头签署工作。
    2001年7月24日  
 
基于Linux的集群