Ir al contenido principal

Kernel,Linux y OpenOffice

 ¿Qué es Kernel?

El Kernel o núcleo, es una parte fundamental del sistema operativo que se encarga de conceder el acceso al hardware de forma segura para todo el software que lo solicita, el Kernel es una pequeña e invisible parte del sistema operativo, pero la más importante, ya que sin esta no podría funcionar. Todos los sistemas operativos tienen un Kernel, incluso Windows 10, pero quizá el más famoso es el Kernel de Linux, que ahora además está integrado en Windows 10 con sus últimas actualizaciones.

Este núcleo de los sistemas operativos se ejecuta en modo privilegiado con acceso especial a los recursos del sistema para poder realizar las peticiones de acceso que le va pidiendo el software que lo necesita, además como los recursos no son ilimitados, también hace de arbitro a la hora de asignarlos, decidiendo el orden de las peticiones recibidas según la prioridad e importancia de estas. Una gestión muy importante y fundamental que en la mayoría de las ocasiones pasa desapercibida aún siendo un trabajo esencial para coordinar todo el hardware con el software.

El Kernel de Windows es privado y su código lo tienen a salvo en el que solamente Microsoft puede realizar modificaciones para mejorar sus próximas versiones de Windows 10, al igual pasa con el de macOS, basado en Unix pero con licencia privada se reserva al equipo de desarrollo encargado en Apple de realizar estas modificaciones, pero Linux tiene un Kernel público bajo licencia GPL v2 y su código (o la mayor parte) está disponible para poder descargarlo, examinarlo o incluso realizar aportes y modificaciones útiles para los demás usuarios.

Se ha publicado en GitHub el código fuente del sistema operativo MS-DOS para poder examinarlo, este sistema operativo lo constituye un núcleo básico en el que solo se puede ejecutar una instrucción a la vez, si eres un curioso y te gustaría saber como está programado un sistema operativo en el que no existe el multiusuario, puedes descargar su código fuente y examinarlo o incluso modificarlo a tu gusto para hacerlo funcionar en un PC.

¿Para qué sirve el Kernel?


El Kernel o núcleo de un sistema operativo sirve para administrar los recursos de hardware solicitados por los diferentes elementos de software y hacer de intermediario decidiendo a que y cuando se concede este acceso evitando así sobrecarga del sistema, recursos innecesarios y acceso a software malicioso al propio Kernel y llegar a poder controlar así todo el sistema. De este modo el Kernel sirve como elemento de seguridad teniendo que pasar por varias capas antes de poder tener acceso, además tiene que distribuir los recursos de manera eficiente y ordenada para que el Hardware trabaje junto al Software de la mejor manera posible.

Aunque usualmente relacionamos un Kernel o un núcleo del sistema operativo a un PC, también está presente y sirve para hacer funcionar todos los computadores que podemos encontrar hoy en día, como por ejemplo un ordenador de a bordo de un coche o un barco, una raspberry PI que ejecuta una versión adaptada de Linux Debian o los dispositivos móviles con Android e iOS, que  también disponen de un Kernel basado en Linux / Unix.

Tiene también como trabajo conceder acceso a todos los periféricos que tengamos conectados e interactuar con el software que los solicite, aunque no sean los usuales con los que trabajamos. Por ejemplo si ocasionalmente conectamos un móvil para usarlo como webcam con DroidCam, este Kernel se encarga de conceder los permisos necesarios al software para gestionar y poder tener la imagen y el audio para poder usarla en algún software de videoconferencia o reuniones si por ejemplo teletrabajamos desde casa o cualquier otro lugar.

El Kernel es el encargado de hacer funcionar básicamente todo, tiene que ser capaz de arrancar, por ejemplo, un PC desde que lo encendemos hasta que vemos visible el escritorio, todo esto comunicándose con los elementos hardware que dispone el PC y que también son necesarios para hacerlo funcionar, una vez que tengamos el escritorio deberá ser capaz de hacer funcionar los programas que nosotros queramos abrir y hacerlos funcionar en nuestro PC.


¿Cuáles son las tareas de un kernel?

El principal cometido del kernel es el procesamiento paralelo de diferentes tareas, el multitasking. Para ello debe, por un lado, cumplir con los tiempos establecidos y, por otro, permanecer disponible para tareas adicionales.

La norma necesita excepciones para poder funcionar en un sistema tan acelerado como es el sistema operativo. Por tanto, el kernel solo sirve de intermediario para el software del sistema, el software de aplicación y las bibliotecas. La interfaz gráfica de un sistema operativo es completamente independiente del kernel, incluso en el caso de Linux.

 Nota

