TAREA N°3 DE SISTEMAS DE COMPUTACIÓN

                   

“Sistema operativo Unix”

 

Profesor     :         YussefFarrán Leiva

ayudante    :         Jaime Jara Araya

Integrantes:          Pedro Bravo

                               Rodrigo Torres

                               Marco Troncoso

                               Juan Paulo Carrasco

 

 

Menu

 

Sistemas Operativos

Historia

Estructura General del Sistema Operativo UNIX

Sistemas de Archivos

Sesión de Trabajo UNIX

Introducción a los Comandos de Utilidad

Editores de Texto

Sistema Operativo LINUX

Conclusión

 

 

 

INTRODUCCIÓN

 

 

A pesar que hoy en día Windows es el sistema operativo más popular, resulta importante conocer otros sistemas operativos como es el caso de UNIX que a pesar de ser un sistema “más difícil” que Windows es mucho más eficiente que este en el uso de los recursos.

  Este trabajo nos introduce en las concepciones básicas de los sistemas operativos en general, pero mayormente en lo que UNIX representa.

  También mostramos ejemplos del uso de UNIX que pueden demostrar que en realidad UNIX no es un sistema operativo difícil, sino que por medio de un manual de usuario adecuado en un corto lapso de tiempo puede hacer de cualquier persona un buen usuario de este sistema operativo.

  Además mostramos las distintas versiones y sus respectivas características de LINUX, el cual puede ser obtenido en forma gratuita.

 

 

SISTEMAS OPERATIVOS

 

Antes de estudiar un sistema operativo en particular, debemos contestar a la pregunta de ¿qué es un sistema operativo? y ¿para qué nos sirve? Podríamos dar varias definiciones posibles, sin embargo, vamos a ver el sistema operativo en sus dos aspectos más habituales: como gestor del computador y como mediador entre el usuario y el computador. En primer lugar, debe quedar claro que un sistema operativo es un conjunto de programas, es decir, nos encontramos ante varios elementos software programados para un máquina específica. Estos programas se encargan de varias tareas. En su papel de gestor del computador, el sistema operativo debe gestionar los recursos del sistema informático (procesadores, memoria, discos, etc), entre los diferentes procesos (programas en ejecución) que compiten por ellos. Esto lo podemos ver más claramente en un sistema multitarea donde las tareas de gestión son más complicadas: supongamos que tenemos un par de programas ejecutándose; en un navegador de Internet estamos cargando una página y como tarda mucho, aprovechamos para ejecutar un programa de cálculo científico. Dado que existen dos programas en ejecución simultánea y el microprocesador de un computador habitualmente es único y por él tienen que pasar todas las instrucciones, queda claro que “alguien” debe decidir cuál de los dos programas tiene acceso, en un momento dado, al microprocesador. Lo mismo podemos decir del resto de los recursos como memoria, discos, etc. Si pensamos en un sistema operativo multiusuario y suponemos que dos usuarios quieren imprimir simultáneamente en la misma impresora, el sistema operativo deberá decidir que uno de los usuarios puede imprimir en ese momento y que el trabajo del otro usuario quede almacenado en una cola de impresión para cuando la impresora quede libre. En su papel de mediador, el sistema operativo ofrece al usuario que utiliza el computador una especie de “máquina virtual” o “máquina extendida” más fácil de utilizar que si tuviera que acceder directamente al hardware. Pongamos como ejemplo un comando como copy que permite copiar un archivo de una ubicación a otra dentro de un disco o entre diferentes discos. Para realizar estas operaciones de forma correcta, deberíamos ser capaces de encontrar el archivo dentro del disco, una vez encontrado posicionar la cabeza lectora del disco en el punto correcto y comenzar a transmitir la información a la memoria y de la memoria a la ubicación destino. Pues bien, todas estas tareas de bajo nivel y que requieren un conocimiento del funcionamiento hardware del computador están ya programadas y nosotros, como usuarios del computador, no tenemos que preocuparnos, ya que el sistema operativo se encarga de ello; en el ejemplo que poníamos, el usuario sólo debe usar el comando copy dando como parámetros la ubicación origen y la ubicación destino. Este procedimiento por el cual el usuario “ve” una máquina virtual más fácil de utilizar que el hardware subyacente se conoce como “Principio de embellecimiento”.

Como resumen, podemos definir el sistema operativo de la siguiente manera:

El sistema operativo es un conjunto de programas cuyas misiones son:

a)      Gestionar los recursos del sistema informático (procesadores, memoria, discos, etc), entre los diferentes procesos que compiten por ellos, y

b)      Ofrecer al usuario una especie de “máquina virtual” o “máquina extendida”, más fácil de usar que el hardware subyacente (“Principio de embellecimiento”).

 

 

 

Planificación

  La planificación de un S.O. define cómo se reparte el tiempo de CPU entre los diversos procesos. Por supuesto, esto sólo tendrá sentido en S.O. multitarea donde puede ocurrir que en un momento dado varios procesos quieran utilizar el microprocesador y como este es único, debe especificarse la política de acceso. Existen varias formas de realizar esta planificación:

  ·        Tiempo compartido (Round-Robbin): Se asigna el mismo tiempo para cada uno de los procesos

  ·        Prioridades: Cada proceso tiene asignada una prioridad; hasta que no termina un proceso, no se cede la CPU al siguiente.

Estáticas: Las prioridades son fijas, no se modifican

Dinámicas: Existen ciertos criterios implementados en el S.O.

 

·        Mixtas (VMS, UNIX): Existe una planificación concreta a base de asignar tiempos en función de prioridades. Si dos procesos tienen asignada una prioridad, se comparte el tiempo entre los dos.

 

Lo habitual es tener planificación mixta, lo cual ocurre en los sistemas operativos VMS y UNIX. En estos casos, a aquellos procesos poco activos se les suele dar una prioridad máxima (por ejemplo, un editor de textos) y aquellos que exigen mucho tiempo de computación, una baja prioridad (por ejemplo, una inversión de matrices). Esto tiene sentido porque un proceso poco activo como un editor de textos consume muy pocos recursos de CPU, es decir, dentro de un intervalo de tiempo dado, el tiempo de CPU que va a usar es muy poco ya que desde que el usuario pulsa una tecla hasta que pulsa la siguiente, el computador ha tenido tiempo de realizar otras muchísimas tareas. Sin embargo, sería incómodo para el usuario que desde que pulsa una tecla hasta que aparece el resultado en la pantalla, pasara mucho tiempo; esa es la razón para darle máxima prioridad. En el otro extremo están los procesos que requieren mucho tiempo de computación, es decir, mucho tiempo de acceso a la CPU, como una inversión de matrices, una integral numérica, etc. Con el objeto de no saturar la máquina con estos cálculos, y debido a que habitualmente no existe una restricción temporal para acabar los cálculos, se le asigna una prioridad baja.

volver al inicio

 

 

HISTORIA

  El S.O. Unix se gestó a finales de los años sesenta en los laboratorios Bell AT&T sobre un computador PDP-7. La razón de su origen se debe a que Ken Thompson, insatisfecho con el sistema operativo que utilizaba en su trabajo, decidió escribir su propio S.O. Inicialmente fue escrito en lenguaje ensamblador, pero más adelante se reescribió parte del sistema operativo en un nuevo lenguaje de programación denominado B (precursor del actual lenguaje C). Al mismo tiempo, otro programador de la misma compañía, Dennis Ritchie, padre del lenguaje C, entró en contacto con Unix y, junto con Ken Thompson, tradujo el Unix a este lenguaje.

