domingo, 19 de febrero de 2017

Las base de datos y su importancia

Actualmente la recopilación de datos es importante, tanto a nivel empresarial como personal. En el caso de las empresas, la recolección de datos para procesarlos en información es hasta vital para su funcionamiento, inclusive se puede hasta decir que sin datos una empresa de cualquier tipo simplemente no existiría. Dichos datos pueden ser ya sea de la producción realizada, como del personal que labora en ella. Si hablamos a nivel personal o individual, también recoger datos es importante. Ya sea números telefónicos, direcciones de email, fechas importantes que recordar, estos son datos que son útiles para el día a día de una persona cualquiera. Ahora bien, se sabe que los datos por sí solo no significan nada, por lo que es necesario procesarlos para convertirlos en información. Para esto es necesario recoger dichos datos y organizarlos de una forma adecuada, para tener acceso a estos, modificarlos o eliminarlos. Es allí donde entran en escena las bases de datos.

Una base de datos es un conjunto de datos que tienen relación entre si y que son almacenados para su posterior uso. Un sencillo ejemplo de una base de datos es una guía telefónica, en la cual hay una serie de números de teléfono correspondientes a un determinado negocio o persona. En este caso los datos son los números telefónicos y la relación entre ellos es que pertenecen a alguien en particular. Las bases de datos se usan mucho en la computación y para manipularlas se usan los sistemas de gestión de base de datos, que son una serie de programas que nos permiten borrar, agregar y modificar datos pertenecientes a una base de datos. Ejemplos de sistema de gestión de base de datos (SGBD), MySQL, Postgresql, MariaDB. Estos son algunos tipos de base de datos:
  • Base de datos jerarquica
  • Base de datos orientadas a objetos
  • Base de datos de red
  • Base de datos relacionales
El tipo más usado de base de datos es el relacional, en el cual los datos se organizan en tablas estructuradas en registros (filas) y campos (columnas), donde las tablas se vinculan por un campo en común.


Vamos a ver la importancia de las bases de datos. Recordemos primero el concepto de aplicación, el cual es un programa que permite a un usuario realizar un determinado trabajo, como es el caso de Excel o en su contraparte de software libre Calc. Ahora centrémonos en estas dos aplicaciones, las cuales son hojas de cálculo con las que se pueden manipular números (o sea datos) y realizar algunas operaciones matemáticas. Si bien estos números son introducidos por el usuario, los mismos, o los obtenidos como resultado de alguna operación, deben ser guardados para ser usados por otro usuario ubicado en otro lugar, ya sea para verlos, modificarlos o simplemente eliminarlos. Igualmente el usuario que está trabajando, ya sea con Excel o Calc, requiera esos mismos números de otro sitio o de otro usuario.

Es allí donde se ve la importancia de las bases de datos. Cualquier aplicación debe tener un sitio donde pueda acceder a cualquier dato para su funcionamiento, de lo contrario, estos serían valores fríos, ya que solo se quedan en el computador del usuario. Estos deben estar en una base de datos en la cual se organicen de manera adecuada, y como se ha dicho en líneas anteriores, disponibles para su uso.

Volvamos al caso del usuario frente a su tabla de Excel o Calc mostrada en el monitor. ¿Qué significarían esos números? Se podría llegar a la conclusión que nada, solo números fríos mostrados en el monitor. Esto mismo ejemplo podría aplicarse a cualquier otra aplicación. Por lo tanto, se puede concluir que una aplicación no estaría completa, es decir ni siquiera merecerse el nombre de aplicación, si no está acompañada de una base de datos.

Espero que les haya gustado y mas que todo que les haya servido de utilidad. Recuerden que para alguna duda pueden comentar.

El router

En esta publicación les explicaré que es un router así como sus principales características, pero primero veremos el concepto de red. Una red es un conjunto de computadores interconectados con el fin de compartir sus recursos, siendo creadas las primeras redes a mediados de los años 60 del siglo pasado, desarrollándose poco a poco pasando de solo usarse en grandes corporaciones y universidades hasta poder estar presentes en muchos hogares y hacemos uso de la más grande red del mundo que es la Internet.. En próximas publicaciones trataré con más detalle el tema de las redes.

