所有文章: 2016/4


  1. C语言实现ping

    学习C网络编程笔记

    ping 命令

    ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具。

    1
    2
    3
    4
    ping www.baidu.com
    PING www.a.shifen.com (180.97.33.107) 56(84) bytes of data.
    64 bytes from 180.97.33.107: icmp_seq=1 ttl=50 time=42.2 ms
    64 bytes from 180.97.33.107: icmp_seq=2 ttl=50 time=37.4 ms

  2. 浅析docker实现思想

    从虚拟化的种类和层级说起

    • cpu虚拟化:可以模拟不同CPU,例如bochs
    • 完全虚拟化:只能模拟同样CPU,但是可以执行不同系统,例如vmware
    • 半虚拟化
    • 硬件虚拟化:可以当作获得硬件加速的完全虚拟化
    • 系统虚拟化:host和guest共享一样的内核,例如Openvz
    • 语言沙盒:只能在语言的范围内使用

    虚拟化的级别越偏底层,速度越慢,用户越难察觉到虚拟化的存在。 虚拟化的级别越偏上层,速度越快,用户越容易感知。也就是虚拟幻的包装,如何一个虚拟化完全包装底层,呈现给用户一个新的操作系统,那么用户会知道他用的什么吗?

    • cpu虚拟化和完全虚拟化时,用户几乎可以阿不察觉到虚拟化的存在
    • 半虚拟化时,guest内核必须存在补丁
      • 系统虚拟化时,用户不能控制自己的内核
      • 语言沙盒时,用户没有使用api的自由

  3. 浅析docker使用

    docker是什么?

    • 简单的说Docker是一个构建在LXC之上的,基于进程容器(Processcontainer)的轻量级VM解决方案
      Docker的初衷也就是将各种应用程序和他们所依赖的运行环境打包成标准的Container/image,进而发布到不同的平台上运行。 也是由go写成的轻量级容器
    • Docker container和普通的虚拟机Image相比, 最大的区别是它并不包含操作系统内核

  4. C语言实现pwd,ls命令

    实现pwd

    实现pwd打印当前目录

    所需函数 getcwd

    函数原型:char *getcwd( char *buffer, int maxlen );

    • 功 能:获取当前工作目录
    • 参数说明:getcwd()会将当前工作目录的绝对路径复制到参数buffer所指的内存空间中,参数maxlen为buffer的空间大小。
    • 返 回 值:成功则返回当前工作目录,失败返回 FALSE。
    • 在某些 Unix 的变种下,如果任何父目录没有设定可读或搜索模式,即使当前目录设定了,getcwd()还是会返回 FALSE。有关模式与权限的更多信息见 chmod()。
    • 头文件:unistd.h(windows下为direct.h)