
图解学习
文章平均质量分 95
旅之灵夫
【授人以渔】
【要站在巨人的肩上】
【没有做不到,只有想不到】
【人的脑子是一个有限的空间,所以必须选择性的吸收知识,而不能把什么东西都放进去。--柯南·道尔】
展开
-
【C|图解指针变量】【转载】
作者:一口Linux。原创 2024-03-04 14:25:38 · 885 阅读 · 0 评论 -
【GitHub项目推荐--6 个吊炸天的后台模板】【转载】
数据是单方向发送,而另一方向只传送确认 接收方总是有足够大的缓存空间,因而发送方发送窗口的大小由网络的拥塞程度来决定 以最大报文段MSS的个数为讨论问题的单位,而不是以字节为单位。原创 2024-02-27 22:49:03 · 930 阅读 · 0 评论 -
【28 张图,一次性说清楚 TCP】【转载】
做IT相关的工作,肯定都离不开网络,网络中最重要的协议是TCP。无论是实际工作还是笔试面试,你看哪里能少得了TCP?我看过RFC中与TCP相关的文档,也看过linux中TCP相关的源码,也看过不少框架中的TCP相关的代码,对TCP是有点感觉了。其实,搞透了TCP之后,发现它也就那么回事。考虑最简单的情况:两台主机之间的通信。这个时候只需要一条网线把两者连起来,规定好彼此的硬件接口,如都用USB、电压10v、频率2.4GHz等,这一层就是物理层,这些规定就是物理层协议。原创 2024-02-27 22:47:21 · 950 阅读 · 0 评论 -
【图解:Linux 内存背后的那些神秘往事】【转载】
CPU、IO、磁盘、内存可以说是影响计算机性能关键因素,今天就聊探究下内存的那些事儿。内存为进程的运行提供物理空间,同时作为快速CPU和慢速磁盘之间的适配器,可以说是个非常重要的角色。通过本文你将了解到以下内容:本文均围绕Linux操作系统展开,话不多说,我们开始吧!有内存分配和回收的地方就可能有内存分配器。以glibc为例,我们先捋一下:在用户态层面,进程使用库函数malloc分配的是虚拟内存,并且系统是延迟分配物理内存的,由缺页中断来完成分配。原创 2024-02-27 21:56:43 · 985 阅读 · 0 评论 -
【深入理解 CPU 的调度原理】【转载】
软件工程师们总习惯把OS(Operating System,操作系统)当成是一个非常值得信赖的管家,我们只管把程序托管到OS上运行,却很少深入了解操作系统的运行原理。确实,OS作为一个通用的软件系统,在大多数的场景下都表现得足够的优秀。但仍会有一些特殊的场景,需要我们对OS进行各项调优,才能让业务系统更高效地完成任务。这就要求我们必须深入了解OS的原理,不仅仅只会使唤这个管家,还能懂得如何让管家做得更好。CPU的调度原理。原创 2024-02-27 21:42:35 · 1154 阅读 · 0 评论 -
【Linux fd 系列 — socket fd 是什么?】【转载】
总结vfs 下有一个。原创 2024-02-25 16:58:37 · 2321 阅读 · 0 评论 -
【硬核图解!30 张图带你搞懂!路由器,集线器,交换机,网桥,光猫有啥区别?】【转载】
两个人打cs,总会觉得无聊,但是每台电脑又只有一个网线口。想要邀请更多的人一起玩,怎么办?三台电脑互联那就要回到文章开头提到的集线器(hub)了。这是个工作在物理层的设备。有多个网口,很好的解决了电脑上只有一个网口的问题,可以做到多台电脑的网线都插入到集线器上。同时工作原理也非常简单,会把某个端口收到的数据,输入到中继电路。中继电路的基本功能是将输入的信号广播到集线器的所有端口上。简单来说就是无脑复制N份到其余N个端口上。集线器互联数据复制到N个端口后。对应转发到N台机器里。原创 2024-02-24 21:07:17 · 1782 阅读 · 1 评论 -
【图解 Linux 内存性能优化核心思想】【转载】
今天分享一篇的文章,文章用了大量精美的图深入浅出地分析了Linux内核slab性能优化的是Linux内核小对象内存分配最重要的算法,文章分析了内存分配的各种性能问题(在不同的场景下面),并给出了这些问题的优化方案,这个对我们实现,或以后遇到内存性能问题的时候,有一定的启发,值得我们学习。来自一种很简单的思想,即事先准备好一些会频繁分配,释放的数据结构。然而标准的slab实现太复杂且维护开销巨大,因此便分化出了更加小巧的slub,因此本文讨论的就是slub,后面所有提到slab的地方,指的都是slub。原创 2024-02-24 20:57:47 · 966 阅读 · 0 评论 -
【图解 Linux | 管道通信的原理?】【转载】
处于安全的考虑,不同进程之间的内存空间是相互隔离的,也就是说进程A是不能访问进程B的内存空间,反之亦然。如果不同进程间能够相互访问和修改对方的内存,那么当前进程的内存就有可能被其他进程非法修改,从而导致安全隐患。不同的进程就像是大海上孤立的岛屿,它们之间不能直接相互通信,如下图所示:进程A负责处理用户的请求,而进程B负责保存处理后的数据。那么当进程A处理完请求后,就需要把处理后的数据提交给进程B进行存储。此时,进程A就需要与进程B进行通信。原创 2024-02-23 06:54:50 · 965 阅读 · 0 评论 -
【TCP粘包 | 硬核图解】【转载】
那么当李东在手机上键入"李东""亚健康终结者"的时候,在 TCP 中把消息分成 MSS 大小后,消息顺着网线顺利发出。发送消息到网络网络稳得很,将消息分片传到了对端手机 B 上。经过 TCP 层消息重组。变成"李东亚健康终结者"这样的字节流(stream)。消息从网络接收但由于聊天软件琛琛是新开发的,而且开发者叫小白,完了,是个臭名昭著的造 bug 工程师。经过他的代码,在处理字节流的时候消息从"李东","亚健康终结者"变成了"李东亚","健康终结者"。原创 2024-02-22 22:12:21 · 945 阅读 · 0 评论