Está en la página 1de 14

SISTEMAS OPERATIVOS LINUX

COMIENZOS

 Linux es un kernel (un núcleo de un sistema operativo) creado por Linus Torwalds.
Nació en Finlandia el 28 de Dic 1969 y estudió en la universidad de Helsinki.
Desarrolló Linux porque deseaba disponer de un SO Unix en su PC. Actualmente
trabaja en los EE.UU.

 Linus T. quiso compartir su código para que cualquiera pudiera usarlo y contribuir
a su desarrollo. Dado que en GNU ya habían desarrollado bastantes herramientas
para Unix con la misma filosofía de software libre pronto se consiguió un SO
Linux/GNU totalmente libre. Dos de las herramientas más importantes aportadas
por GNU fueron el interprete de comandos, y el compilador de C.

 En los comienzos Linux era un sistema principalmente adecuado para hackers y


personas con muchos conocimientos técnicos. Actualmente ya no es así. El
crecimiento en número de usuarios viene siendo exponencial desde sus comienzos
en 1991. Actualmente ya empieza a ser visto como una alternativa a los SO de
Microsoft

Software libre

Proporciona la libertad de:

• Ejecutar el programa, para cualquier propósito;

• Estudiar el funcionamiento del programa, y adaptarlo a sus necesidades;

• Redistribuir copias;
• Mejorar el programa, y poner sus mejoras a disposición del público, para beneficio de
toda la comunidad.

LINUX/GNU

 Quizás ha leído que Linux significa 'L'inux 'I's 'N'not 'U'ni'X'. Pero en realidad Linux
es un núcleo de SO tipo Unix. Su compatibilidad Posix es alta. El SO se
complementa con una serie de aplicaciones desarrolladas por el grupo GNU. Tanto
estas aplicaciones como el núcleo son software libre. Linux/GNU es un SO tipo
Unix, SO Multiusuario, Multitarea, Multiprocesador, Multiplataforma, Multilingüe,
nacido en la red de redes Internet.

 Unix se origino en los laboratorios Bell AT&T a comienzos de 1970 y el MS-DOS


tomó muchas ideas de este SO pero sus planteamientos eran mucho más
modestos y solo se intento implantar unas burdas imitaciones de unas cuantas
buenas ideas de Unix. El sistema en árbol de directorios la redirección de entrada
salida y la estructura de un comando por ejemplo. MS-DOS nació como un simple
agregado comparado con Unix y luego la necesidad de mantener la compatibilidad
con versiones anteriores a condicionado fuertemente el crecimiento de MS-DOS
primero y de Windows después.

 Por el contrario Unix ha mantenido la compatibilidad con versiones anteriores sin


ningún problema. Tradicionalmente los SO Unix se han caracterizado por ser poco
intuitivos de cara la usuario. Esto esta cambiando rápidamente porque Linux está
ofreciendo cada vez entornos más intuitivos para su utilización. Esto es resultado
del acercamiento progresivo de Linux hacia el usuario doméstico y ofimático.

Características de GNU/Linux

32 Bits

Gracias a los 32 bits el sistema es rápido eficaz, seguro y fiable, sin que una aplicación
pueda causar problemas a las otras, al no tener que guardar compatibilidad con los
sistemas anteriores de 16 bits.

Multitarea

El ordenador puede estar haciendo varias cosas a la vez, y que no tendrás que esperar a
que acabe una para hacer otra, la multitarea esta controlada por el S.O. no por las
aplicaciones, por lo que a diferencia de otros S.O. nunca se te quedara parado por culpa
de una mala aplicación que consuma todos los recursos del ordenador. Aquí si podrás
bajar correo de Internet, formatear un disco, imprimir 100 hojas y jugar a la vez, y sin
problemas

Multiusuario

Si has manejado antes un ordenador, seguramente usarías MAC OS o Windows, en estos


S.O. tú eres el único que lo usas, en Linux, puede haber varias personas usando
el ordenador, compartiendo el microprocesador, así puedes ponerle un par de
pantallas y teclados y estar otra persona navegando por Internet, escribiendo una carta,
jugando en su pantalla, mientras tu estas en otra haciendo otra cosa completamente
diferente, y estaréis ambos en el mismo ordenador. Además proporciona los elementos
necesarios para garantizar la seguridad y la privacidad de los datos entre usuarios.

POSIX

