Como projeto de mestrado, estou projetando um sistema operacional simples. Ele está sendo projetado para ser executado no modo Real de 16 bits em uma arquitetura x86. Idealmente, eu gostaria de desenvolver esse sistema operacional em C ++ e usar somente montagem quando necessário. Até agora, eu tenho um carregador de boot escrito em assembly, que carrega um kernel que é uma mistura de C ++ e asm. Minha pergunta é em relação ao uso de C ++. A partir de agora, ele foi compilado e pode ser executado, mas eu não usei nenhuma alocação de memória dinâmica.
Se eu estivesse usando C, faria sentido escrever funções malloc que tratariam da alocação de memória, mas em C ++ a nova palavra-chave é usada. Então...
Como 'novo' funciona nos bastidores para alocar memória, e como eu lidaria com isso?
E como corolário ...
Faz sentido tentar usar C ++ para tirar proveito de suas abstações de nível superior? Ou seria mais dor de cabeça usá-lo e devo ficar com C?
Por favor, forneça justificativa se você acredita que o C ++ não seria uma boa escolha.