martes, 19 de junio de 2012

MorphOS: El sistema operativo fulgurante

MorphOS: El sistema operativo fulgurante
MorphOS
MorphOS es un sistema operativo que ofrece funcionalidades avanzadas. Esto es posible porque MorphOS está construido sobre un microkernel muy flexible, potente y compacto, llamado Quark, cuya estructura es independiente, y por tanto no está relacionada con otros kernelcomo los de Amiga ni de Linux.

Una cualidad que distingue a MorphOS, es su "bajo peso". Una instalación completa, requiere menos de 20 MB para el sistema operativo completo. Otra cualidad distintiva de MorphOS, es su velocidad. No es un Sistema Operativo en Tiempo Real, pero alcanza una capacidad de respuesta cercana al tiempo real con hardware convencional.

Plataforma hardware
MorphOS se ejecuta exclusivamente en procesadores PowerPC. Actualmente soportan dosplataformas de hardware específicas: las tarjetas aceleradoras PowerPC de los ordenadores Amiga (desarrolladas por Phase5 y conocidas como Cyberstorm y Blizzard) y las placas madre PegasosPPC (distribuidas por Genesi, y utilizadas en un equipo de plenas prestaciones llamado ODW, Open Desktop Workstation). Las placas PegasosPPC, se inicializan por medio del HAL/OF (Hardware AbstractionLayer/Open Firmware), un software al estilo del BIOS, creado y mantenido por Genesi para sus productos PowerPC (y disponible bajo licencia para cualquier diseñador/constructor de productos basados en PowerPC). Potencialmente, MorphOS puede ejecutarse con cambios mínimos en cualquier placa PowerPC, inicializada por el HAL/OF: es conocido ya que este SO corre sobre las placas EFIKA 5K2.

