Está en la página 1de 24

Sistemas Distribuidos

Sistema operativo Linux

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

Guía de Conceptos – Material Básico pág. 1


Sistemas Distribuidos – Unidad IV

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.

Guía de Conceptos – Material Básico pág. 2


Sistemas Distribuidos – Unidad IV

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 desarrollo fue (y continúa siendo)
producida por voluntarios. A medida que GNU 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 difundir este movimiento.
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.

I LUSTRACIÓN 1: F REE S OFTWARE F OUNDATION R ICHARD M ATTEW S TALLMAN

Guía de Conceptos – Material Básico pág. 3


Sistemas Distribuidos – Unidad IV

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

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

Guía de Conceptos – Material Básico pág. 4


Sistemas Distribuidos – Unidad IV

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

Distribuciones bases y más conocidas


CentOS (Community ENTerprise Operating Sy stem)
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.
Los desarrolladores de CentOS usan ese código fuente para crear un producto final que es
muy similar al Red Hat Enterprise Linux y está libremente disponible para ser bajado y usado
por el público, pero no es mantenido ni asistido por Red Hat.
I LUSTRACIÓN 5: C ENT 0 S C OMMUNITY E NTERPRISE O PERATING S YSTEM

Guía de Conceptos – Material Básico pág. 5


Sistemas Distribuidos – Unidad IV

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

Guía de Conceptos – Material Básico pág. 6


Sistemas Distribuidos – Unidad IV

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.

¿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:

Guía de Conceptos – Material Básico pág. 7


Sistemas Distribuidos – Unidad IV

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.

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.

¿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 Software Libre.
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.
5) Sin discriminación de personas o grupos: nadie puede dejarse fuera, 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.

Guía de Conceptos – Material Básico pág. 8


Sistemas Distribuidos – Unidad IV

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.

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

Guía de Conceptos – Material Básico pág. 9


Sistemas Distribuidos – Unidad IV

- 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

Características del sistema


operativo Linux
- 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últiples 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 de la fuente
nos garantiza de código que vulnere nuestra privacidad no puede ser colocado en
nuestro 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
- Entorno completamente gráfico para su fácil integración con usuarios que 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.

Guía de Conceptos – Material Básico pág. 10


Sistemas Distribuidos – Unidad IV

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

Demonios y servicios: programas que se ejecutan en segundo


plano

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

Guía de Conceptos – Material Básico pág. 11


Sistemas Distribuidos – Unidad IV

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.

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.

Guía de Conceptos – Material Básico pág. 12


Sistemas Distribuidos – Unidad IV

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.

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:

Guía de Conceptos – Material Básico pág. 13


Sistemas Distribuidos – Unidad IV

- 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...)
- Dinámicos: contiene archivos que son cambiantes, y pueden leerse y 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:
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.

Existen dos tipos de archivos:


- Convencionales: contienen información y generalmente sirven a los programas de
aplicación

Guía de Conceptos – Material Básico pág. 14


Sistemas Distribuidos – Unidad IV

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

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 también grupo dueño) pero no son
el usuario dueño, y los otros, que son todos 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.

Guía de Conceptos – Material Básico pág. 15


Sistemas Distribuidos – Unidad IV

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.

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:
I LUSTRACIÓN 9: E STADOS DE P ROCESOS

(Stallings, 2005)

Guía de Conceptos – Material Básico pág. 16


Sistemas Distribuidos – Unidad IV

- Ejecutando: este valor de estado se corresponde con dos estados. Un 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)

Características del planificador


- 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 unas 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
- Se utiliza la expropiación de procesos y se expropia cuando:
• Se acaba su quantum de tiempo
• Entra un nuevo proceso con mayor prioridad que se ejecuta actualmente

Guía de Conceptos – Material Básico pág. 17


Sistemas Distribuidos – Unidad IV

- Un proceso puede tener dos tipos de prioridades: Estática y Dinámica


- El planificador asigna mayor prioridad a procesos en tiempo real. Estos 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.
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

Guía de Conceptos – Material Básico pág. 18


Sistemas Distribuidos – Unidad IV

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.

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

Guía de Conceptos – Material Básico pág. 19


Sistemas Distribuidos – Unidad IV

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

Guía de Conceptos – Material Básico pág. 20


Sistemas Distribuidos – Unidad IV

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.

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.

Guía de Conceptos – Material Básico pág. 21


Sistemas Distribuidos – Unidad IV

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

Guía de Conceptos – Material Básico pág. 22


Sistemas Distribuidos – Unidad IV

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.

Guía de Conceptos – Material Básico pág. 23

También podría gustarte