viernes, 28 de mayo de 2010

sistema operarivo linux

Como sistema operativo, Linux es muy eficiente y tiene un excelente diseño. Es multitarea, multiusuario, multiplataforma y multiprocesador; en las plataformas Intel corre en modo protegido; protege la memoria para que un programa no pueda hacer caer al resto del sistema; carga sólo las partes de un programa que se usan; comparte la memoria entre programas aumentando la velocidad y disminuyendo el uso de memoria; usa un sistema de memoria virtual por páginas; utiliza toda la memoria libre para cache; permite usar bibliotecas enlazadas tanto estática como dinámicamente; se distribuye con código fuente; usa hasta 64 consolas virtuales; tiene un sistema de archivos avanzado pero puede usar los de los otros sistemas; y soporta redes tanto en TCP/IP como en otros protocolos.

VERCIONES:
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 mucho mas funcionaba. En este estado de desarrollo ni se pensaba en los términos soporte, documentación, 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 numero 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 llego 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

COMANDOS:
date –u mmddhhhhaa cambia la fecha del sistema, ej. 1202120095 es igual a mes 12, día 02, hora 12:00 y año 1995.
logout sale de la actual sesión.
login sale de la actual sesión.
^D sale de la actual sesión.
Alt+F1 inicia una consola virtual (varias a la vez: F1,F2,F3...)
passwd cambia el password del actual usuario.
^C aborta programa en ejecución.
^S paraliza la pantalla.
^Q anula la paralización de la pantalla.
who lista los usuarios conectados.
who am i lista tu nombre.
who you are lista tu nombre.
mail nombre envía correo, se finaliza escribiendo un punto en una línea sola.
mail visualiza tu correo, teclea ? para ayuda.
ls lista directorios y ficheros.
ls –i lista directorios y ficheros con sus i-números.
ls –a lista directorios y ficheros en orden alfabético.
ls –s lista directorios y ficheros con su tamaño en bloque (1 bloque= 512 bytes)
ls –r lista directorios y ficheros en orden inverso.
ls –u lista directorios y ficheros según último acceso.
ls –l lista todos los directorios y ficheros en formato largo.
Head –nº lines selecciona la primera línea (ej. ls|head –1 lines)
cat file file ... visualiza seguidamente los ficheros indicados.
cat file file > file graba los dos archivos en uno.
ln file link crea un enlace a un archivo, los dos contienen el mismo fichero físico, si cambias uno, cambia el otro. Pero si borras uno todavía queda el otro.
cp file file copia ficheros.
rm file borra ficheros.
mv file file mueve o cambia de nombre.
pwd muestra el directorio actual.
cd cambia de directorio.
mkdir directorio crea un directorio.
rmdir directorio borra un directorio.
comando & hace que el proceso sea desatendido en 2º plano (background).
ps [nº] muestra los procesos desatendidos.
ps alx muestra los procesos desatendidos asociados a la terminal (a), los no asociados (x) y hace una lista larga (l).
Elementos de la lista larga: STA (Estado del proceso) O (Inexistente) S (Durmiendo) W (Esperando) I (Intermedio) R (Ejecutándose) Z (Terminado) Z (Parado) UID (Nº de Identificación del propietario) PID (Nº de Identificación del proceso) PPID (Nº de Identificación del proceso padre) PRI (Prioridad, nº altos=baja prioridad) WCHAN (Suceso al que espera) NICE (Nº para calcular la pri.) TTY (Terminal) STTY (Tiempo de ejecución)

