UNIX 网络编程 chapter 5

2017-05-25
阅读 1 分钟
1.6k
客户端意外提前终止 situation 1 {代码...} situation 2 {代码...}

Linux 管道pipe的实现原理

2017-05-23
阅读 2 分钟
25.4k
管道是进程间通信的主要手段之一。一个管道实际上就是个只存在于内存中的文件,对这个文件的操作要通过两个已经打开文件进行,它们分别代表管道的两端。管道是一种特殊的文件,它不属于某一种文件系统,而是一种独立的文件系统,有其自己的数据结构。根据管道的适用范围将其分为:无名管道和命名管道。

linux vfs系统基础

2017-05-23
阅读 6 分钟
2.9k
总体架构图 fs_struct {代码...} struct files_struct {代码...} struct fdtable 文件描述符表 {代码...} struct file 文件对象 {代码...} struct dentry 每个目录看作由若干子目录和文件组成的一个普通文件。然而目录项不同,一旦目录项被读入内存, VFS 就把它转换成基于dentry结构的一个目录项对象。对于进程查找的路...

linux inode基本概念

2017-05-23
阅读 1 分钟
3k
VFS inode包含文件访问权限、属主、组、大小、生成时间、访问时间、最后修改时间等信息。它是linux管理文件系统的最基本单位,也是文件系统连接任何子目录、文件的桥梁。inode结构中的静态信息取自物理设备上的文件系统,由文件系统指定的函数填写,它只存在于内存中,可以通过inode缓存访问。虽然每个文件都有相应的ino...

linux文件读写浅析

2017-05-19
阅读 4 分钟
2.2k
将磁盘上的数据缓存在内存中,加速文件的读写。实际上,在一般情况下,read/write是只跟缓存打交道的。(存在特殊情况)read就直接从缓存读数据。如果要读的数据还不在缓存中,则触发一次读盘操作,然后等待磁盘上的数据被更新到磁盘高速缓存中;write也是直接写到缓存里去,然后就不用管了。后续内核会负责将数据写回磁盘。

UNIX高级环境编程 第13章 守护进程

2017-05-19
阅读 2 分钟
1.5k
引言 守护进程:没有控制终端,长期运行在后台的进程 编程规则 {代码...} {代码...} {代码...} {代码...} {代码...} {代码...} {代码...}

vfs基础

2017-05-18
阅读 5 分钟
3.5k
VFS是Linux中的一个虚拟文件文件系统,也称为虚拟文件系统交换层(Virtual Filesystem Switch)。它为应用程序员提供一层抽象,屏蔽底层各种文件系统的差异.如下图所示:

unix signal : signalfd, eventfd, timerfd

2017-05-01
阅读 7 分钟
2.5k
If EFD_SEMAPHORE was not specified and the eventfd counter has a nonzero value, then a read(2) returns 8 bytes containing that value, and the counter's value is reset to zero.

linux : 锁实现原理

2017-04-24
阅读 3 分钟
4.5k
In computing, a futex (short for "fast userspace mutex") is a Linux kernel system call that programmers can use to implement basic locking, or as a building block for higher-level locking abstractions such as semaphores and POSIX mutexes or condition variables.

UNIX高级环境编程 第8章 进程控制

2016-11-29
阅读 3 分钟
2.6k
ID为0的进程通常是调度进程(交换进程),属于内核的一部分。ID为1的进程是init进程,在自举过程结束时由内核调用,该进程读写系统初始化文件,将系统引导至一个状态(如多用户)。 它是一个普通用户进程,但以超级用户特权运行。