Aunque para los usuarios normales esto importa poco, POSIX es un estándar de la
industria, que asegura una calidad mínima en ciertas partes del S.O. y asegura su
compatibilidad, a nivel de código, es decir, programas POSIX que funcionan en otros Unix,
no tendrán problema para compilarse y ejecutarse en Linux, Para muchas empresas esto
es muy importante, a la hora de decantarse por un S.O. u otro (por eso Windows NT es
compatible POSIX).

Compatibilidad

Ficheros

Linux No tiene ningún problema para tragarse cualquier tipo de disco de cualquier cosa
que exista, leerlo y usar su contenido, además existen Suites como OpenOffice o Corel
WordPerfect que permiten leer y usar ficheros de aplicaciones comunes como puedan ser
Word o Excel. Además cuando se trabaja en red, Linux es capaz de entenderse y de
mediar entre todo tipo de redes, permitiendo entornos heterogéneos sin ningún
problema.

Programas

Si puedes ejecutar programas de otros S.O. para MAC tienes basilisk2, capaz de crear
un Macintosh virtual y ejecutar MacOs para M68K sin problemas. Para Windows existen
varios programas que permiten hacer funcionar programas de Windows, Cross office para
entornos de oficina, wineX para juegos, y la versión libre de estos Wine, que permite
ejecutar la mayoría de los programas.
Si el programa es para MS-DOS existe DosEmu, un emulador de MS-DOS ( bueno no
exactamente, mas bien habría que decir de 386) donde podrás ejecutar a pantalla
completa, como en la realidad, o en ventana de X Windows, cualquier programa para
este S.O. Además de estos existen vmWARE (comercial) y Bosch que crean PC virtuales
donde ejecutar cualquier sistema operativo.

Estabilidad

Linux es robusto, no se colgara ( el S.O. una aplicación si esta mal echa por supuesto que
se colgara, per no afectara al resto del sistema, nunca tendrás que reiniciar el
ordenador por que un programa lo ha colgado), hay que notar que es posible bloquear
el teclado o la pantalla, pero eso no significa que se cuelgue el ordenador, puedes
entrar al ordenador por otro sitio ( un terminal, por red) y desbloquearlo, y seguir
usándolo, o si se te bloquea un programa mientras estabas conectado a Internet y correo,
quizás no puedas usar el ordenador, pero seguirá bajando el correo sin problemas.

Es libre

Es decir no te costara nada, no tendrás que pagar licencias, podrás copiarlo, venderlo,
instalarlo donde quieras sin problemas, pero lo más importante es que dispones del
código fuente, esto significa que si un día te encontrases con un problema del S.O.
no tendrías que esperar inútilmente a que su creador decidiese que era un
problema importante y crease un service pack para el S.O., tu mismo puedes
solucionar el problema. O puedes indicarle a una 3º personal el problema, y esta no
tendrá que ser de la empresa que creo el S.O. para poder solucionártelo.

Soporte

Parece mentira, siendo gratis, pero aparte del que te da Mandrake, SUSE, o RedHat si le
comprar los CD a estas empresas, existen cientos de personas, de todos los idiomas
conocidos, que gustosos te ayudaran a solucionar cualquier problema que tengas con
Linux, y en pocos días. No dudes de unirte a las listas de distribución que hay en Internet,
no solo aprenderás, podrás ayudar a otros en los problemas que tengan.

Prácticamente las mayores dificultades que se le puede echar a Linux son:

· Dificultad de Configuración – No es exacto, simplemente no hay botones, se hace todo


por ficheros de configuración ASCII, además actualmente las distribuciones incluyen su
propio GUI (Interfaz Grafica para el Usuario) para la configuración del equipo, aunque esta
depende de cada distribución.
· Hay pocos juegos - Los hay, no todos pero sí muy buenos, Quake I & II, Doom I & II.
Abuse, Freeciv, Descent, y un monton de ellos sencillos

ARQUITECTURA DEL SISTEMA OPERATIVO LINUX

INICIANDO EL SISTEMA

1. BIOS
2. BOOT LOADER
3. KERNEL
4. INIT
5. /VAR/LOG/MESSAGES

NIVELES DE EJECUCION LINUX

En sistemas GNU/Linux y otras versiones de Unix, init es el programa encargado de llevar


