Materia de Linux

Contenido genérico del curso de Linux en la UCA.

Parte formal

Generalidades

  • Nombre: Introducción a la Administración de Sistemas GNU/Linux
  • Unidades valorativas: 4 (sugeridas)

Descripción

Este curso presenta un panorama general del funcionamiento y administración de sistemas operativos basados en UNIX, haciendo énfasis en GNU/Linux. Comenzando con un acercamiento a la historia y filosofía del software libre, pasando luego a una introducción a la arquitectura de estos sistemas. Posteriormente se estudia en profundidad los mecanismos de almacenamiento secundario (archivos en dispositivos de almacenamiento persistente). Luego se estudian y aplican los conceptos de redirección de flujo y tuberías para aprovechar al máximo la modularidad típica de un sistema operativo basado en UNIX. Después, se abordan las características de multi-usuario y multi-tarea desde la perspectiva del administrador de sistemas. Se introducen tópicos básicos de administración de redes de computadoras. Posteriormente se estudian las capas de interfaz gráfica. Entonces se presentan los mecanismos de instalación de software.

El curso incluye finalmente una discusión/reflexión sobre las implicaciones políticas, sociales y económicas del uso del software libre en las esferas privadas, públicas, estatales y educativas.

Finalmente se incluye una introducción a la programación en Bash para automatización de tareas de administración.

Objetivos

Que el estudiante

  1. Se introduzca al mundo del software libre.
  2. Esté en capacidad de administrar una estación de trabajo GNU/Linux.
  3. Se encamine en el aprendizaje de conocimientos más avanzados y especializados (en redes, bases de datos, servidores, programación, etc) usando herramientas basadas en software libre.
  4. Comprenda la importancia del uso de software libre en todas las esferas de la sociedad para lograr independencia tecnológica en un mundo marcado por la explotación y la exclusión.
  5. Sepa difundir el uso del software libre con la fundamentación conceptual apropiada.
  6. Propicie el desarrollo tecnológico independiente de limitaciones de patentes y licencias propietarias en su práctica profesional.

Contenido

  1. Introducción
    1. El proyecto GNU (historia y filosofía)
      1. Licencias libres
      2. El estándar POSIX y LBS
    2. El nucleo de Linus Torvalds (historia)
    3. Otros nucleos
      1. Hurd, BSD, Solaris, QNX, etc.
    4. Distribuciones de GNU/Linux
      1. Historia de las más importantes
      2. Demostraciones, ejemplos
  2. Organización del sistema de directorios
  3. Arquitectura de GNU/Linux
    1. Dispositivos
      1. Discos duros, discos ópticos y memorias flash, etc.
    2. El kernel
      1. Arquitectura
      2. Módulos
    3. Arranque
      1. Visión general
      2. Gestores de arranque
      3. Niveles de ejecución
    4. Separación programas/interfaces (sobreviviendo en el CLI)
      1. La consola
      2. Aplicaciones de linea de comandos
      3. Aplicaciones con GUI
  4. Administración de archivos
    1. Concepto de archivo en UNIX
      1. Tipos de archivos (archivos simples, directorios, enlaces, dispositivos)
      2. nodos-i
      3. Enlaces duros y suaves (simbólicos)
    2. Comandos básicos de manipulación de archivos (coreutils)
    3. Edición de archivos de texto
      1. vi, emacs, nano, etc.
    4. Rutas absolutas y relativas
    5. Sistemas de archivos
      1. Tipos de sistemas de archivos (fat16, fat32, ntfs, ext2, ext3, reiserFS, etc.)
      2. Montaje y desmontaje
      3. el archivo fstab
    6. Seguridad básica de archivos
      1. Tipos de usuario
      2. Introducción a los Grupos
      3. Permisos de acceso (comandos chmod, chown, chgrp)
    7. Marcador de fin de archivo (eof)
  5. Administración avanzada de archivos
    1. Expresiones regulares
    2. Compresión de archivos (comando tar)
    3. Búsquedas (findutils)
    4. Encriptamiento y verificación de integridad (gpg, md5)
  6. Redirección de flujo y tuberías
    1. Entrada y salida estándar
    2. Redirección de la entrada y la salida estándar
    3. La salida estándar de error
    4. Combinaciones de redirección de entrada, salida y error
    5. Concepto de Tubería
    6. Combinación de redirección con tuberías
    7. Sustitución de comandos
  7. Administración de usuarios y grupos
    1. Manipulación de usuarios
      1. Creación, eliminación, renombramiento de usuarios
      2. Cambio de contraseñas
    2. Manipulación de grupos de usuarios
      1. Creación, eliminación, renombramiento de grupos
      2. Asignación y desasignación de usuarios a grupos
  8. Administración de procesos
    1. Introducción a la multitarea
    2. Estados de los procesos
    3. Tipos de procesos (procesos y demonios)
    4. Atributos de los procesos
    5. Control de procesos
      1. Primer plano y segundo plano
      2. Comandos de control (top, kill, etc)
    6. Jerarquía de procesos
    7. Listas de procesos
    8. Ejecución secuencial y en paralelo
  9. Redes e internet
    1. Instalación de controladores privativos de tarjetas de red inalámbricas (ndiswrapper).
    2. Configuración del cliente de red.
      1. El comando ifconfig
      2. Archivos de configuración (/etc/hosts, /etc/resolv.conf)
    3. Enrutamiento básico sobre GNU/LINUX (el comando route).
    4. Servidor DHCP.
    5. Servidor SSH
    6. Servidor web apache.
    7. Servidor FTP
    8. Herramientas de descarga (wget, curl, etc.)
    9. Flujos de Torrents
    10. Servidor de administración de versiones (cvs, svn).
    11. Vistazo superficial de otros servicios de red
      1. Servidor de nombres de dominio.
      2. Servidor Samba
      3. Servidor de impresión.
      4. Servidores de Bases de Datos
      5. Servidor Tomcat
      6. Servidor de Tiempo de red (NTP)
      7. Servidores de Correo
      8. Servidores Proxy
    12. Configuración de seguridad (iptables).
    13. Monitoreo y Administración básicas de red
      1. ping, telnet, iftop, tcpdump, nmap.
      2. wireshark, ntop.
  10. Instalación de software
    1. Compilación de código fuente
    2. Concepto de repositorio
    3. Herramientas de administración de repositorios (apt-get, aptitude, yum, yast, pacman, etc.)
  11. La interfaz gráfica
    1. El servidor X
    2. Eventos y solicitudes
    3. El archivo xorg.conf # lo mantenemos para compatibilidad hacia atrás
    4. Gestores de ventanas
    5. Decoradores de ventanas
    6. Controladores privativos de video
  12. Implicaciones políticas, sociales y económicas del uso del software libre
  13. Introducción a la programación en Bash
    1. Ejecución de archivos script
    2. Variables de shell
    3. La entrada estándar
    4. La salida estándar
    5. Paso de argumentos desde la consola
    6. Control de flujo del programa
      1. if-then-elif-else-fi
      2. for
      3. while
      4. until
      5. break y continue
      6. case

