《深入理解LINUX内核(第二版)》的原文摘录

  • 中断(interrupt)通常被定义为一个事件,该事件改变处理器执行的指令顺序。 (查看原文)
    杰良 2011-11-24 00:18:32
    —— 引自章节:第四章 - 中断和异常
  • 物理IRQ可以分配给32~238范围内的任何向量。 (查看原文)
    杰良 2011-11-24 00:18:32
    —— 引自章节:第四章 - 中断和异常
  • 每个中断向量都有它自己的irq_desc_t描述符。 (查看原文)
    杰良 2011-11-24 00:18:32
    —— 引自章节:第四章 - 中断和异常
  • 临界区是一段代码,在其他的内核控制路径能够进入临界区前,进入临界区的的内核控制路径必须全部执行完这段代码。 (查看原文)
    杰良 2011-11-24 14:38:29
    —— 引自章节:第五章 - 内核同步
  • 每个定时器都包含一个字段,表示定时器将需要多长时间到期。每个字段的初值就是jiffies的当前值加上合适的节拍数。 (查看原文)
    杰良 2011-11-24 23:52:56
    —— 引自章节:第六章 - 定时测量
  • Linux的调度基于分时(time sharing)技术:多个进程以“时间多路复用”方式运行,因为CPU的时间被分成“片(slice)”,给每个可运行进程分配一片。 (查看原文)
    杰良 2011-11-29 00:40:26
    —— 引自章节:第七章 - 进程调度
  • 数据结构runqueue是Linux2.6调度程序最重要的数据结构。系统中的每个CPU都有它自己的运行队列,所有的runqueue结构存放在runqueue每CPU变量中。 (查看原文)
    杰良 2011-11-29 00:40:26
    —— 引自章节:第七章 - 进程调度
  • 当用户态进程请求动态内存时,并没有获得请求的页框,而仅仅获得对一个新的线性地址区域的使用权,而这一线性地址区间就成为进程地址空间的一部分。这一区间叫做“线性区” (查看原文)
    杰良 2011-12-05 16:04:09
    —— 引自章节:第九章 - 进程地址空间
  • 让我们先强调一下应用编程接口(API)与系统调用之不同。前者只是一个函数定义,说明了如何获得一个给定的服务;而后者是通过软中断向内核发出一个明确的请求。 (查看原文)
    杰良 1回复 2011-12-06 02:07:41
    —— 引自章节:第十章 - 系统调用
  • 当发送给进程一个信号时,这个信号可能来自内核,也可能来自另一个进程。 (查看原文)
    杰良 2011-12-07 00:21:58
    —— 引自章节:第十一章 - 信号
  • 虚拟文件系统所隐含的思想是把表示很多不同种类文件系统的共同信息放入内核;其中有一个字段或函数来支持Linux所支持的所有实际文件系统所提供的任何操作。对所调用的每个读、写或其他函数,内核都能把它们替换成支持本地Linux文件系统、NTFS文件系统,或者文件所在的任何其他文件系统的实际函数。 (查看原文)
    杰良 2011-12-08 22:15:17
    —— 引自章节:第十二章 - 虚拟文件系统
  • Linux 2.6 提供了一些数据结构和辅助函数,它们为系统中所有的总线、设备以及设备驱动程序提供了一个统一的视图;这个框架被称为设备驱动模型。 (查看原文)
    杰良 2011-12-10 00:56:59
    —— 引自章节:第十三章
  • When a file is created by a process, its owner ID is the UID of the process. Its owner user group ID can be either the process group ID of the creator process or the user group ID of the parent directory, depending on the value of the sgid flag of the par- ent directory. (查看原文)
    员外👻 2012-03-03 17:58:39
    —— 引自第16页
  • 1. Kernel preemption disabling 2. Interrupt disabling 3. Semaphores 4. Spin locks (查看原文)
    员外👻 2012-03-03 20:15:04
    —— 引自第24页
  • Three Thread-Local Storage (TLS) segments: this is a mechanism that allows multithreaded applications to make use of up to three segments containing data local to each thread. The set_thread_area() and get_thread_area() system calls, respectively, create and release a TLS segment for the executing process. (查看原文)
    员外👻 1赞 2012-03-03 23:08:43
    —— 引自第44页
  • Besides general-purpose hardware caches, 80 × 86 processors include another cache called Translation Lookaside Buffers (TLB) to speed up linear address translation. When a linear address is used for the first time, the corresponding physical address is computed through slow accesses to the Page Tables in RAM. The physical address is then stored in a TLB entry so that further references to the same linear address can be quickly translated. In a multiprocessor system, each CPU has its own TLB, called the local TLB of the CPU. Contrary to the hardware cache, the corresponding entries of the TLB need not be synchronized, because processes running on the existing CPUs may associate the same linear address with different physical ones. When the cr3 control register of a CPU is modified, the ha... (查看原文)
    员外👻 2012-03-04 12:34:25
    —— 引自第57页
  • As a general rule, any process switch implies changing the set of active page tables. Local TLB entries relative to the old page tables must be flushed; this is done auto- matically when the kernel writes the address of the new Page Global Directory into the cr3 control register. The kernel succeeds, however, in avoiding TLB flushes in the following cases: • When performing a process switch between two regular processes that use the same set of page tables (see the section “The schedule() Function” in Chapter 7). • When performing a process switch between a regular process and a kernel thread. In fact, we’ll see in the section “Memory Descriptor of Kernel Threads” in Chapter 9, that kernel threads do not have their own set of page tables; rather, they use the set of page tables ow... (查看原文)
    员外👻 2012-03-04 12:45:12
    —— 引自第76页
  • From the kernel's point of view, the purpose of a process is to act as an entity to which system resources (CPU time, memory, etc.) are allocated. The Unix operating system design is centered on its filesystem, A Unix file is an information container structured as a sequence of bytes. A filename included in a directory is called a file hard link, or more simply, a link. Unix makes a clear distinction between the contents of a file and the information about a file(inode). Because a process in User Mode cannot directly interact with the low-level hardware components, each actual file operation must be performed in Kernel Mode. Therefore, the Unix operating system defines several system calls related to file handling. All Unix kernels are reentrant. One way to provide reentrancy is to... (查看原文)
    假日笛声 2013-06-20 00:50:46
    —— 引自章节:Introduction
  • From the kernel's point of view, the *purpose* of a process is to act as an entity to which system resources(CPU time, memory, etc) are allocated. (查看原文)
    [已注销] 2013-09-06 21:22:18
    —— 引自章节:9%
  • a noncontiguous memory area can be allocated by the vmalloc_32( ) function, which is very similar to vmalloc( ) but only allocates page frames from the ZONE_NORMAL and ZONE_DMA memory zones. (查看原文)
    jeff 2015-03-21 20:42:56
    —— 引自第348页
<前页 1 2 后页>