Publicidad

lunes, 15 de diciembre de 2008

sistema operativo Red Hat

hola compañeros esta ocasión de manera breve les comento sobre Red Hat


Red Hat es la compañía responsable de la creación y mantenimiento de una distribución del sistema operativo GNU/Linux que lleva el mismo nombre: Red Hat Enterprise Linux, y de otra más, Fedora. Así mismo, en el mundo del middleware patrocina jboss.org, y distribuye la versión profesional bajo la marca JBoss Enterprise.

Red Hat es famoso en todo el mundo por los diferentes esfuerzos orientados a apoyar el movimiento del Software libre. No sólo trabajan en el desarrollo de una de las distribuciones más populares de Linux, sino también en la comercialización de diferentes productos y servicios basados en software de código abierto. Asimismo, poseen una amplia infraestructura en la que se cuentan más de 2.000 empleados en 28 lugares del mundo.

Programadores empleados de Red Hat han desarrollado múltiples Paquetes de software libre, los cuales han beneficiado a toda la comunidad. Algunas de las contribuciones más notables han sido la creación de un sistema de empaquetación de software (RPM), y varias utilidades para la administración y configuración de equipos, como sndconfig o mouseconfig.

Algunas de las distribuciones basadas en RedHat Linux más importantes son: Mandriva Linux, Yellow Dog Linux (sólo para Power PC), y CentOS (compilada a partir de las fuentes de Red Hat).

sábado, 13 de diciembre de 2008

¿La PC te irrita los ojos?

Hola chavos sabían que con sólo dos horas seguidas frente a la máquina ya se pone en riesgo la salud visual. En este artículo hay algunos consejos para evitar males.

Distintos estudios científicos estiman que el 85% de las personas que trabajan diariamente con computadoras sufre del síndrome de visión de computadora (CVS, por sus siglas en inglés).
Se trata de un sobreesfuerzo de los ojos que provoca fatiga e irritación ocular, acompañado por dolores de cabeza, espalda y brazos. Realizar ejercicios para relajar la vista, cuidar el entorno y consultar al oftalmólogo con regularidad son los tres pilares para combatirlo.

Ojos lubricados, ojos protegidos

Una persona que trabaja con una PC realiza a diario entre 12 y 33 mil movimientos de cabeza y ojos, y sus pupilas reaccionan entre 4 y 17 mil veces. Para colmo de males, la exposición ante una pantalla provoca una disminución del parpadeo. Mientras que normalmente una persona pestañea unas 15 veces por minuto, al estar frente a la computadora (o el televisor) lo reduce de 5 a 7 veces.

El objetivo básico del parpadeo es mantener la humedad corneal. Sin esta lubricación, se producen irritaciones, sensación de arenilla y visión borrosa.
Pero con parpadear no alcanza para descansar la vista. Uno de los métodos fue bautizado por los estadounidenses como 20-20-20. Consiste en cada 20 minutos frente a la pantalla tomarse 20 segundos para mirar algo que esté a 20 pies (6 metros).

Otro ejercicio es sentarse derecho y mirar al frente, hacia el monitor. Después, sin mover la cabeza, desviar todo lo posible la mirada hacia la izquierda y luego hacia la derecha.
Atención con el entorno

Hay cuestiones básicas que se pueden adoptar en la oficina o en casa al momento de usar la PC.
La primera de ellas es colocar el monitor a una distancia de entre 55 y 70 centímetros de la cara, y con una leve inclinación hacia atrás.

Si la letra resulta muy pequeña o no se alcanza a leer claramente, lo conveniente es hacer zoom con el programa que se esté utilizando. De esta manera se evita inclinar el cuerpo hacia adelante y sumarle al potencial problema de la vista otro de la columna. Para los que tipean todo el día, es conveniente tener los papeles en un atril (las casas especializadas venden una especie de brazo con un broche) para no estar subiendo y bajando tanto la cabeza.

Por último, si el monitor es convexo, conviene colocarle un filtro antibrillo para evitar los reflejos. Tanto el protector como la pantalla deben estar siempre bien limpios.

Visitas al médico