Ahora bien, una red sola es como una isla aislada, es decir, solo se compartirán los recursos de las computadoras que conforman dicha red ¿Cómo se haría para compartir dichos recuesos con otra red? Dije que la Internet es la red más grande del mundo, pero en realidad es un montón de redes. De nuevo surge la interrogante ¿Cómo es posible que se conecten todas esas redes? Pues esto se hace con un dispositivo llamado router.

Un router es un dispositivo que permite interconectar una red con otras diferentes. El router es un dispositivo pertenece a la capa 3, es decir a la capa de Red del modelo OSI, la cual permite entender cómo se produce la comunicación entre ordenadores en una red (del modelo OSI así como de otros temas similares hablaré en próximas publicaciones) por lo que el router (o enrutador) envía los paquetes de datos de acuerdo a la dirección de red que tengan

Tipos y modelos de router. Características

Existen distintos tipos de routers, los cuales voy a nombrar a continuación con sus principales características.
·         Routers de Red Núcleo (Core Routers): se trata de equipamiento de interconexión que constituye la red de datos de los proveedores de Internet  de grandes corporaciones.
·         Routers de Salida (Gateway o pasarela): es el equipo con el que se realiza la conexión a Internet o a otra sub-red.
·         Router ADSL/SOHO (Small Office Home Office) y Módem Router xDSL: se emplean en conexiones de banda ancha xDSL como ADSL, ADSL2 y ADSL2+, y con un único router se tiene acceso a la red local y a Internet.

·         Routers inalámbricos o WiFi: realizan la misma función de un router, con la diferencia que éste permite la conexión de dispositivos inalámbricos a otras redes. Los hay de tipo B, que permite velocidades de conexión inalámbrica de hasta 11 Mbps y utiliza una frecuencia de 2,4 GHz, los de tipo G que utiliza la banda de 2,4 GHz y su ancho de banda es de 54 Mbps y los de tipo N que operan en las banda de 2,4 GHz y 5 GHz; una banda utilizará la entrada, mientras que la otra utilizará la salida y proporciona velocidades de conexión de hasta 100 Mbps.

·         Routers móviles: usan redes celulares para conectarse a Internet y proporcionan conectividad inalámbrica en cualquier lugar donde haya una señal celular presente.


Algunos modelos de router son los siguientes:
  • Básicos: Ramp Networks WebRam 300e, Cisco serie 600...
  • ADSL/SOHO: Linksys EtherFast Cable/DSL, Cisco SOHO 71
  • Inalámbricos o WiFi: Netgear MR814 Cable/DSL 2.4 GHz Wireless Router, D-Link AirPro DI-764
  • Gama media: Cisco serie 2500/2600, Lucent SuperPipe 175
  • Gama alta: Nortel ATM Routing Engine, Cisco 12016 (GSR16/320-AC4)
Tipos de sistemas operativos usados por los routers

Los routers son computadores, por lo que deben contar con un sistema operativo. Estos son algunos de ellos.
·         Cisco IOS: Es el utilizado por los routers y switches de la empresa Cisco. Este sistema operativo es de código cerrado (Solo la empresa Cisco tiene su código fuente) cuenta tanto con interfaz de línea de comandos (CLI) como interfaz gráfica y permite realizar tareas de configuración en estos dispositivos, así como funciones de enrutamiento y conmutación o switcheo. 
·         Linux: Existen versiones de este sistema operativo libre para routers, como son Clear OS, Monowall, Untagle y Vyatta, las cuales pueden ser instaladas en algunos dispositivos con el fin de realizar labores de configuración y enrutamiento.

Bueno esto solo ha sido una breve introducción a los routers. Cualquier duda o sugerencia pueden expresarla en un comentario.

sábado, 18 de febrero de 2017

Linux o mejor dicho GNU/Linux. Hablemos de él. Las distribuciones Linux

