Comandos Esenciales de Linux
A continuación, se presenta una lista de comandos comunes en sistemas Linux, junto con una breve descripción de su función:
Comandos Básicos
- apropos: Busca palabras clave en las páginas del manual.
- whatis: Imprime descripciones breves de comandos.
- shutdown: Apaga o reinicia el equipo.
- bash: Ejecuta un shell o intérprete de comandos.
- whoami: Muestra el usuario actual.
- uname: Muestra información sobre el sistema.
- type: Indica el tipo de comando.
- whereis: Muestra la ubicación del ejecutable de un comando.
- which: Localiza un comando.
- echo: Imprime líneas de texto.
- date: Muestra o establece la fecha y hora del sistema. (Para establecer fecha, hora y año:
sudo date MMDDhhmmAAAA
). - cal: Muestra el calendario. (
cal -3 7 2005
muestra junio, julio y agosto de 2005). - alias: Visualiza y crea alias de comandos.
- unalias: Quita un alias.
- pwd: Imprime el directorio de trabajo actual.
- ls -i: Muestra los números de inodo de los archivos. (
ls -a
muestra archivos y directorios ocultos). - ln: Crea enlaces entre archivos.
ln -s
crea enlaces simbólicos en lugar de enlaces duros. - touch: Cambia las marcas de tiempo de los archivos.
touch -t
establece una marca de tiempo específica. - cp -s: Crea enlaces simbólicos.
- find: Busca archivos y directorios dentro del sistema de archivos.
find -inum
busca por número de inodo. - file: Determina el tipo de un archivo.
file --mime-type
obtiene el tipo MIME del archivo.file --mime-encoding
obtiene la codificación de un archivo. - cat: Concatena archivos y muestra el resultado en la pantalla.
- tac: Muestra el contenido de un archivo en orden inverso. También concatena.
- more: Visualiza el contenido de un archivo de forma paginada.
ls -l -R / | more
visualiza de forma paginada un listado largo y recursivo desde el directorio raíz. - less: Visualiza el contenido de un archivo de forma paginada, permitiendo navegar hacia adelante y hacia atrás.
- head: Muestra el principio de un archivo.
- tail: Muestra el final de un archivo.
- wc: Cuenta las líneas, palabras y caracteres de un archivo.
- iconv: Modifica la codificación de un archivo.
- sort: Ordena alfabéticamente las líneas de texto de un archivo.
- cut: Elimina secciones de cada línea de un archivo.
- grep: Busca patrones (expresiones regulares) dentro de un archivo.
- | (pipe): Permite canalizar la salida de un comando a la entrada de otro.
- tee: Lee la entrada estándar y la escribe tanto en la salida estándar como en un archivo.
- xargs: Construye y ejecuta comandos a partir de la entrada estándar.
Algoritmos de Planificación de la CPU
Los algoritmos de planificación de la CPU determinan qué proceso se ejecutará en un momento dado. Se dividen en dos categorías principales:
Algoritmos No Apropiativos (Non-Preemptive)
Una vez que un proceso comienza a ejecutarse, no se le puede interrumpir hasta que termine su ráfaga de CPU.
- First Come, First Served (FCFS): El primer proceso en llegar es el primero en ser atendido.
- Shortest Job First (SJF): Se ejecuta el proceso con la ráfaga de CPU más corta. Si hay empate, se usa FCFS. Desventaja: Es difícil predecir la duración de la siguiente ráfaga de CPU.
- Prioridad: Se ejecuta el proceso con la mayor prioridad. Si hay empate, se usa FCFS. Desventaja: Los procesos de baja prioridad pueden sufrir inanición (starvation). Solución: Envejecimiento (aging) – aumentar gradualmente la prioridad de los procesos que esperan mucho tiempo.
Algoritmos Apropiativos (Preemptive)
El sistema operativo puede interrumpir un proceso en ejecución para ejecutar otro proceso.
- Shortest Remaining Time First (SRTF): Es una versión apropiativa de SJF. Se ejecuta el proceso con el menor tiempo restante de ráfaga de CPU. Si llega un nuevo proceso con una ráfaga más corta que el tiempo restante del proceso en ejecución, el nuevo proceso toma la CPU.
- Prioridad Apropiativa: Se ejecuta el proceso con la mayor prioridad. Si llega un nuevo proceso con mayor prioridad que el proceso en ejecución, el nuevo proceso toma la CPU.
- Round Robin (RR): A cada proceso se le asigna un quantum (una pequeña unidad de tiempo de CPU, por ejemplo, 4 milisegundos). Los procesos se ejecutan en orden de llegada. Si un proceso no termina su ráfaga de CPU dentro de su quantum, se le interrumpe y se coloca al final de la cola de procesos listos.
Algoritmos de Reemplazo de Página
Cuando ocurre un fallo de página (un programa intenta acceder a una página que no está en memoria principal), el sistema operativo debe decidir qué página de memoria física (marco de página) debe liberar para cargar la página requerida. Aquí es donde entran en juego los algoritmos de reemplazo de página.
- FIFO (First-In, First-Out): Se reemplaza la página que ha estado en memoria durante más tiempo.
- Algoritmo Óptimo: Se reemplaza la página que no se utilizará durante el período de tiempo más largo en el futuro. Este algoritmo es teórico y no se puede implementar en la práctica porque requiere conocer el futuro. Sirve como referencia para evaluar otros algoritmos.
- LRU (Least Recently Used): Se reemplaza la página que no se ha utilizado durante más tiempo. Se basa en la idea de que las páginas que se han utilizado recientemente tienen más probabilidades de volver a utilizarse pronto.
Preguntas sobre Gestión de Memoria
¿Qué ocurre cuando un programa intenta acceder a una página que no está cargada en memoria?
Se produce un fallo de página. El sistema operativo debe:
- Encontrar un marco de página libre en la memoria física.
- Leer la página solicitada desde el almacenamiento secundario (disco duro) y cargarla en el marco de página libre.
- Actualizar la tabla de páginas para reflejar la nueva ubicación de la página.
¿Qué sucede si no hay marcos de página libres cuando ocurre un fallo de página?
El sistema operativo debe realizar un reemplazo de página. Esto implica:
- Seleccionar una página víctima (una página que está actualmente en memoria física) para ser reemplazada.
- Escribir la página víctima en el disco duro si ha sido modificada (si es una página sucia).
- Cargar la página solicitada en el marco de página que ahora está libre.
El reemplazo de página tiene un coste en términos de tiempo y recursos. El objetivo es minimizar el número de fallos de página.
Funciones de un Sistema Operativo
Un sistema operativo (SO) es un software que administra los recursos de hardware y software de una computadora y proporciona servicios comunes para los programas de computadora. Las funciones principales de un SO incluyen:
- Planificación de la CPU: Distribuye el tiempo del procesador entre los diferentes procesos en ejecución.
- Gestión de la memoria: Controla la asignación de memoria física a los procesos.
- Gestión de entradas/salidas (E/S): Controla el acceso de los programas a los dispositivos periféricos.
- Gestión de ejecución de aplicaciones: Asigna los recursos necesarios (CPU, memoria, E/S) a las aplicaciones.
- Gestión de permisos y usuarios: Garantiza la seguridad del sistema, controlando el acceso a los recursos.
- Gestión de archivos: Organiza y administra los archivos y directorios en el sistema de almacenamiento.
- Gestión de la información: Proporciona información sobre el estado del sistema y su rendimiento.
Máquinas Virtuales
Una máquina virtual (MV) es un software que emula una computadora completa. Permite ejecutar un sistema operativo y aplicaciones dentro de otro sistema operativo. Existen diferentes tipos de configuraciones de red para las MVs:
- Red Solo-Anfitrión (Host-Only): La MV solo puede comunicarse con el equipo anfitrión. No tiene acceso a Internet.
- Red Puente (Bridged): La MV aparece como otro dispositivo en la red física. Tiene su propia dirección IP y puede comunicarse con otros dispositivos en la red y con Internet.
- Red NAT (Network Address Translation): La MV se esconde detrás del host. La MV puede acceder a la red externa (Internet) a través del host, pero los dispositivos externos no pueden acceder directamente a la MV.
Estructura Lógica de un Disco Duro
La estructura lógica de un disco duro se refiere a cómo se organiza la información en el disco. Existen dos esquemas principales de particionamiento:
- MBR (Master Boot Record): Es un esquema más antiguo, asociado con los sistemas BIOS. Tiene limitaciones en cuanto al tamaño máximo del disco y al número de particiones primarias.
- GPT (GUID Partition Table): Es un esquema más moderno, asociado con los sistemas UEFI. Supera las limitaciones de MBR, permitiendo discos más grandes y un mayor número de particiones.