miércoles, 4 de diciembre de 2013

Manejos del sistema de Archivos, discos y otros dispositivos

TIPOS ARCHIVOS SOPORTADOS POR LINUX

ISO9660: Sistema de archivos para CD-ROM
MINIX: Este sistema de archivos se emplea para disquetes.
FAT: El sistema de archivos originalmente utilizado por DOS. FAT 12, FAT16, FAT32.
VFAT: FAT virtual Soporte para nombres de archivo largos dentro del sistema de archivos FAT.
UFS: Empleado por BSD, SunOS y NeXTstep. Sólo soportado en modo de sólo lectura.
NTFS: Sistema de archivos Microsoft Windows NT, sólo lectura.
Ext2,3: Sistemas de archivos Linux originales. Ext3 incluye soporte de journaling (registro por diario).
XFS: Sistema de archivos de journaling de SGI.
JFS: Sistema de archivos de journaling de IBM.
ReiserFS: Sistema de archivos de journaling de Hans Reiser.
swap : Las particiones swap se usan para soportar memoria virtual

Comando mount y umount en Linux:
En los sistemas Linux podemos montar o desmontar un dispositivo manualmente por medio de comando los comandos que utilizaremos en este caso son los comando mount para montar el dispositivo y el comando umount para desmontarlo, el manejo que se le debe dar al comando es el siguiente:
para montar el dispositivo simplemente damos el comando mount + el nombre del comando + la dirección donde lo vamos a montar seria algo así:
mount /dev/sdb1 /media/Leonardo
Para saber cual es el nombre des dispositivo que vamos a montar o a desmontar damos el comando dmesg el cual nos permitirá ver es estado del sistema y este nos informara que dispositivos nuevos se han incluido en el sistema.
Para desmontar un dispositivo simplemente damos el comando umount  + el nombre del dispositivo
umount /dev/nombre del dispositivo ejm sdb1

Particiones de disco duro:
Como mínimo en un disco debe de haber una partición primaria y como máximo puede haber cuatro particiones primarias ó tres primarias y una extendida, no puede haber más de una partición extendida en un mismo disco duro.
Dentro de una partición extendida puede haber todas las particiones lógicas que queramos.
Cada partición puede contener un sistema de archivos diferentes.
Un sistema de archivos establece los mecanismos para acceder a los datos que contiene y permite o no el acceso a dichos datos en determinadas circunstancias y en caso de alguna inconsistencia posibilita medios para su restauración.
A la acción de crear un sistema de ficheros dentro de una partición se le llama también formatear la partición.

La nomenclatura para identificar las particiones es diferente en Windows y en Linux. En Windows las unidades se identifican con letras, por ejemplo:


Primer disco duro (IDE, SCSI ó SATA)


C: (primera partición del primer disco duro IDE)
D: (segunda partición del primer disco duro IDE)


Segundo disco duro (IDE ó SCSI ó SATA)


E: (primera partición del segundo disco duro IDE)
F: (segunda partición del segundo disco duro IDE)


En Linux se representan de la siguiente manera:


hda (primer disco duro IDE).


hda1 (primera partición del primer disco duro IDE).
hda2 (segunda partición del primer disco duro IDE).
hda5 (primera partición lógica de una partición extendida del primer disco duro IDE)


hdb (segundo disco duro IDE).


hdb1 (primera partición del segundo disco duro IDE).
hdb2 (segunda partición del segundo disco duro IDE).
hdb5 (primera partición lógica de una partición extendida del segundo disco duro IDE)


Discos SCSI ó SATA.


sda (primer disco duro SCSI)


sda1 (primera partición del primer disco SCSI).
sda2 (segunda partición del primer disco SCSI).
sda5 (primera partición lógica del primer disco duro SCSI)


sdb (segundo disco duro SCSI)

Formatear particiones (después de particionar con cfdisk)

Básicas
Una partición tiene que tener un sistema de archivos. Linux sabe como usar varios sistemas de archivos. Hay Ext3, Ext2, ReiserFs y por los más experimentados el XFS y JFS. Ext2 es útil como una formato de almacenamiento en vista de que hay una interprete disponible para Windows para intercambiar datos. [Linux puede leer y escribir en sistemas FAT.]

