Está en la página 1de 41

Módulo IV

Sistema operativo Linux


Contenido 2

Estudio de caso de un sistema operativo en entorno distribuido ................................... 4

Introducción .............................................................................................................. 4

Desarrollo ................................................................................................................. 5

Fundamentos del sistema operativo Linux .................................................................... 5

El Proyecto GNU....................................................................................................... 5

Etimología ................................................................................................................. 6

Free Software Foundation ......................................................................................... 6

Licencia GPL ............................................................................................................ 7

Licencia LGPL .......................................................................................................... 7

Otros tipos de licencias ............................................................................................. 8

El Proyecto GNU/Linux ............................................................................................. 8

Distribuciones bases y más conocidas...................................................................... 9

El Kernel Linux ........................................................................................................ 11

¿Qué es el Software Libre? ................................................................................. 12

¿Qué es Open Source? .......................................................................................... 13

Diferencias .............................................................................................................. 14

Otros tipos de software ........................................................................................... 15

Freeware ............................................................................................................. 15

Shareware........................................................................................................... 15

Ventajas del Open Source contra el Freeware, Shareware y Software Privativo ..... 16

Características del sistema operativo Linux ............................................................ 17

Estructura del Sistema Operativo Linux .................................................................. 18

El sistema de archivos ................................................................................................ 19

Nociones básicas .................................................................................................... 19

Soporte de archivos ................................................................................................ 22

Sistemas Distribuidos
Prof. Rubén Báez
Estructura de los directorios .................................................................................... 23
3
Tipos de archivos .................................................................................................... 25

Clasificación de archivos......................................................................................... 26

Permisos de acceso a archivos y directorios........................................................... 26

Seguridad de archivos en Linux .......................................................................... 26

Tipos de permisos de archivos ............................................................................ 27

Gestión de procesos ................................................................................................... 27

El árbol de procesos ............................................................................................... 28

Diagrama de Transición de Estados de Procesos ................................................... 28

Planificación de Procesos ....................................................................................... 29

Características del planificador ............................................................................... 30

Características de las prioridades de procesos ................................................... 30

Operación ................................................................................................................... 31

Comandos básicos ................................................................................................. 31

Gestión de memoria.................................................................................................... 33

Seguridad ............................................................................................................... 34

Administración ............................................................................................................ 35

Usuarios y grupos ................................................................................................... 38

El usuario root y otros usuarios del sistema ............................................................ 39

Programación ............................................................................................................. 39

El intérprete de comandos BASH ............................................................................ 39

Variables de entorno ............................................................................................... 40

Bibliografía .............................................................................................................. 41

Sistemas Distribuidos
Prof. Rubén Báez
Estudio de caso de un sistema operativo 4

en entorno distribuido

Introducción

Los sistemas operativos han ido evolucionando en estas dos últimas décadas
con el crecimiento de las redes en la Internet, las mejoras en el hardware y en
los sistemas de comunicación.

Un sistema operativo distribuido funciona en ese entorno complejo de


interconectividad y de recursos compartidos en donde están presentes las
propiedades de abstracción, transparencia y la optimización en la gestión de los
procesos.

De esta manera, un sistema operativo que opera en un entorno distribuido


permite a las computadoras coordinar sus actividades y compartir los recursos
del sistema.

Sistemas Distribuidos
Prof. Rubén Báez
El sistema operativo Linux, en sus diversas distribuciones, ha heredado del
5
sistema Unix todas sus características robustas que lo hacen ideal para su
estudio.

Desarrollo

Fundamentos del sistema operativo


Linux

El Proyecto GNU

El proyecto GNU nació el 27 de septiembre de 1983 por la persona más relevante


del movimiento del software libre en la actualidad, nos referimos a Richard
Matthew Stallman.

El proyecto GNU fue diseñado con el objetivo de crear un sistema operativo