Instalación
Un sistema ligero como MorphOS, muestra sus ventajas ya desde la fase de instalación, tanto en términos de tiempo, como de simplicidad.
Introduce tu cd de arranque de MorphOS en la unidad de cdrom, y selecciónala como dispositivo de arranque en el HAL/OF. MorphOS arrancará directamente desde el CD, con su configuración por defecto, con requerimientos de hardware mínimos. El proceso de arranque, tarda menos de un minuto. Una vez arrancado, ya se puede utilizar la utilidad de particionamiento del sistema operativo para crear al menos una partición de arranque en el disco duro, y la utilidad de formateo, para darle formato a la partición. A continuación se puede lanzar el script de instalación que copia MorphOS en la partición (el instalador maneja una serie de casos particulares y circunstancias especiales del sistema, que se pueden dar, pero básicamente copia todos los ficheros y directorios del sistema, con los ficheros de configuración por defecto del cdrom, al disco duro).
Una vez instalado, el siguiente paso será extraer el cd de arranque de MorphOS de la unidad de cdrom, y resetear el Pegasos/OWD (bien utilizando el botón de reset. Después de unos segundos, el sistema volverá a la pantalla HAL/OF, donde configuraremos las variables de entorno adecuadas, indicando cual es la de la partición de arranque, y cual la de la partición del sistema.
¡El tiempo total requerido para efectuar todas las operaciones anteriores, no es más de 5 minutos! Pero aun queda más: deja que MorphOS arranque desde el disco duro, y cronometra el tiempo necesario para que arranque el entorno operativo. Tardará menos de 5 segundos: ¡Bienvenido al Sistema Operativo Relámpago!

Funcionalidades características
El núcleo de MorphOS, se encuentra comprimido y almacenado en el fichero boot.img, que debe residir en algún medio de almacenamiento accesible por medio del HAL/OF. Este fichero, cargará y ejecutará el microkernelQuark, y otros componentes de bajo nivel del sistema operativo. El resto del sistema operativo, está formado por ficheros almacenados en medios de almacenamiento, y se ejecutarán encima de esta capa de abstracción software.
MorphOS incorpora todas las capacidades, por medio de Quark, que también es capaz de soportar características más modernas, como protección de memoria, memoria virtual y de más. Quarktambién permite utilizar un número de "sandboxes", donde se pueden ejecutar sistemas operativos virtualizados. Actualmente, solo se han implementado dos, estas son: QBox, que es utilizada solamente para los procesos de bajo nivel, y ABox, que proporciona un API (interfaz de programación de aplicación) especial para las aplicaciones.
MorphOS dispone de dos interfaces de usuario compactos, eficientes, y totalmente integrados (Interfaz de línea de comandos (CLI), e interfaz gráfica de usuario (GUI)), para sus aplicaciones de escritorio. Aunque estos sistemas integrados de CLI/GUI son totalmente eficientes, algunos usuarios prefieren otros entornos más avanzados y "adornados" como GUI. Para hacer frente a esto, MorphOS adoptado una capa de abstracción orientada a objetos por software para su GUI, llamada MUI (MagicUser Interface). MUI no solo proporciona al programador con interacciones y entornos más efectivos, si no que también permite interfaces más personalizadas al gusto de cada usuario. Actualmente, MUI es uno de los componentes más distintivos de MorphOS, tanto en términos de potencia como de estética.




El interfaz de comandos de MorphOS, por otra parte, es un interfaz al estilo Unix, dotado de todos los componentes que se podrían esperar (la mayoría similares de los de Unix), variables locales y globales, substitución de comandos, redirección de comandos, redirecciones con nombre o sin el, historial, menús programables, múltiples interfaces de comandos en una sola ventana, compatibilidad ANSI, selección de color, y más. Por supuesto, este conjunto de mandatos incluye todos los comandos necesarios para hacer scripts. En resumen: Los usuarios acostumbrados los interfaces en línea de comandos, no se sentirán defraudados...

Ambient, es el escritorio nativo, multi-proceso, totalmente asincrono y basado en MUIestándar de MorphOS. Este componente, es por su parte de código libre, aunque en la práctica, Ambient es un componente exclusivo de MorphOS, porque está tan férreamente ligado a MUI y al sistema operativo, que portarlo sería realmente difícil. Ambient proporciona gestión de los iconos de los ficheros, navegación de directorios, ejecución de aplicaciones, manejo de ficheros, y todo lo necesario para administrar el sistema. Ambient es altamente adaptable a los gustos del usuario: el manejo de ficheros, puede hacerse al modo clásico (espacial), o utilizando el modo navegador o de lista de ficheros. El reconocimiento de "tipos de fichero" se hace o bien por medio de asignación directa al archivo, o bien por medio de mimetypes, teniendo el usuario control total sobre el comportamiento de los mimetypes para una mayor adaptabilidad. Ambient permite también al usuario llevar a cabo cualquier tipo de actividad con las herramientas integradas: búsqueda de ficheros, muestra de ficheros de texto, muestra de archivos de imagen, reproducción de audio, monitorización del sistema, formateo de discos, manejo de utilidades "commodities", y mucho más. Desde los menús de Ambient, el usuario puede controlar todas las configuraciones del entorno de MorphOS incluyendo configuración de MUI y del escritorio en sí.


















Gráficos 3D
La mayor parte de los sistemas operativos alternativos actuales, no tienen soporte para gráficos en 3D, o este es muy precario. Esto, es debido a que las pocas compañías que desarrollan tarjetas gráficas, o bien no distribuyen la información técnica para estas, o bien lo hacen de manera que al pequeño desarrollador le resulta muy difícil de conseguir.
En este escenario de falta de soporte 3D, MorphOS es una excepción relevante, aunque con ciertos límites. Hay dos razones para esto. La primera es la creación de la tinygl.library, un componente software muy importante (a pesar de su nombre), pues se trata de una implementación funcional y casi completa de la especificación OpenGL. El segundo, es que el MorphOS DevelopementTeam, ha decidido concentrar todos sus esfuerzos en un número reducido de tarjetas 3D, compatibles con el gardwarePegasosPPC.

Juegos
Probablemente, nos preguntemos porque añadir esta sección, cuando los gráficos 3D de MorphOS, no son lo último de lo último. El kit de la cuestión, es dar información esencial sobre los límites técnicos alcanzados por MorphOS en este campo de interés. Sabiendo que juegos han sido portados, y que nivel de calidad que tienen cuando son ejecutados, los expertos podrán evaluar cual es el estado actual de los gráficos 3D de MorphOS.
Uno de los juegos más notables de MorphOS, es definitivamente Virtual Grand Prix 2, publicado por Alassoft. Es una simulación muy realista (probablemente una de las más realistas en cualquier plataforma), con graficos con aceleración 3D llamativos, y soporte para dispositivos de entrada analógicos, que en MorphOS se utilizan por medio de la pila USB Poseidon, y la librería lowlevel.library. La versión de MorphOS, ha sido creada poco despues de la de Mac y Windows, debido a las raices del principal programador Paolo Cattani. Notablemente, la versión para MorphOS es completamente. El juego, incluye la mayor parte de los circuitos verdaderos, realizados de forma cuidadosa, y altamente reconocibles. Los que no están incluidos, pueden encontrarse en paquetes adicionales creados por usuarios en la red. El juego es bastante rápido, y jugable incluso en las máquinas de bajo rendimiento

¿Quien necesita MorphOS?
Los argumentos anteriores, pronostican que el uso de MorphOS como sistema operativo personal principal, conlleva una serie de limitaciones, que le impiden adoptar una óptica de sistema de propósito profesional. Sin embargo, MorphOS ya es usable para propósitos profesionales más limitados, y por supuesto, para propósitossemi-profesionales o de hobby. Desde luego, sus limitaciones actuales, sin irrelevantes para le mercado de dispositivos donde la rapidez y el bajo peso, son las características más relevantes.
La evolución del sistema, hará desaparecer cientos de limitaciones actuales, y proveerá de una base más grande de usuarios: gente menos especializada, que abrirá nuevos horizontes, y hará crecer el nicho actual.

Enlaces de interés:
Comunidades de MorphOS
MorphZone
Pegasos.org

Foros y páginas de noticias:
MorphOS-News

Páginas de desarrollo sobre MorphOS:
MorphOS-Team


Linux

Linux
Linux es un núcleolibre de sistema operativo basado en Unix. Es uno de los principales ejemplos de software libre. Linux está licenciado bajo la GPL v2 y está desarrollado por colaboradores de todo el mundo. El desarrollo del día a día tiene lugar en la Linux KernelMailingList Archive
El núcleo Linux fue concebido por el entonces estudiante de ciencias de la computaciónfinlandés, LinusTorvalds, en 1991. Linux consiguió rápidamente desarrolladores y usuarios que adoptaron códigos de otros proyectos de software libre para su uso en el nuevo sistema operativo. El núcleo Linux ha recibido contribuciones de miles de programadores. Normalmente Linux se utiliza junto a un empaquetado de software, llamado distribución Linux.

Arquitecturas

Diagrama del núcleo 2.4.0.
Actualmente Linux es un núcleo monolítico híbrido. Los controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan enespacio de usuario. A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos y las extensiones al núcleo se pueden cargar y descargar fácilmente como módulos, mientras el sistema continúa funcionando sin interrupciones. También, a diferencia de los núcleos monolíticos tradicionales, los controladores pueden ser prevolcados (detenidos momentáneamente por actividades más importantes) bajo ciertas condiciones. Esta habilidad fue agregada para gestionar correctamente interrupciones de hardware, y para mejorar el soporte de multiprocesamiento simétrico.
El hecho de que Linux no fuera desarrollado siguiendo el diseño de un micronúcleo (diseño que, en aquella época, era considerado el más apropiado para un núcleo por muchos teóricos informáticos) fue asunto de una famosa y acalorada discusión entre LinusTorvalds y Andrew S. Tanenbaum.

Jerarquía de directorios

En Linux existe un sistema de archivos que carga y contiene todos los directorios, redes, programas, particiones, dispositivos, etc. que el sistema sabe reconocer, o por lo menos, identificar. Este sistema de ficheros y directorios, tiene como base al carácter (/); ese mismo carácter sirve también para demarcar los directorios, como por ejemplo: "/home/usuario/imagen.jpg". El directorio especificado por una ruta consistente sólo por este carácter contiene toda la jerarquía de los directorios que constituyen todo el sistema. A este directorio suele llamárselo directorio raíz. En Linux, a los discos no se les asigna una letra como en Windows (p.e. "C:"), sino que se les asigna un directorio de la jerarquía del directorio raíz (/), como por ejemplo: "/media/floppy". Es práctica común en el sistema de ficheros de Linux, utilizar varias sub-jerarquías de directorios, según las diferentes funciones y estilos de utilización de los archivos.[10] Estos directorios pueden clasificarse en:
  • Estáticos: Contiene archivos que no cambian sin la intervención del administrador (root), sin embargo, pueden ser leídos por cualquier otro usuario. (/bin, /sbin, /opt, /boot, /usr/bin...)
  • Dinámicos: Contiene archivos que son cambiantes, y pueden leerse y escribirse (algunos solo por su respectivo usuario y el root). Contienen configuraciones, documentos, etc. Para estos directorios, es recomendable una copia de seguridad con frecuencia, o mejor aún, deberían ser montados en una partición aparte en el mismo disco, como por ejemplo, montar el directorio /home en otra partición del mismo disco, independiente de la partición principal del sistema; de esta forma, puede repararse el sistema sin afectar o borrar los documentos de los usuarios. (/var/mail, /var/spool, /var/run, /var/lock, /home...)
  • Compartidos: Contiene archivos que se pueden encontrar en un ordenador y utilizarse en otro, o incluso compartirse entre usuarios.
  • Restringidos: Contiene ficheros que no se pueden compartir, solo son modificables por el administrador. (/etc, /boot, /var/run, /var/lock...)

Kernelpanic

En Linux, un panic es un error casi siempre insalvable del sistema detectado por el núcleo en oposición a los errores similares detectados en el código del espacio de usuario. Es posible para el código del núcleo indicar estas condiciones mediante una llamada a la función de pánico situada en el archivo headersys/system.h. Sin embargo, la mayoría de las alertas son el resultado de excepciones en el código del núcleo que el procesador no puede manejar, como referencias a direcciones de memorias inválidas. Generalmente esto es indicador de la existencia de un bug en algún lugar de la cadena de alerta. También pueden indicar un fallo en el hardware como un fallo de la RAM o errores en las funciones aritméticas en el procesador, o por un error en el software.

Lenguajes de programación

Linux está escrito en el lenguaje de programación C, en la variante utilizada por el compilador GCC (que ha introducido un número de extensiones y cambios al C estándar), junto a unas pequeñas secciones de código escritas con el lenguaje ensamblador. Por el uso de sus extensiones al lenguaje, GCC fue durante mucho tiempo el único compilador capaz de construir correctamente Linux. Sin embargo, Intel afirmó haber modificado su compilador C de forma que permitiera compilarlo correctamente.
Asimismo se usan muchos otros lenguajes en alguna forma, básicamente en la conexión con el proceso de construcción del núcleo (el método a través del cual las imágenes arrancables son creadas desde el código fuente). Estos incluyen a Perl, Python y varios lenguajes shell scripting. Algunos drivers también pueden ser escritos en C++, Fortran, u otros lenguajes, pero esto no es aconsejable. El sistema de construcción de Linux oficialmente solo soporta GCC como núcleo y compilador de controlador.

Portabilidad

Ipod ejecutando un núcleo Linux.

Aun cuando LinusTorvalds no ideó originalmente Linux como un núcleo portable, ha evolucionado en esa dirección. Linux es ahora de hecho, uno de los núcleos más ampliamente portados, y funciona en sistemas muy diversos que van desde iPAQ (una handheld) hasta un zSeries (un mainframe masivo). Está planeado que Linux sea el sistema operativo principal de las nuevas supercomputadoras de IBM, Blue Gene cuando su desarrollo se complete.

Arquitectura de máquina virtual

El núcleo Linux puede correr sobre muchas arquitecturas de máquina virtual, tanto como host del sistema operativo o como cliente. La máquina virtual usualmente emula la familia de procesadores Intel x86, aunque en algunos casos también son emulados procesadores de PowerPC o AMD.

Versiones

Más allá de haber desarrollado su propio código y de integrar los cambios realizados por otros programas, LinusTorvalds continua lanzando nuevas versiones del núcleo Linux. Estos son llamados núcleos “vanilla”, lo que significa que no han sido modificados por nadie. Muchos desarrolladores de distribuciones Linux modifican dicho núcleo en sus productos, principalmente para agregarle soporte a dispositivos o herramientas que no fueron oficialmente lanzadas como estables, mientras que algunas distribuciones, como Slackware, mantienen el núcleo vanilla.

Fechas de publicación


Versión
Fecha
Nota
Ficheros
MiB (bz2)
0.01
17 de septiembre de 1991
InitialPublicRelease
88
8.413
0,267
0,06
0.02
5 de octubre de 1991
-
-
0.11
8 de diciembre de 1991
100
11.907
0,363
0,076
0.95
7 de marzo de 1992
122
19.200
0,533
0,111
1.0.0
13 de marzo de 1994
Primera versión estable
561
170.581
4,633
0,969
1.1.0
6 de abril de 1994
Versión de desarrollo
561
170.320
1.2.0
6 de marzo de 1995
909
294.623
1.3.0
12 de junio de 1995
Versión de desarrollo
992
323.581
2.0.0
9 de junio de 1996
2.015
716.119
21,7
4,499
2.1.0
30 de septiembre de 1996
Versión de desarrollo
1.727
735.736
2.2.0
26 de enero de 1999
4.599
1.676.182
2.3.0
11 de mayo de 1999
Versión de desarrollo
4.721
1.763.358
2.4.0
4 de enero de 2001
8.187
3.158.560
96,8
18,79
2.5.0
23 de noviembre de 2001
Versión de desarrollo
9.893
3.833.603
2.6.0
18 de diciembre de 2003
15.007
5.475.685
170,7
31,7
2.6.25
16 de abril de 2008
23.810
8.396.250
258,8
46,4
2.6.30
10 de junio de 2009
27.878
10.419.567
322,3
56,7
2.6.35
1 de agosto de 2010
33.315
12.250.679
376,2
66,1
3.0
22 de julio de 2011
36.782
13.688.408
410,8
73,2


Soporte de hardware

El núcleo Linux ha sido criticado con frecuencia por falta de controladores para cierto hardware de computadoras de escritorio. Sin embargo, el progresivo incremento en la adopción de Linux en el escritorio ha mejorado el soporte de hardware por parte de terceros o de los propios fabricantes, provocando que, en los últimos años, los problemas de compatibilidad se reduzcan.
Empresas como IBM, Intel Corporation, Hewlett-Packard, Dell o MIPS Technologies tienen programadores en el equipo de desarrolladores del núcleo Linux que se encargan de mantener los controladores para el hardware que fabrican. Este grupo de programadores también se le suman los que provee grandes distribuidores de soluciones Linux como Novell o Red Hat.
Algunas empresas proporcionan controladores de hardware para Linux pero sin liberar el código fuente. Esto implica que se deba depender de ellas para solucionar posibles errores o mejorar los controladores. Dos empresas que hacen esto son Nvidia y AMD, aunque esta última ayudó a la creación de controladores libres liberando especificaciones sobre su hardware y actualmente colabora en el desarrollo de un controlador libre para sus tarjetas gráficas ATI de última generación.


Enlaces de interés: