Departamento de
      Electrónica y Telecomunicaciones




 Sistemas Operativos
Ingeniería de Telecomunicación
            4º curso



      Tema 2-3




                                         © 2007­2011 Gorka Prieto
      GNU/Linux
         Curso 2010 – 2011
Índice

1.Introducción
2.Distribuciones
3.Arquitectura
      Kernel
      Entorno gráfico
      Sistemas de ficheros

4.Administración
      Gestión paquetes
      Gestión de usuarios
      Servicios
      Logs del sistema y las aplicaciones
      Tareas periódicas
      Control de accesos
      Comandos/ficheros de administración
                                             2
1     Introducción


 GNU + Linux
 Software libre
 Multiplataforma, multiproceso, multiusuario,
  multitarea.
 Uso: escritorio, servidor, supercomputadoras
  (top500), sistemas embebidos, etc.
 Apoyo multinacionales: IBM, Sun
  Microsystems, HP, Novell, etc.
 En la administración pública:
    http://en.wikipedia.org/wiki/Linux_adoption

                                                  3
1   Introducción




                   4
1    Introducción

 Proyecto GNU
    • GNU is Not Unix
    • Objetivo: Sistema operativo
      completo libre
    • Iniciado en 1983 por
      Richard Stallman
    • Libertades: ejecución, copia,
      modificación y distribución
    • Licencia General Pública de GNU (GPL)
      o Copyleft
      o Variantes: Gnu Free Documentation License (GFDL),
        Lesser GPL (LGPL)
    • En 1985 la Free Software Fundation (FSF)
                                                            5
      o Para soportar el proyecto GNU
1    Introducción

 Linux
    • El proyecto GNU:
      o Editor de textos (Emacs), Compilador (GCC), librerías y
        utilidades UNIX
      o Faltaba kernel. GNU/Hurd aún en desarrollo ...
    • Primera versión del kernel Linux en 1991
    • Por Linus Torvalds
    • Licencia GPL
    • Núcleo monolítico híbrido
      o Módulos
    • Arquitectura discutida por
      Tanenbaum
      o Minix vs Linux
                                                                  6
1    Introducción



 Linux (cont)
    • Actualmente kernel más
      portado:
      o PCs, PDAs, Router, Consolas,
        MainFrames
    • Versiones x.y.z,
      actualmente 2.6
      o Par: estable
      o Impar: desarrollo
    • Mascota: pingüino Tux


                                       7
1    Introducción

 Hurd
    • Kernel GNU bajo licencia GPL
    • Compatible POSIX
    • Arquitectura microkernel
      o Actualmente sólo sobre GNU Mach
        (CMU)
      o Múltiples servidores simultáneos
    • Siglas
      o Hird of Unix-Replacing Daemons (Hurd)
      o Hurd of Interfaces Representing Depth (Hird)
      o “Manada de Ñúes”
    • Otros sistemas UNIX que corren sobre Mach
      o NEXTSTEP, Mac OS X, MkLinux, etc.
                                                       8
      o Microkernel y (un único) servidor UNIX
1    Introducción



 Hurd (cont)
    • Servidores (Debian)
      o auth, crash, exec, ext2fs, fifo, firmlink, ftpfs, fwd,
        hostmux, ifsock, init,
        isofs, magic, new-fifo, nfs, null, pfinet, pflocal, proc,
        storeio, symlink, term, ufs, usermux.
    • Limitaciones
      o Partición máx 2 GB
      o Drivers correspondientes a la versión 2.0 del kernel
        Linux
      o RAM máx 768 MB
      o No soporte audio, USB, PPP, DHCP, etc.
                                                                    9
1    Introducción



 GNU + Kernel
    • GNU/Linux (“Linux”)
    • GNU/Hurd
    • GNU/kFreeBSD

 Otros SSOO libres
    • FreeBSD
    • OpenBSD
    • etc.


                            10
2    Distribuciones



 Diferentes organizaciones ofrecen sus
  distribuciones
 “Sabores” de GNU/Linux
 Conjunto de aplicaciones
 Diferencias:
    • Sistema de paquetes (deb, rpm, tarballs, etc.)
    • Política de funcionamiento
    • Facilidades de administración


                                                       11
2    Distribuciones



 Según el sistema de paquetes
    • Basadas en rpm: RedHat, Fedora, SuSE,
      Mandrake, YDL, etc.
    • Basadas en deb: Debian, K/Ubuntu, Knoppix, etc.
    • Basadas en fuentes: Slackware, SLAX, Gentoo,
      etc.
 Live CD/DVD
    • Ejecución desde el CD/DVD sin instalar en el HD
    • Permiten instalarlo posteriormente


                                                        12
2    Distribuciones



 Debian
    • Creada en 1993, actualmente versión 5.0
    • Filosofía software libre
    • Comunidad de desarrolladores y usuarios
    • Independiente a empresas
    • Tres ramas de desarrollo
      o stable
      o testing
      o unstable
    • Sistema APT

                                                13