Para uso normal recomendamos el sistema de archivos ext3, que es la sistema de archivos pre-seleccionada par sidux, que es bien mantenida.
Formatear

Después de cerrar el cfdisk regresamos a la consola. Para formatear, tiene que ser raíz (root). Para formatear la partición root “/” y/o home, en este ejemplo hdb1, entramos: (si esta en una instalación sobre el DD tiene que entrar el clave de raíz (root) aquí):

su
mkfs -t ext3 /dev/hdb1

Le hará una pregunta, que se contesta con “yes” si esta seguro que ha escogido la partición correcto.

Cuando termina el comando, le dará una aviso, que el formateo ext3 fue exitosamente escrito al disco. Si no veas eso, probablemente algo fue malo en el particionamiento con cfdisk, o el hdb1 no es una partición de Linux. En este caso, puede chequear con:

fdisk -l /dev/hdb

Si algo es equivocado, quizás tendrás que particionar de nueva.

Si fue exitoso el formateo, repita el mismo procedimiento para la partición de /home, si deseas una separado.

Últimamente, formateamos la partición de intercambio (swap), en este ejemplo, el hdb3:

mkswap /dev/hdb3

después de eso:

swapon /dev/hdb3

Entonces verificamos, si el swap esta reconocido, entrando en una consola:

swapon -s

y el swap nuevamente montado debe ser reconocido ahora, en nuestro caso como:
Nombre de archivo     Tipo (Type)     Tamaño           Utilizado         Prioridad
        /dev/hdb3              partición          995988            248632            -1

Si el swap es reconocido correctamente, entramos:

swapoff -a y rearrancar.

Sistema de ficheros:
En primer lugar vamos a definir un sistema de ficheros como la organización lógica de un dispositivo que nos permite almacenar y recuperar información en forma de fichero. Existen diversos tipos de sistemas de ficheros, es decir diferentes formas de organizar la información en un dispositivo, normalmente discos. Entre los más habituales tenemos:
    ext2, ext3 Es el sistema de ficheros nativo de Linux. Se organiza en un superbloque, i-nodos y área de datos. Este tipo de sistema de ficheros admite características multiusuario para indicar los permisos y la propiedad de ficheros y directorios.
    vfat 12, 16 y 32 Es el sistema de ficheros usados por la gama baja de las plataformas win32. No admite características multiusuario como propiedad de ficheros. Estos tipos de sistemas de ficheros se basan en un directorio y una tabla de localización que dependiendo del tamaño de cada elemento se denomina FAT 12, 16 o 32. Linux los admite sin ningún problema, aunque siempre es preferible usar ext2.
    iso9660Es el sistema de ficheros propio de los CDROM.
    msdos Análogo a los sistemas FAT, aunque sólo admite ficheros con nombre 8+3.




lunes, 2 de diciembre de 2013

Operacion del sistema operativo multiusuario sobre Linux


Opera el sistema operativo Multiusuario considerando los aspectos funcionales del sistema informatico
8 Noviembre - 12 Diciembre 35%


Introducción Sistema Operativo Linux:

Linux es un núcleo libre de sistema operativo (también suele referirse al núcleo como kernel) basado en Unix.4 Es uno de los principales ejemplos de software libre y de código abierto.5 Linux está licenciado bajo la GPL v2 y está desarrollado por colaboradores de todo el mundo. El desarrollo del día a día tiene lugar en la Linux Kernel Mailing List Archive
El núcleo Linux fue concebido por el entonces estudiante de ciencias de la computación finlandés Linus Torvalds en 1991. Linux consiguió rápidamente desarrolladores y usuarios que adoptaron códigos de otros proyectos de software libre para usarlo con el nuevo sistema operativo.7 El núcleo Linux ha recibido contribuciones de miles de programadores de todo el mundo.8 Normalmente Linux se utiliza junto a un empaquetado de software, llamado distribución Linux y servidores.

