Está en la página 1de 27

Introducción.

Un sistema operativo es el software que maneja el hardware. Comprende


un conjunto de programas que controla el funcionamiento del componente físico,
facilitando al usuario el uso de la computadora u otro equipo. El sistema operativo
administra los recursos ofrecidos por el hardware y actúa como un intermediario
entre la computadora y su usuario. Además proporciona un ambiente en donde el
usuario pueda ejecutar programas en una forma conveniente y eficiente.

En la actualidad existe una numerosa cantidad de sistemas operativos,


cada uno con características diferentes en cuanto a su funcionamiento, pero que
en esencia cumplen con la misma función. Cuatro de los sistemas operativos más
populares son Unix, Linux, Windows y MAC, en el siguiente trabajo se pretende
profundizar en cuanto a los principales aspectos que comprenden cada uno de
ellos.
Unix
El primer sistema Unix fue desarrollado por Ken Thompson) en los
laboratorios Bell de AT&T en Murray Hill, en el estado de Nueva Jersey, Estados
Unidos, a partir de 1965. El propósito de Ken Thompson era gestar un sistema
operativo interactivo sencillo, llamado “Multics” (Multiplexed Information and
Computing System) para poder utilizar un juego que había creado (Space Travel,
una simulación del sistema solar).

UNIX nació en los Laboratorios Bell de AT&T en 1969, desarrollado por Ken
Thompson y Dennis Ritchie (también creador del lenguaje de programación C).
UNIX ofrecía solo una serie de pequeños programas, tan poco como fuese posible
con respecto a sus predecesores, y tal vez esperando que la gente querría unir
todos esos programas.

El sistema provee una serie de herramientas, cada una realiza una función
limitada y bien definida, utiliza un sistema de archivos unificado como medio de
comunicación, y un lenguaje de comandos llamado «shell» que permite combinar
esas herramientas para realizar acciones complejas.

El sistema Unix está íntimamente relacionado con la aparición de internet


ya que fue el que instaló la idea de cliente y servidor así como también al generar
la disposición en red de las computadoras utilizadas en vez de funcionar de
manera individual en computadoras aisladas. Su utilidad primordial es la de
almacenamiento de información a través de un sistema de archivos jerarquizado.
También cuenta con numerosas herramientas de software y con la posibilidad de
ser utilizado de igual manera y al mismo tiempo por varios usuarios.

UNIX es parte de Mac OS X, es lo que se ejecuta en la mayoría de los


servidores que te dejan acceder a la web, y está también dentro de millones y
millones de teléfonos. Linux es una clase de UNIX, y a la fecha puedes ejecutar
UNIX dentro de un navegador. Porque gracias UNIX todo puede ser cualquier
cosa en la tierra de las computadoras.

Aunque solo los sistemas totalmente compatibles que se encuentran


certificados por la especificación única de UNIX, pueden ser llamados UNIX como
tal, otros reciben la denominación «UNIX Like«, o similar a UNIX. El OS X de
Apple está basado en UNIX y está certificado de esa manera, mientras que Linux
es la versión más popular de sistemas no certificados.

El mismo Dennis Ritchie aclaró en entrevistas, que el veía a Linux y BSD


como una continuación de las bases de UNIX y de la ideas y visión de Ken
Thompson y muchos otros que trabajaron en UNIX hace mucho tiempo. Para
Ritchie y para muchos son derivados de UNIX.

La gente que inventó UNIX no intentaba enseñar a usar los ordenadores en


la manera en la que los entendemos hoy. Estaban educando a profesionales para
operar equipos industriales y sumamente costosos. La producción en masa y el
abaratamiento de la tecnología han cambiado casi completamente la manera en
que usamos computadores, pero algunas ideas fundamentales acerca del
software permanecen iguales 40 años después. Gracias a UNIX que hizo fácil
para los especialistas hablar sobre computación.

 Administración de Procesos
UNIX es multitarea, lo cual significa que permite la ejecución de varios
procesos simultáneamente, sin haber finalizado la ejecución de los mismos. Esto
se hace dividiendo el tiempo en porciones que se asignan a los procesos activos,
los cuales se encuentran almacenados en una cola.

Las implementaciones clásicas de Unix administran los procesos en un


esquema similar al de nSystem. La estrategia de scheduling de procesos es un
poco más elaborada pues implementa procesos con prioridades y al mismo tiempo
intenta dar un buen tiempo de respuesta a los usuarios interactivos, algo que no
es fácil de lograr debido a las restricciones que impone la memoria del procesador.

Unix en monoprocesadores

Cuando un proceso ejecuta una aplicación el procesador se encuentra en modo


usuario, y por lo tanto algunas instrucciones están inhibidas. Si se ejecutan se
produce una interrupción que atrapa el núcleo. Los segmentos del espacio de
direcciones que son visibles desde una aplicación son el de código, datos y pila.
Cuando ocurre una interrupción el procesador pasa al modo sistema e invoca una
rutina de atención de esa interrupción. Esta rutina es provista por el núcleo y su
dirección se rescata del vector de interrupciones, el que no es visible desde un
proceso en modo usuario.

 Llamadas al sistema: Las llamadas al sistema siempre las ejecuta el núcleo


en el modo sistema. La única forma de pasar desde una aplicación al modo
sistema es por medio de una interrupción. Por lo tanto las llamadas al sistema
se implementan precisamente a través de una interrupción. Cuando se hace
una llamada al sistema como read, write, etc., se invoca un procedimiento de
biblioteca cuya única labor es colocar los argumentos en registros del
procesador y luego ejecutar una instrucción de máquina ilegal (instrucción
trap). Esta instrucción causa la interrupción que el núcleo reconoce como una
llamada al sistema.

 El segmento sistema: Al pasar a modo sistema, comienza a ejecutarse


código del núcleo. El espacio de direcciones que se ve desde el núcleo
contiene los mismos segmentos que se ven desde una aplicación: código,
datos y pila. Pero además se agrega un nuevo segmento: el segmento
sistema. El segmento sistema es compartido por todos los procesos. Es decir
no existe un segmento sistema por proceso, sino que todos los procesos ven
los mismos datos en este segmento. Si un proceso realiza una modificación en
este segmento, los demás procesos verán la modificación. El segmento
sistema contiene el código del núcleo, el vector de interrupciones, los
descriptores de proceso, la cola de procesos ready (listos), las colas de E/S de
cada dispositivo, los buffers del sistema de archivos, las puertas de acceso a
los dispositivos, la memoria de video, etc. En fín, todos los datos que los
procesos necesitan compartir. Por simplicidad, es usual que las
implementaciones de Unix ubiquen los segmentos de la aplicación por debajo
de los 2 gigabytes (la mitad del espacio direccionable) y el segmento sistema
por arriba de los 2 gigabytes. Además en el segmento sistema se coloca toda
la memoria real del computador. De esta forma el núcleo no solo puede ver la
memoria del proceso interrumpido, sino que también pueden ver la memoria de
los demás procesos.

 Procesos Ligeros en el núcleo: Cada proceso pesado tiene asociado en el


