Introducción a Linux

Clase 04 de Mayo de 2009

Introduccion a Linux

Basado en el kernel de Linux podemos encontrar diferentes sistemas operativos como BSD, Solaris, Mac y etc. Debemos tener en cuenta que el kernel de Linux por si mismo no es un sistema operativo sino que junto con los controladores, programas y demás es el sistema operativo propiamente dicho.

gNewSense es el sistema operativo usado por Richard Stallman basado en el kernel de Linux, pero íntegramente elaborado con software libre y basado en licencia GPL que especifica que se puede distribuir, crear y modificar en base a que los productos derivados continúen con la licencia GPL. Hay que tener en cuenta que hay distribuciones de Linux que en parte de su código fuente tienen parte que es privativa firmada en base a un acuerdo NDA (Non disclosser agreement) en la que el fabricante privativo pone su código fuente en el kernel pero nadie mas tendría acceso a el. Hay otro tipo de códigos denominado “Blob” que es una parte del código (ya compilado y funcional) que aparece dentro del kernel pero del cual no se tiene un código fuente y no se conoce su funcionamiento.

OpenBSD también trata en lo posible de no integrar en su código fuente NDA y/o Blob’s respaldándose en los usuarios que hacen presión para que las empresas publiquen su código fuente bajo el acuerdo de que los desarrolladores de BSD hacen los propios drivers basándose en mapas de las tarjetas privativas. En contraste FreeBSD integra en su código Blob’s y NDA’s para agregar las funciones necesarias para que el usuario se sienta a gusto.

Linux tiene dos formas básicas para usar el sistema operativo las cuales son: X (entorno grafico o GUI) y el modo consola. Cuando estamos en este ultimo debemos tener un interprete de comandos (shell) que es el `programa que permite interpretar comandos y ejecutarlos. El prompt es el modo de trabajo que en Unix la fase mas básica es cuando se encuentra en $, y modo root es cuando se encuentra en #. Shell es el intérprete de comandos del cual existen varios tipos como: sh, csh, bash, ksh, ash, tcsh. De los cuales el más evolucionado es el Bash aunque BSD considera que el mejor es Ksh.

Entornos de escritorio, son los manejadores de ventanas que permiten la interacción entre el usuario y el sistema operativo. Dentro de los cuales existen varios como Gnome, KDE, Xfce, Enlightment, etc. Hay que tener en cuenta que cuando abrimos una consola en modo grafico se denomina terminal y cuando solo abrimos la consola estamos en un modo Consola original.

También hay que tener en cuenta que cada proyecto de kernel se divide en ramas, las cuales son:

Alpha o experimental: Es cuando se comienza a desarrollar la idea, se numeran de la forma 0.X donde x es un numero del 0 al 8.

Beta: fase de pruebas donde personas llamadas “betatesters”, utilizan el programa para buscarle errores ya que si es el mismo desarrollador el que lo prueba, no le encontraría tantos errores y se numera de la forma 0.9.X donde x va del 0 al 9.

Es de anotar que por lo general las versiones impares son inestables o beta ya que los desarrolladores sacan las versiones impares como finales y luego de eso comienzan el proceso de desarrrollo de la nueva version. Ej: Firefox 2 es estable, Firefox 3, es una version estable para los usuarios pero beta para los desarrolladores en la cual puliran su producto para que la version 4 sea lo mejor posible.

Stable: Es cuando la empresa considera que ya esta listo y lo saca a producción.

Parches o Service Packs: Son las actualizaciones que se hacen a la versión final en la cual luego de su lanzamiento se encontraron errores.

HCL: Hardware Compatibility List, son las listas de compatibilidad de los dispositivos de hardware.

Sobre Hardware: hay que tener en cuenta que si tenemos un disco duro de acceso aleatorio, los datos se procesaran mas rápido ya que el procesador puede llegar al dato especificado sin hacer un recorrido completo del disco duro.

También es remarcable el hecho de que para que un computador funcione bien debe tener equilibrio entre memoria Ram, procesador y espacio de disco ya que si por ejemplo tenemos un procesador de buena velocidad pero la memoria Ram es pequeña no se lograra un buen rendimiento debido a que no habría espacio en Ram para almacenar las aplicaciones mientras se ejecutan.

Comandos básicos:

exit: para salir de cada fase en la que nos encontremos.

su: nos pasa a modo root o súper usuario.

uname –a: Informacion de la maquina.

ps: comando que permite ver los procesos en ejecución.
ps aux, permite ver todos los procesos del sistema.
ps aux | grep , busca el nombre del proceso especificado.
pstree: muestra los procesos indicando cual es padre de cada quien.
top: permite ver el estado del sistema

kill: sirve para terminar un proceso indicándole el PID de la forma kill
xkill: termina los procesos en modo grafico

Prioridades en linux, van de -20 a 20 donde – 20 es la mas alta.

renice permite cambiar la prioridad de los procesos

man: permite ver los manuales de los comandos en consola

history: muestra los ultimos comandos utilizados

Biografías recomendadas: Alan Cox (kernel 2.5), Marcelo Tosatti (kernel 2.4)

Estudiar tema sobre Copyright y anexar licencia a cada documento expuesto en el blog. Tomar como muestra los tutoriales de http://nonroot.blogspot.com

Crear un archivo de 100 lineas y 100 caracteres, ej:





Hasta 100
Etc

Encontrar donde se pueden usar los comandos que se vieron desde el entorno gráfico


About this entry