2    Distribuciones



 RedHat
    • Creada en 1994, actualmente RHEL 5.5
    • Distribución comercial Red Hat
    • En 2003 separación en:
      o Red Hat Enterprise Linux (RHEL)
         Ediciones de servidor y de estación de trabajo
      o Fedora Core (FC)
         Comunidad Fedora
    • Fedora
      o Fedora Core: hasta FC6 (2006)
      o Fedora: fusión repositorios Core y Extras
      o Actualmente Fedora 14
                                                           14
2     Distribuciones

 Ubuntu
    • Creada en 2004 (actual Maverick Meerkat 10.10)
    • Basada en Debian GNU/Linux
      o Demasiada burocracia
      o Actualidad vs estabilidad
      o Desarrolladores en ambos proyectos
    • Patrocinada por Canonical Ltd.
    • Facilidad de uso y de instalación
      o Eslogan: “Linux for Human Beings”
    • Lanzamientos regulares:
      o Cada 6 meses y LTS cada 2 años
    • Ubuntu (GNOME), Kubuntu (KDE), Xubuntu (XFCE),
      etc.                                           15
2    Distribuciones


 Ubuntu
    • Mark
      Shuttleworth




                      16
3    Arquitectura


 Kernel
    • Núcleo monolítico híbrido (módulos)
      o Ring 0: kernel, acceso HW
      o Ring 3: modo usuario, sin privilegios
    • Arquitectura discutida por Tanenbaum
      o Minix vs Linux
       http://www.dina.dk/~abraham/Linus_vs_Tanenbaum.html
    • Versiones X.Y.Z
      o Estable
      o Desarrollo
    • GUI fuera del kernel

                                                             17
3   Arquitectura




                   18
3   Arquitectura




                   19
3    Arquitectura



 Kernel
    • Posibilidades de kernel
      o Stock kernel
      o Custom Kernel
    • Recompilar kernel
       $ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux­2.6.X.tar.bz2
       Descomprimir en /usr/src/linux
       # make menuconfig (o make xconfig)
       # make
       # make install
       # make modules_install




                                                                                20
3   Arquitectura: Kernel custom




                                  21
3   Arquitectura: Kernel custom




                                  22
3   Arquitectura: Kernel custom




                                  23
3    Arquitectura


 Entorno gráfico
    • Servidor X
      o Se encarga de dibujar en
        pantalla
      o Puede estar en un equipo
        diferente
      o Xfree86, X.org, etc.
    • Gestor de ventanas
      o Simplifica la utilización de ventanas
      o Kwin, Metacity, Beryl/Compiz, etc.
    • Escritorio
      o Organiza gráficamente funcionalidades
      o KDE, GNOME, XFCE, etc.
                                                24
3    Arquitectura



 Organización en directorios
    /             proc/   home/
    bin/, sbin/   etc/    root/
    boot/         usr/    ...
    dev/          var/
    mnt/          tmp/
 “Todo es un fichero”
    • /dev/
 Concepto de montaje


                                  25
3    Arquitectura


 Formatos binarios soportados
    • Inicialmente a.out (assembler output)
    • Actualmente ELF (Extensible Linking Format)
      o Ejecutables, objeto, librerías dinámicas, core dumps,
        etc.
    • binfmt_misc
      o Capacidad del kernel Linux
      o Permite formatos binarios arbitrarios pasándolos a
        aplicaciones usuario
      o Java -> Máquina virtual Java
      o Ejecutables Win16/32 -> Wine
      o Ejecutables .NET -> Mono
                                                                26
3    Arquitectura: Sistemas de ficheros

 Ext (extended file system) – 1992
    • Sistema de ficheros inicial de linux
    • Creado para solventar limitaciones de minix
      o Tamaño de partición 2GB
      o Nombre de ficheros de 255 caracteres
 Ext2 – 1993
    • Soluciona limitaciones de ext
      o Nuevas funcionalidades
      o Tamaño de partición de 4 TB
      o Nombres de fichero de 255 caracteres
    • Extensible. Añadidos posteriores:
      o Atributos extendidos
      o ACLs de POSIX                               27
3    Arquitectura: Sistemas de ficheros


 Ext3 – 2001
    • Añadidos
      o Journalling
      o Mayor direccionamiento
      o Crecimiento dinámico del sistema de ficheros
    • Compatible con ext2 (sin los añadidos)
      o Convertir un ext2 a un ext3:
         # tune2fs ­j /dev/hdaX
    • Desventajas
      o Defragmentación
         No extent
      o Funcionalidades
         Solo puede ser reparado en modo RO
                                                       28
3     Arquitectura: Sistemas de ficheros


 Ext4 – 2006
    • Tamaños de 260 bytes
    • Añade extent para evitar defragmentación
    • Compatible con ext3 (si no se usa extent)
 ReiserFS (Reiser3) – 2001
    • Características similares a ext3
    • Mejor rendimiento con fichero pequeños
    • Reiser4 más eficiente, reimplementación desde 0
 Soporta muchos más:
    • adfs, affs, autofs, coda, coherent, cramfs, devpts, efs, ext, ext2, ext3, hfs,
      hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, nfs4, ntfs, proc, qnx4, ramfs,
      reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, usbfs, vfat, xenix, xfs,
      xiafs, etc.                                                                       29
