Recent Posts

Welcome to Jekyll!

less than 1 minute read

You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different wa...

Docker源码分析3-daemon启动(API)

less than 1 minute read

在该系列的 上一篇文章中, 我们介绍了Docker daemon启动流程的前半部分,后半部分的代码会完成daemon 启动中最重要的两个步骤:

Docker源码分析2-daemon启动

less than 1 minute read

在该系列的 上一篇文章中, 我们简单介绍了Docker的基本信息。在这篇文章中,我们将详细分析Docker daemon的启动代码。从这篇文章开始,我将用$SRC指代Docker源码所在的 目录。 启动入口 Docker的启动入口位于$SRC/docker目录,在分析代码之前,先介绍Golang的一个小知识。G...

Docker源码分析1-简介

less than 1 minute read

Docker是一款由docker, Inc发起的开源Linux容器引擎。由Golang编写完成。它 基于Linux Container技术。Linux Container技术,是一种操作系统层次的虚拟 化技术,提供了系统隔离,资源限制等功能。与Linux下传统的KVM虚拟机相比, container技术更轻量,所...

Linux内核中的IO调度器简介

less than 1 minute read

从2.6系列开始,Linux内核引入了全新的IO调度子系统。与2.4系列内核只有一个惟一的,通用的I/O调度器相比,最新的Linux内核提供了CFQ(默认), deadline和noop三种IO调度器。(anticipatory调度器从2.6.33开始被移除,commit 492af6350a5ccf087e49...

ARM体系架构下的同步操作(二)

less than 1 minute read

在上一篇文章中,我们介绍了ARM体系架构下,为了实现对内存地址同步访问而引入的 LDREX STREX 两条指令。在这篇文章里,首先会以Linux Kernel中ARM架构的原子相加操作为例,介绍这两条指令的使用方法;之后,会介绍GCC提供的一些内置函数,这些同步函数使用这两条指令完成同步操作。 ...