关于Windows哲学的书籍或网页

对于* nix,我发现Eric Raymond的“Unix编程艺术”很好地expression了Unix哲学背后的思想。 整本书在线,我推荐这一章来看看我在说什么。 它基本上阐述了Unix操作系统及其应用背后的统一概念。 例如:

  • 模块化规则:用干净的界面写简单的部分。
  • 透明度规则:可见性devise使检查和debugging更容易。

然后,他会介绍如何应用这些规则。

什么构成了Windows哲学?
我从来没有真正理解Windows操作系统背后的哲学 ,从来没有真正知道任何人知道足以回答这个问题。 谷歌search这只是带来了一堆咆哮。 有没有一个等同的书或一套文章的艺术的Unix编程,但对于Windows操作系统?

如果有人认为他们有一个好的答案,我也会感兴趣,但这可能是一个太长的职位。

看看MSDN的channel9。 在那里,你对微软工程师想要/推理的某个特性或特性感到非常的兴奋。

对于Windows:我绝对最喜欢的是Dave Probert关于windows内核的video博客(对Unix的不同之处有一些评论): http : //channel9.msdn.com/shows/Going+Deep/Windows-Part-I-Dave- Probert / ….和另一部分2-4 ….(你也可以看看其他“深入”video:-)。

玩的开心。

HTH,托马斯

PS:在“Windows NT内部”这本书中,你会发现非常多的信息,第一部分对于理解Windows NT的内部工作来说是非常有意义的。

从“pipe道”向上的Unix是围绕以纯文本协议进行通信的进程而devise的。 因此,各种互联网协议的devise – SMTP,HTTP,IMAP,POP等都是人类可读的。 所以开发人员必须编写协议编写和parsing代码,但是与不能控制的程序互操作通常很简单。

相比之下,Windows是围绕过程调用/方法调用构build的。 COM和后继提供了将过程调用扩展到DLL,跨进程的线程,跨进程和跨networking的方法。 所有这些都是相当透明的,特别是在面向对象的语言中。 这使得编写非常大的networking应用程序变得更容易,只要你控制所有的组件。 这使得更换一部分复杂的相互链接的系统变得更难。 例如,Microsoft Word文件格式作为文件格式是非常奇怪的,但作为Word所使用的内存中的对象的表示forms却很简单。 Exchange有线协议是MAPI-over-DCOM:从Outlook开发人员的angular度来看,他们所需要做的只是获取一个邮箱对象并调用其中的方法,而试图实现替代客户端和服务器的人则会看到一个有线协议这是不容易互操作的。

Raymond Chen的博客( http://blogs.msdn.com/oldnewthing/ )是这类信息的绝佳来源,同时也提供了关于为什么某些事情是在Windows中的方式的详细信息。 :为什么你必须点击开始closures?因为在testing期间,用户被要求closures他们的电脑,那是他们点击的地方)。

我认为,通过查看Windows开始菜单并将其与KDE或Gnome开始菜单进行比较,您可以体验到系统差异。 * NIX菜单按任务或类别组织,而Windows菜单由软件公司组织。 这就说明了很多关于创作者优先级的差异。

(是的,是的,KDE / Gnome不是“UNIX哲学”,但它仍然是一个惊人的差异。)