摘要:
一. Linux 启动流程 首先说一下Linux系统大概的启动过程: 1. 主机加电后, 系统首先加载BIOS, 这个BIOS是以写在主板上的. 2. BIOS启动后,执行一些例如开机自检,硬件初始化等工作,然后读取硬盘的第一个扇区,这个扇区被称为MBR.这个扇区中存储了 一个小程序,叫做boot 阅读全文
摘要:
一.安装qemu 注意,目前kata-container所要求的qemu最低版本是v2.7.0.在笔者的环境下(Ubuntu16.04 VM),apt-get官方源的最高版本是v2.5.0.所以不要用apt-get install的方式安装qemu.从github下载源码进行安装.这里推荐安装v2. 阅读全文
摘要:
go语言一个比较方便的特性是你不需要显示的定义一个变量.例如,在c语言中,你想要使用一个int型变量,那么代码如下 int i; i =0; i++; 而在go语言中, i := 0; i++ 这样你可以在"="前加上一个":",表示这个等号前面的是一个新的变量.那么这种隐式的变量声明有可能会导致严 阅读全文
摘要:
上文对JWT模块进行了一个简单的分析.这篇文章稍微做出一些深入的了解. 一,Header篡改攻击 因为JWT的Header是强制有效并且是明文传输(Base64URL编码,几乎等同于明文).那么恶意用户可以很容易地用以下方式进行攻击. 假设恶意用户Bob按如下的数据结构伪造Token: header 阅读全文
摘要:
JWT是一个无状态登录的技术.所谓无状态,是指和传统的session技术相比,服务器端不需要存储用户的信息.在JWT技术中,agent向server请求一个Token. 这个Token由三部分组成,head, playload,signature.三个部分由"."隔开.下面分别解释这三个部分的作用. 阅读全文
摘要:
ngrok 可以将内网映射到外网. 很好用的工具 阅读全文
摘要:
众所周知,go语言在多线程方面的支持是十分完备的。在go语言sync包中提供了一个Cond类,这个类用于goroutine之间进行协作。 这个类并不复杂,只有三个函数,Broadcast() , Signal(), Wait(), 一个成员变量,L Lock 其中Broadcast()实现的功能是唤 阅读全文
摘要:
go语言中如何判断一个方法是私有的还是公有的?说出来你可能不信,通过首字母的大小写。 不管是一个变量还是一个函数,如果它的首字母是大写的,那么它就是包外可见的,也就是说可以 从这个包的外面访问这个资源。 反之,如果它的首字母是小写的,那么它就只能在包内访问。 阅读全文
摘要:
在使用git指令时难免会发生错误的merge的情况,那么如何在这种情况下回退到错误发生之前的情况? git reflog 指令显示历史的操作 4457e43 HEAD@{0}: reset: moving to 4457e435361fad HEAD@{1}: reset: moving to HE 阅读全文
摘要:
k8s的实现核心实际上就是通过读写etcd数据库实现对资源的存储,管理和控制。 k8s所有资源的本源都是存储在etcd中的一个个键值对。 理论上可以观察到etcd数据库中的数据变化。具体的使用方式如下: 用$K8SPATH/hack/local-up-cluster.sh启动一个k8s服务。这个可执 阅读全文