Sin querer he hecho un tutorial de GNU/Linux, o Linux como prefieren llamarlo algunos aunque no es la expresión correcta. Pues en esta publicacion seguire tratando este etema y para ver las publicaciones anteriores de este "tutorial" pueden verlas aquí, aquí y aquí. Bueno mucha charla, asi que vamos al grano.

Esta vez les comentaré sobre las llamadas distribuciones Linux ¿y que es eso? preguntarán ustedes, pues ya les respondo. Antiguamente instalar un sistema operativo Linux era una tarea larga y tediosa y que además exigía tener ciertos conocimientos, ya que se tenía que primero obtener y el kernel y después todas los demás programas y aplicaciones que conforman el sistema. Afortunadamente esto ha cambiado con la aparición de las distribuciones Linux.

Una distribución Linux, también llamada distro Linux o simplemente distro, es una recopilación de programas y aplicaciones integradas alrededor de un núcleo Linux que permiten una instalación fácil del sistema. Estas distribuciones las ofrecen asociaciones y empresas o comunidades de usuarios, quienes se encargan de su lanzamiento, soporte y actualizaciones. En la siguiente imagen se muestra como es una distribución Linux.


Estas distribuciones se pueden descargar a través de Internet para poder grabarlas ya sea un CD, DVD o pendrive, u obteniendo los CDs o DVDs de instalación ya completos de las mismas ya sea previo pago o de forma gratuita. Por lo general las distros vienen en formato LiveCd, LiveDVD o LiveUSB es decir, que se puede correr el sistema desde el dispositivo de almacenamiento para conocerlo mejor sin necesidad de instalarlo en un disco duro, aunque esto hace que se ejecuten más lentamente y no se pueden guardar datos. Incluyen la opción de instalar la distribución, ya sea como único sistema o en una partición del disco duro compartiéndolo con otros sistemas operativos. 

Existen gran cantidad de distribuciones a nivel mundial, las cuales como se dijo cuentan con un núcleo Linux, entonces ¿Qué hace diferente a una distribución de otra? Pues bien primero hay que ver hacia qué tipo de usuario va destinado. Si bien, la mayoría son para dirigidas para el público en general existen distribuciones con un uso específico, como por ejemplo para los que trabajan en el mundo de la música, orientado a redes e incluso las hay destinadas según las creencias religiosas de los usuarios. Igualmente es importante se toma en cuenta el nivel de experiencia que tiene un usuario para usar una distribución. 

Otra cosa que hay que tener en cuenta es el paquete y sus gestores. Cuando se instala una distribución, los paquetes pueden ser distintos para cada una de ellas, siendo un paquete el formato o extensión del archivo usado por el sistema operativo para instalar un programa. Por ejemplo, la distribución Debian y sus derivados usan en sus paquetes el formato .deb, el cual no es compatible con otras distribuciones. Para que la distribución pueda usar ese archivo debe tener también un gestor de paquetes, es una colección de herramientas para instalar, modificar o eliminar dicho programa. Esto es importante, ya que si bien los programas no cambian entre una y otra distribución es muy probable que si cambie el paquete usado para instalarlo. 

Algo que también es importante es el hardware sobre el cual se va a instalar la aplicación, ya que hay algunas que consumen más recursos que otras. Es por eso que existen algunas que son destinadas a equipos ya viejos o con hardware limitado. 

Una distribución puede ser derivada de otra distribución, e igualmente dicha distribución derivada puede servir de base para otra más. No hay limitante para esto


Algunas distribuciones Linux

