o que tu queres fazer é um boot loader, e linguagem para isso é basicamente assembly e dependendo da complexidade do loader vais querer C ou C++ (com algumas restrições).
por exemplo o dessa imagem suponho que seja um boot loader que arranca uma mini-kernel, kernel essa que "simplesmente" imprime uns pixeis no ecran, e fica a ler o teclado e consuante a escolha do utilizador chama a entrada em windows, linux ou faz halt do sistema.
com essa complexidade como a que mostras aí nessa imagem é extremamente complicado de se fazer, isso nem sequer está em text mode, vais ter de criar uma mini-biblioteca grafica, ler input, etc etc que exige algum trabalho e conhecimentos.
se quiseres fazer uma coisa mais fácil, começa por aprender como é que o processo de boot de um PC funciona, e depois disso (supondo que sabes como assembly funciona, é mais facil do que o que parece) procura por "hello world" bootloader no google, aprendes logo como fazer um com meia duzia de linhas de código.
depois disso vais querer mais, como escrever uma mini-kernel em que possas enfiar uma data de opções para o utilizador, kernel essa que já te vais sentir mais a vontade visto que podes usar C ou C++ se bem que para usar C++ tens de escrever de raiz algumas das suas funcionalidades.
como deves ter percebido basicamente é assim que se escreve um SO, se te sentires aventureiro é algo que podes tentar construir visto que já adquiriste os conhecimentos.