núcleo un proceso ligero encargado de atender sus interrupciones. Este
proceso ligero tiene su pila en el segmento sistema y comparte sus datos y
código con el resto de los procesos ligeros que corren en el núcleo. Es en este
proceso ligero en donde corre la rutina de atención de cualquier interrupción
que se produzca mientras corre una aplicación en el modo usuario, sea esta
interrupción una llamada al sistema, un evento de E/S relacionado con otro
proceso, una división por cero, etc.
Conceptualmente, una llamada al sistema es un mensaje síncrono que
envía el proceso pesado al proceso ligero en el núcleo. De igual forma el
retorno de la rutina de atención corresponde a la respuesta a ese mensaje que
permite que el proceso pesado pueda continuar. Los procesos del núcleo se
ejecutan con las interrupciones inhibidas y por lo tanto no puede haber
cambios de contexto no deseados. De esta forma se logra la exclusión en las
secciones críticas del núcleo. Los cambios de contexto sólo ocurren
explícitamente.
Para implementar este esquema, el hardware de los microprocesadores
modernos ofrece dos punteros a la pila, uno para el modo usuario y otro para el
modo sistema y su intercambio se realiza automáticamente cuando ocurre una
interrupción. Desde luego, en el modo usuario, el puntero a la pila del modo
sistema no es visible, mientras que en el modo sistema sí se puede modificar
el puntero a la pila del modo usuario.

Unix en multiprocesadores

Un multiprocesador puede correr varios procesos Unix en paralelo. Todos los


procesadores comparten la memoria real del computador, pero la visión
conceptual de un proceso Unix sigue siendo la misma: un solo procesador en
donde corre un programa. Es decir que los múltiples procesos Unix que corren en
un multiprocesador no comparten sus espacios de direcciones.

 Scheduling: En este esquema hay un reloj regresivo por procesador. De


modo que el tiempo de cada procesador se puede multiplexar en tajadas de
tiempo que se otorgan por turnos a los distintos procesos que estén listos
para correr. Cada vez que ocurre una interrupción del reloj regresivo, la rutina
de atención debe colocar el proceso en ejecución en la cola global de
procesos ready, extraer un nuevo proceso y ejecutarlo. El problema se
presenta cuando la interrupción se produce simultáneamente en dos
procesadores. Entonces los dos procesadores modificarán paralelamente la
cola global de procesos, con el peligro de dejar la cola en un estado
inconsistente.

 Un solo procesador en el núcleo: Cuando todos los procesadores ejecutan


instrucciones en el modo usuario, no hay secciones críticas puesto que los
procesos que corren en cada procesador no comparten sus espacios de
direcciones. De igual forma si sólo uno de los procesadores se encuentra en
el modo sistema, no hay peligro de modificación concurrente de una
estructura de datos compartida. El peligro de las secciones críticas se
presenta cuando hay 2 o más procesadores reales en el modo sistema al
mismo tiempo, es decir en el núcleo compartiendo el mismo segmento
sistema. Por lo tanto, la forma más simple de implementar Unix en un
multiprocesador es impedir que dos procesadores puedan correr
simultáneamente en el modo sistema.

El problema es cómo impedir que dos procesadores ejecuten en paralelo


código del núcleo. La solución estándar en un monoprocesador que consiste
en inhibir las interrupciones no funciona en un multiprocesador. En efecto,
sólo se pueden inhibir las interrupciones externas a la CPU, es decir las del
reloj regresivo y las de E/S. Un proceso en el modo usuario puede realizar
llamadas al sistema con las interrupciones externas inhibidas. Es decir que si
dos procesos que se ejecutan en procesadores reales llaman al sistema al
mismo tiempo, ambos entrarán al núcleo y habrá dos procesadores corriendo
en el modo sistema. Esto originará problemas de sección crítica.

 Exclusión a través de candados: Para impedir que dos procesadores pasen


al modo sistema simultáneamente por medio de una llamada al sistema, se
coloca un candado (lock) a la entrada del núcleo. Cuando un procesador entra
al núcleo cierra el candado. Si otro procesador intenta entrar al núcleo tendrá
que esperar hasta que el primer proceso abra el candado al salir del núcleo.
El candado es una estructura de datos que posee dos operaciones:

1. Lock(&lock): Si el candado está cerrado espera hasta que esté abierto.


Cuando el candado está abierto, cierra el candado y retorna de inmediato.
2. Unlock(&lock): Abre el candado y retorna de inmediato.

El candado se cierra al principio de la rutina de atención de las


interrupciones por llamadas al sistema. Es decir cuando el procesador ya se
encuentra en el modo sistema, pero todavía no ha realizado ninguna acción
peligrosa. Si el procesador encuentra cerrado el candado, se queda bloqueado
hasta que el candado sea abierto por el procesador que se encuentra en el
modo sistema. Mientras tanto el procesador bloqueado no puede ejecutar
otros procesos, pues dado que la cola ready es una estructura de datos
compartida, no puede tener acceso a ella para extraer y retomar un proceso.

El candado se abre en la rutina de atención justo antes de retornar a la


aplicación. No es razonable implementar el candado antes de que la
aplicación pase al modo sistema, puesto que nadie puede obligar a una
aplicación a verificar que el candado está abierto antes de hacer una llamada
al sistema.

 Implementación de candados: El candado se representa mediante un entero


que puede estar OPEN o CLOSED. El problema es que dos procesadores
pueden cargar simultáneamente el valor de este entero y determinar que el
candado está abierto y pasar ambos al modo sistema. Para implementar un
candado, la mayoría de los microprocesadores ofrecen instrucciones de
máquina atómicas (indivisibles) que permiten implementar un candado. Esta
instrucción intercambia atómicamente el contenido de la dirección especificada
con el contenido del registro, Sólo que por el hecho de ejecutarse
atómicamente, dos procesadores que tratan de ejecutar en paralelo esta
instrucción, serán secuencializados.
Si un procesador encuentra el candado cerrado, la operación swap
(instrucción que realiza el procedimiento anteriormente mencionado) se
realiza de todas formas, pero el resultado es que el candado permanece
cerrado. En inglés, un candado implementado de esta forma se llama spin-
lock. Si el candado se encuentra cerrado, antes de volver a consultar por el
candado se ejecuta un pequeño ciclo que dure algunos micro-segundos. Esto
se hace con el objeto de disminuir el tráfico en el bus de datos que es
compartido por todos los procesadores para llegar a la memoria.

 Núcleos Multi-threaded: Para resolver definitivamente el problema de las


secciones críticas en el núcleo de un sistema operativo para multiprocesadores
se debe permitir que varios procesadores puedan ejecutar procesos ligeros en
el núcleo. Además estos procesos deben ser interrumpibles. Los procesos
ligeros del núcleo deben sincronizarse a través de semáforos, mensajes o
monitores. Un semáforo del núcleo se implementa usando un spin-lock. Éste
es un candado a la estructura de datos que representa el semáforo.

El principio es que el candado permanece cerrado sólo cuando un


procesador está manipulando el semáforo. Si el contador está en 0, el
proceso se coloca en la cola del semáforo, se abre nuevamente el candado y
el procesador llama al scheduler para retomar un nuevo proceso. En ningún
caso, el procesador espera en un spin-lock hasta que el contador del
semáforo se haga positivo. De esta forma, el tiempo que permanece cerrado
el candado es del orden de un microsegundo.

Cuando hay varios procesadores corriendo, no se puede tener una variable


global que apunta al proceso en ejecución. Además, el scheduler debe tener
otro candado asociado a la cola de procesos ready, para evitar que dos
procesadores extraigan o encolen al mismo tiempo.

