Hola,
buenas a todos, este es mi primer mensaje en el foro.
Resulta que tengo una gran duda respecto a los temas mencionados en el título. Voy a plantearlo en preguntas:
1. Un lenguaje de programación, por ejemplo C, está diseñado para ser traducido a una ISA en particular, ¿depende de alguna otra cosa? ¿Del OS quizás?
2. ¿Todas las instrucciones de una ISA pueden ser ejecutadas a través de alguna instrucción en C, incluso las que corresponden al kernel? ¿Con otros lenguages?
3. Un programa ejecutable sí depende del OS, por las llamadas al sistema. ¿En qué parte está lo que respecta a esto: el compilador, la librería estándar de C, WinAPI, otra? Por ejemplo, para unix, ¿dónde figura que Fork() se traduce en una syscall?
4. Un compilador de C, ¿es OS dependiente más allá de las syscalls que utilice para funcionar? Es decir, con lo que respecta a la traducción.
5. ¿Qué diferencia hay entre las APIs, por ejemplo WinAPI, y la librería standard de C? ¿Qué lugar ocupa cada una? Pensé que libc era un acuerdo en la "sintaxis", os independent, que luego se implementaba según el OS.
Saludos.