kill nº detiene la ejecución de un proceso en background.
at hora o fecha <
Posibilidades para hora o fecha: 8am, 2130, 12N fri week (siguiente semana), 2PM apr 3, now +1minute, now +1 hour, 4PM +2 days, 1PM tomorrow,...
comando ; comando se pueden escribir varios comandos a la vez.
comando > file redirecciona la salida a un archivo.
(comando ; comando) > file redirecciona toda la salida del conjunto a un archivo.
comando >> file redirecciona la salida a un archivo, pero lo añade al final de este.
comando < file > file redirecciona de forma contraria para acabar llevando el resultado a un archivo.
comando | comando tubo (pipeline) la salida del 1º la envía hacia el 2º.
*, ?, [...], ... caracteres de sustitución.
echo * lista directorios y ficheros.
echo –n "Hoy es `date`, hola $variable" hace eco sin carro de retorno (-n) de la frase Hoy es, ejecuta el comando date (entre acentos), hace eco de hola y imprime el contenido de la variable. Para eliminar los valores especiales de algunos caracteres deberemos escribir / antes, ejemplo "Hola /"Pepe/"".
mesg y permite que te escriban los usuarios del sistema.
mesg n prohibe que te escriban a los usuarios del sistema.
mesg muestra el estado actual (escribir o no).
tty muestra tu número (archivo) de terminal.
write nombre [tty] para comunicarse con un usuario conectado al sistema. Para salir ^D, para indicar al otro el fin del mensaje –oo-, y el fin de la comunicación –oo-. Si el usuario pertenece a otra terminal, se debe indicar. Si el usuario tiene el mesg en no o esta realizando una tarea específica no podremos comunicarnos.
cmp file file comprueba si son idénticos, si lo son no aparece ninguna salida.
comm [-nº] file file lista las palabras comunes de los dos archivos, en el número se indica la columna a comparar: 0,1,2,3.
diff file file lista las palabras diferentes de los dos archivos.
find . –file ... –mtime 1 –size +10 –type f busca en el directorio actual los ficheros con dicho nombre, que hayan sido modificados hace 1 día, con un tamaño mayor a 10 bloques y del tipo fichero.
find / -name ... –atime 1 –size –20 –type d busca en el directorio actual los directorios con dicho nombre, que hayan tenido acceso hace 1 día, con tamaño menor que 20 bloques y del tipo directorio.
find . –name –ok rm {} \; busca en el directorio actual y borra los ficheros encontrados que cumplan los requisitos.
lpr file imprime el archivo.
pr file imprime el archivo junto a un encabezamiento, la fecha, hora, ...
tail nº file muestra la cola de un archivo, en nº se debe especificar: +2l (a partir de la segunda línea por arriba), -10l (a partir de la décima línea por abajo). Si en lugar de l (línea) podemos escribir b (bloque) ó c (carácter).
tr caracteres caracteres cambia los caracteres por los indicados a continuación. (Ejemplo: tr abc ABC).
tee file muestra los datos en un punto intermedio.
du muestra el tamaño por bloques de cada archivo y directorio.
du –s muestra el tamaño total por bloques.
file file indica el tipo de archivo que es (empty\ cannot open\ directory\ English text\ ascii text\ data).
stty información sobre nuestro terminal.
stty [-] raw lee carácter a carácter. Se anula añadiendo el signo – al comando.
stty [-] cooked lee línea a línea. Se anula añadiendo el signo – al comando.
stty [-] cbreak mezcla de los dos anteriores. Se anula añadiendo el signo – al comando.
stty [-] nl no retorna el carro hasta el principio (se anula con ^J).
stty [-] echo no se ven las pulsaciones en pantalla. Se anula añadiendo el signo – al comando.
sort file muestra en pantalla el archivo ordenado por la 1ª columna (para indicar la segunda columna añadir +1 y así sucesivamente).
sort file –u muestra en pantalla el archivo ordenado por la 1ª columna sin las líneas duplicadas.
sort file –b muestra en pantalla el archivo ordenado por la 1ª columna ignorando espacios en blanco.
sort file –f muestra en pantalla el archivo ordenado por la 1ª columna distinguiendo entre minúsculas y mayúsculas.
sort file –r muestra en pantalla el archivo ordenado por la 1ª columna en orden inverso.
sort file –c comprueba si el archivo ya esta ordenado.
grep palabra file busca unos caracteres determinados en un fichero.
grep –v palabra file busca las líneas que no contienen dicha palabra.
grep –c palabra file muestra el número de líneas que contienen la palabra.
grep –y palabra file busca la palabra en el fichero sin distinguir entre minúsculas y mayúsculas.
grep –n palabra file busca la palabra y muestra su línea con el número de
esta.
uniq file muestra el archivo sin las líneas que estén repetidas.
wc file muestra el número de líneas, palabras y caracteres (en este orden) del archivo.
wc –l file muestra el número de líneas del archivo.
wc –w muestra el número de palabras del archivo.
wc –c muestra el número de caracteres del archivo.
cal [nº mes] nº año imprime un calendario del mes y/o año indicado. Mes: 1-12, año 1-9999.
newgrp grupo cambia de grupo.
sum file suma las palabras de un archivo.
expr nº + nº suma +, resta -, multiplica *, divide /,... una expresión.
wall mensaje manda un mensaje a todos los usuarios. (Solo lo recibirán los usuarios que tengan su sistema configurado para poder recibir estos mensajes)
id muestra nuestro UserId y el GroupId.
chmod nºnºnº file cambia los permisos de un archivo. 1: Permiso de ejecución (x), 2: Permiso de escritura (w), 3: Permiso de lectura ( r). Se deben sumar para poner más de uno. El primer número corresponde al creador del archivo, el segundo al grupo del creador, y el tercero al resto de usuarios. Ej. 666 : todo el mundo tiene permiso de todo.
chown nombre file cambia el propietario de un archivo.
chgrp grupo file cambia el grupo del propietario de un archivo.
umask muestra los permisos por defecto de los archivos creados. Ej. 022 entonces 666-022=644, es decir usuario permiso de w, r, grupo permiso de r y lo otros permiso de r.
umask nº cambia los permisos por defecto de los archivos creados. Ej. umask 000: todo el mundo tiene todos los permisos al ser creado un archivo.