4    Administración


 Forma gráfica vs consola
    • Remoto
    • Similar entre distribuciones
    • Automatización
 Desde consola
    • Ficheros de configuración en /etc
    • Ficheros de log en /var/log
    • Usuario vs root: su y sudo
    • Programación en shell: redireccionamientos,
      tuberías, estructuras de programación,
      comandos del sistema.
                                                    30
4    Administración: Gestión de paquetes


 Concepto paquete software
    • Ficheros
      o Código ejecutable
      o Datos: imágenes, sonidos, DB, etc.
    • Metainformación
      o Nombre, descripción, versión, autor, dependencias,
        tamaño, etc.
 Sistema de paquetes
    • Diferentes opciones: RPM, DEB, TARBALL,
      EBUILD, etc.
    • Simplifica gestión del sistema
      o Instalación, eliminación, actualización, dependencias,
        etc.                                                     31
4    Administración: Gestión de paquetes


 RPM (Red Hat Package Manager)
    • Desarrollado por Red Hat
    • Utilizado: Red Hat, Fedore, SuSE, etc.
    • Ficheros:
      <name>-<version>-<release>.<arch>.rpm
    • Base de datos en: /var/lib/rpm
    • Interfaz de bajo nivel: comando rpm
       # rpm ­i fichero.rpm   # rpm ­e paquete
       $ rpm ­qa
    • Interfaces de más alto nivel:
      o up2date, yum, YaST, APT

                                                 32
4    Administración: Gestión de paquetes


 DPKG (Debian PacKaGe)
    • Desarrollado por Debian
    • Utilizado: Debian, Knoppix, Ubuntu, etc.
    • Ficheros:
      <name>_<version-release>_<arch>.deb
    • Base de datos en: /var/lib/dpkg
    • Además de meta-info, tb incluyen scripts
    • Interfaz de bajo nivel: comando dpkg
       # dpkg ­i fichero.deb      # dpkg ­r paquete
       # dpkg ­r –purge paquete   # dpkg­reconfigure paquete
       $ dpkg ­l                  $ dpkg ­L
    • Interfaces de más alto nivel:
      o APT, aptitude, synaptic, adept, etc.                   33
4    Administración: Gestión de paquetes

 APT (Advanced Packaging Tool)
    • Desarrollado por Debian
    • Front-end para dpkg (actualmente tb para otros)
    • Gestiona automáticamente dependencias
    • Fichero de configuración con repositorios:
       /etc/apt/sources.list:
       type url distribution [component1] [componenent2] […]
    • Comandos:
       # apt­get update             # apt­get install paquete
       # apt­get remove paquete     # apt­get –purge remove paquete
       # apt­get upgrade            # apt­get dist­upgrade
       $ apt­cache search patrón    $ apt­cache show paquete
       # aptitude update            # aptitude install paquete
       # aptitude remove paquete    # aptitude purge paquete
       # aptitude safe­upgrade      # aptitude full­upgrade
       $ aptitude search ~dpatrón   $ aptitude show paquete           34
4    Administración: Gestión de paquetes


 TARBALL
    • Formato tradicional de UNIX, extensión *.tar.gz
    • Normalmente las fuentes
    • Más difícil de mantener: instalación,
      dependencias, eliminación, actualización, etc.
    • Consultar ficheros README, INSTALL
    • Por defecto:
       $ ./configure
       $ make
       # make install
       # make uninstall
    • DEB, RPM, etc. suelen partir de un TARBALL
                                                        35
4    Administración: Gestión de usuarios


 Ficheros
    • /etc/passwd (-rw-r--r--)
      root:x:0:0:root:/root:/bin/bash
    • /etc/group (-rw-r--r--)
      audio:x:29:pulse,gorka
    • /etc/shadow (-rw-r-----)
      root:$6$K2H...:14179:0:99999:7:::
    • /etc/gshadow (-rw-r-----)
      audio:*::pulse,gorka
    • /etc/skel/
                                           36
4    Administración: Gestión de usuarios

 Comandos
    • Usuarios
       # useradd            #   userdel
       # adduser            #   deluser
       # usermod            #   chage
       $ passwd             #   passwd
    • Grupos
       # groupadd           # groupdel
       # addgroup           # delgroup
       # groupmod           # adduser usuario grupo
    • Propietarios y permisos
      o chmod (RWX, UGO)
      o chown (usuario.grupo)                         37
4    Administración: Servicios


 Proceso de arranque
    • BIOS (Basic Input/Output System)
      o Permitir arrancar programas desde diferentes medios
      o Funciones básicas de manejo del hardware
    • MBR
      o Primeros 512 bytes, código ejecutable
    • Gestor de arranque
      o Permite elegir entre diferentes SSOO y paso params
      o Ej: LILO, GRUB, etc.
    • Kernel
      o Detecta HW, carga controladores, monta unidades,
        etc.
      o Ejecuta INIT                                          38