Dada la imposibilidad de comercialización por parte de AT&T, se decidió distribuirlo con fines altruistas a Universidades, a cambio de un pago simbólico. Esta decisión tuvo dos consecuencias:

·        Rápida extensión y uso en el mundo científico.

·        Diversidad de versiones ya que no había quién dirigiera su desarrollo y evolución.

Para paliar este último inconveniente, en 1984 AT&T lanza el estándar Unix System V.

volver al inicio

 

ESTRUCTURA GENERAL DEL SISTEMA OPERATIVO UNIX

 

Se puede dividir en varios componentes perfectamente diferenciados:

·        Núcleo o Kernel: Comprende un 5-10% del código total.

·        Caparazón o Shell: Actúa como intérprete de comandos.

·        Programas de utilidad.

 

Kernel

Es el núcleo del S.O. UNIX. Tiene diversas tareas asignadas:

·        Planificar, coordinar y gestionar la ejecución de los procesos. Para ello, hace uso de las prioridades asignadas a cada proceso y utiliza algoritmos específicos para repartir el tiempo entre los diversos procesos que compiten por él.

·        Dar servicios del sistema, como entrada / salida y gestión de archivos.

·        Manejar las operaciones dependientes de hardware, es decir, realiza las funciones de más bajo nivel de manera que se oculten al usuario.

Un kernel típico puede constar de unas 20.000 líneas de código de las cuales  un 70-80% está escrito en C y el resto depende de máquina. Para un PC ocupa unos 500 Kb y para máquinas grandes puede llegar a 2 Mb.

 

Shell

Desde el punto de vista del usuario, actúa como un intérprete de comandos. Es un programa que siempre está en ejecución.

El Shell lee las órdenes suministradas, las decodifica y lo comunica al núcleo para realizar la acción especificada.

Prácticamente, todas las órdenes son programas ejecutables que el shell busca en el sistema de archivos, siguiendo el orden especificado en la variable global PATH.

 

Existen varios tipos de shells, función, principalmente, de la versión de UNIX utilizada:

·        Bourne shell (System V, Xenix)

·        C shell (Berkeley)

·        Korn shell (Ambos)

El shell puede constar, en total, de unas 200.000 líneas de código en C. Los diversos componentes del sistema operativo pueden verse gráficamente de la manera mostrada en la figura:  

                                                                       

 


volver al inicio

 

 

SISTEMA DE ARCHIVOS

 

UNIX emplea un sistema de archivos jerárquico de directorios-archivos.  

                                      

No existe, a nivel de usuario, el concepto de volumen, ni de dispositivo físico. Es decir, el usuario no sabe en qué disco están los archivos que está utilizando. Un archivo (o archivo) es un conjunto de información al que se le da un nombre (nombre del archivo). Existen tres tipos de archivos en UNIX:

 

·        Ordinarios: Son cadenas de bytes terminadas con <ctrl>D (este código significa fin de archivo). Pueden ser texto, objetos, ejecutables, bibliotecas de módulos, ...

 

·        Directorios: Contienen nombres de archivos y su dirección física. Puede pensarse en ellos como carpetas que contienen archivos y directorios. Un directorio dentro de otro directorio se denomina subdirectorio.

 

·        Especiales: Asociados a dispositivos entrada / salida. Contienen referencias a los drivers (programas que manejan directamente los dispositivos y que forman parte del núcleo). Pueden ser de tipo “bloque” (apuntan a dispositivos tipo disco) y “carácter” (apuntan a dispositivos como terminales, impresoras, etc). Por convenio, residen en el directorio /dev.

  Al elegir los nombres de los archivos, es conveniente limitarse a utilizar sólo los caracteres que correspondan a letras, números, el carácter subrayado _ y el carácter punto .. Los archivos cuyo nombre comience por punto permanecen ocultos.


En UNIX existe una jerarquía de directorios que para un sistema estándar sería:

 

/ Raíz

/dev Archivo especiales de dispositivos

/lib Bibliotecas del sistema

/bin Órdenes más empleadas

/etc Datos y órdenes restringidas al superusuario

/tmp Archivos temporales (se borra periódicamente)

/usr Órdenes, bibliotecas y programas adicionales

/usr/lib

/usr/bin

/usr/man

/usr/...

/users Directorios de usuarios (puede aparecer también como /home)

 

Los archivos se especifican por:

 

{camino jerárquico}/nombre{.ext}

donde las llaves ({}) pueden ser o no necesarias. Los archivos pueden constar de una extensión que es lo que aparece tras el punto (.). Un ejemplo sería:

 

/usr/lib/starbase/demos/star.f

 

Con esto estaríamos diciendo que queremos hacer referencia al archivo ordinario denominado star.f que se encuentra en el directorio demos que a su vez se encuentra en el directorio starbase que a su vez se encuentra en el directorio lib que a su vez se encuentra en el directorio usr que a su vez “cuelga” del directorio raíz. Dada la estructura jerárquica tipo árbol, al final, todo “cuelga” del directorio raíz. El directorio raíz es el único que no tiene nombre. Cada usuario tiene un directorio HOME que es el directorio asignado a ese usuario para que almacene sus archivos. El camino de este directorio está contenido en la variable HOME.

 

Los archivos pueden tener cualquier longitud hasta 256 caracteres. Como se ha dicho anteriormente, la extensión es opcional. En caso de que exista, por convenio significa:

 

·        .f Programa fuente escrito en lenguaje FORTRAN

·        .p Programa fuente escrito en lenguaje PASCAL

·        .c Programa fuente escrito en lenguaje C

·        .o Archivo objeto

·        .a Biblioteca de módulos

·        .h Archivo de “cabecera”

Un archivo puede ser referenciado por su nombre precedido del nombre del directorio o directorios que le contiene de la manera que pasamos a explicar a continuación. En cualquier momento, los comandos que se teclean al intérprete de comandos están dados en referencia al directorio actual, es decir, el directorio en el que nos “encontramos”. Cuando nos referimos a un archivo lo podemos hacer en referencia al directorio actual (vía de acceso relativa) o en referencia al directorio raíz (vía de acceso absoluta). En la vía de acceso relativa podemos hacer uso de la notación .. que significa una referencia al directorio padre. Para clarificar todo esto, pongamos un ejemplo:

Supongamos la siguiente estructura de archivos-directorios:  

                                              

 

y que nos encontramos situados (más adelante se explica cómo nos situamos en un determinado directorio) en el directorio otros_archivos. Las referencias a los diferentes archivos se harían de la siguiente manera:

                      

Normalmente, será más corto y sencillo utilizar el acceso relativo excepto en determinados casos (por ejemplo, en nuestro caso, /bin/fgrep). UNIX no mantiene versiones de archivos, por lo que es necesario prestar especial atención a acciones como borrarlos o modificarlos. Existen 3 archivos estándar implementados en UNIX y que es importante conocer para realizar determinadas acciones

·        Entrada estándar (stdin): Teclado (0)

·        Salida estándar (stdout): Pantalla (1)

·        Errores estándar (stderr): Pantalla (2)

 

La redirección entrada / salida, que se explicará más adelante, permite cambiar estas asignaciones en cualquier momento.

 volver al inicio

SESIÓN DE TRABAJO UNIX

 

Clasificación de usuarios en UNIX

 