CARACTERISTICAS:
•    Multitarea: La palabra multitarea describe la habilidad de ejecutar varios programas al mismo tiempo.
LINUX utiliza la llamada multitarea preeventiva, la cual asegura que todos los programas que se estan utilizando en un momento dado seran ejecutados, siendo el sistema operativo el encargado de ceder tiempo de microprocesador a cada programa.
•    Multiusuario: Muchos usuarios usando la misma maquina al mismo tiempo.
•    Multiplataforma: Las plataformas en las que en un principio se puede utilizar Linux son 386-, 486-. Pentium, Pentium Pro, Pentium II,Amiga y Atari, tambien existen versiones para su utilizacion en otras plataformas, como Alpha, ARM,MIPS, PowerPC y SPARC.
•    Multiprocesador: Soporte para sistemas con mas de un procesador esta disponible para Intel y SPARC.
•    Funciona en modo protegido 386.
•    Protección de la memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema.
•    Carga de ejecutables por demanda: Linux sólo lee del 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 alguno intenta escribir en esa memoria, la página (4Kb de memoria) se copia a otro lugar. Esta política de copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso de memoria.
•    Memoria virtual usando paginación (sin intercambio de procesos completos) a disco: A una partición o un archivo en el sistema de archivos, o ambos, con la posibilidad de añadir más áreas de intercambio sobre la marcha Un total de 16 zonas de intercambio de 128Mb de tamaño máximo pueden ser usadas en un momento dado con un límite teórico de 2Gb para intercambio. Este limite se puede aumentar facilmente con el cambio de unas cuantas lineas en el codigo fuente.
•    La memoria se gestiona como un recurso unificado para los programas de usuario y para el caché de disco, de tal forma que toda la memoria libre puede ser usada para caché y ésta puede a su vez ser reducida cuando se ejecuten grandes programas.
•    Librerías compartidas de carga dinámica (DLL's) y librerías estáticas.
•    Se realizan volcados de estado (core dumps) para posibilitar los análisis post-mortem, permitiendo el uso de depuradores sobre los programas no sólo en ejecución sino también tras abortar éstos por cualquier motivo.
•    Compatible con POSIX, System V y BSD a nivel fuente.
•    Emulación de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4 a nivel binario.
•    Todo el código fuente está disponible, incluyendo el núcleo completo y todos los drivers, las herramientas de desarrollo y todos los programas de usuario; además todo ello se puede distribuir libremente. Hay algunos programas comerciales que están siendo ofrecidos para Linux actualmente sin código fuente, pero todo lo que ha sido gratuito sigue siendo gratuito.
•    Control de tareas POSIX.
•    Pseudo-terminales (pty's).
•    Emulación de 387 en el núcleo, de tal forma que los programas no tengan que hacer su propia emulación matemática. Cualquier máquina que ejecute Linux parecerá dotada de coprocesador matemático. Por supuesto, si el ordenador ya tiene una FPU (unidad de coma flotante), esta será usada en lugar de la emulación, pudiendo incluso compilar tu propio kernel sin la emulación matemática y conseguir un pequeño ahorro de memoria.
•    Soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir nuevos dinámicamente.
•    Consolas virtuales múltiples: varias sesiones de login a través de la consola entre las que se puede cambiar con las combinaciones adecuadas de teclas (totalmente independiente del hardware de video). Se crean dinámicamente y puedes tener hasta 64.
•    Soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y todos los sistemas de archivo típicos de System V, y tiene un avanzado sistema de archivos propio con una capacidad de hasta 4 Tb y nombres de archivos de hasta 255 caracteres de longitud.
•    Acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT) mediante un sistema de archivos especial: no es necesario ningún comando especial para usar la partición MS-DOS, esta parece un sistema de archivos normal de Unix (excepto por algunas restricciones en los nombres de archivo, permisos, y esas cosas). Las particiones comprimidas de MS-DOS 6 no son accesibles en este momento, y no se espera que lo sean en el futuro. El soporte para VFAT (WNT, Windows 95) ha sido añadido al núcleo de desarrollo y estará en la próxima versión estable.
•    Un sistema de archivos especial llamado UMSDOS que permite que Linux sea instalado en un sistema de archivos DOS.
•    Soporte en sólo lectura de HPFS-2 del OS/2 2.1
•    Sistema de archivos de CD-ROM que lee todos los formatos estándar de CD-ROM.
•    TCP/IP, incluyendo ftp, telnet, NFS, etc.
•    Appletalk.
•    Software cliente y servidor Netware.
•    Lan Manager / Windows Native (SMB), software cliente y servidor.
•    Diversos protocolos de red incluidos en el kernel: TCP, IPv4, IPv6, AX.25, X.25, IPX, DDP, Netrom, etc.

No hay comentarios:

Publicar un comentario