completamente libre así como también para ser totalmente compatible con Unix
(sistema operativo desarrollado en los laboratorios Bell por Dennis Ritchie).

Para asegurar que el software GNU permaneciera libre para que todos los
usuarios pudieran "ejecutarlo, copiarlo, modificarlo y distribuirlo", el proyecto
debía ser liberado bajo una licencia diseñada para garantizar esos derechos al
tiempo que evitase restricciones posteriores de los mismos. La idea se conoce
como la Licencia General Pública de GNU (GPL).

En 1985, Stallman creó la Free Software Foundation (FSF) para proveer soportes
logísticos, legales y financieros al proyecto GNU. La FSF también contrató
programadores para contribuir a GNU, aunque una porción sustancial del

Sistemas Distribuidos
Prof. Rubén Báez
desarrollo fue (y continúa siendo) producida por voluntarios. A medida que GNU
6
ganaba renombre, negocios interesados comenzaron a contribuir al desarrollo o
comercialización de productos GNU y el correspondiente soporte técnico.

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.

Free Software Foundation

La Fundación para el Software Libre (Free Software


Foundation) es una organización creada en Octubre de
1985 por Richard Matthew Stallman (RMS) y otros
entusiastas del Software Libre con el propósito de
Imagen. 1. Free Software difundir este movimiento.
Foundation. Richard
Matthew Stallman

La Fundación para el Software Libre (FSF) está dedicada a eliminar las


restricciones sobre la copia, redistribución, entendimiento, y modificación de
programas de computadoras. Con este objeto, promociona el desarrollo y uso
del software libre en todas las áreas de la computación, pero muy
particularmente, ayudando a desarrollar el sistema operativo GNU.

Sistemas Distribuidos
Prof. Rubén Báez
Licencia GPL 7

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
Foundation a mediados de los años 80, y está orientada
Imagen 2. General Public
principalmente a proteger la libre distribución,
License. Free Software
Foundation 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.

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
Imagen. 3. Lesser General
diseñados para jugar con su libertad de compartir y
Public License. Free Software
Foundation modificar dicho software. En contraste, la "GNU General
Public License" pretende garantizar su libertad de
compartir y modificar 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.

Sistemas Distribuidos
Prof. Rubén Báez
Esta licencia se aplica a cualquier programa o trabajo que contenga una nota
8
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".

Otros tipos de licencias

A continuación se pueden ver algunos tipos de licencias de programas y de


sistemas operativos:

► Según los derechos que cada autor se reserva sobre su obra


► Licencia de software de código abierto permisivas
► Licencias de software de código abierto robustas fuertes
► Licencias de software de código abierto robustas débiles
► Licencia de software de código cerrado
► Software de dominio público
► Licencia de usuario final
► Licencia de distribuidores

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
Imagen. 4. Linux.
GPL (Licencia compilador, pero aún no contaba con el núcleo que permitiera
Pública General de
completar el sistema operativo.
GNU)

Sistemas Distribuidos
Prof. Rubén Báez
Entonces, el núcleo creado por Linus Torvalds, quien se encontraba por
9
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.

Distribuciones bases y más conocidas

CentOS (Community ENTerprise Operating System) es un


clon a nivel binario de la distribución Red Hat Enterprise Linux,
compilado por voluntarios a partir del código fuente liberado
por Red Hat.

Imagen. 5. CentOS. Los desarrolladores de CentOS usan ese código fuente para
(Community ENTerprise
crear un producto final que es muy similar al Red Hat
Operating System)
Enterprise Linux y está libremente disponible para ser bajado
y usado por el público, pero no es mantenido ni asistido por Red Hat.

Sistemas Distribuidos
Prof. Rubén Báez
Red Hat es una empresa dedicada al software libre, y además
10
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.

Imagen. 6. Red
Hat

La compañía es mejor conocida por su sistema operativo Red