UNIX es un sistema operativo multitarea y multiusuario, por lo que se deben establecer ciertos mecanismos de tal manera que, simultáneamente, se protejan los datos de un usuario frente a otros y éstos puedan ser compartidos en caso necesario. UNIX posee un mecanismo de permisos asociados a cada archivo. Este mecanismo permite que los archivos y directorios pertenezcan a un usuario en particular. UNIX también permite que los archivos sean compartidos entre usuarios y grupos de usuarios. El comportamiento por defecto en la mayoría de los sistemas es que todos los usuarios pueden leer los archivos de otro usuario, pero no pueden modificarlos o borrarlos. Los grupos de usuarios se definen normalmente en función del tipo de usuario. Por ejemplo, en una Universidad, los usuarios pueden clasificarse como estudiantes, profesores, invitados, etc.

 

Cada usuario (perteneciente a un grupo de usuarios) tiene asociado un nombre, una palabra clave o password, un directorio y un proceso de arranque:

 

·        Nombre: Identificación del usuario cuando entra en la máquina (login).

·        Clave: Palabra oculta que sólo conoce el usuario.

·        UID, GID: Números de identificación de usuario y grupo, respectivamente.

·        Directorio: Directorio inicial donde se situará el usuario al entrar en el sistema.

·        Proceso: Primer proceso que se arranca una vez dentro del sistema.

 

Existen diferentes categorías de usuarios en función de sus privilegios (lo que puede y no puede hacer):

 

·        Superusuario o root: Es el administrador del sistema. Tiene todos los privilegios.

 

·        Usuarios normales: El resto de usuarios que pertenecen a distintos grupos, los cuales pueden tener una serie de propiedades comunes.

 

·        Usuarios especiales: Asignados a tareas específicas por el sistema, generalmente de información o manejo de aplicaciones ya instaladas de uso común a usuarios externos o internos. Por ejemplo: mail (se encarga de recoger el correo y repartirlo a los diversos usuarios), lp (se encarga de aceptar trabajos de impresión y mandarlos a la impresora), bin, admin, ...

 

Desde el punto de vista de un usuario, el carácter u significa el propio usuario, g significa el conjunto de usuarios que pertenecen a su mismo grupo, o significa el resto de usuarios. Estos caracteres serán reconocidos por ciertos comandos u órdenes. Los  permisos que llevan asociados todos los archivos y directorios se clasifican en lectura (read, r), escritura

(write, w) y ejecución (execute, x). Estos permisos se pueden asignar al propio usuario (u), al grupo (g) y al resto (o).

 

El permiso de lectura permite a un usuario leer el contenidos del archivo, o, en el caso de directorios, obtener un listado de su contenido. El permiso de escritura permite a un usuario escribir y modificar el archivo. Para directorios, permite al usuario crear nuevos archivos dentro del directorio o borrar los que contiene. El permiso de ejecución permite a un usuario ejecutar un archivo (debería ser un programa o script .archivo que contiene órdenes para el sistema). En el caso de directorios, permiso de ejecución significa que el usuario puede introducirse en dicho directorio.

 

 

Inicio de la sesión de trabajo

 

Como se ha dicho anteriormente, cada usuario tiene asociado un nombre de usuario o cuenta y una palabra clave o password. Para acceder a un sistema y poder trabajar en él, se debe realizar un proceso denominado “login in”. El sistema que esté listo para  aceptar a un usuario presentará un mensaje como:

 

login:

 

a lo que se debe responder con el nombre de usuario asociado. Una vez introducido se pulsa la tecla ENTER o INTRO y el sistema presentará otro mensaje pidiendo la palabra clave:

 

password:

 

a lo que responderemos con nuestro password (lo que tecleemos no se presentará en pantalla para evitar que alguien lo pudiera ver), finalizando al pulsar la tecla ENTER o INTRO.

 

Si cometemos algún error o no tenemos acceso a la cuenta, el sistema responderá:

 

login incorrect

 

y nos pedirá de nuevo el login.

 

Si todo ha ido bien, el sistema ejecutará una serie de procesos y finalmente aparecerá un prompt o petición de órdenes. El prompt es un carácter o conjunto de caracteres que indica que podemos introducir comandos u órdenes; los más típicos son:

 

$

#

/home/usuario#

 

Secuencia de recepción de un usuario

init (proceso 0): Es el primer proceso que corre bajo control del sistema en el proceso de carga. Es el origen y administrador de todos los demás procesos del sistema.

getty: Establece el modo de trabajo de cada línea de conexión. Presenta un mensaje de bienvenida al sistema y un mensaje de recepción

(login:). Se queda a la espera del tecleo del nombre de usuario seguido por <CR> (Retorno de carro o ENTER o INTRO).

 

login: Reemplaza a getty una vez leído el <CR>, e inicia la siguiente secuencia de acciones:

- Búsqueda del nombre de usuario.

- Petición de clave de usuario.

- Saca por pantalla el mensaje del día (opcional).

- Comprueba el correo y noticias.

- Tareas de “accounting” (día de entrada, hora, ...).

- Ajusta la identidad del proceso, UID, GID.

- Establece el directorio de trabajo $HOME.

shell: Sustituye a login. Ejecuta el procedimiento de comandos que fija el perfil de usuario, terminal, etc. Presenta el prompt y queda a la espera de la introducción de órdenes por parte del usuario. Existen distintos tipos de shell: /bin/sh, /bin/rsh, /bin/cs, ...

 

 

Finalización de la sesión de trabajo

 

Cuando se ha finalizado la sesión de trabajo, se debe teclear exit como respuesta al prompt o pulsar <CTRL-D> (mantener la tecla Control pulsada a la vez que se pulsa la letra d). Es importante finalizar la sesión de trabajo ya que de lo contrario cualquier persona podría utilizar nuestra cuenta y modificar nuestros archivos a su antojo. En los sistemas UNIX, NO SE DEBE APAGAR EL COMPUTADOR; ya que para ello se deben ejecutar una serie de procesos previos.

 volver al inicio

 

INTRODUCCION A LOS COMANDOS DE UTILIDAD

 

Formato general de los comandos

 

Verbo argumento argumento ...

·        El verbo, o nombre del comando, es siempre necesario.

·        Los argumentos pueden ser necesario o no, dependiendo del comando u orden.

·        Los nombres de órdenes en UNIX son siempre en minúsculas y no pueden ser abreviados.

·        Los argumentos pueden ser de dos tipos:

- Opciones o adverbios, precedidos de un guión -

- Nombres de archivos

UNIX consta típicamente de unos 300 comandos, por lo que a continuación se explican los más representativos.

 

Los programas de utilidad del UNIX permiten usar el sistema y manejar los archivos creados. Los que se incluyen a continuación aparecen por su facilidad de uso man

Este programa entrega un manual de uso de otros programas desplegando páginas del sistema en el terminal.

Por ejemplo, el siguiente mandato despliega información sobre la unidad who:

                             

who

 

La utilidad who despliega una lista con los usuarios que entraron al sistema hasta este  momento.

Por ejemplo:

                                      

 

write

                   

                    El programa de utilidad write se emplea para enviar mensajes a otros usuarios que se encuentren en sesión. Para iniciar la comunicación uno de los usuarios comienza a utilizar write escribiendo el nombre del destinatario.

Por ejemplo:  

                                       


La otra persona recibe en su pantalla el mensaje y si tambíen quiere mandarle un mensaje(usando write), se establece una comunicación en dos sentidos.

                          Para terminar de usar write, se oprime CONTROL D. Esto indica a write que se detenga y despliega en el otro terminal el mensaje EOF (end of file). El otro usuario debe hacer lo mismo(CONTROL D).

 

 

mesg

Si carrasco no desea ser interrumpido, puede escribir:                        

                                       

                         

Así, si otro usuario intenta escribirle a carrasco, verá:

                                       

          

