Quão complicado é o código para o Microsoft Windows?
Depende realmente de como você define a complexidade. Existem muitas métricas diferentes usadas e combinadas para medir a complexidade do software.
Posso dizer que eu tive acesso ao código fonte enquanto estive na equipe do Windows NT (NT é a base para todas as versões desktop do Windows a partir do XP), durante os projetos de desenvolvimento do NT 3.1 e NT 3.5, e o código seguiu um padrão de codificação que fazia parte do NT Workbook, a "bíblia" da equipe para o projeto. Embora eu não tenha lido todas as linhas de código, o que eu li foi muito claro, modular, em camadas e de fácil manutenção.
Obviamente, para ler e entender o código, você tinha que ter algum conhecimento da arquitetura geral do Windows NT. Provavelmente a melhor fonte de informação hoje em dia sobre os internos do Windows são os livros Windows Internals 6th Edition (dois volumes).
Algumas pessoas simplesmente equacionam a complexidade do código com o tamanho, muitas vezes medido em linhas de código (LOCs). Como os LOCs são realmente medidos depende das ferramentas utilizadas e do critério escolhido para definir exatamente o que é uma linha de código em cada linguagem de programação. Há muito debate sobre os métodos usados para contar linhas de código, mas se você usar exatamente o mesmo critério de uma versão para a próxima, você pode ver a mudança relativa no tamanho da base do código. Comparar esses números com os de outro SO que usou um método diferente de contagem de linhas de código é como comparar maçãs com laranjas.
Que dito isso, aqui estão algumas dicas sobre o tamanho da base de código do Windows moderno. As linhas de código aqui são aproximadas e não-oficiais, mas são baseadas em fontes razoavelmente confiáveis. Ele ilustra como a base de código do Windows NT evoluiu desde 1993:
- >li>Windows NT 3.1 (1993) - 5.6 milhões de linhas de código fonte (MLOCs)>li>Windows NT 3.5 (1994) - 8.4 MLOCs>li>Windows NT 3.51 (1995) - 10.2 MLOCs>li>Windows NT 4.0 (1996) - 16 MLOCsli>li>Windows 2000 (2000) - 29 MLOCsli>li>Windows XP (2001) - 35 MLOCsli>li>Windows Vista (2007) - 45 MLOCsli>li>Windows 7 (2009) - 42 MLOCsli>li>Windows 8 (2012) - 50 MLOCsli>li>Windows 10 (2015) - 55 MLOCs>/ul>p>>Windows source code consists primarily of C, C++, e uma pequena quantidade de código de linguagem de montagem. Alguns dos utilitários de modo de usuário, etc. estão em C#, mas esta é uma porcentagem relativamente pequena da base geral do código.
I não incluiu as versões 16-bit-esque, lançadas de 1985 a 2000. O Windows NT foi a base para todas as versões modernas de 32 e 64 bits do Windows. O número de linhas de código nas versões de servidor era o mesmo das versões não servidoras lançadas no mesmo ano (ou seja, tinham a mesma base de código fonte).
O trabalho no kernel NT começou em 1988, escrito do zero como um sistema operacional multitarefa preemptivo de 32 bits. O kernel NT foi iniciado em julho de 1989, em um processador Intel i860 RISC. Houve um forte impulso desde o início para garantir que o novo SO fosse portátil para uma variedade de arquiteturas de CPU, e não seria travado apenas na arquitetura Intel x86 (IA-32). O NT eventualmente estava rodando em MIPS, DEC Alpha, PowerPC, Itanium e, claro, Intel x86 e x64.
>p>Algumas complexidades foram adicionadas à base de código, principalmente na camada de abstração de hardware (HAL), para suportar arquiteturas não Intel.Artigos semelhantes
- Em termos leigos, o que é código de byte, código de montagem, código de máquina e código fonte?
- Quais são as diferenças entre Código de Máquina, Código de Byte, Código de Objeto e Código Fonte?
- Qual é o aplicativo básico e menos complicado de tomar notas para Android?
- O que é mais complicado matematicamente. OpenGL ou OpenAL?