首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >操作系统从头开始

操作系统从头开始
EN

Stack Overflow用户
提问于 2010-09-04 18:35:42
回答 11查看 14.1K关注 0票数 15

我被要求在我的大学里为我的操作系统课程选择一个项目。我想到了用Python从头开始制作操作系统的想法。

我有几个限制:

  1. 我只有三个月。
  2. 我想用Python来做。
  3. 我可以每周花20到30小时。

我想知道,这个想法有多可行?就像我能在建筑上走多远。如果我能运行一个基本版本(一些非常基本的应用程序正在运行),我会非常高兴的。在给定的限制下,有可能吗?

有没有一本能帮助我的书呢?(不一定是针对python的,我只需要一个指南来告诉我应该如何制作操作系统)

如果这个想法不可行,谁能告诉我我需要多少钱才能缩小我的想法?

任何帮助都是非常感谢的!

EN

回答 11

Stack Overflow用户

发布于 2010-09-04 18:41:58

把这个缩小很多。我建议您看看您想要做的一个非常小的操作系统,也许是并行处理。没有可行的方法,你将能够写一个完整的操作系统在500小时以内,只需要5000小时。真正的问题是这是本科课程还是研究生课程?这一问题的答案将在很大程度上反映出需要通过的内容。

加法

拿一本关于你感兴趣的操作系统的书,专注于这三个月,你可能只会产生一些好的东西。操作系统看起来好像在外面做得不多,但要想一想,Windows有大约5000万行代码。

票数 16
EN

Stack Overflow用户

发布于 2010-09-04 19:03:53

您的教授是否需要项目中的“低级”组件?例如,任何处理硬件或指令体系结构的内容。如果是这样的话,您的教授将不允许您使用Python进行项目。项目必须用C和程序集编写。而且您将始终致力于修改Linux内核。

然而,现在的操作系统已不再局限于低级方面.虚拟化、数据库、并行化都建立在操作系统之上。如果您的教授是“老派”,那么他/她可能不会认为这些新的主题是操作系统的一部分。因此,你可能需要给你的教授带来一些样本想法,并寻求澄清。

正如一些人所建议的那样,是否进入低水平完全取决于教授的教育目标。

  1. 教授基本的并发编程构造,如事件、信号量和互斥。这可以通过编写一些多线程应用程序来教。作为OS类的目标,它可以说太容易了。然而,这实际上是你从班上学到的最“市场”的技能。
    • 这个主题的一个变体是教导如何“使用”特定口味的OS。

  1. 教您如何编写有效使用操作系统的应用程序。这可能需要您在“模拟OS项目”中实现一些入门级的OS相关算法(例如,在Java或Python中,也可以在C++中实现)。每个方面都可以在单独的项目/模拟器中进行研究,而不需要使用成熟的操作系统。
    • 例如,为了教学生如何有效地使用文件缓存,有必要让学生使用简单的算法来玩“玩具”文件缓存。

  1. 为了教授操作系统的硬件方面(包括它的丑陋),即它如何与指令集体系结构和硬件I/O交互,这通常是通过一个小型原型板“嵌入式系统”完成的。
  2. 教在现代操作系统中使用的真实世界的算法。这将需要大量的论文阅读,以及在一个真正的Linux内核中实现一个非平凡的算法。这一水平适合研究生学习。

一个好的项目将包括以下一项或多项:

  • 输入/输出
  • 存储
    • 决定要缓存什么/预测要预加载什么

  • 本地或远程启动/管理/记录任务(进程、线程或Python函数)
  • 管理资源
    • 要求每个进程估计将使用多少峰值内存,并在整个执行过程中定期报告“进度”百分比,然后可以一起使用该百分比来估算资源使用情况。

  • 沟通
  • 并发性

一个不直接与硬件交互但仍然是好项目的项目将是:

  1. 如果您的项目向“在”您的项目中运行的应用程序提供操作系统的抽象
    • 换句话说,“应用程序”完全依赖于您的“操作系统项目”来满足它们的I/O、存储、任务管理、资源和通信需求。

  1. 您的项目很好地(高效、可测量)使用了实际操作系统(Windows、Linux等)

然后,它将是一个好的操作系统项目,无论使用什么语言。

我建议实现您自己的memcached、map- good或一个简单的版本控制系统作为好的项目示例。

编辑:删除咆哮

票数 9
EN

Stack Overflow用户

发布于 2010-09-04 18:45:48

我不明白你怎么能用Python编写操作系统。您至少需要本机代码在启动时加载解释器,更不用说硬件通信、驱动程序等,所有这些在当前Python解释器运行在裸机器上时几乎是不可能做到的。我还在思考,如果您意识到您需要移植给定的Python解释器,才能在没有底层操作系统的情况下编译和运行,这将使您忙碌一段时间。

你野心勃勃是件好事,但老实说,我认为你甚至无法完成基本的操作系统,更不用说“一些非常基本的应用程序正在运行”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3643500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档