Comienza Contenido

Sistemas Operativos: qué son y para qué sirven

Existe mucha teoría sobre qué son los sistemas operativos pero a veces demasiado sofisticado. A nivel técnico necesitamos entender los conocimientos de la funcionalidad de un sistema operativo y poder analizar los posibles problemas en su instalación y mantenimiento. Y de forma independiente al sistema operativo(sobre todo Linux, Mac y Windows)

Objetivos

  • Entender conceptos básicos de Sistemas Operativos
  • Entender la importancia del SO como base instalada para las aplicaciones

Clases

  1. Introducción
    • Qué son y para qué sirven (Descripción Básica y Completa)
    • Qué es lo que tienen que hacer (Características)
      • Diagrama General de un sistema Hardware/Software: SO y Aplicaciones
      • Elementos Funcionales Básicos de un SO
        • gestión de memoria
        • gestión de archivos. Sistemas de ficheros
        • gestión de procesos. Programas
        • gestión de entrada/salida (I/O). Periféricos
      • Qué tareas realiza: gestión de usuarios, gestión de recursos (hardware), interfaz gráfica hombre/máquina, soporte básico para otras aplicaciones, gestionar configuración, instalación y errores del hardware
    • Conceptos de monousuario y multiusuario, monotarea y multitarea
    • Comparar Sistemas Operativos
      • Elementos de Comparación: Coste, Multi Usuario, MultiPlataforma, Estabilidad, Seguridad, Curva de Aprendizaje, Facilidad de Uso, Soporte
      • Ventajas/Inconvenientes
    • Actualidad de los SO
    • Instalación de un sistema operativo: BIOS, preparación del soporte (disco duro), inventario de hardware y drivers (documentación), proceso de instalación y mantenimiento
  2. Sistemas Operativos en la actualidad:
    • Servidor (Linux, Windows) vs escritorio ( Windows, Mac OS X y Linux)
    • Introducción a Windows
      1. Historia de Windows: 1.0 (1985), 2.0 (1987), 3.0 (1990), 3.11, 95, 98, Me (2000), XP (2001) / NT 3.1 (93), NT 3.5 , NT4.0, 2000, 2003. 20 Años de Windows
      2. Concepto de GUI (Graphical User Interface) (Ver Ejemplos e Historia)
      3. Ventajas del S.O. Windows (según su fabricante)
      4. Ventajas Reales del S.O. (según el profesor):
        1. Fácil de Usar (todo a través de un entorno gráfico)
        2. Tiene una presencia elevada en las empresas (está en todas partes)
        3. Es fácil, rápido y al alcance de cualquiera realizar una instalación básica
        4. Cualquier dispositivo tiene un controlador (driver) para este sistema operativo.
        5. Gran disponibilidad de aplicaciones software
      5. Productos Actuales (precios aproximados, producto nuevo):
    • Introducción a Linux
      1. Pequeña Historia: Linus Torvalds v0.02/ 1991, v1.0 / 1994, v2.6.1 / 2004, v2.6.16/ (Abril 2006)
      2. Diferencias entre Movimiento de Software Libre (FSF), Proyecto GNU y Linux
      3. Sistema GNU/Linux: kernel (SO Linux) + programas (aplicaciones GNU y no GNU)
      4. Algunas características: ¿es libre?, ¿ es gratuito?, ¿es duro?, ¿es gráfico?, Curva de Aprendizaje
      5. Las distribuciones Linux: Qué son y Ejemplos
    • Comparativas de Sistemas Operativos:
      1. General
      2. Comparativa Detallada SO Servidores (Año 2002)
      3. Comparativa avanzada FreeBSD, Linux y Windows (inglés)
      4. SO para dispositivos móviles
      5. 25 reasons to convert to Linux
    • Historia de MacOS
    • Diagramas de Evolución Historica (inglés): Unix y Windows
  3. Gestión de Procesos
    • Software: conjunto de procesos para el SO
      • Software Básico
      • Software de Aplicación
    • Un poco de teoría de procesos:
      • Qué es un proceso (unidad de ejecución, solicita recursos)
      • Proceso (Código y Datos) y Recursos Asignados (Archivos abiertos, Dispositivos, Memoria ...)
      • Estados (nuevo, ejecutándose, listo, esperando, terminado) y Transiciones (admitir, despachar, expropiar, esperar, despertar, salir)
      • Gestión de Procesos (planificación): ¿En qué orden se ejecutan? ¿cual primero?
      • Operaciones con Procesos: crear, destrucción, comunicación entre procesos, relaciones jerárquicas,
      • Comunicación entre procesos: paso de mensajes, memoria compartida, invocación remota
    • Varios Conceptos: Programa, Proceso, Tareas, Hebras / Hilos
    • Lo que nos interesa: Monitoreo de la CPU y de los Procesos (Uso y Tiempos)
    • Problemas con los programas: consumo excesivo de recursos, deadlock (colgarse)
    • Utilizando programas en la practica
      • En Windows:
        • Como lanzar un programa (doble-click), como parar (menú y/o ventana) y como cambiar de programa (barra tareas y/o Alt+Tab)
        • Administrador de Tareas: Ctrl+Alt+Supr. Monitoreo CPU y Procesos.
        • Programa asociado a Ventana (excepto residentes): minimizar, maximizar, restaurar, cerrar y mover
      • En Linux:
        • Lanzar el programa
          • Utilizar el comando
          • Utilizar Interfaz Gráfico
        • Controlar Procesos: lanzar comando, kill, fg, bg y uso de & después del comando
        • Monitoreo CPU/Procesos: pstree, ps, uptime, top
  4. Gestión de Memoria
    • Qué es
    • Porqué se necesita (Más de un proceso y Memoria Física limitada)
    • Capacidad: Tamaño de la posición y Direccionamiento de la memoria
    • Problemática: Crear/Eliminar/Modificar Datos de la memoria física
    • Formas de Organizar la Memoria
      • División de la Memoria: SO, usuario y libre
      • El software ve memoria lógica y el hardware tiene memoria física
      • Concepto de Segmentación (p.ej: código, stack, heap/pila, biblioteca,datos)
      • Concepto de Paginación y Marcos (paging y Frames)
    • Conceptos Generales
      • Concepto de Memoria Física
      • Concepto de Memoria Virtual
      • Concepto de Memoria Activa/Real
      • Concepto de Memoria Swap
      • Concepto de Memoria Cache
    • En la práctica
      • Windows: Monitoreo de la memoria (Ctrl+Alt+Sup, en la parte de rendimiento)
      • Linux. Comando free y vmstat
  5. Gestión de Archivos (Sistemas de Almacenamiento)
    1. Sistema de Archivos/Ficheros (File System)
      1. ¿Qué son y porqué los necesitamos ?
      2. ¿Qué hacen? Asignación de espacio a los archivos (bloques)
      3. Tablas de Asignación: nombre equivalente a un archivo (espacio en disco)
      4. Conceptos: sectores, clusters, partición, archivos, carpetas/directorios, ROOT, HOME, etc
      5. Formateo Físico (de fábrica) y Lógico (sistema de ficheros)
      6. Tipos:
      7. Sistemas de Archivos con Journaling: ext3, reiserfs, ntfs, jfs ...
      8. Complete List of File Systems
    2. Archivos y Directorios
      1. Qué es un archivo/fichero (file) y un directorio/carpeta (directory)
      2. Tipos de Archivos. Convenios y Extensiones (MIME) / Aplicaciones Relacionadas
      3. Características (Atributos) de los Archivos: nombre, tipo, ubicación, tamaño, fecha creación/modificación, usuario y nivel de protección
      4. Organización de Archivos/Ficheros
        1. ¿Para qué sirve esto? Para organizar mi información (File Manager/Gestor de Archivos)
        2. Estructura Jerárquica de un Directorio
        3. Directorio Raíz del sistema ( / )y de Usuario (HOME). Windows: Letras (Unidades Windows) en MiPc, en Unix un único directorio raíz
        4. Ruta Completa de un archivo (PATH): descripcion única del fichero, directorio en el que está y nombre de archivo
        5. Rutas Absolutas y Relativas. Directorios especiales: ./ ó ../ ó /
      5. Listas de Control de Acceso (ACLs) a Archivos y Directorios(RWX)
      6. Operaciones sobre un archivo: crear, leer, escribir, editar/modificar, copiar, mover/renombrar, cambiar características, etc.
      7. Características del Software Gestor de Archivos (File Manager)
    3. En la práctica
      1. Windows: MiPC, Mis Documentos, Escritorio. Monitorear Espacio de Almacenamiento
      2. Linux:
        1. Estandar FHS: jerarquía del árbol de directorios
        2. Monitorear Espacio de almacenamiento: comando df y du
        3. Concepto de montar una partición
        4. Archivos de Configuración: /etc/fstab
        5. Control de Acceso en Unix (comandos chown/chmod)
          1. Modificación de propietario (owner) y grupo (group). Comando chown
          2. Modificación de permisos (rwx) para u (user) g (group) o (others). Comando chmod
  6. Gestión de E/S
    1. ¿Qué es y para qué se necesita?
    2. Gestionar Periféricos: añadir/quitar/modificar parámetros (IRQ, E/S, DMA)
    3. Quién se encarga: SO y dispositivo controlador (Driver)
    4. Concepto Plug&Play, HotSwap, HotPlug. Sistemas automáticos de configuración (HW y SW)
    5. Qué drivers tenemos instalados y Cómo instalar un nuevo (automático y manual)
    6. Inventario de Drivers/Controladores: crear un CD
    7. En la práctica
      1. Windows
        1. Instalar un Controlador: Encontrar el Software Instalador, Ejecutar la Instalación, Reiniciar el Equipo
        2. Controladores Instalados: Panel de Control - Sistema - Dispositivos
      2. Linux
        1. Directorio de Dispositivos: /dev. Todo dispositivo es un archivo
        2. Sistemas de gestión de dispositivos: devfs, sysfs, udev
        3. Ejemplo de funcionamiento con un dispositivo USB: enchufar, detecta hotplug, carga módulos, disponible en /dev
        4. Detalles de Archivos de Dispositivos: Permisos y Dispositivos de Bloque y de Carácter (letra b o c)
        5. Qué son los módulos del kernel
        6. Utilidades para gestionar módulos: modutils. Comandos lsmod, rmmod, insmod, modprobe, depmode
        7. Cómo se crean los drivers en Linux: estandares (lo más sencillo), ingeniería inversa (copiando) y soportando partes del driver (chipsets)
        8. Drivers en Linux: paquetes o compilación desde el código fuente
        9. Problemas: revisar si mi hardware tiene soporte Linux
    8. Comparativa Windows-Linux EXCELENTE

