1. T r a b a j o P r á c t i c o : T e m a LI N U X
Cuestionario
1. Que es linux?
2. Que elementos lo forman, explicar cada uno (kernel, shell, bibliotecas)
33.Historia del linux
44. Caracteristicas
5. Diferencias y semejanzas con otros sistemas operativos
66.Aplicaciones (Firefox, open office, gimp, etc)
77-¿cual es el significado de la palabra Ubuntu?
88. ¿cuales son las 4 libertades del software libre?
1-Linux es un núcleo de sistema operativo libre tipo Unix. Es utilizado por la familia de
sistemas operativos GNU/Linux. Lanzado bajo la licencia pública general de GNU y
desarrollado gracias a contribuciones provenientes de todo el mundo, Linux es uno de los
ejemplos más notables de software libre.
2-El kernel ó núcleo de linux se puede definir como el corazón de este sistema operativo.
Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos.
Las funciones más importantes del mismo, aunque no las únicas, son:
• Administración de la memoria para todos los programas y procesos en ejecución.
• Administración del tiempo de procesador que los programas y procesos en ejecucion
utilizan.
• Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de
una manera cómoda.
Se conoce con el nombre de Shell al programa que atiende a los ordenes tecleadas en el
terminal y las traduce (interpreta) a instrucciones en la sintaxis interna del sistema; es
decir es él interprete de comandos del sistema operativo UNIX. También se le conoce
con el nombre de caparazón. (Análogo al Command.com de MS-DOS).
El shell es un programa del sistema operativo, pero no forma parte del núcleo del mismo.
2. Se ejecuta cada vez que un usuario se identifica ante el sistema y comienza una sesión.
Se ejecuta un shell para cada usuario que se conecta al sistema. Cuando un usuario
introduce una orden, el shell, que es un programa en continua ejecución, analiza la línea
y llama a ejecución al programa o programas que realiza la función solicitada por la
orden.
Esto condujo a la creación de la biblioteca. Esto no es mas que un tipo de fichero
especial (realmente es un archivo, tipo tar(1) o cpio(1)) pero que es especial en el sentido
de que el linker entiende su formato y cuando especificamos un archivo de biblioteca, EL
LINKER SELECCIONA SOLAMENTE AQUELLOS MODULOS QUE EL PROGRAMA
NECESITA, sin incluirlos todos. Esto añadió una ventaja, ahora se podían desarrollar
programas que hicieran uso de grandes bibliotecas de rutinas y el programador no tenía
que conocer todas las dependencias de las funciones de la biblioteca.
La biblioteca tal y como la hemos visto hasta este punto no ha evolucionado mas. Tan
solo se le ha añadido un fichero especial, que suele aparecer al comienzo del archivo, y
que contiene una descripción de los módulos y los identificadores que va a poder resolver
el linker sin necesidad de leerse toda la biblioteca (y de esta manera eliminar varias
pasadas por la misma). Este proceso (el de añadir la tabla de símbolos al archivo de
biblioteca) es realizado en Linux por el comando ranlib(1). Estas bibliotecas son las que
se conocen como BIBLIOTECAS ESTÁTICAS.
Un avance que se introdujo con los nuevos sistemas multitarea que estaban apareciendo
es la compartición de código. Si en un sistema se lanzaban dos copias del mismo
programa, parecía interesante que, dado que normalmente un programa no modifica su
código, que los procesos compartieran el código, sin necesidad de tener varias copias en
memoria. Esto ahorró mucha memoria en sistemas grandes con muchos usuarios.
Esto fue llevado un paso mas allá: Alguien pensó (no se quien fué, pero la idea fue
bastante buena ;-), que era muy frecuente el caso de que muchos programas usaban la
misma biblioteca, pero al ser programas diferentes, la parte de la biblioteca usada por un
programa no tenía porque ser la misma que la parte usada por otro programa y además
el código principal no era el mismo (eran programas diferentes), por tanto el texto no se
compartía. A esta persona se le ocurrió que si programas diferentes que usaban la
misma biblioteca, realmente podían compartir el código de dicha biblioteca y de esa
manera ahorrar algo en ocupación de memoria. Se inventó el proceso de carga dinámica
y bibliotecas dinámicas. Ahora programas diferentes comparten el código de la biblioteca,
sin que el código general del programa sea el mismo.
Sin embargo, ahora el proceso es mas complejo. El programa no se enlaza
(¿¿¿linka???) por completo, sino que las referencias a identificadores de bibliotecas
compartidas se postponen para el proceso de carga del programa. El linker (el linker en
Linux es ld(1)) reconoce que está ante una biblioteca compartida y no incluye el código
de ésta en el programa. El propio sistema (el kernel) cuando se hace el exec, reconoce
que es un programa con bibliotecas compartidas y ejecuta un código especial que se
encarga de cargar la biblioteca (asignar memoria compartida para el texto de la misma,
asignar memoria privada para los datos propios de la biblioteca, etc.) Este proceso se
realiza al cargar el programa en un proceso ahora mas complejo.
3. Por supuesto, el linker ante una biblioteca normal sigue comportandose como antes.
La biblioteca compartida no es un archivo con ficheros conteniendo código objeto, sino
mas bien un fichero que contiene código objeto por sí mismo. Cuando se enlaza el
programa con una biblioteca compartida, el linker no investiga por dentro de la biblioteca
que módulos debe añadir al programa y cuales no, se limita a comprobar que referncias
insatisfechas se resuelven y cuales hay que añadir a la lista por la inclusión de esta
biblioteca. Se podría crear un archivo ar(1) de biblioteca de bibliotecas compartidas, pero
ésto no se suele hacer, ya que una biblioteca compartida puede ser el resultado de
enlazar varios módulos y la biblioteca es necesaria luego, a la hora de ejecutar el
programa. Quizá el nombre de una biblioteca compartida no sea adecuado y sea mas
adecuado el nombre de objeto compartible. (sin embargo no usaremos este término por
no estar extendido)
3. En 1983 Richard Stallman inició el Proyecto GNU, con el propósito de crear un sistema
operativo similar y compatible con UNIX y los estándares POSIX. Dos años más tarde,
1985, creó la Fundación del Software Libre (FSF) y desarrolló la Licencia pública general
de GNU (GNU GPL), para tener un marco legal que permitiera difundir libremente el
software. De este modo el software de GNU fue desarrollado muy rápidamente, y por
muchas personas. A corto plazo, se desarrolló una multiplicidad de programas, de modo
que a principios de los años 1990 había casi bastante software disponible como para
crear un sistema operativo completo. Sin embargo, todavía le faltaba un núcleo.
Esto debía ser desarrollado en el proyecto GNU Hurd, pero Hurd demostró desarrollarse
muy inactivamente, porque encontrar y reparar errores (eliminación de fallos, debugging
en inglés) era muy difícil, debido a las características técnicas del diseño del micronúcleo.
Otro proyecto de sistema operativo software libre, en los años 1980 fue BSD. Este fue
desarrollado en la Universidad de Berkeley desde la 6ª edición de Unix de AT&T. Puesto
que el código de AT&T Unix estaba contenido en BSD, AT&T presentó una demanda a
principios de los años 1990 contra la Universidad de Berkeley, la cual limitó el desarrollo
de BSD y redujo el desarrollo. Así a principios de los años 1990 no produjo ningún
sistema completo libre.
El futuro de BSD era incierto debido al pleito y detuvo el desarrollo. Además, el Proyecto
GNU gradualmente se desarrollaba pero, este carecía de un bien formado núcleo UNIX.
Esto dejó un nicho crítico abierto, que Linux llenaría muy pronto.
4. 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.
• tiene 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 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.
4. 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: 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 (se sigue denominando intercambio, es en
realidad un intercambio de páginas). 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.
• 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 éste
puede a su vez ser reducido cuando se ejecuten grandes programas.
• librerías compartidas de carga dinámica (DLL's) y librerías estáticas también, por supuesto.
• se realizan volcados de estado (core dumps) para posibilitar los análisis postmortem,
permitiendo el uso de depuradores sobre los programas no sólo en ejecución sino también
tras abortar éstos por cualquier motivo.
• casi totalmente compatible con POSIX, System V y BSD a nivel fuente.
• mediante un módulo de 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.
• pseudoterminales (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 tu ordenador ya tiene una FPU (unidad de
coma flotante), 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 minix1, 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 MSDOS (o a particiones OS/2 FAT) mediante un sistema
de archivos especial: no necesitas ningún comando especial para usar la partición MS
DOS, parece un sistema de archivos normal de Unix (excepto por algunas graciosas
restricciones en los nombres de archivo, permisos, y esas cosas). Las particiones
comprimidas de MSDOS 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.
5. • soporte en sólo lectura de HPFS2 del OS/2 2.1
• sistema de archivos de CDROM que lee todos los formatos estándar de CDROM.
• TCP/IP, incluyendo ftp, telnet, NFS, etc.
• Appletalk disponible en el actual núcleo de desarrollo.
• software cliente y servidor Netware disponible en los núcleos de desarrollo.
5. Microsoft es el gigante informático que produce y comercializa Windows, el sistema
operativo que usa el 90% de los ordenadores personales de todo el mundo (su última
versión es Windows XP). Su precio ronda los 120 euros y muchas veces se incluye en el
precio del propio ordenador (que ronda los 1.200 euros).
Al igual que un turismo sirve para moverse por casi todo tipo de carreteras, Windows es
el estándar de facto que cubre la gran mayoría de necesidades del usuario medio. Ya sea
para escribir documentos, navegar por Internet, escuchar música, ver películas, retocar
fotografías digitales o disfrutar de los últimos juegos, Windows es fácil de usar y
configurar, sin necesidad de poseer conocimientos informáticos avanzados. Además, la
práctica totalidad de los programas que se comercializan disponen de una versión para
Windows. Sin embargo, Windows tiene fama de ser inestable, ya que los bloqueos y
cuelgues son frecuentes (sobre todo en versiones anteriores a XP). Su seguridad también
deja mucho que desear, pues existen multitud de virus que aprovechan fallos del sistema
para infectar el PC, como, por ejemplo, el virus Sasser o el más dañino Chernobyl.
Mac OS, el 'deportivo de diseño'
Mac OS es considerado por muchos expertos el sistema operativo más sencillo de
utilizar, más innovador y de estética más cuidada. Al igual que un coche deportivo,
conjuga elegancia con altas prestaciones, permitiendo a la vez rodar por casi cualquier
tipo de carretera. Es un sistema muy fácil de usar y que siempre ha alardeado de que
hasta un niño puede utilizarlo sin dificultades (sus ratones tienen un único botón, en vez
de dos, para no confundir al usuario).
Su última versión, Mac OS X, es radicalmente distinta a las anteriores. Con ella ha
ganado en estabilidad, seguridad y ausencia de virus. El número de programas
disponibles para esta plataforma (sobre todo, juegos) sigue sin ser tan alto como el de
Microsoft, aunque cumple las necesidades de cualquier usuario doméstico o profesional
multimedia. Es en el retoque, la producción y edición de música, fotografías y vídeos
donde este sistema tiene su punto fuerte. Apple Macintosh lo comercializa al precio de
unos 150 euros (es de pago y propietario). Pero su mayor coste no está en la propia
licencia de uso, sino en que únicamente funciona en los ordenadores que fabrica la
misma compañía. Y estos ordenadores (de una calidad y diseño muy cuidados) no son
baratos: aunque hay modelos por debajo de 1.000 euros, es habitual que cuesten más de
2.000 euros.
Linux, un 'todoterreno robusto'
Es el sistema preferido por muchos de los profesionales de la informática y de Internet.
Como si de un 4x4 se tratase, ofrece potencia, estabilidad, seguridad contra virus y sirve
para realizar cualquier trabajo. Por contra, al igual que un todo terreno, peca de falta de
6. comodidad, no es tan fácil de usar como los otros dos y se necesitan conocimientos
técnicos para realizar algunas tareas. Aún así, sus últimas versiones son bastante más
amigables, por lo que ha empezado a calar entre algunos usuarios domésticos y
ofimáticos (uso del ordenador en ambientes de oficina).
La colección de programas disponibles en algunas áreas (como los juegos o las
aplicaciones multimedia) es aún escasa o de poca calidad, aunque mejora día a día. A la
hora de instalar nuevos periféricos, el proceso también se complica: mientras que en
Windows y Mac OS es casi automático, en Linux suele ser necesario realizar alguna
configuración manual.
Linux es un sistema un tanto 'romántico', pues ha sido desarrollado voluntariamente por
programadores de todo el mundo. De ahí que sea libre (libertad total para ver y modificar
las 'entrañas' del sistema) y gratuito (puede descargarse de Internet, copiárselo a un
amigo o adquirirse en formato CD por unos 30 euros).
6. A pesar de su tamaño, Damn Small Linux contiene un gran número de aplicaciones,
incluyendo el reproductor XMMS, un cliente FTP, un navegador web, un cliente de correo
electrónico, una hoja de cálculo y un procesador de textos, tres editores (Nedit, nVi, Zile),
Xpdf, Naim (AIM, ICQ, IRC), VNCviewer, un servidor y cliente de SSH/SCP, un cliente
DHCP, PPP, PPPoE, Servidor Web, Servidor ftp, etc. La siguiente es una lista de
aplicaciones que usa:A pesar de su tamaño, Damn Small Linux contiene un gran número
de aplicaciones, incluyendo el reproductor XMMS, un cliente FTP, un navegador web, un
cliente de correo electrónico, una hoja de cálculo y un procesador de textos, tres editores
(Nedit, nVi, Zile), Xpdf, Naim (AIM, ICQ, IRC), VNCviewer, un servidor y cliente de
SSH/SCP, un cliente DHCP, PPP, PPPoE, Servidor Web, Servidor ftp, etc. La siguiente
es una lista de aplicaciones que usa:
• Editores de texto: Beaver, Nano, Vim
• Administradores de archivos: DFM, emelFM
• Graficos: MtPaint, xzgv (image viewer)
• Multimedia: gphone, XMMS with MPEG1 and VCD support
• Office: SIAG (Hoja de calculo), Ted (Procesador de texto) con corrector de ortografía,
Xpdf(visor de documentos PDF)
• Internet:
Navegadores: Dillo, Firefox, Netrik
Sylpheed (Cliente)
naim (AIM, ICQ, y un cliente IRC)
AxyFTP (cliente de FTP,, BetaFTPD (un servidor FTP)
Monkey (servidor web)
Un cliente SMB
Rdesktop (cliente RDP), visor VNC
• Otras: DHCP client, SSH/SCP cliente and servidor; PPP, PPPoE, ADSL support; FUSE,
NFS, SSHFS support; UnionFS; generic/Ghostscript soporte de impresora; PC card, USB,
soporte WiFi; calculadora, juegos, system monitor; many commandline tools
También permite instalar nuevos paquetes mediante synaptic o bien se puede activar apt
de manera que podemos añadir cualquier aplicación que nos sea necesaria
7. • Editores de texto: Beaver, Nano, Vim
• Administradores de archivos: DFM, emelFM
• Graficos: MtPaint, xzgv (image viewer)
• Multimedia: gphone, XMMS with MPEG1 and VCD support
• Office: SIAG (Hoja de calculo), Ted (Procesador de texto) con corrector de ortografía,
Xpdf(visor de documentos PDF)
• Internet:
Navegadores: Dillo, Firefox, Netrik
Sylpheed (Cliente)
naim (AIM, ICQ, y un cliente IRC)
AxyFTP (cliente de FTP,, BetaFTPD (un servidor FTP)
Monkey (servidor web)
Un cliente SMB
Rdesktop (cliente RDP), visor VNC
• Otras: DHCP client, SSH/SCP cliente and servidor; PPP, PPPoE, ADSL support; FUSE,
NFS, SSHFS support; UnionFS; generic/Ghostscript soporte de impresora; PC card, USB,
soporte WiFi; calculadora, juegos, system monitor; many commandline tools
También permite instalar nuevos paquetes mediante synaptic o bien se puede activar apt
de manera que podemos añadir cualquier aplicación que nos sea necesaria
7. Ubuntu es una distribución de Linux orientada a escritorio, basada en Debian
GNU/Linux pero enfocado en la usabilidad, lanzamientos regulares y fácil de instalación.
Ubuntu es patrocinado por la empresa Canonical Ltd. de Mark Shuttleworth, y es una
sistema operativo libre y de código abierto.
8.De acuerdo con tal definición, el software es "libre" si garantiza las siguientes
libertades:[1]
• Libertad 0: la libertad de usar el programa, con cualquier propósito.
• Libertad 1: la libertad de estudiar cómo funciona el programa y modificarlo,
adaptándolo a tus necesidades.
• Libertad 2: la libertad de distribuir copias del programa, con lo cual puedes ayudar
a tu prójimo.
• Libertad 3: la libertad de mejorar el programa y hacer públicas esas mejoras a los
demás, de modo que toda la comunidad se beneficie.
Las libertades 1 y 3 requieren acceso al código fuente porque estudiar y modificar
software sin su código fuente es muy poco viable.