科学上网:Digital Ocean + Shadowsocks

周末在家研究了下“科学上网”,网上攻略众多,找了个同事强推的工具Shadowsocks试了下,果然很简单,很快,很稳定。这里简单记录了下搭建的整个过程。
主要核心工具就是Digital Ocean的VPS + Shadowsocks工具。

Read More

Share

Learning notes for Golang

Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Go is a general purpose programming language with advanced features and a clean syntax. Because of its wide availability on a variety of platforms, its robust well-documented common library, and its focus on good software engineering principles, Go is an ideal language to learn as your first programming language.
This is my learning note of GO Tour(https://tour.golang.org), just for reference and memory.

Read More

Share

Docker Introduce

Docker最近这几年成为了虚拟化领域炙手可热的话题,发展也极为迅速,不同于KVM的OS级虚拟化解决方案,Docker从容器级虚拟化技术角度提供了一个开放的,及其轻量级的虚拟化平台。

Docker helps you ship code faster, test faster, deploy faster, and shorten the cycle between writing code and running code.

Read More

Share

中断虚拟化二

上篇讲到虚拟PIT注册了一个高精度定时器,1ms周期,注册的定时器处理函数为:kvm_timer_fn。综合以上机制介绍,来想像一个场景,就可以理解物理pit timer interrupt是如何经为虚拟pit提供时钟,进而产生虚拟timer interrupt提交给guest OS。假如:guest vcpu正在执行,来了一个时钟物理中断,而这个物理时钟中断也要传递给guest OS。

Read More

Share

中断虚拟化一

一个操作系统要跑起来,必须有Time Tick,它就像是身体的脉搏。普通情况下,OS Time Tick由PIT(i8254)或APIC Timer设备提供—PIT定期(1ms in Linux)产生一个timer interrupt,作为global tick, APIC Timer产生一个local tick。在虚拟化情况下,必须为guest OS模拟一个PIT和APIC Timer。
模拟的PIT和APIC Timer不能像真正硬件那样物理计时,所以一般用HOST的某种系统服务或软件计时器来为这个模拟PIT提供模拟”时钟源”。
目前两种方案:1. 用户态模拟方案(QEMU); 2. 内核态模拟方案(KVM);

Read More

Share

Libvirt Introduce

谈了很多KVM的实现细节,了解了如何使用qemu进行虚拟机的配置和创建,但是qemu提供的命令行参数过于复杂,不便于理解和操作。所以在技术上就有了更好的虚拟机管理工具libvirt。
libvirt是目前用的比较多的对KVM进行管理的虚拟化管理工具。其也支持其他虚拟化平台,并且提供了一整套API,提供了对虚拟机的管理,也提供了对虚拟化网络和存储的管理。

Read More

Share