Hat Enterprise Linux.

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
Imagen. 7.
Red Hat empaquetado, en un formato sencillo para múltiples
Enterprise
arquitecturas y en varios núcleos.
Linux.

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.

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.

Imagen 8. Ubuntu
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

Sistemas Distribuidos
Prof. Rubén Báez
regulares (cada 6 meses). Ubuntu es patrocinado por Canonical Ltd., una
11
empresa privada fundada y financiada por el empresario sudafricano Mark
Shuttleworth.

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
Imagen 9.
OpenSuse
decidió lanzar SUSE Linux Professional como un proyecto
completamente de código abierto, involucrando a la
comunidad en el proceso de desarrollo.

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.

Sistemas Distribuidos
Prof. Rubén Báez
Un sistema operativo con núcleo monolítico concentra todas las funcionalidades
12
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.

¿Qué es el Software Libre?

Se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar,


cambiar y mejorar el software; de modo más preciso, se refiere a cuatro
libertades de los usuarios del software:

1. La libertad de usar el programa, para cualquier propósito.


2. La libertad de estudiar el programa, y adaptarlo a nuestras necesidades.
3. La libertad de redistribuir copias del programa, para poder ayudar a los
demás.
4. La libertad de mejorar el programa, y hacer públicas esas mejoras.

Sistemas Distribuidos
Prof. Rubén Báez
Otro de los requisitos fundamentales para considerar a una aplicación como
13
Software Libre es el acceso al código fuente de la aplicación.

¿Qué es Open Source?

Open Source o Código Abierto, es la expresión con la que


se conoce al software distribuido y desarrollado libremente.
Es un movimiento más pragmático, se enfoca más en los
beneficios prácticos como acceso al código fuente que en
aspectos éticos o de libertad que son tan relevantes en el

Imagen 10. Open


Software Libre.
Source o Código
Abierto Su premisa es que al compartir el código, el programa
resultante tiende a ser de calidad superior al software
propietario, es una visión técnica. Obviamente para lograr calidad técnica lo ideal
es compartir el código, pero no estás obligado a hacerlo.

A pesar de que son términos relacionados y son usados indistintamente,


Software Libre y Open Source no son exactamente lo mismo, al menos no según
la Free Software Foundation.

Los requisitos que debe cumplir un programa del tipo Open Source son diez:

1. Libre redistribución: el software debe poder ser regalado o vendido


libremente.
2. Código fuente: el código fuente debe estar incluido u obtenerse
libremente.
3. Trabajos derivados: la redistribución de modificaciones debe estar
permitida.
4. Integridad del código fuente del autor: las licencias pueden requerir
que las modificaciones sean redistribuidas sólo como parches.

Sistemas Distribuidos
Prof. Rubén Báez
5. Sin discriminación de personas o grupos: nadie puede dejarse fuera,
14
sin importar de quién se trate.
6. Sin discriminación de áreas de iniciativa: los usuarios comerciales no
pueden ser excluidos, no somos enemigos de nadie.
7. Distribución de la licencia: deben aplicarse los mismos derechos a todo
el que reciba el programa, es decir, si lanzamos libre el programa libre
tiene que ser cada vez que se distribuya.
8. La licencia no debe ser específica de un producto: el programa no
puede licenciarse solo como parte de una distribución mayor, o se licencia
todo el programa o no se licencia nada.
9. La licencia no debe restringir otro software: la licencia no puede
obligar a que algún otro software que sea distribuido con el software
abierto deba también ser de código abierto.
10. La licencia debe ser tecnológicamente neutral: no debe requerirse la
aceptación de la licencia por medio de un acceso por clic de ratón o de
otra forma específica del medio de soporte del software.

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.

Sistemas Distribuidos
Prof. Rubén Báez
Básicamente el movimiento de Software Libre tiene diferencias de índole
15
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.

Otros tipos de software

Freeware

El término en inglés freeware define un tipo de software que se distribuye sin


costo y por tiempo ilimitado. A veces se incluye el código fuente, pero no es lo
usual.