Sistema de ficheros de Linux:

En primer lugar vamos a definir un sistema de ficheros como la organización lógica de un dispositivo que nos permite almacenar y recuperar información en forma de fichero. Existen diversos tipos de sistemas de ficheros, es decir diferentes formas de organizar la información en un dispositivo, normalmente discos. Entre los más habituales tenemos:
·         *ext2, ext3 Es el sistema de ficheros nativo de Linux. Se organiza en un superbloque, i-nodos y área de datos. Este tipo de sistema de ficheros admite características multiusuario para indicar los permisos y la propiedad de ficheros y directorios.
·         *vfat 12, 16 y 32 Es el sistema de ficheros usados por la gama baja de las plataformas win32. No admite características multiusuario como propiedad de ficheros. Estos tipos de sistemas de ficheros se basan en un directorio y una tabla de localización que dependiendo del tamaño de cada elemento se denomina FAT 12, 16 o 32. Linux los admite sin ningún problema, aunque siempre es preferible usar ext2.
·          *iso9660Es el sistema de ficheros propio de los CDROM.
·         *msdos Análogo a los sistemas FAT, aunque sólo admite ficheros con nombre 8+3.

Interprete de comandos Linux Shell

El intérprete de comandos es la interfaz entre el usuario y el sistema operativo. Por esta razón, se le da el nombre inglés "shell", que significa "caparazón".
Por lo tanto, la shell actúa como un intermediario entre el sistema operativo y el usuario gracias a líneas de comando que este último introduce. Su función es la de leer la línea de comandos, interpretar su significado, llevar a cabo el comando y después arrojar el resultado por medio de las salidas.


Principales ordenes de Linux:
ls : Listar archivos y directorios
cp : Copiar archivos y directorios
pwd : Mostrar el nombre del directorio de trabajo actual
cd : Cambiar de directorio
sort : Ordenar ficheros
mkdir : Crear directorios
touch : Crear o actualizar ficheros
rm : Borrar archivos y/o directorios
rmdir : Borrar directorios vacios
mv : Mover o renombrar archivos
more : Muestra ficheros página a página
less : Muestra Ficheros página a página
cat : Mostrar ficheros de forma continua
head : Ver el inicio de un archivo
tail : Ver las últimas líneas de un archivo
find : Buscar archivos
grep : Buscar el patrón pasado como argumento en uno o más archivos
wc : Calcular la cantidad de cadenas y palabras en archivos
ln : Crea enlace entre ficheros

Establece un buen entorno de trabajo mediante la creación de dos nuevos ficheros de inicio para el intérprete de comandos bash. Estando en el sistema como usuario lfs, ejecuta los siguientes comandos para crear un .bash_profile nuevo:  

Cuando entras como usuario lfs el intérprete de comandos inicial es un intérprete de ingreso que lee el /etc/profile de tu anfitrión (que posiblemente contenga algunos ajustes de variables de entorno) y luego lee .bash_profile. El comando exec env -i.../bin/bash del fichero .bash_profile sustituye el intérprete de comandos en ejecución por uno nuevo con un entorno completamente vacío, excepto por las variables HOME, TERM y PS1. Esto asegura que en el entorno de construcción no aparezcan variables de entorno indeseadas o dañinas procedentes del sistema anfitrión. La técnica aquí usada consigue el objetivo de asegurar un entorno limpio.
La nueva instancia del intérprete comandos es un intérprete de no ingreso que no lee los ficheros /etc/profile o .bash_profile, pero en su lugar lee el fichero .bashrc. Crea ahora el fichero .bashrc

Cuando entras como usuario lfs el intérprete de comandos inicial es un intérprete de ingreso que lee el /etc/profile de tu anfitrión (que posiblemente contenga algunos ajustes de variables de entorno) y luego lee .bash_profile. El comando exec env -i.../bin/bash del fichero .bash_profile sustituye el intérprete de comandos en ejecución por uno nuevo con un entorno completamente vacío, excepto por las variables HOME, TERM y PS1. Esto asegura que en el entorno de construcción no aparezcan variables de entorno indeseadas o dañinas procedentes del sistema anfitrión. La técnica aquí usada consigue el objetivo de asegurar un entorno limpio.
La nueva instancia del intérprete comandos es un intérprete de no ingreso que no lee los ficheros /etc/profile o .bash_profile, pero en su lugar lee el fichero .bashrc. Crea ahora el fichero .bashrc

