# x86_64_programming_practice **Repository Path**: benshushu/x86_64_programming_practice ## Basic Information - **Project Name**: x86_64_programming_practice - **Description**: x86_64_programming_practice - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 3 - **Created**: 2022-12-23 - **Last Updated**: 2024-02-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 《x86_64体系结构编程与实践》招募作者 《Arm64体系结构编程与实践》已经在2022年4月出版,《RISC-V体系结构编程与实践》预计在2023年春节前后出版。有不少小伙伴希望笨叔继续出一本x86_64的,但是 因为笨叔老了,也没有大多精力再写一本关于x86_64方面的了,这本x86_64老笨就不亲自操刀了。如果有热心小伙伴愿意一起写,笨叔乐意帮忙大家召集起来,帮大家统稿,联系出版社等。 ![image](images/arm64_risc-v.jpg) 按老笨的设想,《x86_64体系结构编程与实践》的行文风格和实验应该follow Arm64和RISC-V这两本书。实验基础代码采用BenOS,然后一个一个实验类似搭积木一样,最终实现一个小OS。 0. 本书尽量突出实践,多些工程实践中的案例和例子分析 以及陷阱总结,少一点文绉绉的理论 1. 尽可能多举些例子来说明 2. 尽可能总结多一些工程师或者初学者容易犯错的地方和陷阱 3. 每一章多构思一些可动手的实验 推荐的实验环境如下。 主机硬件平台:Intel x86_64处理器兼容主机 主机操作系统:Ubuntu Linux 20.04 实验环境:QEMU GCC版本:9 汇编器:gas ## 暂定目录 1. x86_64体系结构介绍 介绍x86_64体系结构的发展历史,特点 介绍Intel/AMD的最新处理器 2. 搭建实验环境 搭建一个最简单的BenOS程序 3. x86_64汇编语法 介绍x86_64常用的汇编指令(这里可以分成多个章节) 尽可能多些例子,多讲一些初学者容易犯错的地方和陷阱 4. 函数调用规范与栈 介绍x86_64函数调用规范 介绍x86_64栈的布局和回溯 5. GNU汇编器 6. GNU链接器 7. 内嵌汇编 介绍x86_64下GCC内嵌汇编语法 尽可能多些例子,多讲一些初学者容易犯错的地方和陷阱 8. 中断和异常 介绍x86_64体系结构中的和异常的处理 结合例子来介绍 9. 中断控制器(8259,Local/IO APIC) 10. 内存管理 介绍x86_64下页表。 11. 高速缓存基础 12. 缓存一致性 介绍cache falsing等 13. TLB管理 14. 原子操作指令 介绍x86_64下的原子操作指令的使用和实现原理 结合linux内核中例子来介绍 15. 内存屏障 介绍x86_64的内存屏障TSO 介绍一些内存屏障使用的例子和案例 16. 与操作系统相关的内容 在BenOS里实现创建进程,进程调度,系统调用,clone等 17. SIMD指令(AVX2或者AVX-512) 介绍AVX2或者AVX-512上常用的指令 可以参考《Arm64》或者《RISC-V》上的例子,例如memcpy,stncpy,RGB32->BGR32,4x4矩阵,自动矢量化 18. 虚拟化介绍 介绍Intel 虚拟化 可以结合具体案例来介绍虚拟化的进入/退出,中断虚拟化模拟,串口设备模拟等 19. 安全介绍 介绍Intel的SGX和TDX最新技术特性 ## 署名与稿酬 署名:封面署名前后次序按编写的书稿的字数(页数)占比来 稿酬:老笨联系出版社。按照编写的书稿的字数(页数)占比来分配稿酬。 ## 联系笨叔 有兴趣的小伙伴,可以联系笨叔 笨叔微信:runninglinuxkernel 邮箱:runninglinuxkernel@126.com