Unix System V.4 utiliza este esquema, Se dice que el núcleo de este
sistema es multi-threaded, porque puede correr en paralelo varios threads en
el núcleo, a diferencia de la implementación clásica en donde corre un solo
thread en el núcleo, y además es ininterrumpible.

 Administración de Memoria
Puesto que UNIX se ideó para ser independiente de la máquina, su
esquema de gestión de memoria varía de un sistema a otro. Las primeras
versiones de UNIX simplemente empleaban particiones variables sin ningún
esquema de memoria virtual. Las implementaciones actuales utilizan memoria
virtual paginada. El sistema de paginación ofrece una memoria virtual que asigna
marcos de página en la memoria principal a los procesos y también asigna marcos
de página a los buffers (memorias intermedias) de los bloques de disco. Aunque
esto es un esquema de gestión de memoria efectiva para procesos de usuario y
de E/S de disco, un esquema de memoria virtual paginado tiene peor adaptación a
la gestión de asignación de memoria para el kernel, y para este último propósito se
utiliza un gestor de memoria del kernel.

Lo estándar en Unix es un sistema de intercambio de segmentos de un


proceso entre la memoria principal y la memoria secundaria, llamado swapping, lo
que significa que se debe mover la imagen de un proceso al disco si este excede
la capacidad de la memoria principal, y copiar el proceso completo a memoria
secundaria . Es decir, durante su ejecución, los procesos son cambiados de y
hacia memoria secundaria conforme se requiera. La paginación por demanda y
combinación de segmentos paginados, en ambos casos con paginas de tamaño
fijo.

Se utiliza la partición de disco duro para el área de intercambio, en algunos


sistemas el tamaño de la página en Unix es de 512 bytes; en otros, de 1024. Para
reemplazo se usa un algoritmo que mantiene en memoria las páginas empleadas
recientemente. Un sistema de paginación por demanda ofrece muchas más
ventajas en cuanto a flexibilidad y agilidad en la atención concurrente de múltiples
procesos mayores que el de la memoria central. Estos esquemas son bastante
complejo y requieren el apoyo de hardware especializado.

Unix modernos soportan la llamada al sistema mmap, el uso del espacio de


direcciones es menos estructurado. Implementación de librerías compartidas
pueden ubicar texto o datos arbitrariamente, representar la noción de regiones
predefinidas obsoletas.

Se asigna una partición de disco duro que sea al menos el doble de la


cantidad real de la computadora. Si un proceso necesita crecer, pide más memoria
al sistema operativo y se le da una nueva sección, lo suficientemente grande para
acomodarlo. Entonces, se copia el contenido de la sección usada al área nueva,
se libera la sección antigua y se actualizan las tablas de descriptores de procesos.
Si no hay suficiente memoria en el momento de la expansión, el proceso se
bloquea temporalmente y se le asigna espacio en memoria secundaria. Se copia a
disco y, posteriormente, cuando se tiene el espacio adecuado (lo cual sucede en
algunos segundos) se devuelve a memoria principal.

En un mapa tradicional de Unix, el kernel y sus estructuras de datos


asociadas residen en la parte alta del espacio de direcciones. El texto inicial y las
áreas de datos empiezan en o acerca del principio de memoria. Típicamente, los
primeros 4 o 8 Kbyte de memoria son conservados fuera de los límites del
proceso. La razón de esta restricción es que para una depuración de un programa
fácil; indirectamente a través de un apuntador nulo causaran un fallo de dirección
inválida, en lugar de leer o escribir el texto del programa. El vector de argumento y
los vectores de ambiente están en la parte más alta de la porción de usuario del
espacio direcciones. La pila de usuario empieza justo debajo de estos vectores y
crece hasta las direcciones más bajas. Además, todos los procesos que forman
parte del kernel no pueden ser intercambiados a disco.

 Sistema de archivos
A modo de resumen, las principales características del sistema de ficheros de
UNIX son las siguientes:

 Los usuarios tienen la posibilidad de crear, modficar y borrar archivos y


directorios.
 Para cada archivo se definen tres tipos de acceso diferentes: acceso de
lectura, acceso de escritura y acceso de ejecución. Estos tres tipos de acceso
se le aplican al creador del archivo, al grupo al que pertenece y al resto de los
usuarios del sistema; con esto los archivos se pueden compartir.
 Proteger los datos de los archivos. Cada archivo tiene una serie de derechos
asociados, los cuales determinan y limitan los posibles accesos por parte de
otras personas.
 Cada usuario puede estructurar sus archivos como desee, el núcleo de UNIX
no impone ninguna restricción, ya se encargan los programas de darle un
sentido a los ficheros.
 UNIX ofrece herramientas para realizar copias de seguridad de ficheros para
prevenir la pérdida de la información.
 Proporciona la posibilidad de cifrado y descifrado de información. Eso se puede
hacer para que los datos sólo sean útiles para las personas que conozcan la
clave de descifrado.
 El usuario tiene una visión lógica de los datos, es el sistema el encargado de
manipular correctamente los dispositivos y darle el soporte físico deseado ala
información. El usuario no tiene que preocuparse por los dispositivos físicos, es
el sistema el que se encarga de la forma en que se almacenan los datos en los
dispositivos y de los medios físicos de transferencia de datos desde y hacia los
mismos.
 Tratar a los dispositivos de entrada salida como si fuesen archivos. En UNIX
todo es un archivo.
 Tiene una estructura jerárquica en forma de árbol invertido.
 Es un sistema de archivos dinámico porque permite crear, modificar y eliminar
ficheros. Los archivos aumentan su tamaño dinámicamente, no teniendo el
usuario que especificar previamente un tamaño.
 En UNIX los archivos están organizados en lo que se conoce como directorios.
Un directorio no es más que un archivo algo especial, el cual contiene
información que permite localizar otros archivos. Los directorios pueden
contener, a su vez, nuevos directorios, los cuales se denominan subdirectorios.
 Ventajas
 El Sistema Operativo Unix es muy estable. Es típico ver servidores de Unix
que tienen meses, incluso años de funcionamiento continuo sin la necesidad
de tener que apagarlos.
 El Unix es el único Sistema Operativo diseñado en un lenguaje de alto nivel lo
cual lo ha convertido en un Sistema Operativo independiente del Hardware Es
prácticamente imposible insertar virus en un servidor de Unix. Esto lo hace
uno de los servidores de red más seguros y estables.
 El Unix utiliza muy eficientemente la memoria. Permite a las aplicaciones
reservar grandes segmentos de memoria
 El Unix es un maletín de herramientas para el procesamiento de textos y está
repleto de ellas.
 Gracias a los mecanismos de seguridad, un usuario que no sepa una cuenta
de usuario ("login") y su correspondiente clave de acceso ("password") no
puede tener acceso en absoluto al sistema.
 Los componentes más importantes en un servidor de Unix son la memoria y
el CPU. Por ello, podemos tener un servidor con varios procesadores
ejecutando los procesos con las técnicas m s avanzadas
 Unix es sin lugar a dudas el Sistema Operativo más importante y serio desde
que en los años 70 los Sistemas Operativos se empezaron a estandarizar.
 UNIX es un sistema operativo multitarea (el sistema se encarga de repartir el
tiempo de uso de procesador de cada aplicación que esté funcionando)
 UNIX es un sistema abierto: no sólo es posible acceder a las diferentes
