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
- 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
- Tipos de Plataformas Hardware (no sólo PCs): i386/i686 (IA32, x86_32), IA64, AMD64 (x86_64), Sparc, ARM (Ultraportátiles), PowerPC, dreamcast, playstation, Alpha, móviles, etc
- Ejemplos de Sistemas Operativos
- 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
- Sistemas Operativos en la actualidad:
- Servidor (Linux, Windows) vs escritorio ( Windows, Mac OS X y Linux)
- Introducción a Windows
- 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
- Concepto de GUI (Graphical User Interface) (Ver Ejemplos e Historia)
- Ventajas del S.O. Windows (según su fabricante)
- Ventajas Reales del S.O. (según el profesor):
- Fácil de Usar (todo a través de un entorno gráfico)
- Tiene una presencia elevada en las empresas (está en todas partes)
- Es fácil, rápido y al alcance de cualquiera realizar una instalación básica
- Cualquier dispositivo tiene un controlador (driver) para este sistema operativo.
- Gran disponibilidad de aplicaciones software
- Productos Actuales (precios aproximados, producto nuevo):
- Entorno Escritorio (Desktop). Windows XP. Ediciones: Home (100 €), Profesional (300 euros ), Tablet PC, Media Center (400), Profesional x64 (200)
- Entorno Servidor (Server). Windows Server 2003 R2: Standard (5 clientes, 1000 euros) , 64 Bit (para 5 clientes, 1.200 euros), DataCenter y Web Edition
- Otros: Plataforma Móvil (Windows Mobile), Software Virtualización (Virtual PC)
- Introducción a Linux
- Pequeña Historia: Linus Torvalds v0.02/ 1991, v1.0 / 1994, v2.6.1 / 2004, v2.6.16/ (Abril 2006)
- Diferencias entre Movimiento de Software Libre (FSF), Proyecto GNU y Linux
- Sistema GNU/Linux: kernel (SO Linux) + programas (aplicaciones GNU y no GNU)
- Algunas características: ¿es libre?, ¿ es gratuito?, ¿es duro?, ¿es gráfico?, Curva de Aprendizaje
- Las distribuciones Linux: Qué son y Ejemplos
- Comparativas de Sistemas Operativos:
- General
- Comparativa Detallada SO Servidores (Año 2002)
- Comparativa avanzada FreeBSD, Linux y Windows (inglés)
- SO para dispositivos móviles
- 25 reasons to convert to Linux
- Historia de MacOS
- Diagramas de Evolución Historica (inglés): Unix y Windows
- 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
- Lanzar el programa
- En Windows:
- Software: conjunto de procesos para el SO
- 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
- Gestión de Archivos (Sistemas de Almacenamiento)
- Sistema de Archivos/Ficheros (File System)
- ¿Qué son y porqué los necesitamos ?
- ¿Qué hacen? Asignación de espacio a los archivos (bloques)
- Tablas de Asignación: nombre equivalente a un archivo (espacio en disco)
- Conceptos: sectores, clusters, partición, archivos, carpetas/directorios, ROOT, HOME, etc
- Formateo Físico (de fábrica) y Lógico (sistema de ficheros)
- Tipos:
- Sistemas de Archivos con Journaling: ext3, reiserfs, ntfs, jfs ...
- Complete List of File Systems
- Archivos y Directorios
- Qué es un archivo/fichero (file) y un directorio/carpeta (directory)
- Tipos de Archivos. Convenios y Extensiones (MIME) / Aplicaciones Relacionadas
- Características (Atributos) de los Archivos: nombre, tipo, ubicación, tamaño, fecha creación/modificación, usuario y nivel de protección
- Organización de Archivos/Ficheros
- ¿Para qué sirve esto? Para organizar mi información (File Manager/Gestor de Archivos)
- Estructura Jerárquica de un Directorio
- Directorio Raíz del sistema ( / )y de Usuario (HOME). Windows: Letras (Unidades Windows) en MiPc, en Unix un único directorio raíz
- Ruta Completa de un archivo (PATH): descripcion única del fichero, directorio en el que está y nombre de archivo
- Rutas Absolutas y Relativas. Directorios especiales: ./ ó ../ ó /
- Listas de Control de Acceso (ACLs) a Archivos y Directorios(RWX)
- Operaciones sobre un archivo: crear, leer, escribir, editar/modificar, copiar, mover/renombrar, cambiar características, etc.
- Características del Software Gestor de Archivos (File Manager)
- En la práctica
- Windows: MiPC, Mis Documentos, Escritorio. Monitorear Espacio de Almacenamiento
- Linux:
- Estandar FHS: jerarquía del árbol de directorios
- Monitorear Espacio de almacenamiento: comando df y du
- Concepto de montar una partición
- Archivos de Configuración: /etc/fstab
- Control de Acceso en Unix (comandos chown/chmod)
- Modificación de propietario (owner) y grupo (group). Comando chown
- Modificación de permisos (rwx) para u (user) g (group) o (others). Comando chmod
- Sistema de Archivos/Ficheros (File System)
- Gestión de E/S
- ¿Qué es y para qué se necesita?
- Gestionar Periféricos: añadir/quitar/modificar parámetros (IRQ, E/S, DMA)
- Quién se encarga: SO y dispositivo controlador (Driver)
- Concepto Plug&Play, HotSwap, HotPlug. Sistemas automáticos de configuración (HW y SW)
- Qué drivers tenemos instalados y Cómo instalar un nuevo (automático y manual)
- Inventario de Drivers/Controladores: crear un CD
- En la práctica
- Windows
- Instalar un Controlador: Encontrar el Software Instalador, Ejecutar la Instalación, Reiniciar el Equipo
- Controladores Instalados: Panel de Control - Sistema - Dispositivos
- Linux
- Directorio de Dispositivos: /dev. Todo dispositivo es un archivo
- Sistemas de gestión de dispositivos: devfs, sysfs, udev
- Ejemplo de funcionamiento con un dispositivo USB: enchufar, detecta hotplug, carga módulos, disponible en /dev
- Detalles de Archivos de Dispositivos: Permisos y Dispositivos de Bloque y de Carácter (letra b o c)
- Qué son los módulos del kernel
- Utilidades para gestionar módulos: modutils. Comandos lsmod, rmmod, insmod, modprobe, depmode
- Cómo se crean los drivers en Linux: estandares (lo más sencillo), ingeniería inversa (copiando) y soportando partes del driver (chipsets)
- Drivers en Linux: paquetes o compilación desde el código fuente
- Problemas: revisar si mi hardware tiene soporte Linux
- Windows
- Comparativa Windows-Linux EXCELENTE
Actividades
- 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).
- 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)
- 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
- 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
- Gestión de Entrada / Salida
- Windows: Ver qué controladores tiene mi sistema y buscar controladores de hardware específico
- Linux: Ver qué controladores tiene mi sistema (/lib/modules) y ver los módulos instalados. Buscar controladores para hardware específico.
- 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
- Practica con Windows
- Software: Manejar Software, Ayuda Softonic (descargas de programas)
- Administración de Archivos
- Practica con Linux
- Administración de Archivos de forma gráfica
- Teoría y Conceptos de SO:
- Sistemas de Archivos: Qué son, FileSystems, Sectores, Clusters y Bloques, Tipos MIME
- Gestión de Memoria: Explicación Detallada, Apuntes Avanzados
- Gestión de Procesos. Estados de Procesos en Linux
- Gestión E/S: Qué son, Teoría, Kernel Linux y Módulos (modutils)
- Diseño de Sistemas Operativos: MSDN-Windows 2000, Unix