从头开始开发多线程内核!

使用交互式 shell 构建多任务操作系统和内核!

讲师:Daniel McCarthy

口袋资源独家Udemy付费课程独家中英文字幕配套资料齐全!

不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。

你将学到什么

  • 如何从头开始创建内核
  • 如何创建多任务内核
  • 如何处理操作系统中的恶意或有问题的程序。如果他们行为不端,就终止他们。
  • 内存在计算机中的工作原理
  • 构成现代计算的内核态、用户态和保护环之间的区别
  • Linux 内核本身使用的内核设计模式
  • 您将了解有关虚拟内存以及如何将虚拟地址映射到物理地址的所有信息
  • 您将学习如何让内核理解进程和任务
  • 您将学习如何加载 ELF 文件
  • 您将学习如何调试反汇编的机器代码
  • 您将学习如何使用 GDB 在模拟器中调试内核。

要求

  • 你必须了解 C 编程语言
  • 掌握一些汇编语言的基本知识是明智的
  • 您应该有一个 Linux 操作系统,可以从互联网上免费安装(我们在本课程中使用 Ubuntu)

描述

本课程旨在教您如何从头开始创建自己的多任务操作系统和内核。假设您没有内核编程经验,并且您是从头开始学习的。

实模式开发

实模式是所有 Intel 处理器中的传统模式,它会导致处理器以传统状态启动,其性能就像旧的 8086 Intel 处理器一样。

在课程的“实模式开发”部分,我们首先了解启动过程和内存的工作原理,然后继续创建我们自己的启动加载程序,并在真机上进行测试!该引导加载程序将输出一个简单的“Hello World!” 消息到屏幕上,我们用纯汇编语言编写这个引导加载程序。

在本节中,我们还从硬盘读取一个扇区(512 字节),并了解有关实模式中断以及如何创建中断的所有信息。

本节让您对内核开发有一个很好的体验,但不会给您带来过多的信息。您将学到有关传统处理器的基础知识和足够的知识,以便能够在本课程中进一步进行更现代的内核开发。

保护模式开发

在本节中,我们创建一个具有 FAT16 文件系统的 32 位多任务内核。我们的内核将使用英特尔内置的内存保护和安全机制,使我们能够指示处理器保护我们的内核并防止用户程序损坏它。

本节非常深入,向您介绍了有关分页和虚拟内存的所有内容。我们利用Intel处理器中巧妙的指令来允许所有进程共享相同的内存地址,这就是所谓的内存虚拟化。我们将内存地址映射到不同的物理内存地址,以造成每个正在运行的进程都加载在同一地址的错觉。这是内核开发中非常常见的技术,也是交换文件的工作方式(这些文件用于在可用 RAM 耗尽时进行补偿)。

我们创建了自己的虚拟文件系统层,该层使用类似于 Linux 内核的设计。将教给您的这个巧妙的抽象概念受到了讲师过去编写 Linux 内核驱动程序的知识的启发。

您将了解 FAT16 文件系统的设计以及 FAT16 文件系统如何分解为簇以及它们如何链接在一起。然后我们实现我们自己的 FAT16 文件系统驱动程序,让文件诞生!

我们实现任务和进程的功能并编写我们自己的键盘驱动程序。

在本课程中,您还将了解内存管理的工作原理,我们实现“malloc”和“free”函数,创建我们自己的堆,旨在跟踪正在使用的内存。内存管理在任何操作系统和内核中都是必不可少的。

我们不要忘记,我们甚至创建了一个ELF文件加载器,我们将把所有操作系统程序编译成ELF文件,并允许加载二进制程序或ELF程序。ELF 文件包含大量描述我们的程序的信息,例如我们的程序应加载到内存中的位置以及程序的不同部分。

在本课程结束时,您将拥有一个功能齐全的 32 位多任务内核,它可以同时运行许多进程和任务。您将拥有一个我们也可以使用的工作 shell。

汇编语言奖金

这是一个额外的部分,旨在让您在本课程中对汇编语言有点困难时提高您的汇编技能。但是,建议您具有汇编语言经验来学习本课程,我们确实使用它并且它很重要。尽管如此,如果您想在没有汇编经验的情况下尝试学习本课程,那么本节将帮助您指明正确的方向,以便您能够将所学到的知识应用到内核中。

由在工作场所专业创建 Linux 内核模块的专家授课。15 年软件工程师经验

本课程适合谁:

  • 想要学习如何创建内核的初级内核开发人员

发表回复

后才能评论

评论(2)

  • 每一个课程页面,都有演示地址选项,点击链接可以跳转到课程发布网站查看详细课程列表。
  • 绝大部分课程都有试看内容,可以先点击试看,再决定是否购买。
  • 本站课程均存储在阿里云盘或百度网盘中,由于阿里云盘对分享的文件类型有限制,所以课程资料和字幕会存储到蓝奏云盘中。
  • 阿里云盘和蓝奏云盘都是不限速下载的,你既可以选择在阿里云盘中在线学习,也可以选择下载到本地学习。
  • 课程下载到本地可以挂载中英文双字幕,请点击查看Potplayer挂载中英文双字幕教程
  • 本站所有课程,均提供mp4格式视频文件,中英文双字幕,配套资料齐全,不加密。
  • 每一个课程右侧下载面板中,都会有清晰度标识,大部分都是1080P或者720P,还有少数是超高清的。
  • 本站课程购买之后,均可以免费更新,所有课程,皆配有中文字幕。
  • 请注意,课程的中文字幕是根据英文字幕用谷歌翻译生成的,本非人工翻译。谷歌翻译准确度尚可,学习观看,没有问题。
  • 由于数字资源具有可复制性,一旦购买,不接受退款要求,请在购买之前,认真了解课程内容,确定是否需要。
  • 当然,如果有特殊情况,可以查看网站底部联系方式,联系站长说明问题,我会为你妥善处理。
  • 赞助本站VIP会员,可以免费下载所有课程,详情请查看VIP介绍