Actividades

  1. Introducción
    • Buscar en Internet cuantos sistemas operativos hay (multiplataforma), por ejemplo, para móviles, para PC, para PDAs, etc
    • Historia Comparada de Windows y Linux. Enviar un correo al profesor con dos enlaces a páginas sobre distribuciones Linux (qué son, cuantas hay, etc).
  2. Gestión de Procesos
    • Conocer qué procesos están ejecutándose, qué es tal proceso, qué proceso consume más tiempo de CPU, qué proceso está colgado, etc
    • Gestión de Procesos y Programas. Windows: cambiar programas, monitorear CPU y Procesos
    • Consola y Procesos en Linux:
      • Controlar Procesos: mover entre primer y segundo plano
      • Monitorear procesos y CPU (ejemplo TOP y PS)
  3. Gestión de Memoria
    • Entender la Importancia de monitorear la memoria (Linux y Windows)
    • Responder a las preguntas: ¿necesito más memoria? ¿cuantas aplicaciones puedo tener abiertas a la vez? ¿Cual es el límite?
    • Entender el proceso de Swap
  4. Gestión de Dispositivos de Almacenamiento
    • Organizar mi HOME (Windows / Linux) en modo gráfico: gestionar mis archivos y directorios). Comprobar Grado de Ocupación de las Unidades (Particiones)
    • Monitoreo del Tamaño Ocupado (MiPc y df/du)
    • Gestión de archivos con comandos linux: touch, ls, rm, cp, mv, mkdir, rmdir.
    • Gestionar los privilegios (chmod / chown) y entender el concepto de montaje de sistemas de archivos
  5. Gestión de Entrada / Salida
    1. Windows: Ver qué controladores tiene mi sistema y buscar controladores de hardware específico
    2. Linux: Ver qué controladores tiene mi sistema (/lib/modules) y ver los módulos instalados. Buscar controladores para hardware específico.
  6. Ejercicio Final sobre la UD

Duración del Curso

El esfuerzo estimado del curso es de 2 créditos ECTS. Unas 60 horas de dedicación.

Recursos a Utilizar