En los sistemas multiusuario, el Kernel también controla los derechos de acceso a los archivos y a los componentes de hardware. El administrador de tareas muestra cuáles son en ese momento. Si se finaliza una tarea desde el administrador de tareas, este se lo indica al Kernel para que termine el proceso y así libere la memoria asignada.

Cuando se enciende un ordenador, lo primero que ocurre es que el kernel se carga en la memoria. Esto ocurre en una zona protegida, en el gestor de arranque, para que el kernel como programa no pueda ser modificado ni borrado.

A continuación, el kernel enciende los dispositivos conectados e inicia los primeros procesos. Se cargan los servicios del sistema, se inician o detienen otros procesos y se inician los programas de usuario como la asignación de espacio de almacenamiento.

Los tres tipos de kernel

Existen diferentes tipos de kernel para diferentes sistemas operativos y dispositivos finales. Conforme a sus características, pueden dividirse en tres grupos:

  1. Kernel monolítico. Un kernel grande para todas las tareas. Es el único responsable de la gestión de la memoria y de los procesos, de la comunicación entre procesos y proporciona funciones de soporte de drivers y hardware. Los sistemas operativos que usan el kernel monolítico son Linux, OS X y Windows.
  2. Microkernel. El Microkernel se ha diseñado intencionadamente de un tamaño pequeño para que en caso de fallo no paralice todo el sistema operativo. No obstante, para que pueda asumir las mismas funciones que un kernel grande, está dividido en varios módulos. Como ejemplo de aplicación solo existe el componente Mach de OS X, ya que hasta ahora no hay ningún sistema operativo con microkernel.
  3. Kernel híbrido. La combinación del kernel monolítico y el microkernel se denomina kernel híbrido. En este caso, el kernel grande se hace más compacto y modulable. Otras partes del kernel pueden cargarse dinámicamente. Esto ya ocurre en cierta medida en Linux y OS X.

¿Cuál fue la primera versión de Linux 

Historia de Linux
LINUX hace su aparición a principios de la década de los noventa, era el año 1991 y por aquel entonces un estudiante de informática de la Universidad de Helsinki, llamado Linus Torvalds, empezó como una afición y sin poderse imaginar a lo que llegaría este proyecto, a programar las primeras líneas de código de este sistema operativo llamado LINUX.
Este comienzo estuvo inspirado en MINIX, un pequeño sistema Unix desarrollado por Andy Tanenbaum. Las primeras discusiones sobre Linux fueron en el grupo de noticias comp.os. minix, en estas discusiones se hablaba sobre todo del desarrollo de un pequeño sistema Unix para usuarios de Minix que querían más.

Linus nunca anunció la versión 0.01 de Linux (agosto 1991), esta versión no era ni siquiera ejecutable, solamente incluía los principios del núcleo del sistema, estaba escrita en lenguaje ensamblador y asumía que uno tenía acceso a un sistema Minix para su compilación.

El 5 de octubre de 1991, Linus anuncio la primera versión "Oficial" de Linux versión 0.02. Con esta versión Linus pudo ejecutar Bash (GNU Bourne Again Shell) y gcc (El compilador GNU de C) pero no mucho mas funcionaba. En este estado de desarrollo ni se pensaba en los términos soporte, documentación, distribución. Después de la versión 0.03, Linus saltó en la numeración hasta la 0.10, mas y más programadores a lo largo y ancho de internet empezaron a trabajar en el proyecto y después de sucesivas revisiones, Linus incremento el número de versión hasta la 0.95 (marzo 1992). Mas de un año después (diciembre 1993) el núcleo del sistema estaba en la versión 0.99 y la versión 1.0 no llego hasta el 14 de marzo de 1994. Desde entonces no se ha parado de desarrollar, la versión actual del núcleo es la 2.2 y sigue avanzando día a día con la meta de perfeccionar y mejorar el sistema.


OpenOffice

OpenOffice es un paquete de software de oficina de código abierto, que incluye procesador de textos, hoja de cálculo, presentaciones, herramientas para el dibujo vectorial y base de datos. Soporta numerosos formatos de archivo, incluyendo como predeterminado el formato estándar ISO/IEC OpenDocument (ODF), entre otros formatos comunes, y se enfoca en mantener compatibilidad con el estándar OpenOffice XML, el formato de Microsoft, así como también soporta más de 110 idiomas, desde febrero del año 2010.​ Apache OpenOffice es uno de los sucesores del proyecto OpenOffice.org e integra características de otras suites ofimáticas como IBM Lotus Symphony.

