Glosario y otros conceptos básicos:

Kernel: Programa con la función de manejar todos los otros programas y funciones en una computadora.

Sistema Operativo: Herramienta formada por otras herramientas que podemos usar para interactuar con el kernel y usar la computadora. Un sistema operativo está formado por 2 componentes básicos: el kernel y un espacio de usuario.

Registros del CPU: Son partes del CPU que podemos usar para almacenar datos pequeños en tamaño. Se caracterizan por ser muy rápidos. Estos son diferentes en cada arquitectura y pueden tener alguna función específica o ser de uso general. Para utilizarlos generalmente usamos lenguaje ensamblador ya que este es un lenguaje de bajo nivel e interactúa de forma casi directa con el CPU. Ejemplos de estos son: EAP, EBP, EXP.

Cambios de Contexto: Cuando el CPU cambia de un proceso o tarea a otro.

Mensajes / Mensajes del kernel: Cuando el kernel manda mensajes a un proceso u objeto de la memoria con el objetivo de iniciar alguna tarea en específico (en lugar de tener que ejecutar una rutina cada vez que una condición es verdadera usando el preprocesador 'if'). Esto puede ser de forma sincronizada (solo funciona si el proceso esta activo al mismo tiempo que el mensaje es emitido) o no sincronizada (el proceso que debe recibir el mensaje puede estar inactivo u ocupado al momento de emisión del mensaje.

Lenguaje Ensamblador: Lenguaje de bajo nivel que se usa generalmente para hacer rutinas/subrutinas simples que requieren de interacción directa con el CPU.

Lenguajes de alto nivel: Lenguajes que tienen menos interacción directa y se usan para programar rutinas y funciones más complejas o que simplemente no requieren de interacción directa con el CPU. Ejemplos de estos lenguajes son: C y derivados, Java, Ruby, Golang, etc... Hay quienes dicen que el único lenguaje de alto nivel que es apto para desarrollar un kernel es C (y algunos derivados como C++) debido a que es necesario de un lenguaje rápido, sin virtualización con el que sea fácil la manipulación de memoria. Sin embargo es posible desarrollar un kernel en cualquier lenguaje que sea completo según el estándar de Touring, pero si otros lenguajes son utilizados es probable que el desarrollo se vuelva más difícil y que el producto final sea menos eficiente.

Sistema de Archivos: Conocido también como 'filesystem' (por su nombre en inglés), son un tipo estructura que el disco duro debe de tener para que el kernel pueda leer datos de él. Existen diferentes sistemas de archivos que son utilizados por diferentes kernels como: FAT , ext2, ext4, HFS+, SFS, etc...

Toolchain: Conjunto de herramientas

Memoria Virtual:

Manejamiento de Memoria:

Shell:

Bootloader: Programa que carga el sistema operativo a la memoria cuando la computadora es prendida.
GRUB:
Un bootloader popular.

Tipos de datos en C:

Nombre en C Nombre dentro del espacio del kernel en Sierra Capacidad
int s32int 2-4 bytes
unsigned int u32int 2-4 bytes
short s16int 2 bytes
unsigned short u16int 2 bytes
char s8int 1 byte
unsigned char u8int 1 byte
long ------------------------------------------------------------ 4 bytes
unsigned long ------------------------------------------------------------ 4 bytes
long long (solo en x86_64) s64int (todavía no es implementado) al menos 64 bits
unsigned long long u64int (todavía no es implementado) al menos 64 bits

ASCII: "American Standard Code for Information Interchange", la traducción al español es Estándar de Código Americano para el Intercambio de Información, y es un estándar que define la representación hexadecimal de cada carácter y acción que hay en la computadora. Es el estándar que usamos para manejar y escribir texto o realizar otras acciones en el kernel de Sierra. Cada bit representa un carácter en este estándar.

Modo Real:

Modo Protegido:

results matching ""

    No results matching ""