TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

IN/MSX: Running 4 Copies of an Operating System at Once (2008)

65 点作者 MindTwister大约 11 年前

6 条评论

cpr大约 11 年前
Yep, sounds familiar.<p>At Imagen (a Stanford TeX project spin-off started by Knuth&#x27;s sidekick Luis Trabb Pardo, building the first typesetting-capable commercial laser printers using, at first, wet-process Canon imaging engines (LBP-10)) in the early 80&#x27;s, we used the same Sun board (Andy Bechtolsheim, the designer, was a consultant for us while he started up Sun).<p>I wrote our own &quot;real-time OS&quot; on the bare 68K Sun hardware (first time I&#x27;d ever written a full (if simple) OS from scratch), and remember fairly vividly the hard-knocks learning experience about race conditions just like the one he describes here. Running for hours or days without error and then crashing randomly--nightmare time.<p>Luckily, we also had an ace hardware guy, Kok Chen, from the Stanford SETI project, and he and I and the logic analyzer would run test setup and lie in wait for the condition to show up, then look back in time at all the (Multi)bus transactions to see what actually happened. (Kok later moved to Apple and became a distinguished engineer, one of very few folks who could work on whatever they wanted.)
jeffbarr大约 11 年前
I had a lot of fun doing this project as a young developer who had no idea what could and could not be done with access to a raw machine.
评论 #7687975 未加载
Morgawr大约 11 年前
This reminds me of a (much much simpler) assignment for my Operating System class during my Bachelor. We had to develop our own microkernel with multitasking on a MIPS virtual machine. Setting up the scheduler was easy but handling interrupts and message passing in a way that each task would not incur into some context switching while a message was not yet fully acknowledged&#x2F;replied was hell.<p>I was 19 back then and I didn&#x27;t know much (I learned a lot during that assignment) about OS design and concurrency, I remember spending a few nights just wondering why my code wasn&#x27;t working at times. I mean, after all it&#x27;s just two instructions one next to the other, right? It&#x27;s too unlikely that a context switch were to happen right between these two lines of code, right? How wrong I was.<p>Awesome read, by the way.
userbinator大约 11 年前
For a second I thought this would be about running 4 OSs on the <a href="http://en.wikipedia.org/wiki/MSX" rel="nofollow">http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;MSX</a> . Those interrupt-related race conditions can definitely be really subtle - reminds me that one of the earliest 8088 had an errata where an interrupt could occur during a stack switch, corrupting memory in a similar way (see <a href="http://www.malinov.com/Home/sergeys-projects/sergey-s-xt/historical-notes" rel="nofollow">http:&#x2F;&#x2F;www.malinov.com&#x2F;Home&#x2F;sergeys-projects&#x2F;sergey-s-xt&#x2F;his...</a> ).
chillingeffect大约 11 年前
&quot;When you are young and naive, anything seems possible with technology.&quot;<p>Oh boy, I hope to use this quote at every possible opportunity from now on.
评论 #7687365 未加载
mwcampbell大约 11 年前
So if it was possible to implement a hypervisor, why wasn&#x27;t it possible, or feasible, to run Unix and ROS on the same machine?
评论 #7688135 未加载
评论 #7687724 未加载