Los especialistas aconsejan visitar al menos una vez al año al médico oftalmólogo, el único especialista acreditado para recetar anteojos con antirreflejo, gotas para evitar la resequedad o cualquier otro medicamento. Si la persona tiene además otros problemas visuales, la visita debe hacerse cada seis meses.
Bueno chavos ojala y pongan mas atención a su salud después de haber leído este artículo .
ATTE.
Antonio Viveros Balderas

Logitech presenta gameboard G13



Para los que nos gusta esto:D

El gameboard avanzado Logitech G13 incluye diseño de formas naturales, memoria integrada y retroiluminación personalizada.

Diario Ti: Logitech presentó el gameboard avanzado Logitech G13, teclado de juego híbrido diseñado para complementar teclado y mouse ofreciendo comodidad y control para jugar en una computadora Mac o PC.
“Si realmente te gustan los juegos, no hay mejor sensación que jugar con el gameboard G13 de tu lado", aseguró Rubén Mookerjee, director de Marketing de productos para juego de Logitech. “A diferencia de otros gameboards que se enfocan sólo en la programabilidad, el gameboard avanzado G13 incorpora los principios de nuestro diseño Comfort Wave".Con tres modos de juego, 25 teclas programables y un stick análogo que puede programarse, el gameboard G13 ofrece hasta 87 formas de controlar un juego (se requiere instalar el software). Y puede definir perfiles por botón para cada uno de los títulos favoritos.G13 también ofrece ajustes preconfigurados para muchos de los juegos más populares, incluyendo World of Warcraft: Burning Crusade, Lord of the Rings Online: Shadows of Angmar, Call of Duty 4: Modern Warfare y muchos otros.

viernes, 12 de diciembre de 2008

valgrind

Utilización de valgrind
Valgrind (www.valgrind.org) es una herramienta de SW libre que ayuda a detectar problemas de memoria.
Si queremos utilizar valgrind para detectar errores en nuestros programas debemos hacer lo siguiente:
• Compilar nuestro programa de la siguiente manera:
gcc -Wall -g fichero1.c fichero2.c -o miejecutable
• Ejecutar nuestro programa poniendo en línea de comandos:
valgrind --leak-check=full miejecutable param1 param2 ...
• Si nuestro programa tiene errores de memoria, valgrind nos mostrará las líneas donde ha detectado el error.


Ejemplo:
􀂾 Valgrind detecta zonas de memoria mal reservadas. Por ejemplo, imaginad que tenemos el programa siguiente en
un fichero llamado mio.c:
1. #include
2.
3. void testMem(int * a)
4. {
5. a[11]=0; //inicializar el elemento numero 11 del array (no esta reservada)
6. }
7.
8. int main(void)
9. {
10.
11. int *array;
12. array=malloc(10*sizeof(int)); //reservar un array de 10 enteros
13. testMem(array);
14. return 0; //no se ha liberado la memoria array)
15. }
y ejecutamos el programa con valgrind, nos mostrará el siguiente mensaje de error:
==12059== Invalid write of size 4
==12059== at 0x8048351: testMem (mio.c:5)
==12059== by 0x8048383: main (mio.c:13)
==12059== Address 0x401D054 is 4 bytes after a block of size 40 alloc'd
==12059== at 0x4004639: malloc (vg_replace_malloc.c:149)
==12059== by 0x8048372: main (mio.c:12)
significa que estamos escribiendo cuatro bytes en una zona de memoria inválida. Esto ocurre dentro de la función
testMem en la línea 5 de nuestro fichero mio.c, al que se llama desde el programa main de mio.c en la línea
13. Esta memoria se ha reservado con un malloc, dentro del programa main en la línea 12 del fichero mio.c.
􀂾 También, valgrind detecta memorias sin liberar. Por ejemplo, para nuestro programa mio.c, valgrind nos da:
==12087== malloc/free: in use at exit: 40 bytes in 1 blocks.
==12070== malloc/free: 1 allocs, 0 frees, 40 bytes allocated.
diciendo que hemos hecho una reserva de memoria (1 malloc en nuestro caso) y cero instrucciones de liberación
(0 free), es decir falta un free. Y al final mostrará:
==12087== 40 bytes in 1 blocks are definitely lost in loss record 1 of 1
==12087== at 0x4004639: malloc (vg_replace_malloc.c:149)
==12087== by 0x8048372: main (mio.c:12)
significa la memoria perdida (sin liberar) se ha reservado dentro del programa main en la línea 12 del mio.c.

