Escribir C
El camino del fuente al ejecutable, los tipos y su tamaño, los operadores, el control de flujo, las funciones y los programas en varios archivos.
Sistemas operativos · Curso 4 de 15
Una guía clara para dominar el lenguaje con el que se construyen los sistemas operativos. Aprende punteros y aritmética de punteros, estructuras y memoria dinámica, compila y enlaza tus programas, crea bibliotecas estáticas y dinámicas, organiza proyectos con Makefiles, maneja los errores con errno y depura con gdb: la base indispensable para los cursos siguientes.
El lenguaje del sistema
El núcleo de Linux, las bibliotecas del sistema, la shell y casi todos los comandos que usaste en los cursos anteriores están escritos en C. No es casualidad: C es un lenguaje pequeño, rápido y cercano a la máquina, que deja ver y controlar lo que otros lenguajes esconden. Una variable es un lugar en la memoria, un puntero es una dirección, y nadie libera la memoria por ti. Esa cercanía es lo que lo hace exigente, y también lo que lo vuelve indispensable para entender cómo funciona un sistema operativo por dentro.
El curso empieza por el camino que recorre un programa desde el código fuente hasta el ejecutable, y por los fundamentos del lenguaje: tipos, operadores, control de flujo y funciones. Luego se concentra en lo que distingue a C: punteros y aritmética de punteros, cadenas, estructuras y su disposición en memoria, y memoria dinámica con malloc y free. Después enseña a construir programas reales: compilación y enlazado, bibliotecas estáticas y dinámicas y Makefiles. Termina con el manejo de errores con errno, la entrada y salida con archivos y la depuración con gdb, en un proyecto completo.
El recorrido
De un programa que saluda a una herramienta que administra su propia memoria, se construye con make y se depura con gdb.
El camino del fuente al ejecutable, los tipos y su tamaño, los operadores, el control de flujo, las funciones y los programas en varios archivos.
Punteros y aritmética de punteros, arreglos y cadenas, estructuras, el mapa de memoria de un proceso y la memoria dinámica.
Compilación y enlazado, símbolos, bibliotecas estáticas y dinámicas, carga en tiempo de ejecución y Makefiles para proyectos reales.
Errores con errno y perror, archivos con stdio y con llamadas al sistema, depuración con gdb y la caza de errores de memoria.
Ruta completa
Aquí se aprende el lenguaje del sistema. En el curso siguiente se lo usa para crear procesos e hilos con las llamadas al sistema de Linux.