Carrasco puede volver a recibir mensajes introduciendo mesg y .

                            

 

mail 

  Mediante este mandato se enviar mensajes a otros usuarios estén o no en sección y también permite desplegar corros enviados por otros usuarios.

                         Para enviar un correo se debe escribir una sentencia como la siguiente:

                                        
                                 

Después de introducir esta línea, se escribe el mensaje  deseado y se termina con una línea que contenga sólo un punto(para indicarle a UNIX que es el fin del mensaje). Al del enviado, el shell despliega una indicación.

                         Para leer las cartas recibidas, basta con dar el mandato mail  y después de revisar el correo, se puede presionar una s o una d si se desea guardar o borrar el correo respectivamente.

 

cp

   Es un mandato que sirve para copiar cualquier tipo de archivos. Utiliza los archivos fuente y destino ya creados para su copia.

                    Un ejemplo es:

                                        
                                                          

En donde se ha copiado el archivo resultado en un archivo llamado resultadob. Si existía información en el archivo resultadob, es reemplazado por la información de resultado.

lpr  

Cuando varias personas deben utilizar una sola impresora, UNIX provee un medio mediante el cual se crea una cola de impresión. El mandato es el siguiente                            

                                        :


                                     Si se quiere imprimir más de un archivo

                              
                                        

                        

date

                  Este mandato despliega la hora y fecha actuales. Ejemplo:

                                         

A continuación se muestra un resumen con las utilidades básicas y más usadas:

 

                         cat :despliega el contenido de un archivo en un terminal.

                         cp : elabora una copia del archivo

                         date: despliega la hora, el día y la fecha        

                         echo: despliega una línea de texto en el terminal

                         ed: crea o edita un archivo de texto

                         lpr: imprime un archivo de texto

                         is: despliega una lista de archivos

                         mail: envía o recibe correo

                         mesg: permite o niega el envío de mensajes vía write

                         man: despliega información sobre utilidades

                         passwd: cambia la contraseña

                         rm: borra un archivo

                         sort: ordena un archivo por líneas

                         who: despliega una lista de los usuarios por sesión

                         write: envía un mensaje a otro usuario en sesión

 

Redirección de entrada / salida

La ejecución de un comando típico responde al siguiente esquema:

                                                        

En dicha figura se observa que el comando, si necesita algún dato de entrada, va a esperar que este se le introduzca a través de teclado, que es la entrada por defecto en el sistema operativo. Si el comando ha de devolver alguna información respecto al resultado conseguido por su ejecución, por defecto lo enviará al dispositivo de salida  por defecto que es la pantalla. De la misma manera, posibles errores en la ejecución del comando saldrían por el dispositivo de errores por defecto, que también es la pantalla. Este comportamiento por defecto de los comandos (entrada por teclado, salida por pantalla) puede ser modificado a través de la denominada redirección.

 volver al inicio

EDITORES DE TEXTO

 

Un editor de texto es simplemente un programa que se usa para editar archivos que contienen texto, tales como una letra, un programa en C, un archivo de configuración del sistema. En UNIX existen unos editores de textos básicos suministrados con el sistema. Los hay de dos tipos:

1. De líneas:

edit Introductorio, sencillo y poco potente

ed Versión un poco más flexible

ex Más versátil, es un editor potente

sed Editor no interactivo. Está pensado para trabajar con:

a.       Archivos muy grandes.

b.      Secuencias de edición complicadas (por ejemplo, transformar una lista de DNIs en NIFs).

c.       Funciones de edición globales.

2. De pantalla (caracteres):

vi Editor típico de UNIX. Características principales:

- Observación inmediata de la modificación.

- Entorno edición-ejecución potente.

- Comandos invisibles.

- División del campo visual: trabajo y comandos.

Se puede acceder a vi desde ex y viceversa.

Se puede acceder a vi desde more.

 

Entorno more-vi-ex

 

more

Comando que permite presentar en pantalla el contenido de un archivo de texto de una forma filtrada. Se puede utilizar de dos formas diferentes:

1. more archivo1 archivo2 ...

2. comandos | more Esta forma no admite edición

Presenta una pantalla (25 líneas) del primer archivo, y se queda esperando una orden, con un mensaje en la última fila:

-more (? %)

Órdenes:

<espacio> Siguiente pantalla.

<intro> Siguiente línea.

/cadena Búsqueda de cadena en el texto.

n Siguiente aparición de la cadena.

!cmd Ejecución del comando cmd en background.

:n Siguiente archivo.

f Salta 44 líneas.

v Edita con vi el archivo en curso. Al terminar, se retorna a more.

q Fin.

p Restaura la pantalla.

 

Editor vi

vi archivo1 [archivo2] ...

Existen otros muchos editores para UNIX, pero el único que es seguro encontrar en cualquier sistema UNIX es vi (“visual editor”). vi no es el editor más fácil de usar. Sin embargo, al ser tan común, y, muchas veces, necesario su uso, se explica a continuación su funcionamiento más básico. vi es un editor pequeño (ocupa pocos recursos) y potente, pero muy difícil de usar. Sin embargo, una vez que uno se acostumbra a él, la edición es muy rápida. En esta sección se da una introducción a vi. No se discutirán todas sus características, solamente aquellas necesarias para empezar. Se puede utilizar la ayuda de UNIX (man) para aprender alguna más de sus características.

 

Conceptos

Al usar vi, en cualquier momento se está en uno de tres modos de operación. Estos modos son conocidos como modo de comandos, modo de inserción, y modo de última línea.

Cuando se arranca vi, se está en el modo de comandos. Este modo permite usar ciertos comandos para editar archivos o cambiar a otros modos. Por ejemplo, tecleando x en el modo de comandos borra el carácter bajo el cursor. Las teclas de dirección mueven el cursor por el archivo que se está editando. Generalmente, los comandos usados en el modo de comandos son de uno o dos caracteres de largo.

Insertar o editar texto se realiza en el modo de inserción. En vi, la mayor parte del tiempo se estará en este modo. Se puede iniciar el modo de inserción usando un comando como i (insertar) desde el modo de comandos. En el modo de inserción, se inserta texto en el documento desde la posición actual del cursor. Para finalizar el modo de inserción y volver al modo de comandos, se pulsa <ESC>.

El modo de última línea es un modo especial usado para ciertos comandos extendidos. Cuando se teclean estos comandos, aparecen en la última línea de la pantalla (de ahí su nombre). Por ejemplo, cuando se teclea : desde el modo de comandos, se salta al  modo de última línea y se pueden usar comandos como wq (grabar el archivo y  finalizar vi), o q! (finalizar vi sin grabar los cambios). El modo de última línea generalmente se usa para comandos que son más largos que un carácter. En el modo de última línea, se introduce un comando y se presiona <INTRO> para ejecutarlo.

 

Iniciando vi

El mejor modo de entender estos conceptos es lanzando vi y editando un archivo. En las

pantallas de ejemplo inferiores, se mostrarán sólo unas pocas líneas de texto, como si la

pantalla solamente tuviera seis líneas de alto (en vez de 24).

La sintaxis de vi es

vi nombre_de_archivo

Comenzar tecleando

vi test

 

Se verá algo como

____________________________________________________________________

|~_ |

|~ |

|~ |

|~ |

|~ |

|"test"_[New_file]__________________________________________________|

 

 

La columna de caracteres ~ indica que se está en el final de archivo.

 

Insertando texto

Ahora se está en el modo de comandos. Para insertar texto en el archivo, pulsar i (que nos situará en el modo de inserción), y comenzar a teclear.

