1 2 3 4 5 ··· 37 下一页

2025年11月5日

摘要: intro 通常C/C++中函数一般不会直接传递一个结构,更多处于性能考虑都会传递一个const类型的结构引用/指针。但是既然语言本身支持这种语法功能,编译器必定就要有对应的实现/规范/标准:否则不同编译器(例如gcc和llvm)生成的二进制文件(lib库)之间就没有办法兼容。特别是聚合类对象(st 阅读全文
posted @ 2025-11-05 19:46 tsecer 阅读(6) 评论(0) 推荐(0)

2025年10月29日

摘要: intro 在阅读k8s的源代码时,发现代码中有一个(一组)很简单粗暴的interface转换:将一个interface(storage对象)尝试向各种类型转换。golang中每个结构的method并不是在结构内定义,在类型转换的时候,运行时只要判断转换源实现了目的类型的所有method就可以成功完 阅读全文
posted @ 2025-10-29 21:22 tsecer 阅读(7) 评论(0) 推荐(0)

2025年10月13日

摘要: intro k8s的service类型主要分为这几种: ClusterIP。 通过一个集群内部IP暴露服务。 NodePort。 在每个Node的IP地址的静态端口侦听(Exposes the Service on each Node's IP at a static port (the NodeP 阅读全文
posted @ 2025-10-13 20:53 tsecer 阅读(10) 评论(0) 推荐(0)

2025年9月18日

摘要: intro vim本质上是在使用终端的控制序列来实现编辑功能:基本的光标移动和字符输出都是需要vim来生成终端的精确控制序列。我们甚至可以把终端本身看成一个和GUI一样的画布,只是GUI系统中画布的基本单位是像素(pixel),而终端的基本单位是"字符"(只是这些字符可以附带一些颜色、下划线之类的属 阅读全文
posted @ 2025-09-18 17:56 tsecer 阅读(8) 评论(0) 推荐(0)

2025年8月10日

摘要: intro 之前看内核代码的时候,只是大致浏览了内核的主要常规流程:也就是正常情况下的正常流程,通常对于异常/边界场景并没有怎么关注。在遇到一些非常规问题时,就会主动或者被动的思考一些边界的异常问题。 内核的一个重要的作用就是进行各种调度(进程运行/阻塞)/同步(资源访问)/分配(内存/CPU)操作 阅读全文
posted @ 2025-08-10 21:44 tsecer 阅读(25) 评论(0) 推荐(0)

2025年7月19日

摘要: intro 在多线程中,数据的安全性和程序的性能之间总是有一个平衡关系:并发控制需要使用锁来同步,而锁又总是可能引入性能损失。为了尽量在数据安全的前提下提高所得性能,linux用户态引入futex锁,内核引入RCU锁,C++中的shared_ptr都在尽量减少锁的损耗。 shared_ptr是C++ 阅读全文
posted @ 2025-07-19 18:08 tsecer 阅读(53) 评论(0) 推荐(0)

2025年6月21日

摘要: intro 从内核的代码可以看到,namespace是在进程创建的时候创建,没有进程引用namespace的时候销毁。反过来说:namespace的创建要依赖进程的创建,不创建进程就没办法创建namespace。 那么这个触发创建namespace的进程从哪里来?特别是POD这种k8s引入的容器的容 阅读全文
posted @ 2025-06-21 19:49 tsecer 阅读(9) 评论(0) 推荐(0)

2025年5月28日

摘要: intro 接触过docker的人都都会听说过,docker的是建立在namespace、cgroup、unionfs三个基础功能之上的。 namespace是linux内核中支持容器化的一个重要组成部分,也就是说:创建容器的时候必定会调用系统调用(syscall)来创建新的namespace。 因 阅读全文
posted @ 2025-05-28 21:30 tsecer 阅读(24) 评论(0) 推荐(0)

2025年4月23日

摘要: intro 在k8s中,kubectl exec提供了登录特定容器的可观测方法。以前一直有一个印象:kubectl是通过RESTful API HTTP连接来实现,而kubectl的tty操作必然需要长连接。 这个功能是如此的重要以至于会让人忍不住思考:它是如何实现的? k8s官方网站的Contai 阅读全文
posted @ 2025-04-23 21:11 tsecer 阅读(28) 评论(0) 推荐(0)

2025年3月22日

摘要: intro 大部分“现代”语言都支持自动内存回收(garbage collection),也支持反射(reflection)。go作为一种新出现的语言自然也不例外。 lua、Python作为动态语言,类型信息就保存在对象中,这也是动态语言可以动态添加字段/执行函数的基础。 golang作为C语言的广 阅读全文
posted @ 2025-03-22 18:06 tsecer 阅读(14) 评论(0) 推荐(0)
1 2 3 4 5 ··· 37 下一页

导航