介绍

  1. 随着云计算的快速发展,虚拟化技术显得愈发重要。由于传统的VM存在启动慢、 占用资源多、效率利用低等缺点,使得一种新的技术—容器(Container)得以快速发展。

  2. Linux Containers是一种操作系统级(内核轻量级)虚拟化技术,相对传统虚拟化技术KVM,具有如下特点:

    • Container与Host共用一个内核。
    • Container相当于一个轻量级APP sandbox。
    • Container作为一个普通进程在Host上运行。
    • Container不需要Host的CPU支持虚拟化。

Read More

Linux Containers介绍

Linux Containers是一种操作系统级(内核轻量级)虚拟化技术 ,相对传统虚拟化技术KVM,具有如下特点:

  • Container与Host共用一个内核。
  • Container相当于一个轻量级APP sandbox。
  • Container作为一个普通进程在Host上运行。
  • Container不需要Host的CPU支持虚拟化。

Container和KVM的系统架构图如下所示:

Read More

介绍

  1. GCC支持在C/C++代码中嵌入汇编代码,这些代码被称作是“GCC Inline ASM”(GCC 内联汇编)。
  2. 内联汇编可以使得C/C++语法无法表达的指令直接嵌入代码中。
  3. 在C/C++代码中使用内联汇编可以提高程序运行效率。

接下来就介绍下GCC内联汇编的用法。

Read More

介绍

  1. 由于现代Linux操作系统是多任务、SMP、抢占式以及中断是异步执行的,导致共享资源容易 被并发访问,从而使得访问共享资源的各线程之间互相覆盖共享数据,造成被访问数据处于 不一致状态,因此Linux提供了同步机制来防止并发访问。

  2. 常用的同步机制(如自旋锁)用来保护共享数据使用起来简单有效,但由于CPU的处理速度与 访问内存的速度差距越来越大,导致获取锁的开销相对于CPU的速度在不断的增加。因为这种 锁使用了原子操作指令,需要原子地访问内存,即获取锁的开销与访问内存的速度相关。

  3. Linux内核根据对不同共享资源的特性,提供多种同步机制:原子操作、自旋锁、读-写自旋锁、 信号量、读-写信号量、完成变量、顺序锁、禁止抢占、内存屏障及RCU,本文将对其分别进行简要介绍。

Read More

mlock简介

  • mlock(memory locking)是内核实现锁定内存的一种机制,用来将进程使用的部分或全部虚拟内存锁定到物理内存。
  • mlock机制主要有以下功能:
    • 被锁定的物理内存在被解锁或进程退出前,不会被页回收流程处理。
    • 被锁定的物理内存,不会被交换到swap设备。
    • 进程执行mlock操作时,内核会立刻分配物理内存。

Read More

介绍

  1. shell脚本可以使用here文档实现某些交互,但无法完成需要用户手动去输入的交互(如passwd、scp)。expect由此而生,可以轻松的完成此类交互。

  2. expect是一种可以提供“分支和嵌套结构”来引导程序流程的解释型脚本语言,主要运用于自动交互,能够按照脚本内容里面设定的方式与交互式程序进行交互。

  3. expect可以根据程序的不同提示或反馈内容来进行不同的应答,并且可随时在需要的时候把控制权交给用户,然后再还给脚本。

  4. expect脚本是基于TCL(Tool Command Language)演变的,其语法与TCL语法类似。

Read More