System calls de linux.
Usar las funciones externas de C como printf, scanf.
El resultado final es el mismo siempre.
Si usas syscalls de linux tendras que llamar a un par de syscalls extra seguramente y pasar mas de un parametro extra tambien. Los syscalls llamaran a los drivers hecho, pasa lo que tiene que pasar.
Si usas las funciones de la libreria de C standard, lo que pasará es que primero tendras que llamar menos funciones y pasar menos parametros. La libreria de C se encargará de hacer los syscalls y los syscalls llamar a los drivers.
Si cierto, tienes mas codigo que se ejecuta, pero tendrias menos lineas de codigo y seguramente un par de chequeos extra.
Yo si tengro que programar lo hago en windows si, pero al final termino usando las libreria de C standart para rutinas de i/o. Menos tedioso.
Si hay que tener que tener controlado el tema de la convencion de llamadas. C utiliza cdesl y luego syscalls de linux usan fastcall? Es decir si mal no recuerdo algunos parametros se pasan en registros.
Pudes tranquilamente depurar los rutinas llamadas por c runtime y fijarte que syscalls termina haciendo.
Saludos