Как реализовать ввод вывод с нуля?
Ведь и библиотеки низкоуровневого ввода как то были написаны
Бинго! Осталось найти и почитать их код. У glibc он открыт, например.
Ввод-вывод бывает разным. Файловый делается на раз: объявляются нужные API и константы (раз вы не хотите системных хидеров), потом получение адресов CreateFile, ReadFile, WriteFile, CloseHandle и можете смело работать с файлами. Только вам придется как-то загрузить нужные DLL и получить из них функции :-D Но TIB/PEB вас спасут.