Historia de Solaris (1982-1990)
La historia comienza en Silicon Valley en febrero de 1982 fecha en la
que nace la empresa Sun Microsystems fundada por el alemán Andy Bechtolsheim y
los norteamericanos Vinod Khosla, Bill Joy, y Scott McNealy
En el mismo año de su fundación Sun comercializa su primera estación y fue bautizada como Sun-1, dicha máquina estaba gobernada por un microprocesador Motorola a 6 MHz, tenía un 1 mbyte de RAM y un disco duro de 60 mbyte. El sistema operativo al mando era el SunOS 1 basado en BSD 4.1 (1981) incorporando TCP/IP. SunOs 1 está basado en BSD pero ¿Qué es BSD?
La empresa AT&T creadora de las primeras versiones de Unix autorizó a la Universidad de California en Berkeley a realizar cambios en el código fuente para poder adaptarlo a sus necesidades; este conjunto de cambios dio lugar a una nueva variante de Unix llamada BSD (Berkeley Software Distribution).
En el mismo año de su fundación Sun comercializa su primera estación y fue bautizada como Sun-1, dicha máquina estaba gobernada por un microprocesador Motorola a 6 MHz, tenía un 1 mbyte de RAM y un disco duro de 60 mbyte. El sistema operativo al mando era el SunOS 1 basado en BSD 4.1 (1981) incorporando TCP/IP. SunOs 1 está basado en BSD pero ¿Qué es BSD?
La empresa AT&T creadora de las primeras versiones de Unix autorizó a la Universidad de California en Berkeley a realizar cambios en el código fuente para poder adaptarlo a sus necesidades; este conjunto de cambios dio lugar a una nueva variante de Unix llamada BSD (Berkeley Software Distribution).
En el año 1984 Sun desarrolla el Sistema de archivos de red NFS (Network
File System) que permite a cualquier máquina conectada a la red acceder a
discos remotos como si estuvieran en la máquina local. La tecnología NFS fue
licenciada gratuitamente para la industria estableciendo un nuevo estándar que
incorporan en su nueva versión de sistema SunOs 2 en el año 1985.
Un año más tarde con la salida de la versión de SunOS 3 (1986) se introducen utilidades de System V y coincide en el tiempo con el lanzamiento de la estación Sun-3 que todavía continúa basándose en un micro Motorola a 25 MHz y 32 mbyte de RAM.
Ya en 1987 se produce un cambio importante en con el lanzamiento la serie Sun-4 que adopta por primera vez la arquitectura SPARC V7 RISC.
SunOS 4 (1989) es la primera versión del sistema operativo que soporta la nueva arquitectura Sparc de la serie Sun-4 que continua basada en BSD 4.3 pero con cambios hacia la arquitectura System V.
Con la versión SunOs 4.1.1 finaliza una primera etapa del sistema operativo a la que Sun Microsystem denomina Solaris 1 y utilizara este nombre para referirse al sistema SunOs desde 1982 a 1990.
Un año más tarde con la salida de la versión de SunOS 3 (1986) se introducen utilidades de System V y coincide en el tiempo con el lanzamiento de la estación Sun-3 que todavía continúa basándose en un micro Motorola a 25 MHz y 32 mbyte de RAM.
Ya en 1987 se produce un cambio importante en con el lanzamiento la serie Sun-4 que adopta por primera vez la arquitectura SPARC V7 RISC.
SunOS 4 (1989) es la primera versión del sistema operativo que soporta la nueva arquitectura Sparc de la serie Sun-4 que continua basada en BSD 4.3 pero con cambios hacia la arquitectura System V.
Con la versión SunOs 4.1.1 finaliza una primera etapa del sistema operativo a la que Sun Microsystem denomina Solaris 1 y utilizara este nombre para referirse al sistema SunOs desde 1982 a 1990.
A continuación podemos ver la evolución Solaris 1 SunOs de 1982 a 1989:
Fecha Versión de SunOs
1982 Febrero SunOS 1.0 basada en BSD
1984 Abril SunOS 1.1 basada en BSD
1986 Febrero SunOS 3.0 Introduce utilidades de
System V
1986 Septiembre SunOS 3.2 Introduce utilidades de System V
1988 SunOS 3.5 Introduce utilidades de
System V
1989 SunOS 4.0 Soporte microprocesador Sparc/
arquitectura System V STREAMS I/O 1990 Noviembre Solaris 1.0 (SunOS 4.1.1)
Solaris 2 (1990-2006)
En Julio de 1991 se
produce el lanzamiento de SunOS 5.0 que incorpora importantes cambios:
Pasa a denominarse
Solaris 2
Se basa en System V Release 4
Se introduce CDE (Common Desktop Environment) como escritorio estándar aunque
conserva OpenWindows.
Soporte de Multiprocesamiento Simétrico (SMP) que posibilita el uso de
múltiples CPUs.
Desde 1991 se produce un
rápido avance de versiones de Solaris hasta la actual Solaris 10, la siguiente
lista es un breve resumen de la evolución de Solaris y las tecnologías que ha
incorporado al sistema:
Versión de Solaris Año Tecnologías
Solaris 1.0 (SunOS 4.1.1) 1990
Solaris 2.3 (SunOS
5.3) 1993 NFS V3 Y CDE
Solaris 2.4(SunOS
5.4) 1994 x86 platform
Solaris 2.6 (SunOS
5.6) 1998 Kerberos, PAM, TrueType
64 bits para plataforma
Solaris 7(SunOS
5.7) 1998 UltraSPARC
Solaris 8 beta 1999 IPv6 support
Solaris 9 SPARC
2002 Solaris
Volume Manager
Solaris 10 2004 Java Desktop
Solaris 10 2006 Java Desktop, Solaris Containers,
Service Management
Facility (SMF) NFSv4 /ZFS
Durante este tiempo Sun
ha desarrollado nuevas tecnologías para mantener su sistema operativo entre los
más potentes y fiables del mercado. Sun Microsystems también ha integrado en
Solaris tecnologías de Software Libre y como ejemplo de esta sinergia tenemos
el escritorio Gnome.
OpenSolaris
OpenSolaris nace en
Junio de 2005 y es el resultado de la liberación de la mayor parte del código
fuente de Solaris pasando a ser un proyecto de software libre. Desde este nuevo
enfoque nacen nuevas distribuciones que aportan mejoras al sistema además de
enriquecerlas con más software.
Distribuciones
OpenSolaris
OpenSolaris.org es el
punto de encuentro donde se pueden ver los proyectos abiertos ya sean para
crear nuevas distribuciones o grupos de trabajo que aportan nuevas funcionalidades,
mejoras, software etc…
De las diferentes aportaciones realizadas por comunidades de usuarios o desarrolladores
nacen las siguientes distribuciones:
Solaris 10 y Solaris 10
Express
Es la versión oficial de
Sun Microsystems disponible para arquitectura Sparc y x86. Es estable y robusta
estando diseñada para entornos de producción donde se necesita estabilidad. Es gratuita
y podemos descargarla del sitio web oficial de Sun.
Solaris 10 Express contiene todas las nuevas incorporaciones de funcionalidades
y software que darán lugar a la próxima versión estable de Solaris por lo tanto
está recomendado para entornos de desarrollo o preproducción.
Nexenta OS, Belenix y
Schillix
Nexenta OS es una
distribución que aprovecha las bondades de un sistema como OpenSolaris
añadiéndole software libre que sea habitual en distribuciones Linux. Como Gnome,
apache, PHP etc... Podemos ver las características del sistema y descargar
Nexenta desde su web.
Belenix y Schillix son dos distribuciones en Live-CD de momento ambas son muy
prematuras estando en versiones alpha. Estos Live-CD son de vital importancia
para caidas del sistema, recuperación de datos, etc...
Seguridad
Integrada
La seguridad es mucho más que una combinación de
tecnologías: es una disciplina continua.
Dell y Sun comprenden este concepto y asumieron
el compromiso de mejorar la seguridad tanto en el hardware
como en el sistema operativo. La tecnología de administración de usuarios y derechos de
procesamiento de Solaris permite reducir los riesgos al otorgar a los usuarios
y las aplicaciones las capacidades mínimas necesarias para llevar a cabo sus
funciones. A fin de utilizar una base segura para la implementación de
servicios, los administradores pueden hacer uso de la funcionalidad
de seguridad predeterminada de Solaris para obtener una excelente minimización y protección.
Además, el software Solaris Trusted Extensions permite proteger los datos más
importantes de su organización mediante el uso de etiquetas para implementar el
control de acceso obligatorio.
Combine estas excelentes funciones con la
seguridad integrada de los servidores Dell PowerEdge y obtendrá un entorno de
servidores sólido, confiable y seguro. En realidad, la última generación de
servidores PowerEdge es la más segura que hemos fabricado hasta el momento. Las
características estándar incluyen un puerto USB
interno bloqueado, un conmutador de intrusiones del chasis, cubiertas con
bloqueo y un módulo de plataforma confiable (TPM) integrado que permite la
autenticación del sistema, brinda asistencia en el cifrado de datos y
contribuye a evitar manipulaciones.
Solaris Trusted Extensions hacer cumplir una política de control de acceso obligatorio en todos los aspectos del sistema operativo, incluido el acceso al dispositivo, archivos, redes, servicios de impresión y gestión de ventanas. Esto se logra mediante la adición de etiquetas de sensibilidad a los objetos, estableciendo de ese modo relaciones explícitas entre estos objetos. Sólo una autorización apropiada (y explícito) permite que las aplicaciones y los usuarios leer y / o escribir el acceso a los objetos.
Sistema de archivos ZFS
Solaris
10 utiliza el sistema dinámico de Archivos ZFS, fue diseñado e implementado por
un equipo de Sun liderado por Jeff Bonwick.
Una
de sus ventajas es su gran capacidad 128 bits cuyo diseño hace que sea tan
grande que en la práctica nunca se podría exceder sus límites. Ofrece una
administración sencilla que automatiza y consolida complicados conceptos de
almacenamiento y por otro lado protege todo los datos con sumas de 64 bits que
detectan y corrigen el daño de datos silenciosos.
Además,
utiliza un modelo transaccional copy-on-write. Conteniendo todos los punteros a
bloques de un sistema de ficheros un checksum de 256 bits sobre el bloque
apuntado, que
se comprueba al leer el bloque. Los bloques que contienen datos activos no se sobrescriben nunca; en su lugar, se reserva un nuevo bloque, y los datos modificados se escriben en él. Incluyendo para la sobrecarga, varias actualizaciones en grupos de transacciones, y se utiliza un log de intentos cuando se necesitan escrituras síncronas.
se comprueba al leer el bloque. Los bloques que contienen datos activos no se sobrescriben nunca; en su lugar, se reserva un nuevo bloque, y los datos modificados se escriben en él. Incluyendo para la sobrecarga, varias actualizaciones en grupos de transacciones, y se utiliza un log de intentos cuando se necesitan escrituras síncronas.
Otra
ventaja en comparación con el sistema NTFS es que la interfaz de la línea de
comandos simplifica drásticamente la administración. Se orienta a las tareas,
por lo que
los administradores pueden expresar las tareas que desean llevar a cabo en lugar de tener que memorizar o buscar comandos crípticos.
los administradores pueden expresar las tareas que desean llevar a cabo en lugar de tener que memorizar o buscar comandos crípticos.
En
los sistemas FAT o NTFS los datos se pueden dañar de diferentes modos, como por
ejemplo un error de sistema o una interrupción del suministro eléctrico
inesperada, pero
ZFS impide el daño a los datos ya que mantiene la coherencia de los mismos en todo momento. Todas las operaciones son transaccionales. De este modo, no sólo se mantiene la coherencia sino también se eliminan todas las restricciones sobre la orden de E/S y se permite que el conjunto de los cambios se realice correctamente o se produzca un error.
ZFS impide el daño a los datos ya que mantiene la coherencia de los mismos en todo momento. Todas las operaciones son transaccionales. De este modo, no sólo se mantiene la coherencia sino también se eliminan todas las restricciones sobre la orden de E/S y se permite que el conjunto de los cambios se realice correctamente o se produzca un error.
Y
aunque a decir verdad tiene mucho de bueno (bastante) el soporte para otros
sistemas aún no está implementado. Pero tan solo será cuestión de tiempo.
En
definitiva el nuevo sistema de archivos ZFS presenta características muy
favorables en cuanto a almacenamiento, prevención de daños y capacidad.
Actualización de Solaris 10 con "Live
Upgrade"
"Live Upgrade" es
una característica de los sistemas Solaris recientes que permite actualizar un
sistema operativo completo mientras está funcionando. La actualización se
realiza en una partición separada, por lo que no afecta en absoluto al sistema
en producción. Una vez completada la actualización, reiniciamos la máquina y
podremos elegir entre la versión anterior del sistema operativo, y la versión
actualizada del mismo. Si la versión actualizada nos da cualquier tipo de
problema, podemos volver a la versión anterior sin más que reiniciar la máquina
de nuevo y elegir el otro entorno.
Dado que ambas versiones del sistema operativo
residen en particiones separadas, no existe interferencia entre ellas y podemos
saltar de una a otra con un simple reinicio.
De esta forma, actualizar un sistema Solaris supone
un corte de servicio de un par de minutos (lo que tarde en reiniciar la
máquina) y no las dos horas necesarias para hacer una actualización
tradicional. Además, tenemos la seguridad de regresar a la versión anterior si
surge cualquier tipo de problema.
Interfaz
Gráfica de Solaris:
Fox Toolkit
Entre los sistemas operativos que soporta están: Linux, FreeBSD, Sun Solaris,
Windows 9x, y Windows NT.
Fox toolkint es una clase grafica que fue escrita en C++, Java, C, Fortran que
te permitirá crear aplicaciones con GUI milti-plataforma. Podrás usar iconos,
imágenes, línea de ayuda, selección, incluso herramientas para trabajar con
Open GL y poder manipular objetos 3D
Solaris también es llamado Oracle Solaris
GUI
Es una interfaz gráfica de usuario como lo mencione anteriormente, este utiliza imágenes y objetos gráficos para la representación de la información y acciones disponibles en la interfaz
Es una interfaz gráfica de usuario como lo mencione anteriormente, este utiliza imágenes y objetos gráficos para la representación de la información y acciones disponibles en la interfaz
Habitualmente
las acciones se realizan mediante manipulación directa, para facilitar la interacción
del usuario con la computadora. Surge como evolución de las interfaces de línea
de comandos que se usaban para operar los primeros sistemas operativos y es
pieza fundamental en un entorno gráfico. Como ejemplos de interfaz gráfica de
usuario, cabe citar los entornos de escritorio Windows, el X-Windows de
GNU/Linux o el de Mac OS X, Aqua.
GNOME
El Proyecto GNOME, según sus creadores, provee un gestor de ventanas «intuitivo y atractivo» y una plataforma de desarrollo para crear aplicaciones que se integran con el escritorio. El Proyecto pone un gran énfasis en la simplicidad, usabilidad y eficiencia. Otros objetivos del proyecto son:
El Proyecto GNOME, según sus creadores, provee un gestor de ventanas «intuitivo y atractivo» y una plataforma de desarrollo para crear aplicaciones que se integran con el escritorio. El Proyecto pone un gran énfasis en la simplicidad, usabilidad y eficiencia. Otros objetivos del proyecto son:
La
libertad para crear un entorno de escritorio que siempre tendrá el código
fuente disponible para reutilizarse bajo una licencia de software libre.
El
aseguramiento de la accesibilidad, de modo que pueda ser utilizado por
cualquiera, sin importar sus conocimientos técnicos y discapacidad física.
Hacer que esté disponible en muchos idiomas.
Hacer que esté disponible en muchos idiomas.
Un
ciclo regular de liberaciones y una estructura de comunidad disciplinada.
Usa
un sistema de archivos virtual llamado GVFS que permite a los usuarios acceder
fácilmente a los datos remotos a través de SFTP , FTP , WebDAV , SMB y los
datos locales a través de Udev integración, OBEX y otros.
Tiene
bibliotecas para desarrollar interfaces graficas de usuario estas bibliotecas
son llamadas GTk+.
Además
que ofrece bibliotecas accesibilidad, por ejemplo personas con alguna
discapacidad lo cual lo hace de una manera sencilla ya que la interfaz gráfica
que maneja el sistema operativo Solaris es muy sencilla y puede ser manipulada
de acuerdo a las necesidades del usuario que la está utilizando.
Java Desktop System
Es un entorno de escritorio para Solaris
desarrollado por Sun Microsystems, que anteriormente también estuvo disponible
para Linux.
Características básicas
Económico: menor coste de compra frente al sistema operativo Microsoft Windows
y su suite ofimática Microsoft Office.
Menor complejidad: totalmente integrado en un solo paquete para facilitar la
instalación, gestión y manejo.
Seguridad: el estricto control de acceso a "root" en Linux/Unix
previene virus que modifican ficheros. Java, con su infraestructura de
seguridad controla el entorno del sistema ante posible ataques de virus.
Interoperabilidad: ficheros y documentos pueden ser compartidos e impresos en
entornos Windows y Unix; Los sistemas existentes se mantienen sin alteración,
incorpora soporte para nuevos idiomas como coreano, japonés y
portugués/brasileño.
Multiusuario
La palabra multiusuario se refiere a un concepto de sistemas operativos, pero en ocasiones también puede aplicarse a programas de ordenador de otro tipo (ej. aplicaciones de base de datos). En general se le llama multiusuario a la característica de un sistema operativo o programa que permite proveer servicio y procesamiento a múltiples usuarios simultáneamente (tanto en paralelismo real como simulado).
Actualmente este tipo de sistemas se emplean especialmente en redes, pero los primeros ejemplos de sistemas multiusuario fueron sistemas centralizados que se compartían a través del uso de múltiples dispositivos de interfaz humana (e.g. una unidad central y múltiples pantallas y teclados).
Los recursos que se comparten son por lo regular una combinación de:
• Procesador.
• Memoria.
• Almacenamiento secundario (almacenaje en disco duro).
• Programas.
• Periféricos como impresoras, plotters, scanners, etc.
De tal modo que los múltiples usuarios tienen la impresión de utilizar un ordenador y un sistema operativo unificado, que les están dedicados por completo.
Sistemas operativos multiusuario
En los sistemas operativos antiguos, la idea de multiusuario guarda el significado original de que éste puede utilizarse por varios usuarios al mismo tiempo, permitiendo la ejecución concurrente de programas de usuario. Aunque la idea original de tiempo compartido o el uso de terminales tontas no es ya el más utilizado. Esto debido a que los ordenadores modernos pueden tener múltiples procesadores, o proveer sus interfaces de usuario a través de una red.
Desde el principio del concepto, la compartición de los recursos de procesamiento, almacenaje y periféricos facilita la reducción de tiempo ocioso en el (o los) procesador(es), e indirectamente implica reducción de los costos de energía y equipamiento para resolver las necesidades de cómputo de los usuarios. Ejemplos de sistemas operativos con característica de multiusuario son VMS y Unix, así como sus múltiples derivaciones (e.g. IRIX, Solaris, etc.) y los sistemas tipo Unix como Linux, FreeBSD y Mac OS X.
Las versiones de Windows 2000 server y Windows 2003 server ofrecen el servicio Terminal Server el cual permite la ejecución remota de diferentes sesiones de usuario.
7) Solaris: es un sistema operativo de tipo Unix desarrollado por Sun Microsystems desde 1992 como sucesor de SunOS. Es un sistema certificado oficialmente como versión de Unix. Funciona en arquitecturas SPARC y x86 para servidores y estaciones de trabajo.
Solaris tiene una reputación de ser muy adecuado para el multiprocesamiento simétrico (SMP), soportando un gran número de CPUs. También ha incluido soporte para aplicaciones de 64 bits SPARC desde Solaris 7. Históricamente Solaris ha estado firmemente integrado con la plataforma hardware de Sun, SPARC, con la cual fue diseñado y promocionado como un paquete combinado
Solaris 10, ha sido diseñada con AMD64 en mente, permitiendo a Sun capitalizar en la disponibilidad de CPUs de 64 bits commodities basadas en la arquitectura AMD64. Sun ha promocionado intensamente Solaris con sus estaciones de trabajo de nivel de entrada basadas en AMD64, así como con servidores que en 2006 varían desde modelos dual-core hasta modelos a 16 cores.
La base de OpenSolaris fue alimentada el 14 de junio de 2005 a partir de la entonces actual base de desarrollo de código de Solaris. Es posible descargar y licenciar versiones tanto binarias como en forma de código fuente sin coste alguno. Además, se ha añadido al proyecto Open Solaris código para características venideras como soporte Xen. Sun ha anunciado que las versiones futuras de Solaris se derivarán a partir de OpenSolaris.
Núcleo:
SunOS
Tipo de núcleo : Monolítico
El sistema operativo es el encargado de administrar el/los
procesador(es), repartiendo el tiempo de uso de este entre los procesos que
estén esperando para utilizarlo. Cada proceso utiliza el procesador durante
cortos períodos de tiempo, pero el resultado final es prácticamente igual que
si estuviesen ejecutándose al mismo tiempo. Ejemplos de sistemas de este tipo
serían Unix y sus derivados (FreeBSD, Linux), VMS y derivados, AmigaOS, Windows
NT.
Diferencias entre Windows y Unix
En cuanto a los sistemas operativos
van, a algunos les parece como si UNIX tiene una clara ventaja sobre Windows. UNIX ofrece mayor flexibilidad que los sistemas
operativos de Windows, por otro lado, que es más estable y que no se desplome
tanto como mucho como Windows. UNIX es un poco más seguro que Windows, y Se
necesita menos administración y mantenimiento en el mantenimiento de un sistema
UNIX.
- Una
diferencia clave entre UNIX y Windows es la implementación de varios
usuarios en un equipo. Cuando un usuario inicia sesión en un sistema
UNIX, un proceso shell se inicia para dar servicio a sus órdenes. hacer
un seguimiento de los usuarios y sus procesos, un sistema operativo UNIX
es capaz de realizar un seguimiento de los procesos y evitar que
interfieran entre sí. Esto es muy beneficioso cuando todos los procesos se ejecutan en el
servidor, lo que exige un mayor uso de los recursos .
- Otra diferencia principal entre UNIX y Windows
es la jerarquía de procesos que posee UNIX. Cuando un nuevo proceso es
creado por una aplicación UNIX, se convierte en un hijo del proceso que lo
creó. Esta jerarquía es muy importante, por lo que son llamadas al
sistema para influir en los procesos secundarios. Los procesos de
Windows, por otra parte no comparten una relación jerárquica. Al
recibir el identificador de proceso y el ID del proceso es creado, el
proceso de creación de un sistema Windows puede mantener o simular una
relación jerárquica si es necesario. El sistema operativo Windows
trata normalmente todos los procesos como pertenecientes a la misma
generación. UNIX utiliza demonios, Windows tiene los procesos de
servicio. Los demonios son procesos que se inician cuando se inicia
UNIX hasta que prestan servicios a otras aplicaciones. Demonios
normalmente no interactúan con los usuarios. Un servicio de Windows
es el equivalente a un demonio de UNIX. Cuando un sistema
Windows se inicia, se puede iniciar un servicio. Esta es una
aplicación de larga duración que no interactúa con los usuarios, por lo
que no tiene una interfaz de usuario. Servicios continuar funcionando durante una sesión de inicio
de sesión y que están controladas por el Administrador de control de
servicios de Windows Dado que UNIX es de código abierto, que
atrae a algunos programadores muy inteligentes que desarrollan muchas
aplicaciones de forma gratuita. En pocas palabras, la diferencia principal es
Windows utiliza un (Graphical User Interface) GUI y UNIX no. En
Windows se utiliza el clic de un ratón para ejecutar un comando mientras
que en UNIX se debe escribir un comando. Hay interfaces gráficas de
usuario que se puede utilizar en un entorno UNIX, aunque muy pocos
usuarios de Unix caer tan bajo para usar uno.) Antes de que existiera un
entorno Windows, DOS (Disk Operating System) se utiliza en los
ordenadores. DOS se basa en y fue similar, pero sólo un subconjunto
pobres, el sistema UNIX.
- Las
diferencias entre UNIX y WINDOWS: Unix es seguro, evitando un programa de
acceso a la memoria o el espacio de almacenamiento asignado a otro, y
permite la protección, lo que requiere que los usuarios tengan permiso
para realizar ciertas funciones, es decir, el acceso a un directorio,
archivo o unidad de disco. Además, UNIX es más seguro que Windows en
una red, ya que Windows es más vulnerable que UNIX. Por ejemplo, si
usted deja un puerto abierto en Windows que puede ser utilizado fácilmente
por un hacker introducir un virus en su entorno.
- Unix es mucho mejor en el manejo de múltiples
tareas para un solo usuario o para varios usuarios que Windows. Para
cada usuario, Unix en general, y en especial de Sun Solaris proporciona
muchas más utilidades para la manipulación de archivos y datos que Windows
lo hace. En un entorno corporativo, Unix (especialmente Solaris)
ofrece mucho más control para el administrador de ventanas
hace. Solaris, por ejemplo, permite al administrador espejo o banda
de datos en varios discos para minimizar el riesgo u optimizar el
rendimiento sin productos tercera parte. En general, para un
programador o para un administrador, Unix proporciona más potencia y
flexibilidad que las ventanas. Para los usuarios menos sofisticados,
Windows puede ser más fácil ser instalado y configurado para ejecutarse en
un hardware más barato para ejecutar un producto de otro fabricante
tercera deseado. En pocas palabras - es mejor Unix, Windows es más
fácil para los usuarios menos sofisticados.
Comparación Solaris con FreBSD y Linux
Planificando y
Planificadores
·
La unidad básica de planificación en Solaris es
kthread_t; en FreeBSD thread; y en Linux task_struct. Solaris representa cada
proceso como un proc_t, y cada hebra dentro de un proceso tiene una kthread_t.
Linux representa procesos (y hebras) con estructuras task_struct. Un proceso
con una sola hebra en Linux tiene una sola task_struct. Un proceso con una sola
hebra en Solaris tiene proc_t, una sola kthread_t, y una klwp_t. La estructura
klwp_t proporciona un área de almacenamiento para el intercambio de hebras
entre los modos de usuario y núcleo. Un proceso con una sola hebra en FreeBSD
tiene una estructura proc, una estructura thread, y una estructura ksegrp. El
ksegrp es un "grupo de entidades planificables por el núcleo" (kernel
scheduling entity group). Realmente, los tres SOs planifican hebras, y una
hebra es una kthread_t en Solaris, una estructura thread en FreeBSD, y una
task_struct en Linux.
·
Una gran diferencia entre Solaris y los otros dos
SOs es la capacidad para soportar "clases de planificación" de forma
simultánea en el sistema. Los tres SOs soportan Posix SCHED_FIFO, SCHED_RR, y SCHED_OTHER (o
SCHED_NORMAL). SCHED_FIFO y SCHED_RR normalmente se utilizan en
las hebras "tiempo real". (Tanto Solaris como Linux soportan
apropiación en el núcleo3 para asistir a las hebras de tiempo real.)
Solaris tiene soporte para una clase "prioridad fija", "clase de
sistema" para las hebras de sistema (como las hebras de paginación), una
clase "interactiva" utilizada por hebras que se ejecutan en un
entorno de ventanas bajo el control del servidor X, y el planificador de
reparto limpio (Fair Share Scheduler) para asistir en la gestión de recursos.
Consulte priocntl(1) para obtener información sobre el uso de estas clases y
una visión general de las características de cada clase. Consulte FSS(7) para
obtener información específica del Fair Share Scheduler. El planificador de
FreeBSD se escoge en tiempo de compilación, y en Linux el planificador depende
de la versión de Linux.
Gestión de la memoria y
Paginación
En Solaris cada proceso tiene un "espacio de
direcciones" formado por secciones lógicas llamadas "segmentos".
Los segmentos del espacio de direcciones de un proceso se pueden ver a través
de pmap(1). Solaris divide el código de gestión de memoria y las estructuras
de datos en la parte independiente y dependiente de la plataforma. La porción
específica de la plataforma de la gestión de memoria se encuentra en la capa
HAT (hardware address translation) o traducción de direcciones físicas. FreeBSD
describe el espacio de direcciones de un proceso mediante un vmspace, dividido
en secciones lógicas llamadas regiones. Las porciones dependientes del hardware
están en el módulo "pmap" (physical map) mapa físico y las rutinas
"vmap" manejan las porciones y estructuras de datos independientes
del hardware. Linux utiliza un descriptor de memoria para dividir el espacio de
direcciones de un proceso en secciones lógicas llamadas "áreas de
memoria" que describen el espacio de direcciones del proceso. Linux también
tiene un comando pmap para examinar el espacio de direcciones de un proceso.
Linux divide capas dependientes de
la máquina a partir de capas independientes de la máquina a un nivel mucho más
alto en el software. En Solaris y FreeBSD, gran parte del código de tratar con,
por ejemplo, página de gestión de fallos es independiente de la máquina. En
Linux, el código para controlar los errores de página es más o menos depende de
la máquina desde el principio de la gestión de fallos. Una consecuencia de esto
es que Linux puede manejar gran parte del código de paginación más rápido
porque hay menos abstracción de datos (capas) en el código. Sin embargo, el
costo es que un cambio en el hardware o el modelo subyacente requiere más
cambios en el código. Solaris y FreeBSD aíslan esos cambios al HAT y capas pmap
respectivamente.
FreeBSD tiene varias listas de páginas para realizar un
seguimiento de las páginas usadas recientemente. Estos pista
"activo", "inactivo" páginas "libres"
"caché", y. Páginas mueven entre estas listas enlazadas en función de
sus usos. Páginas visitadas con frecuencia tienden a permanecer en la lista
activa. Las páginas de datos de un proceso que sale se puede colocar
inmediatamente en la lista libre. FreeBSD puede cambiar los procesos enteros si
vm_pageout_scan no puede seguir el ritmo de carga (por ejemplo, si el sistema
tiene poca memoria). Si la falta de memoria es lo suficientemente grave,
vm_pageout_scan matará el proceso más grande en el sistema.
Linux también utiliza diferentes listas enlazadas de páginas para facilitar un algoritmo de estilo LRU. Linux divide la memoria física en (posiblemente varios conjuntos de) tres zonas ":" uno para páginas DMA, uno para las páginas normales, y uno para la memoria asignada dinámicamente. Estas zonas parecen ser mucho más que un detalle de implementación debidas a la limitación de arquitectura x86. Páginas mueven entre listas de "" caliente "," frío "y". El movimiento entre las listas es muy similar al mecanismo en FreeBSD. Páginas visitadas con frecuencia estarán en la lista "caliente". Páginas libres estarán en la lista o "cold", "libre".
Solaris utiliza una lista disponible, lista de hash, y la lista de la página vnode mantener su variación de un algoritmo de reemplazo LRU. En lugar de escanear el vnode o listas de páginas hash (más o menos el equivalente a las listas "calientes" en las implementaciones de FreeBSD / Linux "activa" /), Solaris escanea todas las páginas utiliza un algoritmo de "reloj de dos manos", como se describe en Solaris Internos y otros lugares. Las dos manos quedan a una distancia fija. Las edades de mano delanteros la página en la limpieza de bit de referencia (s) para la página. Si ningún proceso ha hecho referencia a la página desde la parte frontal visitado la página, la mano de nuevo va a liberar la página (primera forma asíncrona escribir la página en el disco si se modifica).
Todos los tres sistemas operativos toman localidad NUMA en cuenta durante la búsqueda. La caché de búfer de E / S y el caché de páginas de memoria virtual se fusionaron en una sola página del sistema de caché en los tres sistemas operativos. La página de caché del sistema se utiliza para lecturas / escrituras de archivos, así como archivos y texto y los datos de aplicaciones mmapped.
Sistemas de archivos.
Linux también utiliza diferentes listas enlazadas de páginas para facilitar un algoritmo de estilo LRU. Linux divide la memoria física en (posiblemente varios conjuntos de) tres zonas ":" uno para páginas DMA, uno para las páginas normales, y uno para la memoria asignada dinámicamente. Estas zonas parecen ser mucho más que un detalle de implementación debidas a la limitación de arquitectura x86. Páginas mueven entre listas de "" caliente "," frío "y". El movimiento entre las listas es muy similar al mecanismo en FreeBSD. Páginas visitadas con frecuencia estarán en la lista "caliente". Páginas libres estarán en la lista o "cold", "libre".
Solaris utiliza una lista disponible, lista de hash, y la lista de la página vnode mantener su variación de un algoritmo de reemplazo LRU. En lugar de escanear el vnode o listas de páginas hash (más o menos el equivalente a las listas "calientes" en las implementaciones de FreeBSD / Linux "activa" /), Solaris escanea todas las páginas utiliza un algoritmo de "reloj de dos manos", como se describe en Solaris Internos y otros lugares. Las dos manos quedan a una distancia fija. Las edades de mano delanteros la página en la limpieza de bit de referencia (s) para la página. Si ningún proceso ha hecho referencia a la página desde la parte frontal visitado la página, la mano de nuevo va a liberar la página (primera forma asíncrona escribir la página en el disco si se modifica).
Todos los tres sistemas operativos toman localidad NUMA en cuenta durante la búsqueda. La caché de búfer de E / S y el caché de páginas de memoria virtual se fusionaron en una sola página del sistema de caché en los tres sistemas operativos. La página de caché del sistema se utiliza para lecturas / escrituras de archivos, así como archivos y texto y los datos de aplicaciones mmapped.
Sistemas de archivos.
No hay comentarios.:
Publicar un comentario