4    Administración: Servicios

 Proceso de arranque
    • INIT
      o Primer proceso tras el kernel, modo usuario
      o Arranca terminales
      o Ejecuta todos los programas asociados a un runlevel
      o /etc/inittab
    • RUNLEVEL
      o Número que identifica un grupo de programas
      o Cuando se entra en ese runlevel: se ejecutan los
        programas
      o Cuando se sale del runlevel: se detienen los programas
      o Comandos: runlevel, telinit
      o Runlevels habituales
       0: Halt             1: Single user                     39
       2­5: Multiusuario   6: Reboot
4    Administración: Servicios

 Servicios en UNIX System V
    • Demonios: funcionan en segundo plano
    • Normalmente scripts para iniciar/parar/recargar/etc
       /etc/init.d/demonio start|stop|restart|reload
    • Por cada runlevel, enlaces simbólicos a los scripts
      deseados
       /etc/rcX.d/S11demonio ­> /etc/init.d/demonio
    • Los enlaces simbólicos se ejecutan por orden
      alfabético
      o El número del principio determinará el orden de ejecución
    • Actualmente otras alternativas
      o Arrancan procesos de forma asíncrona
      o Ej.: Upstart, Initng, etc.
                                                              40
4    Administración: Servicios

 Upstart
    • Desarrollado por Canonical
    • Incluido desde Ubuntu 6.10 (2006)
      o Adoptado en Debian, Maemo, ChromeOS, etc.
    • Sistema asíncrono
      o Servicios y eventos
    • Jobs en /etc/init/
      o Ficheros *.conf
      o Sección script/exec, pre-start, post-stop
      o start on y stop on
    • Control de trabajos (initctl)
      o start/stop/restart/reload job
      o initctl list
                                                    41
4    Administración: Red


 Dispositivos/interfaces
    • /dev/ethX, /dev/wlanX
 Comandos
    • ifconfig, iwconfig, ifup, ifdown
    • route
    • dhclient
    • /etc/init.d/networking, /etc/init.d/network-manager
 Ficheros
    • /etc/resolv.conf, /etc/hosts
    • /etc/network/interfaces
 NetworkManager
                                                        42
4    Administración: Logs

 Se guardan en /var/log
    • Sistema
      o syslog, daemon.log, mail.log, kern.log, Xorg.0.log, etc.
    • Aplicaciones
      o apache/error.log, apache/access.log
 Visualización
    • Consola
      o tail, more, less, etc.
    • Gráfica
      o KSystemLog, etc.
 Utilidades
    • syslog
    • dmesg                                                        43
4   Administración: Logs




                           44
4    Administración: Logs

 syslog
    • Comportamiento como en BSD
    • Logs del sistema, del kernel y de las aplicaciones
    • Se puede almacenar en local o en un equipo remoto
    • Agrupados en servicios (mail, kern, auth, etc.) y
      prioridades (info, warning, err, debug, etc.)
    • Configuración en /etc/syslog.conf:
       *.*               ­/var/log/syslog
       mail.err          /var/log/mail.err
       kern.*            @hostname
    • Se guarda un histórico comprimido:
       syslog, syslog.1.gz, syslog.2.gz, ..., syslog.6.gz

 dmesg
    • Muestra el ring buffer del kernel                     45
4    Administración: Tareas Periódicas


 Demonio cron (chronos)
    • /etc/crontab
       $man 5 crontab
        #min   hour   dom   mon   dow   user   command
        17     *      *     *     *     root   run-parts --report /etc/cron.hourly
        25     6      *     *     *     root   run-parts --report /etc/cron.daily
        45     6      *     *     7     root   run-parts --report /etc/cron.weekly
        52     6      1     *     *     root   run-parts --report /etc/cron.monthly

    • Como usuario
       $ crontab -e
       /etc/cron.allow
       /etc/cron.deny

                                                                                      46
4    Administración: Control de Accesos


 Múltiples opciones
    • A nivel de aplicación
      o Configuración del servidor
      o TCP Wrapper
    • A nivel de kernel
      o Firewall con iptables
 TCP Wrapper
    • A través de tcpd (inetd) o usando libwrap
    • /etc/hosts.allow y /etc/host.deny
       in.fingerd: ALL EXCEPT LOCAL
       sshd: 192.168.2.5
    • Páginas manual: hosts_access y hosts_options
                                                     47
4   Administración: Control de Accesos


 Configuración del servidor (ej. apache)
    <Directory ...>
      Order allow, deny
      Allow from all
    </Directory>


 Firewall con iptables
    # iptables --list
    # iptables --policy INPUT DROP
    # iptables --table filter --append INPUT -p icmp -j ACCEPT



                                                                 48
4     Administración: Comandos de Administrador

 Ejecución como root:
    • su vs sudo
 Gestión de usuarios:
    • useradd, userdel, usermod, chage, groupadd, groupdel, groups, etc.
 Cambio permisos:
    • chmod, chown, chattr, etc.
 Configuración de red:
    • ifconfig, iwconfig, iwlist, route, netstat, iptables, etc.
 Gestión paquetes:
    • dpkg, tasksel, rpm, apt-get, aptitude, etc.
 Gestión discos/sistemas de ficheros:
    • fdisk, mkfs, mount, umount, setquota, quota, etc.
 Listado dispositivos:
    • lspci, lsusb, udevinfo, etc.
                                                                           49