la estación al nivel de ejecución en que se desea que opere. Init es el primer proceso en
ejecución después del la carga del Kernel e implementa dos sistemas de inicio: System V, o
BSD-Like. Estos sistemas especifican los guiones (scripts) de arranque para inicializar los
diferentes servicios, programas o registros que sean necesarios para que el sistema
funcione como el usuario quiere o como el administrador estableció.
En los sistemas GNU/Linux se especifican hasta 7 niveles de ejecución (también conocidos
como runlevels o niveles de corrida). En las distribuciones Red Hat, así como en la gran
mayoría de distribuciones, la especificación de los niveles de ejecución son como sigue:

Nivel de ejecución 0:

Halt. Este nivel de ejecución se encarga de detener todos los procesos activos en el
sistema, enviando a la placa madre una interrupción para el completo apagado del
equipo.

Nivel de ejecución 1:

Single. Nivel de ejecución monousuario, sin acceso a servicios de red. Este nivel es
regularmente utilizado en tareas de mantenimiento del sistema, y el usuario que ejecuta
es root.

Nivel de ejecución 2:

Al igual que el nivel de ejecución monousuario, pero con funciones de red y compartición
de datos mediante nfs.

Nivel de ejecución 3:

Sistema multiusuario, con capacidades plenas de red, sin entorno gráfico. Este nivel de
ejecución es el recomendado para sistemas de servidor, ya que evita la carga innecesaria
de aplicaciones consumidoras de recursos.

Nivel de ejecución 4:

Nivel especificado, pero no se utiliza

Nivel de ejecución 5:

Al igual que el nivel de ejecución 3, pero con capacidades gráficas. Ideal para entornos de
escritorio.

Nivel de ejecución 6:

Reboot. Este nivel de ejecución se encarga de detener todos los procesos activos en el
sistema, enviando a la placa madre una interrupción para el reinicio del equipo.
GESTIÓN DEL PROCESADOR

Sigue una política Round Robin, con prioridad entre los procesos. La prioridad puede ser
asignada por el usuario de forma dinámica, debido a que existe una función del sistema
operativo que permite asignar la prioridad al proceso.

Linux distingue entre varios tipos de procesos que se pueden ejecutar en el sistema, y
según sean les tratará con el algoritmo de planificación Round Robin o por prioridades
dinámicas calculadas por el sistemas en función del tiempo que se han ejecutado en el
procesador.

El proceso o tarea (nombre con que Linux denomina a los procesos) es una de las
abstracciones fundamentales en los sistemas operativos y también lo es en las distintas
versiones de Unix. Un proceso es un programa en ejecución, por lo que no sólo se incluye
el código que se tiene que ejecutar y los datos del programa, sino que también debemos
tener en cuenta el conjunto de recursos que está utilizando tales como ficheros abiertos y
señales pendientes, los datos internos del núcleo, registros y estado del procesador, el
espacio de direcciones que tiene asignado y los hilos que tiene en ejecución. De hecho
podemos tener dos procesos activos que utilizan el mismo programa, como es el caso de
los procesos ejecutados con fork tal y como veremos más adelante.

Los hilos son partes del código del programa que se pueden ejecutar simultáneamente
dentro del proceso. Cada hilo se diferencia de los otros en que tiene su propio contador
de programa, su pila o stack, y su propio conjunto de registros del procesador. En los
sistemas actuales, como es el caso de Linux, no se diferencia entre procesos e hilos,
considerando a los hilos como un tipo especial de proceso, a diferencia de Microsoft
Windows o Sun Solaris que sí tienen estructuras específicas que los diferencian de los
procesos. Cada hilo tiene una task_struct propia y para el núcleo es un proceso normal (lo
que le permite compartir recursos, y espacio de direcciones, con otros procesos),
constituyen simplemente una manera de compartir recursos entre los procesos, ya que
son bastante ligeros por sí mismos.

Los hilos de un proceso tienen el mismo espacio de direcciones, ya que la asignación de la


memoria se hace al proceso y los hilos forman parte del proceso. Permiten la
programación concurrente y, en los sistemas de varios procesadores, el paralelismo real
de ejecución.

Una característica importante de Unix es que permite al usuario elegir el modo de


ejecución del proceso, pudiendo optar entre:

 Foreground que es el modo por defecto, y en el que se ejecutan normalmente los


procesos
 Background que hace que el programa se ejecute en segundo plano, y permite al
usuario seguir trabajando.