____________________________________________________________________

|Now is the time for all good men to come to the aid of the party._ |

|~ |

|~ |

|~ |

|~ |

|~__________________________________________________________________|

 

 

En el modo de inserción, se pueden teclear tantas líneas como se quiera (presionando <INTRO> después de cada una, por supuesto), y se pueden corregir errores usando la tecla de retroceso. Para finalizar el modo de inserción, y volver al modo de comandos, presionar <ESC>. En el modo de comandos, se pueden usar la teclas de dirección para moverse por el archivo. En este caso, como sólo tenemos una línea de texto, intentar moverse hacia arriba o abajo probablemente provocará que vi emita un pitido. Existen varias maneras de insertar texto, aparte del comando i. Por ejemplo, el comando a inserta texto empezando después de la posición actual del cursor. Por ejemplo, usa la flecha izquierda para mover el cursor entre las palabras good y men.

____________________________________________________________________

|Now is the time for all good men to come to the aid of the party._ |

|~ |

|~ |

|~ |

|~ |

|~__________________________________________________________________|

 

 

Pulsa a, para empezar el modo de inserción, teclea wo y pulsa <ESC> para volver al modo de comandos.

____________________________________________________________________

|Now is the time for all good women to come to the aid of the party.|

|~ |

|~ |

|~ |

|~ |

|~__________________________________________________________________|

 

 

  Para comenzar a insertar texto en la línea debajo de la actual, usa el comando o. Por ejemplo, pulsa o y teclea una o dos líneas:

____________________________________________________________________

|Now is the time for all good women to come to the aid of the party.|

|Afterwards, we'll go out for pizza and beer._ |

|~ |

|~ |

|~ |

|~__________________________________________________________________|

 

 

Recuerda que en cualquier momento estás o en modo de comandos (donde comandos como i,a,o son válidos), o en modo de inserción (donde insertas textos, seguido de <ESC> para volver al modo de comandos), o en modo de última línea (donde se introducen comandos extendidos, como se discutirá más adelante).

 

Borrando texto

Desde el modo de comandos, el comando x borra el carácter bajo el cursor. Si  presionas

x cinco veces, terminarás con:

____________________________________________________________________

|Now is the time for all good women to come to the aid of the party.|

|Afterwards, we'll go out for pizza and _ |

|~ |

|~ |

|~ |

|~__________________________________________________________________|

Ahora pulsa a, inserta texto, seguido de <ESC>:

____________________________________________________________________

|Now is the time for all good women to come to the aid of the party.|

|Afterwards, we'll go out for pizza and Diet Coke._ |

|~ |

|~ |

|~ |

|~__________________________________________________________________|

 

Puedes borrar líneas enteras usando el comando dd (pulsar dos veces seguidas las letra d). Si el cursor está en la segunda línea y tecleas dd:

____________________________________________________________________

|Now is the time for all good women to come to the aid of the party.|

|~ |

|~ |

|~ |

|~ |

|~__________________________________________________________________|

Para borrar la palabra sobre la que está el cursor, usa el comando dw. Sitúa el cursor en la palabra good y teclea dw.

____________________________________________________________________

|Now is the time for all women to come to the aid of the party. |

|~ |

|~ |

|~ |

|~ |

|~__________________________________________________________________|

 

 

Cambiando texto

Puedes cambiar secciones de texto usando el comando R. Sitúa el cursor en la primera letra de party, pulsa R, y teclea la palabra hungry.

____________________________________________________________________

|Now is the time for all women to come to the aid of the hungry._ |

|~ |

|~ |

|~ |

|~ |

|~__________________________________________________________________|

Usar R para editar texto es parecido a usar los comandos i y a, pero R sobrescribe el texto, en lugar de insertarlo. El comando r reemplaza el carácter bajo el cursor. Por ejemplo, mueve el cursor al inicio de la palabra Now y teclea r seguido por C:

____________________________________________________________________

|Cow is the time for all women to come to the aid of the hungry._ |

|~ |

|~ |

|~ |

|~ |

|~__________________________________________________________________|

El comando ~ cambia la letra bajo el cursor de mayúscula a minúscula y viceversa. Por ejemplo, si posicionas el cursor en la o de Cow, y pulsas repetidamente ~, conseguirás:

____________________________________________________________________

|COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY. |

|~ |

|~ |

|~ |

|~ |

|~__________________________________________________________________|

 

Comandos de movimiento

Hasta ahora ya sabes como usar las teclas de dirección para moverte por el documento. Además, puedes usar las comandos h,j,k,l para mover el cursor a la izquierda, abajo, arriba y derecha, respectivamente. Esto es útil en casos en los que las teclas de dirección no funcionen por cualquier causa. El comando w mueve el cursor al comienzo de la siguiente palabra; b lo mueve al comienzo de la palabra anterior.

El comando 0 (cero) mueve el cursor al principio de la línea actual, y el comando $ lo mueve al final de la línea.

Al editar archivos largos, probablemente necesitarás moverte adelante y atrás por el archivo un “pantallazo” a la vez. Pulsando <CTRL-F> mueve el cursor una pantalla adelante, y <CTRL-B> lo mueve una pantalla hacia atrás.

Para mover el cursor al final de archivo, pulsa G. También puedes moverte a una línea en particular; por ejemplo, tecleando 10G movería el cursor a la línea 10 del archivo. Para moverte al principio del archivo, usa 1G.

Se pueden agrupar comandos de movimiento con otros comandos, como borrado. Por ejemplo, el comando d$ borrará todo desde el cursor hasta el final de línea; dG borrará todo desde el cursor hasta el final de archivo, etc.

Guardando archivos y finalizando vi

Para finalizar vi sin realizar cambios al archivo, usa el comando :q!. Cuando teclees los dos puntos :, el cursor se moverá a la última línea de la pantalla (modo de última línea).

____________________________________________________________________

|COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY. |

|~ |

|~ |

|~ |

|~ |

|~ |

|:__________________________________________________________________|

En el modo de última línea, ciertos comandos extendidos están disponibles. Uno de ellos es q!, que finaliza vi sin salvar. El comando :wq salva el archivo y después sale de vi. El comando ZZ (desde el modo de comandos, sin usar :) es equivalente a :wq. Recuerda que debes pulsar <INTRO> después de un comando tecleado en el modo de última línea. Para guardar un archivo sin finalizar vi, simplemente usa :w.

 

Editando otro archivo

Para editar otro archivo, usa el comando :e. Por ejemplo, para finalizar editando “test”, y editar el archivo “foo”, usa el comando

____________________________________________________________________

|COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY. |

|~ |

|~ |

|~ |

|~ |

|~ |

|:e foo_____________________________________________________________|

Si usas :e sin salvar el archivo primero, obtendrás el mensaje de error

____________________________________________________________________

|No_write_since_last_change_(":edit!"_overrides)____________________|

que significa simplemente que vi no quiere editar otro archivo hasta que no salves el primero. En este punto, puedes usar :w para salvar el original, y entonces usar :e, o puedes usar el comando

____________________________________________________________________

|COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY. |

|~ |

|~ |

|~ |

|~ |

|~ |

|:e! foo____________________________________________________________|

La ! le dice a vi que “lo dices en serio” (edita el nuevo archivo sin guardar los cambios del primero).

 

Incluyendo otros archivos

Si usas el comando :r, puedes incluir el contenido de otro archivo en el archivo actual. Por ejemplo, el comando :r foo.txt insertaría el contenido del archivo foo.txt en el texto en la localización actual del cursor.

 

 