versiones desarrolladas para cada máquina, sino también a los programas
originales
 UNIX presta (desde sus primeras versiones en los años 70) una especial
atención a las comunicaciones, uso remoto de los equipos y compartición de
recursos.
 Desventajas
 Problemas de hardware, no soporta todas las plataformas, y no es compatible
con algunas marcas específicas.
 No existe un control de calidad al momento de elaborar software para Linux,
pues muchas veces las aplicaciones se hacen y se liberan sin control alguno.
  Es poco probable que aplicaciones para DOS y OS/2, se ejecuten
correctamente bajo Linux.
 No hay forma segura de instalarlo sin reparticionar el disco duro.
 El reparticionar el disco duro, implica borrar toda la información del mismo y
después restablecerla.

 Se requiere experiencia y conocimiento del sistema para administrarlo, pues


como es un sistema por línea de comandos, estos poseen muchas opciones y
en ocasiones es difícil realizar algunas tareas, que en otros sistemas
operativos son triviales.
Linux
Linux es un sistema operativo de software libre (no es propiedad de ninguna
persona o empresa), por ende no es necesario comprar una licencia para
instalarlo y utilizarlo en un equipo informático. Es un sistema multitarea,
multiusuario, compatible con UNIX, y proporciona una interfaz de comandos y una
interfaz gráfica, que lo convierte en un sistema muy atractivo y con estupendas
perspectivas de futuro.

Al ser software libre, el código fuente es accesible para que cualquier usuario
pueda estudiarlo y modificarlo. La licencia de Linux no restringe el derecho de
venta, por lo que diversas empresas de software comercial distribuyen versiones
de Linux. Además de esto, este sistema cuenta con muchas distribuciones y
gestores de ventanas para el entorno gráfico.

El sistema operativo Linux fue desarrollado por Linus Torvalds, y se basa en el


sistema Minix que a su vez está basado en el sistema Unix, Torvalds fue
añadiéndole herramientas y utilidades, haciéndolo operativo. A partir de la primera
versión de Linux el sistema ha sido modificado por miles de programadores de
todo el mundo, bajo la coordinación de su creador.

El nombre de Linux proviene del nombre de su autor Linus y del sistema operativo
UNIX. No obstante, su verdadero nombre es GNU/Linux, ya que el sistema se
distribuye bajo licencia GNU GPL (General Public License).

La estructura del Linux está basada en un micronúcleo híbrido que ejecuta los
servicios más básicos del sistema operativo. El Kernel es el núcleo del sistema; la
parte que interactúa directamente con el hardware, administrando todos los
recursos de éste, como la memoria, el microprocesador, los periféricos, etc.

Además, tiene un programa que aísla al usuario del núcleo, conocido como Shell o
intérprete de comandos, su función es interpretar las órdenes o aplicaciones que
el usuario mande al sistema, desde una terminal en modo texto o desde un
entorno gráfico, y traducirlas a instrucciones que el sistema operativo entienda.

Dependiendo de su versión este sistema operativo se utiliza en


supercomputadoras y servidores como computadoras personales. Las diferentes
variantes del Linux se denominan distribuciones, entre los más conocidos se
encuentran Red Hat-Fedora, Suse, Debian, Ubuntu, y Mandriva.

Cada distribución de Linux distribuye el núcleo mediante las actualizaciones del


sistema operativo.
Linux ha avanzado mucho en los últimos años, añadiendo mejoras en las
interfaces gráficos de usuario, y en el reconocimiento y utilización de los recursos
hardware. Poco a poco va ganándole terreno a Windows y a Unix, se ha
convertido en el favorito de los usuarios de computadoras y de negocios expertos
(empresas como IBM o Hewlett-Packard) que lo consideran una alternativa
robusta y de bajo costo en comparación con los otros sistemas operativos; y
prestan el soporte técnico correspondiente, normalmente como parte de los
sistemas servidores.

 Administración de procesos
Linux es un sistema operativo multitarea y multiusuario. Esto significa que
múltiples procesos pueden ejecutarse simultáneamente sin interferir unos con
otros. Cada proceso tiene la “ilusión” de que es el único proceso en el sistema y
que tiene acceso exclusivo a todos los servicios del sistema operativo.

Programas y procesos son entidades distintas. En un sistema operativo


multitarea, múltiples instancias de un programa pueden ejecutarse
simultáneamente. Cada instancia es un proceso separado. Por ejemplo, si cinco
usuarios desde equipos diferentes, ejecutan el mismo programa al mismo tiempo,
habría cinco instancias del mismo programa, es decir, cinco procesos distintos.
Cada proceso que se inicia es referenciado con un número de identificación único
conocido como Process ID PID, que es siempre un entero positivo. Prácticamente
todo lo que se está ejecutando en el sistema en cualquier momento es un proceso,
incluyendo el shell, el ambiente gráfico que puede tener múltiples procesos, etc.
La excepción a lo anterior es el kernel en sí, el cual es un conjunto de rutinas que
residen en memoria y a los cuales los procesos a través de llamadas al sistema
pueden tener acceso.

 Primer y segundo plano: Cualquier proceso puede estar en primer o segundo


plano. Lo único a tener en cuenta es que solo un proceso estará en primer
plano al mismo tiempo y es con el que estemos trabajando e interactuando en
ese momento. Un proceso que este en segundo plano no recibirá ninguna
señal de parte nuestra, es decir que no nos podemos comunicar con él a
través, por ejemplo, del teclado. La utilidad de enviar un programa a segundo
plano está dada por el hecho de que existen tareas que no requieren de
nuestro control para que se ejecuten. Por ejemplo, bajar algún archivo de
Internet, compilar el kernel u otro programa. Estas son tareas que pueden ser
lanzadas tranquilamente en segundo plano.
 Scheduling: El scheduling en Linux se basa en la técnica de tiempo
compartido (time sharing): varios procesos corren en “multiplexado en tiempo”
ya que el tiempo de CPU se divide en ranuras (time slices), una para cada
proceso ejecutable (recordemos que los procesos detenidos y suspendidos no
pueden ser seleccionados por el algoritmo de scheduling para correr en una
CPU). Por supuesto, un único procesador solamente puede correr un proceso
en cualquier instante dado.

Si un proceso actualmente corriendo no termina cuando expira su time slice


o quantum, puede ocurrir un cambio de proceso. El time sharing descansa
sobre el mecanismo de interrupciones de reloj (timer interrupts) y es por lo
tanto transparente a los procesos. No se necesita añadir código adicional a los
programas para obtener tiempo de CPU compartido.

La política de scheduling también se basa en el ordenamiento de procesos de


acuerdo a su prioridad. A veces se utilizan algoritmos complicados para derivar
la prioridad actual de un proceso, pero el resultado final es el mismo: a cada
proceso se asocia un valor que le dice al scheduler cuán apropiado es hacer
correr el proceso en una CPU. En Linux, la prioridad de los procesos es
dinámica. El scheduler monitorea qué están haciendo los procesos y ajusta sus
prioridades periódicamente; de esta forma, los procesos que no han obtenido
el uso de una CPU por largo tiempo son apoyados incrementando
dinámicamente su prioridad. Correspondientemente, los procesos que corren
durante largo tiempo son penalizados disminuyendo su prioridad.

 Desalojo de Procesos: Los procesos en Linux son desalojables