Los estados de un proceso son cuatro, tal y como se puede ver en la figura:

 Preparado: el proceso puede entrar en el procesador a ejecutarse cuando se


quede vacío (TASK_RUNNING)
 Ejecución: el proceso está ejecutándose en el procesador (TASK_RUNNING)
 Bloqueado: el proceso está esperando por un evento, normalmente la finalización
de una operación de entrada/salida, aunque también puede ser por la finalización
de un período de tiempo solicitado a través de cualquiera de las funciones que
ofrece Unix para ello, como sleep, ... (TASK_INTERRUPTABLE y
TASK_UNINTERRUPTABLE)
 Zombi: es el estado en que queda un proceso cuando termina su ejecución, pero el
padre del mismo no recibe el mensaje de terminación que envía el hijo. El
problema que tiene este estado reside en que el programa ya no ocupa memoria
porque ha terminado su ejecución, pero sí ocupa un slot, puesto que el proceso
aún no ha desaparecido totalmente del sistema (TASK_ZOMBIE)

TIPOS DE PROCESOS

El algoritmo de planificación deberá repartir de la forma más justa posible el uso de la CPU
entre diversos tipos de procesos:

 Los
 procesos de tiempo real, que son aquéllos cuyo tiempo de respuesta tiene que
estar acotado para que no excedan un cierto umbral máximo.
 Los procesos de segundo plano (compiladores, procesos de cálculo, etc.), que no
tienen interacción con el usuario y cuyo tiempo de respuesta no es crítico.
 Los procesos interactivos, no suelen usar mucho tiempo de cómputo, pero, cuando
lo requieren, la respuesta debe ser relativamente rápida, ya que al otro lado hay
un usuario (normalmente impaciente).

Planificación de procesos en Linux

Al igual que cualquier sistema de tiempo compartido, Linux logra crear la ilusión de una
aparente ejecución simultánea de varios procesos, pasando de un proceso a otro en un
plazo de tiempo muy corto.

Política de planificación

Los objetivos de planificación de los procesos en Linux son:

 Tiempo compartido: El tiempo de CPU se divide en "intervalos" (epochs) para cada


proceso, ya que es la forma de repartir un único procesador entre muchos
procesos que se tienen que ejecutar al mismo tiempo. Para lograr esto el
planificador asigna a cada proceso un quantum de tiempo de ejecución, agotado el
mismo dicho proceso debe abandonar el procesador y dejar paso al siguiente, por
ello es necesario basar la política en interrupciones de reloj hardware y que sea
totalmente transparente para el proceso.

 Prioridad dinámica: La política de planificación se basa también en la clasificación


de los procesos en función de su prioridad. En Linux, la prioridad del proceso es
dinámica, es decir, puede cambiar durante su ejecución. Las prioridades se ajustan
a lo largo del tiempo para evitar la postergación indefinida de los procesos (que no
puedan llegar al procesador nunca), es decir, aquellos procesos que no se les
asigne el procesador durante un largo período de tiempo verán aumentar sus
prioridades, mientras que a los que se les conceda con frecuencia el planificador
les disminuirá su prioridad.
o Si un proceso pasa al estado Preparado (TASK_RUNNING), el planificador
estudia si su prioridad dinámica es mayor que la prioridad del proceso
actualmente en ejecución. Si es así, éste último se interrumpe y el de más
prioridad ocupa su lugar en el procesador.

 Favorecer a los procesos limitados por E/S: Para asignar el procesador a los
procesos, Linux los distingue según dos tipos de clasificaciones, una atendiendo al
uso del procesador, y otra según la interactividad de los mismos.
Aunque el sistema ofrece facilidades y funciones que son aplicables para tiempo real, el
planificador está pensado para tiempo compartido, no para tiempo real. Lo que hace con
los procesos de tiempo real es asignarles una prioridad muy alta, forzando a que se
ejecuten antes que los demás, pero en realidad no distingue estos procesos de los demás.
Tampoco distingue entre procesos interactivos y por lotes, ya que la política tiene como
objetivo favorecer a los procesos limitados por E/S, que pueden ser tanto de un tipo como
de otro.

Algoritmo de planificación

El algoritmo de planificación del procesador en Linux se basa en una política basada en los
siguientes principios:

 Dividir el tiempo en intervalos (epochs): el tiempo para Linux no es continuo sino