Ejecutando comandos del caparazón

También puedes ejecutar comandos del caparazón o shell desde dentro de vi. El comando :r! funciona como :r, pero en lugar de leer el archivo, inserta la salida de un comando dado en el buffer en la posición actual del cursor. Por ejemplo, si usas el comando :r! ls –F llegarás a

____________________________________________________________________

|COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY. |

|letters/ |

|misc/ |

|papers/_ |

|~ |

|~__________________________________________________________________|

También puedes realizar un “shell out”, es decir, ejecutar un comando desde dentro de vi, y volver al editor cuando finalice. Por ejemplo, si usas el comando :! ls –F el comando ls -F se ejecutará, y los resultados se verán en pantalla, pero no serán insertados en el archivo que estás editando. Si usas el comando :shell vi iniciará una instancia del shell, permitiendo situar temporalmente a vi “en espera” mientras ejecutas otros comandos. Simplemente sal del caparazón (usando exit) para volver a vi.

 

Consiguiendo ayuda

vi no facilita una ayuda interactiva, pero siempre se puede consular la ayuda suministrada por man. vi es un programa sobre ex, es ex quien maneja muchos de los comandos de última línea en vi. Por lo tanto, además de leer la página de manual para vi, es conveniente ver la de ex también.

 

Programación del shell

El intérprete de comandos es programable.

Definición: script : archivo que contiene líneas de comandos. Es un archivo ordinario de texto.

Ejecución: Existen dos formas:

1. sh archivo

2. archivo (debe tener permiso de ejecución)

Ejemplo: Utilizando el editor vi escribimos:

mkdir /export/cuenta1/direc

cp /usr/pub/ascii /export/cuenta1/direc

Al archivo creado le damos permiso de ejecución (chmod +x archivo) y lo ejecutamos (creará un directorio e introducirá en él el archivo /usr/pub/ascii).

 

 

Variables del shell

Se pueden definir variables de la forma variable=valor

Para ver el contenido de una variable, se usa echo $variable

Existen en UNIX variables predefinidas que sirven para configurar el entorno de cada usuario. Algunas de ellas son:

MAIL: Directorio que contiene el correo

PS1: Prompt primario

PS2: Prompt secundario

TERM: Tipo de terminal

LOGNAME: Nombre del usuario

HOME: Nombre del directorio por defecto

PATH: Caminos de búsqueda de los comandos

 volver al inicio

 

 

SISTEMA OPERATIVO LINUX

Reseña histórica:

 

Linux fue creado originalmente por Linus Torvald en la Universidad de Helsinki en Finlandia, siendo él estudiante de informática. Pero ha continuado su desarrollado con la ayuda de muchos otros programadores a través de Internet. Linux originalmente inicio el desarrollo del núcleo como su proyecto favorito, inspirado por su interés en Minix, un pequeño sistema Unix desarrollado por Andy Tannenbaum. Él se propuso a crear lo que en sus propias palabras seria un "mejor Minix que el Minix". El 5 de octubre de 1991, Linux anuncio su primera versión "oficial" de Linux, versión 0.02. Desde entonces, muchos programadores han respondido a su llamada, y han ayudado a construir Linux como el sistema operativo completamente funcional que es hoy.

 

Al ir pasando los años, el proyecto de Torvalds, creció y permitió que se formara un Sistema Operativo realmente muy completo que al principio es llamado GNU / Linux, pero por cuestiones de términos se le llamó Linux, a secas.

¿ Que es linux ?

 

Linux es un sistema operativo, compatible con Uníx, totalmente gratuito, diseñado por cientos de programadores de todo el planeta, aunque el principal responsable del proyecto es Linus Tovalds. Su objetivo inicial es propulsar el software de libre distribución junto con su código fuente para que pueda ser modificado por cualquier persona, dando rienda suelta a la creatividad. El hecho de que el sistema operativo incluya su propio código fuente expande enormemente las posibilidades de este sistema. Este método también es aplicado en numerosas ocasiones a los programas que corren en el sistema, lo que hace que podamos encontrar muchísimos programas útiles totalmente gratuitos y con su código fuente.

 

Dos características muy peculiares lo diferencian del resto de los sistemas que podemos encontrar en el mercado:

 

·                    La primera, es que es libre, esto significa que no tenemos que pagar ningún tipo de licencia a ninguna casa desarrolladora de software por el uso del mismo.

 

·                    La segunda, es que el sistema viene acompañado del código fuente. El sistema lo forman el núcleo del sistema (kernel) mas un gran número de programas / librerías que hacen posible su utilización.

 

 

 

La libertad de linux

En una era de cambios en el ambiente computacional, de una amplia oferta en sistemas operativos e interfaces gráficas y sobre todo, del costo que representa contar con un sistema operativo que interactúe con el software sin problemas, surge con fuerza inusitada: Linux

LINUX se distribuye bajo la GNU Public License: Ingles, por lo tanto, el código fuente tiene que estar siempre accesible. El sistema ha sido diseñado y programado por multitud de programadores alrededor del mundo. El núcleo del sistema sigue en continuo desarrollo bajo la coordinación de Torvalds.

 

Día a día, más y más programas / aplicaciones están disponibles para este sistema, y la calidad de los mismos aumenta de versión a versión. La gran mayoría de los mismos vienen acompañados del código fuente y se distribuyen gratuitamente bajo los términos de licencia de la GNU Public License.

 

En los últimos tiempos, ciertas casas de software comercial han empezado a distribuir sus productos para Linux y la presencia del mismo en empresas aumenta rápidamente por la excelente relación calidad - precio que se consigue con Linux.

 

Principales características de linux

 

Las principales características de linux corresponde a:

 

·                    Multitarea: varios programas (realmente procesos) ejecutándose al mismo tiempo.

 

·                    Multiusuario: varios usuarios en la misma máquina al mismo tiempo (y sin licencias para todos).

 

·                    Multiplataforma: corre en muchas CPUs distintas, no sólo Intel. funciona en modo protegido 386.

 

 

Además de estas características linux posee además las que a continuación se consignan:

 

Tiene protección de la memoria entre procesos, de manera que uno de ellos no pueda parar el sistema.

 

Carga de ejecutables por demanda: Linux sólo lee de disco aquellas partes de un programa que están siendo usadas actualmente.

 

Política de copia en escritura  para la compartición de páginas entre ejecutables : esto significa que varios procesos pueden usar la misma zona de memoria para ejecutarse. Cuando algún usuario intenta escribir en esa memoria, la página (de 4Kb de memoria, por ejemplo) se copia a otro lugar. Esta política de copia en escritura tiene dos beneficios: aumenta la velcidad reduce el uso de memoria.

 

Versiones de linux

El desarrollo inicial Linux ya aprovechaba las características de conmutación de tareas en modo protegido del 386, y se escribió todo en ensamblador. 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 tenia acceso a un sistema Minix para su compilación.

El 5 de octubre de 1991, Linus anunció 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 funcionaba mas allá. En este estado de desarrollo ni se pensaba en los términos soporte, documentación, y distribución. Después de la versión 0.03, Linus salto en la numeración hasta la 0.10, más 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 llegó hasta el 14 de marzo de 1994.

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.

La ultima versión estable es la versión 2.2, que soporta muchos más periféricos, desde procesadores hasta joysticks, sintonizadores de televisión, CD ROMs no ATAPI y reconoce buena cantidad de tarjetas de sonido. Incluye también soporte para tipos de archivos para Macintosh HFS, Unix UFS y en modo de lectura, HPFS de OS/2 y NTFS, de NT.

