加载中
深入理解 Linux 的 epoll 机制

坚持思考,就会很酷 在 Linux 系统之中有一个核心武器:epoll 池,在高并发的,高吞吐的 IO 系统中常常见到 epoll 的身影。 IO 多路复用 在 Go 里最核心的是 Goroutine ,也就是所谓的协程,...

图解 | Linux是如何进行函数调用的?

先抛出几个问题: 进程虚拟地址空间是如何分布的? 函数调用的栈帧结构是什么样子? 函数调用涉及到的寄存器都起了什么作用? 函数参数是如何传递的?传递顺序如何? 函数的返回值是如何传递...

图解 | Linux内存回收之LRU算法

内存 是操作系统非常重要的资源,操作系统要运行一个程序,必须先把程序代码段的指令和数据段的变量从硬盘加载到内存中,然后才能被运行。如下图所示: 但内存资源是有限的,随着系统中运行的...

入门物联网还得靠嵌入式

小米在十一周年的发布会上,展示了一个新产品:CyberDog仿生四足机器人“铁蛋”,继腾讯X实验室的四足机器人MAX后,小米也开始跨界入局尝试研制机器狗。 2020年国家会议召开,加快推动新基建...

一文看懂 | 内存交换机制

本文基于 Linux-2.4.16 内核版本 由于计算机的物理内存是有限的, 而进程对内存的使用是不确定的, 所以物理内存总有用完的可能性. 那么当系统的物理内存不足时, Linux内核使用什么方案来避免申...

Linux fd 系列|信号编程(signal)竟能这样做?涨姿势

坚持思考,就会很酷 信号是什么? 平台声明: Linux 操作系统 首先说,信号(signal)是什么? 信号( signal )本质是 Linux 进程间通信的一种机制,也叫软中断信号。既然是通信机制,那么就...

Good Good Study,Day Day Up!!!

大家好,俗话说:独学而无友,则孤陋寡闻。经常有读者问我该如何学习?其实,除了必要的个人努力外,还需要有好的学伴。 一个人能走得更快,但一群人能走得更远。今天给大家介绍一些优秀的号...

一文看懂 | GDB底层实现原理

在程序出现bug的时候,最好的解决办法就是通过 GDB 调试程序,然后找到程序出现问题的地方。比如程序出现 段错误(内存地址不合法)时,就可以通过 GDB 找到程序哪里访问了不合法的内存地址而...

一文看懂 | 物理内存分配算法(伙伴系统)

内核分配物理内存时,是以内存页作为分配单位的。但有时候内核需要分配一些物理内存地址连续的内存页,所以,Linux内核使用了 伙伴系统分配算法 来管理系统中的物理内存页. 什么是 伙伴系统分...

我撸了个操作系统

话说当年我学习内核的时候,也曾想过写一个属于自己的内核。当然也真的写过一个玩具型的内核,链接如下:https://github.com/liexusong/tiny-os。不过写这个玩具 OS 的时候,参考了大量的书籍...

一文读懂 | Linux共享内存原理

在Linux系统中,每个进程都有独立的虚拟内存空间,也就是说不同的进程访问同一段虚拟内存地址所得到的数据是不一样的,这是因为不同进程相同的虚拟内存地址会映射到不同的物理内存地址上。 ...

35岁是最关键的一年,必须做好四件事

今天这一篇,干货满满,强烈建议大家点击收藏。 之前曾经发过,算是格式整理篇,看过的朋友可以略过了。 重新编辑一下的原因有两个: 1是、早期编辑的格式比较丑,不现代,后面我的编辑风格都...

Linux fd 系列 — socket fd 是什么?

坚持思考,就会很酷 socket fd 长什么样子? 什么是 socket fd ?粗糙的来讲,就是网络 fd,比如我们最常见的 C/S 客户端服务端的编程模式,就是网络通信的一种方式。撇开底层和协议细节,网...

当CPU使用率100%时怎么排查?

最近一直在忙着招人,发现那些来面试的候选者,代码能力虽然不错,但很多都卡在性能优化问题上。 其实,不论你是高级工程师,还是架构师,性能优化的问题都少不了。想彻底解决,就要全面了解...

一文读懂 | 进程并发与同步

并发 是指在某一时间段内能够处理多个任务的能力,而 并行 是指同一时间能够处理多个任务的能力。并发和并行看起来很像,但实际上是有区别的,如下图(图片来源于网络): concurrency-para...

容器三把斧之 | OverlayFS原理与实现

Docker 底层有三驾马车,Namespace、CGroup 和 UnionFS(联合文件系统),UnionFS 是 Docker 镜像的基础。前面我们介绍过 Namespace 和 CGroup,接下来将会介绍 UnionFS 的实现原理。 UnionF...

容器三把斧之 | cgroup原理与实现

前面我们介绍了 CGroup 的使用与基本概念,接下来将通过分析源码(本文使用的 Linux2.6.25 版本)来介绍 CGroup 的实现原理。在分析源码前,我们先介绍几个重要的数据结构,因为 CGroup 就是...

容器三把斧之 | namespace原理与实现

namespace介绍 namespace(命名空间) 是Linux提供的一种内核级别环境隔离的方法,很多编程语言也有 namespace 这样的功能,例如C++,Java等,编程语言的 namespace 是为了解决项目中能够在不...

阿里云的技术突破,居然是依靠容器技术!

近年,国内云计算战争异常火爆,除了阿里云外,还有华为云、腾讯云、金山云、青云qingCloud等多位选手参与了战斗。 特别是在疫情的影响下,国内乃至国外更多的大厂更是坚定了上云的计划,并且...

一文看懂|分布式系统之CAP理论

引言 CAP 理论,相信很多人都听过,它是指: 一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。 为什么要...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部