Pour * nix, j'ai trouvé que The Art Of Unix Programming d'Eric Raymond exprimait assez bien les idées derrière la philosophie Unix. L'ensemble du livre est en ligne, je recommande ce chapitre pour voir de quoi je parle. Il présente essentiellement les concepts unificateurs derrière les systèmes d'exploitation Unix et leurs applications. Par exemple:
- Règle de modularité: écrivez des pièces simples reliées par des interfaces propres.
- Règle de transparence: conception pour la visibilité afin de faciliter l'inspection et le débogage.
Il explique ensuite comment ces règles sont appliquées.
Qu'est-ce qui compose la philosophie Windows?
Je n'ai jamais vraiment compris la philosophie derrière les systèmes d'exploitation Windows , et je n'ai jamais vraiment connu quelqu'un qui en sait assez pour répondre à la question. Googler ceci pour moi fait juste apparaître un tas de diatribes. Existe-t-il un livre ou un ensemble d'articles équivalents à The Art Of Unix Programming, mais pour les systèmes d'exploitation Windows?
Je serais également intéressé si quelqu'un pense avoir une bonne réponse, mais cela pourrait être un message trop long.
Réponses:
Jetez un œil au canal MSDN9. Là, vous obtenez incroyablement beaucoup d'informations sur ce que les ingénieurs de Microsofts ont voulu / raisonné à propos d'un certain produit ou d'une certaine fonctionnalité.
Pour Windows: Mon préféré est le blog vidéo de Dave Probert sur le noyau Windows (avec quelques remarques sur les différences avec Unix): http://channel9.msdn.com/shows/Going+Deep/Windows-Part-I-Dave- Probert / .... et l'autre partie 2-4 .... (vous aimerez aussi regarder les autres vidéos "Going Deep" :-).
S'amuser.
HTH, Thomas
PS: En outre, vous trouverez beaucoup d'informations dans les livres "Inside Windows NT", la première édition de la partie était remarquable pour comprendre le fonctionnement interne de Windows NT.
la source
Unix, du «pipe» vers le haut, est conçu autour de processus communiquant dans des protocoles en texte brut. Par conséquent, la conception de divers protocoles Internet - SMTP, HTTP, IMAP, POP, etc. sont tous lisibles par l'homme. Les développeurs doivent donc écrire du code d'écriture et d'analyse de protocole, mais il est souvent simple d'interagir avec des programmes que vous ne contrôlez pas.
Windows, en revanche, est construit autour de l'appel de procédure / appel de méthode. COM et les successeurs fournissent des moyens d'étendre les appels de procédure dans les DLL, à travers les threads d'un processus, à travers les processus et à travers le réseau. Tout cela est assez transparent, surtout dans les langages orientés objet. Cela facilite l'écriture d'applications très importantes en réseau, à condition de contrôler tous les composants. Il est plus difficile d'échanger une partie du système interconnecté complexe contre un nouveau morceau de code. Par exemple, le format de fichier Microsoft Word est très étrange en tant que format de fichier, mais simple en tant que représentation des objets en mémoire utilisés par Word. Le protocole de connexion Exchange est MAPI sur DCOM: du point de vue des développeurs Outlook, tout ce qu'ils ont à faire est d'obtenir un objet de boîte aux lettres et d'appeler des méthodes dessus,
la source
Le blog de Raymond Chen ( http://blogs.msdn.com/oldnewthing/ ) est une source fantastique pour ce genre d'informations, ainsi que des détails bas sur pourquoi certaines choses sont comme elles sont dans Windows (exemple : pourquoi devez-vous cliquer sur Démarrer pour arrêter? Parce que pendant les tests, lorsque les utilisateurs ont été invités à arrêter leur PC, c'est là qu'ils ont cliqué).
la source
Je pense que vous pouvez avoir une idée décente de la différence dans les systèmes en regardant le menu de démarrage de Windows et en le comparant avec un menu de démarrage de KDE ou Gnome. Les menus * NIX sont organisés par tâche ou catégorie, tandis que les menus Windows sont organisés par société de logiciels. Cela en dit long sur les différences de priorités des créateurs.
(Oui, oui, KDE / Gnome ne sont pas une "philosophie UNIX", mais c'est quand même une différence frappante.)
la source