Otras Versiones:

Linux 2.0

Linux 2.2

Linux 2.3

 


Linux y sus diferencias

Algunas de las principales diferencias de linux con otros SO corresponden a las siguientes:

No existe el concepto de unidad de disco. Todas las unidades en Linux se 'montan' como si fueran un subdirectorio más. No existe el concepto de extensión del nombre de un archivo. Los archivos pueden tener nombres de hasta 256 caracteres. Los puntos están permitidos en el nombre de un archivo. Así, un archivo se podrá llamar:

DOSEMU-HOWTO.español.tar.gz

Los subdirectorios no se separan con el carácter '\', como en DOS, sino con el carácter '/'. Ejemplo:

/usr/src/linux-1.2.13/Makefile

Existe diferencia entre mayúsculas y minúsculas. Por ejemplo, no es lo mismo 'dir' que 'DIR' que 'Dir'.

En linux los archivos no tiene atributos, al menos no como se conocen en el DOS. Cada archivo tendrá ahora 10 'atributos'.

Entre un comando y sus parámetros deberemos dejar obligatoriamente un espacio en blanco. Por ejemplo 'cd..' no funcionará mientras que 'cd ..' sí.

IMPORTANTE: Un sistema Linux NUNCA se puede apagar por las buenas. Antes le hemos de advertir al S.O. de que vamos a apagarlo (o reiniciarlo). La razón de que esto deba ser así es para que al sistema le dé tiempo de escribir en disco todos los datos que tuviera pendientes de escribir, salir ordenadamente de todas las aplicaciones que tuviera arrancadas y desmontar todas las unidades que tuviera montadas.

Existen muchas otras diferencias (gestión de memoria plana, ...), pero las mencionadas son las que más nos pueden influir en la forma de trabajar, al menos en principio.

El Kernel de linux

Existen dos versiones del Linux kernel:

Versión de desarrollo: Esta versión es experimental y es la que utilizan los desarrolladores para programar, comprobar y verificar nuevas características, correcciones, etc. Estos núcleos suelen ser inestables y no se deberían usar, a no ser que el usuario tenga nociones de programación.

Versión de producción: La versión de producción, es la versión estable hasta el momento. Esta versión es el resultado final de las versiones de desarrollo o experimentales. Cuando el equipo de desarrollo del kernel experimental, decide que ha conseguido un kernel estable y con la suficiente calidad, se lanza una nueva versión de producción o estable. Esta versión es la que se debería utilizar para un uso normal del sistema, ya que son las versiones consideradas mas estables y libres de fallos en el momento de su lanzamiento

 

Linux e internet

  Linux admite cualquier tipo de dispositivo (módems, impresoras) gracias a que cada una vez instalado uno nuevo, se añade al Kernel el enlace o controlador necesario con el dispositivo, haciendo que el Kernel y el enlace se fusionen. Linux posee una gran adaptabilidad y no se encuentra limitado como otros sistemas operativos.

 

ComunicacionesLinux: es el sistema más flexible para poder conectarse a cualquier computador del mundo. Internet se creó y desarrollo dentro del mundo de Unix, y por lo tanto Linux tiene las mayores capacidades para navegar, ya que Unix y Linux son sistemas prácticamente idénticos. Con linux podrá montar un servidor en su propia casa sin tener que pagar las enormes cantidades de dinero que piden otros sistemas.

 

La Swap

La swap es un espacio reservado en el disco duro destinado a usarse como una extensión de memoria virtual del sistema. Es una técnica utilizada desde hace tiempo para hacer creer a los programas que existe mas memoria RAM de la que en realidad existe. Es el propio sistema operativo el que se encarga de pasar datos a la swap cuando necesita mas espacio libre en la RAM y viceversa.

 

En Linux, la memoria total disponible por el sistema estará formada por la cantidad de memoria RAM instalada + la swap disponible. El acceso a la swap (disco duro) es mas lento que el acceso a la memoria RAM, por lo que si nuestro computador esta muy cargado de trabajo y hace un uso intensivo de la swap, la velocidad del sistema disminuirá. Un uso muy intensivo y continuado de la swap es un indicativo de que necesitamos mas memoria en nuestro sistema para que funcione desahogado con el uso que le estamos dando. En linux generalmente se usa como mínimo una partición dedicada a swap (aunque también se puede tener un archivo swap).

 

La swap es recomendable en sistemas con poca memoria RAM, aunque si el hardware incluye una memoria de gran capacidad es recomendable tener una swap. No existe una formula mágica para saber cuanto espacio deberíamos reservar para swap. Hay que recordar que la memoria total disponible en Linux es RAM + Swap. Como datos orientativos podríamos decir que como mínimo, esta combinación debería ser de 32MB para sistemas que se utilicen en modo texto y de 64MB en adelante para sistemas que se utilicen en modo gráfico.

 

 

Li nux v/s Windows

  Hoy día se conocen diferentes sistemas operativos para plataformas PC como son el Linux, Windows, Windows NT, Be OS, QNX, UNIX, etc..., sin embargo hoy día los más usados por la gran mayoría de usuarios y profesionales son el sistema Windows y el sistema Linux. Hasta hace poco Linux era una utopía el poder instalarlo, hacerlo funcionar y, quizás lo más difícil, el poder configurarlo y manejarlo, pero esa situación ha cambiado radicalmente gracias a las diversas compañías que hacen sendas distribuciones.

Gracias a esto cada día hay más usuarios que se inclinan por el sistema Linux como un entorno de trabajo robusto y fiable, sin embargo muchos usuarios tienen muchas dudas acerca de esto y de más cosas. Normalmente cuando un usuario de Windows se va a pasar a tener Linux pregunta muchas veces primero, si no lo conoce, qué es y después pregunta si es mejor que Windows. A esta pregunta vamos a intentar contestar de la manera más clara y sencilla. Hay tantas respuestas como motivos que se tengan para manejar un sistema u otro, pero vamos a ver las diferencias que hay entre ambos sistemas.

Linux es un sistema operativo de 32 Bits de multitarea real y también de multiusuario. ¿Qué quiere decir de multiusuario? Quiere decir que puede haber hasta cuatro personas a la vez manejando el sistema, lo malo es que habría que compartir el teclado y eso es un poco molesto.

El sistema Linux es un sistema técnicamente muy superior a Windows, puesto que Linux al estar programado totalmente en Lenguaje C tiene la posibilidad de acceder directamente al Hardware de la máquina en que esté instalado, de manera que aprovecha mucho más la potencia de esta y también de sus periféricos, ya sean CD-ROM o un escáner. Gracias a que ha sido programado por millones de programadores en el mundo, Linux está equipado con un sistema de administración de memoria tal que asigna a cada programa la memoria necesaria para ejecutarse de forma independiente de manera que si un programa se pararse sólo se pararía ese programa y no el resto de los programas, por ejemplo, supongamos que estamos haciendo un determinado trabajo impuesto por una determinada empresa y mientras se hace a lo mejor nos apetece escuchar algo de música para relajarnos un rato, pues bien supongamos que tenemos los mismos programas tanto como para Linux como para Windows, pues si ese programa de reproducción musical se parase, se pararía ese programa y no el resto de los programa o el propio sistema de manera que no perderíamos nuestro trabajo, esto es lo que ocurriría en Linux, pero en Windows al compartir todos los recursos y memoria ocurre lo contrario, se pararía el programa y este arrastra en el 90% de las ocasiones al resto de los programas o bien al sistema.

