2019年12月3日

摘要: 最近我们发现多个用户设备掉电后重启,系统不工作。 研究这些返修设备,发现这些设备的表象是网络连接失败,DNS resolve不了。进一步发现/etc/resolv.conf为空,所以应用程序没法进行DNS resolve。但是在同一个路由器下面,其他设备是可以正常获取DNS 服务器信息的,后来检查d 阅读全文
posted @ 2019-12-03 10:27 云梦泽渔夫 阅读(1517) 评论(0) 推荐(0) 编辑
 

2019年11月27日

摘要: 如果我们要在一台开发主机上搭一个编译环境,我们需要安装一堆依赖库和编译工具。如果我们有多个不同的项目同时进行,这些项目的编译工具和依赖库又都不一样,如果我们把这些东西全都塞到一台机器里,会不会有冲突呢? 如果我们想保持开发主机的干净,做到项目隔离,python里面我们可以切换env。我们也可以用do 阅读全文
posted @ 2019-11-27 11:17 云梦泽渔夫 阅读(2771) 评论(0) 推荐(0) 编辑
 
摘要: 开篇之前,先考虑这么一个需求:编写一个函数char * strerror(int errno),传入一个错误码,然后返回一个描述该错误的字符串。 很多同学都会这么实现。 #define MAX_STR_LEN 64 static char string[MAX_STR_LEN]={0}; char 阅读全文
posted @ 2019-11-27 10:54 云梦泽渔夫 阅读(367) 评论(0) 推荐(0) 编辑
 

2019年10月9日

摘要: Sometimes when working on a large project, I find it useful to figure out all the places from which some function or method is called. Moreover, more 阅读全文
posted @ 2019-10-09 16:25 云梦泽渔夫 阅读(1248) 评论(0) 推荐(1) 编辑
 

2019年9月10日

摘要: ecryptfs是一种加密文件系统。该文件系统的内容在传输和储存时以密文形式存在。只有在mount时用密钥解密才能得到明文。利用这个特性,我们可以用他来对软件镜像中的部分敏感文件系统进行加密,然后打包发布。 1.加密文件系统1.1 生成密钥passphrase sig=`echo none | ec 阅读全文
posted @ 2019-09-10 22:06 云梦泽渔夫 阅读(980) 评论(0) 推荐(0) 编辑
 
摘要: 在HOST上面,一个LXC container包含一个config文件和一个rootfs目录。早期我们在交叉编译系统上编译出container的rootfs之后,直接在编译系统上将其用tar压缩打包。然后下载到目标系统上解压到container的根文件系统“rootfs”里面。但是这样的话有几个问题 阅读全文
posted @ 2019-09-10 21:54 云梦泽渔夫 阅读(974) 评论(0) 推荐(0) 编辑
 
摘要: 树莓派Raspbian默认是支持LXC容器的,下面我们介绍一下在树莓派上创建并运行容器的过程。 1. 安装LXC相关的package 2. 创建LXC网络相关配置文件,这样就配置LXC使能Bridge,容器的网络类型为veth,也就是为容器创建一个virtual ethernet的网络接口,并将这个 阅读全文
posted @ 2019-09-10 21:32 云梦泽渔夫 阅读(759) 评论(0) 推荐(0) 编辑
 
摘要: 一个Alpine LXC容器的文件系统内容包括以下内容 根文件系统 应用程序,库文件以及配置文件 根文件系统主要包含alpine linux最小系统所需要的组件。下面主要讲一下制作根文件系统的方法。 1. 从下面的链接下载根文件系统制作脚本 2. 将alpine package的repo写到文件 3 阅读全文
posted @ 2019-09-10 21:17 云梦泽渔夫 阅读(787) 评论(0) 推荐(0) 编辑