jueves, 11 de diciembre de 2008

Depurador GDB

Hola que tal compañeros...como estamos trabajando con una práctica sobre el depurador de linux GDB...me hice a la tarea de buscar información sobre este depurador...

La información se me hace importante ya que en si podemos darnos cuenta las utilidades que se pueden realizar y los diferentes comandos de GDB...Saludos...

Yrvin Ossiel Dorantes Carreon

El proposito de un depurador como GDB es permitir al usuario ver lo que
está ocurriendo ‘‘dentro’’ de otro programa mientras que se está ejecu‐
tando — o lo que estaba haciendo en el momento que falló.

GDB puede hacer cuatro tipo de cosas (más otras cosas para dar soporte
a éstas) para ayudarte a capturar errores en el acto:

· Comenzar tu programa, especificando cualquier cosa que pueda
afectar a su comportamiento.

· Hacer que tu programa se pare al cumplirse las condiciones
especificadas.

· Examinar que ha pasado, cuando tu programa se ha parado.

· Cambiar cosas de tu programa, de tal manera que puedas experi‐
mentar corrigiendo los efectos de un fallo y continuar para des‐
cubrir otros.

Puedes usar GDB para depurar programas escritos en C, C++, y Modula-2.
El soporte para Fortran se añadirá cuando esté listo un compilador GNU
Fortran.

GDB se invoca con la orden de shell gdb. Una vez comenzado, lee
órdenes del terminal hasta que le dices que salga con la orden GDB
quit. Usando la orden help puedes obtener una ayuda directa del gdb.

Se puede ejecutar gdb sin argumentos ni opciones; pero la manera más
común de comenzar GDB es con uno o dos argumentos, especificando un
programa ejecutable con el argumento:

gdb programa

También puedes comenzar con un programa ejecutable y un fichero core
específico:

gdb programa core

Puedes, en su lugar, especificar un ID de proceso como segundo argu‐
mento, si quieres depurar un proceso en ejecución:

gdb programa 1234

ligaría GDB al proceso 1234 (al menos que también tengas un fichero
denominado ‘1234’; GDB busca un fichero core en primer lugar).

Aquí están las ordenes más frecuentemente necesitadas en GDB:

break [fichero:]función
Pone un punto de ruptura en función (en fichero).

run [arglist]
Comienza tu programa (con arglist, si se especifica).

bt Backtrace: muestra la pila del programa.

print expr
Muestra el valor de una expresión.

c Continua ejecutando tu programa (después de parar, p.e. en un
punto de ruptura).

next Ejecuta la siguiente línea del programa (después de parar); pasa
sobre cualquier llamada a función que apareciera en la línea.

step Ejecuta la siguiente línea del programa (despué de parar);
entrando en cualquier llamada a función que apareciera en la
línea.

help [nombre]
Muestra información sobre la orden GDB nombre, o información
general sobre como utilizar GDB.

quit Salir de GDB.

Para todos los detaller sobre GDB, véase Using GDB: A Guide to the GNU
Source-Level Debugger, by Richard M. Stallman and Roland H. Pesch. El
mismo texto está disponible en línea como la entrada gdb en el programa
info.

miércoles, 10 de diciembre de 2008

¿Qué significa vulnerabilidad?.

¿Qué significa vulnerabilidad?.
La vulnerabilidad es la incapacidad de resistencia cuando se presenta un fenómeno amenazante, o la incapacidad para reponerse después de que ha ocurrido un desastre.

Las 20 vulnerabilidades más críticas en Internet

