|
├── 1, 计算机是如何工作的?/
│ ├── 1, 存储程序计算机工作模型/
│ │ ├── 01_什么是冯诺依曼体系结构?.mp4
│ │ └── HowtheComputerWorks.pdf
│ ├── 2, X86汇编基础/
│ │ ├── 01_X86 Registers.mp4
│ │ ├── 02_X86汇编指令一(mov指令及几种内存寻址方式).mp4
│ │ ├── 03_X86汇编指令二(push、pop、call、ret).mp4
│ │ ├── 04_分析几个汇编指令片段(一).mp4
│ │ ├── 05_分析几个汇编指令片段(二).mp4
│ │ └── 参考资料.doc
│ ├── 3, 反汇编一个简单的C程序分析其汇编指令执行过程/
│ │ ├── 01_反汇编一个简单的C程序.mp4
│ │ ├── 02_C程序和对应的汇编指令.mp4
│ │ ├── 03_完整汇编程序执行过程分析.mp4
│ │ └── 655836695753733547.gif
│ ├── 测试题/
│ │ ├── Linux内核分析 - files/
│ │ │ ├── commonutil.html
│ │ │ ├── content.html
│ │ │ ├── core.css
│ │ │ ├── core.js
│ │ │ ├── echarts.js
│ │ │ ├── exam.html
│ │ │ ├── ga.js
│ │ │ ├── homework.html
│ │ │ ├── learn.html
│ │ │ ├── logo.png
│ │ │ ├── proicon.png
│ │ │ ├── pt_pages_course_learn.css
│ │ │ ├── saved_resource
│ │ │ ├── saved_resource(1)
│ │ │ ├── small.jpg
│ │ │ ├── task.html
│ │ │ ├── ui_appbanner_closebtn.png
│ │ │ ├── ui_appbanner_dlbtn.png
│ │ │ ├── ui_appbanner_jt.png
│ │ │ ├── ui_appbanner_logo.png
│ │ │ └── ui_appbanner_lookbtn.png
│ │ └── Linux内核分析 - .html
│ └── 作业.docx
├── 2, 操作系统是如何工作的?/
│ ├── 1, 计算机是如何工作的?(续)——函数调用堆栈/
│ │ ├── 01_三个法宝.mp4
│ │ ├── 02_深入理解函数调用堆栈.mp4
│ │ ├── 03_参数传递与局部变量.mp4
│ │ ├── FoundationsForHackingLinux.pdf
│ │ └── 文档.docx
│ ├── 2, 利用mykernel实验模拟计算机硬件平台/
│ │ ├── 01_mykernel实验背后涉及的思想.mp4
│ │ ├── 02_利用mykernel实验模拟计算机硬件平台.mp4
│ │ └── mykernel实验指导.docx
│ ├── 3, 在mykernel基础上构造一个简单的操作系统内核/
│ │ ├── 01_C代码中嵌入汇编代码的写法.mp4
│ │ ├── 02_一个简单的操作系统内核源代码.mp4
│ │ └── 03_运行这个精简的操作系统内核.mp4
│ ├── 测试题/
│ │ ├── Linux内核分析 - files/
│ │ │ ├── commonutil.html
│ │ │ ├── content.html
│ │ │ ├── core.css
│ │ │ ├── core.js
│ │ │ ├── echarts.js
│ │ │ ├── exam.html
│ │ │ ├── ga.js
│ │ │ ├── homework.html
│ │ │ ├── learn.html
│ │ │ ├── logo.png
│ │ │ ├── proicon.png
│ │ │ ├── pt_pages_course_learn.css
│ │ │ ├── saved_resource
│ │ │ ├── saved_resource(1)
│ │ │ ├── small.jpg
│ │ │ ├── task.html
│ │ │ ├── ui_appbanner_closebtn.png
│ │ │ ├── ui_appbanner_dlbtn.png
│ │ │ ├── ui_appbanner_jt.png
│ │ │ ├── ui_appbanner_logo.png
│ │ │ └── ui_appbanner_lookbtn.png
│ │ └── Linux内核分析 - .html
│ └── 作业.docx
├── 3, 构造一个简单的Linux系统MenuOS/
│ ├── 1, Linux内核源代码简介/
│ │ └── 01_Linux内核源代码.mp4
│ ├── 2, 构造一个简单的Linux系统/
│ │ ├── 01_构造一个简单的Linux系统MenuOS.mp4
│ │ ├── menu.zip
│ │ └── 实验指导.docx
│ ├── 3, 跟踪调试Linux内核的启动过程/
│ │ ├── 01_使用gdb跟踪调试Linux内核的方法.mp4
│ │ ├── 02_简单分析一下start_kernel.mp4
│ │ └── Linux内核启动过程相关的参考资料.docx
│ ├── 测试题/
│ │ ├── Linux内核分析 - files/
│ │ │ ├── commonutil.html
│ │ │ ├── content.html
│ │ │ ├── core.css
│ │ │ ├── core.js
│ │ │ ├── echarts.js
│ │ │ ├── exam.html
│ │ │ ├── ga.js
│ │ │ ├── homework.html
│ │ │ ├── learn.html
│ │ │ ├── logo.png
│ │ │ ├── proicon.png
│ │ │ ├── pt_pages_course_learn.css
│ │ │ ├── saved_resource
│ │ │ ├── saved_resource(1)
│ │ │ ├── small.jpg
│ │ │ ├── task.html
│ │ │ ├── ui_appbanner_closebtn.png
│ │ │ ├── ui_appbanner_dlbtn.png
│ │ │ ├── ui_appbanner_jt.png
│ │ │ ├── ui_appbanner_logo.png
│ │ │ └── ui_appbanner_lookbtn.png
│ │ └── Linux内核分析 - .html
│ └── 作业.docx
├── 4, 扒开系统调用的三层皮(上)/
│ ├── 1, 用户态、内核态和中断/
│ │ └── 01_用户态、内核态和中断处理过程.mp4
│ ├── 2, 系统调用概述/
│ │ ├── 01_系统调用概述和系统调用的三层皮.mp4
│ │ └── SystemCall.pdf
│ ├── 3, 使用库函数API和C代码中嵌入汇编代码触发同一个系统调用/
│ │ ├── 01_使用库函数API获取系统当前时间.mp4
│ │ ├── 02_C代码中嵌入汇编代码的写法(复习可跳过).mp4
│ │ └── 03_使用C代码中嵌入汇编代码触发系统调用获取系统当前时间.mp4
│ ├── 测试题/
│ │ ├── Linux内核分析 - files/
│ │ │ ├── commonutil.html
│ │ │ ├── content.html
│ │ │ ├── core.css
│ │ │ ├── core.js
│ │ │ ├── echarts.js
│ │ │ ├── exam.html
│ │ │ ├── ga.js
│ │ │ ├── homework.html
│ │ │ ├── learn.html
│ │ │ ├── logo.png
│ │ │ ├── proicon.png
│ │ │ ├── pt_pages_course_learn.css
│ │ │ ├── saved_resource
│ │ │ ├── saved_resource(1)
│ │ │ ├── small.jpg
│ │ │ ├── task.html
│ │ │ ├── ui_appbanner_closebtn.png
│ │ │ ├── ui_appbanner_dlbtn.png
│ │ │ ├── ui_appbanner_jt.png
│ │ │ ├── ui_appbanner_logo.png
│ │ │ └── ui_appbanner_lookbtn.png
│ │ └── Linux内核分析 - .html
│ └── 作业.docx
├── 5, 扒开系统调用的三层皮(下)/
│ ├── 1, 给MenuOS增加time和time-asm命令/
│ │ └── 01_给MenuOS增加time和time-asm命令.mp4
│ ├── 2, 使用gdb跟踪系统调用内核函数sys_time/
│ │ └── 01_使用gdb跟踪系统调用内核函数sys_time.mp4
│ ├── 3, 系统调用在内核代码中的处理过程/
│ │ ├── 01_系统调用在内核代码中的工作机制和初始化.mp4
│ │ ├── 02_简化后便于理解的system_call伪代码.mp4
│ │ └── 03_简单浏览system_call到iret之间的主要代码.mp4
│ ├── 测试题/
│ │ ├── Linux内核分析 - files/
│ │ │ ├── commonutil.html
│ │ │ ├── content.html
│ │ │ ├── core.css
│ │ │ ├── core.js
│ │ │ ├── echarts.js
│ │ │ ├── exam.html
│ │ │ ├── ga.js
│ │ │ ├── homework.html
│ │ │ ├── learn.html
│ │ │ ├── logo.png
│ │ │ ├── proicon.png
│ │ │ ├── pt_pages_course_learn.css
│ │ │ ├── saved_resource
│ │ │ ├── saved_resource(1)
│ │ │ ├── small.jpg
│ │ │ ├── task.html
│ │ │ ├── ui_appbanner_closebtn.png
│ │ │ ├── ui_appbanner_dlbtn.png
│ │ │ ├── ui_appbanner_jt.png
│ │ │ ├── ui_appbanner_logo.png
│ │ │ └── ui_appbanner_lookbtn.png
│ │ └── Linux内核分析 - .html
│ └── 作业.docx
├── 6, 进程的描述和进程的创建/
│ ├── 1, 进程的描述/
│ │ ├── 01_进程描述符task_struct数据结构(一).mp4
│ │ ├── 02_进程描述符task_struct数据结构(二).mp4
│ │ └── 进程控制块PCB——task_struct.docx
│ ├── 2, 进程的创建/
│ │ ├── 01_进程的创建概览及fork一个进程的用户态代码.mp4
│ │ ├── 02_理解进程创建过程复杂代码的方法.mp4
│ │ ├── 03_浏览进程创建过程相关的关键代码.mp4
│ │ ├── 04_创建的新进程是从哪里开始执行的?.mp4
│ │ ├── 05_使用gdb跟踪创建新进程的过程.mp4
│ │ └── fork一个子进程的代码.docx
│ ├── 测试题/
│ │ ├── Linux内核分析 - files/
│ │ │ ├── commonutil.html
│ │ │ ├── content.html
│ │ │ ├── core.css
│ │ │ ├── core.js
│ │ │ ├── echarts.js
│ │ │ ├── exam.html
│ │ │ ├── ga.js
│ │ │ ├── homework.html
│ │ │ ├── learn.html
│ │ │ ├── logo.png
│ │ │ ├── proicon.png
│ │ │ ├── pt_pages_course_learn.css
│ │ │ ├── saved_resource
│ │ │ ├── saved_resource(1)
│ │ │ ├── small.jpg
│ │ │ ├── task.html
│ │ │ ├── ui_appbanner_closebtn.png
│ │ │ ├── ui_appbanner_dlbtn.png
│ │ │ ├── ui_appbanner_jt.png
│ │ │ ├── ui_appbanner_logo.png
│ │ │ └── ui_appbanner_lookbtn.png
│ │ └── Linux内核分析 - .html
│ └── 作业.docx
├── 7, 可执行程序的装载/
│ ├── 1, 预处理、编译、链接和目标文件的格式/
│ │ ├── 01_可执行程序是怎么得来的?.mp4
│ │ ├── 02_目标文件的格式ELF.mp4
│ │ ├── 03_静态链接的ELF可执行文件和进程的地址空间.mp4
│ │ └── 文档.docx
│ ├── 2, 可执行程序、共享库和动态链接/
│ │ ├── 01_装载可执行程序之前的工作.mp4
│ │ ├── 02_装载时动态链接和运行时动态链接应用举例.mp4
│ │ ├── SharedLibDynamicLink.zip
│ │ └── 文档.docx
│ ├── 3, 可执行程序的装载/
│ │ ├── 01_可执行程序的装载相关关键问题分析.mp4
│ │ ├── 02_sys_execve的内部处理过程.mp4
│ │ ├── 03_使用gdb跟踪sys_execve内核函数的处理过程.mp4
│ │ ├── 04_可执行程序的装载与庄生梦蝶的故事.mp4
│ │ ├── 05_浅析动态链接的可执行程序的装载.mp4
│ │ └── 文档.docx
│ ├── 测试题/
│ │ ├── Linux内核分析 - files/
│ │ │ ├── commonutil.html
│ │ │ ├── content.html
│ │ │ ├── core.css
│ │ │ ├── core.js
│ │ │ ├── echarts.js
│ │ │ ├── exam.html
│ │ │ ├── ga.js
│ │ │ ├── homework.html
│ │ │ ├── learn.html
│ │ │ ├── logo.png
│ │ │ ├── proicon.png
│ │ │ ├── pt_pages_course_learn.css
│ │ │ ├── saved_resource
│ │ │ ├── saved_resource(1)
│ │ │ ├── small.jpg
│ │ │ ├── task.html
│ │ │ ├── ui_appbanner_closebtn.png
│ │ │ ├── ui_appbanner_dlbtn.png
│ │ │ ├── ui_appbanner_jt.png
│ │ │ ├── ui_appbanner_logo.png
│ │ │ └── ui_appbanner_lookbtn.png
│ │ └── Linux内核分析 - .html
│ └── 作业.docx
├── 8, 进程的切换和系统的一般执行过程/
│ ├── 1, 进程切换的关键代码switch_to分析/
│ │ ├── 01_进程调度与进程调度的时机分析.mp4
│ │ ├── 02_进程上下文切换相关代码分析.mp4
│ │ └── 文档.docx
│ ├── 2, Linux系统的一般执行过程/
│ │ ├── 01_Linux系统的一般执行过程分析.mp4
│ │ ├── 02_Linux系统执行过程中的几个特殊情况.mp4
│ │ ├── 03_内核与舞女.mp4
│ │ └── 文档.docx
│ ├── 3, Linux系统架构和执行过程概览/
│ │ ├── 01_Linux操作系统架构概览.mp4
│ │ ├── 02_最简单也是最复杂的操作——执行ls命令.mp4
│ │ ├── 03_从CPU和内存的角度看Linux系统的执行.mp4
│ │ └── LinuxArchitectureAndSystemExecution.pdf
│ ├── 测试题/
│ │ ├── Linux内核分析 - files/
│ │ │ ├── commonutil.html
│ │ │ ├── content.html
│ │ │ ├── core.css
│ │ │ ├── core.js
│ │ │ ├── echarts.js
│ │ │ ├── exam.html
│ │ │ ├── ga.js
│ │ │ ├── homework.html
│ │ │ ├── learn.html
│ │ │ ├── logo.png
│ │ │ ├── proicon.png
│ │ │ ├── pt_pages_course_learn.css
│ │ │ ├── saved_resource
│ │ │ ├── saved_resource(1)
│ │ │ ├── small.jpg
│ │ │ ├── task.html
│ │ │ ├── ui_appbanner_closebtn.png
│ │ │ ├── ui_appbanner_dlbtn.png
│ │ │ ├── ui_appbanner_jt.png
│ │ │ ├── ui_appbanner_logo.png
│ │ │ └── ui_appbanner_lookbtn.png
│ │ └── Linux内核分析 - .html
│ └── 作业.docx
├── 9, Linux系统架构和执行过程概览/
│ ├── 01_Linux操作系统架构概览.mp4
│ ├── 02_最简单也是最复杂的操作——执行ls命令.mp4
│ ├── 03_从CPU和内存的角度看Linux系统的执行.mp4
│ └── LinuxArchitectureAndSystemExecution.pdf
链接:
|
|
|