4    Administración: Ficheros de Configuración

 Ejecución como root:
    • /etc/sudoers
 Gestión de usuarios:
    • /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow, /etc/skel/
 Cambio permisos:
    • /etc/apparmor.d
 Configuración de red:
    • /etc/host, /etc/resolv.conf, /etc/network/interfaces, /etc/init.d/
 Gestión paquetes:
    • /etc/apt/sources.list
 Gestión discos/sistemas de ficheros:
    • /etc/fstab
 Dispositivos:
    • /dev/, /sys/, /etc/udev/
                                                                           50
Licencia




    Reconocimiento (Attribution): En
    cualquier explotación de la obra autorizada
    por la licencia hará falta reconocer la
    autoría.

    Compartir Igual (Share alike): La
    explotación autorizada incluye la creación
    de obras derivadas siempre que mantengan
    la misma licencia al ser divulgadas.
                                                  51

GNU/Linux

  • 1.
    Departamento de Electrónica y Telecomunicaciones Sistemas Operativos Ingeniería de Telecomunicación 4º curso Tema 2-3 © 2007­2011 Gorka Prieto GNU/Linux Curso 2010 – 2011
  • 2.
    Índice 1.Introducción 2.Distribuciones 3.Arquitectura Kernel Entorno gráfico Sistemas de ficheros 4.Administración Gestión paquetes Gestión de usuarios Servicios Logs del sistema y las aplicaciones Tareas periódicas Control de accesos Comandos/ficheros de administración 2
  • 3.
    1 Introducción  GNU + Linux  Software libre  Multiplataforma, multiproceso, multiusuario, multitarea.  Uso: escritorio, servidor, supercomputadoras (top500), sistemas embebidos, etc.  Apoyo multinacionales: IBM, Sun Microsystems, HP, Novell, etc.  En la administración pública: http://en.wikipedia.org/wiki/Linux_adoption 3
  • 4.
    1 Introducción 4
  • 5.
    1 Introducción  Proyecto GNU • GNU is Not Unix • Objetivo: Sistema operativo completo libre • Iniciado en 1983 por Richard Stallman • Libertades: ejecución, copia, modificación y distribución • Licencia General Pública de GNU (GPL) o Copyleft o Variantes: Gnu Free Documentation License (GFDL), Lesser GPL (LGPL) • En 1985 la Free Software Fundation (FSF) 5 o Para soportar el proyecto GNU
  • 6.
    1 Introducción  Linux • El proyecto GNU: o Editor de textos (Emacs), Compilador (GCC), librerías y utilidades UNIX o Faltaba kernel. GNU/Hurd aún en desarrollo ... • Primera versión del kernel Linux en 1991 • Por Linus Torvalds • Licencia GPL • Núcleo monolítico híbrido o Módulos • Arquitectura discutida por Tanenbaum o Minix vs Linux 6
  • 7.
    1 Introducción  Linux (cont) • Actualmente kernel más portado: o PCs, PDAs, Router, Consolas, MainFrames • Versiones x.y.z, actualmente 2.6 o Par: estable o Impar: desarrollo • Mascota: pingüino Tux 7
  • 8.
    1 Introducción  Hurd • Kernel GNU bajo licencia GPL • Compatible POSIX • Arquitectura microkernel o Actualmente sólo sobre GNU Mach (CMU) o Múltiples servidores simultáneos • Siglas o Hird of Unix-Replacing Daemons (Hurd) o Hurd of Interfaces Representing Depth (Hird) o “Manada de Ñúes” • Otros sistemas UNIX que corren sobre Mach o NEXTSTEP, Mac OS X, MkLinux, etc. 8 o Microkernel y (un único) servidor UNIX
  • 9.
    1 Introducción  Hurd (cont) • Servidores (Debian) o auth, crash, exec, ext2fs, fifo, firmlink, ftpfs, fwd, hostmux, ifsock, init, isofs, magic, new-fifo, nfs, null, pfinet, pflocal, proc, storeio, symlink, term, ufs, usermux. • Limitaciones o Partición máx 2 GB o Drivers correspondientes a la versión 2.0 del kernel Linux o RAM máx 768 MB o No soporte audio, USB, PPP, DHCP, etc. 9
  • 10.
    1 Introducción  GNU + Kernel • GNU/Linux (“Linux”) • GNU/Hurd • GNU/kFreeBSD  Otros SSOO libres • FreeBSD • OpenBSD • etc. 10
  • 11.
    2 Distribuciones  Diferentes organizaciones ofrecen sus distribuciones  “Sabores” de GNU/Linux  Conjunto de aplicaciones  Diferencias: • Sistema de paquetes (deb, rpm, tarballs, etc.) • Política de funcionamiento • Facilidades de administración 11
  • 12.
    2 Distribuciones  Según el sistema de paquetes • Basadas en rpm: RedHat, Fedora, SuSE, Mandrake, YDL, etc. • Basadas en deb: Debian, K/Ubuntu, Knoppix, etc. • Basadas en fuentes: Slackware, SLAX, Gentoo, etc.  Live CD/DVD • Ejecución desde el CD/DVD sin instalar en el HD • Permiten instalarlo posteriormente 12
  • 13.
    2 Distribuciones  Debian • Creada en 1993, actualmente versión 5.0 • Filosofía software libre • Comunidad de desarrolladores y usuarios • Independiente a empresas • Tres ramas de desarrollo o stable o testing o unstable • Sistema APT 13
  • 14.
    2 Distribuciones  RedHat • Creada en 1994, actualmente RHEL 5.5 • Distribución comercial Red Hat • En 2003 separación en: o Red Hat Enterprise Linux (RHEL) Ediciones de servidor y de estación de trabajo o Fedora Core (FC) Comunidad Fedora • Fedora o Fedora Core: hasta FC6 (2006) o Fedora: fusión repositorios Core y Extras o Actualmente Fedora 14 14
  • 15.
    2 Distribuciones  Ubuntu • Creada en 2004 (actual Maverick Meerkat 10.10) • Basada en Debian GNU/Linux o Demasiada burocracia o Actualidad vs estabilidad o Desarrolladores en ambos proyectos • Patrocinada por Canonical Ltd. • Facilidad de uso y de instalación o Eslogan: “Linux for Human Beings” • Lanzamientos regulares: o Cada 6 meses y LTS cada 2 años • Ubuntu (GNOME), Kubuntu (KDE), Xubuntu (XFCE), etc. 15
  • 16.
    2 Distribuciones  Ubuntu • Mark Shuttleworth 16
  • 17.
    3 Arquitectura  Kernel • Núcleo monolítico híbrido (módulos) o Ring 0: kernel, acceso HW o Ring 3: modo usuario, sin privilegios • Arquitectura discutida por Tanenbaum o Minix vs Linux http://www.dina.dk/~abraham/Linus_vs_Tanenbaum.html • Versiones X.Y.Z o Estable o Desarrollo • GUI fuera del kernel 17
  • 18.
    3 Arquitectura 18
  • 19.
    3 Arquitectura 19
  • 20.
    3 Arquitectura  Kernel • Posibilidades de kernel o Stock kernel o Custom Kernel • Recompilar kernel $ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux­2.6.X.tar.bz2 Descomprimir en /usr/src/linux # make menuconfig (o make xconfig) # make # make install # make modules_install 20
  • 21.
    3 Arquitectura: Kernel custom 21
  • 22.
    3 Arquitectura: Kernel custom 22
  • 23.
    3 Arquitectura: Kernel custom 23
  • 24.
    3 Arquitectura  Entorno gráfico • Servidor X o Se encarga de dibujar en pantalla o Puede estar en un equipo diferente o Xfree86, X.org, etc. • Gestor de ventanas o Simplifica la utilización de ventanas o Kwin, Metacity, Beryl/Compiz, etc. • Escritorio o Organiza gráficamente funcionalidades o KDE, GNOME, XFCE, etc. 24
  • 25.
    3 Arquitectura  Organización en directorios / proc/ home/ bin/, sbin/ etc/ root/ boot/ usr/ ... dev/ var/ mnt/ tmp/  “Todo es un fichero” • /dev/  Concepto de montaje 25
  • 26.
    3 Arquitectura  Formatos binarios soportados • Inicialmente a.out (assembler output) • Actualmente ELF (Extensible Linking Format) o Ejecutables, objeto, librerías dinámicas, core dumps, etc. • binfmt_misc o Capacidad del kernel Linux o Permite formatos binarios arbitrarios pasándolos a aplicaciones usuario o Java -> Máquina virtual Java o Ejecutables Win16/32 -> Wine o Ejecutables .NET -> Mono 26
  • 27.
    3 Arquitectura: Sistemas de ficheros  Ext (extended file system) – 1992 • Sistema de ficheros inicial de linux • Creado para solventar limitaciones de minix o Tamaño de partición 2GB o Nombre de ficheros de 255 caracteres  Ext2 – 1993 • Soluciona limitaciones de ext o Nuevas funcionalidades o Tamaño de partición de 4 TB o Nombres de fichero de 255 caracteres • Extensible. Añadidos posteriores: o Atributos extendidos o ACLs de POSIX 27
  • 28.
    3 Arquitectura: Sistemas de ficheros  Ext3 – 2001 • Añadidos o Journalling o Mayor direccionamiento o Crecimiento dinámico del sistema de ficheros • Compatible con ext2 (sin los añadidos) o Convertir un ext2 a un ext3: # tune2fs ­j /dev/hdaX • Desventajas o Defragmentación No extent o Funcionalidades Solo puede ser reparado en modo RO 28
  • 29.
    3 Arquitectura: Sistemas de ficheros  Ext4 – 2006 • Tamaños de 260 bytes • Añade extent para evitar defragmentación • Compatible con ext3 (si no se usa extent)  ReiserFS (Reiser3) – 2001 • Características similares a ext3 • Mejor rendimiento con fichero pequeños • Reiser4 más eficiente, reimplementación desde 0  Soporta muchos más: • adfs, affs, autofs, coda, coherent, cramfs, devpts, efs, ext, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, nfs4, ntfs, proc, qnx4, ramfs, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, usbfs, vfat, xenix, xfs, xiafs, etc. 29
  • 30.
    4 Administración  Forma gráfica vs consola • Remoto • Similar entre distribuciones • Automatización  Desde consola • Ficheros de configuración en /etc • Ficheros de log en /var/log • Usuario vs root: su y sudo • Programación en shell: redireccionamientos, tuberías, estructuras de programación, comandos del sistema. 30
  • 31.
    4 Administración: Gestión de paquetes  Concepto paquete software • Ficheros o Código ejecutable o Datos: imágenes, sonidos, DB, etc. • Metainformación o Nombre, descripción, versión, autor, dependencias, tamaño, etc.  Sistema de paquetes • Diferentes opciones: RPM, DEB, TARBALL, EBUILD, etc. • Simplifica gestión del sistema o Instalación, eliminación, actualización, dependencias, etc. 31
  • 32.
    4 Administración: Gestión de paquetes  RPM (Red Hat Package Manager) • Desarrollado por Red Hat • Utilizado: Red Hat, Fedore, SuSE, etc. • Ficheros: <name>-<version>-<release>.<arch>.rpm • Base de datos en: /var/lib/rpm • Interfaz de bajo nivel: comando rpm # rpm ­i fichero.rpm # rpm ­e paquete $ rpm ­qa • Interfaces de más alto nivel: o up2date, yum, YaST, APT 32
  • 33.
    4 Administración: Gestión de paquetes  DPKG (Debian PacKaGe) • Desarrollado por Debian • Utilizado: Debian, Knoppix, Ubuntu, etc. • Ficheros: <name>_<version-release>_<arch>.deb • Base de datos en: /var/lib/dpkg • Además de meta-info, tb incluyen scripts • Interfaz de bajo nivel: comando dpkg # dpkg ­i fichero.deb # dpkg ­r paquete # dpkg ­r –purge paquete # dpkg­reconfigure paquete $ dpkg ­l $ dpkg ­L • Interfaces de más alto nivel: o APT, aptitude, synaptic, adept, etc. 33
  • 34.
    4 Administración: Gestión de paquetes  APT (Advanced Packaging Tool) • Desarrollado por Debian • Front-end para dpkg (actualmente tb para otros) • Gestiona automáticamente dependencias • Fichero de configuración con repositorios: /etc/apt/sources.list: type url distribution [component1] [componenent2] […] • Comandos: # apt­get update # apt­get install paquete # apt­get remove paquete # apt­get –purge remove paquete # apt­get upgrade # apt­get dist­upgrade $ apt­cache search patrón $ apt­cache show paquete # aptitude update # aptitude install paquete # aptitude remove paquete # aptitude purge paquete # aptitude safe­upgrade # aptitude full­upgrade $ aptitude search ~dpatrón $ aptitude show paquete 34
  • 35.
    4 Administración: Gestión de paquetes  TARBALL • Formato tradicional de UNIX, extensión *.tar.gz • Normalmente las fuentes • Más difícil de mantener: instalación, dependencias, eliminación, actualización, etc. • Consultar ficheros README, INSTALL • Por defecto: $ ./configure $ make # make install # make uninstall • DEB, RPM, etc. suelen partir de un TARBALL 35
  • 36.
    4 Administración: Gestión de usuarios  Ficheros • /etc/passwd (-rw-r--r--) root:x:0:0:root:/root:/bin/bash • /etc/group (-rw-r--r--) audio:x:29:pulse,gorka • /etc/shadow (-rw-r-----) root:$6$K2H...:14179:0:99999:7::: • /etc/gshadow (-rw-r-----) audio:*::pulse,gorka • /etc/skel/ 36
  • 37.
    4 Administración: Gestión de usuarios  Comandos • Usuarios # useradd # userdel # adduser # deluser # usermod # chage $ passwd # passwd • Grupos # groupadd # groupdel # addgroup # delgroup # groupmod # adduser usuario grupo • Propietarios y permisos o chmod (RWX, UGO) o chown (usuario.grupo) 37
  • 38.
    4 Administración: Servicios  Proceso de arranque • BIOS (Basic Input/Output System) o Permitir arrancar programas desde diferentes medios o Funciones básicas de manejo del hardware • MBR o Primeros 512 bytes, código ejecutable • Gestor de arranque o Permite elegir entre diferentes SSOO y paso params o Ej: LILO, GRUB, etc. • Kernel o Detecta HW, carga controladores, monta unidades, etc. o Ejecuta INIT 38
  • 39.
    4 Administración: Servicios  Proceso de arranque • INIT o Primer proceso tras el kernel, modo usuario o Arranca terminales o Ejecuta todos los programas asociados a un runlevel o /etc/inittab • RUNLEVEL o Número que identifica un grupo de programas o Cuando se entra en ese runlevel: se ejecutan los programas o Cuando se sale del runlevel: se detienen los programas o Comandos: runlevel, telinit o Runlevels habituales 0: Halt 1: Single user 39 2­5: Multiusuario 6: Reboot
  • 40.
    4 Administración: Servicios  Servicios en UNIX System V • Demonios: funcionan en segundo plano • Normalmente scripts para iniciar/parar/recargar/etc /etc/init.d/demonio start|stop|restart|reload • Por cada runlevel, enlaces simbólicos a los scripts deseados /etc/rcX.d/S11demonio ­> /etc/init.d/demonio • Los enlaces simbólicos se ejecutan por orden alfabético o El número del principio determinará el orden de ejecución • Actualmente otras alternativas o Arrancan procesos de forma asíncrona o Ej.: Upstart, Initng, etc. 40
  • 41.
    4 Administración: Servicios  Upstart • Desarrollado por Canonical • Incluido desde Ubuntu 6.10 (2006) o Adoptado en Debian, Maemo, ChromeOS, etc. • Sistema asíncrono o Servicios y eventos • Jobs en /etc/init/ o Ficheros *.conf o Sección script/exec, pre-start, post-stop o start on y stop on • Control de trabajos (initctl) o start/stop/restart/reload job o initctl list 41
  • 42.
    4 Administración: Red  Dispositivos/interfaces • /dev/ethX, /dev/wlanX  Comandos • ifconfig, iwconfig, ifup, ifdown • route • dhclient • /etc/init.d/networking, /etc/init.d/network-manager  Ficheros • /etc/resolv.conf, /etc/hosts • /etc/network/interfaces  NetworkManager 42
  • 43.
    4 Administración: Logs  Se guardan en /var/log • Sistema o syslog, daemon.log, mail.log, kern.log, Xorg.0.log, etc. • Aplicaciones o apache/error.log, apache/access.log  Visualización • Consola o tail, more, less, etc. • Gráfica o KSystemLog, etc.  Utilidades • syslog • dmesg 43
  • 44.
    4 Administración: Logs 44
  • 45.
    4 Administración: Logs  syslog • Comportamiento como en BSD • Logs del sistema, del kernel y de las aplicaciones • Se puede almacenar en local o en un equipo remoto • Agrupados en servicios (mail, kern, auth, etc.) y prioridades (info, warning, err, debug, etc.) • Configuración en /etc/syslog.conf: *.* ­/var/log/syslog mail.err /var/log/mail.err kern.* @hostname • Se guarda un histórico comprimido: syslog, syslog.1.gz, syslog.2.gz, ..., syslog.6.gz  dmesg • Muestra el ring buffer del kernel 45
  • 46.
    4 Administración: Tareas Periódicas  Demonio cron (chronos) • /etc/crontab $man 5 crontab #min hour dom mon dow user command 17 * * * * root run-parts --report /etc/cron.hourly 25 6 * * * root run-parts --report /etc/cron.daily 45 6 * * 7 root run-parts --report /etc/cron.weekly 52 6 1 * * root run-parts --report /etc/cron.monthly • Como usuario $ crontab -e /etc/cron.allow /etc/cron.deny 46
  • 47.
    4 Administración: Control de Accesos  Múltiples opciones • A nivel de aplicación o Configuración del servidor o TCP Wrapper • A nivel de kernel o Firewall con iptables  TCP Wrapper • A través de tcpd (inetd) o usando libwrap • /etc/hosts.allow y /etc/host.deny in.fingerd: ALL EXCEPT LOCAL sshd: 192.168.2.5 • Páginas manual: hosts_access y hosts_options 47
  • 48.
    4 Administración: Control de Accesos  Configuración del servidor (ej. apache) <Directory ...> Order allow, deny Allow from all </Directory>  Firewall con iptables # iptables --list # iptables --policy INPUT DROP # iptables --table filter --append INPUT -p icmp -j ACCEPT 48
  • 49.
    4 Administración: Comandos de Administrador  Ejecución como root: • su vs sudo  Gestión de usuarios: • useradd, userdel, usermod, chage, groupadd, groupdel, groups, etc.  Cambio permisos: • chmod, chown, chattr, etc.  Configuración de red: • ifconfig, iwconfig, iwlist, route, netstat, iptables, etc.  Gestión paquetes: • dpkg, tasksel, rpm, apt-get, aptitude, etc.  Gestión discos/sistemas de ficheros: • fdisk, mkfs, mount, umount, setquota, quota, etc.  Listado dispositivos: • lspci, lsusb, udevinfo, etc. 49
  • 50.
    4 Administración: Ficheros de Configuración  Ejecución como root: • /etc/sudoers  Gestión de usuarios: • /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow, /etc/skel/  Cambio permisos: • /etc/apparmor.d  Configuración de red: • /etc/host, /etc/resolv.conf, /etc/network/interfaces, /etc/init.d/  Gestión paquetes: • /etc/apt/sources.list  Gestión discos/sistemas de ficheros: • /etc/fstab  Dispositivos: • /dev/, /sys/, /etc/udev/ 50
  • 51.
    Licencia Reconocimiento (Attribution): En cualquier explotación de la obra autorizada por la licencia hará falta reconocer la autoría. Compartir Igual (Share alike): La explotación autorizada incluye la creación de obras derivadas siempre que mantengan la misma licencia al ser divulgadas. 51