1. Instalaciones por defecto de sistemas y aplicaciones
2. Cuentas sin contraseña o contraseñas débiles
3. Respaldos (backups) incompletos o inexistentes
4. Gran número de puertos abiertos
5. Insuficiente filtrado de los paquetes con direcciones de inicio y destino inadecuadas
6. Registro de eventos (logging) incompleto o inexistente
7. Programas CGI vulnerables
Vulnerabilidades más críticas en sistemas Windows8. Vulnerabilidad Unicode (Salto de directorio en servidores Web - Web Server Folder Traversal)
9. Desbordamiento de Buffer en extensiones ISAPI
10. Exploit para RDS del IIS (Servicios de información remota Microsoft)
11. NETBIOS - recursos compartidos en red no protegidos
12. Fuga de información a través de conexiones de tipo "sesión nula"
13. Hashing débil en SAM (LM hash)
Vulnerabilidades más críticas en sistemas Unix
14. Desbordamiento de Buffer en los servicios RPC
15. Vulnerabilidades en sendmail
16. Debilidades en BIND
17. Los comandos "r" (Los comandos "r" permiten acceder a sistemas remotos sin tener que introducir ninguna contraseña)
18. LPD (demonio del protocolo de impresión remota)
19. Sadmind y Mountd (Sadmind permite la administración remota de sistemas Solaris, proporcionando un interfaz gráfico para labores de administración de sistemas)
20. Nombres de comunidad SNMP por omisión

sábado, 6 de diciembre de 2008

OpenGL

hola compañeros esta ocasión les envio información de OpenGL espero sus comentarios acerca del mismo.

Open Graphics Library. Es un conjunto de especificaciones estándar que definen una API multilenguaje y multiplataforma para escribir aplicaciones o juegos que producen gráficos en 3D. Fue desarrollada originalmente por Silicon Graphics Incorporated (SGI).Ofrece al programador un API sencilla y estable para que pueda generar gráficos en 2D y 3D por hardware. Consiste en más de 250 funciones diferentes que pueden ser usadas para graficar complejos escenarios tridimensionales usando simples primitivas.Es muy popular en la industria de los videojuegos y es competencia directa (en plataformas Windows) del Direct3D desarrollado por Microsoft.OpenGL es compatible para múltiples plataformas como ser Windows, Unix (Linux, MacOS), Playstation 3, etc.

conceptos utilizados en la explicación anterior:

API: Interfaz de Programación de Aplicaciones). Grupo de rutinas (conformando una interfaz) que provee un sistema operativo, una aplicación o una biblioteca, que definen cómo invocar desde un programa un servicio que éstos prestan. En otras palabras, una API representa un interfaz de comunicación entre componentes software.
MULTIPLATAFORMA: Cross-platform en inglés. Que tiene la capacidad de soportar múltiples plataformas.Esto significa que el hardware o software que es multiplataforma tiene la característica de funcionar de forma similar en distintas plataformas (distintos sistemas operativos por ejemplo).
DIRECT3D: Un API, parte de DirectX, para la programación de gráficos 3D, facilitando el manejo y dibujo de elementos en tres dimensiones: líneas, polígonos, texturas, transparencias, etc. y permite aprovechar también una tarjeta aceleradora gráfica.Direct3D es utilizada por la mayoría de juegos 3D para el sistema operativo Windows.

crera una biblioteca dinaminca

Antes de crear una biblioteca dinámica debemos pensar si realmente será útil. Las bibliotecas dinámicas provocan una sobrecarga en el sistema debido a varios elementos:
La carga del programa se realiza en varios pasos, uno para el programa principal, mas uno por cada biblioteca dinámica que use dicho programa (veremos que si la biblioteca dinámica es apropiada, este último punto deja de ser un inconveniente y pasa a ser una ventaja)

Las bibliotecas dinámicas deben contener código reubicable, ya que la posición de carga dentro del espacio de direcciones virtuales del proceso no se sabrá hasta el momento de dicha carga. Esto obliga al compilador a reservar un registro para mantener la posición de carga de la biblioteca y por tanto tenemos un registro menos para el optimizador de código. Este caso es un mal menor, ya que la sobrecarga introducida por esta situación no representa mas de un 5% de sobrecarga en la mayoría de los casos.
Para que una biblioteca dinámica sea apropiada debe ser utilizada la mayor parte del tiempo por algún programa (esto evita el problema de cargar el texto de la biblioteca, ya que permanece cargada en memoria, tras la muerte del proceso que la usa al haber otros procesos usándola)
La biblioteca compartida se carga en memoria completa (no solo los módulos utilizados) así que para que sea util, debe serlo en su totalidad. No son buenas bibliotecas dinámicas aquellas donde solo se usa una funcion y el noventa por ciento de la biblioteca no se usa la mayor parte del tiempo.
Un buen ejemplo de biblioteca dinámica es la biblioteca estandar de C (la usan todos los programas escritos en C ;). Por termino medio todas las funciones se utilizan en uno u otro caso.
En una biblioteca estática suele importar poco incluir funciones cuyo uso sea infrecuente, siempre que dichas funciones ocupen un módulo propio, no serán enlazadas en aquellos programas que no las usen.
.