(preemptible). Cuando un proceso ingresa en el estado TASK_RUNNING, el
kernel verifica si su prioridad dinámica es mayor que la del proceso
actualmente corriendo (current). Si es así, la ejecución de current es
interrumpida y se invoca al scheduler para seleccionar otro proceso para
correr (normalmente el proceso que acaba de convertirse en ejecutable). Por
supuesto, un proceso también puede ser desalojado cuando expira su
quantum. Cuando esto ocurre, se levanta el flag TIF_NEED_RESCHED en
la estructura thread_info del proceso actual, de modo que se invoque el
scheduler cuando su quantum expire.
Por ejemplo, consideremos un escenario en el cual dos programas, un editor
de textos, y un compilador, están siendo ejecutados. El editor de textos es un
programa interactivo, así que tiene una prioridad dinámica más alta que el
compilador. Sin embargo, es suspendido frecuentemente, porque el usuario
alterna entre ingreso de datos y pausas para pensar; más aún, la demora
promedio entre dos teclas pulsadas es relativamente larga. Sin embargo,
apenas el usuario oprime una tecla, se levanta una interrupción y el kernel
despierta al proceso editor de textos. También determina el kernel que la
prioridad dinámica del editor es mayor que la prioridad de current, el proceso
corriendo actualmente (el compilador), de modo que establece el flag
TIF_NEED_RESCHED de este proceso, forzando así al scheduler a que se
active cuando el kernel termine de atender la interrupción. El scheduler
selecciona al editor y ejecuta un cambio de proceso; como resultado, la
ejecución del editor se reanuda muy rápidamente y el carácter tipeado se
refleja en la pantalla. Cuando el carácter ha sido procesado, el proceso editor
de textos se suspende esperando otra tecla pulsada y el proceso compilador
puede reanudar su ejecución. un proceso desalojado no es suspendido, porque
permanece en estado TASK_RUNNING; simplemente no usa más la CPU.

 Administración de memoria

Linux soporta las características de Memoria Virtual (virtual memory). Esto


significa usar un disco como una extensión de la memoria RAM, de forma tal que
el tamaño efectivo de memoria utilizable crezca considerablemente. El kernel se
encarga de escribir el contenido de un bloque de memoria que no está siendo
utilizado al disco rígido de forma que esta porción de memoria quede disponible
para otro propósito. Cuando los bloques originales vuelven a ser requeridos, son
leídos y colocados nuevamente en memoria. Todo esto es realizado en forma
completamente transparente para el usuario. Los programas ejecutados bajo Linux
solo ven una gran cantidad de memoria disponible y no saben que parte de ellos
reside en el disco en un momento dado. Por supuesto que leer y escribir en el
disco es mucho más lento que utilizar la memoria real (en el orden de 1000 veces
más lento), Por lo que los programas se tornan mucho más lento también. La parte
del disco que es usado como memoria virtual se llama área de swap (swap
space).

Linux puede utilizar tanto un archivo normal en el sistema de archivos como


una partición separada del disco como área de swap. Una partición swap es
mucho más rápida, pero es mucho más fácil cambiar el tamaño del área de swap
si este es un archivo (y no hay necesidad de particionar el disco rígido entero, y
posiblemente instalar todo desde cero). Cuando se conoce la cantidad de espacio
swap que se necesita, es más indicado optar por una partición swap. Pero si no se
está seguro de la cantidad de espacio que se necesita, se puede crear primero un
archivo swap, probar el sistema hasta que se esté seguro del tamaño necesario, y
luego construir una partición con dicho tamaño.

Cabe señalar que Linux permite también usar una o varias particiones de swap
y/o archivos de swap al mismo tiempo. Esto significa que si ocasionalmente se
necesita una cantidad adicional de espacio swap, se puede crear un archivo de
swap extra para ese momento especial, en lugar de mantener una partición con
todo ese espacio necesario en forma permanente.
 Sistema de archivos
GNU/Linux comenzó su andadura con su sistema de archivos “Ext2”, pero éste
fue sustituido por nuevas versiones que si tenían la capacidad de trabajar con
grandes volúmenes de información (Terabytes) y de poder restituir rápidamente
(gracias al “Journaling”) el sistema ante un fallo importante en el sistema de
archivos. Posteriormente aparecieron otros sistemas de archivos nuevos y
mejoras sobre el modelo existente. Estos son:

 Ext2 (Sistema de archivos Extendido, versión 2) el primer sistema de


archivos utilizado por GNU/Linux fue creado por Remy Card (no es del todo
cierto, antes existió “Ext”, utilizado con “Minix”, pero debido a sus
limitaciones y usos no suele contar como un sistema de archivos válido para
las distribuciones GNU/Linux que conocemos hoy en día). Como todos los
sistemas de archivos de Linux, éste también es asíncrono, es decir, no
escribe inmediatamente los metadatos en el dispositivo de almacenamiento,
sino que lo hace de manera periódica. Con ello consigue aprovechar los
tiempos muertos de la CPU y consecuentemente, el rendimiento general del
equipo. Pese a ser el primero, ya dispone de mecanismos que permiten la
recuperación de la información en caso de fallo (detectando particiones
desmontadas erróneamente).
 Ext3 (Sistema de archivos Extendido, versión 3) es compatible con Ext2
(la única diferencia con éste es que posee un fichero adicional de registro
para implementar “journaling”). De hecho, el objetivo de Ext3 era mejorar
Ext2, pero manteniendo la compatibilidad con éste. Entre las principales
diferencias cabe destacar que Ext3 mantiene la consistencia no solo de los
metadatos (como ya hace Ext2) sino también de los propios datos. Por
supuesto, la seguridad de poder recuperar los datos de nuestro sistema
tiene un coste, y es que tendremos menos rendimiento y más consumo de
espacio en disco.
 Ext4 (Sistema de archivos Extendido, versión 4) mantiene la
compatibilidad con sus antecesores, posee “journaling”, reduce
considerablemente la fragmentación de archivos (mejorando con ello el
rendimiento), permite dispositivos de almacenamiento de más capacidad.
 ReiserFS desarrollado por la empresa Namesys, fue el primer sistema
de archivos con “journal” incluido en un núcleo estándar de Linux. Pero
además, implementa otra serie de ventajas no disponibles en otros sistemas
de archivos, como puede ser la repartición de sistemas de ficheros
montados, o un esquema para reducir la fragmentación. La versión más
reciente de este sistema de archivos se denomina “Reiser4”, y además de
las características antes indicadas, posee mecanismos que le permiten
trabajar con cientos de miles de archivos, y una estructura de archivos
optimizada.
 XFS creado por Silicon Graphics Inc., se trata de un sistema de archivos
con “journaling” que inicialmente funcionaba sobre la implementación IRIX
de UNIX, pero que posteriormente se liberó como código abierto. Destaca
por su alta escalabilidad y fiabilidad (admite redireccionamiento de 64 bits,
implementación paralelizada), y sobre todo porque es capaz de trabajar con
archivos muy grandes.
 JFS desarrollado por IBM, inicialmente fue creado para servidores de alto
