
《计算机底层原理》[更新中]
文章平均质量分 91
意在带读者正确的构件计算机体系和计算机思维,通过计算机体系结构、组成原理、Intel开发手册、ISA、汇编原理、C、ELF、HotSpot等模块,打造计算机底层学习
小 明
2022博客之星TOP3/博客专家/优快云后端内容合伙人、InfoQ(极客时间)签约作者。8年开发经验,就职知名金融互联网大厂后端研发专家,专注于面试、后端、源码、架构、算法,擅长高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。
文章底部联系 -> 商务合作 | 技术交流 | 粉丝福利
展开
-
【精通内核】Linux内核自旋锁实现原理与源码解析
不管是普通自旋锁还是读写自旋锁都是通过原子性命令来加减操作的;而对于读写锁而言,可通过将 lock 变量变为 0x01000000 值,然后后将第六位作为写锁标志位来使用。原创 2022-10-27 22:54:19 · 2799 阅读 · 30 评论 -
【精通内核】Linux内核抢占原理源码解析
内核抢占就是允许正在内核中执行的任务抢占另一个正在内核中执行的任务。本文详解Linux内核抢占原理以及内核源码实现过程。原创 2022-09-21 23:52:49 · 1563 阅读 · 2 评论 -
【精通内核】Linux内核中断控制原理源码解析
CPU 对于任务切换是通过时钟中断来控制的,只要我们将中断屏蔽,就可以保证在当前CPU中的所有操作都不会被中断,从而保证了原子性。在单核CPU上, 通过操作 EFLAGS 寄存器相当于保存EFLAGS表示中断。原创 2022-09-21 23:49:51 · 1154 阅读 · 0 评论 -
【精通内核】Linux内核并发控制原理信号量与P-V原语源码解析
本文深入Linux内核源码,从核心源码入口讲起,详细对信号量、互斥量的内核代码讲解,其中对P-V操作实现逐行剖析,Linux内核并发控制原理的锁实现和原理在后续文章中一一讲解,本文深入浅出Linux中断控制的实现原理。原创 2022-09-18 23:36:34 · 1110 阅读 · 2 评论 -
【2022新版】Java 终极学习路线(文末高清大图)-共计9大模块/6大框架/13个中间件
2022新版-Java终极学习路线,适合Java初学者建立一个正确高效的学习体系;适合Java中高级开发工程师向更高层次攀登;适合资深开发以及架构师查缺补漏向技术专家及研究员冲刺原创 2022-09-09 00:36:36 · 22196 阅读 · 101 评论 -
程序人生 | 编程的上帝视角应该怎么去找
本文通过抛出一个编程的上帝视角问题,我们了解什么是编程的上帝视角,编程如何学习以及编程的root是什么,找到root之后,我们有如何利用上帝视角去解决编程中的推理。原创 2022-09-03 21:54:44 · 21491 阅读 · 72 评论 -
【精通内核】CPU控制并发原理CPU中断控制内核解析
本文讲解CPU角度的中断控制,CPU层面并行并发和中断控制的原理,现代CPU的缓存结构和架构图、CPU缓存一致性的源码原理,以及CPU如何通过编译器的屏障与指令实现系统屏障,经过内联汇编代码验证之后,证明上述所说的 Linux 内核用 volatile 关键字实现系统屏障(指令重排),加深对系统屏障的内核源码和原理的理解原创 2022-09-03 22:45:28 · 19206 阅读 · 125 评论 -
解读《深入理解计算机系统(CSAPP)》第1章 计算机系统漫游
解读《深入理解计算机系统(CSAPP)》第1章计算机系统漫游,介绍计算机系统硬件组成,文中末尾有计算机系统体系架构图原创 2022-02-26 19:47:15 · 1803 阅读 · 4 评论 -
解读《深入理解计算机系统(CSAPP)》第9章虚拟内存
虚拟内存是什么,内存和物理硬件的使用什么间接,分配器怎么回收内存?原创 2022-03-26 23:24:49 · 1869 阅读 · 1 评论 -
解读《深入理解计算机系统(CSAPP)》第10章系统级IO
高级别IO有标准IO库 I/O函数……大多数时候高级别I/O函数都运行良好,为什么我们还要学Unix I/O?了解Unix I/O将帮助你理解其他的系统概念,要深入理解其他概念,必须理解I/O原创 2022-03-27 23:06:12 · 1840 阅读 · 1 评论 -
解读《深入理解计算机系统(CSAPP)》第11章网络编程
所有网络应用都基于相同的编程模型,有相似的整体结构,依赖相同的编程接口。我们需要理解基本的客户端-服务器编程模型,以及如何编写网络程序。原创 2022-03-29 22:15:35 · 1703 阅读 · 1 评论 -
解读《深入理解计算机系统(CSAPP)》第12章并发编程
并发可以看做是一种操作系统内核用来运行多个应用程序的机制,并发不局限于内核原创 2022-04-02 00:07:03 · 1726 阅读 · 1 评论 -
【精通内核】当我开始思考人生、职业、兴趣
静下心去走未来的人生道路和职业生涯,专注于研究计算机底层,不去管不去看浮躁的人和事,继续沉淀原创 2022-06-26 16:05:51 · 2009 阅读 · 12 评论 -
解读《深入理解计算机系统(CSAPP)》第8章异常控制流
本章题目是 “异常控制流 = Exceptional Control Flow”,实际内容是进程,系统调用,异常,信号等,它们与操作系统(以及系统编程)之间都有着密切的联系,后续的几个章节,例如虚拟内存,系统I/O,网络编程等也都与操作系统(以及系统编程)有着密不可分的联系。原创 2022-03-13 20:50:51 · 1405 阅读 · 1 评论 -
解读《深入理解计算机系统(CSAPP)》第7章链接
大多数编译器提供编译器驱动程序(compiler driver),他代表用户在需要时调用语言预处理器、编译器、汇编器和链接器原创 2022-03-09 22:46:26 · 1135 阅读 · 1 评论 -
解读《深入理解计算机系统(CSAPP)》第5章优化程序性能
程序优化涉及的范围,比如如何撰写的程序,针对不同硬件平台可能进行特定的优化等等,优化的难点在于你需要对系统有充分理解,那么如何优化是本章讨论的重点。原创 2022-03-06 22:49:18 · 1512 阅读 · 1 评论 -
解读《深入理解计算机系统(CSAPP)》第4章处理器体系结构
本章讲解指令集架构(ISA),在处理器行为(指令计划及其编码)和如何实现处理器之间提供了一层抽象。不同指令组织都遵循5个阶段,由SEQ处理器其中每个时钟周期执行一条指令,就会通过5个阶段(取值 -> 译码 -> 执行-> 防存 -> 回写)。流水线化通过让不同阶段并行操作,改进了系统吞吐量,在任意给定的一个时刻,多条指令被不同的阶段处理。原创 2022-03-05 18:05:21 · 1663 阅读 · 1 评论 -
解读《深入理解计算机系统(CSAPP)》第3章程序的机器级表示
C语言机器级编程通过让编译器产生机器级程序的汇编代码表示,了解了编译器以及机器、数据类型和指令集原创 2022-03-03 22:21:50 · 1297 阅读 · 1 评论 -
【精通内核】计算机程序的本质、内存组成与ELF格式深度解析
精通真正的高并发编程,不仅仅是API的使用和原理!计算机最基础的程序是怎么组成的呢?本文深入浅出,讲解程序的本质(编译的过程)、组成(程序所需的内存)与格式(ELF),希望读者可以构建计算机从写代码到编译到执行的链路的底层思维。...原创 2022-08-18 21:52:05 · 148005 阅读 · 41 评论 -
数据通信之信道与编码
简要介绍信道特性,详解通道传送模拟数据中基本编码和应用编码原创 2020-09-09 22:14:32 · 3188 阅读 · 2 评论 -
计算机网络之通信编码与网络通信模型
众所周知,计算机只能读取二进制的数据,而这些二进制数字信息在传输过程中可采用不同的代码,这些代码的抗噪性和定时能力各不相同。● 最基本的数字编码有单极性码、极性码、双极性码、归零码、不归零码、双相码六种。● 常用于局域网的有曼彻斯特编码、差分曼彻斯特编码。● 常用于广域网的4B/5B码、8B/10B码。(1)基本编码1.极性编码:极性编码可以分为单极性码,极性码,双极性码。极包括正极和负极。● 单极性码:只使用一个极性,再加零电平(正极表示0,零电平表示1) ;● 极性码使用了两极(...原创 2020-09-17 13:50:06 · 4818 阅读 · 2 评论 -
操作系统核心之 处理器管理
本文讲解了处理器中进程互斥与同步,信号量机制,死锁相关知识,处理器管理是操作系统的重点。原创 2020-09-05 11:21:41 · 1637 阅读 · 0 评论 -
操作系统核心之 内存管理
一文讲述内存管理方式、连续分配方式,存储方式和页面置换算法。原创 2020-09-06 11:30:36 · 2526 阅读 · 0 评论 -
如何快速构建操作系统类型与结构的知识体系
一文讲解了操作系统的定义、计算机中的定位、操作系统的分类和功能、进程和进程的状态,带你建立操作系统知识体系。原创 2020-08-30 18:59:44 · 1209 阅读 · 0 评论 -
操作系统核心之 作业管理与设备管理
操作系统作业管理与设备管理,核心就是处理机的调度,需要了解基本调度算法与磁盘调度方式原创 2020-09-06 15:33:18 · 935 阅读 · 0 评论 -
操作系统核心之 文件管理
操作系统核心之文件管理,简单介绍文件系统,详细介绍文件结构和存储空间的管理。原创 2020-09-04 22:41:14 · 1562 阅读 · 0 评论 -
【精通内核】计算机er要掌握的计算机思维
本篇文章意在带你建立计算机底层架构的思维和逻辑,从图灵机、冯诺依曼体系反推 计算机体系结构 和 ISA指令集架构,从高级语言向下递推编译器、汇编语言、汇编器 、到机器语言,ISA指令集..................原创 2022-06-18 21:03:04 · 87424 阅读 · 94 评论 -
【精通内核】编译原理深度解析
上篇 计算机er要掌握的计算机思维 推理得出,编译原理就是将高级语言翻译成汇编语言或机器语言的过程,本章我们详细介绍编译设计原理和过程,并佐以Graal编译器证明原创 2022-07-06 07:30:00 · 2818 阅读 · 51 评论 -
【精通内核】解读《汇编语言》
学习汇编语言的目的就是通过汇编语言进行深入地理解计算机底层的基本工作机理,达到可以随心所欲地控制计算机的目的。原创 2022-04-16 22:19:29 · 35037 阅读 · 0 评论