Que es y para que sirve el archivo Pagefile.sys

Hola compañeros hoy subo algo muy interesante sobre el archivo Pagefile,sys, este archivo es muy especial y lo usa Windows para almacenar temporalmente datos los cuales son intercambiados entre la memoria RAM y éste, con el fin de disponer de un bloque mas grande de memoria, a ésta se le conoce como MEMORIA VIRTUAL. El nombre del archivo es pagefile.sys y se crea en el momento de la instalación de Windows en la unidad raíz (normalmente C:\) donde se encuentra el boot del sistema y sus atributos son de oculto. El archivo pagefile.sys normalmente no se debería poder ver en el explorador de Windows, a menos que hayas desactivado la opción "Ocultar archivos protegidos del sistema".El tamaño de archivo pagefile.sys normalmente es 1.5 veces mas grande que la memoria RAM del sistema. (Por ejemplo, si tienes 1GB de RAM, el archivo debería pesar algo como 1.5GB, si tienes 256MB, el archivo debería pesar algo como 384B, y así, etc.)

En la página donde encontré esta información hay más cosas interesantes sobre el archivo pagefile.sys como:
- Como optimizar y cual es la mejor ubicacion del archivo Pagefile.sys
- Como crear ó establecer un archivo pagefile.sys?
- Mi sistema puede funcionar sin un archivo pagefile.sys?
- Puedo ver el tamaño que está usando actualmente el archivo pagefile.sys?
- etc..

Para mas información visiten esta página web.
http://www.wilkinsonpc.com.co/free/articulos/archivo-pagefile-sys.html

Nuevo fallo global. Esta vez el TCP/IP


HOla de neuvo, ya casi terminando el curso, es vueno estar enterados de las noticias más importantes de la computación e informática a nivel mundial, y encontré este artículo muy interesante, sobre todo en el ámbito de redes, algunos vimos algo en Porgramación Avanzada, y los que ya llevan redes sabrán de la importancia


En general parece que ha llegado el tiempo de levantar la alfombra y ver toda la basura que tenia la red, puesto que otra vulnerabilidad global le ha sido descubierta. Como ya ocurriera con el fallo del DNS, una nueva amenaza se ha encontrado en los protocolos TCP/IP que se utilizan en la comunicación de internet, en la forma de múltiples vulnerabilidades que pueden llegar a provocar en masivas denegaciones de servicio.
Los descubridores son Robert E. Lee y Jack Louis, quienes haciendo pruebas de seguridad para
Outpost24, se dieron cuenta de unos extraños comportamientos con las pérdidas de paquetes de información, similares a los de una denegación de servicios. Según estos investigadores, el parcheado de este problema requiere la coordinación con los proveedores de sistemas operativos, firewalls, la Web y dispositivos habilitados.


El artículo está en inglés, les traduzco parte de él, ahi me corrigen si algo está mal traducido jeje:


