POSIX(Portable Operation System Interface)听起来好高端,就是一种操作系统的接口标准,至于谁遵循这个标准呢?就是大名鼎鼎的Unix和Linux了,有人问Mac OS是否兼容POSIX呢,答案是Yes苹果的操作系统也是Unix-based的。有了这个规范,你就可以调用通用的API了,Linux提供的POSIX系统调用在Unix上也能执行,因此学习Linux的底层接口最好就是理解POSIX标准。
死锁(Deadlock)就是一个进程拿着资源A请求资源B,另一个进程拿着资源B请求资源A,双方都不释放自己的资源,导致两个进程都进行不下去。示例程序我们可以写代码模拟进程死锁的例子。package mainfunc main() { ch := make(chan int) <-ch}运行结果root@fa13d0439d7a:/go/src# go run deadlock.gofatal error: all goroutines are asleep - deadlock!
本书所有示例程序都基于Go编写,代码托管到GitHub。每章的示例都是可直接运行的Go源文件,例如第一章的Hellow World程序可以通过go run hello_world.go来运行并查看运行结果。# go run hello_world.goHello World接下来介绍使用Docker来运行本书的示例程序。
进程的概念大家都很熟悉,但你是否能准确说出僵尸进程的含义呢?还有COW(Copy On Write)、Flock(File Lock)、Epoll和Namespace的概念又是否了解过呢?本书汇集了进程方方面面的基础知识,加上编程实例,保证阅读后能自如地回答以上问题,在项目开发中对进程的优化也有更深的理解。本书架构本书按循序渐进的方式介绍进程的基础概念和拓展知识,主要涵盖以下几个方面。