c - XV6 操作系统是用来做什么的?
问题描述
我一直在上操作系统的在线课程,我听到他们说,可以使用XV6操作系统学习操作系统的实现,仅此而已。但是我在网上搜索后没有足够的资源,这让我从它开始。我的问题是,我为什么要使用它,以及它将如何帮助我理解操作系统。(请对您向我提供的信息保持温和,我是新手:()
任何努力都值得赞赏
解决方案
只有两种可能:
太复杂而对教学无用
太简单而对教学无用
诸如花哨的功能/增强功能、缓解安全问题、处理硬件错误/勘误表、性能、可扩展性以及支持非常广泛的不同硬件之类的事情都会增加代码的复杂性;如果您查看一个必须关心所有这些事情的真正的商业操作系统(例如 Linux),那么很难了解一件事(例如内存管理)而没有所有的复杂性阻碍并使其学习变得更加困难.
如果你有一个简单的操作系统不做这些事情(没有花哨的功能,没有缓解安全问题,...),那么从中学习基本原理要容易得多;但也变得不可能使用它来了解花哨的功能、缓解安全问题、处理硬件错误/勘误表,......
解决方案是从一个简单的操作系统(例如 XV6)开始学习基础知识,然后切换到一个真正的操作系统来学习其他所有内容。
然而; 大多数大学的操作系统课程都不是为了教你编写操作系统。相反,它们旨在为您提供有关操作系统的基本信息,以便您在为现有操作系统编写应用程序时可以使用这些知识。出于这个原因(并且因为有时间限制),他们只做第一部分(使用像 XV6 这样的简单操作系统),然后课程结束。
推荐阅读
- java - 如何在 selenium webdriver 上断言或验证多个必需的错误消息
- php - 使用 Laravel 制作验证错误消息
- sql - 在 sql 作业中运行特定步骤而不运行整个作业
- angular - 角度材料多选在隐藏时获取选定值
- c# - 如何将通用配置应用于 ef core 中的所有实体
- scala - Spark SQL:是否可以从外部源读取自定义模式,而不是在 spark 代码中创建它?
- amazon-web-services - 在 VPC 上重复使用本地 IP 地址?
- c# - 有什么方法可以在我的 xamarin 应用程序中使用 3rd 方 .net dll?
- node.js - 如何在nodejs中将新列插入CSV
- java - 获取其他类对象引用的最佳方法是什么?