El freeware suele incluir una licencia de uso, que permite su redistribución pero
con algunas restricciones, como no modificar la aplicación en sí, ni venderla, y
dar cuenta de su autor. También puede desautorizar el uso en una compañía
con fines comerciales o en una entidad gubernamental.

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

Sistemas Distribuidos
Prof. Rubén Báez
sus raíces en el segundo. Tampoco debe confundirse el hecho de que un
16
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
necesidad real de su cliente, y puede crear un producto específico para él
► Libertad. Es de libre distribución, cualquier persona puede regalarlo,
venderlo o prestarlo
► Combate efectivamente la piratería de software
► Ahorro en licencias. No se tienen que pagar ningún tipo de licencias para
poder usarlo, por lo que hace al Software Libre una perfecta alternativa
para el sector Educativo Público de un país

Sistemas Distribuidos
Prof. Rubén Báez
Características del sistema operativo Linux 17

► Su licencia GPL, garantiza que permanecerá Libre, lo que significa que


sus documentos que produzca en este siempre estarán disponibles y no
son objeto de políticas corporativas ni decisiones que usted no controla
► Acceso a los códigos de fuentes y derecho a modificación. Esto ayuda la
participación de miles de programadores a mejorar y si es necesario
modificar el software. Además es muy útil en el momento de eliminar
errores o bugs y mejorar la seguridad
► GNU/Linux es realmente un sistema operativo multiusuario, multitarea
que permite que múltiple usuarios trabajen con múltiples aplicaciones. Ya
hoy día la mayoría de los servidores de empresas medianas y pequeñas
se ejecutan sobre GNU/Linux
► Es extremadamente estable, robusto, escalable y seguro. Puede ser
actualizado sin necesidad de reiniciar y sus actualizaciones son fáciles y
prontas
► Su naturaleza de Libre permite que los administradores sepan con
exactitud la capacidad de un programa y los riesgos de seguridad que
presenta o puede presentar
► Las aplicaciones libres no mantienen secreto de marcas ni colectan
información para asistirse de cambiar la competencia. La naturaleza de la
disponibilidad del fuente nos garantiza de código que vulnere nuestra
privacidad no puede ser colocado en nuestros software como ha sido cosa
del pasado en software comerciales de naturaleza privativa
► Un gran número de aplicaciones ya disponible para su uso Libre con
licencia GPL y gratuitas
► Compatibilidad con aplicaciones comerciales privativas que ayudan a
abaratar costos de operaciones, sin sacrificar calidad ni seguridad

Sistemas Distribuidos
Prof. Rubén Báez
► Entorno completamente gráfico para su fácil integración con usuarios que
18
necesitan de este recurso pero no obligando a su uso para aumentar el
consumo de recursos que aumentan nuestros presupuestos y no se
traducen a productividad.

Estructura del Sistema Operativo Linux

Aplicaciones

Shell

Kernel

Demonios y
servicios

Administradores
de dispositivos

Hardware

Figura 1. Capas de la estructura del Sistema Operativo Linux

► Aplicaciones: conjunto de programas (aplicaciones y utilidades) a


disposición de los usuarios
► Shell: es el intérprete de comandos del sistema operativo
► Kernel: es el componente principal del sistema operativo. Se encarga de
asignar tareas y manejar el almacenamiento de datos

Sistemas Distribuidos
Prof. Rubén Báez
► Demonios y servicios: programas que se ejecutan en segundo plano
19
► Administradores de dispositivos: permiten gestionar las conexiones de
los dispositivos con el sistema operativo
► Hardware: es la parte física de la computadora

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

Sistemas Distribuidos
Prof. Rubén Báez
root o directorio raíz) y se ramifica. Todos los archivos en un sistema GNU/Linux
20
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

Sistemas Distribuidos
Prof. Rubén Báez
► En un ambiente de red, ciertos archivos contienen información específica
21
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