Como les dije, existen gran cantidad de distribuciones por lo que solo nombraré algunas de ellas.
  • Debian: Una distribución con muy buena calidad desarrollada por un grupo de usuarios, aunque actualmente no tan popular como sus derivados. Gran estabilidad antes que últimos avances. De esta distribución se han derivado otras más.
  • Ubuntu: Distribución patrocinada por la empresa sudafricana Canonical Ltd y basada en Debian, es una de las más populares. Se centra en la facilidad de uso, amplio soporte de hardware y funcionalidad, aunque con el uso del entorno gráfico Unity perdió algunos usuarios..
  • Kubuntu: Distribución también patrocinada por Canonical Ltd y similar a Ubuntu, difiriendo en el entorno grafico. Mientras Ubuntu usa el entorno Gnome, Kubuntu usa KDE. 
  • Linux Mint: Es una distribución, basada en Ubuntu. También está disponible una edición basada en Debian. Esta distribución es financiada por su comunidad de usuarios y es la más usada a nivel mundial.
  • gNewSense: Distribución basada en Debian y Ubuntu. Fue diseñado con la meta de proporcionar una distribución 100% libre a los usuarios que desean utilizar solamente softwar e libre.
  • Canaima: Distribución venezolana basada en Debian desarrollada y mantenida por un conjunto de usuarios. Es una de las distribuciones más usadas en Venezuela a raíz de su incorporación en escuelas públicas.

Bueno es todo por hoy. En próximas publicaciones seguiré hablando de Linux, o GNU/Linux que es su nombre verdadero. Cualquier cosa díganlo en los comentarios.

Linux o mejor dicho GNU/Linux. Hablemos de él. Como es su proceso de arranque

Siguiendo con el tema de Linux, o mejor dicho, GNU/Linux, aqui les explico como es su proceso de arranque.

Al momento de encender una computadora con Linux (o GNU/Linux) instalado, ocurre el siguiente proceso:

1. POST: Siglas de Power On Self Test, que en es español significa auto prueba de encendido. Es un código ejecutado por el BIOS (Basic Input/Output System) y cuyo objetivo es verificar el hardware de la computadora. Si hay algún error, se intentará continuar con el proceso de inicio del computador. Sin embargo, si el error es serio, el BIOS detendrá la carga del sistema e indicara la falla ya sea con mensajes en pantalla o por medio de sonidos. Si no se presenta ningún problema se pasa al próximo paso.

2. Bootloader Fase 1: Una vez que las pruebas realizadas por el POST hayan sido exitosas se buscan en los dispositivos de almacenamiento disponibles (discos duros, pendrives, CD-ROM o DVD) algún sector de arranque. Recordemos que el sector de arranque o MBR (Master Boot Record) es el primer sector que contiene algún dispositivo de almacenamiento y en cual se encuentra un código llamado Master Boot, que lee la tabla de particiones del dispositivo, además de  ejecutar la fase 2 del bootloader.

3. Bootloader Fase 2: Se ejecuta el gestor de arranque, que es un pequeño programa que al permite cargar un sistema operativo. En el caso de Linux se carga el núcleo o kernel. Para este sistema operativo se tendrán los siguientes gestores de arranque:
  • LILO (Linux Loader)
  • GRUB (Grand Unified Bootloader)
Ambos gestores permiten al usuario, en caso de que el disco duro existan además de Linux otros sistemas, seleccionar con cual arrancar. Si bien funcionan de manera similar, LILO además de ser el más antiguo tiene otras diferencias con GRUB:
·         No posee ninguna interfaz del comando interactiva: la línea de comandos de Lilo no es interactiva y sólo permite comandos con argumentos, mientras que GRUB ofrece interfaz gráfica.
·         Almacena información sobre la localización del kernel o si otro sistema operativo se debe cargar en el MBR: Cada cambio que se haga debe ser reescrito por lilo.
·         No puede leer las particiones tipo ext2, algo que si puede hacer GRUB.

4. Kernel: El núcleo se cargado en la memoria RAM, hecho esto, chequea el hardware del sistema, monta el directorio raíz (/), y después carga los módulos necesarios. Luego se sigue con la inicialización del sistema que es próximo paso a seguir.

5. Inicialización: una vez cargado el kernel, se ejecuta el programa init, que se encarga de arrancar el resto de los procesos, como comprobar montar el sistema de archivos y la puesta en marcha los servicios de usuario necesarios. La inicialización en sistemas antiguos se veía por una serie de mensajes de texto en la pantalla, pero esto ha cambiado con el proceso de bootsplash.