rendimiento y equipos de altas prestaciones. Posee un eficiente “journaling”
que le permite trabajar cómodamente con archivos de gran tamaño como
con otros más pequeños. Las particiones JFS pueden ser dinámicamente
redimensionadas (como ya hacía RaiserFS), pero no pueden ser
comprimidas (algo que si hacen RaiserFS y XFS).

El sistema de ficheros de Linux permite al usuario crear, borrar y acceder a los


ficheros sin necesidad de saber el lugar exacto en el que se encuentran.

En Linux no existen unidades físicas, sino ficheros que hacen referencia a


ellas, integrados en la estructura de ficheros como cualquier otro

 Ventajas
 Robusto, estable y rápido, por esta combinación de características, es el
sistema operativo ideal para los servidores y las aplicaciones distribuidas. A
su vez, puede funcionar sin problemas en máquinas humildes o de bajos
recursos.
 Es libre (Por lo tanto, cumple con la gratuidad del software.
 Modificable), es de código abierto, así que se desarrollan muchas
aplicaciones en Internet e incluso los usuarios pueden modificar
directamente sistema operativo.
 Para todas las personas, no se encuentra restringido únicamente las
personas con conocimientos avanzados de informática, gracias a su
interfaz gráfica, todos lo pueden usar sin problemas.
 Facilidad de uso, en distribuciones como Ubuntu se han automatizado
todas las tareas, así que es un sistema operativo bastante amigable con el
usuario.
 Seguridad, para hacerlo a través de una comparación, el sistema operativo
más usado es Windows, así que la creación de virus se concentra más que
nada en este sistema operativo. Igualmente, para la creación de virus en
Linux es mucho más complejo y es poco probable que haga daño, ya que
siempre se solicita permiso para todo. Es raro que entregó un virus, pero no
imposible, aunque sí muy complicado.
 Personalización, con esto se hace referencia al entorno y la selección de
distintos tipos de gestores de ventanas, en donde los más conocidos son
KDE y Gnome. Es una gran ventaja para los equipos con pocos recursos.
 Variedad de distribuciones, una de las ventajas más interesantes, es la
gran variedad de distribuciones, en donde cada una está hecha para un fin
específico como por ejemplo: entretenimiento, seguridad, principiantes,
equipos con pocos recursos, etcétera
 Variedad de software, por lo general, es gratuito, se puede encontrar sin
mucho esfuerzo y hay alternativas para casi todo lo que se necesita. Como
dato de interés, casi todos los programas que se usan Windows, tienen su
versión en Linux.
 Ideal para aprender es de lo mejor, para profundizar un poco y jugar con el
sistema operativo, más que nada si se quiere investigar y aprender cosas
nuevas. Es perfecto para programar.

 Desventajas:

 No hay empresa que lo respalde, no existe como tal o soporte para su


sistema operativo, pero esto se compensa con su gran comunidad, la cual
es muy activa.
 Configuración, existen distribuciones en las que la configuración es
inexistente del mismo modo que con Windows, pero si no se opta por una
distribución de este tipo, puede ser muy difícil para las personas novatas en
informática.
 Compatibilidad de programas de Windows, hay versiones alternativas
para los programas más populares de Windows, pero no existe
compatibilidad con ellos.
 Periféricos, no se cuenta con todos los controladores disponibles para los
periféricos.
 Curva de aprendizaje, si las personas vienen desde otro sistema
operativo, puede ser bastante larga

Windows
Windows es un sistema operativo desarrollado por Microsoft, para el uso en
computadoras personales (PC), acompañado de un conjunto de programas y un
sistema de organización de archivos propio. Windows se caracterizó
principalmente por contar con una interfaz de ventanas (Windows) que se
superponen para mostrar distinta información.

Esta base de ventanas fue éxito histórico porque permitió dejar en el


pasado las secuencias de comando de control como las usadas en el sistema
operativo DOS. Windows es el sistema operativo más propagado a nivel mundial,
utilizado por millones de usuarios. Tanto así fue su predominio en la informática
que la mayoría de programas se han desarrollados pensando en este sistema, y
sus empleos se realizan solamente en él y no en otro.

Windows presenta diferentes aplicaciones en su sistema, entre ellos se


encuentran el navegador de web Internet Explorer, el Reproductor Windows
Media, un programa de seguridad Windows Defender, Windows Media Center,
WordPad, Paint, entre otras.

 Administración de proceso
Cada vez que nosotros abrimos un programa para ser ejecutados, el Sistema
Operativo Windows de Microsoft crea uno o más procesos, conocidos también
como aplicaciones, que podemos visualizar en el administrador de tareas. Estos
procesos contienen información e instrucciones que son ejecutadas por el
procesador para que funcione el programa que hemos abierto.

Así mismo, podemos identificar y administrar cada uno de los procesos de


Windows que se están ejecutando en el equipo local propio, así como en los
ordenadores remotos a través de su red. La administración e identificación de
estos procesos lo podemos hacer ingresando al administrador de tareas, haciendo
click en la pestaña «process» y luego verificar su estado, ya sea para eliminarlo o
dejar que siga su ejecución.

 Administración de memoria
El gestor de memoria está diseñado para trabajar con páginas que van desde los
4 Kbytes hasta 64Kbytes. Las plataformas Intel, PowerPC, y MIPS tienen 4096
bytes por página y las plataformas DEC Alpha tienen 8192 bytes por página.

La gestión de memoria en Windows es de memoria virtual con paginación (se


encarga del intercambio de información entre nuestra memoria y el disco duro) y
Working Set o conjunto de Trabajo.

Es una familia de sistemas operativos producidos por Microsoft e IBM muy


parecido al UNIX. Un proceso en Windows NT sólo puede acceder a los 2 GB de
la parte inferior de su espacio de direccionamiento, teniendo en cuenta además
que los 64 KB más altos y más bajos no son accesibles.

El núcleo de Windows NT, en los 2 GB de sistema residen todos los controladores


de dispositivos, donde están completamente protegidos de cualquier acceso o
manipulación por programas maliciosos.

Lo que se busca es contar con capacidad suficiente de memoria, con una


velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que
no sea excesivo. Los niveles que componen la jerarquía de memoria
habitualmente son: * Nivel 0: Registros * Nivel 1: Memoria caché * Nivel 2:
Memoria principal * Nivel 3: Disco duro (con el mecanismo de memoria virtual)

Windows Utiliza una planificación Multitarea Cooperativa y La Multitarea con


Derecho Preferente algoritmo ejecuta los procesos según la prioridad de estos.

 Sistema de archivos
Microsoft sistema operativo Windows utiliza dos sistemas principales de
archivos: FAT , heredadas del viejo DOS con su posterior extensión FAT32 , y
ampliamente usados NTFS sistemas de archivos. Recientemente
lanzado ReFSsistema de archivos fue desarrollado por Microsoft como una nueva
generación de sistema de archivos para Windows 8 Servidores.

 FAT ( File Allocation Table ): Es uno de los tipos más simples de los sistemas
de archivos. Consiste en un sistema de archivos del sector descriptor (sector
de arranque), una tabla de sistema de archivos de asignación de bloques y el
espacio de almacenamiento sin formato para almacenar archivos y carpetas.
Los archivos de FAT se almacenan en directorios de conjuntos de registros de
32 bytes. Registro de atributos de archivo del primer bloque de un archivo.
Cualquier bloque siguiente se puede encontrar a través de una tabla de
asignación de bloque, utilizándola como una lista enlazada.
 NTFS NTFS ( New Technology File System ): se introdujo en Windows NT y
