TAREA
N°3 DE SISTEMAS DE COMPUTACIÓN
“Sistema
operativo Unix”
| Profesor
:
YussefFarrán Leiva
ayudante : Jaime Jara Araya |
| Integrantes:
Pedro
Bravo
|
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.
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”).
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
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.
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
·
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.
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:
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.
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.
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, ...
(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.
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.
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

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.
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
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.|
|~ |
|~ |
|~ |
|~ |
|~__________________________________________________________________|
____________________________________________________________________
|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.
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
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.
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.
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.
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.
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
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.
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
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 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.
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.
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