"Dos investigadores en Suecia han encontrado múltiples fallas en la pila TCP que podría dar lugar a masivos de denegación de servicio si los ataques de explotación. En la actualidad no hay ninguna solución y no hay parches disponibles. La pila TCP define un conjunto de normas por las que un ordenador puede comunicarse a través de cualquier red. Robert E. Lee, Oficial Jefe de Seguridad de Outpost24, le dijo a CNET Noticias ", los vendedores que se encuentran en conversaciones con parecen estar tomando en serio la amenaza". El descubrimiento sigue una prueba con un puerto de escáner llamado UnicornScan, que Lee y superior de la seguridad investigador Jack Louis creado. La herramienta se utiliza para la evaluación de la vulnerabilidad y pruebas de penetración en Outpost24. Lee le dijo a un podcast sueco que, cuando no podían obtener un escaneo de puertos hecho lo suficientemente pronto, se decidió trasladar la pila TCP en el programa para que sea más distribuido. Fue entonces cuando Louis comenzó a notar un comportamiento extraño. "Jack encontrado algunas anomalías en las máquinas que se dejan de funcionar en algunas circunstancias muy concretas, mientras que está siendo escaneado," dijo Lee noticias CNET. Uno de los comportamientos experimentado la pérdida de paquetes es que los paquetes sólo siguieron tratando y tratando y tratando, la creación, más o menos, una denegación de servicio (DoS) en esa máquina. No parece ser sólo una vulnerabilidad, sino varias, de acuerdo con Robert Hansen, el primero que escribí sobre este viernes. Hansen dice que el potencial de estas vulnerabilidades, como él lo entiende, si explota, podría resultar en un gran daño. Y la fijación que requieren la coordinación con los proveedores de sistemas operativos, firewalls, la Web y dispositivos habilitados. Para explotar los defectos, para ver si el TCP vulnerabilidades son reales, Lee y Louis creado un programa llamado "sockstress" intencionalmente hizo que algunas cosas mal con el protocolo TCP / IP apretón de manos proceso. Sockstress El programa fue muy eficaz en la producción de ataques de DoS. La pareja no tiene planes para liberar sockstress."

y para que sigan leyendo el artículo está en el siguiente link


http://news.cnet.com/8301-1009_3-10056759-83.html?tag=newsEditorsPicksArea.0


Windows 7 Beta para principios de 2009


Ola que tal compañeros un saludo de antemano..aqui les dejo esta mequeñainformación sobre otro sistema que se esta construyendo para windows...saludos



Rumores corren por la red acerca del nuevo Windows 7, el siguiente sistema operativo sucesor de Windows Vista. Al parecer ya tendríamos una versión Beta disponible en principios de este próximo año 2009, según informó Keith Combs de Technet. Si quieres ser una de esas priemeras personas en probar este nuevo sistema de MS podrás adquirir el DVD con la Beta el próximo 13 de Enero de 2009 en la Microsoft Developer’s Conference (conferencia de desarrolladores MS) que se llevará a cabo conjuntamente en las ciudades de Minneapolis y Chicago.
Seguramente durante el año 2009 podremos ver versiones de prueba, mientras que la versión final podríamos esperarla para principios de 2010.

lunes, 1 de diciembre de 2008

Cahé de Inodos ....

Algo de in formacion espero sea de interes:



Caché de Inodos e Interacción con DcacheEn orden para soportar múltiples sistemas de archivos, Linux contiene un nivel especial de interfaces del núcleo llamado VFS (Interruptor de Sistemas de Ficheros Virtuales). Esto es muy similar a la interfaz vnode/vfs encontrada en los derivados de SVR4 (originalmente venían de BSD y de las implementaciones originales de Sun).

La antememoria de inodos de Linux es implementada en un simple fichero, fs/inode.c, el cual consiste de 977 lineas de código. Es interesante notar que no se han realizado muchos cambios en él durante los últimos 5-7 años: uno todavía puede reconocer algún código comparando la última version con, digamos, 1.3.42.

La estructura de la antememoria de inodos Linux es como sigue:


Una tabla global hash, inode_hashtable, donde cada inodo es ordenado por el valor del puntero del superbloque y el número de inodo de 32bit. Los inodos sin un superbloque (inode->i_sb
NULL) son añadidos a la lista doblemente enlazada encabezada por anon_hash_chain en su lugar. Ejemplos de inodos anónimos son los conectores creados por net/socket.c:sock_alloc(), llamado por fs/inode.c:get_empty_inode().
Una lista global del tipo "en_uso" (inode_in_use), la cual contiene los inodos válidos con i_count>0 y i_nlink>0. Los inodos nuevamente asignados por get_empty_inode() y get_new_inode() son añadidos a la lista inode_in_use.
Una lista global del tipo "sin_usar" (inode_unused), la cual contiene los inodos válidos con i_count = 0.
Una lista por cada superbloque del tipo "sucia" (sb->s_dirty) que contiene los inodos válidos con i_count>0, i_nlink>0 y i_state & I_DIRTY. Cuando el inodo es marcado como sucio, es añadido a la lista sb->s_dirty si el está también ordenado. Manteniendo una lista sucia por superbloque de inodos nos permite rápidamente sincronizar los inodos.
Una antememoria propia de inodos - una antememoria SLAB llamada inode_cachep. Tal como los objetos inodos son asignados como libres, ellos son tomados y devueltos a esta antememoria SLAB.

