自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

子牙老师

深入研究JVM、Linux内核、Redis、MySQL。手写过JVM、NIO、线程池…运营公众号:硬核子牙

  • 博客(116)
  • 资源 (1)
  • 收藏
  • 关注

原创 大模型是怎么学会的

哈喽,我是子牙老师。前面花了五年时间通关了计算机:手写操作系统、手写CPU虚拟机、手写Linux系统、手写GDB调试器、手写编程语言…,后面准备通关AI,研发出所有大家想学却没人教或者学不到的AI领域课程。如果你感兴趣,可以关注我的公众号【硬核子牙】

2026-07-30 12:27:38 210

原创 不要小瞧y=wx+b

哈喽,我是子牙老师。前面花了五年时间通关了计算机:手写操作系统、手写CPU虚拟机、手写Linux系统、手写GDB调试器、手写编程语言…,后面准备通关AI,研发出所有大家想学却没人教或者学不到的AI领域课程。如果你感兴趣,可以关注我的公众号【硬核子牙】

2026-07-29 12:54:12 232

原创 代码展示大模型的智能

哈喽,我是子牙老师。前面花了五年时间通关了计算机:手写操作系统、手写CPU虚拟机、手写Linux系统、手写GDB调试器、手写编程语言…,后面准备通关AI,研发出所有大家想学却没人教或者学不到的AI领域课程。如果你感兴趣,可以关注我的公众号【硬核子牙】

2026-07-17 12:29:58 199

原创 手写Chatgpt+自研推理平台

哈喽,我是子牙老师。前面花了五年时间通关了计算机:手写操作系统、手写CPU虚拟机、手写Linux系统、手写GDB调试器、手写编程语言…,后面准备通关AI,研发出所有大家想学却没人教或者学不到的AI领域课程。如果你感兴趣,可以关注我的公众号【硬核子牙】

2026-07-16 12:32:15 270

原创 你管这破玩意叫ChatGPT?

大模型根据初始w算出无限接近正确值的w,是算出来的,算,就涉及到移动的步长,学习率就是这个步长,比如定义learning_rate=0.01,每次训练,让w向正确答案挪动0.01,直到达到模型收敛。这个公式的意思是新的w等于老的w,减去学习率与每一次训练数据的斜率的乘积的平均数。这,就是大模型的本质!我们现在用到的大模型,都是出厂后,被万卡训练过的,参数都已经调到吃饱的状态了,只是不同方向的区别。大家再回头看一下我上面贴的训练的图,里面的w随着训练的次数一直在变,就是大模型自己算出来的。

2026-06-13 13:15:40 346

原创 软件虚拟化 vs 硬件虚拟化

大家应该都听过毛不易的《消愁吧》,里面有句歌词是:一杯敬朝阳,一杯敬月光…我觉得人真的要敬畏未知,不然容易闹出笑话来,比如这位网友…此时我又想起了韩寒的一句话:人还是要多读书,才能不丢人

2026-04-22 15:56:14 396

原创 通关计算机,AI时代唯一解

通关计算机?好陌生的说法,但是听起来又很狂妄很爽的感觉,有木有?什么叫通关计算机呢?为什么说它是AI时代的唯一解呢?听我娓娓道来!

2026-04-22 15:38:50 363

原创 ebpf检测Linux系统要来了

摘要:子牙老师分享了基于eBPF技术开发的Linux系统检测工具新进展。在完成《手写生产级eBPF内存监测工具》课程后,他扩展了工具功能,成功实现了对fork子进程内存泄漏的监测。文章详细记录了开发过程中解决的9个关键技术难点,包括进程间日志处理、异步同步机制等,并展示了工具对单层和无限fork场景的监测效果。作者强调eBPF技术的强大应用前景,指出该技术可用于用户态和内核态的全面检测,并倡导技术人员应注重内功修炼,善用AI工具而非依赖。最后邀请对系统监测和eBPF技术感兴趣的读者关注相关课程。

2026-01-14 11:40:14 586 1

原创 有人质疑我ebpf水平

子牙老师深入解析eBPF内存检测工具的底层原理:通过uprobe/uretprobe技术监控内存分配函数,采用类似调试器断点的插桩机制(int3软中断)实现函数追踪。文章详细剖析了eBPF与Linux内核的交互过程,包括中断处理优先级、内核通知链机制等核心技术点,并验证了新老内核版本在uprobe实现上的差异。作者强调掌握操作系统和Linux内核知识对深入理解底层技术的重要性,并分享了相关课程体系。全文通过代码示例和内核调试过程,生动展示了eBPF技术的实现细节。

