Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Guía de Conceptos
Unidad IV
Sistemas Distribuidos – Unidad IV
Contenido
INTRODUCCIÓN ................................................................................................................................... 2
FUNDAMENTOS DEL SISTEMA OPERATIVO LINUX ................................................................................... 3
EL PROYECTO GNU ....................................................................................................................... 3
FREE SOFTWARE FOUNDATION ....................................................................................................... 3
LICENCIA GPL ................................................................................................................................ 4
LICENCIA LGPL .............................................................................................................................. 4
OTROS TIPOS DE LICENCIAS ........................................................................................................ 4
EL PROYECTO GNU/LINUX ............................................................................................................. 5
DISTRIBUCIONES BASES Y MÁS CONOCIDAS.................................................................................. 5
EL KERNEL LINUX ............................................................................................................................... 7
¿QUÉ ES EL SOFTWARE LIBRE? ...................................................................................................... 7
¿QUÉ ES OPEN SOURCE?............................................................................................................... 8
OTROS TIPOS DE SOFTWARE ............................................................................................................... 9
FREEWARE..................................................................................................................................... 9
SHAREWARE .................................................................................................................................. 9
CARACTERÍSTICAS DEL SISTEMA OPERATIVO LINUX ............................................................................ 10
ESTRUCTURA DEL SISTEMA OPERATIVO LINUX ............................................................................... 11
EL SISTEMA DE ARCHIVOS ................................................................................................................. 11
NOCIONES BÁSICAS ...................................................................................................................... 11
SOPORTE DE ARCHIVOS ................................................................................................................ 13
ESTRUCTURA DE LOS DIRECTORIOS ............................................................................................... 13
TIPOS DE ARCHIVOS...................................................................................................................... 14
PERMISOS DE ACCESO A ARCHIVOS Y DIRECTORIOS ........................................................................... 15
SEGURIDAD DE ARCHIVOS EN LINUX .............................................................................................. 15
TIPOS DE PERMISOS DE ARCHIVOS ................................................................................................. 15
GESTIÓN DE PROCESOS .................................................................................................................... 16
EL ÁRBOL DE PROCESOS ............................................................................................................... 16
DIAGRAMA DE TRANSICIÓN DE ESTADOS DE PROCESOS ................................................................. 16
PLANIFICACIÓN DE PROCESOS ...................................................................................................... 17
OPERACIÓN ............................................................................................................................. 18
COMANDOS BÁSICOS ................................................................................................................ 18
GESTIÓN DE MEMORIA ...................................................................................................................... 19
SEGURIDAD .................................................................................................................................. 19
ADMINISTRACIÓN .......................................................................................................................... 20
USUARIOS Y GRUPOS .................................................................................................................... 21
EL USUARIO ROOT Y OTROS USUARIOS DEL SISTEMA....................................................................... 21
PROGRAMACIÓN ........................................................................................................................... 22
BIBLIOGRAFÍA ................................................................................................................................... 23
Introducción
A lo largo de la Unidad 4 nos adentraremos a conocer el Sistema Operativo Linux sus
características principales, las diversas distribuciones que existen.
Posteriormente veremos la estructura del Sistema Operativo Linux, su sistema de archivos y
la gestión de procesos.
A lo largo de la unidad profundizaremos sobre estos y otros conceptos más para entender
mejor las particularidades de Linux, finalmente se realizarán lecturas complementarias para
ayudar a realizar las actividades individuales y en el foro relacionadas al Sistema Operativo
Linux.
Etimología
GNU es un acrónimo recursivo que significa GNU No es Unix (GNU is Not Unix). En español,
se recomienda pronunciarlo ñu como el antílope africano, por ello, el término
mayoritariamente se deletrea (GNU) para su mejor comprensión.
Licencia GPL
La Licencia Pública General de GNU o más conocida por su acrónimo en inglés GPL (General
Public License) , esta es una licencia creada por la Free Software Free as in Freedom
Foundation a mediados de los años 80, y está orientada principalmente a proteger la libre
distribución, modificación y uso del software. Su propósito es declarar que el software cubierto
por esta licencia es software libre y protegerlo de intentos de apropiación que restrinjan esas
libertades a los usuarios.
I LUSTRACIÓN 2: G ENERAL P UBLIC L ICENSE . F REE S OFTWARE F OUNDATION
Licencia LGPL
La Licencia Pública General Reducida de GNU (Lesser General Public License) es una
licencia de software creada por la Free Software Foundation. Los contratos de licencia de la
mayor parte del software están diseñados para jugar con su libertad de compartir y modificar
dicho software. En contraste, la "GNU General Public License" pretende garantizar su libertad
de compartir ymodificar el software "libre", esto es para asegurar que el software es libre para
todos sus usuarios. Esta licencia pública general se aplica a la mayoría del software de la
"FSF" o "Free Software Foundation" (Fundación para el Software Libre) y a cualquier otro
programa de software cuyos autores así lo establecen.
Algunos otros programas de software de la Free Software Foundation están cubiertos por la
"LGPL Lesser General Public License" (Licencia Pública General Reducida), la cual puede
aplicar a sus programas también.
Esta licencia se aplica a cualquier programa o trabajo que contenga una nota puesta por el
propietario de los derechos del trabajo estableciendo que su trabajo puede ser distribuido
bajo los términos de esta "GPL General Public License".
I LUSTRACIÓN 3: L ESSER G ENERAL P UBLIC L ICENSE . F REE S OFTWARE F OUNDATION
El Proyecto GNU/Linux
La historia de Linux está fuertemente vinculada a la del proyecto GNU. El proyecto GNU,
iniciado en 1983, tiene como objetivo el desarrollo de un sistema Unix completo compuesto
enteramente de software libre. Hacia 1991, cuando la primera versión del núcleo Linux fue
liberada, el proyecto GNU había producido varios de los componentes del sistema operativo,
incluyendo un intérprete de comandos, una biblioteca C y un compilador, pero aún no contaba
con el núcleo que permitiera completar el sistema operativo.
I LUSTRACIÓN 4: L INUX
Entonces, el núcleo creado por Linus Torvalds, quien se encontraba por entonces estudiando
en la Universidad de Helsinki, llenó el hueco final que el sistema operativo GNU exigía.
Subsecuentemente, miles de programadores voluntarios alrededor del mundo han participado
en el proyecto, mejorándolo continuamente y agregando más líneas al código original.
Linux se refiere estrictamente al núcleo Linux, pero es comúnmente utilizado para describir al
sistema operativo tipo Unix, que utiliza primordialmente filosofía y metodologías libres
(también conocido como GNU/Linux) y que está formado mediante la combinación del núcleo
Linux con las bibliotecas y herramientas del proyecto GNU y de muchos otros
proyectos/grupos de software (libre o no libre).
Las variantes de estos sistemas Linux se denominan "distribuciones". Algunas son gratuitas
y otras de subscripción, algunas insertan software no libre y otras sólo software libre.
Red Hat
Es una empresa dedicada al software libre, y además es un importante proveedor, distribuidor
y promotor de Linux.
Red Hat fue fundada en 1995 y tiene su sede en Raleigh, Carolina del Norte con oficinas en
todo el mundo.
La compañía es mejor conocida por su sistema operativo Red Hat Enterprise Linux.
I LUSTRACIÓN 6: R ED H AT
Debían
Es una comunidad conformada por desarrolladores y usuarios, que pretende crear y mantener
un sistema operativo GNU basado en software libre pre compilado y empaquetado, en un
formato sencillo para múltiples arquitecturas y en varios núcleos.
Debían nace como una apuesta por separar en sus versiones el software libre del software
no libre.
El modelo de desarrollo del proyecto es ajeno a motivos empresariales o comerciales, siendo
llevado adelante por los propios usuarios, aunque cuenta con el apoyo de varias empresas
en forma de infraestructuras. Debían no vende directamente su software, lo pone a
disposición de cualquiera en la Internet, aunque sí permite a personas o empresas distribuir
comercialmente este software mientras se respete su licencia.
I LUSTRACIÓN 7: D EBIAN
Ubuntu
Es una distribución Linux que ofrece un sistema operativo enfocado a computadoras de
escritorio, aunque también proporciona soporte para servidores. Es una de las más
importantes distribuciones de GNU/Linux a nivel mundial.
Basada en Debían GNU/Linux, Ubuntu concentra su objetivo en la facilidad y libertad de uso,
la facilidad de instalación y los lanzamientos regulares (cada 6 meses). Ubuntu es patrocinado
por Canonical Ltd., una empresa privada fundada y financiada por el empresario sudafricano
Mark. El nombre de la distribución proviene del concepto zulú y xhosa de ubuntu, que significa
"humanidad hacia otros" o "yo soy porque nosotros somos".
OpenSuse
Es el nombre de la distribución y proyecto libre auspiciado por Novell y AMD para el desarrollo
y mantenimiento de un sistema operativo basado en Linux. Luego de adquirir SUSE Linux en
enero de 2004, Novell decidió lanzar SUSE Linux Professional como un proyecto
completamente de código abierto, involucrando a la comunidad en el proceso de desarrollo.
I LUSTRACIÓN 8: O PEN S USE
El Kernel Linux
Actualmente Linux es un núcleo monolítico híbrido. Los controladores de dispositivos y las
extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como
"anillo 0”, con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de
usuario. A diferencia de los núcleos monolíticos tradicionales, los controladores de
dispositivos y las extensiones al sistema operativo se pueden cargar y descargar fácilmente
como módulos, mientras el sistema continúa funcionando sin interrupciones.
También, a diferencia de los núcleos monolíticos tradicionales, los controladores pueden ser
prevolcados (detenidos momentáneamente por actividades más importantes) bajo ciertas
condiciones. Esta habilidad fue agregada para gestionar correctamente interrupciones de
hardware, y para mejorar el soporte de Multiprocesamiento Simétrico.
Un sistema operativo con núcleo monolítico concentra todas las funcionalidades posibles
(planificación, sistema de archivos, redes, controladores de dispositivos, gestión de memoria,
etc.) dentro de un gran programa. El mismo puede tener un tamaño considerable, y deberá
ser recompilado por completo al añadir una nueva funcionalidad.
Todos los componentes funcionales del núcleo tienen acceso a todas sus estructuras de
datos internas y a sus rutinas. Un error en una rutina puede propagarse a todo el núcleo.
Todos sus componentes se encuentran integrados en un único programa que ejecuta en un
único espacio de direcciones. En este tipo de sistemas, todas las funciones que ofrece el
sistema operativo se ejecutan en modo supervisor.
El hecho de que Linux no fuera desarrollado siguiendo el diseño de un micronúcleo (diseño
que, en aquella época, era considerado el más apropiado para un núcleo por muchos teóricos
informáticos) fue asunto de una famosa y acalorada discusión entre Linus Torvalds y Andrew
Tanenbaum.
Otro de los requisitos fundamentales para considerar a una aplicación como Software Libre
es el acceso al código fuente de la aplicación.
Diferencias
El movimiento del Software Libre hace hincapié en cuestiones éticas y morales relacionadas
con el software, viendo el aspecto técnico como secundario, a diferencia del movimiento Open
Source que lo establece como prioritario, siendo esta su diferencia más grande.
Otra de sus diferencias, quizá la más importante para lo que al ámbito comercial concierne,
es que con una aplicación desarrollada bajo los estándares del Software Libre puedes obtener
remuneración por conceptos de desarrollo, soporte y puesta a punto siempre y cuando
entregues los códigos fuentes, a diferencia del movimiento Open Source que no te obliga a
hacerlo. Todos los productos desarrollados en Software Libre así como sus derivados siempre
deben ser libres, a diferencia de Open Source.
Básicamente el movimiento de Software Libre tiene diferencias de índole filosóficas con el
Open Source, sin embargo, ambos han permitido el desarrollo de software de gran calidad y
con muchísimas más libertades de las que el software privativo nunca lo otorgaría.
Shareware
Se denomina shareware a una modalidad de distribución de software el cual permite al
usuario evaluar de forma gratuita el producto, por un lapso de tiempo, aunque también las
limitaciones pueden estar en algunas de las formas de uso o las capacidades finales.
Para adquirir una licencia de software que permite el uso del software de manera completa
se requiere de un pago.
No debe confundirse el shareware con el sistema freeware que indica que un software es
totalmente gratuito, si bien es cierto que el primero se inspira y tiene sus raíces en el segundo.
Tampoco debe confundirse el hecho de que un software sea shareware o freeware con el
hecho de que sea de código abierto, ya que esto último depende de la disponibilidad o no del
código fuente.
Ventajas del Open Source contra el Freeware, Shareware y Software Privativo
- Flexibilidad. Si el código fuente está disponible, los desarrolladores pueden aprender
y modificar los programas a su antojo, adaptándolo para realizar tareas específicas.
Además, se produce un flujo constante de ideas que mejora la calidad de los
programas
- Fiabilidad y seguridad. Con varios programadores a la vez mirándose el mismo
trabajo, los errores se detectan y corrigen antes, por lo que el producto resultante es
más fiable y eficaz que el comercial
- Rapidez de desarrollo. Las actualizaciones y ajustes se realizan a través de una
comunicación constante vía Internet. Menores tiempos de desarrollo debido a la
amplia disponibilidad de herramientas y librerías
- Relación con el usuario. El programador se acerca mucho más a las necesidades
reales de su cliente, y puede crear un producto específico para él
El sistema de archivos
Nociones básicas
Una de las grandes diferencias de GNU/Linux y otros sistemas operativos es que todo es
considerado un archivo. El kernel es un conjunto de archivos, las librerías son archivos, el
directorio es un archivo, el disco duro es un archivo. Como los dispositivos de
almacenamientos son vistos como un archivo no necesita letras para identificarlos, esto
permite una gran flexibilidad y modularidad, permitiendo incluir discos y archivos desde otros
sistemas. Este método de direccionar todo dentro de la jerarquía de sistema de archivos es
similar a las versiones de Unix comerciales que manejan directorios, memoria y discos. Con
algunas excepciones, aprender a navegar dentro del sistema de archivos GNU/Linux prepara
al usuario para usar un sistema Unix.
Antes de que un sistema de archivos sea accedido en GNU/Linux, debe ser montado en la
estructura del sistema de archivos. Se usa un directorio como punto de montaje de estos
discos y particiones para montar sus sistemas de archivos. Dentro de la jerarquía del sistema
de archivos pueden ser mapeados diferentes discos o particiones usando el comando mount.
La jerarquía del sistema de archivos GNU/Linux se asemeja a la estructura de la raíz de un
árbol. Empieza con un directorio singular (inteligentemente nombrado root o directorio raíz) y
se ramifica. Todos los archivos en un sistema GNU/Linux son accedidos a través de la
estructura del sistema de archivos.
El sistema de archivos Linux está caracterizado por:
- Una estructura jerárquica
- Un tratamiento consistente de la información de los archivos
- Protección de los archivos
Este estándar del sistema de archivos GNU/Linux sigue el mismo principio básico que la
mayoría de los sistemas de archivos Unix. Sin embargo, este estándar no intenta concordar
en cada aspecto posible con alguna implementación particular del sistema Unix. De cualquier
forma, muchos de los aspectos de este estándar están basados en ideas encontradas en
Unix y sistemas similares a Unix.
La información compartible es aquella que puede ser compartida entre varias máquinas
diferentes; la no compartible es aquella que debe ser local a una máquina particular. Por
ejemplo, los directorios /home de los usuarios son compartibles pero los archivos de bloqueo
de dispositivo (lock files) son no compartibles.
La información estática incluye binarios, librerías, documentación y todo aquello que no
cambia sin la intervención del administrador del sistema. La información variable es todo lo
que cambia sin la intervención del administrador.
Conocer estos principios básicos le ayudará a entender la estructura de cualquier sistema de
archivos bien planificado.
La distinción entre información compartible y no compartible es necesaria por varias razones:
- En un ambiente de red, existe una buena cantidad de información que se puede
compartir entre diferentes máquinas para ahorrar espacio y facilitar la tarea de
administración
- En un ambiente de red, ciertos archivos contienen información específica a una sola
máquina, por tanto, estos sistemas de archivos no pueden ser compartidos (sin tomar
medidas especiales)
- Las implementaciones de facto del sistema de archivos no permiten que la jerarquía
/usr fuera montada sólo-lectura, porque contiene archivos y directorios que
necesitaban ser escritos muy frecuentemente. Éste es un factor que debe atacarse
cuando algunas partes de /usr se comparten en una red, o se montan sólo-lectura
debido a otras consideraciones tales como la seguridad.
Soporte de archivos
Linux soporta gran variedad de sistemas de archivos, desde sistemas basados en discos,
como pueden ser ext2, ext3, ReiserFS, XFS, JFS, UFS, ISO9660, FAT, FAT32 o NTFS, a
sistemas de archivos que sirven para comunicar equipos en la red de diferentes sistemas
operativos, como NFS (utilizado para compartir recursos entre equipos Linux) o SMB (para
compartir recursos entre máquinas Linux y Windows).
Los sistemas de archivos indican el modo en que se gestionan los archivos dentro de las
particiones. Según su complejidad, tienen características como previsión de apagones,
posibilidad de recuperar datos, indexación para búsquedas rápidas, reducción de la
fragmentación para agilizar la lectura de los datos, etc.
A continuación, se enumeran los más representativos:
• ext2: hasta hace poco era el sistema estándar de Linux. Tiene una fragmentación muy
baja, aunque es algo lento manejando archivos de gran tamaño. Fue la continuación
del sistema de archivos ext, implementado en 1992 e integrado en Linux 0.96
• ext3: es la versión mejorada de ext2, con previsión de pérdida de datos por fallos del
disco o apagones. En contraprestación, es totalmente imposible recuperar datos
borrados. Es compatible con el sistema de archivos ext2. Actualmente es el más
difundido dentro de la comunidad GNU/Linux y es considerado el estándar
• ext4: Es la última versión de la familia de sistemas de archivos ext. Sus principales
ventajas radican en su eficiencia (menor uso de CPU, mejoras en la velocidad de
lectura y escritura) y en la ampliación de los límites de tamaño de los archivos, ahora
de hasta 16TB, y del sistema de archivos, que puede llegar a los 1024PB (PetaBytes)
• ReiserFS: es el sistema de archivos de última generación para Linux. Organiza los
archivos de tal modo que se agilizan mucho las operaciones con estos. El problema
de ser tan actual es que muchas herramientas (por ejemplo, para recuperar datos) no
lo soportan
• swap: es el sistema de archivos para la partición de intercambio de Linux. Todos los
sistemas Linux necesitan una partición de este tipo para cargar los programas y no
saturar la memoria RAM cuando se excede su capacidad. En Windows, esto se hace
con el archivo pagefile.sys en la misma partición de trabajo, con los problemas que
esto conlleva.
Además de estos sistemas de archivos, Linux también ofrece soporte para sistemas de
archivos de Windows, como FAT, FAT32 y NTFS. Tanto para FAT como para FAT32, Linux
tiene soporte completo y estable de escritura y lectura, mientras que, para NTFS, y con las
últimas versiones del kernel, sólo se puede acceder de manera estable en modo lectura.
En la siguiente tabla se puede observar los directorios principales del sistema Linux junto con
su descripción:
T ABLA 1: D IRECTORIOS PRINCIPALES DEL SISTEMA OPERATIVO
DIRECTORIO DESCRIPCIÓN
/ Este es el directorio principal, la raíz del sistema
/bin En este directorio podemos encontrar los archivos correspondientes a los
comandos del sistema estándar.
/boot En este directorio se encuentran los archivos necesarios para el inicio
del sistema
/dev Aquí se encuentran los archivos representativos a los diferentes
dispositivos del sistema
/etc Aquí se encuentran los archivos y scripts de configuración. Todos los
parámetros y programas que se ejecutan al inicio del sistema están
definidos en archivos contenidos en este directorio
/home Dentro de este directorio se almacenan todos los subdirectorios
correspondientes a los diferentes usuarios regulares
/lib Acá se pueden encontrar las librerías de programación para el
desarrollo de aplicaciones de Linux
/mnt Este directorio es utilizado para el montado de sus unidades lógicas
/root El directorio /home del administrador del sistema
/sbin Más comandos del sistema, aquí generalmente están relacionadascon la
administración del mismo
/usr Este es uno de los directorios más grandes. Acá se almacenan
programas, librerías y documentación, entre otras cosas
/var Aquí se guarda información del sistema. Puede ser interesante echaruna
mirada al contenido de sus archivos
/opt Para colocar software que no fue incluida en el sistema operativo
/tmp Contiene archivos temporales del sistema
Tipos de archivos
En Linux todo está representado por medio de archivos, inclusive ciertos dispositivos del
sistema, como discos, unidades de DVD y puertos de entrada y salida. Un directorio es un
archivo.
- Especiales: son aquellos que proveen un interfaz uniforme entre los programas y la
Entrada/Salida al hardware de la computadora
Clasificación de archivos
- Archivo regular (-): archivos comunes del sistema operativo (texto), tipo ASCII,
binario
- Directorios (d): archivos contenedores de otros archivos
- Enlaces (l): archivos que referencian a otros archivos
- Tuberías (p): archivos que permiten el intercambio de información entre procesos
- Especial de bloques (b): permiten el acceso a dispositivos que manejan la
Entrada/Salida de la información por bloques y de forma aleatoria, como los discos
duros
- Especial de carácter (c): permiten el acceso a dispositivos que manejan la
Entrada/Salida de la información en forma secuencial y por carácter, como las
terminales, teclado y mouse
- Archivos socket (s): archivos relacionados a una conexión de red.
Gestión de procesos
Linux tiene dos algoritmos de planificación de procesos. Uno de ellos es un algoritmo de
tiempo compartido para la planificación apropiativa y equitativa entre múltiples procesos del
tipo normales; el otro está diseñado para tareas en tiempo real, en la que las propiedades
absolutas son más importantes que la equidad.
El árbol de procesos
Al igual que con los archivos, todos los procesos que corren en un sistema GNU/Linux están
organizados en forma de árbol. La raíz de este árbol es el proceso init.
Cada proceso tiene un número (su PID, Process ID, Identificador de proceso), junto con el
número de su proceso padre (PPID, Parent Process ID, Identificador del proceso padre).
El PID del proceso init es 1, y también su PPID porque init es su propio padre.
(Stallings, 2005)
Planificación de Procesos
Es el componente del sistema operativo encargado de la planificación. La necesidad de
algoritmos de planificación surgió con la aparición de sistemas operativos multitareas.
La planificación es el método mediante el cual los hilos, los procesos o los flujos de datos
tienen acceso a los recursos; por ejemplo: tiempo de procesador, ancho de banda en la
comunicación; entre otros.
Desde la versión 2.6.23 el sistema operativo Linux utiliza el Planificador Completamente Justo
(Completely Fair Scheduler - CFS)
Operación
La operación del sistema operativo se realiza mediante comandos que son interpretados por
el BASH Shell.
Comandos básicos
A continuación, se lista en la siguiente tabla, los comandos más utilizados para los archivos,
los directorios, los procesos, los usuarios y los grupos de usuarios.
T ABLA 2: C OMANDOS BASICOS DE ARCHIVOS , DIRECTORIOS , PROCESOS , USUARIOS Y DE GRUPOS
ARCHIVOS DESCRIPCIÓN
touch Crear un archivo de texto vacío
rm Eliminar archivos
cp Copiar archivos
mv Renombrar o mover archivos
cat Visualizar contenido de archivos sin formato
more Visualizar contenido de archivos sin paginar
less Visualizar contenido de archivos con paginación
chmod Cambiar permisos de atributos de archivos
gzip Comprimir archivos
tar Empaquetar archivos
DIRECTORIOS
cd Cambiar de directorio
ls Listar directorios
pwd Ver directorios de trabajo
mkdir Crear directorios
rmdir Eliminar directorios
PROCESOS
ps Ver estado de procesos
pstree Ver estado de procesos en forma de árbol
fg Traer proceso a primer plano
bg Enviar procesos a segundo plano
jobs Ver procesos parados
kill Matar procesos (opción 9)
USUARIOS
useradd Crear usuarios
userdel Eliminar usuarios
finger Buscar usuarios
chown Cambiar propietarios de archivos
passwd Asignar contraseñas a usuarios
GRUPOS DE USUARIOS
groupadd Crear grupos de usuarios
groupdel Eliminar grupos de usuarios
chgrp Cambiar grupos de archivos
Gestión de memoria
Linux comparte muchas de las características de los esquemas de gestión de memoria de
otras implementaciones Unix, pero tiene sus características propias y únicas, aunque hay que
destacar que el esquema de gestión de memoria de Linux es bastante complejo.
La gestión de la memoria en Linux tiene dos componentes. El primero se encarga de la
asignación de la memoria física: páginas, grupos de páginas y pequeños bloques de memoria.
El segundo gestiona la memoria virtual, que es la memoria mapeada sobre el espacio de
direcciones de los procesos que se están ejecutando.
El sistema de memoria virtual de Linux es responsable de mantener el espacio de direcciones
visible para cada proceso. Este sistema crea páginas de memoria virtual bajo demanda y
gestiona la carga de dichas páginas desde el disco o la
escritura de esas páginas en el espacio de intercambio del disco, según sea necesario.
El gestor de memoria virtual mantiene dos vistas separadas del espacio de direcciones de un
proceso: una como conjunto de regiones separadas y otra como conjunto de páginas.
Linux tiene un sistema de memoria que incluye todas las características habituales en los
sistemas modernos y cuyos aspectos específicos son:
- Se utiliza un modelo de memoria independiente del procesador. Utiliza un esquema
de paginación con tres niveles. Existe una capa de software de bajo nivel que se
encarga de adaptar este modelo abstracto al hardware de gestión de memoria real
- Permite utilizar tanto dispositivos como archivos para soporte de la memoria
secundaria
- Se utiliza una versión modificada del algoritmo del reloj como algoritmo de reemplazo
- Gestiona la memoria dinámica del propio sistema operativo usando un algoritmo
inspirado en el método de buddy (algoritmo de los colegas).
Seguridad
El modelo de seguridad de Linux está bastante relacionado con los mecanismos de seguridad
de Unix.
Los problemas relativos a la seguridad pueden clasificarse en dos grupos:
1) Autenticación: asegurarse de que nadie pueda acceder al sistema sin demostrar
primero que tiene los correspondientes derechos de entrada.
2) Control de acceso: proporcionar un mecanismo para controlar si un usuario tiene
derecho de acceso a un cierto objeto e impedir el acceso a los objetos según sea
necesario.
Administración
Un sistema Linux debe tener al menos una persona encargada como administrador de
sistemas para manejarlo y explotarlo en rendimiento. El administrador de sistemas es el
responsable de asegurarse que todo el sistema funcione correctamente. Éste sabrá a quién
acudir en caso que los problemas no puedan ser resueltos localmente y como proveer
facilidades en la adquisición de hardware y software a los usuarios actuales y nuevos.
El sistema Linux requiere de una configuración inicial y continua atención de modo a
garantizar efectividad, confiabilidad, eficiencia para todos los usuarios. El administrador de
sistemas es la persona responsable de atender las necesidades del sistema operativo. Como
siempre, aquella persona es responsable de una gran variedad de distintas tareas.
Todos los sistemas Unix son diferentes de una manera u otra, y cada uno de ellos es diferente
de acuerdo a la manera en que debe ser administrado. Linux no es la excepción. Las tareas
administrativas varían en base a la cantidad de usuarios que se maneja, los tipos de
periféricos (impresoras, unidades de respaldo de archivos, y otros) conectados a la
computadora, conexiones de red y el nivel de seguridad requerido.
Un administrador de sistemas, sólo o con un equipo técnico, debe proporcionar un seguro,
eficiente y robusto ambiente para los usuarios del sistema. El administrador el poder y la
responsabilidad de estabilizar y mantener un sistema que provea servicios de manera efectiva
y dependiente. En un ambiente multiusuario, existe un ambiente de competitividad y
prioridades. El administrador implementa el poder y la responsabilidad necesaria para
garantizar el buen funcionamiento de todo el sistema.
La delegación de tareas administrativas varía de sistema en sistema. En un sistema grande,
las tareas administrativas pueden dividirse entre muchas personas. Por lo contrario, algunos
sistemas pequeños no requieren de un administrador de tiempo completo; normalmente un
sistema simple es designado a un usuario que realiza el papel de administrador. Si trabaja en
un ambiente de redes, su sistema debe ser administrado a través de la red por un
administrador de redes.
Cada sistema Linux posee un usuario que puede ejecutar cualquier operación en la
computadora. Este usuario es llamado el superusuario y posee un nombre de entrada
especial llamado root. El directorio de trabajo del usuario root, cuand
El administrador del sistema ingresa como el superusuario para ejecutar tareas que requieren
especiales privilegios de acceso. Para un sistema de funcionamiento normal, el administrador
ingresa como un usuario cualquiera. El nombre de ingreso del superusuario (root) es utilizado
únicamente para casos muy especiales. El número de usuarios que pueden ingresar como
root deben ser el mínimo posible (no más de tres).
Cuando cualquier persona ingresa al sistema como root, la misma es un superusuario y posee
absoluto poder sobre el sistema.
Con este privilegio, el superusuario puede cambiar las propiedades de cualquier archivo,
detener o reiniciar el sistema, crear copias de seguridad de los archivos y ejecutar muchas
otras tareas más.
El administrador debe ser consciente de muchos aspectos técnicos del sistema informático.
Además, debe preocuparse de la necesidad de los usuarios, como bien, es una tarea primaria
del sistema. Cualquier sistema informático tiene recursos limitados, y por consiguiente
políticas de uso que deben ser establecidas y respetadas. De tal manera, el administrador
debe implementar una política fuerte se seguridad, esto como un rol técnico.
Estas políticas y roles, combinadas con el poder de ejecutar cualquier posible acción, requiere
mucha responsabilidad, habilidad, y una persona diplomática cumpliendo el rol de
administrador.
La descripción del trabajo preciso del administrador a menudo depende de una organización
local. Como administrador de sistemas, se encontraría envuelto en una amplia variedad de
actividades, desde establecer políticas para instalación de software hasta mover muebles y
equipos. Sin embargo, todos los administradores de sistemas deben ejecutar o manejar un
número de tareas, como, por ejemplo:
- Mantenimiento de usuarios: agregar, borrar, modificar permisos y privilegios de los
usuarios
- Configuración de dispositivos: mantener disponibles y compartidos impresoras,
terminales, unidades de respaldos de archivos, etc.
- Realización de copias de seguridad: periódicamente, crear y guardar copias de
seguridad para una posible restauración en el caso de pérdida o daño de los archivos
del sistema
- Apagar el sistema: apagar el sistema de una manera prolija y ordenada a modo de
evitar inconsistencias en el sistema de archivos
- Entrenamiento a usuarios: proveer u obtener entrenamiento para usuarios de manera
a que puedan utilizar el sistema efectiva y eficientemente
- Seguridad del sistema: mantener alejados a aquellos usuarios que poseen malas
intenciones cuyas acciones pueden ser perjudiciales
- Registrar cambios del sistema: mantener un libro de los registros de cualquier evento
significativo que concierne al sistema
- Asesorar a los usuarios: actuar como el "experto de área” de modo a poder asistir a
usuarios comunes.
Usuarios y grupos
El Linux es un sistema operativo multiusuario. Cada usuario debe tener un login para iniciar
sesión en el sistema y pertenece a uno o más grupos. Los grupos permiten organizar usuarios
de funciones o características similares de tal modo que éstos puedan compartir archivos,
hacer más fácil la administración de la seguridad y configuración restricciones del sistema.
Cada usuario y grupo tiene un identificador numérico (ID) que es utilizado por el sistema para
diferenciar a los usuarios, conocidos como UID y GID. El sistema no reconoce diferencia entre
los usuarios según el nombre del usuario, por lo tanto, si dos usuarios con nombres distintos
tienen el mismo ID, el sistema Linux no podrá diferenciar quién es quién.
Los usuarios regulares tienen privilegios necesarios para realizar las tareas normales en
Linux, como guardar archivos en su directorio personal, usar procesadores de texto,
navegadores, etc. No pueden realizar la configuración del equipo o instalación de software a
menos que el usuario root explícitamente lo permita.
Existen servicios como samba, apache, mail, proxy, impresión, etc., que tienen su propia
cuenta de usuario de servicio. Estas cuentas existen para permitir el mantenimiento a estos
programas.
Programación
El intérprete de comandos BASH
El BASH Shell (GNU Bourne-Again Shell) es un intérprete de comandos que ejecuta las
órdenes leídas desde la entrada estándar o desde un archivo y permite la creación de scripts.
Un script es un archivo que contiene comandos BASH ejecutables.
Las variables de entorno son variables que se almacenan en memoria durante la ejecución
del BASH Shell.
Variables de entorno
Las variables de entorno principales son:
- $HOME: esta variable de entorno contiene una cadena de caracteres que representa
su directorio personal
- $PATH: esta variable contiene la lista de todos los directorios en los cuales el Shell
busca los ejecutables cuando se ingresa un comando
- $USER: esta variable contiene una cadena que representa su nombre de conexión
- $UID: contiene el identificador del usuario
- $PS1: contiene la definición de su prompt
- $PS2: contiene la definición de su prompt secundario
Bibliografía
- Comer, D. (1997). Redes de Computadoras. Internet e Interredes. 1ra, Edición.
Prentice Hall. México
- Coulouris, G. (2012). Sistemas Distribuidos. Conceptos y Diseño. 5ta. Edición.
Addison-Wesley. México
- Forouzan, B. (2002). Transmisión de datos y redes de comunicación. 2da. Edición. Mc
Graw Hill. Madrid.
- Perpinan, A. (2004).Administración de Redes GNU/Linux. Guía de estudio hacia una
capacitación segura. Fundación Código Libre Dominicana. Disponible en:
http://www.codigolibre.org
- Tanenbaum, A. (2012). Redes de Computadoras. 5ta. Edición. Pearson. México.