跳转到主要内容


developerWorks 中国  >  Linux  >  

文档库

developerWorks
 
  
 
 题目  28    隐藏内容简介    
 
题目 日期
剖析共享程序库
共享程序库通过版本号来完成对应用程序所使用程序库的升级,同时保留了对原有应用程序的兼容。本文将讨论此方法的实际内幕,以及在常规 Linux 系统上的 /usr/lib 中有很多符号链接的原因。
    2005年1月31日  
 
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日  
 
read 系统调用剖析
大部分程序员可能会有这样的疑问:当在程序中调用库函数 read 时,这个请求是经过哪些处理最终到达磁盘的呢,数据又是怎么被拷贝到用户缓存区的呢?本文介绍了从 read 系统调用发出到结束处理的全过程。该过程包括两个部分:用户空间的处理、核心空间的处理。用户空间处理部分是系统调用从用户态切到核心态的过程。核心空间处理部分则是 read 系统调用在 linux 内核中处理的整个过程。
    2008年3月13日  
 
实时 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日  
 
TCP 连接断连问题剖析
TCP 连接的保持并不需要任何额外的操作,但在实际应用中,要长时间保持一个 TCP 连接则会受到诸多因素的影响。本文介绍了几种常见的导致 TCP 连接断连的原因,并在此基础上,以 AIX 系统上 TCP 连接的异常断连为例,借助相应的网络分析工具,逐步揭开 AIX 上 TCP 断连的原因,并给出两种可行的解决方案。
    2008年8月21日  
 
Linux 动态库剖析
动态链接的共享库是 GNU/Linux 的一个重要方面。该种库允许可执行文件在运行时动态访问外部函数,从而(通过在需要时才会引入函数的方式)减少它们对内存的总体占用。本文研究了创建和使用静态库的过程,详细描述了开发它们的各种工具,并揭秘了这些库的工作方式。
    2008年9月8日  
 
Linux 进程管理剖析
Linux 的用户空间进程的创建和管理所涉及的原理与 Unix 有很多共同点,但也有一些特定于 Linux 的独特之处。在本文中,了解 Linux 进程的生命周期,探索用户进程创建、内存管理、调度和销毁的内核内幕。
    2009年1月20日  
 
剖析 ext4
第 4 个扩展文件系统,即 ext4,是下一代的日志文件系统,它与上一代文件系统 ext3 是向后兼容的。尽管 ext4 目前还不是标准文件系统,但它将成为大部分下一代 Linux 发行版的默认文件系统。了解 ext4,以及它为什么将成为您最喜欢的新文件系统。
    2009年3月16日  
 
探索 Pexpect,第 1 部分:剖析 Pexpect
Pexpect 是一个用来启动子程序并对其进行自动控制的 Python 模块。 Pexpect 可以用来和像 ssh、ftp、passwd、telnet 等命令行程序进行自动交互。本文章介绍 Pexpect 的主要用法和在实际应用中的注意点。 Python 语言的爱好者,系统管理人员,部署及测试人员都能使用 Pexpect 在自己的工作中实现与命令行交互的自动化。
    2009年5月7日  
 
剖析 Linux hypervisor
Linux 的最重要创新之一就是转变为 hypervisor(运行其他操作系统的操作系统)。现在涌现许多使用 Linux 作为内核的 hypervisor 解决方案。本文探索hypervisor背后的原理,以及两个使用 Linux 作为平台的 hypervisor(KVM 和 Lguest)。
    2009年6月29日  
 
Linux 虚拟系统文件交换器剖析
Linux 的最显著特征是灵活性和扩展性,例如它的虚拟文件系统交换器(VFS)。您可以在各种设备上创建文件系统,包括传统的磁盘、USB flash 驱动、内存以及其他储存设备。您还可以在另一个文件系统环境中嵌入文件系统。探索导致 VFS 如此强大的因素,并了解 VFS 的主要接口和进程。
    2009年9月28日  
 
揭开 SE Linux 的秘密:第 2部分
美国国家安全局 (NSA)不同寻常地向开放源码社区公布了安全性增强型版本的 Linux --包括代码和所有部分。这篇 developerWorks 的第 2部分专门深入研究了该代码,剖析了 security_av 是如何计算的以及检查如何调用其它 SE Linux 安全性特性。
    2001年3月1日  
 
Webmin: Unix上的GUI管理工具(2)
本文是对 Webmin介绍的第二部分,着重探讨 Webmin的技术内幕和如何编写 Webmin模块。文中首先介绍剖析了 Webmin内部结构,然后在 Webmin发行包基础上了裁减出了一个 Webmin的核心,最后介绍如何编写一个 Webmin模块。
    2002年2月1日  
 
IBM Cluster 1350与CSM
本文首先对Linux高性能集群Cluster1350及其集群管理系统CSM (Cluster System Management)进行了简要的介绍,然后对CSM的体系结构进行了比较详细的剖析
    2003年7月9日  
 
程序的链接和装入及Linux下动态链接的实现
程序的链接和装入存在着多种方法,而如今最为流行的当属动态链接、动态装入方法。本文首先回顾了链接器和装入器的基本工作原理及这一技术的发展历史,然后通过实际的例子剖析了Linux系统下动态链接的实现。了解底层关键技术的实现细节对系统分析和设计人员无疑是必须的,尤其当我们在面对实时系统,需要对程序执行时的时空效率有着精确的度量和把握时,这种知识更显重要。
    2003年8月10日  
 
Linux 2.6.10 内核下 PCI Express Native 热插拔框架的实现机制
PCI 热插拔技术,可以有效避免由更换外设引起的服务器系统停机,对于提高服务器系统可用性和可扩展性意义重大。本文讨论了 PCI Express 热插拔所涉及的软件因素,并基于此,剖析了 Linux 2.6.10 内核下 PCI Express 插槽热插拔子系统的关键实现机制。
    2005年8月18日  
 
高性能自旋锁 MCS Spinlock 的设计与实现
自旋锁(Spinlock)是一种在 Linux 内核中广泛运用的底层同步机制。排队自旋锁(FIFO Ticket Spinlock)是 Linux 内核 2.6.25 版本中引入的一种新型自旋锁,它解决了传统自旋锁由于无序竞争导致的“公平性”问题。但是由于排队自旋锁在一个共享变量上“自旋”,因此在锁竞争激烈的多核或 NUMA 系统上导致性能低下。MCS Spinlock 是一种基于链表的高性能、可扩展的自旋锁,本文详细剖析它的原理与具体实现。
    2008年10月30日  
 
探索 Pexpect,第 2 部分:Pexpect 的实例分析
Pexpect 是一个用来启动子程序并对其进行自动控制的纯 Python 模块。 Pexpect 可以用来和像 ssh、ftp、passwd、telnet 等命令行程序进行自动交互。继第一部分《探索 Pexpect,第 1 部分:剖析 Pexpect 》介绍了 Pexpect 的基础和如何使用后,本文将结合具体实例入手,详细介绍 Pexpect 的用法和在实际应用中的注意点。
    2009年8月26日  
 
Perl 面向对象编程的两种实现和比较
本文比较了在 Perl 中两种主流的面向对象编程的实现方式,基于匿名哈希表的实现和基于数组的实现。深刻地剖析了两种实现的技术内幕,并且提供了可供读者直接使用的代码和模块示例。在文章的最后作者比较了两种实现方式的优劣,并对读者给出了在实际工作中选择何种方式实现面向对象编程的建议。
    2009年9月17日  
 
 题目  28    隐藏内容简介    
 
没有找到您想要的结果吗? 提交反馈