6. Bootsplash: Es la representación gráfica del proceso de inicialización, el cual se muestra comúnmente como una pequeña barra que crece progresivamente u otra forma de movimiento, mientras el equipo va poniéndose en forma operativa.

7. Ambiente Grafico: Una vez culminado el proceso de inicio la barra de bootsplash se detiene, ejecutándose XWindows, que es un software que permite mediante un sistema de ventanas un manejo gráfico del sistema ofreciendo una interfaz completamente gráfica, con menús desplegables, cargando el gestor de ventana que se encarga de controlar la apariencia de las ventanas y su interacción con el usuario, y el entorno de escritorio el cual se encarga de brindar una interfaz general para el sistema operativo y dar ciertas aplicaciones para el manejo general de una computadora. En Linux se tienen los principales tipos de entorno gráfico son Gnome y KDE, pero existen otros como Cinnamon, LXDE, Xfce y Unity.

8. Usuario: Finalmente se muestra una pantalla de acceso o Login. Una vez que el usuario se identifica con su login y clave accede al sistema y a sus aplicaciones y archivos personales ubicados en su subdirectorio en el directorio /home.

Existen diferentes tipos de usuarios:
  • Superusuario: su nombre es root, es el administrador del sistema y actúa sin restricción el sistema completo.
  • Usuarios de Procesos son para asociar archivos privilegiados necesarios para el buen funcionamiento del sistema y tienen acceso restringidos a los recursos requeridos por el proceso que ejecuta.
  • Usuarios normales con privilegios limitados. Restringidos a áreas y actividades a las cuales se les ha dado permiso. Creados por el administrador del sistema a medida que sean necesarios.

En la siguiente imagen se muestra de una forma resumida el proceso de arranque de Linux.


Ese es el proceso de arranque de GNU/Linux (Linux pues). Cada sistema operativo tiene su proceso de arranque y tal vez en próximas publicaciones hable de eso. Por los momentos eso es todo y no olviden que si tienen alguna duda o sugerencia pueden expresarla a través de un comentario.

Linux o mejor dicho GNU/Linux. Hablemos de él. Como es su arquitectura y organización

En la publicación anterior hablé del sistema operativo Linux, o mejor dicho GNU/Linux (todo esto pueden verlo aquí). Esta vez voy hablar de su arquitectura, es decir, las partes que lo conforman, así de su organización interna, pues no nos demoremos y comencemos de una vez.

Arquitectura de Linux (o GNU/Linux)

A continuación haremos una breve descripción de la arquitectura de Linux (o GNU/Linux), la cual se muestra en la figura:
  


El kernel ó núcleo del sistema, el cual es llamado Linux, se puede definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware del computador puedan trabajar juntos. es de tipo monolítico. Esto indica que no se separan sus diferentes funcionalidades en distintos módulos, sino que todo forma parte de un mismo programa.

Alrededor del núcleo están las bibliotecas GNU, que son funciones que ayudan a la ejecución de las aplicaciones y programas. Se les llama GNU puesto que pertenecen al sistema GNU y son de carácter libre.

Luego están las distintas aplicaciones del sistema y de los usuarios y por ultimo esta la interfaz de usuario y esta puede ser de línea de comandos (CLI) o gráficas (GUI).

Como está organizado Linux (o GNU/Linux)

Linux (o GNU/Linux) está organizado en directorios de una forma jerárquica, tal como se muestra en la siguiente imagen, de una forma similar al sistema operativo Unix. Algunos de estos directorios contienen subdirectorios o subcarpetas. A continuación se describirán dichas carpetas.

  • /: Es el directorio o carpeta raíz o principal y de donde parten todos los demás directorios y es porque los nombres de estos siempre están precedidos por “/”.
  • /boot: En este directorio se encuentran los archivos que permiten que arranque el sistema, como el Grub.
  • /etc: Aquí se encuentran los archivos de configuración del sistema operativo y para el funcionamiento de los programas instalados.
  • /usr: este directorio es el segundo en importancia después de la carpeta raíz “/” ya que en el se localizan la mayoría de los archivos del sistema, aplicaciones, librerías, así como información de los programas de los usuarios. Esta carpeta contiene otros subdirectorios, los cuales son:
o /bin: Donde se ubican los archivos ejecutables de las aplicaciones instaladas  en el sistema
o /include: Aquí se encuentran los archivos cabecera, los cuales son funciones predefinidas que se incluyen que se este haciendo.
o /sbin: En esta carpeta se localizan los programas y comandos necesarios para la administración del sistema.
o /lib: Este directorio incluye librerías y archivos que no son ejecutados directamente por los usuarios.
o /share: Es en donde se encuentran archivos compartidos como imagines, iconos, etc.
o /local: Contiene el software instalado localmente y para algunos otros archivos.
o /src: Esta carpeta contiene el código fuente del kernel o núcleo del sistema operativo.
  • /bin: Esta carpeta contiene los archivos ejecutables básicos de Linux.
  • /dev: Aquí se ubican los archivos correspondientes a cada dispositivo físico instalado como discos duros con sus particiones, pendrive, CD-ROM, DVD, mouse, etc.
  • /sbin: Es en donde se encuentran archivos ejecutables para la administración del sistema.
  • /proc: Esta carpeta no existe como tal sino que esta montada virtualmente y contiene información sobre los procesos que se están ejecutando, núcleo, módulos cargados y dispositivos
  • /mnt: Se usa para montar temporalmente archivos de unidades externas.
  • /home: Contiene los directorios personales de los usuarios, los cuales a su vez pueden contener otros subdirectorios.
  • /lib: Guarda librerías compartidas necesarias para que arranque el sistema y para archivos ejecutables contenidos en las carpetas /bin y /sbin. En este directorio también se encuentran los módulos del núcleo o kernel.
  • /root: Directorio personal del administrador o superusuario del sistema.
  • /srv: contiene información sobre servicios como por ejemplo FTP (Protocolo de Transferencia de Archivos) que ofrece el sistema.
  • /tmp: Es en donde se guardan los archivos temporales. Cada vez que se inicia el sistema este directorio se limpia.
  • /var: en esta carpeta se almacenan archivos que son modificados constantemente. A su vez contiene las siguientes subcarpetas:
o /cache: Donde se almacena los datos cache (datos usados en tiempo corto) de las aplicaciones.
o /lib: Ofrece información sobre el estado variable de las aplicaciones.
o /lock: Aquí se almacenan los archivos que están bloqueados por el sistema y que solo pueden ser utilizados por una aplicación en particular.
o /log: Guarda los mensajes de registro (logs) generados por el sistema operativo.
o /mail: Esta carpeta guarda los archivos de correo de cada usuario.
o /run: Contiene información sobre el sistema desde que se inició. Generalmente los archivos de este directorio se borran al comenzar el proceso de arranque.
o /spool: Contiene datos que esperan ser procesados.
o /tmp: Almacena algunos datos temporales
o /opt: Contiene datos usados por archivos ubicados en la carpeta /opt.

  • /opt: Aquí se instalan archivos que son complementos de las diversas aplicaciones instaladas en el sistema.
  • /media: Es aquí donde se montan las unidades extraíbles como CD-ROM, DVD y pendrives.
  • /lost+found: cuando ocurre una falla en el sistema y este se cierra inesperadamente, los datos  que no pudieron guardarse correctamente son ubicados en esta carpeta para su posterior recuperación.
En esta imagen podemos ver lo dicho anteriormente.


¿Que tal? ¿Se entendió? Espero que si y sino pues haganlo saber con un comentario. En las siguientes publicaciones seguiré hablando de este sistema operativo.

viernes, 17 de febrero de 2017

Linux o mejor dicho GNU/Linux. Hablemos de él

A través de publicaciones anteriores pudimos conocer que es un sistema operativo. Esta vez voy a hablar de uno en particular que seguramente es conocido por ustedes: Linux, o mejor dicho GNU/Linux, el cual es su verdadero nombre, lo cual explicaré en las siguientes lineas. Comencemos pues.

Es un sistema operativo similar al sistema Unix, con la diferencia que este es libre, refiriéndose esto a aquel sistema operativo, programa o aplicación que los usuarios puedan además de ejecutarlo, copiarlo, distribuirlo, estudiarlo, cambiarlo y mejorarlo sin inconvenientes. De modo más preciso, se refiere a aquel que tenga las libertades del software libre:
  • La libertad de usar el programa, con cualquier propósito (libertad 0).
  • La libertad de estudiar cómo funciona el programa, y adaptarlo a las necesidades particulares (libertad1). El acceso al código fuente es una condición para esto.
  • La libertad de distribuir copias, con lo que puedes ayudar a los demás (libertad 2).
  • La libertad de mejorar el programa y hacer públicas las mejoras, de modo que otros se beneficien (libertad 3). El acceso al código fuente es un requisito para esto.

En realidad Linux es el nombre del núcleo del sistema operativo, pero es este nombre por el que se ha dado a conocer y se ha popularizado. Sin embargo algunos prefieren llamarlo GNU/Linux debido el sistema operativo es la unión del núcleo Linux con el sistema GNU como se explicara mas adelante cuando cuente su historia.

Los inicios de este sistema operativo se remontan a la creación del proyecto GNU en el año 1984. Este proyecto fue una iniciativa de Richard Stallman, físico de profesión y programador, nacido en los Estados Unidos, y el cual tiene como fin la creación de un sistema operativo compatible con el sistema Unix, pero que fuera libre, es decir que cumpliera con las libertades del software libre enumeradas anteriormente, ya que a medida que paso el tiempo los desarrolladores de sistemas impusieron licencias a sus creaciones, restringiendo su uso y distribución, por lo que surgió la interrogante de saber si existía un sistema más flexible en cuanto a su uso y distribución. Este sistema seria llamado GNU (se pronuncia ñu) que significa GNU no es Unix. Esto es importante recalcarlo, ya que si bien este sistema tiene similitud con Unix, no tiene nada que ver con este, es decir, son sistemas completamente distintos, al contrario de otros como Solaris y BSD que son sistemas basados en Unix, es decir, se crearon tomando como base a Unix (suena interesante, como para hacer una publicación de este tema, bueno en un futuro tal vez lo haga).

Pronto muchos colaboradores se sumaron a la idea y ellos junto al señor Stallman lograron crear todas las piezas de un sistema operativo UNIX pero sin las restricciones como un compilador para lenguaje C al que llamaron gcc, un editor de texto bautizado como EMACS y todas las pequeñas herramientas necesarias para arrancar un sistema operativo y las cuales eran libres, es decir no tenían las restricciones de licencia de Unix. Para 1990 lo tenían casi todo listo pero les faltaba la pieza más importante para hacer funcionar un sistema operativo: el kernel o núcleo. 

En el año 1991 Linus Torvalds, un estudiante finlandés crea como proyecto de final de carrera un núcleo para un sistema operativo compatible con Unix, al que llamo Linux y cuyo código fuente es libre, es decir a la disposición de quien quiera estudiarlo y modificarlo, tal como establecen las libertades del software libre, por lo que se considera el kernel Linux como software libre y quien Linus Torvalds hace pública su creación, distribuyéndola de forma gratuita junto con su código fuente y pronto se le sumaron gran cantidad de colaboradores. En 1992 publica la versión 0.0.2 del núcleo y para marzo de 1994 se publica la versión 1.0.0 (la versión actual es la 3.3.6). Es partir de esta versión que el núcleo Linux se empieza a combinar con el sistema GNU, surgiendo el sistema operativo GNU/Linux, pero que sin embargo es más conocido por el nombre del núcleo, es decir, en vez de ser llamado sistema GNU/Linux, más bien es denominado por muchos como sistema Linux, pero lo correcto seria llamarlo como debe ser o sea GNU/Linux.

En las siguientes publicaciones seguiré hablando de este sistema que está presente mas de lo que podría pensarse. Bueno, por ahora voy a dejarlo aqui, y cualquier cosa comneten.

Algunos conceptos de sistemas operativos y software

Aquí les dejo una serie de conceptos importantes relacionados con sistemas operativos y software en general. Estos son.

Características de los sistemas operativos de alto nivel

Los sistemas operativos de alto nivel tienen las siguientes características:
  • Son multiusuarios, es decir, son capaces de dar servicio a más de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones.
  • Son multitareas, esto es, que le permite al usuario estar realizando varias labores al mismo tiempo.
  • Tienen interfaz de usuario gráfica.
 Sistemas en tiempo real

Un sistema en tiempo real procesa las instrucciones recibidas al instante, y una vez que han sido procesadas muestra el resultado. En los sistemas en tiempo real no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. Se utilizan en entornos donde son procesados un gran número de sucesos o eventos.

Los sistemas en tiempo real tienen las siguientes características:
  • Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayoría externos al sistema computacional, en breve tiempo o dentro de ciertos plazos.
  • Se utilizan en control industrial, conmutación telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc.
  • Su objetivo es proporcionar rápidos tiempos de respuesta.
  • Procesa ráfagas de miles de interrupciones por segundo sin perder un solo suceso.
  • Un proceso se activa tras ocurrencia de suceso, mediante interrupción.
  • Gestión de memoria menos exigente que tiempo compartido, usualmente los procesos son residentes permanentes en memoria.
  • Poco movimiento de programas entre almacenamiento secundario y memoria.
  • Gestión de archivos se orienta más a velocidad de acceso que a utilización eficiente del recurso.

Sistemas de multiprocesamiento

Un sistema de multiprocesamiento es aquel que esta instalado en un computador con varios microprocesadores, siendo capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simétrica o asimétricamente.

  • Cuando se trabaja de manera simétrica, el sistema operativo se ejecuta en todos los microprocesadores simultáneamente, compartiendo la memoria entre ellos. Esta estrategia utiliza mejor los procesadores, ya que el propio sistema operativo puede requerir un porcentaje notable del tiempo de procesamiento de un equipo, dependiendo de las aplicaciones que se encuentran en ejecución. Tienen además una menor probabilidad de quedarse bloqueados, ya que el código del sistema operativo puede ejecutarse en los otros procesadores cuando falla uno de ellos razón por la cual se les denomina con sistema tolerantes a fallas.
  • Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los microprocesadores para ejecutar todo el código del sistema operativo, mientras que el resto ejecuta los trabajos del usuario. El hecho de ejecutar el sistema operativo en un solo microprocesador puede sobrecargarlo, dejando a otros inactivos y reduciendo con ello el rendimiento del sistema.
Performance

Desempeño con respecto al rendimiento de una computadora, un dispositivo, un sistema operativo, un programa o una conexión a una red. La performance del sistema incluiría el tiempo de respuesta (cuánto tarda en responder la computadora cuando ingresan los datos) y la utilización de la CPU (una comparación entre el tiempo que trabaja y el tiempo en que está detenida). 
  
Tiempo compartido

Es el uso de un computador por más de una persona al mismo tiempo. Ejecuta varios programas a la vez, intercambiando porciones de tiempo asignadas a cada usuario. Cada usuario tiene en memoria un programa independiente. Se diferencia de la multitarea en que el tiempo compartido se asocia con el acceso de varios usuarios a un computador, mientras que la multitarea se refiere a la realización de múltiples tareas por un solo usuario.

 Rendimiento del sistema

Es la medida o cuantificación de la velocidad/resultado con que se realiza una tarea o proceso. En una computadora, su rendimiento no depende sólo del microprocesador como suele pensarse, sino de la suma de sus componentes como la memoria, los diversos dispositivos, etc. y el software instalado.

Tiempo de respuesta


Es el tiempo que pasa desde que el sistema interacciona con el usuario.

Bueno eso es todo y espero que esta información les sirva de utilidad. Cualquier cosa pueden comentar.