- 博客(160)
- 资源 (3)
- 收藏
- 关注
原创 开箱视频 | 第二本560页新书《深入理解Linux进程与内存》今天正式发布啦!
大家好,我是飞哥!很高兴今天我的第二本新书《深入理解Linux进程与内存》正式和大家见面了!新书总共编排设计了 16 章,总共560 页全彩印刷,比上一本整整厚了 200 页,是一部超级大部头。今天首发亲笔签名版总共 5000 册。价格是申请到了 5 折,并额外叠加 8 元读者专属优惠券,到手 91 元(优惠券好像是每个账号享受一次,如果是Plus会员还能再减几毛)。拼手速购买入口在下方,记得看...
2024-08-22 09:28:42
303
原创 视频模型CogVideoX开源,全民AIGC时代到来了吗?
大家好,我是飞哥!之前不少人都以为大模型只能处理文本。但自从今年 2 月 16 日 OpenAI 在其官网发布了基于文字生成视频的模型 Sora 后,让所有人都认识到了即使对对于复杂的视频信息,大模型仍然是具备对其进行理解,以及进行 AIGC 创作的能力。相对于 Sora 的一直的画大饼,其他家的产品发布和上市的节奏倒是要快的多。在刚刚过去的 7 月 26 号智谱上线了 CodeVideoX。该模...
2024-08-08 09:06:29
708
原创 我的新书《深入理解Linux进程与内存》进入印刷阶段了!
大家好,我是飞哥!最近工作比较忙,所以好几周都没顾上更新公众号。这个周末终于抽出一点时间,来和大家聊聊新书的事情。目前咱们的新书《深入理解Linux进程与内存》已经进入到最后的印刷阶段了。先说下为什么我要写这么一本书。我们国内大部分的开发者和公司都是从事应用层的开发,平时大家更多关注的是应用层的开发技术。但应用层是建立在CPU内存硬件、操作系统内核、语言运行时等底层基础之上的。如果缺乏对这些底层的...
2024-08-05 09:01:46
376
原创 为什么服务器内存硬件上的黑色颗粒这么多?
大家好,我是飞哥!之前有位读者问我为什么服务器内存上有这么多的颗粒,今天我专门就这个话题成文一篇作为回复。各位从事服务器端开发的同学天天都在开发代码,代码都需要内存。确实了解一下服务器内存硬件是挺有有必要的。所以我特地找来了一个服务器内存条来。下图是一个 32 GB 服务器内存条的正面和反面图。可见服务器内存上有很多的黑色颗粒,相比下面的台式机内存颗粒要多很多。今天我们就专门写一篇文章来给大家解释...
2024-06-14 09:00:43
904
原创 C语言竟可以调用Go语言函数,这是如何实现的?
大家好,我是飞哥!今天和大家聊一个问题,一门语言是否可以在同一个进程内调用另外一门语言实现的函数?例如 C 语言是否可以调用 Golang 实现的函数?注意我说的是同进程内调用,跨进程的 IPC、PRC 之类的技术不算。直接抛出这个问题的答案,同进程跨语言调用是可行的。在各种语言设计时,为了复用其它语言生态中积累下来的大量的代码资产,都会实现跨语言调用的机制。例如在 Golang 中,实现了 cg...
2024-05-23 09:36:28
417
原创 理解内存的Rank、位宽以及内存颗粒内部结构
大家好,我是飞哥!在冯诺依曼体系结构里,内存是除了CPU之外第二重要的设备。如果没有内存,服务器将完全无法运行。在这一节中,我们来了解下内存的物理结构。如下图的是一个 16 GB 的笔记本内存条实物的正面和反面图。其中的每个黑色颗粒也叫一个 Chip。注意下,在正面有着一串字符串标识16 GB 2R\*8 PC4-3200AA-SE1-11。在这段标识中,16 GB 很好理解,是内存的容量大小。那...
2024-05-14 09:00:55
1374
原创 如何才能高效地学习技术,我投“融汇贯通”一票
大家好,我是飞哥!程序员这一个职业虽然外表光鲜,但最大的痛点是工作依赖的技术更新换代太快。需要不断地学习,还要保持自己学习的速度比知识过期的速度快,才能在这个市场中站稳,保持竞争力。那如何才能高效地学习技术呢?我个人总结出来的心得是“融会贯通”地学!只有这样效率才是最高的。我最喜欢的一个成语故事是庖丁解牛。这个故事是梁惠王问庖丁为什么你的解牛技术能这么厉害。庖丁说我刚开始解牛的时候技术也不行。当时...
2024-05-02 10:35:53
752
原创 看懂服务器 CPU 内存支持,学会计算内存带宽
大家好,我是飞哥!在深入了解服务器 CPU 的型号、代际、片内与片间互联架构一文中我们了解了服务器 CPU 的内部架构。在其中我们看到有一个内存控制器。关于CPU内存控制器中会有很多专技术细节。例如下面是Skylake 代际 CPU 对内存的支持情况。参见https://en.wikichip.org/wiki/intel/microarchitectures/skylake_(server)DR...
2024-04-16 09:02:00
789
原创 kfngxl.cn - 开发内功修炼网站上线啦!
大家好,我是飞哥!和大家分享一个事情,最近我花了两个周末,搞了个开发内功修炼技术网站。站点地址是 https://kfngxl.cn 。请大家收藏,后续我写的新文章也会陆续同步到网站上。我估计不少同学也对建站的过程感兴趣,所以今天我专门写一篇文章来给大家分享下我是如何把这个小站搭起来的。建站的动机最早诞生想要搭建一个网站的想法是在两年前。首先是因为各家写技术文章的平台一般都会有各种限制,比如知乎不...
2024-03-27 09:10:25
393
原创 给大家一些参加技术面试的个人建议
大家好,我是飞哥!最近帮咱们的读者朋友做了一些字节的内推,其中这两位朋友履历都还可以,但目前内推都没啥进展。所以结合这个事情,想给大家一些参加面试的个人建议。这两位朋友中朋友A是北邮的硕士,在新浪、高德、滴滴等大厂都工作过,并且职级上级别也还不错。但是在内推一直就没啥进展。其中朋友B的情况也类似,计算机科班硕士毕业,在网易,百度、滴滴、京东等大厂都工作过,但也是内推没成功。后来我找到负责这些岗位的...
2024-03-18 09:01:13
371
原创 云服务器优惠老用户与狗不得享受,怎么破?
不知道大家有没有自己购买过云服务器。我平时为了鼓捣一些东西方便,比如体验各个版本的 Linux 内核、安装和使用各种工具、搭建各种实验环境、搞搞图床什么的,会自己买公有云上的服务器来玩。去年我在阿里云上买了优惠价格的服务器,玩了几个月挺爽。之后发现过期了想续上。结果一看价格,竟然发现比当初买的时候要贵好多。最低配置的 2C2G 一年下来都要 600 多,还是折后!这真是应了网友们常说的一句话,公有...
2024-03-12 09:00:37
872
原创 服务器之 ECC 内存的工作原理
大家好,我是飞哥!在开始今天的分享之前,我先给大家看两个 1R * 8 的内存条。现在的 CPU 都是 64 位的,每次和内存通信都要传输 64 比特的数据。1R * 8 类型的内存中的 1R 指的是该内存条只有一个 rank,8 指的是在每一次 64 比特的内存 IO 过程中,每个内存颗粒分别提供 8 比特的数据。这样计算一下,64 比特的数据就需要 8 个内存颗粒共同来组成。这两个内存条中,为...
2024-02-29 09:09:02
1357
原创 把个人电脑上的 CPU 拔下来插到服务器上行不行?
大家好,我是飞哥!首先祝大家新年快乐,新的一年的技术分享又开始了!大家都对个人电脑的 CPU 有不少的了解,但对服务器 CPU 没有亲眼见过。所以总会有人会产生疑问,把我自己的 PC 办公电脑上的 CPU 拔下来插到服务器上行不行。答案当然是否定的。服务器 CPU 和个人电脑中的 CPU 存在很多差别。今天我用一篇文章给大家总结下,服务器 CPU 和个人台式机电脑 CPU 之间都存在哪些的差别。说...
2024-02-21 09:01:16
361
原创 聊聊并发编程,另送5本Golang并发编程新书
大家好,我是飞哥!并发编程并不是一个新话题,但是我觉得在近几年以及未来的时间里,并发编程将显得越来越重要。为什么这样讲,让我们先回到一个基本的问题上来,为什么我们要采用并发编程?关于这个问题可能会有多种答案,但是最根本的答案是受 CPU 硬件发展的影响。摩尔定律原意说的是每隔 18 个月处理器的速度会翻一翻。从 1970 年到 2002 年的这段时间里,硬件确实大致是按照这个规律发展的。但是进入到...
2024-02-02 09:08:37
1159
原创 聊聊C语言中的malloc申请内存的内部原理
大家好,我是飞哥!我们今天来深入地了解一下malloc函数的内部工作原理。操作系统为应为应用层提供了 mmap、brk 等系统调用来申请内存。但是这些系统调用在很多的时候,我们并不会直接使用。原因有以下两个系统调用管理的内存粒度太大。系统调用申请内存都是整页 4KB 起,但是我们平时编程的时候经常需要申请几十字节的小对象。如果使用 mmap 未免碎片率也太大了。频繁的系统调用的开销比较大。和函数调...
2024-01-23 09:09:48
1122
原创 上个月我去参加2023 CPP-Summit了
大家好,我是飞哥!最近我去参加了一个技术大会「全球C++及系统软件大会」,简称 CPP-Summit。一直想记录下这个事情,最近终于抽了个早上来成文一篇。这个大会是 12月16日、17日两天举办的,虽然年底了本身工作就很忙,另外周末还得抽时间修改新书书稿。但当大会主办方找到我的时候,我还是没过多思索就答应了下来。CPP-Summit 虽然名为 CPP,但其实会议的主题远远不止 C++,包含了系统级...
2024-01-11 09:01:31
438
原创 深入了解服务器 CPU 的型号、代际、片内与片间互联架构
大家好,我是飞哥!在前面两篇文章《个人 CPU 的型号、代际架构与微架构》 和 《聊聊近些年 CPU 在微架构、IO 速率上的演进过程》 , 我们介绍了个人台式机电脑中的 CPU 型号规则、核设计细节,以及各代 CPU 的关键变化。在这一节中,让我们进入到和大家手头工作相关度更高的服务器 CPU 原理部分。我随手找到的一个 CPU 型号 Intel(R) Xeon(R) Platinum 8260...
2024-01-03 09:08:57
1727
原创 聊聊分布式数据库TDSQL的技术架构
大家好,我是飞哥!咱们很多读者都是在互联网公司工作,大部分同学会有一种认知偏差,总以为互联网的业务对技术的要求是最高的。但其实不然。比如在对延时的要求上,高频量化交易就比互联网的延迟要求要高得多。在数据库上,银行、证券、电信在这些行业中对数据库的要求也比互联网高得多。拿银行举例,银行的系统里是连一分钱都不能错的,而且即使是十几年前的交易记录也必须能够查出来,对安全性的要求就更不用说了。在过去很长的...
2023-12-11 09:02:02
246
原创 聊聊跨进程共享内存的内部工作原理
大家好,我是飞哥!在 Linux 系统的进程虚拟内存中,一个重要的特性就是不同进程的地址空间是隔离的。A 进程的地址 0x4000 和 B 进程的 0x4000 之间没有任何关系。这样确确实实是让各个进程的运行时互相之间的影响降到了最低。某个进程有 bug 也只能自己崩溃,不会影响其它进程的运行。但是有时候我们想要跨进程传递一些数据。因为进程虚拟内存地址是隔离的。所以目前业界最常用的做法是让进程之...
2023-12-07 09:22:48
143
原创 聊聊近些年 CPU 在微架构、IO 速率上的演进过程
大家好,我是飞哥!在上一篇《深入了解 CPU 的型号、代际架构与微架构》 中我们介绍了我手头的一颗 Intel(R) Core(TM) i5 的型号规则,以及它的物理硬件的 Die 图结构。以及它对应的 Skylake 核的微架构实现。不少同学开始问我其它型号的 CPU 和它比有什么区别呢。考虑到了市场上各种新老 CPU 型号太多了,咱们没办法一一介绍。所以我想了一个办法,咱们把这些年 CPU 进...
2023-11-17 09:09:03
361
原创 开发内功修炼视频课程上线
无论是对于准备参加校园招聘、社会招聘的同学,还是想在工作中持续提升技术能力的同学,深度地理解计算机硬件、Linux 内核底层原理都是非常重要的。我之前给大家分享技术主要是通过公众号、纸质出版书等途径。其中《深入理解Linux网络》入围了2022年中国开发者影响力IT图书榜单。新的一本讲 CPU 原理、进程调度、内存管理方面的书也已经审稿中,预计明年会出版。但图文的表达力还是有限,更多的读者希望我能...
2023-11-16 09:43:28
93
原创 深入了解 CPU 的型号、代际架构与微架构
大家好,我是飞哥!在 10 月 16 号的时候,Intel 正式发布了第 14 代的酷睿处理器。但还有很多同学看不懂这种发布会上发布的各种 CPU 参数。借着这个时机,我给大家深入地讲讲 CPU 的型号规则、代际架构与微架构方面的知识。CPU 在整个计算机硬件中、技术体系中都算是最最重要的东西了。但很遗憾的是,80%以上的开发同学对 CPU 并不是很了解。所以在前面的文章中,我带领大家深入地学习了...
2023-10-31 09:08:50
447
1
原创 基于 Linux 0.11 讲解 Linux 操作系统的启动原理
大家好,我是飞哥!不知道大家有没有产生过一个疑问:从给 Linux 服务器按下开机电源按钮后到启动成功的一段时间里,在这中间 Linux 操作系统都做了哪些事情?在 Linux 服务器没有通电的时候,操作系统还只是躺在硬盘启动区中的一段程序,CPU 没有工作,内存也没有启动。但是在你按下开机键后,Linux 服务器内部就开始变得热闹了起来。一个电子世界被你激活了。经过几十秒或者几分钟的等待,Lin...
2023-10-18 09:43:15
186
原创 第二本书交稿了
大家好,我是飞哥!就在刚刚,我把新书的markdown源文件提交给出版社老师了,也就是说新书正式交稿了!上一本咱们书咱们写的是Linux网络方面的,书名是《深入理解Linux网络》。咱们这本书帮助很多之前惧怕内核的读者打开了通往内核的大门。深入地帮大家了解内核网络包的接收和发送工作原理、理解了三次握手在底层是如何实现的,也理解了网络是如何使用内存和 CPU 资源的,更是懂了容器中的网络的工作原理。...
2023-09-13 18:50:53
142
原创 深入剖析 Golang 程序启动原理 - 从 ELF 入口点到GMP初始化到执行 main!
大家好,我是飞哥!在过去的开发工作中,大家都是通过创建进程或者线程来工作的。Linux进程是如何创建出来的? 、聊聊Linux中线程和进程的联系与区别! 和你的新进程是如何被内核调度执行到的? 这几篇文章就是帮大家深入理解进程线程原理的。但是,时至今日光了解进程和线程已经不够了。因为现在协程编程模型大行其道。很多同学知道进程和线程,但就是不理解协程是如何工作的。虽然能写出来代码,但不理解底层运行原...
2023-08-31 09:08:19
1030
原创 学会让AI大模型产品来替我们搬砖,使用免费CodeGeeX插件提高开发效率
大家好,我是飞哥!自从 ChatGPT 火了之后,现在各种大模型的应用层出不穷。咱们也应个景,给大家讲讲大模型工具。咱们抛开各种新概念不谈,我觉得对于我们程序员群体来说,一个最实际的用途就是能不能使用大模型相关的工具来提高我们的开发效率。通过我自己最近几个月通过各种摸索来看,大模型的工具对编码速度确实是能有很大帮助。很多简单、常用的、但是又比较消耗时间的编码都可以交给AI相关的工具去完成了。让 A...
2023-08-23 09:28:11
338
原创 我要开始搞知识星球啦!
大家好,我是飞哥!今天和大家宣布一件事情,我要开始搞知识星球了!在过去的时间里,我一直在坚持用公众号、知乎等这样的图文平台来讲技术。虽然起到了不错的效果,但也发现了不少痛点。比如技术文基本发布过2天后,就不会再产生阅读了,优质内容无法沉淀下来持续产生价值。再比如只能进行图文+源码形式的表达,很多对 C 语言不熟悉的读者通过图文阅读起来有一定的难度。在过去时间里,一直不断有同学问我有没有开星球,想加...
2023-07-26 09:09:12
350
原创 内推 | 字节 2024 年校招研发提前批
Hi,同学们好,我是飞哥!和大家同步一个消息,字节跳动 2024 校招研发提前批内推开始了。字节跳动通过短短十年时间,就跻身成为和阿里腾讯同等规模的大厂,而且在出海和全球化上是做的最优秀的中国互联网公司。来字节,你不仅能拿到优厚的福利待遇,而且在技术复杂度上、还是业务规模上都会对你未来的成长有很大的好处。字节跳动非常值得大家加入。关于校招提前批招聘,有如下几个好处!没有笔试:所有岗位无笔试,少闯一...
2023-07-18 09:08:17
407
原创 用故事的方式学习底层技术,不枯燥
大家好,我是飞哥!上周我推荐了一本新书《趣话计算机底层技术》。很多同学看完后表示非常喜欢以这种故事的方式来讲技术的风格。那我今天就多给介绍点这类的内容。这本书其实是源自于我的好朋友轩辕的公众号「编程技术宇宙」。在他的公众号中,还有很多这种风格的文章。尚未出版的还包括趣话编程、趣话网络安全等几块内容。全都是用这种故事化的,轻松的方式来讲技术的。而且轩辕厉害的地方在于虽然是用故事在讲述,但基于他对底层...
2023-07-13 09:08:11
138
原创 为什么新版内核将进程pid管理从bitmap替换成了radix-tree?
大家好,我是飞哥!在下一本新书里我会将参考的 Linux 内核版本升级成6.10。上周末写到创建进程部分的时候,发现内核已经将进程 pid 号的管理从 bitmap 换成了基数树(radix-tree),所以写篇文章来和大家聊聊这个改动。第一次写进程创建的时候我使用的内核版本还是 3.10 的版本。在这个版本里已分配的进程 pid 号是用 bitmap 来存储的。但在 5.4 和 6.1 版本里,...
2023-07-11 09:07:23
73
原创 趣话计算机底层技术,送5本!
大家好,我是飞哥!前几天,又一位好友的新书《趣话计算机底层技术》出版了。同样和他要了5本,再来给咱们开发内功修炼的读者搞一次送书活动。送书规则:还是老规矩,点赞+抽选。截止今天下午19:00评论区前三的读者自动获得,另外我再从评论区随机抽取两位读者。这本书的特点是通过故事的形式,把底层中关键的技术点都讲到了。在如今的互联网业界里,大部分的程序员都在忙着学习各种编程语言,各种开发框架和各种开源软件。...
2023-07-07 09:03:00
739
3
原创 盘点内核中常见的CPU性能卡点
大家好,我是飞哥!最近我发现公众号改版了,非星标的公众号推文没有大图展示样式很丑。建议大家把咱们开发内功修炼设置为星标账号。正式开始今天的分享。我们的应用程序都是运行在各种语言的运行时、操作系统内核、以及 CPU 等硬件之上的。大家平时一般都是使用Go、Java等语言进行开发。但这些语言的下面是由运行时、内核、硬件等多层支撑起来的。我们的程序在运行的时候,很多时候性能卡点可能并不一定是自己的应用代...
2023-06-20 08:59:13
225
原创 剖析CPU性能火焰图生成的内部原理
关注开发内功修炼,掌握硬核技术原理大家好,我是飞哥!在进行CPU性能优化的时候,我们经常先需要分析出来我们的应用程序中的CPU资源在哪些函数中使用的比较多,这样才能高效地优化。一个非常好的分析工具就是《性能之巅》作者 Brendan Gregg 发明的火焰图。我们今天就来介绍下火焰图的使用方法,以及它的工作原理。一、火焰图的使用为了更好地展示火焰图的原理,我专门写了一小段代码,intmain()...
2023-05-30 08:59:31
794
原创 计算机底层的秘密,送5本
这几天,我的好友陆小风送了我一本他出版的新书《计算机底层的秘密》。正好利用周末看了一下。整本书看完后,觉得写的很不错,也符合不局限于用,还要把原理搞清楚的风格。计算机这门技术你说它简单也简单,你说它复杂也复杂。你要说它简单的话,确实一个本科大一的学生就能写出来能跑的代码。很多非计算机专业的学生自学或者找个培训机构培训一下,也能胜任很多工作岗位的开发工作。你说它复杂,那更是,代码看上去能正常运行,可...
2023-05-23 08:58:42
1224
2
原创 人人都应该知道的CPU缓存运行效率
大家好,我是飞哥!提到CPU性能,大部分同学想到的都是CPU利用率,这个指标确实应该首先被关注。但是除了利用率之外,还有很容易被人忽视的指标,就是指令的运行效率。如果运行效率不高,那CPU利用率再忙也都是瞎忙,产出并不高。这就好比人,每天都是很忙,但其实每天的效率并不一样。有的时候一天干了很多事情,但有的时候只是瞎忙了一天,回头一看,啥也没干!一、CPU 硬件运行效率那啥是CPU的运行效率呢?介绍...
2023-05-09 08:58:40
689
原创 日拱一卒
大家好,我是飞哥!不少读者应该发下我最近更新文章的频率变低了。核心原因有两个,其中一个是入职字节之后工作中花费的时间更多了。另外一个原因就是我标题相关的一件事情,我正在干另外一件大事 --- 写下一本书。现在工作之余的睡觉前的晚上,去公司前的早上,周末的陪家人以外的这些碎片时间里,我都在琢磨这件大事。上一本书《深入理解Linux网络》上市后在圈内产生了不小的影响力。虽然创作过程很艰苦,而且书本身也...
2023-04-17 09:28:21
106
原创 恐怖的ChatGPT!
大家好,我是飞哥!不知道大家那边咋样。反正我最近感觉是快被ChatGPT包围了。打开手机也全是ChatGPT相关的信息,我的好几个老同学都在问我ChatGPT怎么用,部门内也在尝试用ChatGPT做一点新业务出来。那就干脆我就趁清明假期这一天宝贵的时间,自己也投入学习了一下。今天把我的思考以一篇文章的形式总结给大伙,给大家交份作业。文末再推荐一个圈内最近很火的新社区。对于ChatGPT,我学习的结...
2023-04-06 12:18:11
6124
2
原创 如何正确获取容器的CPU利用率?
大家好,我是飞哥!今天我们来深入理解关于容器 cpu 利用率相关的两个问题。第一个问题:如何正确地获取容器中的 cpu 利用率?在上一篇《Linux 中的各项 CPU 利用率是这样算出来的!》中我们讨论了 Linux 是如何计算系统的 cpu 利用率。在物理机上,使用这种方法查看 cpu 的使用情况是没有问题的。但是在容器中,默认情况下 /proc/stat 是使用的宿主机的伪文件,也就是说查看到...
2023-04-04 09:08:15
1397
原创 聊聊CentOS停止维护,要我说这是件大好事!
大家好,我是飞哥!相信大家都听说过CentOS即将停止维护的事。今天就这件事,我来聊聊我的看法。我认为这在国内的技术圈内是个利大于弊的好消息。关于这件事,可能大部分同学还都只是粗浅地吃过1-2次瓜而已,并没有搞懂其中的缘由。其背景是这样的。在过去的很长一段时间里,国内绝大部分互联网公司的服务器上所安装的操作系统都是总部位于美国北卡州红帽公司的CentOS。据统计,CentOS在服务器领域的占有率高...
2023-03-28 17:31:45
5095
原创 内核是如何给容器中的进程分配CPU资源的?
大家好,我是飞哥!现在很多公司的服务都是跑在容器下,我来问几个容器 CPU 相关的问题,看大家对天天在用的技术是否熟悉。容器中的核是真的逻辑核吗?Linux 是如何对容器下的进程进行 CPU 限制的,底层是如何工作的?容器中的 throttle 是什么意思?为什么关注容器 CPU 性能的时候,除了关注使用率,还要关注 throttle 的次数和时间?和真正使用物理机不同,Linux 容器中所谓的核...
2023-03-14 09:08:25
604
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人