en la actualidad es un sistema de archivos importante para Windows. Este es
el sistema de archivos por defecto para las particiones de disco y el único
sistema de archivos que soporta particiones de disco durante 32 GB . El
sistema de archivos es muy extensible y soporta muchas características de
archivo, incluyendo el control de acceso, encriptación, etc. Cada archivo en
NTFS se almacena como un descriptor de archivo en una tabla maestra de
archivos de contenido y archivo. Una tabla maestra de archivos contiene toda
la información acerca del archivo: el tamaño, la asignación, el nombre, etc. La
primera y los últimos sectores del sistema de archivos contienen la
configuración del sistema de archivos (registro de arranque o de superbloque).
Este sistema de archivos utiliza 48 y 64 bits valores de referencia a archivos,
por lo tanto, el apoyo a los almacenamientos de disco de alta capacidad.
 Refs (sistema de archivos Resilient ): Es el último desarrollo de Microsoft
actualmente disponible para Windows 8 Servidores. La arquitectura del sistema
de archivos difiere totalmente de otros sistemas de archivos de Windows y se
organiza principalmente en la forma de un árbol B + . ReFS tiene alta
tolerancia a fallos debidos a las nuevas funciones incluidas en el sistema. Y, a
saber,  Copy-on-Write (CoW): no se modifica metadatos sin ser copiado; datos
no se escriben sobre los datos existentes, pero en un nuevo espacio en disco.
Con las modificaciones de archivos, una nueva copia de los metadatos se
almacenan en el espacio de almacenamiento gratuito, y luego el sistema crea
un vínculo de metadatos de más edad a la nueva. De este modo, el sistema
almacena cantidad significativa de copias de seguridad anteriores en diferentes
lugares que ofrecen la recuperación de archivos con facilidad a menos que se
sobrescribe este espacio de almacenamiento.

 Ventajas
 Facilidad, Es un sistema operativo que es muy sencillo al momento de
administrar, implementar o usar. Por tanto, un usuario promedio no tendrá
inconvenientes en su configuración o uso.
 Infraestructura, En términos generales es segura, pero al ser el más
distribuido es al que más se ataca con virus o programas maliciosos. Es por
ello que es ideal contar con un antivirus informático
 Reutilización, Por el modo en que se construye la reutilización de códigos
después de ejecutar programas es viable, además de un uso que es
eficiente de las tareas y total transparencia al ejecutar procesos.
 Compatibilidad, Por ser el más popular y distribuido es un sistema
operativo que es muy compatible con la mayoría de los programas o
dispositivos que se distribuyen.
 Soporte técnico, Es un sistema operativo muy fuerte y por esa razón su
soporte técnico en todo el planeta es excelente.
 Programas y aplicaciones, La gama de alternativas entre los programas o
aplicaciones es sumamente amplia y tiende hacia el infinito en este sistema
operativo, así que casi siempre se puede encontrar alguno que es
compatible.
 Diseños increíbles, La interfaz es ordenada, funcional y amigable con el
usuario, así que son muchas las ayudas y los diseños terminan por
destacar al ser innovador y agradables visualmente.
 Multidispositivos, Con los desarrollos actuales se puede llevar el sistema
operativo en todos los dispositivos sin ninguna clase de problema, tanto en
smartphones, tablets o computadores.

 Desventajas
 Costo, Según sea como se lo mire es un sistema operativo costoso, y en
buena medida se ha extendido en el mundo por la piratería.
 Recursos, Cada vez que una nueva versión es liberada en el mercado, los
equipos tienen que contar con más recursos para garantizar un buen
rendimiento.
 Virus o programas maliciosos,  Aunque se habla de fallos en su
construcción, también hay que pensar que es el sistema operativo que más
se utiliza y por esa razón la mayor parte de los virus o programas
maliciosos están hechos para Windows.
 Inestabilidad, No significa que sea necesariamente inestable, pero si se lo
compara con opciones como Mac o Linux, es el más inestable
históricamente.
 Código cerrado, Es un sistema operativo que no comparte su código, así
que es cerrado y no posibilita que una comunidad se encargue de promover
cambios o modificaciones como sí ocurre con Linux, por ejemplo.
 Registro, Todos los programas están obligados a escribir y leer en el
registro del sistema en todo momento, por esa razón es que se va
corrompiendo con el paso del tiempo.
 Mantenimiento, Requiere de muchos cuidados y de mantenimiento
constantes con atención, porque en caso contrario se hace inestable.
 Mal ante los problemas, Si ocurren casos problemáticos con el sistema
operativo no es muy amigable para el usuario y son difíciles de solucionar.
 Mensajes molestos, Son muchos los mensajes que se le muestran al
usuario y que ocupan o distraen de modo innecesario la atención del
usuario.

MAC
Mac OS (del inglés Macintosh Operating System, en español Sistema Operativo
de Macintosh) es el nombre del sistema operativo creado por Apple para su línea
de computadoras Macintosh, también aplicado retroactivamente a las versiones
anteriores a System 7.6, y que apareció por primera vez en System 7.5.1. Es
conocido por haber sido uno de los primeros sistemas dirigidos al gran público en
contar con una interfaz gráfica compuesta por la interacción
del mouse con ventanas, iconos y menús.

Deliberada a la existencia del sistema operativo en los primeros años de su línea


Macintosh en favor de que la máquina resultara más agradable al usuario,
diferenciándolo de otros sistemas contemporáneos, como MS-DOS, que eran un
desafío técnico. El equipo de desarrollo del Mac OS original incluía a Bill
Atkinson, Jef Raskin y Andy Hertzfeld.

Este fue el comienzo del Mac OS clásico, desarrollado íntegramente por Apple,
cuya primera versión vio la luz en 1985. Su desarrollo se extendería hasta
la versión 9 del sistema, lanzada en 1999. A partir de la versión 10 (Mac OS X), el
sistema cambió su arquitectura totalmente y pasó a basarse en Unix, sin embargo
su interfaz gráfica mantiene muchos elementos de las versiones anteriores.

Hay una gran variedad de versiones sobre cómo fue desarrollado el Mac OS
original y dónde se originaron las ideas subyacentes. Pese a esto, documentos
históricos prueban la existencia de una relación, en sus inicios, entre el
proyecto Macintosh y el proyecto Alto de Xerox PARC. Las contribuciones iniciales
del Sketchpad de Ivan Sutherland y el On-Line System de Doug Engelbart también
fueron significativas.

 Administración de procesos
El sistema operativo mac de Apple posee un administrador de procesos homólogo
al bien conocido “administrador de tareas de Windows, este lleva como nombre
“monitor de actividad y permite al usuario obtener información (la memoria que usa
cada proceso, la memoria comprimida, los Subprocesos, los Puertos, PID ( es  el
número de identificación del proceso) y el usuario que está llevando a cabo estos
procesos) de manera rápida y sencilla además de poder administrar y manipular
los distintos procesos que se están ejecutando en el equipo.

 Administración de memoria
La gestión de la memoria en Mac OS X puede sorprender a mas de un usuario.
Esto es debido a que Apple cataloga el uso de la memoria de la siguiente forma:

 Libre
 Sistema
 Activa
 Inactiva
 En uso

