CAPITULO 1 Y 2 EXAMEN Y
RESUMEN
Seccin 1
Comprendiendo el Software Libre
Objetivos
Software Libre
Software de Fuente Libre
Propiedades del Software Libre
Ventajas y Desventajas del Software Libre
1 Comprendiendo el Software
Libre
1.1 Breve historia del Software
Libre
La historia del software libre se remonta a los prime/os anos de las ciencias
de la computacin, cuando los sistemas de cmputo estaban principalmente
instalados en universidades e institutos de investigacin, en aquellos aos
no exista el criterio de valor por el cdigo del programa, yo que lo, programas
era slo un componente adicional de otros productos a los cuales so los
otorgaba valor.
En 1971 Richard M, Stallman comenz 3 trabajar para el MIT en ese
entonces exista una comunidad que comparta software (programas y cdigo
fuente) con otros colegas del medio. Es en los anos 80, que ese espritu de
compartir, casi habla desapareciendo por la filosofa del software propietario,
que no permita copiar libremente o compartir los programas, ya quo hacerlo
infringa trmino de contrato y acuerdos entre las compaas fabricantes do
computadoras y los usuario.
Stallman, interesado por revivir aquellos das en los que la comunidad
computacional comparta los programas, comienza en 1984 un proyecto para
crear un sistema operativo completo, compatible con Unix llamado GNU; El
Proyecto GNU (GNU No es Unix). Para impulsar la idea crea !a GPL (GNU
Public License, Licencia Publica GPL) bajo la cual se distribuiran los
programas que so vayan construyendo en el proyecto GNU. [www.gnu.org].
Durante lo primeros aos Richard M. Stallman y otros programadores crean
utilidades para ser usadas en el futuro sistema operativo GNU todos ellas son
elaboradas de modo que sean compatibles con UNIX.
Para financiar el proyecto cre la Fundacin para el Software Libre, una
organizacin sin fines de lucro que capta recursos econmicos para
incentivar el desarrollo software libre, [www.faf.org]
1.2 Qu es el software
libre?
Segn su impulsor Richard M. Stallman, software libre se refiere a un asunto
de libertad n de precio.
Software Libre se refiere a la libertad de los usuarios de correr, copiar,
distribuir, estudiar cambiar y mejorar el software con cualquier propsito.
Ms precisamente la filosofa se apoya en las llamadas cuatro libertades del
usuario:
1
redistribucin
Libre
contra
campos
de
de
del
al
cdigo
desventajas
del
Las ventajas del software libre sern tales, de acuerdo al usuario del
software, por ejemplo para el usuario comn, es irrelevante el acceso al cdigo
fuente de los programas, ya que a l le interesan los programas en formato
binario listos para ser utilizados.
Para mbitos acadmico y cientfico el acceso al cdigo fuente
representa transferencia tecnolgica y aprendizaje.
vs.
Software
Seccin 2
Aspectos fundamentales sobre GNU/ Linux
Objetivos
Qu es Linux?
Principales caractersticas de Linux
Linux y otros sistemas operativos
Qu es una distribucin?
Tras la versin 0.03, Linux salto a la versin 0,10 al tiempo que mas
gente empezaba a participar en su desarrollo. Tras numerosas revisiones, se
alcanzo la versin 0.95 reflejando la esperanza de tener lista muy pronto una
versin, "oficial". (Generalmente, la versin 1.0 de los programas se
corresponden con la primera tericamente completa y sin errores).
Esto suceda en Marzo de 1992. Ao y medio despus, en Diciembre del 93,
el ncleo estaba en la revisin 0.99. p/14, en una aproximacin asinttica al
1.0.
Hoy Linux es un clon de UNIX completo, capaz de ejecutar X Window, TCP/IP,
herramientas de desarrollo, cientos de utilidades GNU aplicaciones
comerciales, etc. Esta disponible no slo para plataformas Intel, tambin
PowerPC y estaciones de trabajo SUN por nombrar slo algunas.
Tan slo hace cinco aos atrs, nadie podra imaginar que este "pequeo"
clon de UNIX, producto del esfuerzo de hackers en red mundial iva a
conventirse en el sistema operativo de ms rpido crecimiento, desplazando
en el mercado a otros sistemas operativos comerciales, hasta convertirse un
sistema mundial de primera clase para servidor de red y ordenadores
personales.
2.2 Qu es Linux
GNU/Linux?
2.3 Qu
es
distribucin?
una
los
en
Est claro que todas las distribuciones estn basadas en el mismo ncleo y
por tanto los componentes fundamentales del sistema van a ser iguales
en la mayora de tas distribuciones, as que otra razn que puede influir en la
decisin de elegir una distribucin es las herramientas adicionales de
administracin o configuracin del sistema que ofrece una determinada
distribucin, ya que sta es el rea en la que se dan las mayores diferencias
y en la que compiten la mayora de las distribuciones, tratando de proveer
herramientas completas y sencillas que faciliten la instalacin, configuracin
y administracin del sistema.
Si se piensa tener varias computadoras instaladas con Linux es ms
conveniente que todas tengan la misma distribucin, o a lo sumo dos
distribuciones diferentes, digamos una pensada para servidor y otra
pensada para los clientes. Esto con el fin de disminuir el esfuerzo que
representa tener varios sistemas corriendo con diferentes distribuciones de
Linux.
2.5 Principales caractersticas del sistema operativo
Linux
Linux implementa la mayor parte de las caractersticas que se encuentran
en otras implementaciones de UNIX, ms algunas otras que no son
habituales. Linux es un sistema operativo completo con multitarea y
multiusuario (como cualquier otra versin de UNIX). Esto significa que
pueden trabajar varios usuarios simultneamente en e!, y que cada uno de
ellos puede tener varios programas en ejecucin.
El sistema Linux es compatible con ciertos estndares de UNIX a nivel
cdigo fuente, incluyendo el IEEE POSIX 1, System V y BSD. Fue
desarrollado buscando la potabilidad de las fuentes encontrar que casi
todo el software gratuito desarrollado para UNIX se compila en Linux sin
problemas. Y todo lo que se hace para Linux (cdigo del ncleo, drivers.
libreras y programas de usuario) es de libre distribucin.
En Linux tambin se implementa el control de trabajos POSIX (que se usa
en los shells csh y bash), las pseudo-terminales (dispositivos pty), y teclados
nacionales mediante administradores de teclado cargables dinmicamente.
Adems, soporta consolas virtuales, lo quo permito tenor mas do una
sesin abierta en la consola de texto y conmutar entro ellas fcilmente.
El ncleo es capaz de emular por su cuenta las instrucciones del
coprocesador 387, con lo que en cualquier 386 con coprocesador o sin l
podrn ejecutar aplicaciones que lo requieran. Linux soporta diversos
sistemas de archivos para guardar los datos. Algunos de ellos, como ext2fs,
han sido desarrollados especficamente para Linux. Otros sistemas de
archivos, como el Minix-1 o el
de Xenix tambin estn soportados, Y con el de MS-DOS se podrn
acceder desde Linux a los disquetes y particiones en discos duros formateados
orientado
GNU/Linux
Sistema operativo orientado a servidor
Trabaja tambin como estacin de trabajo o de escritorio
Ncleo ajustable a las necesidades
Disponible para intel/AMD/Cyrix, Motorola/IBM PowerPC, Motorola
600x0, Sun SPARC, SG MIPS, DEC Alpha. HP PA-RISC, DEC VAX
No tiene soporte nativo de Plug and Play
Interfase grfica de usuario: X-Window
Sistema de archivos soportados: ext2, FAT32 VFAT, FAT, FFS, coda,
NFS. SMB, solo lectura: NTFS, HPFS, UFS. adfs.
La ms completa implementacin de TCP/IP adems de IPX y AppleTalk
Capacidad de compartir archivos e impresoras
Compatible con POSIX
Soporte Real Multitarea y Multiusuario
Ejecucin a 16 bits. 32 bits y 64 bits
Capacidad de correr en mltiple procesadores (hasta 8 con la
serie de ncleos 2.4)
Corta fuegos incluido en el ncleo
2.8 Servidores y estaciones de trabajo
Seccin 3
Primeros pasos con GNU/ Linux
Objetivos
Ingreso y salida del sistema
Fundamentos de entorno y el shell
omandos habitualmente usados
3 Primeros
GNU/Linux
pasos
3.1 Nombre de
contrasea
con
usuario
que toma la entrada del usuario y las traduce a instrucciones que el sistema
trata de seguir. Esto puedo ser comparado con el COMMAND.COM de MSDOS, el cual efecta esencialmente la misma tarea.
El intrprete de comandos es solo una interfaz de Linux/UNIX. Hay otras
interfaces posibles como por ejemplo el sistema X Window, que brindo al
usuario la posibilidad do trabajar en una interfaz grfica de usuario.
passwd
Propsito
usuario Sintaxis
Opciones
Ejemplo(s)
ninguno
passwd
id
Propsito
Sintaxis
Opciones
Ejemplo(s)
su
Propsito
Sintaxis
Opciones
Ejemplo(s)
pwd
Propsito
Sintaxis
Opciones
Ejemplo(s)
touch
Propsito
archivo Sintaxis
Opciones
Ejemplo(s)
df
Propsito
Sintaxis
Opciones
Ejemplo(s)
du
Propsito
Sintaxis
Opciones
Ejemplo(s)
Seccin 4
Fundamentos del sistema de archivos
Objetivos
omprender que es un sistema de archivos
Estructura de direccin en Linux
4 Fundamentos
archivos
del
sistema
de
4.1 Qu es un sistema de
archivos?
En la mayora de los sistemas operativos (Linux/UNIX incluido), existe el
concepto do archivo, que es la unidad bsica utilizada para organizar la
informacin del sistema. El sistema de archivos es el mtodo lgico para
organizar; guardar, recuperar, manipular y administrar informacin.
Los archivos estn organizados en una forma jerrquica agrupadas en
directorios, que son nicamente una coleccin de archivos, en otros
sistemas operativos son denominados carpetas.
Una caracterstica importante del sistema Linux/UNIX es la forma general
de tratamiento de varios componentes del sistema como archivos, por ejemplo
los
dispositivos hardware como unidades de almacenamiento secundario,
impresoras, mdems, etc, son tratados como archivos.
Todos los sistemas operativos utilizan un diseo particular del sistema de
archivos, lo que hace que existan particularidades en cada uno de ellos,
como por ejemplo la longitud mxima del nombre de un archivo, atributos
especiales, autorizaciones, etc.
El sistema de archivos predeterminado en Linux se denomina "ext2" y
adems es capas de trabajar con otros sistemas de archivos como por
ejemplo FAT
(MS-DOS). VFAT (Wndows9x), FAT-32 (Windows 98, HPFS (OS/2, NTFS
(Windows
NT),
etc.
Es importante observar que Linux/Unix, hace distincin entro maysculas
y minsculas, por lo que, los nombres de archivo "CURSO.HTM",
"curso.htm" y "Curso.htm" son diferentes, tambin hay que indicar que el
carcter para separar rutas de directorio es"/" (slash).
Ejemplos
:
/bin/bash
/etc/rc.d/rc.local
4.2 Estructura
directorios
del
rbol
de
cada
uno
de
estos
/bin
/dev
Ttys son usados para accedera los purtos. Por ejemplo /dev/ttyS0
hace referencia a "COM1" bajo MS-DOS
hd se refiere a discos fijos IDE, /dev/hdda hace referencia a todo el
disco mientras que /dev/hda1 hace referencia a la primera particin en
/dev/hda.
Los nombres de dispositivo que comienzan con sd son
dispositivos SCSI. Si se tiene un disco duro. SCSI, en lugar de acceder
a el mediante
/dev/hda, hay que hacerlo mediante /dev/sda, Las cintas SCSf son
accedidas va dispositivos si los CO-ROM SCSI va sr.
Los nombres que comienzan por Ip acceden
paralelo
/dcv/lp0 hace referencia a "LPT1" en MSDOS.
los
puertos
Seccin 5
Trabajando con archivos y directorios
Objetivos
Operaciones comunes con archivos y directorios
Propiedad y permiso en archivos y directorios
Bsqueda e Inspeccin de archivos
Trabajo con disquetes DOS y Windows 9X
5 Trabajando
directorio
con
5.1 Operaciones
directorios
archivos
comunes
y
con
archivos
ftpusers
getty
gettydefs
group
inet
Init
Ipc
magic
motd
mount
mtab
mtools
rc.new
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
shells
startcons
swapoff
swapon
syslog.conf
syslog.pid
csh.login
default
disktab
fdprm
fstab
ftpacces
s
nit.d
initrunivi
inittab
inittab.o
d
issue
lilo
pac
passwd
printcap
profile
psdataba
sc
rc
rc5.d
rmt
rpc
rpcinfo
sccuretty
services
syslogd.relo
ad
termcap
umount
update
utmp
wtmp
Podemos usar la opcin -a para ver todos los archivos, los que empiezan
con "." son archivos ocultos. Los archivos "." y ".." son el directorio actual
y el directorio padre respectivamente.
Si se usa la opcin -I se obtiene un listado amplio, con informacin de
los archivos, las tres ltimas columnas representan el tamao en bytes, la
fecha y hora de creacin del archivo y el nombre del archivo. Si se aade fa
opcin -h el tamao ser mostrado con uno letra sufijo, que indica si son
Kbytes, Megabytes o Gigabytes.
5.1.2 Eliminacin
archivos
de
de
de
5.1.6 Renombre
directorios
de
5.2 Propiedad
directorios
de
archivos
5.3 Interpretando
permisos
los
Los siguientes tres caracteres, "r--" representan los permisos para los
miembros del grupo. El grupo al que pertenece el fichero es sofia. La "r"
indica que slo tienen permiso do lectura.
Los ltimos tres caracteres, tambin "r"" representan los permisos para
cualquier otro usuario del sistema (diferentes del propietario o de los
pertenecientes al grupo). De nuevo, como solo esta presente "r", los dems
usuarios pueden leer el fichero, pero no escribir en el o ejecutarlo.
5.4 Dependencias
permisos
entre
no
se
especifica
a.
u.
o.
el
predeterminados es a
Quita permisos de ejecucin a todos, excepto
propietario
Permite al propietario leer escribir y ejecutar
fichero
Quita permisos de lectura, escritura y ejecucin
otros usuarios
chmod u+rwx, o-rwx lista Los dos permisos anteriores en una
sola
instruccin
710
lista
equivale
de
Enlaces duros
$ ln foo bar
Con ls -i veremos que los dos archivos tienen el mismo inodo
$ ls I foo bar
22192 bar 22192 foo
$
Ahora, accediendo a foo o a bar accederemos al mismo archivo Si se
hacen cambios en foo. Estos cambios tambin se reflejan en bar. Para
todos los efectos, foo y bar son el mismo fichero
5.7 Bsqueda
archivos
inspeccin
de
Seccin 6
Edicin y creacin de textos ASCII
Objetivos
reacin y edicin de archivos de texto
omprender conceptos del editor VI
Uso del Editor VI
Uso del editor Joe
al
modo
k
l
0
(cero) Mueve el cursor al inicio de la lnea
actual
$
Mueve el cursor la final de la linea
actual
w
Guarda el
:q
vi
Sale de
: wq
vi
: q!
: w!
lectura
6.1.7 Uso
do
ayuda en vi
la
6.2
joe
El
editor
Seccin 7
Ms sobre comandos y el shell Bash
Objetivos
omprender funciones especiales del shell
edireccionar entrada y salida
ontrol de trabajos
Ejecucin en primer y segundo plano
Uso de variables en el shell
con
comodines
7.1.1 Como
dines
Una caracterstica importante de la mayora de los interpretes de
comandos (shell) en Linux/UNIX la capacidad para referirse a ms de un
fichero usando caracteres especiales. Estos llamados comodines permiten
referirse, por ejemplo, a lodos los ficheros que contienen el carcter "n".
El comodn "*" hace referencia a cualquier carcter o cadena de caracteres
en el nombre del archivo.
Por ejemplo, cuando se usa el carcter "*" en el nombre de un fichero,
el interprete de comandos sustituye por todos las combinaciones posibles
provenientes de los ficheros en el directorio al cual nos estamos refiriendo.
Para listar a todos los ficheros con la letra "o" en su nombre, hemos de usar
la orden
$ ls o
Distribucin-HOWTO.txt Network.txt
En el ejemplo se muestran
Network.txl, overview.txt.
los
overview.txt
archivos:
Distribution-HOWTO.txt,
es
expandido
obtener
para
7.1.2 xpresi
ones
El intrprete de comandos es tambin capaz de expandir
expresiones, construidas con el uso de smbolos especiales, que son:
Smbolo
Expansin
[]
Significado
{}
rR]eadme
[a-c]_data
mo{re,ve
}
ciertas
ejemplo
readme
a_data
Roadme
b_data
c_data
more move
/imp.
7.2 Redireccin de entrada y
salida
Muchos comandos Linux/UNIX toman su entrada de algo conocido como
entrada estndar y envan su salida a la salia .estndar (a menudo
nombrados como "stdin" y "stdout"), cuando o comando genera un mensaje
de error, oslo os enviado a error estndar (stdcrr).
El intrprete de comandos configura el sistema de forma que la entrada
estndar es el teclado y la salida estndar y error estndar la pantalla.
Para ilustrar esto veamos un ejemplo con el comando cat. Normalmente cat
lee datos de los archivos cuyos nombres se pasan como argumentos en
linea de comandos y enva estos datos directamente a la salida estndar
$cat mensaje.txt readme
$
Como se puede ver, cada linea que se teclea (impresa en itlico) es
inmediatamente reenviada a la pantalla por cat. Cuando se est leyendo de
la entrada estndar, los comandos reconocen el fin de la entrada de datos
cuando reciben el carcter EOT (cnd-of-text, fin de texto), normalmente
producido con las teclas Ctrl+D.
Veamos otro ejemplo. El comando sort toma como entrada lineas de texto
(de nuevo leer desde stdin si no se le proporcionan nombres de archivo en la
linea de comandos), y devuelvo la salida ordenada a stdout. Probemos lo
siguiente:
$ sort
tumbo
limn
platano
frutilla
CLrI+D
frutilla
limn
pltano
tumbo
$
Podemos observar que una vez ordenado, sort enva el resultado o la
salido estndar, la pantalla.
7.2.1 Redireccionando la entrada y
salida
Ahora, supongamos que queremos que la salida de ;.i.[ i. vaya ci un archivo.
E) intrprete de comandos permite redireccionar la salida estndar a un
archivo usando el smbolo ">"
$ sort >
ordenado tumbo
limn
platano
frutilla
Ctrl+D
$
Como se puede ver, el resultado de sort no se muestra por pantalla, en su lugar
es enviado y guardado en el archivo ordenado. Echemos un vistazo al archivo
$cat ordenado
Cuando se usa ">" crea el archivo si es que no existe y si existe este es
sobre escrito, para evitar esto se puede usar "" que aade datos al archivo
en fugar do sobre escribirlo, si el archivo no existe tambin ser creado.
>
7.3 Control
trabajos
de
estamos viendo los procesos que estn ejecutando el usuario que invoc a
ps. Vemos que hay dos procesos, bash (Que es el shell o interprete de
comandos que usa el usuario), y el propio comando ps. Como se puede
observar, bash se ejecuta concurrentemente con el comando ps, Bash ejecuto
ps cuando el usuario tecleo el comando.
Cuando ps termina de ejecutarse (despus de mostrar la labia de procesos),
el control retorna al proceso bash, que muestra el prompt, indicando que esta
listo para recibir otro comando.
Un proceso que est corriendo se denomina turca para el shell. Los
trminos proceso y tarea es intercambiable. Sin embargo, se suele
denominar "tarea" a un proceso cuando es usado en conjuncin con control
do tareas, que es un rasgo del intrprete de comandos quo permite cambiar
entre distintas tareas. En muchos casos, los usuarios solo ejecutan un
trabajo cada vez que es el ltimo comando tecleado desde el shell. Sin
embargo, usando el control de tareas, se podr ejecutar diferentes tareas al
mismo tiempo, cambiando entre
cada uno de ellos conforme so
necesito.
7.3.1 Ejecucin en Primer plano y Segundo
plano
Un proceso puedo estar en Primer plano o en segundo plano. Solo
puede haber un proceso en primer plano al mismo tiempo, el proceso que
esta en primer plano es el que interacta con el usuario, recibe entradas de
teclado, y enva las salidas al monitor (salvo, por supuesto, que se haya
redirigido la entrada o la salida), Por o general, e! proceso en segundo
plano, no realiza ninguna interaccin con el teclado, se ejecutan en silencio
sin necesidad de interaccin.
Algunos programas necesitan mucho tiempo paro terminar, y no hacen
nada interesante mientras tanto. Compilar programas es una de estas
largas, as como comprimir un fichero grande. No tiene sentido sentarse y
aburrirse mientras estos procesos terminan. En estos casos es mejor
lanzarlos en segundo plano, para dejar la computadora on condiciones de
ejecutar otro programa
Los procesos pueden ser suspendidos. Un proceso suspendido es aquel
que no s esta ejecutando actualmente, sino que es la temporalmente
parado. Despus de suspender una tarea, se puede indicar a la misma que
contine en primero segundo plano, segn se requiera. Retomar una tarea
suspendida no cambia en nada el estado de la misma tarea continuara
ejecutndose justo donde se dejo.
Hay que tener en cuenta que suspender un trabajo no es lo mismo
que
interrumpirlo.
Cuando
se interrumpe
un
proceso (generalmente
presionando Clrl+C|) el proceso muere, y deja de estar en memoria y utilizar
recursos del ordenador. Una vez eliminado, el proceso no puede continuar
ejecutndose, y debera ser lanzado otra vez para volver a realizar sus
tareas. Tambin se puede dar el caso de que algunos programas capturan
Para eliminar una tarea, se usa el comando kill. Esto comando toma
como argumento un nmero de tarea o un nmero PID de un proceso. Esta
era la tarea 1. as que usando el comando:
$ kill %1
matar la tarea. Cuando se identifica la tarea con su nmero, se debe
preceder el nmero con el carcter de porcentaje ("%"). Ahora que ya hemos
destruido lo tarca, podemos usar el comando jobs de nuevo para comprobarlo:
$job
s
[1]+ Terminated
> /dev/null
$
yes
Las funciones provistas para control de larcas, revisadas aqu son una
caracterstica del shell Los comandos Jobs, fg y bg, son comandos internos
del shell. El shcli Linux utilizado en estos ejemplos es Bash.
HOME
SHELL
TERM
para
mensajes.txt
Para ver todas las variables actuales del shell se puedo usar el comand
set.
7.4.1 Definicin
variables
de