La distinción “compartible” puede ser usada para soportar, por ejemplo:

► Una partición /usr (o componentes de /usr) montada (sólo-lectura) a través


de la red (usando NFS)
► Una partición /usr (o componentes de /usr) montada desde medios de
sólo-lectura. Un CD-ROM puede ser considerado como un sistema de
archivos sólo-lectura compartido con otros sistemas GNU/Linux utilizando
el sistema de correo como una red

La distinción “estática” contra “variable” afecta el sistema de archivos de dos


maneras principales:

► Dado que contiene ambos tipos de información, variable y estática


necesita montarse lectura-escritura
► Dado que el /usr tradicional contiene ambos tipos de información variable
y estática y dado que podríamos desear montarlo sólo-lectura (vea arriba),
es necesario proporcionar un método para hacer que /usr se monte sólo-
lectura.
► Esto se logra con la creación de una jerarquía /var que se monta lectura-
escritura (o es parte de una partición lectura-escritura tal como /), que
toma mucho de la funcionalidad tradicional de la partición /usr.

Sistemas Distribuidos
Prof. Rubén Báez
Soporte de archivos 22

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

Sistemas Distribuidos
Prof. Rubén Báez
con estos. El problema de ser tan actual es que muchas herramientas (por
23
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.

Estructura de los directorios

Existe una norma para ubicar los archivos en la estructura del árbol del Sistema
Operativo Linux y es reconocida como Norma para la Jerarquía del Sistema de
Archivos (Filesystem Hierarchy Standard – FHS).

En el sistema de archivos de Linux, existen varias subjerarquías de directorios


que poseen múltiples y diferentes funciones de almacenamiento y organización
en todo el sistema.

Estos directorios pueden clasificarse en:

► Estáticos: contiene archivos que no cambian sin la intervención del


administrador (root), sin embargo, pueden ser leídos por cualquier otro
usuario. (/bin, /sbin, /opt, /boot, /usr/bin...)

Sistemas Distribuidos
Prof. Rubén Báez
► Dinámicos: contiene archivos que son cambiantes, y pueden leerse y
24
escribirse (algunos sólo por su respectivo usuario y el root). Para estos
directorios, es recomendable una copia de seguridad con frecuencia, o
mejor aún, deberían ser montados en una partición aparte en el mismo
disco
► Compartidos: contiene archivos que se pueden encontrar en una
computadora y utilizarse en otro, o incluso compartirse entre usuarios
► Restringidos: contiene archivos que no se pueden compartir, sólo son
modificables por el administrador. (/etc, /boot, /var/run, /var/lock)

En la siguiente tabla se puede observar los directorios principales del sistema


Linux junto con su descripción:

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

Sistemas Distribuidos
Prof. Rubén Báez
/lib Acá se pueden encontrar las librerías de programación para el
25
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


relacionadas con 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


echar una mirada al contenido de sus archivos

/opt Para colocar software que no fue incluida en el sistema operativo

/tmp Contiene archivos temporales del sistema

Tabla 1. Directorios principales del sistema operativo

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.

Existen dos tipos de archivos:

► Convencionales: contienen información y generalmente sirven a los


programas de aplicación

Sistemas Distribuidos
Prof. Rubén Báez
► Especiales: son aquellos que proveen un interfaz uniforme entre los
26
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

Permisos de acceso a archivos y directorios

Seguridad de archivos en Linux

Como dueño del archivo, un usuario puede configurar permisos sobre sus
archivos.

Estos permisos distinguen tres categorías de usuarios: el dueño del archivo,


todos los usuarios que son miembros del grupo asociado al archivo (denominado

Sistemas Distribuidos
Prof. Rubén Báez
también grupo dueño) pero no son el usuario dueño, y los otros, que son todos
27
los usuarios que no son ni el dueño ni miembros del grupo dueño.

Tipos de permisos de archivos

Hay tres permisos diferentes:

1. Permiso de lectura (r por Read, Leer): para un archivo, esto permite que
se lea su contenido. Para un directorio, esto permite que se muestren los
archivos que contiene (es decir, los archivos en este directorio).
2. Permiso de escritura (w por Write, Escribir): para un archivo, esto
permite que se modifique su contenido. Para un directorio, esto permite
que un usuario agregue y/o quite archivos de este directorio, incluso si no
es el dueño de esos archivos.
3. Permiso de ejecución (x por eXecute, Ejecutar): para un archivo, esto
permite su ejecución (en consecuencia, normalmente sólo los archivos
ejecutables tienen activo este permiso). Para un directorio, esto permite
que un usuario lo recorra (lo que significa poder ingresar a, o pasar por,
ese directorio). Esto está separado del acceso de lectura: bien puede ser
que se pueda recorrer un directorio, pero no leer su contenido. Todas las
combinaciones de estos permisos son posibles.

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.

Sistemas Distribuidos
Prof. Rubén Báez
El árbol de procesos 28

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.

Diagrama de Transición de Estados de Procesos

A medida que un proceso se ejecuta, su estado cambia según las circunstancias.


Los procesos en Linux tienen los siguientes estados:

Figura 2. Estados de procesos (Stallings, 2005)

Sistemas Distribuidos
Prof. Rubén Báez
► Ejecutando: este valor de estado se corresponde con dos estados. Un
29
proceso Ejecutando puede estar Ejecutando (proceso en curso) o está
Listo para ejecutar (está esperando a ser asignado a una de las CPUs
del sistema)
► Interrumpible: es un estado Bloqueado en el que el proceso está
esperando por un evento, tal como la finalización de una operación de
Entrada/Salida, la disponibilidad de un recurso o una señal de otro
proceso
► Ininterrumpible: éste es otro estado Bloqueado. La diferencia entre este
estado y el estado Interrumpible es que en el estado Ininterrumpible un
proceso está esperando directamente sobre un estado del hardware y por
tanto no manejará ninguna señal
► Parado: el proceso ha sido parado y sólo puede ser reanudado por la
acción positiva de otro proceso. Por ejemplo, un proceso que está siendo
depurado por errores, se puede poner en estado Parado
► Zombie: el proceso se ha terminado pero, por alguna razón, todavía debe
tener su estructura de tarea en la Tabla de Procesos. Se suele mantener
para que el padre pueda extraer información útil de él

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).

