 |
 |
 |
 |
 |
 |
在 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: 不仅仅是玩具 索尼的 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日 |
|
| |
基于 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日 |
|
| |
使用多实例化提高安全性 如果您关心保护全域可写入的(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 的魅力: 自动上传 Nokia N800 照片 Linux 的魅力的 3 期文章用实际例子演示了如何着手构建 Nokia N800 应用程序:使用摄像机功能创建 Webcam。本文是第 3 期,也是最后一期。本文将编写一个自动照片上传例程,用于上传所拍照片。 |
|
|
|
2008年1月14日 |
|
| |
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日 |
|
| |
内存池 本章首先简单介绍自定义内存池性能优化的原理,然后列举软件开发中常用的内存池的不同类型,并给出具体实现的实例。 |
|
|
|
2007年11月29日 |
|
| |
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日 |
|
| |
GUI 应用程序移植,第 4 章:窗口子系统 窗口子系统是整个图形用户界面系统的核心--用户所有的交互操作无一不是围绕窗口进行的。Windows 和 Linux 操作系统都提供了各自的窗口系统,虽然它们具有一些类似的概念和特性,但从系统架构和实现方式上差别还是很大的,这种差别给在 Linux 上模拟 Windows 窗口系统的特性和行为带来了一定的困难。本章首先对 Windows 和 Linux 的窗口系统做比较,然后阐述模拟层的窗口类、窗口和窗口句柄、窗口过程、窗口绘图等是如何实现的。 |
|
|
|
2007年10月18日 |
|
| |
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日 |
|
| |
对话 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 技巧: 用 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日 |
|
| |