El comando set +h desactiva la función de tablas de dispersión (hash) de bash. Normalmente, esta función es muy útil: bash usa una tabla de dispersión para recordar la ruta completa de los ejecutables, evitando búsquedas reiteradas en el PATH para encontrar el mismo binario. Sin embargo, las nuevas herramientas deberían utilizarse a medida que son instaladas. Al desactivar esta característica, el intérprete de comandos siempre buscará en el PATH cuando deba ejecutarse un programa. Por tanto, el intérprete de comandos encontrará las herramientas recién compiladas en $LFS/tools tan pronto como estén disponibles, sin recordar una anterior versión del mismo programa en una ubicación diferente.  

Entorno gráfico:

Una de las opciones más interesantes que he encontrado en Linux es la posibilidad de hacer las tareas, instalar, ejecutar algún programa, hacer alguna función, ect. de dos maneras. La primera y más complicada seria con la consola de comandos, escribiendo líneas de comandos para llevar a cabo alguna funciona. 

Y la segunda haciendo uso de los Entornos gráficos de Linux. En Linux puedes elegir que entorno gráfico utilizar. Cada entorno gráfico tiene un diseño y unas características diferentes las cuales hacen que puedas elegir uno u otro dependiendo de para que lo vayas a utilizar y también tu gusto personal.  





Procesos de Linux:


El hecho de que el sistema operativo sea multitarea implica que podamos ejecutar más de un programa a al vez. Un proceso noe s más que un programa o aplicación cargado en memoria y ejecutándose. Aunque nuestro ordenador sólo disponga de una CPU, el sistema operativo se encarga de repartir el tiempo de procesamiento de la misma para que varios procesos puedan ir ejecutando sus operaciones, dando la sensación de una ejecución paralela.

Para identificar de forma inequívoca cada proceso, el núcleo del sistema les asigna un número llamado PID (Process IDentification). Aunque podríamos pensar que sólo con el nombre ya tendríamos suficiente para identificarlo, es imprescindible tener el PID ya que podemos ejecutar un proceso tantas veces como queramos (tendríamos varias instancias del mismo proceso, pero cada una con un PID distinto).
                                                                                                                        
Tareas programadas en linux

Linux tiene un demonio cron que normalmente se ejecuta en el arranque de linux. Este demonio despierta cada minuto, mira si tiene que ejecutar alguna tarea, la ejecuta y se duerme. Si queremos que algún comando o tarea se ejecute automáticamente cada cierto tiempo, la forma de hacerlo es indicándole a este demonio que lo haga.
Hay varios ficheros en el sistema operativo y para cada ususario en el que este demonio busca tareas para ejecutar. Uno de ellos es /etc./crontab. El formato de este fichero es
minuto hora dia_del_mes mes dia_de_la_semana usuario comando
Donde minuto, hora, dia_del_mes, mes y dia_de_la_semana son lo que parecen, a qué hora, minut, etc se debe ejecutar el comando. En estos campos se pueden poner comodines y hay varios formatos. Por ejemplo, un * en minuto es en todos los minutos.
* 4 * * *    significa todos los minutos de las cuatro de la madrugada, todos los días, todos los meses. Es decir, se ejecuta 60 veces a las 4:00 am, 4:01 am, ... 4:59 am y ya no más hasta el día siguiente.
También se pueden poner rangos o valores discretos, así
10,20,30 * * * * significa todos los días a todas las horas en los minutos 10, 20 y 30, es decir, a las 0:10 am, 0:20 am, 0:30 am, 1:10 am, 1:20 am,  etc, etc.
*/15 10-14 * * * significa cada 15 minutos entre las 10 am y las 2 pm (las 14).
y así un largo etcétera.