que se basa intervalos de tiempo. En un intervalo simple, cada proceso tiene
asignado un tiempo de quantum que se calcula al comienzo de cada intervalo, con
las siguientes características:
o Este quantum es el máximo tiempo de procesador que el proceso puede
usar durante ese intervalo.
o Un proceso solo usa su quantum cuando está en el procesador, mientras
que si está esperando por una operación de E/S no corre el tiempo del
quantum. Por ello, un proceso puede entrar en el procesador varias veces
durante un intervalo, mientras no agote completamente su quantum.

GESTIÓN DE MEMORIA EN LINUX

Memoria física

Es el espacio que están utilizando los procesos que se están ejecutando. En Linux también
se utiliza la memoria física para tener cache de los datos de los dispositivos de i/o,
memoria compartida y buffers de intercambio.

Cuando la memoria no es utilizada por las aplicaciones, es decir los procesos no ocupan
toda la memoria, utiliza toda la que puede como cache de datos. Cuando las aplicaciones
vayan requiriendo más memoria estas caches serán más pequeñas.

Memoria Virtual

El tamaño combinado del programa, datos y pila puede exceder la cantidad de memoria
física disponible El sistema operativo guarda aquellas partes del programa
concurrentemente en memoria central y el resto en disco.
El sistema de gestión de memoria es muy complejo.Respecto a memoria virtual, Linux
hace uso de una estructura de tabla de páginas con tres niveles. Para utilizarlas, las
direcciones virtuales en Linux se ven como un conjunto de 4 campos.

DIRECCIONAMIENTO DE MEMORIA VIRTUAL

tres niveles:

Directorio de páginas: un proceso activo tiene sólo un directorio de páginas, donde cada
entrada en el mismo, señala a una página del directorio intermedio de páginas. Para un
proceso activo, el directorio debe estar en la memoria principal.

Directorio intermedio de páginas: es el que puede ocupar varias páginas y donde cada
entrada al directorio señala a una página de la tabla de páginas.

Tabla de páginas: ésta también puede ocupar varias páginas y en cada entrada se hace
referencia a una página virtual del proceso.

Asignación de páginas
Desde la memoria principal, Linux define un mecanismo para tratar bloques de páginas
contiguos correspondientes a bloques de marcos de páginas contiguos, para ello, se utiliza
el sistema de colegas donde el núcleo mantiene una lista de grupos de marcos de página
contiguos de tamaño fijo.

LIBERACIÓN DE PÁGINAS

El código de liberación de páginas recombina páginas en bloques de mayor tamaño


siempre que es posible.

Siempre que se libera un bloque de páginas, se comprueba si está libre el bloque


adyacente de igual tamaño. Si es así, se combina con el bloque de páginas recién liberado
para formar un bloque nuevo de tamaño doble.

Algoritmo de reemplazo de páginas


El algoritmo de reemplazo de páginas de Linux se basa en el algoritmo del reloj,
que, en caso de ser el sencillo, se asocia un bit de uso y un bit de modificación a cada
página de la memoria principal. En Linux utiliza una variable edad que, cada vez que se
accede a la página, se incrementa la variable y recorre periódicamente la reserva de
paginas globales y disminuye la variable de edad de cada página cuando rota por todas las
páginas de la memoria principal. Una página con un envejecimiento 0 es una página
“vieja” que no se ha referenciado en bastante tiempo y es la mejor candidata para el
reemplazo, y cuanto mayor valor de edad, más frecuentemente se ha usado la página
recientemente y menos elegible es para el reemplazo.

PAGINACIÓN POR DEMANDA

Esta técnica de cargar sólo páginas virtuales en memoria conforme son accedidas es
conocida como Paginación por Demanda.

Linux utiliza la paginación por demanda para cargar imágenes ejecutables en la memoria
virtual de un proceso. Siempre que se ejecuta un proceso, se abre el fichero que la
contiene y su contenido se asocia en la memoria virtual del proceso. Esto se hace
modificando las estructuras de datos que describen el mapa de memoria del proceso y se
conoce como asociación de memoria.

Cachés

Buffer Caché

Contiene datos que son utilizados por los manejadores de dispositivos de bloques. Estos
buffers son de tamaño fijo (por ejemplo 512 bytes) y contienen bloques de información
que ha sido leída de un dispositivo de bloques o que va ha ser escrita. Los dispositivos de
bloque son exclusivamente accedidos a través del buffer Cache.