2026-01-09 12:03:21 929 2

原创 手写生产级eBPF内存检测工具

本文介绍了子牙老师基于eBPF技术开发的内存监测工具实战经验。文章指出当前eBPF学习资源匮乏,特别是缺少实战教程,作者通过实际项目开发了一个生产级内存追踪工具,能够监控内存分配/释放、检测泄漏并查看调用栈。该工具综合运用了uprobe、kprobe等eBPF最新特性,并通过案例演示了工具的实际效果。文章还分享了AI时代程序员的发展建议,强调掌握底层技术和AI工具的重要性。

2025-12-29 12:27:25 894

原创 ext4文件系统与jbd2

本文深入解析了ext4文件系统的日志机制jbd2。通过创建一个目录的完整过程,详细讲解了ext4为何需要将操作封装成事务:目录创建涉及多次磁盘写入(inode位图、inode表、块位图等),若中途断电会导致元数据不一致。jbd2通过日志记录事务,确保操作的原子性。文章还通过实验展示了mount和mkdir操作生成的jbd2日志结构,分析日志超级块和事务数据块的内容。最后指出,要彻底理解ext4源码,必须掌握jbd2机制。文中包含大量实战分析,包括磁盘块内容对比和日志结构解析,是学习Linux内核和文件系统的

2025-11-14 13:28:02 990

原创 存储核心:EXT文件系统

哈喽,我是子牙老师,一个手写过操作系统、编程语言、Java虚拟机、docker、Ubuntu系统,玩透Windows内核、Linux内核…的硬核男人。今天写一篇文章分享下存储核心:EXT文件系统

2025-11-11 10:08:53 1045

原创 硬盘第一关:MBR VS GPT

哈喽,我是子牙老师,最近在备课《实战Linux内核》四期,刚好到Linux内核中的EXT4源码这块,想着很多人没底子看不懂这块代码,把我研究的成果写成文章分享给大家。本篇文章分享的底子之一就是MBR与GPT

2025-11-10 10:22:11 1130

原创 gdb调试多线程底层实现原理

现实中,我们写的程序一般都是多线程程序。如果多线程程序出问题了,就需要用到gdb的多线程调试功能,非常方便,直接通过thread tid切到可能存在问题的线程,单步执行,看堆栈、寄存器、内存,很快就能找到错误原因这么强大的功能背后,底层实现原理是什么呢?我们自己写调试器,该如何实现呢?本篇文章为你全方位揭晓!本篇文章看完,gdb远程调试的all,你就过关了!

2025-11-06 09:54:34 620

原创 好多年没过双11了

哈喽,我是子牙老师,一个手写过操作系统、编程语言、Java虚拟机、docker、Ubuntu系统,玩透Windows内核、Linux内核…的硬核男人

2025-11-05 10:06:43 777

原创 gdb的放过去是怎么做到的

哈喽,我是子牙老师,一个手写过操作系统、编程语言、Java虚拟机、docker、Ubuntu系统,玩透Windows内核、Linux内核的…硬核男人。今天写一篇文章分享下gdb的放过去是怎么做到的。

2025-10-26 11:02:37 665

原创 gdb单步调试底层实现原理

关于gdb调试器,我已经写了三篇硬核文章了《从零手写gdb调试器》《调试器是如何让代码停下来的》《gdb调试器底层实现原理》,今天开启它的第四篇:gdb单步调试代码的底层实现原理

2025-10-24 09:28:09 547

原创 gdb调试器底层实现原理

前几天写了两篇调试器相关的文章《从零手写gdb调试器》《调试器是如何让代码断下来的》,在多个学员群里引发了大家的讨论。没想到大家对调试器这么有热情!今天再来把大家讨论比较多的话题写成文章分享:gdb调试器的底层实现原理

2025-10-23 10:24:26 1006

原创 调试器是怎么让代码停下来的

我,子牙老师,一个手写过操作系统、编程语言、Java虚拟机、docker、Ubuntu系统,玩透Windows内核、Linux内核的…硬核男人,这篇文章分享下调试器是怎么让代码停下来的。

2025-10-21 10:06:09 563

原创 从零手写gdb调试器