Este es sólo uno de los aspectos en que Linux supera a Windows, otro aspecto es en la administración de los gráficos de Linux, para ello lo hace manteniendo una relación con los programas Cliente (programas) y Servidor (sistema gráfico), de manera que a cada programa se le administra la cantidad de gráficos según se le vaya pidiendo al server, por eso si un programa se para en Linux, por lo menos podemos apartar la ventana del medio para no interrumpir visualmente nuestro trabajo, es decir, no es como en Windows que si un programa se para, la ventana es capaz de parar o ralentizar a otras (aunque el sistema no se pare) o simplemente se queda delante en blanco y no la podemos quitar hasta que no pase un rato.

Otro aspecto en que Linux supera a Windows con creces es en la estructura de archivos, es decir, estamos hablando del sistema ext2. Esto es unos de los aspectos que ha hecho que Linux sea famoso, puesto que tiene uno de los sistemas de archivos más seguros que se conocen y además de los más eficaces, por ejemplo, para empezar aprovecha mucho mejor la FAT que el sistema de archivos de Windows es mucho más seguro y fiable.

Siguiendo con el tema del sistema de archivos hemos de tener en cuenta que este sistema es uno de los más seguros que se conocen, de hecho, si borramos un archivo por accidente tenemos hasta un 80% de posibilidades de recuperarlo. El sistema de archivos linux permite leer y escribir en otros sistemas de archivos como el de Windows, Mac, Minix, etc.... mientras que Windows en muchas ocasiones son necesarios tener diferentes programas para acceder a sistemas de archivos diferentes.

Estos son algunos de los aspectos generales en cuanto a diferencias técnicas, otro aspecto que hay que tener en cuenta es la facilidad de instalación. En un principio la instalación de Linux se hacía mediante un sistema en modo texto y además estaba en un inglés a nivel técnico por tanto era complicada, por ello Windows se buscaba más puesto que las instalaciones eran en modo gráfico, en español y además casi automáticas, hasta que en las últimas versiones de las distribuciones Linux esto ha cambiado radicalmente, ahora son en modo gráfico y es mucho más automatizado que antes (dependiendo del tipo de instalación que se haga). En este ámbito ya casi no hay diferencias entre ambos sistemas.

Otro aspecto importante a ver son la compatibilidad con los periféricos, compatibilidad entre ambos sistemas (puesto que hay usuarios que usan ambos sistemas operativos) y cantidad de programas que pueden correr dependiendo según que plataforma.

En cuanto a la compatibilidad de periféricos Linux reconoce casi la totalidad de los periféricos existentes en el mercado gracias a que lleva implantada la tecnología Plug 'n' Play, tecnología que actualmente llevan todos los periféricos, sin embargo no suelen estar muy al día debido a que muy pocas empresas se dedican a hacer drivers para dichos periféricos y muchos de los que salen son realizados por programadores de todo el mundo. En este ámbito Windows casi supera a Linux, puesto que la mayor parte de las empresas desarrolladoras de hardware hacen los drivers para este sistema.

En cuanto a compatibilidades entre sistemas, en realidad son completamente incompatibles, es decir, los programas de Windows no corren bajo Linux, pero eso está cambiando puesto que hay una serie de emuladores que permiten dicha acción, por ejemplo, el Wine o el VirtualPC.

También son totalmente incompatibles los sistemas de archivos, lo que requiere la existencia de particiones en el disco duro (aunque existen versiones de linux compatibles con el sistema de archivos de Windows -WinLinux-), pero no hay problemas en la convivencia de ambos en un mismo computador.

También hay que ver la cantidad de programas que corren bajo cada plataforma. En este caso hay muchos más programas para Windows que para Linux por la misma causa que con lo que ocurre con los drivers, hay más compañías desarrolladoras de software para esta plataforma que para la de Linux. Esto es debido a que la mayor parte de los programas existentes para Linux son de libre distribución por lo tanto no hay que pagar por ellos y esto de no recibir dinerillo a las compañías no les interesa, sin embargo bajo el sistema Windows esto es diferente. Frente a esto hemos de tener en cuenta un aspecto que se nos escapa, normalmente Windows siempre ha estado acompañado de su famoso paquete de oficina Microsoft Office, esto hacía a Windows ser mucho más usado que sin embargo esto ha cambiado mucho puesto que Linux cuenta ahora con el paquete de oficina StarOffice 5.2 de la compañía Sun Microsystems que compatible con el Office 97/2000, de manera que eso ha dejado de ser una excusa para no usar Linux, de manera que para trabajar Linux es una opción más fiable que la de Windows, sin embargo esto para el sector de Juegos para el usuario doméstico Windows sigue teniendo la sartén por el mango, sin embargo Linux ya ha empezado a desarrollarse en este aspecto y ya cuenta con algunos títulos tan buenos como Quake, Quake 2, Quake 3, Doom, Doom 2, etc... (es más van más rápidos por esta plataforma que por la de Windows).

Bajo el punto de vista individual, es decir, para cada persona, Linux es una gran opción, sin embrago es necesario tener una serie de conocimientos esenciales para su manejo, mientras que con Windows esto no es necesario, pero lo que gana Windows con esto lo pierde por otro, debido a que si no se tienen también buenos conocimientos de esta plataforma el sistema será muy inestable por no saber manejarlo, cosa que con Linux no suele ocurrir, puesto que sabiendo manejarlo un poco podemos comenzar a trabajar sin problemas ni temores a perder nuestro trabajo.

Bajo el punto de vista empresarial, en un principio Linux parece que va a ser poco rentable puesto que va a ser necesaria la presencia de varios ingenieros de informática para un mantenimiento adecuado, sin embargo, el dinero que se llevan estas personas la empresa lo amortiza e incluso puede llegar a sacar beneficios (dependiendo del caso) debido a que con una sola distribución de Linux que es bastante barata se tiene más que de sobra, puesto que con esa distribución podemos instalarla en todos los computadores de la empresa. Con Windows tenemos el problema de que tenemos que pagar una buena suma por cada licencia para cada computador que se instale, independientemente si se ha comprado un sólo Windows o varios y luego además la presencia de los ingenieros informáticos, por tanto los gastos pueden ser elevados con este sistema.

 volver al inicio

 

 

 

 

CONCLUSION

 

1.      UNIX es un Sistema Operativo muy conveniente desde el punto de vista de la eficiencia y aprovechamiento de los recursos.

 

2.      Hemos podido apreciar que lo que se vende hoy en realidad tiene que ver con la facilidad del trabajo, que las personas prefieren la comodidad antes que la eficiencia.

 

3.      Aunque el Sistema Operativo UNIX tiene algunas deficiencias, la mayor parte de estas pueden rectificarse utilizando los instrumentos que el mismo UNIX proporciona.

 

4.      El enfoque singular que el sistemas adopta hacia los problemas de estandarización y portabilidad, su poder como herramienta de desarrollo y su interfaz de usuario tan variada, hacen que sobresalga como la opción estándar para usuarios.

 

5. Otro aspecto que vale la pena destacar es el referido al sistema Linux. Este corresponde a una versión de clase freeware del OS unix. Este OS esta presente en la actualidad en su mas estable edición, el linux 2.3. Este representa ultima versión del proyecto iniciado en la década de los 60’ por Linus Torvald, el cual no solo posee la ventaja de ser gratis sino que además su código fuente debe estar a disposición del usuario, esta es la ventaja de la licencia del tipo GNU / linux, lo cual permite que el usuario permita modificar el código según le parezca. Esta ultima característica hace de linux una fuerte competencia para windows, al permitirle a un verdadero ejercito de programadores que mejoren y promuevan el software