En la siguiente imagen se puede apreciar esta catalogación:

Es muy importante tal y como menciona la página web de Apple, tener en cuenta
que la gestión de la memoria abarca la memoria denominada como RAM, la
memoria virtual así como los archivos de intercambio. 

Los distintos estados pueden ser descritos de la siguiente forma:

 Libre: Tal como se puede deducir, este tipo de memoria no se está


utilizando.

 Activa: Memoria RAM que ha sido utilizada hace poco.


 Sistema: Cantidad de memoria que se emplea por parte del sistema.

 Activa: Memoria RAM que ha sido utilizada hace poco.

 Inactiva: Cantidad de memoria que no se está utilizando en el momento


pero que puede volver a estar disponible para la aplicación que la ha usado.
Mac OS X reserva este tipo de memoria a aplicaciones que se han cerrado.
De esta forma si volvemos a abrirlas, como tienen memoria reservada, se
abrirán mas rápido.

 Sistema de archivos
Apple File System (APFS), el sistema de archivos predeterminado para
computadoras Mac, posee un encriptado sólido, reparto de espacio,
instantáneas, cambio de tamaño de directorio rápido y fundamentos de sistema
de archivos mejorados. Aunque APFS está optimizado para el almacenamiento
FLASH/SSD utilizado en computadoras Mac recientes, también se puede usar
con sistemas más antiguos con unidades de disco duro (HDD) tradicionales,
así como con almacenamiento de conexión directa externo. macOS 10.13 o
posterior es compatible con APFS para volúmenes de arranque y de datos.
APFS asigna espacio en disco dentro de un contenedor por solicitud. El
espacio libre en el disco se comparte y se asigna a cualquiera de los
volúmenes individuales del contenedor, si lo necesitan. Si quieres, puedes
especificar los tamaños de reserva y cuota de cada volumen. Cada volumen
usa sólo una parte de todo el contenedor, así que el espacio disponible es el
total del tamaño del contenedor menos el tamaño de todos los volúmenes que
contiene.

 Ventajas
 Apple diseña tanto hardware como software lo que permite garantizar
una buena experiencia de funcionamiento y atender los pequeños detalles.
 El sistema operativo es de fácil uso gracias a la utilización de muchos
elementos visuales para comunicarse con el usuario
 Generalmente están inmunes a ataques por virus y programas
maliciosos.
 Excelente en el manejo de contenido multimedios.
 Soporte técnico, posee un gran despliegue de soporte técnico en casi
cualquier parte del mundo.
 Código cerrado, al igual que Windows un sistema operativo que no
comparte su código (siendo incluso más estricto), así que es cerrado y no
posibilita que una comunidad se encargue de promover cambios o
modificaciones como sí ocurre con Linux, por ejemplo.
 Desventajas
 Tiende a ser más costoso que el resto de los sistemas operativos.
 Posee un catalogo de software limitado, las aplicaciones tienen que
pasar por un proceso de aprobación antes de estar disponibles.
 No permite realizar demasiadas modificaciones al sistema.
 Limitada compatibilidad, solo es compatible con hardware diseñado y
distribuido por Apple.

Comparación de sistemas operativos


Unix Linux Windows Mac
Home 145€ , Pro
259€ , Pro para Incluido con Macs
Estaciones de 68K y PowerPC;
Costo y trabajo 439€ versiones 7-9
Gratuito Gratuito
disponibilidad (otras versiones vendidas como
como Enterprise y actualizaciones al
Education son por menor
especializadas)

Uso Frecuente Frecuente Frecuente Frecuente


Soporte  X  
Es uno de los
Se puede Debido a que la Debilidad del
sistemas
considerar el creación de virus sistema en lo que a
operativos que
sistema operativo para este sistema seguridad se refiere
Seguridad menos
de propósito operativo es y alto índice de
mecanismos de
general más fiable compleja es vulnerabilidades
protección ha
del mercado considerado seguro críticas
implantado
Monolítico con Monolítico con
Tipo de núcleo Monolítico Híbrido
módulos módulos
Permite la
Permite la
ejecución de varios Permite la ejecución Es multitareas.
ejecución de varios
Administración de procesos de varios procesos Maneja el
procesos
procesos simultáneamente simultáneamente scheduling con
simultáneamente
(Multitareas) y es (Multitareas) round robin
(Multitareas)
multiusuario.
Su esquema de
gestión de
Soporta Comprime los
memoria varía de
características de Gestión de memoria datos que están en
Administración de un sistema a otro.
memoria virtual, virtual con memoria y no se
memoria principal Utiliza el
hace uso de paginación están utilizando en
mecanismo de
swapping el momento
Swapping. Uso de
memoria virtual.
Conclusión

El avance tecnológico y la competencia en cuanto a los sistemas operativos se


refiere a permitido al usuario facilitar y mejorar la experiencia de uso, siendo
dotados cada vez con características más intuitivas que permiten a usuarios con
poca experiencia manipular los equipos y sacar el máximo provecho de estos,
cada uno de los distintos sistemas operativos disponibles en el mercado ofrece
diferentes ventajas y desventajas que se pueden ajustar perfectamente a las
exigencias de cada usuario y al entorno o espacio en que se desenvolverá el
mismo, permitiendo así realizar la mejor elección y mantener satisfecho ya sea el
gusto o la exigencia del personal destinado a utilizar los equipos.

Fuentes Consultadas
 https://www.todamateria.com/sistema-operativo/
 https://www.profesionalreview.com/2016/11/10/que-es-unix/
 https://hipertextual.com/archivo/2014/05/que-es-unix/
 https://www.definicionabc.com/tecnologia/unix.php
 http://www.jagar.es/unix/dosvsunix.htm
 https://users.dcc.uchile.cl/~jpiquer/Docencia/SO/aps/node24.html
 https://w3.ual.es/~acorral/DSO/Tema_3.pdf
 http://equipo5-unix.blogspot.com/2017/10/administracion-de-memoria-
en-unix.html
 https://oposicionestic.blogspot.com/2013/03/unix-sistema-de-
archivos.html
 http://yagneri86.blogspot.com/2013/10/ventajas-y-desventajas.html
 https://conceptodefinicion.de/linux/
 https://www.digitallearning.es/blog/administracion-linux-sistemas-de-
archivos/
 https://es.slideshare.net/jcfarit/unidad-3-gestion-de-procesos-en-linux
 http://cursos.delaf.cl/archivos/cursos/sistemas-operativos/material-de-
apoyo/Scheduling%20de%20procesos%20en%20Linux%202.6.pdf
 http://www.tldp.org/pub/Linux/docs/ldp-archived/system-admin-guide/
translations/es/html/ch07.html
 https://es.slideshare.net/luismassirrubidiaz/informatica-fundamentos-
de-windows
 https://www.caracteristicas.co/sistema-operativo-windows/
 https://conceptodefinicion.de/windows/
 https://www.webespacio.com/procesos-windows/
 https://whitehat216.wordpress.com/sistemas-de-archivos-en-windows-
mac-y-linux/
 https://www.soydemac.com/donde-esta-el-administrador-de-tareas/
 https://www.cronicasdeuninformatico.com/2013/02/gestion-de-la-
memoria-en-mac-os-x.html
 https://support.apple.com/es-cl/guide/disk-utility/dsku19ed921c/mac

También podría gustarte