 |
 |
 |
 |
 |
 |
通用线程 -- 新 Linux 2.4 内核中的软件RAID,第一部分 新的 Linux 2.4 内核发布了!应该立即找一台空闲 PC,装上 Linux,看看它能做些什么!在 Daniel Robbins 关于 Linux 2.4 软件 RAID 的两篇文章中,他引入了一种通过将数据分布在多个磁盘上来增强磁盘性能和可靠性的新技术。第一部分讨论软件 RAID 的安装(内核及工具的安装),并说明如何创建线性卷和 RAID-0 卷。 |
|
|
|
2001年2月1日 |
|
| |
Linux 2.4.x内核软中断机制 本文从Linux内核几种软中断机制相互关系和发展沿革入手,分析了这些机制的实现方法,给出了它们的基本用法。 |
|
|
|
2002年6月21日 |
|
| |
Linux 2.4.x内核同步机制 本文将Linux内核中用于同步的几种机制集中起来分析,强调了它们之间在实现和使用上的不同。 |
|
|
|
2002年6月28日 |
|
| |
netfilter: Linux 防火墙在内核中的实现 本文介绍 Linux 的防火墙技术 netfilter/iptables 在 Linux 内核中的具体实现。 |
|
|
|
2002年12月1日 |
|
| |
改善 Linux 内核性能和可伸缩性 改善 Linux 性能的第一步是对其进行量化。但如何精确地对 Linux的性能或与它相当的系统性能进行量化呢?在本文中,IBM Linux 技术中心的成员描述了他们在去年底对Linux 2.4 和 2.5 内核所做的几个基准程序测试,就这些专家经验,以飨读者。 |
|
|
|
2003年1月10日 |
|
| |
Linux内核配置系统浅析 随着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中。面对日益庞大的 Linux 内核源代码,开发者在完成自己的内核代码后,都将面临着同样的问题,即如何将源代码融入到 Linux 内核中,增加相应的 Linux 配置选项,并最终被编译进 Linux 内核。这就需要了解 Linux 的内核配置系统。 |
|
|
|
2003年3月1日 |
|
| |
Linux 内核调试器内幕 调试内核问题时,能够跟踪内核执行情况并查看其内存和数据结构是非常有用的。Linux 中的内置内核调试器 KDB 提供了这种功能。在本文中您将了解如何使用 KDB 所提供的功能,以及如何在 Linux 机器上安装和设置 KDB。您还将熟悉 KDB 中可以使用的命令以及设置和显示选项。 |
|
|
|
2003年9月1日 |
|
| |
Linux 2.6 内核的精彩世界 Linux内核2.6版的开发已经接近尾声,2.6测试版发布已经二个月了,正式版预计明年年初发布。作为一个主要发布版本,2.6相对于2.4有很大的改动;它引入了许多新的特性,同样也去除很多过时的特性。它在哪些方面有大的改动?它对Linux的开发人员以及其他层面的Linux用户可能有什么样的影响?阅读本文,您将得到答案。--译者 |
|
|
|
2003年9月11日 |
|
| |
利用异常表处理 Linux 内核态缺页异常 本文通过分析 Linux 源码中的缺页异常处理部分,介绍了 GCC 提供的嵌入式汇编的扩展功能,向读者揭示了运行在核心态的进程如何通过内核设置好的异常表进行缺页异常处理的过程。 |
|
|
|
2003年11月17日 |
|
| |
内核比较: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日 |
|
| |
内核比较: 从 2.4 到 2.6 内核开发中的改进 期待已久的 2.6 内核终于到来了。IBM Linux Technology Center 的 Paul Larson 暗中关注那些让 2.6 成为有史以来最好内核的工具、测试和技术 —— 从修正控制和回归测试到缺陷追踪和列表保持。 |
|
|
|
2004年3月1日 |
|
| |
内核比较: 2.6 内核中改进了内存管理 2.6 Linux 内核使用了许多技术来改进对大量内存的使用,使得 Linux 比以往任何时候都更适用于企业。本文列出了一些更重要的改变,包括反向映射(reverse mapping)、使用更大的内存页、页表条目存储在高端内存中,以及更稳定的内存管理器。 |
|
|
|
2004年4月1日 |
|
| |
内核比较: 2.6 内核中网络的改进 从隧道和更好的文件安全性到加密和隐私保护,新的 Linux 内核中引入了对网络很多方面的支持与改进。本文的内容包括,这些改进会如何影响用户,并且它们使 Linux 更为安全,更适用于企业。 |
|
|
|
2004年4月1日 |
|
| |
Linux 系统内核空间与用户空间通信的实现与分析 多数的 Linux 内核态程序都需要和用户空间的进程交换数据,但 Linux 内核态无法对传统的 Linux 进程间同步和通信的方法提供足够的支持。本文总结并比较了几种内核态与用户态进程通信的实现方法,并推荐使用 netlink 套接字实现中断环境与用户态进程通信。 |
|
|
|
2004年7月1日 |
|
| |
Linux 内核空间与用户空间通信的实现与分析 多数的 Linux 内核态程序都需要和用户空间的进程交换数据,但 Linux 内核态无法对传统的 Linux 进程间同步和通信的方法提供足够的支持。本文总结并比较了几种内核态与用户态进程通信的实现方法,并推荐使用 netlink 套接字实现中断环境与用户态进程通信。 |
|
|
|
2004年7月12日 |
|
| |
Linux 内核压力测试 自动软件测试让您可以在一段时间内运行相同的测试,从而确保您所比较的内容具备真正的可比性。在本文中, Linux Test Project 团队的成员们分享了他们对 Linux? 内核进行压力所使用的测试的方法、原理以及脚本和工具。 |
|
|
|
2004年7月19日 |
|
| |
深入分析 Linux 内核链表 本文详细分析了 2.6.x 内核中链表结构的实现,并通过实例对每个链表操作接口进行了详尽的讲解。 |
|
|
|
2004年8月23日 |
|
| |
SYN Cookie 原理及其在 Linux 内核中的实现 本文就分别介绍一下 SYN Flood 攻击和 SYN Cookie 的原理,更重要的是介绍 Linux 内核中实现SYN Cookie 的方式。最后,本文给出一种增强目前 Linux 中 SYN Cookie 功能的想法。 |
|
|
|
2004年9月16日 |
|
| |
使用 Kprobes 调试内核 使用 printk 收集 Linux 内核的调试信息是一个众所周知的方法 —— 而使用 Kprobes,不需要经常重新引导和重新编译内核就可以完成这一任务。Kprobes 与 2.6 内核结合起来提供了一个动态插入 printk 的轻量级、无干扰而且强大的装置。记录调试信息(比如内核栈追踪、内核数据结构和寄存器)日志从来没有这么简单过! |
|
|
|
2004年9月19日 |
|
| |
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日 |
|
| |
在 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 2.6内核中新的锁机制――RCU 本文详细地介绍了 Linux 2.6 内核中新的锁机制 RCU(Read-Copy Update) 的实现机制,使用要求与典型应用。 |
|
|
|
2005年7月22日 |
|
| |
Linux 内核的同步机制,第 1 部分 本系列文章分两部分,第一部分详细地介绍了 Linux 内核中的同步机制:原子操作、信号量、读写信号量和自旋锁的API,使用要求以及一些典型示例。第二部分将详细介绍在Linux内核中的另外一些同步机制,包括大内核锁、读写锁、大读者锁、RCU和顺序锁。 |
|
|
|
2005年8月15日 |
|
| |
Linux 内核的同步机制,第 2 部分 这是本系列文章的第二部分,它详细地介绍了Linux内核中的同步机制:大内核锁、读写锁、大读者锁、RCU和顺序锁的API,使用要求以及一些典型示例。本系列文章的第一部分则详细地介绍了 Linux 内核中的其它一些同步机制,包括原子操作、信号量、读写信号量和自旋锁的API,使用要求以及一些典型示例。 |
|
|
|
2005年8月15日 |
|
| |
Linux 2.6.10 内核下 PCI Express Native 热插拔框架的实现机制 PCI 热插拔技术,可以有效避免由更换外设引起的服务器系统停机,对于提高服务器系统可用性和可扩展性意义重大。本文讨论了 PCI Express 热插拔所涉及的软件因素,并基于此,剖析了 Linux 2.6.10 内核下 PCI Express 插槽热插拔子系统的关键实现机制。 |
|
|
|
2005年8月18日 |
|
| |
inotify -- Linux 2.6 内核中的文件系统变化通知机制 本文详细地介绍了在 Linux 2.6.13 内核中新引入的文件系统变化通知机制 inotify,并举例说明了它的使用与典型应用案例。 |
|
|
|
2005年11月24日 |
|
| |
Linux 系统内核的调试 本文将首先介绍 Linux 内核上的一些内核代码监视和错误跟踪技术,这些调试和跟踪方法因所要求的使用环境和使用方法而各有不同,然后重点介绍三种 Linux 内核的源代码级的调试方法。 |
|
|
|
2005年12月12日 |
|
| |
从 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日 |
|
| |
在 Linux 下用户空间与内核空间数据交换的方式,第 1 部分: 内核启动参数、模块参数与sysfs、sysctl、系统调用和netlink 本系列文章包括两篇,它们文详细地介绍了 Linux 系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数、模块参数与 sysfs、sysctl、系统调用、netlink、procfs、seq_file、debugfs和relayfs,并给出具体的例子帮助读者掌握这些技术的使用。
本文是该系列文章的第一篇,它介绍了内核启动参数、模块参数与sysfs、sysctl、系统调用和netlink,并结合给出的例子程序详细地说明了它们如何使用。 |
|
|
|
2006年2月16日 |
|
| |
在 Linux 下用户空间与内核空间数据交换的方式,第 2 部分: procfs、seq_file、debugfs 和 relayfs 本系列文章包括两篇,它们文详细地地介绍了Linux系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数、模块参数与 sysfs、sysctl、系统调用、netlink、procfs、seq_file、debugfs和relayfs,并给出具体的例子帮助读者掌握这些技术的使用。本文是该系列文章的第二篇,它介绍了 procfs、seq_file、debugfs 和 relayfs,并结合给出的例子程序详细地说明了它们如何使用。 |
|
|
|
2006年2月16日 |
|
| |
使用 /proc 文件系统来访问 Linux 内核的内容 /proc 文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在 Linux 内核空间和用户空间之间进行通信。在 /proc 文件系统中,我们可以将对虚拟文件的读写作为与内核中实体进行通信的一种手段,但是与普通文件不同的是,这些虚拟文件的内容都是动态创建的。本文对 /proc 虚拟文件系统进行了介绍,并展示了它的用法。 |
|
|
|
2006年4月24日 |
|
| |
Linux 内核的文件 Cache 管理机制介绍 文件 Cache 管理是 Linux 内核中一个很重要并且较难理解的组成部分。本文详细介绍了 Linux 内核中文件 Cache 管理的各个方面,希望能够对开发者理解相关代码有所帮助。 |
|
|
|
2006年5月11日 |
|
| |
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日 |
|
| |
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日 |
|
| |
Relay:一种内核到用户空间的高效数据传输技术 Relay 是一种从 Linux 内核到用户空间的高效数据传输技术。通过用户定义的 relay 通道,内核空间的程序能够高效、可靠、便捷地将数据传输到用户空间。Relay 特别适用于内核空间有大量数据需要传输到用户空间的情形,目前已经广泛应用在内核调试工具如 SystemTap中。本文介绍了 Relay 的历史和原理,并且用一个简单的实例介绍了 Relay 的具体用法。 |
|
|
|
2006年12月28日 |
|
| |
使用 Linux 系统调用的内核命令 Linux 系统调用 —— 我们每天都在使用它们。不过您清楚系统调用是如何在用户空间和内核之间执行的吗?本文将探究 Linux 系统调用接口(SCI),学习如何添加新的系统调用(以及实现这种功能的其他方法),并介绍与 SCI 有关的一些工具。 |
|
|
|
2007年4月17日 |
|
| |
Linux 内核中断内幕 本文对中断系统进行了全面的分析与探讨,主要包括中断控制器、中断分类、中断亲和力、中断线程化与 SMP 中的中断迁徙等。首先对中断工作原理进行了简要分析,接着详细探讨了中断亲和力的实现原理,最后对中断线程化与非线程化中断之间的实现机理进行了对比分析。 |
|
|
|
2007年5月14日 |
|
| |
探索 Linux 内核虚拟机 Linux 既有良好的灵活性,在虚拟化方面同样出色。但是最近,随着内核虚拟机(KVM)的出现,Linux 虚拟化的前景发生了变化。KVM 是构成主流 Linux 内核(V2.6.20)一部分的第一个虚拟化解决方案。KVM 支持 Linux 客户操作系统的虚拟化 —— 甚至支持其硬件对虚拟化敏感的 Windows 系统的虚拟化。了解 Linux KVM 的架构并了解它与内核的紧密集成为何会改变您使用 Linux 的方式。
|
|
|
|
2007年5月28日 |
|
| |
Linux 内核剖析 Linux 内核是一个庞大而复杂的操作系统的核心,不过尽管庞大,但是却采用子系统和分层的概念很好地进行了组织。在本文中,您将探索 Linux 内核的总体结构,并学习一些主要的子系统和核心接口。您还可以通过其他 IBM 文章的链接更深入地进行学习。 |
|
|
|
2007年7月2日 |
|
| |
Linux 2.6 内核中的最新电源管理技术综述,第 1 部分 本系列文章将结合近年来不断在各种硬件上新增的节能技术,从 Linux 2.6 内核及整个 software stack 如何添加对这些创新的节能技术的支持这一角度,为读者介绍 Linux 操作系统近几年来在电源管理方面所取得的长足进步以及未来的发展方向。 |
|
|
|
2008年5月8日 |
|
| |
Linux 内核的排队自旋锁(FIFO Ticket Spinlock) 排队自旋锁(FIFO Ticket Spinlock)是 Linux 内核 2.6.25 版本中引入的一种新型自旋锁,它解决了传统自旋锁由于无序竞争导致的“公平性”问题。本文详细介绍了排队自旋锁的设计原理和具体实现,并与 Windows 操作系统采用的类似技术进行比较。最后讨论可能的扩展排队自旋锁的一些想法。 |
|
|
|
2008年6月5日 |
|
| |
Linux 可加载内核模块剖析 Linux 可加载内核模块(从内核的 1.2 版本开始引入)是 Linux 内核的最重要创新之一。它们提供了可伸缩的、动态的内核。探索隐藏在可加载模块后面的原理,并学习这些独立的对象如何动态地转换成 Linux 内核的一部分。 |
|
|
|
2008年8月7日 |
|
| |
使用 /sys 文件系统访问 Linux 内核 sysfs 是 Linux 内核中设计较新的一种基于内存的文件系统,它的主要作用是用来表示 Linux 统一设备模型;本文对 sysfs 的目录结构概观、其与 Linux 统一设备模型的关系、常见属性的用法作一定介绍,并且就内核编程方面,以具体的例子来展示如何添加 sysfs 支持。 |
|
|
|
2009年1月8日 |
|
| |
Linux 内核中的 GCC 特性 Linux 内核使用 GNU Compiler Collection (GCC) 套件的几个特殊功能。这些功能包括提供快捷方式和简化以及向编译器提供优化提示等等。了解这些特殊的 GCC 特性,学习如何在 Linux 内核中使用它们。 |
|
|
|
2009年4月7日 |
|
| |
Linux 内核的发展 生命的必然不仅包括死亡和纳税,还包括 GNU/Linux 操作系统的发展,最新的两个内核发布的确没有让人失望。2.6.28 和 2.6.29 版本包含了大量新的功能,比如先进的企业存储协议、两个新的文件系统、WiMAX 宽带网络支持以及存储完整性检查。通过本文了解为何现在就应该升级 Linux 内核。 |
|
|
|
2009年4月20日 |
|
| |
浅谈 Linux 内核开发之 PCI 设备驱动 本文介绍了 PCI 的基本概念,并从 Linux 内核的角度出发,介绍了 PCI 设备的初始化以及配置。 |
|
|
|
2009年6月11日 |
|
| |
内核中的 telnet 服务 通过在 Linux 的 ICMP 协议栈中嵌入一个私有的类 telnet 服务(称为 ktelnetd),开发人员可以从外部连接到嵌入式设备的内核中,并利用预置的命令检查内核的参数,甚至调整运行状态。这种方法有助于开发人员诊断和定位系统的异常。 |
|
|
|
2009年7月23日 |
|
| |
Linux 内核 SCSI IO 子系统分析 本文基于 LINUX2.6.18 内核,从 SCSI 设备访问请求的提交,SCSI 命令的处理、错误恢复几个方面浅析了 LINUX 内核中 SCSI 子系统的 IO 的处理机制。 |
|
|
|
2009年9月30日 |
|
| |
Linux 内核内存检测工具 - Kmemcheck 本文是 Linux 内核内存检测工具系列中的一篇,主要分析了 Kmemcheck 的原理,配置以及它的典型应用。读者在阅读完本文之后,能轻松地学会怎样利用 Kmemcheck 来对内核程序进行检测,同时也能从 Kmemcheck 的设计原理中得到一些启发。 |
|
|
|
2009年11月19日 |
|
| |
编译 Linux 内核 这篇免费、 dW-独有的教程向您展示怎样一步一步用适合您的机器的正确配置来重新建立 Linux 内核。 dW 专栏作家 Daniel Robbins 介绍了内核,并 逐步教您寻找并下载内核源代码、配置内核、编译并安装内核以及内核引导的配。 |
|
|
|
2000年9月27日 |
|
| |
破译 Linux 2.6 内核,第 2 部分:进行第一次破译 本教程是由两部分构成的系列的第 2 部分,通过这部分可以了解 Linux 内核源代码的组织,建立对系统调用的理解,并完成您自己的内核模块和补丁。 |
|
|
|
2005年9月15日 |
|
| |
LPI 201 考试准备:Linux 内核,中级管理 (LPIC-2) 主题 201 在本教程中,David Mertz 开始帮助您准备参加 Linux Professional Institute 中级管理(LPIC-2)考试 201。本系列教程分 8 个部分,这是第 1 部分。在这一部分中,您将学会如何理解、编译和定制 Linux 内核。 |
|
|
|
2005年10月24日 |
|
| |
LPI 102 考试准备:内核,初级管理(LPIC-1)主题 105 在这个教程中,Ian Shields 开始帮助您准备参加 Linux Professional Institute 初级管理(LPIC-1)考试 102。这是共有 9 个教程的系列中的第一个教程。在这个教程中,Ian 向您介绍 Linux 的内核。在学完本教程之后,您将掌握如何构建、安装和查询 Linux 内核及其内核模块。 |
|
|
|
2006年5月11日 |
|
| |
奇妙的 sys 请求 如果正在使用开发内核或设备驱动程序,或运行着那些能导致机器发生内核严重错误的代码,那么这个技巧会对您有用。 |
|
|
|
2000年4月1日 |
|
| |
通用线程 ― Linux 2.4 软件RAID,第二部分 新的 2.4 内核终于发布了,现在应该找一台空闲 PC,装上 Linux,看看它能做些什么。在这两篇系列文章中,Daniel Robbins 介绍了 Linux 2.4 软件 RAID ― 一种通过将数据分布于多个磁盘,从而增强磁盘性能和可靠性的技术。在本文中,Daniel 将说明软件 RAID-1、4 和 5 能做什么和不能做什么,以及应该如何在生产环境中实现这些 RAID 方案。在本文的第二部分,Daniel 将带领您体验更换 RAID-1 故障驱动器的模拟过程。 |
|
|
|
2001年2月1日 |
|
| |
通用线程: 学习 Linux LVM,第 1 部分 在本文中,Daniel 向您介绍了 Linux LVM(逻辑卷管理)背后的概念,并告诉您如何将最新的内核补丁和工具安装到您的系统上。LVM 可以让您在除机器上的物理存储资源以外创建逻辑卷。不过,与物理卷不同,逻辑卷可以在系统仍处于运行状态时扩充和缩减,这样就为 Linux 系统管理员提供了他们梦寐以求的存储器灵活性。 |
|
|
|
2001年3月1日 |
|
| |
为你的Linux快速编译所需要的模块 传统编译内核模块的方法繁琐而费时,本文将告诉我们一种快速编译所需要内核模块的新方法。 |
|
|
|
2001年5月1日 |
|
| |
如何在LINUX下实现硬件的自动检测(上) 用过Linux的人都知道在Linux上硬件的配置过程是非常繁杂的。比如说,对于一块普通的pci网卡,您可能先要知道它的芯片类型,网卡生产厂商,然后猜出它对应的硬件驱动模块,然后再使用modprobe(insmod)插入这个模块,再然后还要生成一系列的配置脚本,最后才能使其正常工作。这还只是一块网卡的配置过程,但是对于不胜枚举的其他硬件,如显卡、声卡、modem、isdn设备、usb设备、pcmcia设备,而它们的配置方法和生成的配置脚本都不尽相同,因此对于一个普通用户要想全部掌握这些配置过程是相当困难的。硬件的自动检测是进行Linux下设备自动配置过程的前提。本文的内容是先从硬件在Linux下的内核描述信息开始,着重介绍如何实现硬件的自动检测。 |
|
|
|
2001年7月1日 |
|
| |
构造Linux的图形化安装程序(1) 这是一个向用户介绍如何构造Linux的图形化安装程序的专栏。介绍的内容包括:安装环境的定制,图形化启动,本地化支持,分区功能,如何支持reiserfs、raid、lvm,rpm包的安装,定制各种启动配置脚本等等。本文是这个系列文章的第一篇,主要是向您介绍如何定制系统安装环境,包括生成安装内核,初始Ram盘的生成,最小化安装环境的定制。 |
|
|
|
2001年9月1日 |
|
| |
Source Insight3.0: Linux源代码阅读的利器 阅读源代码是钻研技术的最佳手段,而Linux提供了一个庞大的源代码库,但是,由于缺乏良好的源代码阅读工具,使得阅读Linux源代码尤其是内核源代码十分困难,在本文中,笔者向大家推荐一个优秀的源代码阅读工具,并介绍了它的使用方法。 |
|
|
|
2001年11月1日 |
|
| |
理解 Linux 配置文件 本文说明了 Linux 系统的配置文件,在多用户、多任务环境中,配置文件控制用户权限、系统应用程序、守护进程、服务和其它管理任务。这些任务包括管理用户帐号、分配磁盘配额、管理电子邮件和新闻组,以及配置内核参数。本文还根据配置文件的使用和其所影响的服务的情况对目前 Red Hat Linux 系统中的配置文件进行了分类。 |
|
|
|
2001年12月1日 |
|
| |
Linux 中 x86 的内联汇编 Bharata B. Rao 提供了在 Linux 平台上使用和构造 x86 内联汇编的概括性介绍。他介绍了内联汇编及其各种用法的基础知识,提供了一些基本的内联汇编编码指导,并解释了在 Linux 内核中内联汇编代码的一些实例。 |
|
|
|
2001年12月19日 |
|
| |
集群系统MOSIX分析(6) LINUX内核是通过系统调用为用户程序提供服务的。这部分我们将看看MOSIX是怎么处理迁移进程的系统调用请求的。 |
|
|
|
2002年1月22日 |
|
| |
Linux服务器集群系统(四) 本文主要讲述了LVS集群的IP负载均衡软件IPVS在内核中实现的各种连接调度算法。针对请求的服务时间变化很大,给出一个动态反馈负载均衡算法,它结合内核中的加权连接调度算法,根据动态反馈回来的负载信息来调整服务器的权值,来进一步避免服务器间的负载不平衡。 |
|
|
|
2002年5月20日 |
|
| |
netfilter/iptables 简介 netfilter/iptables 是与最新的 2.4.x 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器,则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。Mugdha Vairagade 将介绍 netfilter/iptables 系统、它是如何工作的、它的优点、安装和配置以及如何使用它来配置 Linux 系统上的防火墙以过滤 IP 信息包。 |
|
|
|
2002年9月11日 |
|
| |
采访: 安腾传道者 别去管贬低者,David Mosberger — 最初将 GCC 移植到 IA-64 的开发人员以及 IA-64 上的 Linux 首席内核架构设计师 — 认为您应关注 Intel 的新 64 位芯片。 |
|
|
|
2002年9月17日 |
|
| |
Linux下写者优先的读写锁的设计 现在的linux内核源代码的发行版本而言,已经实现了读写锁的一个类型,就是读者优先的读写锁。而我要设计的读写锁,则是以写进程为优先的考虑的对象,如果有写的请求发出,则它会在被允许的最快时间内得到响应。这样的好处是在一个由很多客户端以读的权限访问的服务器(如一般的公众服务器),如果管理员对服务器的某些内容或配置进行修改的话,那它的及时性就有可能无法满足。 |
|
|
|
2003年5月12日 |
|
| |
Linux 2.4.x 网络协议栈QoS模块(TC)的设计与实现 本文描述了linux 2.4.x内核中对Qos支持的设计与实现,并且对缺省的数据包调度机制PFIFO进行了详细的分析。 |
|
|
|
2003年6月5日 |
|
| |
Linux网桥的实现分析与使用 本文分析了Linux 2.4.x内核的网桥的实现方法,并且描述了如何使用2.4中的网桥。 |
|
|
|
2003年6月23日 |
|
| |
如何增强 Linux 系统的安全性,第一部分: Linux 安全模块(LSM)简介 Linux安全模块(LSM)是Linux内核的一个轻量级通用访问控制框架。本文介绍Linux安全模块(LSM)的相关背景,设计思想,实现方法;并说明如何使用Linux安全模块(LSM)来增强Linux系统的安全性:一方面是供内核开发人员和安全研究人员使用的接口,另一方面是供普通用户使用的模块,以及具体的使用方法。如果读者具有Linux内核和安全的相关背景知识,可以有助于对本文的理解;如果不具有,可以先阅读本文最后参考资料中列出的IBM dW上的三篇文章。 |
|
|
|
2003年7月26日 |
|
| |
Linux 关机重启流程分析 linux下的关机和重启流程对于一般的桌面应用和网络服务器来说并不重要,但是在用户自己定义的嵌入式系统内核中就有一定的研究意义,通过了解Linux 关机重启的流程,我们对它可以修改和自定义,甚至以此为基础开发出全新的功能来。 |
|
|
|
2003年8月11日 |
|
| |
Linux bootloader 编写方法 对于移植 linux 到其它开发板的人来说,编写 boot loader 是一个不可避免的过程。对于学习linux的人来讲,编写 bootloader 也是一个很有挑战性的工作。本文通过对 linux引导协议进行分析,详细阐述了如何编写一个可以在 i386 机器上引导 2.4.20内核的基本的bootloader。 |
|
|
|
2003年8月11日 |
|
| |
Linux下PCI设备驱动程序开发 PCI是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准。Linux的内核能较好地支持PCI总线,本文以Intel 386体系结构为主,探讨了在Linux下开发PCI设备驱动程序的基本框架。 |
|
|
|
2003年9月10日 |
|
| |
Linux Netfilter实现机制和扩展技术 本文从Linux网络协议栈中报文的流动过程分析开始,对Linux 2.4.x内核中最流行的防火墙构建平台Netfilter进行了深入分析,着重介绍了如何在Netfilter-iptables机制中进行应用扩展,并在文末给出了一个利用扩展Netfilter-iptables实现VPN的方案。 |
|
|
|
2003年10月16日 |
|
| |
走向 Linux 2.6 即将发布的新的稳定的内核支持更多类型的处理器,并且可靠性和可扩展性得到了提高,因而将推动 Linux 得到更广泛的应用。在这里我们将重点介绍一些不同程度的变化,并给出部分代码样例。 |
|
|
|
2003年11月1日 |
|
| |
用 OProfile 彻底了解性能 由于在硬件和软件之间有一些意料之外的交互,分析 Linux 操作系统和应用程序的代码可能是很困难的,但评测( profiling )办法可以识别出系统的性能问题。本文介绍的是 Oprofile,这是一种用于 Linux 的评测工具,将包含在即将发布的稳定内核中。 |
|
|
|
2003年12月1日 |
|
| |
测试 Linux 的可靠性 本文记录了 Linux 内核和其他核心 OS 组件的测试结果与分析,从库和设备驱动程序到文件系统和网络,测试范围无所不含,所有的测试都是在相当不利的条件下进行,并且经历了很长的时间。IBM Linux Technology Center 刚刚结束了这次长达三个多月的全面测试,并将他们的 LTP (Linux Test Project) 测试结果与 developerWorks 的读者共享。 |
|
|
|
2004年2月1日 |
|
| |
用 DSF 模拟设备 Device Simulator Framework(DSF)为您的所有设备提供了一个易用的输入输出控制 (ioctl) 接口,无论这些设备是否确实存在。对那些经验丰富的内核和设备驱动程序软件开发人员而言,DSF 让调试和测试设备代码变得更容易,而这些工作如果没有 DSF 将难以进行模拟和再现。 |
|
|
|
2004年3月1日 |
|
| |
Linux 2.4调度系统分析 本文详尽地分析了Linux 2.4内核中调度系统的工作原理,特别是i386体系结构下SMP系统的调度表现。通过对2.4调度系统实现原理及其细节的分析,文章在文末指出了2.4调度系统在功能上、实时性上以及多处理机系统表现上存在的不足,为后继的2.6系统的分析作铺垫。 |
|
|
|
2004年3月9日 |
|
| |
Linux 无线网络技术 -- Linux 上的 WLAN、Bluetooth、GPRS、GSM 和 Infrared Data 一览 当今,不考虑 Linux 和无线网络技术的话,就无法谈到计算机和网络。在这篇文章中,Sreekrishnan Venkateswaran 用 Linux 观点阐释了通过 WLAN、Bluetooth、GPRS、GSM 以及 IrDA 实现无线联网。他使用各种不同的无线设备和相应的内核层,以及用户空间工具来示范它们在 Linux 下如何工作。 |
|
|
|
2004年4月19日 |
|
| |
Linux 2.6 对新型 CPU 快速系统调用的支持 文章分析了在 Linux 2.6 中引入的对 Intel CPU 快速系统调用指令 SYSENTER/SYSEXIT 支持的实现。Linux 驱动及内核开发者通过了解快速系统调用指令的机制,可以在自己的代码中通过利用这一机制,提高系统性能,并避开由快速系统调用方式带来的一些局限(如系统调用中嵌套系统调用)。 |
|
|
|
2004年5月1日 |
|
| |
IA64 Linux 外部中断处理机制 本文分析和介绍了 Intel IA64 体系结构中新型的中断处理方式��SAPIC(Streamlined Advanced Programmable Interrupt Controller),通过分析 IA64 Linux 2.4.21 内核的外部中断处理过程,着重讨论了 IA64 Linux 对 SAPIC 的支持,为 IA64 Linux 系统开发人员实现 SAPIC 的中断处理提供技术参考。 |
|
|
|
2004年5月27日 |
|
| |
使用 kexec 快速重启 Linux -- 为获得更多正常运行时间而不再使用引导装载程序 即使您的工作不要求您每天多次重新启动您的 Linux 机器,等待系统启动也实在是一件枯燥的事情。因而有了 kexec。本质上讲,kexec 是一个让您可以重新启动到一个新 Linux 内核的快速重新引导功能部件 ―― 不必通过引导装载程序。更快速的重新启动即使对于正常运行时间并不是至关重要时也是有益的 ―― 对那些每天都要多次重新启动机器的内核和系统软件开发者来说更可谓是救生者。kexec 当前只能用在 x86 32 位平台上。 |
|
|
|
2004年6月10日 |
|
| |
Linux 线程库性能测试与分析 NPTL 成为 glibc "正选"线程库后,它的性能如何受到很多人的关注。本文就针对NPTL 与 LinuxThreads 的性能比较,以及超线程、内核可抢占等特性对线程性能的影响进行了全面评测。 |
|
|
|
2004年7月1日 |
|
| |
让 Linux 更安全,第 1 部分:介绍 惟有谨小慎微者方可幸存,与其他领域一样,在确保 Linux 系统的安全时,这句话也同样适用。幸运的是,有很多安全部件,或者已经编译到内核中,或者已经加入到很多 Linux 发行版本中,或者可以以开放源代码应用程序的形式单独获得。作为本系列的第 1 部分,本文将使您开始理解安全的概念及潜在的危险,并为您真正需要知道的内容做好准备:如何保护和加固基于 Linux 的安装。 |
|
|
|
2004年8月2日 |
|
| |
让 Linux 更安全,第 1 部分:介绍 惟有谨小慎微者方可幸存,与其他领域一样,在确保 Linux 系统的安全时,这句话也同样适用。幸运的是,有很多安全部件,或者已经编译到内核中,或者已经加入到很多 Linux 发行版本中,或者可以以开放源代码应用程序的形式单独获得。作为本系列的第 1 部分,本文将使您开始理解安全的概念及潜在的危险,并为您真正需要知道的内容做好准备:如何保护和加固基于 Linux 的安装。 |
|
|
|
2004年8月2日 |
|
| |
X86-64上的Linux VM管理系统 本文主要分析运行于X86-64上的Linux操作系统的虚拟内存管理系统,所用的Linux是Suse 8,内核版本是2.4.19。 |
|
|
|
2004年10月21日 |
|
| |
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日 |
|
| |
让 Linux 更安全,第 2 部分:计划安装 惟有谨小慎微者方可幸存,与其他领域一样,在确保 Linux 系统的安全时,这句话也同样适用。幸运的是,有很多安全特性,或者已经编译到内核中,或者已经加入到很多 Linux 发行版本中,或者可以以开放源代码应用程序的形式单独获得。第 2 部分涵盖了清单评估、风险分析、确定用户类别和访问特权,以及安全获得 Linux 发行版本的更详细行动计划和步骤。 |
|
|
|
2004年11月11日 |
|
| |
动态替换Linux核心函数的原理和实现 在调试Linux核心模块时,有时需要能够实时获取内部某个路径上的某些函数的执行状态,例如查看传入的变量是否是期望的值,以便判断整个执行流程是否依然正常。由于系统运行时的动态性,使得在执行之前无法预先知道在执行路径的什么地方可能出现问题,因此只能在整个路径上增加许多不必要的信息查询点,造成有用的状态信息被淹没,而且这种增加信息输出的方式(一般是在核心中通过printk语句打印)需要重新编译内核,重新引导,造成了时间上浪费。此时就需要有一种能够方便地实时截取执行路径上怀疑点的方法,本文描述了一种动态替换linux核心函数的基本实现原理。 |
|
|
|
2005年1月1日 |
|
| |
使用 Xen:使用虚拟 Linux 来测试您的应用 Xen 是可用于 Linux 内核的一种虚拟化技术,让您可以像在现有环境中一样安装并测试新的升级,而不必担心破坏原有的系统。作者将向您介绍如何使用 Fedora Core 安装 Xen,不过,安装之后,在任何发行版本上的 Xen 中,所有程序运转起来都是相同的。了解 Linux 上的虚拟化,知道具有一个用于测试新软件的沙盒的好处,并练习在同一台 Linux 机器上运行多个虚拟机。 |
|
|
|
2005年4月4日 |
|
| |
使用 inotify 监控 Linux 文件系统事件 inotify 是文件系统事件监控机制,计划包含在即将发布的 Linux 内核中作为 dnotify 的有效替代。dnotify 是较早内核支持的文件监控机制。Inotify 是一种强大的、细粒度的、异步的机制,它满足各种各样的文件监控需要,不仅限于安全和性能。下面让我们一起学习如何安装 inotify 和如何构建一个示例用户空间应用程序来响应文件系统事件。 |
|
|
|
2005年4月25日 |
|
| |
解析 Linux 中的 VFS 文件系统机制 本文阐述 Linux 中的文件系统部分,源代码来自基于 IA32 的 2.4.20 内核。总体上说 Linux 下的文件系统主要可分为三大块:一是上层的文件系统的系统调用,二是虚拟文件系统 VFS(Virtual Filesystem Switch),三是挂载到 VFS 中的各实际文件系统,例如 ext2,jffs 等。本文侧重于通过具体的代码分析来解释 Linux 内核中 VFS 的内在机制,在这过程中会涉及到上层文件系统调用和下层实际文件系统的如何挂载。文章试图从一个比较高的角度来解释 Linux 下的 VFS 文件系统机制。 |
|
|
|
2005年4月28日 |
|
| |
RT-Signal 及其应用要点 本文指出 POSIX RT-Signal 在应用中的使用方法和在设备驱动程序编写中的要点,以及内核中对应的技术内幕,特别的,纠正了著作 Linux Device Driver [3] [4]中相关的错误内容。实时信号驱动可以形成一个高性能的可伸缩 I/O 处理框架。 |
|
|
|
2005年5月16日 |
|
| |
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日 |
|
| |
Spufs:Cell Synergistic Processing Unit 用作一个虚拟文件系统 对于 Linux on the Cell 的基本平台支持早已搭建好了,目前正努力加入主流的 Linux 内核树。阅读本文可以了解 Cell 这种独一无二的体系结构,以及可以运行 Linux 的 SPU 文件系统接口。 |
|
|
|
2005年7月18日 |
|
| |
使用 FUSE 开发自己的文件系统 使用用户空间的文件系统(FUSE),您无需理解文件系统的内幕,也不用学习内核模块编程的知识,就可以开发用户空间的文件系统框架。本文是一篇简单的逐步介绍的指南,内容包括安装、定制和启用 FUSE 和 AFS,这样您就可以在 Linux 的用户空间中创建自己的功能完备的文件系统了。 |
|
|
|
2006年4月10日 |
|
| |
使用 SCTP 优化网络 流控制传输协议(Stream Control Transmission Protocol,SCTP)是一种可靠的传输协议,它在两个端点之间提供稳定、有序的数据传递服务(非常类似于 TCP),并且可以保护数据消息边界(例如 UDP)。然而,与 TCP 和 UDP 不同,SCTP 是通过多宿主(Multi-homing)和多流(Multi-streaming)功能提供这些收益的,这两种功能均可提高可用性。在本文中,我们将学习 Linux 2.6 内核中 SCTP 的关键特性,并通过服务器和客户机的源代码了解该协议提供多流的能力。 |
|
|
|
2006年4月10日 |
|
| |