Sistemas Distribuidos
Prof. Rubén Báez
Características del planificador 30

► El CFS busca mantener el balance (equidad) en el tiempo de procesador


que se asignan a los procesos. Cada proceso debe recibir un tiempo
equitativo
► Cuando un proceso está “fuera de balance”, se le asigna tiempo de
ejecución en el procesador
► Para determinar el balance, el CFS mantiene la cantidad de tiempo que
se le ha asignado a un proceso en lo que llaman Virtual Runtime
► El CFS utiliza una colas basadas en el tiempo
► El proceso con menor Virtual Runtime es el más próximo a ser ejecutado.
► Utiliza una técnica de tiempo compartido
► A cada proceso se le asigna un quantum de tiempo para ejecutarse en el
procesador

Características de las prioridades de procesos

► La planificación se ejecuta acorde a un ranking de prioridad


► Utiliza prioridades dinámicas que son ajustadas a través del tiempo
► Los procesos que no han sido ejecutados por el procesador en un periodo
largo de tiempo, aumentan su prioridad. Los que han sido ejecutados por
mayor tiempo, reducen su prioridad. Políticas de Planificación
► Se utiliza la expropiación de procesos y se expropia cuando:

o Se acaba su quantum de tiempo


o Entra un nuevo proceso con mayor prioridad que se ejecuta
actualmentede Planificación
► Un proceso puede tener dos tipos de prioridades: Estática y Dinámica

