Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

304
Vistas
formato de archivo ejecutable

Mi pregunta se origina en mi falta de experiencia con la programación de sistemas de nivel inferior (particularmente en el nivel de implementación del sistema operativo). El ejecutable contiene cierta información para el sistema operativo, por ejemplo, a qué bibliotecas debe vincularse dinámicamente al inicio. Entonces, el compilador al compilar un archivo coloca dichas dependencias en la ubicación adecuada en el ejecutable. Entonces compilamos código para un sistema dado. Pero entonces, ¿cómo compilamos el código que compone el sistema? ¿Para qué sistema compila el compilador ese código?

El lenguaje de programación C se desarrolló para ayudar a escribir el sistema operativo UNIX, pero ¿qué pasa con Linux?

Perdón por la pregunta del huevo de gallina.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

La mayoría de los compiladores de C tienen la opción de no vincularse con la biblioteca C estándar del sistema. Si elige una función de este tipo, entonces las funciones estándar como malloc , printf no existen.

El único código al que podrá llamar será el código que cree. Ningún sistema incluye funciones de biblioteca estándar, nada más que su propio código. Una pizarra en blanco.

Hay muchas cosas que intervienen en la escritura de un sistema operativo: subprocesos, procesos, memoria protegida, asignador de memoria, separación de privilegios, entrada/salida, acceso a dispositivos, sistemas de archivos, redes... y la lista continúa.

A medida que escribe el kernel de su sistema operativo, eventualmente tendrá suficiente estructura de soporte para que pueda comenzar a escribir llamadas al sistema en modo usuario para acceder a las funciones de su kernel, como el archivo IO. Si lo desea, puede hacerlo implementándolos en la forma estándar de la biblioteca estándar de C.

En teoría, podría escribir un sistema operativo que no tenga una función llamada malloc o printf . Al compilador de C no le importará.

over 4 years ago · Santiago Trujillo Denunciar

0

El truco aquí es tener un enlazador que pueda construir el código correcto. No es el compilador.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda