做 6.828 课程,选择 x86 版本还是 RISCV 版本,差别大吗?

2024-05-27 23:49:00 +08:00
 amiwrong123

https://pdos.csail.mit.edu/6.828/2018/xv6.html

目前选择的是 2018 版,也就是最后一年的 x86 版本。目前完成了 lab1 的大部分练习。

在完成 lab1 的过程中,会直接接触一些 架构上老旧的东西,比如实模式和 32 位保护模式,但这个东西对学习操作系统本身来说是没有帮助的。

所以我有点担心,因为选择了 x86 版本,后续的 lab 过程,还会学习到这种老旧的东西(之所以说它老旧,是因为这种东西一般都是因为 x86 的历史原因才保留下来的东西)。( PS: https://blog.csdn.net/qicaiyuwu/article/details/108653923 , 比如这篇博客里,有什么调用门、中断门、陷阱门、任务门,然后我就感觉 x86 里面这些东西好绕)

我主要想问大家:

  1. 选择 x86 版本还是 RISCV 版本,差别大吗?其实对我来说没有区别,甚至感觉选择了 RISCV 后还能顺便学习下 RISCV (个人有比较好的 arm 架构基础,应该比较好入门 RISCV 吧)
  2. 继续 x86 版本,后面会遇到这种老旧的东西吗?
1828 次点击
所在节点    程序员
7 条回复
kokutou
2024-05-27 23:53:09 +08:00
学完再说 不要想那么多
x86 老东西那些屎山代码 还是有点意思的
mooyo
2024-05-28 01:28:43 +08:00
看你的目的吧,如果是想学着玩的话 riscv 吧,想拿来当校招面试项目的话就 x86 ,跟面试官唠嗑的时候有的多唠一点
PTLin
2024-05-28 09:11:34 +08:00
其实现在 uefi 启动可以直接跳过实模式 保护模式直接进入 ia32e 模式,假如你对“老旧”的东西指的是 16 位和 32 位代码,那进入 ia32e 后就碰不到了。
那些门你能碰到的也就一个中断门和陷阱门,任务门对应的 TSS 在 ia32e 的功能只有存 0 特权级的栈地址,至于 gdt idt 一般初始化完成几个就完事了。
augustheart
2024-05-28 09:27:31 +08:00
操作系统课程,考究的不是操作系统本身么?我觉着将来面试除非你打算做硬件底层,否则人家也不会多问你汇编方面的东西,问的也是操作系统层面上的东西。
机器码只是一个底层,最后都是用机器码搭出一个体系。没啥本质区别。
jackgoudan
2024-05-28 10:44:43 +08:00
知道保护模式那回事儿就差不多了吧。 不如 rsicv ,x86 有些历史包袱。
vcfh
2024-05-28 11:27:51 +08:00
建议学新的,学完之后你可以再去看另外一种。
levelworm
2024-05-29 01:37:53 +08:00
都学?反正写进去了也没啥巨大的差别。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1044510

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX