LINUX
La pregunta de Oro. Vamos a dividirla en secciones:
- Introducción
- ¿Qué es un Sistema Operativo?
- ¿Qué es Unix?
- ¿Qué es el software libre?
- Algunos datos técnicos
- Algo de historia
- Realidad empresarial
1. Introducción
Linux es un sistema operativo basado en Unix, desarrollado por una comunidad de informáticos a lo largo y ancho del planeta, algunos de ellos pagados (por empresas de distribuciones como Red Hat o Suse), pero otros muchos totalmente voluntarios.
Linux pertenece al grupo de software (programas) denominado “Software Libre” , aunque no es el único sistema operativo de este tipo (también están los derivados del Berkeley Unix: FreeBSD, OpenBSD y NetBSD, bajo una licencia diferente).
2. ¿Qué es un Sistema Operativo?
Según la definición de W. Stallings:
Un sistema operativo es un programa que controla la ejecución de los programas de aplicación y que actúa como interfaz entre el usuario de un computador y el hardware de la misma. Puede considerarse que un sistema operativo tiene tres objetivos o lleva a cabo tres funciones:
- Comodidad: Un sistema operativo hace que un computador sea más cómodo de utilizar.
- Eficiencia: Un sistema operativo permite que los recursos de un sistema informático se aprovechen de una manera más eficiente.
- Capacidad de evolución: Un sistema operativo debe construirse de modo que permita el desarrollo efectivo, la verificación y la introducción de nuevas funciones en el sistema y, a la vez, no interferir en los servicios que brinda.
Además una de las funciones más importantes del sistema operativo es aumentar la productividad del usuario permitiéndole ejecutar varios programas de forma simultanea (si la máquina dispone de varios procesadores), o pseudo-simultánea (si sólo dispone de uno, alternando rápidamente la ejecución de varios programas para dar la sensación de ejecución en paralelo), y evitar que los programas puedan interferirse entre si.
Esto es un sistema operativo visto desde un punto de vista muy interno. Desde una perspectiva más amplia, podemos considerar al sistema operativo como la suma de varios componentes:
- Núcleo que realiza las funciones más básicas, dando facilidades al programador en forma de llamadas al sistema, y proporcionando la gestión de procesos en multitarea, de memoria, del sistema de archivos, de sincronización y comunicación entre procesos y los protocolos elementales de comunicación por red
- Shell El shell (caparazón) es la parte del sistema operativo que interactúa realmente con el usuario, utilizando las llamadas al sistema proporcionadas por el núcleo, para permitir al usuario ejecutar programas y algunas otras funciones de apoyo (como cambiar un directorio).Si bien suele considerarse al shell como la interfaz de linea de comandos (si vienes del mundo Windows, “la ventana de ms-dos”), no hay ningún problema en considerar a la interfaz gráfica de ventanas también como shell, aunque en Unix (al contrario que en los sistemas operativos Windows o MacOS), se da la característica de que el usuario puede elegir entre varias shell, tanto de línea de comandos como gráficas, para elegir y personalizar aquella con la que más a gusto se sienta.
Este detalle puede resultar algo chocante para los usuarios de Windows (que lo único que pueden personalizar de su interfaz gráfica son los colores de las ventanas, las fuentes y el tamaño de los botones), sobre todo cuando se percatan de que en las interfaces gráficas de Linux los usuariós siguen modas. En el momento de escribir este artículo (23 de Mayo del 2000), el escritorio de tipo GNOME está muy en boga.
Para algunas imágenes de ejemplo, recomiendo darse una pasada por la sección de capturas de esta web.
- Utilidades de apoyo, son pequeñas utilidades (programas) sin las cuales es muy dificil manejar el sistema operativo. Entre estás suelen estar los programas para copiar archivos, directorios y enlaces, moverlos, renombrarlos, formatear, etc.
3. ¿Qué es Unix?
Según, de nuevo, el libro “Sistemas Operativos” de W. Stallings: Unix fue desarrollado inicialmente en los Laboratorios Bell llegó a ser operativo en una PDP-7 en 1970. Algunas personas involucradas de los Laboratorios Bell también habían participado en el trabajo sobre tiempo compartido que se llevaba a cabo en el proyecto MAC del MIT (Massachusetts Institute of Technology). Aquel proyecto llevó primero al desarrollo del CTSS y luego al de MULTICS. Aunque es habitúal decir que Unix es una versión a pequeña escala de MULTICS, los desarrolladores de Unix dicen estar más influenciados en realidad por CTSS. Sin embargo Unix incorporó muchas ideas útiles de MULTICS. Merece la pena comentar algo sobre MULTICS. MULTICS estuvo no sólo años, sino décadas adelantado a su tiempo. Incluso a mediados de los 80, casi 20 años después de que llegara a ser operativo, MULTICS disponía de características de seguridad superiores y una mayor sofisticación en la interfaz de usuario y en otros campos que los sistemas operativos contemporáneos de los grandes computadores que puedan compararse. Aunque los desarrolladores Unix abandonaron el proyecto de Multics porque, según su opinión, este fue un fracaso, MULTICS fue cedido después a Honeywell y llegó a disfrutar de un modesto éxito comercial. Lo que tuvo Honeywell no lo tuvieron los otros dos sistemas operativos de grandes computadores, uno de los cuales fue comercializado de forma muy agresiva. MULTICS pudo haber tenido un grán éxito. Sin embargo, MULTICS permaneció como un producto de Honeywell con una pequeña, pero fiel, base de clientes, hasta que Honeywell abandonó el negocio de la informática a finales de los 80.
Mientras tanto, el trabajo sobre Unix en los Laboratorios Bell y, después, en otros lugares, produjo una serie de versiones de Unix. El primer hito notable fue llevar el sistema Unix de la PDP-7 a una PDP-11. Esta fue la primera señal de que Unix sería un sistema operativo para todos los computadores. El siguiente hito importante fue la reescritura de Unix en el lenguaje de programación C. Esta fue una estrategia inaudita en aquel tiempo. Era de consenso general que algo tan complejo como un sistema operativo, que tenía que tratar con sucesos de tiempo crítico, tenía que ser escrito exclusivamente en lenguaje ensamblador. La implementación en C demostró las ventajas de usar un lenguaje de alto nivel para la mayor parte del código del sistema, si no todo. Hoy en día, casi todas las implementaciones de Unix (incluido Linux) están escritas en C.
Estas primeras versiones de Unix fueron muy populares en los Laboratorios Bell. En 1974, el sistema Unix fue descrito por primera vez en una revista técnica. Esto despertó gran interés en el sistema. Se otorgarón licencias de Unix a instituciones comerciales y universidades. La primera versión ampliamente disponible fuera de los Laboratorios Bell fue la Versión 6, en 1976. La siguiente, la versión 7, lanzada en 1978, es el antepasado de la mayoría de los sistemas Unix modernos. El más importante de los sistemas no desarrollados por ATT fue el realizado en la Universidad de California en Berkeley. Se le llamó Unix BSD y ejecutaba primero en una PDP y, más tarde, en máquinas VAX. ATT continuó desarrollando y refinando el sistema. Hacia 1982, los Laboratorios Bell habían combinado varias variantes del Unix de ATT en un único sistema, que fue comercializado como Sistema Unix, versión III. Posteriormente se le añadió un cierto número de elementos hasta llegar al Sistema Unix, versión V.
Como hemos podido leer, los sistemas operativos de tipo Unix se ramificarón en dos familias: Los de tipo Sistema V, basados en el Unix de ATT, y los de tipo Berkeley, basados en el BSD. Entre los Unix actuales derivados del Sistema V, podemos considerar el Solaris (de Sun), el AIX (de IBM), el HP/UX (de Hewlett Packard), el SCO Unix, y el CrayOS, todos ellos comerciales.
Entre los Unix derivados del BSD tenemos el OpenBSD, NetBSD, FreeBSD (libres), ,el MacOS-X (derivado del FreeBSD) y el BSDi (comerciales).
Linux no deriva del código de ninguna de estas dos ramas: Fué escrito desde 0, y capturó elementos de ambos, si bien, con la implementación en casi todos los Unix modernos del estándar POSIX (un estándar que regula los servicios que han de ofrecer los Unix para poder considerarlos como tales), estas diferencias entre las dos ramas han perdido mucha importancia, y se ha aumentado notablemente la compatibilidad.
4. ¿Qué es el software libre?
Software libre es, en general, aquel del que se dispone del código fuente, y que puede modificarse, distribuirse (copiarse), e incluso venderse sin restricciones de tipo comercial.Suelen considerarse Software Libre aquellos programas que caen bajo las licencias aceptadas por el OSI (Open Source Iniciative, Iniciativa de Código Abierto) siendo más populares las licencias BSD, GPL, Artistic, y X-Consortium. Software Libre no es lo mismo que software de Dominio Público. La principal diferencia es que el Software Libre tiene licencia y copyright de sus autores.
Linux está en su totalidad bajo licencia GPL (General Public License). Esta licencia se caracteriza por tener una claúsula muy peculiar: Todo código derivado de código GPL cae automáticamente bajo licencia GPL. Es decir, si por ejemplo tomamos el código del núcleo de Linux, y creamos otro sistema operativo con nuestras modificaciones al mismo, este nuevo sistema operativo debe estar también bajo la licencia GPL. Por ello suele denominarse a esta licencia “la licencia vírica”.
Es por ello que esta licencia suele interesar a aquellos desarrolladores que quieren que si realizan un trabajo liberando el código, las contribuciones de los demás sobre su código deban sean también liberadas. La licencia BSD no tiene esta restricción (puedes coger el código del un programa BSD, modificarlo, y crear un producto comercial sin liberar el código).
En ocasiones, las personas alejadas del mundo de la informática y acostumbradas a comprar (y piratear) software comercial, se sorprenden de esta actitud de tantos desarrolladores. En realidad, liberar el código no importa mucho, pues la inmensa mayoría (más del 98% en España) de los profesionales de informática, tienen sus ingresos por servicios, o diseño y construcción de software a medida para empresas (principalmente bancos), o desarrollo y consultoría en temas de redes. El software libre, al poder ser modificado y distribuido libremente, aumenta las oportunidades del profesional del campo de ofrecer un mejor servicio (y ganar más dinero).
A grandes rasgos puede decirse que el software libre genera más dinero y puestos de trabajo de los que destruye. Tomemos como ejemplo el sistema operativo Linux. Actualmente existe lo que se denomina “distribuciones” de Linux. Estas son el propio sistema operativo con una instalación amigable, herramientas de configuración, y aplicaciones que abarcan practicamente cualquier campo (una distribución típica de Linux suelen ocupar entre cuatro y siete CDROM).
Existen unas pocas empresas que realizan distribuciones de Linux con un notable tamaño, como Red Hat y Caldera (americanas), Corel Linux (canadiense) Suse (alemana) Mandrake (francesa), y muchísimas de menor tamaño, por ejemplo en España EsWare, HispaLinux, y Citius. Estas empresas dan trabajo a mucha gente. Si Linux fuera un sistema operativo cerrado realizado por una sóla empresa quizás podría generar beneficios equivalentes a la suma de las empresas actuales, pero sin duda no generaría tantos puestos de trabajo.
Por la naturaleza del software libre, muchas de esas distribuciones en sus inicios son derivadas de otras. Por ejemplo, la mayoría derivan de Red Hat, si bien algunas lo hacen de otras. Debian (que no está realizada por ninguna empresa, sino por un conjunto de usuarios voluntarios) es un ejemplo de distribución no comercial (de notable éxito), que ha servido como punto de partida para la creación de otras distribuciones comerciales como Corel, Citius, o Strom.
Muchos de los ingresos de estas empresas vienen de los ingresos por venta de las distribuciones que realizan. Linux puede copiarse libremente, pero a la hora de obtenerlo, si no tienes un amigo que tenga una versión reciente, siempre sale más barato y cómodo comprar una distribución (cuyo precio suele estar alrededor de los 30 Euros), que descargar siete CDROM de internet (sobre todo tal y como está Internet en España), y además las distribuciones en caja suelen traer impresionantes manuales (y pegatinas y…).
Pero una parte muy considerable de esos ingresos (para algunas empresas, la más importante y estable), deriva del soporte técnico a otras empresas que utilicen su versión de Linux.
Es importante señalar que los programas de Linux, en general son compatibles en todas las distribuciones (el formato de ejecutable es el mismo), las diferencias en ese aspecto están en la forma de empaquetar los mismos, pues existen dos formatos; RPM (Red Hat, Mandrake, Suse, EsWare, Caldera) y Debian (Debian, Corel, Storm, Citus), aunque casi todos los programas suelen distribuirse con paquetes para las dos versiones.
5. Algunos datos técnicos
- Esquema de memoria virtúalLinux utiliza un esquema de memoria virtúal por paginación, situando el espacio de direcciones del nucleo y de los programas de usuario en segmentos distintos. El algoritmo utilizado para la descarga de páginas (swapping) es una variante del LRU, denominado algoritmo de envejecimiento.
- Gestión de ProcesosTiene dos colas principales, una de “procesos normales” y otra de “procesos de tiempo real”. A su vez, cada una de ellas tiene otras tantas en la que sitúa las distrintas prioridades de los procesos.
En la cola de procesos normales se utiliza un algoritmo basado en el Round Robin muy modificado. En la cola de procesos de tiempo real se utiliza un algoritmo FIFO. Siempre que existan procesos de tiempo real, se tomará para ejecución a los mismos.
- Gestión de ArchivosSe utiliza un sistema de archivos virtual (VFS), con un clásico esquema Unix de nodos-i, superbloques y compañía. Utilizando este sistema de archivos virtúal, se implementan docenas de otros sistemas de archivos, como Ext2 (que actualmente es el sistema de archivos “estándar” de Linux), VFAT (Windows 95), MSDOS, NTFS, HPFS, ISO9660 (CDROM), System V, UDF (DVD-ROM), UFS, NFS, CODA, etc.
Linux también dispone (por medio de parches) de sistemas de archivos con Journaling, para aquellos que necesiten de una fiabilidad muy alta en sus datos, si bien todavía están siendo desarrollados. Estos sistemas de archivos son el ReiserFS (aqui tienes una guía de esta web sobre como instalarlo), XFS (desarrollado por Silicon Graphics), o el JFS (desarrollado por IBM).
Es sistema de planificación de accesos al disco es un clásico sistema del ascensor con modificaciones.
- Mecanismos de sincronización y comunicación entre procesosLos clásicos de todos los Unix: semáforos, señales, memoria compartida, colas de mensajes, sockets unix, sockets internet, tuberías con nombre, tuberías sin nombre, etc.
- PortabilidadLinux es probablemente uno de los sistemas operativos más portables (y portados) que existen, al estar casi en su totalidad escrito en lenguage C. Algunas arquitecturas son la x86 de Intel (engloba 386, 486, Pentium, Pentium MMX, Pentium Pro, Pentium II, y Pentium III), Digital Alpha, Sparc, Sparc64, (Linux es más rápido en máquinas Sparc de Sun que el Solaris de la propia Sun), ARM, Motorola 68000 (Atari, Amiga, máquinas Sun antiguas, HP300, Apollo, etc), Power PC (iMac, Power Books), IA64 (los futuros Itanium de Intel), etc.
Como curiosidad, puede señalarse que Linux es el primer sistema operativo en ejecutarse en la arquitectura de Intel IA64-Itanium (cuya salida está prevista a finales del 2000 o principios del 2001).
- RobustezSi bien este dato no suele citarse en las comparativas, si considero que es bastante importante. Linux es tremendamente robusto, puede dar servicio durante meses (en ocasiones, años) sin un sólo cuelgue del sistema, sin una caida de rendimiento, sin pérdidades de memoria, y siempre manteniendo un excelente rendimiento.
6. Algo de Historia
La historia de Linux es, cuanto menos, curiosa. Los periodistas la adoran.En 1991 un estudiante de Ingeniería Informática por la universidad de Helsinki (Finlandia) llamado Linus Torvalds estaba experimentando en ensamblador con las nuevas características de su nuevo y flamante 386, especialmente con las facilidades de gestión de memoria virtual. Consiguio hacer un programa con un planificador que a su vez ejecutaba dos subprocesos. Uno de ellos escribia en la pantalla “A” y el otro “B”.
Linus venía utilizando desde hacía algún tiempo un mini-sistema operativo de juguete de tipo Unix llamado Minix, de A. Tannenbaum, pero le irritaba que este costase una cantidad exagerada de dinero para algo tan pequeño (si bien es cierto que Minix era mejor que el MS-DOS). Por ello se le ocurrió la idea de crear un “Minix mejor que Minix”, es decir, un Unix para 386, totalmente libre y con un desarrollo abierto a cualquiera que tuviera algo que contribuir.
Puso un anuncio en Usenet, y pronto se le unieron otros muchos desarrolladores voluntarios. Poco a poco el sistema fue ganando funcionalidad, usuarios desarrolladores y prestigio, pasando por los estados “Un Minix mejor que Minix” (0.2) luego “pequeño y sencillo Unix no POSIX” (1.0), luego “casi Unix-POSIX” (2.0), y actúalmente “Unix POSIX avanzado” (2.2). Para la próxima versión (2.4) se esperan capacidades muy avanzadas, como sistemas de archivos transaccionales, un acelerador HTTP, etc.
También hemos puesto una página aquí con otra visión algo más informal, aunque históricamente rigurosa, del génesis de Linux. Si has leido el Silmarillión de Tolkien disfrutarás como un enano…
7. Realidad empresarial
Linux suele utilizarse en empresas para realizar las siguientes labores:
- Servidor de archivos a impresoras a clientes Windows 95/98 por medio de SMB
- Estación de trabajo científica
- Pasarela y/o cortafuegos de la intranet empresarial a Internet
- Como servidor de Internet (HTTP, FTP, etc), campo en el que goza de un prestigio considerable (por ejemplo, esta misma web corre bajo un servidor Linux).
Además, en los últimos dos años, Linux ha estado experimentando un crecimiento exponencial en el escritorio del usuario doméstico y corporativo, fenómeno favorecido por la facilidad de uso de los nuevos escritorios y entornos gráficos, y las cada vez más accesibles herramientas de instalación y configuración.







Atájos de teclado en blender
Divitis Lorretta escribió
Loving the details on this internet site, you have done outstanding job on the content .
aa meetings escribió
goto narcotics anonymous meetings http://alcoholicsanonymoushotline.com
ways to get my ex back escribió
Pretty element of content. I just stumbled upon your weblog and in accession capital to assert that I get actually loved account your blog posts. Anyway I’ll be subscribing for your feeds and even I achievement you access persistently rapidly.
comcast Home Security Monitoring escribió
Nice read, I just passed this onto a colleague who was doing a little research on that. And he actually bought me lunch as I found it for him smile Therefore let me rephrase that: Thank you for lunch!
Home Security Monitoring houston
galatasaray bucaspor canli izle escribió
e still on the fence: grab your favorite earphones, head down to a Best Buy and ask to plug them into a Zune then an iPod and see which one sounds better to you, and which interface makes you smile more. Then you’ll know which is right for you.