Para * nix, descobri que The Art Of Unix Programming de Eric Raymond expressava muito bem as idéias por trás da filosofia do Unix. O livro inteiro está online, recomendo este capítulo para ver do que estou falando. Basicamente, expõe os conceitos unificadores por trás dos sistemas operacionais Unix e seus aplicativos. Por exemplo:
- Regra de Modularidade: Escreva peças simples conectadas por interfaces limpas.
- Regra de transparência: crie uma visibilidade para facilitar a inspeção e a depuração.
Ele então explica como essas regras são aplicadas.
O que compõe a filosofia do Windows?
Eu realmente nunca entendi a filosofia por trás dos sistemas operacionais Windows e nunca conheci alguém que saiba o suficiente para responder à pergunta. Pesquisando isso para mim apenas traz um monte de reclamações. Existe um livro ou conjunto de artigos equivalente ao The Art Of Unix Programming, mas para os sistemas operacionais Windows?
Eu também estaria interessado se alguém achar que tem uma boa resposta, mas isso pode ser um post muito longo.
Respostas:
Dê uma olhada no channel9 do MSDN. Lá você fica incrivelmente interessado no que os engenheiros da Microsofts pretenderam / argumentaram sobre um determinado produto ou recurso.
Para Windows: Meu favorito absoluto é o blog de vídeo de Dave Probert sobre o kernel do Windows (com algumas observações sobre as diferenças para o Unix): http://channel9.msdn.com/shows/Going+Deep/Windows-Part-I-Dave- Probert / .... e a outra parte 2-4 .... (você também pode gostar de ver os outros vídeos "Going Deep" :-).
Diverta-se.
HTH, Thomas
PS: Além disso, você encontra muitas informações nos livros "Inside Windows NT", a edição da primeira parte foi bastante notável para entender o funcionamento interno do Windows NT.
fonte
O Unix, do "canal" para cima, é projetado em torno de processos que se comunicam em protocolos de texto sem formatação. Portanto, o design de vários protocolos da Internet - SMTP, HTTP, IMAP, POP etc. são todos legíveis por humanos. Portanto, os desenvolvedores precisam escrever o código para escrever e analisar o protocolo, mas geralmente é fácil interoperar com programas que você não controla.
O Windows, por outro lado, é criado em torno da chamada de procedimento / chamada de método. COM e sucessores fornecem maneiras de estender chamadas de procedimento para DLLs, entre threads de um processo, entre processos e através da rede. Tudo isso é bastante transparente, especialmente em linguagens orientadas a objetos. Isso facilita a gravação de aplicativos em rede muito grandes - desde que você controle todos os componentes. Isso dificulta a troca de parte do complexo sistema interligado por um novo trecho de código. Por exemplo, o formato de arquivo do Microsoft Word é muito estranho como formato de arquivo, mas simples como uma representação dos objetos na memória usados pelo Word. O protocolo de ligação do Exchange é MAPI-over-DCOM: do ponto de vista dos desenvolvedores do Outlook, tudo o que eles precisam fazer é obter um objeto de caixa de correio e chamar métodos,
fonte
O blog de Raymond Chen ( http://blogs.msdn.com/oldnewthing/ ) é uma fonte fantástica para esse tipo de informação, além de fornecer detalhes obscenos sobre por que certas coisas são como são no Windows (exemplo : por que você precisa clicar em Iniciar para desligar? Porque durante o teste quando os usuários foram solicitados a desligar seus PCs, foi onde eles clicaram).
fonte
Eu acho que você pode ter uma idéia decente da diferença nos sistemas, olhando o menu Iniciar do Windows e comparando-o com um menu inicial do KDE ou Gnome. Os menus * NIX são organizados por tarefa ou categoria, enquanto os menus do Windows são organizados pela empresa de software. Isso diz muito sobre as diferenças de prioridades dos criadores ali.
(Sim, sim, o KDE / Gnome não é "filosofia UNIX", mas ainda é uma diferença marcante.)
fonte