Sistemas Distribuidos
Prof. Rubén Báez
► El planificador asigna mayor prioridad a procesos en tiempo real. Estos
31
nunca pueden ser bloqueados por procesos de menor prioridad
► Los procesos Batch son penalizados por el planificador, ya que no son
responsivos y corren generalmente en segundo plano
► Los procesos Real Time necesitan mayor tiempo de ejecución

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.

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

Sistemas Distribuidos
Prof. Rubén Báez
chmod Cambiar permisos de atributos de archivos
32
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

Sistemas Distribuidos
Prof. Rubén Báez
chown Cambiar propietarios de archivos
33
passwd Asignar contraseñas a usuarios

GRUPOS DE USUARIOS

groupadd Crear grupos de usuarios

groupdel Eliminar grupos de usuarios

chgrp Cambiar grupos de archivos

Tabla 2. Comandos básicos de archivos, directorios, procesos, usuarios y de grupos

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

Sistemas Distribuidos
Prof. Rubén Báez
escritura de esas páginas en el espacio de intercambio del disco, según sea
34
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.

Sistemas Distribuidos
Prof. Rubén Báez
2. Control de acceso: proporcionar un mecanismo para controlar si un
35
usuario tiene derecho de acceso a un cierto objeto e impedir el acceso a
los objetos según sea necesario.

La capacidad de registro es un componente muy importante de la arquitectura


de seguridad de Linux.

Se graban registros a nivel de red, de host y de usuario:

► Registra todos los mensajes del sistema y del núcleo


► Registra todas las conexiones de la red, la dirección IP de la que parte
cada una de ellas, su longitud y en algunos casos, el nombre del usuario
y sistema operativo de la persona que realiza el ataque
► Registra los archivos que solicitan los usuarios remotos
► Puede registrar qué procesos se encuentran bajo el control de cualquier
usuario

Puede registrar todos y cada uno de los comandos que ha emitido un usuario
determinado.

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.

Sistemas Distribuidos
Prof. Rubén Báez
El sistema Linux requiere de una configuración inicial y continua atención de
36
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, cuando

Sistemas Distribuidos
Prof. Rubén Báez
ingresa al sistema, es típicamente / (el directorio raíz del sistema de archivos) o
37
un directorio específico /root.

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:

Sistemas Distribuidos
Prof. Rubén Báez
► Mantenimiento de usuarios: agregar, borrar, modificar permisos y
38
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

Sistemas Distribuidos
Prof. Rubén Báez
tanto, si dos usuarios con nombres distintos tienen el mismo ID, el sistema Linux
39
no podrá diferenciar quién es quién.

El usuario root y otros usuarios del sistema

Existen tres categorías de cuentas de usuarios, usuario administrativo (root),


usuarios regulares y usuarios de servicio.

El usuario root tiene el control total del sistema y puede sobrepasar cualquier
restricción de seguridad.

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.

Sistemas Distribuidos
Prof. Rubén Báez
Las variables de entorno son variables que se almacenan en memoria durante
40
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

Sistemas Distribuidos
Prof. Rubén Báez
Bibliografía 41

► Anónimo (2000). Edición Especial. Linux. Máxima Seguridad. Pearson.


Madrid.
► López, V. et all. (2001). Linux. Guía de instalación y administración. Mc
Graw Hill. Madrid.
► Perpiñan, A. (2004). Administración de Sistemas GNU/Linux. Fundación
Código Libre Dominicano. Santo Domingo.
► SiIlverchatz, A., Galvin, P., Gagne, G. (2006). Fundamentos de Sistemas
Operativos. 7ma. Mc Graw-Hill. Madrid.
► Stallings, W. (2005). Sistemas Operativos. Aspectos internos y principios
de diseño. 5ta. Edición. Pearson - Prentice Hall. Madrid.

Sistemas Distribuidos
Prof. Rubén Báez

También podría gustarte