我,子牙老师,一个手写过操作系统、编程语言、Java虚拟机、docker、Ubuntu系统,玩透Windows内核、Linux内核的…硬核男人最近一段时间一直在玩调试器,发现好多小伙伴对调试器感兴趣,那就写篇文章,带大家撸一个最简单的调试器,如何?

2025-10-17 16:28:04 1073

原创 我以后就不用gdb了

我,子牙老师,一个手写过操作系统、编程语言、Java虚拟机、docker、Ubuntu系统,玩透Windows内核、Linux内核的…硬核男人最近的我,有点销声匿迹的感觉,就有小伙伴跑来问我在折腾什么。在写自己的gdb调试器。已经写完了,写篇文章介绍下。

2025-10-16 09:58:13 866

原创 gdb图形界面调试Linux内核

Linux内核调试环境如何搭建?我给你全网最简单便捷的吧,gdb+clion,图形界面

2025-09-16 14:30:04 924

原创 mount藏着的Linux内核的秘密

我,子牙老师,一个手写过操作系统、编程语言、Java虚拟机、docker、Ubuntu系统,玩透Windows内核、Linux内核的…硬核男人众所周知,我最近在更新《实战Linux内核》四期的视频。更到mount底层原理的时候,想到可能大家对这块应该挺感兴趣的,写篇文章分享一下

2025-09-15 14:37:26 1010

原创 为Linux内核写一个文件系统

我,子牙老师,一个手写过操作系统、编程语言、Java虚拟机、docker、Ubuntu系统,玩透Windows内核、Linux内核的…硬核男人。本篇文章借着给Linux内核写一个文件系统,让你搞明白Linux内核、文件系统之间的关系

2025-08-27 07:58:20 417

原创 Python虚拟机内存机制底层

本文深入解析了CPython内存管理机制的核心原理。首先介绍了CPython的三种内存分配域(Raw Domain、Object Domain、Mem Domain),重点分析了启用pymalloc时Object Domain的工作机制。详细阐述了pymalloc的三层管理结构(arena、pool、block),包括256KB的arena包含64个4KB的pool,以及不同大小的block分配策略。文章还深入解读了usedpools的环形哑链表设计原理,并通过源码分析展示了内存分配的具体流程(pymall

2025-08-02 17:33:03 896

原创 gcc编译器眼中的C语言

编程语言一般分为编译期、运行期有的编程语言是编译期与运行期合并在一起的,比如Python、PHP…即解释型语言有的则是编译期与运行期分开的,比如C、C++、Java…即编译型语言。今天咱们深入聊聊编译期的C语言

2025-06-17 10:42:28 979

原创 带你速通编译原理

子牙老师以实战视角解析编译原理全流程:1)词法分析将代码转为token流;2)语法分析构建AST;3)语义分析校验逻辑正确性;4)中间代码生成(栈式IR/三地址码);5)最终生成机器码。课程特色在于全程手写实现各模块(含词法分析器、AST、IR生成器),配合flex/bison工具原理剖析。通过Python实例展示token生成、AST构建到字节码转换的全过程,揭示Java/Python虚拟机运作机制。核心观点:理解编译原理的最佳方式是动手实现,而非单纯理论学习。

2025-06-16 09:35:37 820

原创 这绝对是全网最细的手写操作系统环境搭建教程!

硬核开发者子牙老师分享手写操作系统环境搭建教程,提供完整的开发工具链配置方案。环境基于VMware虚拟机运行Ubuntu16系统,集成qemu、bochs虚拟机及clion IDE,支持SMP/NUMA架构操作系统开发,可实现C语言和汇编代码的单步调试,并能观察CPU内部状态变化。教程包含详细安装步骤和配置方法,并提供配套学习资源获取方式。该环境不仅适用于自主开发操作系统,还能用于Linux内核研究和各类底层系统开发,为开发者提供了强大的底层编程工具支持。

2025-06-11 16:43:43 1346

原创 【值得收藏】看懂Linux内核需要的全部CPU知识

哈喽,我是子牙老师。今天想写篇文章聊聊我对CPU的全部认识,你可以看看,里面有很多东西是你平时听过但不理解的,也有你没听过的

2025-05-26 14:23:56 933

原创 耗时8年时间!手写编程语言有结果了

