ahem... tu sei pazzo. punto.

in ogni caso devi scrivere un kernel per avere un nuovo sistema operativo

per ottenere questi risultati hai bisogno di una conoscenza approfondita, prima che del c (c++, visual basic lasciali perdere, sono troppo di alto livello), delle istruzioni del processore e dell'assembler, dato che la maggior parte del kernel opera senza appoggiarsi ad un subsystem (come invece fa il grosso del codice c, definito pertanto user mode)

il boot loader non ha requisiti particolari, solamente deve essere inserito nel primo settore della partizione di avvio oppure nel primo byte del cd

il kernel, anche se ridotto all'osso, deve garantire un i/o di base (a meno di non appoggiarsi al bios, che non sarebbe una brutta idea in fondo), pertanto deve includere un hal (hardware abstraction layer) per comunicare con le periferiche, che nella maggior parte dei casi sono plug and play
inoltre devi realizzare un componente per la gestione della memoria, in questo modo il tuo codice potrà operare in protected mode e potrà utilizzare malloc / free per manovrare la memoria
infine il kernel dovrà adottare dei meccanismi di sincronizzazione, poichè, anche supponendo di inserire solo applicazioni single threaded, ci saranno comunque molti processi in esecuzione e ci sarà sempre la questione degli interrupt, per cui l'esecuzione dell'applicazione deve essere sospesa (e i registri di processore passati in memoria) per manovrare l'hardware