Sistemas operativos · Curso 4 de 15

Programación en C para Sistemas Operativos

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.

42
temas progresivos
C
ejemplos en Linux con gcc
Nivel inicial
paso 4 de la ruta

El lenguaje del sistema

Debajo de cada comando hay un programa en C

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

Cuatro habilidades que se suman

De un programa que saluda a una herramienta que administra su propia memoria, se construye con make y se depura con gdb.

01

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.

02

Dominar la memoria

Punteros y aritmética de punteros, arreglos y cadenas, estructuras, el mapa de memoria de un proceso y la memoria dinámica.

03

Construir

Compilación y enlazado, símbolos, bibliotecas estáticas y dinámicas, carga en tiempo de ejecución y Makefiles para proyectos reales.

04

Diagnosticar

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

Este curso es el paso 4 de 15

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.

Nivel intermedio

  1. 05Procesos e Hilos
  2. 06Planificación de la CPU
  3. 07Concurrencia y Sincronización
  4. 08Gestión de Memoria
  5. 09Sistemas de Archivos y Entrada/Salida
  6. 10Comunicación entre Procesos

Nivel avanzado

  1. 11Redes desde el Sistema Operativo
  2. 12Seguridad en Sistemas Operativos
  3. 13Virtualización y Contenedores
  4. 14Rendimiento, Depuración y Observabilidad
  5. 15Construcción de un Sistema Operativo desde Cero