Bibliografía

  1. Libros técnicos
    1. El libro de Linux, de Sarwar, Koretsky, Sarwar.
    2. Otros libros técnicos…
  2. Libros sobre filosofía GNU y de software libre
    1. Software libre para una sociedad libre, de Richard Stallman. ISBN: 84-933555-1-8
    2. Por una Cultura Libre (Cómo los grandes grupos de comunicación utilizan la tecnología y la ley para clausurar la cultura y controlar la creatividad), de Lawrence Lessig. ISBN: 84-96453-01-4
    3. Manual Copyleft, de Jesús M. González Barahona et al. ISBN10: 84-96453-14-6, ISBN13:978-84-96453-14-6
    4. Los piratas son los padres (Historias en los albores de la era digital)
    5. tuXlabs Cookbook, de Mark Shuttleworth

Prerrequisitos

  1. Sólo limitar el cupo a una cantidad manejable. (Eduardo)

Contenido de las prácticas de laboratorio

  1. Instalación
    1. Detalles de la nomenclatura de dispositivos de almacenamiento (sda1, sdb5, etc)
    2. Particionamiento desde diversos escenarios
    3. Instalación de distribuciones grandes (ubuntu, fedora, mandriva, opensuse, etc.)
    4. Instalación en USB (puppy, slax, dream, DSL, eLive, etc)
  2. Administradores de escritorio
    1. KDE
    2. GNOME
    3. XFCE4
    4. Enlightenment
    5. openbox, fluxbox, etc
  3. Práctica de administración de archivos
  4. Práctica de administración de usuarios y grupos
  5. Práctica de redirección y tuberías
  6. Práctica de administración de procesos
  7. Práctica de instalación de software en varias distribuciones
  8. Práctica de programación en Bash

(Necesitamos un cuerpo de instructores e instructoras competentes para esta materia)

Otras cosas

  • ¿¿Debería ser optativa para toda la facultad?? (recuerden que eso tiene la repercusión directa en el tema de programación de scripts) (Yo, Eduardo, opino que sí)
    • El coordinador de la carrera me dijo que por el momento la mantengamos optativa para la carrera de computación únicamente
  • Se podrían dejar temas de investigación y exposición para enriquecer el contenido. Voy a poner un apartado abajo para enumerar esos temas.

Temas de investigación propuestos

  • Licencias libres
  • La experiencia de países (o regiones autónomas) que han adoptado el uso del software libre de manera oficial
  • Especificaciones técnicas de los sistemas de archivos (ext2, ext3, reiserFS, fat16, fat32, ntfs, etc)
  • Temas avanzados que no se alcancen a cubrir en clase
  • etc…

¿Te gustó?
Regálame USD 2

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License