La suite ofimática está disponible para varias plataformas, tales como Microsoft Windows, GNU/Linux, BSD, Solaris y Mac OS X, además de diversos ports realizados a otros sistemas operativos. El software es distribuido bajo la licencia Apache. La primera versión lanzada por Apache fue la 3.4.0,​ el 8 de mayo de 2012. Desde esa primera versión, se han realizado diversas bifurcaciones como por ejemplo LibreOffice (desarrollado por The Document Foundation) y el proyecto Go-OO, que fue suspendido en favor de LibreOffice en septiembre de 2010.

Apache OpenOffice desciende de OpenOffice.org, un proyecto que tiene como base inicial a StarOffice, una suite ofimática desarrollada por StarDivision y adquirida por Sun Microsystems en agosto de 1999.​ El desarrollo de la suite estaba liderado por Sun Microsystems y con posterioridad abandonado por Oracle Corporation. El código fuente de la aplicación está disponible bajo la Licencia pública general limitada de GNU (LGPL) versión 3 hasta la versión 3.4.0 Beta 1.​ Después de la adquisición de Sun en 2010, Oracle Corporation dejó de apoyar el desarrollo comercial​ y en junio de 2011 donó la suite a la Incubadora de Apache para convertirse en un proyecto de la Apache Software Foundation.​ Posteriormente, en diciembre de 2011, la Apache Software Fundación anunció que el nombre del proyecto se convertiría en Apache OpenOffice.

La versión de mantenimiento más reciente fue 4.1.12 del 4 de mayo de 2022. Esta actualización resuelve algunos problemas con correcciones de errores y diccionarios actualizados.

Aplicaciones incluidas

Las aplicaciones incluidas en la suite ofimática Apache OpenOffice son las siguientes:

OOoWriter.svgWriterEs el procesador de textos de la suite ofimática, similar a Microsoft Word. Writer puede exportar archivos de texto a los formatos PDF y HTML sin software adicional, lo que permite que pueda ser utilizado como un editor WYSIWYG para crear y editar páginas web.


OOoCalc.svgCalcEs una hoja de cálculo similar a Microsoft Excel y Lotus 1-2-3. Calc ofrece una serie de características no presentes en Excel, incluyendo un sistema que automáticamente define serie de gráficas, sobre la base de la disposición de la información del usuario. Calc también puede exportar hojas de cálculo al formato PDF.

OOoImpress.svgImpressEs un programa de presentación similar a Microsoft PowerPoint o Keynote de Apple. Puede exportar presentaciones al formato SWF, permitiendo que se reproduzca en cualquier computadora con un reproductor de Flash instalado. También incluye la capacidad de crear archivos PDF, y la capacidad de leer archivos de Microsoft PowerPoint (ppt). Su formato original es ODP.



OOoBase.svgBaseEs un programa de base de datos similar a Microsoft Access. Apache OpenOffice Base permite la creación y manejo de bases de datos, elaboración de formularios e informes que proporcionan a los usuarios finales un acceso fácil a los datos. Al igual que Microsoft Access, es capaz de trabajar como un front-end para diversos sistemas de bases de datos tales como el de Access (JET), fuente de datos ODBC y MySQL/PostgreSQL. Base está disponible desde la versión 2.0.

OOoDraw.svgDrawEs un editor de gráficos vectoriales y herramienta de diagramación, similar a Microsoft Visio y comparable en características a las primeras versiones de CorelDraw. Ofrece «conectores» entre las formas, que están disponibles en una gama de estilos de línea y facilitan la construcción de los dibujos, como diagramas de flujo. Tiene características similares a la edición de software de escritorio como Scribus y Microsoft Publisher. Draw también puede exportar sus creaciones al formato PDF y al estándar SVG

OOoMath.svgMathEs una aplicación diseñada para la creación y edición de fórmulas matemáticas. La aplicación utiliza un lenguaje de marcado para crear las fórmulas.​ Dichas fórmulas pueden ser incorporadas dentro de otros documentos de OpenOffice.org, tales como los creados por Writer; permitiendo al usuario la posibilidad de incrustarlas al documento como objetos OLE.​ Math soporta múltiples fuentes y puede exportar fórmulas a los formatos de archivo ODF, PDF o MathML.

Comentarios