在最基本的层面上,你应该了解冯·诺伊曼体系结构以及它如何映射到现实计算机。除此之外,了解得越多越好。不仅仅是操作系统-在垃圾回收和虚拟机语言中,还需要了解堆、栈和指令的工作原理以及执行方式,这样你就可以知道哪些会表现不佳,如何改进以发挥体系结构的最佳性能。
计算机科学与天文学一样,不再仅仅关乎计算机或望远镜。
当你试图优化针对的硬件时,它非常有用。以硬盘为例,编写利用局部性减少寻道时间的软件会有所帮助。如果您只是将硬盘视为“它可以工作”,并将文件和数据随意存放,那么您将遇到严重的碎片问题,并导致性能降低。
在设计操作系统时,考虑到这些因素可以最大限度地提高性能。因此,简而言之,学习一些相关知识可以有所帮助,肯定不会有任何坏处。
确定计算机科学学习所需的硬件知识基线的好方法是访问一系列著名大学的课程网站。对我来说,我会查看MIT、斯坦福、伊利诺伊大学厄巴纳/香槟分校(UIUC)、佐治亚理工等大学的计算机科学课程。然后我会从中得到一个平均的理解。
此外,您还可以亲自致电您所就读或申请的大学的指导顾问,以获取个性化的需求视角。他们将根据您的愿望为您提供指导。教授们更是如此。他们非常易于接触,并且非常愿意就此类事情提供反馈。
最近,我考虑攻读硕士学位。作为UIUC的校友,我给那里的几位老教授发了电子邮件,告诉他们我的兴趣。我向他们提出了几个旨在了解研究生院和他们的观点的问题。他们分享了他们的经验,大多数人都邀请我打电话聊天。
个人而言,我同意@CookieOfFortune的观点。你对计算机内部工作原理的了解越多,就越能在编写软件时利用这些知识。不过,并不需要深入了解电子物理学。当然,它很有趣,但你的焦点应该放在电路、逻辑等方面。这些内容在一个好的操作系统课程中应该得到充分讲解,或者至少提供给你自主学习的起点。