Los tipos de listas son sujetadas desde inode->i_list, la tabla hash desde inode->i_hash. Cada inodo puede estar en una tabla hash y en uno, y en sólo uno, tipo de lista (en_uso, sin_usar o sucia).

Todas estas listas están protegidas por un spinlock simple: inode_lock.

El subsistema de caché de inodos es inicializado cuando la función inode_init() es llamada desde init/main.c:start_kernel(). La función es marcada como init, lo que significa que el código será lanzado posteriormente. Se le pasa un argumento simple - el número de páginas físicas en el sistema. Esto es por lo que la antememoria de inodos puede configurarse ella misma dependiendo de cuanta memoria está disponible, esto es, crea una tabla hash más grande si hay suficiente memoria.

Las únicas estadísticas de información sobre la antememoria de inodos es el número de inodos sin usar, almacenados en inodes_stat.nr_unused y accesibles por los programas de usuario a través de los archivos /proc/sys/fs/inode-nr y /proc/sys/fs/inode-state.

Podemos examinar una de las listas desde gdb en un núcleo en funcionamiento de esta forma:



--------------------------------------------------------------------------------
(gdb) printf "%d\n", (unsigned long)(&((struct inode *)0)->i_list)
8
(gdb) p inode_unused
$34 = 0xdfa992a8
(gdb) p (struct list_head)inode_unused
$35 = {next = 0xdfa992a8, prev = 0xdfcdd5a8}
(gdb) p ((struct list_head)inode_unused).prev
$36 = (struct list_head *) 0xdfcdd5a8
(gdb) p (((struct list_head)inode_unused).prev)->prev
$37 = (struct list_head *) 0xdfb5a2e8
(gdb) set $i = (struct inode *)0xdfb5a2e0
(gdb) p $i->i_ino
$38 = 0x3bec7
(gdb) p $i->i_count
$39 = {counter = 0x0}


***************************************************
********Inodo***************(Wikipedia....
En informática, un inodo, nodo-i, nodo índice o i-node en inglés es una estructura de datos propia de los sistemas de archivos tradicionalmente empleados en los sistemas operativos tipo UNIX como es el caso de Linux. Un inodo contiene las características (permisos, fechas, ubicación, pero NO el nombre) de un archivo regular, directorio, o cualquier otro objeto que pueda contener el sistema de ficheros.

El término "inodo" refiere generalmente a inodos en discos (dispositivos en modo bloque) que almacenan archivos regulares, directorios, y enlaces simbólicos. El concepto es particularmente importante para la recuperación de los sistemas de archivos dañados.

Cada inodo queda identificado por un número entero, único dentro del sistema de ficheros, y los directorios recogen una lista de parejas formadas por un número de inodo y nombre identificativo que permite acceder al archivo en cuestión: cada archivo tiene un único inodo, pero puede tener más de un nombre en distintos o incluso en el mismo directorio para facilitar su localización.

Denominacion;
No existe una explicación clara para la denominación "inodo". Dennis Ritchie, precursor de UNIX lo explicó así:

'Realmente, tampoco lo sé. Era simplemente el nombre que comenzamos a utilizar. "Índice" es lo mejor que se me ocurre, debido a la estructura algo inusual de un sistema de ficheros que almacenaba la información del acceso a los archivos como una lista plana en disco, dejando al margen toda la información jerárquica de los directorios. Así el número "i'" es un índice sobre la lista, el nodo "i" es el elemento seleccionado de la lista. (En la primera edición del manual se empleó la notación "i-nodo"; el guión fue desapareciendo poco a poco).'