Caché de Páginas

Este se utiliza para acelerar el acceso a imágenes y datos en disco. Se utiliza para guardar
el contenido lógico de un fichero de página en página y se accede vía el fichero y el
desplazamiento dentro del fichero. Conforme las páginas se leen en memoria, se
almacenan en la page caché..

Cache de Intercambio

Solo las páginas que han sido modificadas (dirty) son guardadas en el fichero de
intercambio. Mientras no vuelvan a ser modificadas después de haber sido guardadas en
el fichero de swap, la próxima vez que necesiten ser descartadas (swap out) no será
necesario copiarlas al fichero de intercambio pues ya están allí.

EXPLIQUE LA ADMINISTRACIÓN DE PERIFÉRICOS DE ENTRADA Y SALIDA

La Entrada/Salida se realiza por medio de los controladores de dispositivos, que tienen un


rol especial en el núcleo de Linux. Estos son los encargados de ocultar completamente los
detalles de funcionamiento interno de un dispositivo a nivel del Hardware,
independizando así los programas de usuario que deberán utilizar ciertas funciones para
poder operar con dichos dispositivos; de esta manera, si hubiera cambios en los
dispositivos, porque se añadan, quiten o cambien, no hará falta volver a programar los
programas, bastando con reemplazar los controladores antiguos por los que gestionen el
nuevo hardware.

La ventaja de desarrollar controladores de dispositivos para Linux consiste en que estos


pueden desarrollarse por separado del resto del núcleo y luego ser cargados en tiempo de
ejecución, cuando se necesiten.

Espacio de nombres

La primera elección antes de escribir un driver es su nombre. Este nombre debe ser corto
(probablemente dos o tres caracteres). Por ejemplo, la impresora se llama "lp", los
disquetes "fd", y los discos SCSI son "sd". Al escribir el controlador, los nombres de las
funciones deberán llevar como prefijo este nombre, y de esta manera poder distinguirlas
de las funciones que gestionan otros dispositivos. Por ejemplo, si llamamos a nuestro
dispositivo, y por tanto el identificador del driver como "dp", las funciones que diseñemos
tendrían nombres como dp_read, dp_write, ...

Asignación de memoria

La asignación de memoria dentro del kernel o núcleo es diferente a como se hace en los
programas de usuario. En lugar de utilizar malloc, la función dentro del núcelo
sería kmalloc que se comporta de forma diferente:

 La memoria se asigna en porciones cuyo tamaño es una potencia de 2, excepto si es


necesario que sean mayores de 128 bytes, asignándose entonces en bloques de potencias
de 2 menos una cierta cantidad que se necesita para su control. No es aconsejable pedir
cantidades de memoria de tamaño impar ya que es menos eficiente. Por otro lado, el
tamaño máximo de memoria que se puede solicitar es de 131.056 bytes
 kmalloc tiene un segundo argumento, la prioridad. Esto se utiliza como un argumento
para la función get_free_page, usado para determinar cuándo debe hacer "return". Si la
función se pudiera llamar desde la función que trata una interrupción, se debería utilizar
GFP_ATOMIC, y así evitar que falle, ya que si se utiliase GFP_KERNEL, la función podría
quedarse suspendida esperando, y esto no se puede dar durante el tratamiento de una
interrupción.La otra opción es GFP_BUFFER, que se utiliza sólo cuando el núcleo asigna
espacio para un búfer, pero nunca se utiliza en los controladores de dispositivos.

MECANISMOS DE SEGURIDAD EN LINUX

La seguridad en un sistema se basa en los mecanismos de protección que ese sistema


proporciona. Estos mecanismos deben permitir controlar qué usuarios tienen acceso a los
recursos del sistema y qué tipo de operaciones pueden realizar sobre esos recursos.

Todo mecanismo de protección debe manejar 2 conceptos:

1. Recursos: son las partes del sistema utilizadas por los procesos.
2. Dominios de protección: son el conjunto de recursos y operaciones sobre
estos recursos que podrán utilizar todos aquellos procesos que se ejecuten
sobre él.

En general, en un sistema LINUX, el conjunto de recursos está formado por todos los
archivos del sistema, y el dominio será un usuario y los procesos que el ejecuta y que, por
tanto, tengan el mismo UID efectivo.

También podría gustarte