 |
 |
 |
 |
 |
 |
Linux slab 分配器剖析 良好的操作系统性能部分依赖于操作系统有效管理资源的能力。在过去,堆内存管理器是实际的规范,但是其性能会受到内存碎片和内存回收需求的影响。现在,Linux 内核使用了源自于 Solaris 的一种方法,但是这种方法在嵌入式系统中已经使用了很长时间了,它是将内存作为对象按照大小进行分配。本文将探索 slab 分配器背后所采用的思想,并介绍这种方法提供的接口和用法。 |
|
|
|
2007年6月11日 |
|
| |
Linux 内核剖析 Linux 内核是一个庞大而复杂的操作系统的核心,不过尽管庞大,但是却采用子系统和分层的概念很好地进行了组织。在本文中,您将探索 Linux 内核的总体结构,并学习一些主要的子系统和核心接口。您还可以通过其他 IBM 文章的链接更深入地进行学习。 |
|
|
|
2007年7月2日 |
|
| |
Linux 网络栈剖析 Linux 操作系统的最大特性之一就是它的网络栈。它最初源于 BSD 的网络栈,具有一套非常干净的接口,组织得非常好。其接口范围从协议无关层(例如通用 socket 层接口或设备层)到各种网络协议的具体层。本文将从分层角度对 Linux 网络栈的接口进行探索,并介绍其中的一些主要结构。 |
|
|
|
2007年7月16日 |
|
| |
Linux 同步方法剖析 在学习 Linux 的过程中,您也许接触过并发(concurrency)、临界段(critical section)和锁定,但是如何在内核中使用这些概念呢?本文讨论了 2.6 版内核中可用的锁定机制,包括原子运算符(atomic operator)、自旋锁(spinlock)、读/写锁(reader/writer lock)和内核信号量(kernel semaphore)。本文还探讨了每种机制最适合应用到哪些地方,以构建安全高效的内核代码。 |
|
|
|
2007年11月19日 |
|
| |
Linux 文件系统剖析 在文件系统方面,Linux 可以算得上操作系统中的 “瑞士军刀”。Linux 支持许多种文件系统,从日志型文件系统到集群文件系统和加密文件系统。对于使用标准的和比较奇特的文件系统以及开发文件系统来说,Linux 是极好的平台。本文讨论 Linux 内核中的虚拟文件系统(VFS,有时候称为虚拟文件系统交换器),然后介绍将文件系统连接在一起的主要结构。 |
|
|
|
2007年12月3日 |
|
| |
Linux SCSI 子系统剖析 Small Computer Systems Interface (SCSI) 是一组标准集,它定义了与大量设备(主要是与存储相关的设备)通信所需的接口和协议。 Linux 提供了一种 SCSI 子系统,用于与这些设备通信。Linux 是分层架构的一个很好的例子,它将高层的驱动器(比如磁盘驱动器或光驱)连接到物理接口,比如 Fibre Channel 或 Serial Attached SCSI(SAS)。本文向您介绍了 Linux SCSI 子系统,并且讨论了这些子系统将来的发展方向。 |
|
|
|
2007年12月6日 |
|
| |
实时 Linux 架构剖析 Linux 的速度或效率都非常不错,只是在一些情况下,这样的速度还不能满足需求。我们需要的是在特定的容差范围内确定性地满足调度期限的能力。本文将揭示各种实现实时 Linux 的可选方案以及它们如何实现实时性 - 从早期的模仿虚拟化解决方案的架构到如今标准 2.6 内核中可用的选项。 |
|
|
|
2008年5月19日 |
|
| |
安全增强 Linux (SELinux) 剖析 Linux 一直被认为是最安全的操作系统之一,但是通过引入安全增强 Linux(Security-Enhanced Linux,SELinux),National Security Agency (NSA) 将 Linux 的安全性提升到了新的高度。SELinux 通过对内核和用户空间进行修改,对现有的 GNU/Linux 操作系统进行了扩展,从而使其变得坚不可摧。如果您现在正在使用 2.6 版的内核,就会惊奇地发现您已经在使用 SELinux 了!本文将探究 SELinux 背后的思想及其实现方法。 |
|
|
|
2008年6月2日 |
|
| |
Linux flash 文件系统剖析 您之前可能听说过 Journaling Flash File System(JFFS)和 Yet Another Flash File System(YAFFS),但是您知道使用底层 flash 设备的文件系统意味着什么吗?本文将向您介绍 Linux 的 flash 文件系统,并探索它们如何通过平均读写(wear leveling)处理底层的可消耗设备(flash 部件),并鉴别各种不同的 flash 文件系统以及它们的基本设计。 |
|
|
|
2008年6月10日 |
|
| |
Linux 日志文件系统剖析 在近代历史上,日志文件系统被认为十分奇特,主要是处于研究阶段。而如今,日志文件系统(ext3)已经成为 Linux 的缺省文件系统。本文向大家揭示了日志文件系统背后的一些思想,以及在电源故障或系统崩溃时,如何提供更好的完整性。此外本文还介绍了现行的几种日志文件系统和下一代日志文件系统。 |
|
|
|
2008年7月7日 |
|
| |
Linux 可加载内核模块剖析 Linux 可加载内核模块(从内核的 1.2 版本开始引入)是 Linux 内核的最重要创新之一。它们提供了可伸缩的、动态的内核。探索隐藏在可加载模块后面的原理,并学习这些独立的对象如何动态地转换成 Linux 内核的一部分。 |
|
|
|
2008年8月7日 |
|
| |
Linux 动态库剖析 动态链接的共享库是 GNU/Linux 的一个重要方面。该种库允许可执行文件在运行时动态访问外部函数,从而(通过在需要时才会引入函数的方式)减少它们对内存的总体占用。本文研究了创建和使用静态库的过程,详细描述了开发它们的各种工具,并揭秘了这些库的工作方式。 |
|
|
|
2008年9月8日 |
|
| |
Linux 进程管理剖析 Linux 的用户空间进程的创建和管理所涉及的原理与 Unix 有很多共同点,但也有一些特定于 Linux 的独特之处。在本文中,了解 Linux 进程的生命周期,探索用户进程创建、内存管理、调度和销毁的内核内幕。 |
|
|
|
2009年1月20日 |
|
| |
Linux 虚拟系统文件交换器剖析 Linux 的最显著特征是灵活性和扩展性,例如它的虚拟文件系统交换器(VFS)。您可以在各种设备上创建文件系统,包括传统的磁盘、USB flash 驱动、内存以及其他储存设备。您还可以在另一个文件系统环境中嵌入文件系统。探索导致 VFS 如此强大的因素,并了解 VFS 的主要接口和进程。 |
|
|
|
2009年9月28日 |
|
| |
揭开 SE Linux 的秘密:第 2部分 美国国家安全局 (NSA)不同寻常地向开放源码社区公布了安全性增强型版本的 Linux --包括代码和所有部分。这篇 developerWorks 的第 2部分专门深入研究了该代码,剖析了 security_av 是如何计算的以及检查如何调用其它 SE Linux 安全性特性。 |
|
|
|
2001年3月1日 |
|
| |
IBM Cluster 1350与CSM 本文首先对Linux高性能集群Cluster1350及其集群管理系统CSM (Cluster System Management)进行了简要的介绍,然后对CSM的体系结构进行了比较详细的剖析。 |
|
|
|
2003年7月9日 |
|
| |
高性能自旋锁 MCS Spinlock 的设计与实现 自旋锁(Spinlock)是一种在 Linux 内核中广泛运用的底层同步机制。排队自旋锁(FIFO Ticket Spinlock)是 Linux 内核 2.6.25 版本中引入的一种新型自旋锁,它解决了传统自旋锁由于无序竞争导致的“公平性”问题。但是由于排队自旋锁在一个共享变量上“自旋”,因此在锁竞争激烈的多核或 NUMA 系统上导致性能低下。MCS Spinlock 是一种基于链表的高性能、可扩展的自旋锁,本文详细剖析它的原理与具体实现。 |
|
|
|
2008年10月30日 |
|
| |