Für * nix fand ich, dass Eric Raymonds The Art Of Unix Programming die Ideen hinter der Unix-Philosophie ziemlich gut zum Ausdruck brachte. Das ganze Buch ist online. Ich empfehle dieses Kapitel, um zu sehen, wovon ich spreche. Grundsätzlich werden die einheitlichen Konzepte hinter Unix-Betriebssystemen und deren Anwendungen beschrieben. Zum Beispiel:
- Modularitätsregel: Schreiben Sie einfache Teile, die durch saubere Schnittstellen verbunden sind.
- Transparenzregel: Design für Transparenz, um das Überprüfen und Debuggen zu vereinfachen.
Er geht dann darauf ein, wie diese Regeln angewendet werden.
Was macht die Windows-Philosophie aus?
Ich habe die Philosophie hinter Windows-Betriebssystemen nie wirklich verstanden und nie jemanden gekannt, der genug weiß, um die Frage zu beantworten. Das für mich zu googeln bringt nur ein paar Scherze hervor. Gibt es ein gleichwertiges Buch oder eine Reihe von Artikeln zu The Art Of Unix Programming, jedoch für Windows-Betriebssysteme?
Es würde mich auch interessieren, wenn jemand glaubt, eine gute Antwort zu haben, aber das könnte ein zu langer Beitrag sein.
Antworten:
Schauen Sie sich den Kanal9 von MSDN an. Dort erhalten Sie unglaublich viel Einblick in das, was die Ingenieure von Microsoft über ein bestimmtes Produkt oder eine bestimmte Funktion beabsichtigt / begründet haben.
Für Windows: Mein absoluter Favorit ist Dave Proberts Videoblog über den Windows-Kernel (mit einigen Anmerkungen zu den Unterschieden zu Unix): http://channel9.msdn.com/shows/Going+Deep/Windows-Part-I-Dave- Probert / .... und der andere Teil 2-4 .... (vielleicht möchten Sie sich auch die anderen "Going Deep" -Videos ansehen :-).
Habe Spaß.
HTH, Thomas
PS: Außerdem finden Sie in den Büchern "Inside Windows NT" sehr viele Informationen. Die erste Teilausgabe war bemerkenswert, um das Innenleben von Windows NT zu verstehen.
quelle
Unix von der "Pipe" aufwärts basiert auf Prozessen, die in Nur-Text-Protokollen kommunizieren. Daher ist das Design verschiedener Internetprotokolle - SMTP, HTTP, IMAP, POP usw. - für den Menschen lesbar. Entwickler müssen also Protokoll schreiben und Code analysieren, aber es ist oft einfach, mit Programmen zusammenzuarbeiten, die Sie nicht kontrollieren.
Im Gegensatz dazu basiert Windows auf dem Prozeduraufruf / Methodenaufruf. COM und Nachfolger bieten Möglichkeiten zum Erweitern von Prozeduraufrufen in DLLs, über Threads eines Prozesses, über Prozesse und über das Netzwerk. All dies ist ziemlich transparent, insbesondere in objektorientierten Sprachen. Dies erleichtert das Schreiben sehr großer, vernetzter Anwendungen - solange Sie alle Komponenten steuern. Es macht es schwieriger, einen Teil des komplexen, miteinander verbundenen Systems gegen einen neuen Code auszutauschen. Beispielsweise ist das Microsoft Word-Dateiformat als Dateiformat sehr seltsam, aber als Darstellung der von Word verwendeten Speicherobjekte unkompliziert. Das Exchange-Wire-Protokoll ist MAPI-over-DCOM: Aus Sicht der Outlook-Entwickler müssen sie lediglich ein Postfachobjekt abrufen und Methoden darauf aufrufen.
quelle
Der Blog von Raymond Chen ( http://blogs.msdn.com/oldnewthing/ ) ist eine fantastische Quelle für diese Art von Informationen und bietet detaillierte Informationen darüber, warum bestimmte Dinge in Windows so sind, wie sie sind (Beispiel) : Warum müssen Sie auf Start klicken, um das System herunterzufahren? Während der Tests, als Benutzer aufgefordert wurden, ihre PCs herunterzufahren, haben sie dort geklickt.
quelle
Ich denke, Sie können ein gutes Gefühl für den Unterschied in den Systemen bekommen, indem Sie sich das Windows-Startmenü ansehen und es mit einem KDE- oder Gnome-Startmenü vergleichen. Die * NIX-Menüs sind nach Aufgaben oder Kategorien organisiert, während die Windows-Menüs nach Softwareunternehmen organisiert sind. Das sagt viel über die unterschiedlichen Prioritäten der Schöpfer genau dort aus.
(Ja, ja, KDE / Gnome sind keine "UNIX-Philosophie", aber es ist immer noch ein bemerkenswerter Unterschied.)
quelle