容器核心技术详解

最近看了docker用到的技术,于是在公司分享了一下,对于Linux内核比较关心的同学肯定早就知道这些知识了,但是我一直对内核不怎么了解,这些对我来说算是新知识,寻思着后面看看内核相关的书。

Linux Namespace

a feature of the Linux kernel that isolate and virtualize system resources of a collection of processes. 注:linux kernel的一个特性,可以隔离并且虚拟化一组进程的系统资源。

名称 宏定义 隔离内容 发布版本
IPC CLONE_NEWIPC System V IPC, POSIX message queues since Linux 2.6.19
Network CLONE_NEWNET network device interfaces, IPv4 and IPv6 protocol stacks, IP routing tables, firewall rules, the /proc/net and /sys/class/net directory trees, sockets, etc since Linux 2.6.24
Mount CLONE_NEWNS Mount points since Linux 2.4.19
PID CLONE_NEWPID Process IDs since Linux 2.6.24
User CLONE_NEWUSER User and group IDs started in Linux 2.6.23 and completed in Linux 3.8
UTS CLONE_NEWUTS Hostname and NIS domain name since Linux 2.6.19

Connecting Android Devices with Linux

结合自身的实际,在Linux上连接Android的需求其实可以分为一下几类:

  1. 手机的通知可以在Linux上弹窗提示
  2. 能方便的在手机和Linux之间传输文件、甚至同步粘贴板
  3. 能将手机画面同步到Linux上,并且还能直接操作
  4. 将手机作为另外一个屏幕,共享Linux的鼠标键盘,直接操作Android系统
  5. 仅仅将手机作为Linux的扩展屏

接下来我就来介绍几个软件,看看它们都能实现哪些需求

重新迁回阿里云

历史

细细数来,最开始在大学开始买了阿里云9.9的学生机,后来毕业之后就没有这优惠了,用了好几个月的45元的阿里云。然后有了个读研的GF,准备来个学生认证继续用阿里云,可惜认证没通过,不过在腾讯云认证通过了,就转移到腾讯云。可最近腾讯云要求域名备案,http的链接都已经被拦掉了,https依然可以,但毕竟不友好。我的域名在阿里云备过,还要重复再备一次,好麻烦,于是思索看阿里云能用不,所幸阿里云学生认证可以通过支付宝获取数据,于是又转回阿里云。

【翻译】http status code 304

在研究http2的是时候,无意中发现http code为304,对此不解,故搜之,发现该文,顺便翻译一下。奈何英文水平有限,词不达意,望阅者见

md5使用问题记录

java后端用到md5来生产token,于是在网上找个了示例,跑了一下,看起来没什么问题。服务的调用方是python,一起测了一下,也没啥问

easyvpn-linux使用

公司vpn用的是easyvpn,就是这个sangfor-深信服,但是linux的连接方式是通过网页,在浏览器中执行java,也就是apple

树莓派3简明配置

系统安装

首先选择一个系统,Linux有很多发行版都是支持raspberry-pi的,每个人有自己的喜好,如果是想深入学习Linux(或者说喜欢折腾)的,ArchLinux和Gentoo是不错的选择,但是若目的不再于此,选择官方系统可能是比较好的选择。另外像Ubuntu Meta也挺不错。

使用 noobs 安装

  • 有显示器:格式化 sd 卡为 fat32格式,将 noobs解压拷贝到 sd 卡,插上sd 卡上电,HDMI 连接显示器按照步骤安装就可以。
  • 无显示器:recovery.cmdline 加入silentinstall

直接安装

官方系统Raspbain 1. 直接将系统刻录到SD卡 Mac和Linux一般使用dd命令即可,Windows需要一些刻录软件,例如UltalISO,以及一些装机软件,如大白菜都可以完成刻录工作。

1
sudo dd bs=4M if=raspbian.img of=/dev/sdb
  1. 插入内存卡,开机 官方系统会自动扩展文件系统,如果没有自动扩展,开机之后也可以使用raspi-config和扩展以及另外的一些配置

    1
    
    sudo raspi-config