坦白说,手写一门编程语言还是挺难的,因为市面上没有任何资料教你如何手写一门编程语言,所有的东西都需要自己去钻研。而且手写编程语言核心涉及到的词法分析器、语法分析器、抽象语法树AST、内存池、垃圾回收算法、执行引擎、编译器优化、运行时优化,都是非常难理解的,更别说把它写出来了。另外一方面就是我给自己的定位是做大家想学没地方学的课程,手写编程语言在国内就是一片空白,不知道是因为太难还是市场需求不大,没有人做,但是我都不care,做了就当填补中国计算机底层市场的空白了。下一步,手写一门自己的编程语言。

2025-05-19 17:22:43 403

原创 glibc库是如何写出来的

哈喽,我是子牙老师。今天咱们聊聊鼎鼎大名的glibc库是如何写出来的瓦特?你不知道glibc库是什么?你学C语言的第一句代码#include <stdio.h>,这个stdio.h就是glibc库中的。还有你经常用的函数printf、open、read、write…以下,enjoy。

2025-04-07 11:28:02 870

原创 sudo底层实现原理

哈喽,我是子牙老师关于sudo,想必大家不陌生了,给我们最直观的感受就是以root权限执行后面的命令,那你是否好奇它底层是如何实现的呢?最近正好备课把这个问题深入研究了一下,分享给大家以下,enjoy。

2025-03-28 10:59:50 431

原创 我为Linux内核写了个文件系统

哈喽,我是子牙老师。又又又做出新东西了:为Linux内核写了个文件系统,Linux内核可正常识别

2025-02-28 10:19:49 989

原创 真机上运行我写的Linux发行版

哈喽,我是子牙老师。在我的不懈折腾下,我写的Linux发行版终于可以在真机上运行了。想不想知道我是怎么做到的?

2025-02-27 09:09:10 315

原创 基于Linux内核手写Linux系统

第一次接触Linux系统的时候,我就感叹:这玩意太难用了,比Windows差远了!但是培训班老师告诉我Linux系统是程序员必学的,而且要学得很深,因为服务器几乎都是用它。后来入行久了,走得高了,才发现,哪里只是服务器用它?是基于PAM组件实现的,与所有的Linux系统是一模一样的。这件事情应该是我非常喜欢的,因为每天早上眼睛一睁开,我就想爬起来敲代码。

2025-01-02 10:28:51 411

原创 这样解决CFS不公平,Linux之父高度赞扬

Linux内核中有五种调度器,按优先级从高到低依次是:停机调度器、限期调度器、实时调度器、公平调度器、空闲调度器,与我们息息相关的是公平调度器CFSCFS中的调度实体,可以是进程,也可以是进程组。你可能疑惑,怎么没提到线程?其实Linux内核层面没有线程的概念,线程的本质是轻量级进程,所以线程在Linux内核中也是task_struct,所以机制是一样的基本上来说,你把我写得这两篇文章完全吃透,CFS源码你就可以轻轻松松读懂。CFS还剩边缘的知识,下一篇文章会全部讲到。

2024-11-30 09:47:48 951

原创 天呐!我能算出调度哪个进程

本篇文章,我们讲了CPU、CFS调度器、进程三者之间的关系又讲了vruntime的计算方法,并对其中的三要素进行了详细的讲解后又延伸讲到某个进程能够得到的CPU时间片的运算方式这就是CFS调度普通进程的全部。如果CFS只能调度普通进程,则会带来不公平,所以后来引入了CFS组调度,下篇文章分享。

2024-11-29 10:03:33 809

原创 一口气精通C语言

哈喽,我是子牙老师。今天我想通过一篇文章带你精通C语言,你信不信我能做到?好吧,问题不是我能不能做到,是你能不能学会。那咱们试试?

2024-10-21 09:53:00 1170

原创 谁能跟我比操作系统?

总有学员问:你做的课程,《手写操作系统》、《实战Linux内核》、《手写Linux内核》,跟你后面要做的《手写Linux》,有什么区别呢?每次解释也麻烦,一两句话也讲不清,写篇短文详细说下吧

2024-10-10 11:12:21 1232

原创 Linux内核是如何创建目录的

哈喽,我是子牙老师。今天咱们从ext4文件系统源码层面聊聊Linux内核是如何创建目录的,创建文件也差不多原理看这篇文章之前,建议你看下我之前写的《手写文件系统》,不然怕你看不懂当我们创建目录的时候,差不多这两种方式。本文会从这两个大方向进行分析以下,enjoy。

2024-07-24 09:20:17 955

VC6.0代码补全插件(实测可用)

有了这个插件,开发效率指数级提升

2017-06-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除