Pular para o conteúdo

Architecture Fundamentals

Categoria

12 artigos

  • 01
    A System V ABI e Convenção de Chamada

    Quais registradores carregam os argumentos e o valor de retorno de uma função, alinhamento de pilha, e a red zone que uma função-folha pode usar sem ajustar a pilha.

  • 02
    A Task State Segment

    A estrutura que a CPU lê para encontrar uma stack de kernel numa mudança de privilégio, seu bitmap de permissão de I/O, e por que SMP precisa de uma por núcleo.

  • 03
    Arquitetura x86

    Os registradores, modos e níveis de privilégio com os quais todo kernel x86 precisa trabalhar.

  • 04
    Bring-Up de Multiprocessador (SMP)

    A sequência INIT-SIPI-SIPI que o bootstrap processor usa para acordar cada CPU adicional, o trampolim de 16 bits para o qual ela salta, e levar cada núcleo à sua própria stack.

  • 05
    CPUID

    A instrução que reporta quais recursos a CPU de fato suporta, permitindo que o software verifique antes de presumir.

  • 06
    Geração de Números Aleatórios em Hardware (RDRAND/RDSEED)

    De onde um kernel tira aleatoriedade de verdade sem dispositivos de entrada nem rede para tirar entropia, e por que RDRAND e RDSEED respondem a duas perguntas diferentes.

  • 07
    Long Mode

    O que muda ao ir do protected mode de 32 bits para o long mode de 64 bits.

  • 08
    Model-Specific Registers

    As instruções RDMSR/WRMSR e o espaço de registradores por núcleo que elas acessam, separado dos registradores de propósito geral comuns da CPU.

  • 09
    Port I/O versus Memory-Mapped I/O

    As duas formas separadas com que hardware x86 conversa com dispositivos, e por que a maior parte do hardware moderno escolheu uma delas.

  • 10
    Protected Mode

    Segmentação, a GDT, e como a CPU aplica níveis de privilégio no protected mode de 32 bits.

  • 11
    Registradores de Depuração e Breakpoints de Hardware

    Como um kernel programa DR0-DR3, DR7, e DR6 diretamente para implementar seus próprios watchpoints de memória, sem depurador externo algum envolvido.

  • 12
    Unreal Mode

    Como um descritor de segmento carregado através da GDT, sem nunca definir o bit de habilitação de proteção, deixa um limite de segmento de 4 GB ativo de volta em modo real.