Windows Vs. Linux
¿Cuales
son las ventajas de Linux frente a Windows?, ¿en qué se diferencian?
La
instalación:
- En Linux a pesar de todos los esfuerzos la instalación
no resulta sencilla siempre, pero te permite personalizar
totalmente los
paquetes que quieras instalar.
- En Windows la instalación es mínimamente configurarle
aunque es muy sencilla.
La compatibilidad: Ninguno de los dos sistemas operativos son totalmente compatibles con el Hardware, a pesar de que Windows se acerca más, los dos están cerca de conseguirlo.
- Aunque Linux no esta detrás de ninguna casa comercial
gracias a su elevada popularidad ofrece una alta compatibilidad
ofreciendo, además, actualizaciones frecuentes.
- Windows al ser parte de Microsoft intenta ofrecer una
gran cantidad de drivers ya que su gran poder económico hace que
las
empresas mismas de hardware creen sus propios drivers.
Software:
- Linux al tener menos software en algunos campos sufre
una menor aceptación por parte de las empresas, aunque gracias a
los
apoyos de empresas como Sun Microsystems o IBM se ha logrado muchos
avances.
- Windows al ser el más fácil de usar en las empresas,
posee una gran cantidad de software.
Robustez:
- Linux se ha caracterizado siempre por la robustez de
su sistema ya que pueden pasar meses e incluso años sin la
necesidad de
apagar o reiniciar el equipo, también si una aplicación falla
simplemente
no bloquea totalmente al equipo.
- En Windows siempre hay que reiniciar cuando se cambia
la configuración del sistema, se bloquea fácilmente cuando ejecuta
operaciones aparentemente simples por lo que hay que reiniciar el
equipo.
Conclusión: Tanto Windows como Linux tienen su ventajas y inconvenientes, aunque desde un punto de vista más técnico Linux sale ganando.
Razones para cambiar:
- Es software libre, lo que quiere decir que no hay que
pagar nada por el sistema en sí.
- Es un sistema operativo muy fiable ya que hereda la
robustez de UNIX.
- Ideal para las redes ya que fue diseñado en Internet y
para Internet
- No es cierto que tenga pocos programas, solo en algún
campo muy especifico.
- Es 100% configurarle.
- Es el sistema más seguro, ya que al disponer del
código fuente cualquiera puede darse cuanta de algún fallo, se
puede decir
que decenas de miles de personas velan por tu seguridad.
- Existe muchísima documentación, también en español
gracias a los proyectos como LUCAS.
- Cuenta con el soporte de muchas grandes empresas como
IBM, Corel, Lotus, Siemens, Motorola, Sun, etc.
- Puedes encontrar ayuda en millones de sitios en
Internet como los foros.
- Es muy portable, si tienes un Mac un Alpha o un Sparc
puedes usar Linux sin problemas.
- Que corra sobre múltiples arquitecturas de hardware y
plataformas.
- Que sea compatible con aplicaciones hechas en
plataformas anteriores, es decir que corrieran la mayoría de las
aplicaciones existentes hechas sobre versiones anteriores a la
actual, nos
referimos en este caso particular a las de 16-bit de MS-DOS
y Microsoft
Windows 3.1.
- Reúna los requisitos gubernamentales para POSIX
(Portable Operating System Interface for Unix).
- Reúna los requisitos de la industria
y del gobierno
para la seguridad
del Sistema Operativo.
- Sea fácilmente adaptable al mercado global soportando código
Unicode.
- Sea un sistema que corra y balancee los procesos de
forma paralela en varios procesadores
a la vez.
- Sea un Sistema Operativo de memoria virtual.
Y para ello crearon la siguiente arquitectura modular:
Ya creado este diseño las demás versiones que le sucedieron a Windows NT fueron tomando esta arquitectura como base y le fueron adicionando nuevos componentes.
Uno de las características que Windows comparte con el resto de los Sistemas Operativos avanzados es la división de tareas del Sistema Operativo en múltiples categorías, las cuales están asociadas a los modos actuales soportados por los microprocesadores. Estos modos proporcionan a los programas que corren dentro de ellos diferentes niveles de privilegios para acceder al hardware o a otros programas que están corriendo en el sistema. Windows usa un modo privilegiado (Kernel) y un modo no privilegiado (Usuario).
Uno de los objetivos fundamentales del diseño fue el tener un núcleo tan pequeño como fuera posible, en el que estuvieran integrados módulos que dieran respuesta a aquellas llamadas al sistema que necesariamente se tuvieran que ejecutar en modo privilegiado (modo kernel). El resto de las llamadas se expulsarían del núcleo hacia otras entidades que se ejecutarían en modo no privilegiado (modo usuario), y de esta manera el núcleo resultaría una base compacta, robusta y estable.
El Modo Usuario es un modo menos privilegiado de funcionamiento, sin el acceso directo al hardware. El código que corre en este modo sólo actúa en su propio espacio de dirección. Este usa las APIs (System Application Program Interfaces) para pedir los servicios del sistema.
El Modo Kernel es un modo muy privilegiado de funcionamiento, donde el código tiene el acceso directo a todo el hardware y toda la memoria, incluso a los espacios de dirección de todos los procesos del modo usuario. La parte de WINDOWS que corre en el modo Kernel se llama Ejecutor de Windows, que no es más que un conjunto de servicios disponibles a todos los componentes del Sistema Operativo, donde cada grupo de servicios es manipulado por componentes que son totalmente independientes (entre ellos el Núcleo) entre sí y se comunican a través de interfaces bien definidas.
Todos los programas que no corren en Modo Kernel corren en Modo Usuario. La mayoría del código del Sistema Operativo corre en Modo Usuario, así como los subsistemas de ambiente (Win32 y POSIX que serán explicados en capítulos posteriores) y aplicaciones de usuario. Estos programas solamente acceden a su propio espacio de direcciones e interactúan con el resto del sistema a través de mensajes Cliente/Servidor.
Diseño de linux
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 en espacio 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 Linus
Torvalds y Andrew S. Tanenbaum.
Procesos
Linux se organiza en
procesos, que son tareas independientes que se ejecutan de forma
simultánea
mientras el sistema está en funcionamiento. Los procesos cuelgan unos de
otros
en una dependencia padre/hijo. Inicialmente al arrancar el sistema sólo
existe
un proceso, llamado init. Init lee los ficheros de configuración de
arranque
presentes en el directorio /etc y va creando procesos hijos. Estos a su
vez
tendrán sus propios hijos formando un árbol de descendientes. Los
procesos en
ejecución se encuentran alojados en la memoria rápida RAM del
sistema.
Cuando se habla de ejecutar o lanzar o arrancar un proceso, nos estámos
refiriendo al proceso de leer un fichero almacenado en el disco duro que
contiene las instrucciones del programa, colocando las mismas en la
memoria RAM
y a continuación empezando a ejecutar las instrucciones del programa ya
en RAM
Usuarios
Linux está
diseñado para ser utilizado por varios usuarios simultáneamente. Aun
cuando el
sistema sólo vaya a ser utilizado por un único usuario, como es el caso
corriente hoy en día, en general internamente Linux utilizará varios
usuarios
'robots' para organizar mejor y de forma más segura el sistema. Linux
siempre
tiene un superusuario llamado 'root' ('raíz' traducido). En el siguiente
párrafo se explica el por qué crea varios usuarios en vez de uno único.
Estructura
Básica
De la misma
manera que el Unix, el Linux se puede dividir generalmente en cuatro
componentes principales: el núcleo(kernel), el shell, el sistema de
archivos y
las utilidades. El núcleo es el programa medular que ejecuta programas y
gestiona
dispositivos de hardware tales como los discos y las impresoras. El
shell
proporciona una interfaz para el usuario. Recibe órdenes del usuario y
las
envía al núcleo para ser ejecutadas. El sistema de archivos, organiza la
forma
en que se almacenan los archivos en dispositivos de almacenamiento tales
como
los discos. Los archivos están organizados en directorios. Cada
directorio
puede contener un número cualquiera de subdirectorios, cada uno de los
cuales
puede a su vez, contener otros archivos.
El núcleo, el
shell y el sistema de archivos forman en conjunto la estructura básica
del
sistema operativo. Con estos tres elementos puede ejecutar programas,
gestionar
archivos e interactuar con el sistema. Además, Linux cuenta con unos
programas
de software llamados utilidades que han pasado a ser considerados como
características estándar del sistema. Las utilidades son programas
especializados, tales como editores, compiladores y programas de
comunicaciones, que realizan operaciones de computación estándar.
Incluso uno
mismo puede crear sus propias utilidades
Linux contiene
un gran número de utilidades. Algunas efectúan operaciones sencillas:
otras son
programas complejos con sus propios juegos de órdenes. Para empezar,
muchas
utilidades de pueden clasificar en tres amplias categorías: editores,
filtros y
programas de comunicaciones. También hay utilidades que efectúan
operaciones
con archivos y administración de programas.
Como una
alternativa a la interfaz de la línea de ordenes, Linux proporciona una
interfaz gráfica de usuario (GUI) llamada X-Windows que cuenta con
varios
administradores de ventana que puede utilizar. Un administrador de
ventana
trabaja de forma muy parecida a los GUI de Windows y del Mac, posee
ventanas
iconos y menús, todos ellos gestionados por medio del ratón. Dos de los
administradores de programas más populares son el Free Virtual Window
Manager y
el Open Look Window Managger, además de los administradores de ventanas
X-Windows también utiliza un administrador de archivos y uno de
programas.
El sistema de
archivos de Linux organiza los archivos en directorios, de forma similar
al
DOS. Todo el sistema de archivos de Linux es un gran conjunto
interconectado de
directorios que están organizado en una estructura jerárquica de árbol.
Linux posee un
gran número de utilidades que se pueden clasificar en tres categorías:
editores, filtros y programas de comunicaciones. Y a diferencia de otros
sistemas operativos se distribuye de forma gratuita bajo una licencia
publica
de GNU de la Free
Software Foundation (Fundación de programas libres) lo
que
básicamente significa que puede ser copiado libremente, cambiado y
distribuido
dejando siempre disponible el código fuente.
El software de
Linux es frecuentemente desarrollado por varios usuarios que deciden
trabajar
conjuntamente en un proyecto. Una vez que se ha completado se instala en
una
localización ftp de Internet. Cualquier usuario de Linux puede acceder a
la
localización y descargar el software.
Estructura
Básica -
El Shell
El shell proporciona una
interfaz entre el núcleo y el usuario. Se puede describir como un
intérprete:
interpreta las órdenes que introduce el usuario y las envía al núcleo.
La
interfaz del shell es muy sencilla. Normalmente consiste en un inductor
desde
el que se teclea una orden y después se pulsa enter. En cierta forma, se
está
tecleando una orden en una línea. A menudo, esta línea se conoce como la
línea
de órdenes.
Como una alternativa a la
interfaz de la línea de órdenes, Linux proporciona una interfaz gráfica
de
usuario(GUI) llamada X-Windows, que cuenta con varios administradores de
ventanas que puede utilizar. Dos de los administradores de ventanas más
populares son el Free Virtual Window Manager (fvwm) y el Open Look
Window
Manager (olwm).
Aunque un administrador de
ventanas constituye una interfaz flexible y vistosa, hay que tener
presente que
tan solo es un añadido al shell. El administrador de ventanas
simplemente le
pasa al shell las órdenes que recibe, éste las interpreta y las envía de
nuevo
al núcleo, para ser ejecutadas.
A lo largo de los años se
han hido desarrollando varios tipos de diferentes de shell. En la
actualidad,
hay tres shells principales: Bourne, Korn y C-shell. El shell Bourne fue
desarrollado en el Laboratorio Bell para el sistemaV. El C-shell fue
desarrollado para la versión BSD del Unix. El shell Korn es una mejora y
ampliación del shell Bourne. Linux usa versiones mejoradas o de dominio
público
de estos shells: el shell Bourne Again, el TC-shell y el shell Korn. Una
ves
que inicie su sistema Linux, se encontrará en el shell Bourne Again;
donde se
podrá acceder a los demás.
No hay comentarios:
Publicar un comentario