Se ha creado una cuenta Twitter que publica las entradas de este blog, para acceder a ella pulsa en Cuenta Twitter asociada a Amicorum Concilium
Para publicar en tu cuenta twitter una referencia a una entrada de este blog, pulsa en boton twitter (t) que hay al final de cada entrada.

lunes, 17 de octubre de 2011

En memoria de Dennis Ritchie

El pasado 12 de octubre moría Dennis Ritchie, uno de los más grandes programadores, creador del lenguaje C y junto con otros, del sistema operativo Unix.

He leído varias veces su libro El lenguaje de programación C, escrito junto con otro de los grandes, Brian W. Kernighan, auténtica biblia del programador, en donde de modo claro, breve y elegante, se exponen muchos ejemplos para facilitar la comprensión del lenguaje y de la programación en general. El estilo del texto ha influído en toda una generación, en la cual me incluyo.

Lo que pretendo en estas notas es recordarlo comentando una de sus aportaciones al sistema Unix. En este sistema, a cada archivo ordinario hay asociados una serie de permisos, agrupados en tres bloques de tres cada uno, en total, 9 bits. Cada uno de los tres bits significa lo siguiente:

  • Bit 1º, permiso de lectura. Si es 1, el archivo se puede leer, en caso contrario, es decir, si vale 0, el archivo no se puede leer.
  • Bit 2º, permiso de escritura. Si es 1, el archivo se puede modificar, en caso contrario, no.
  • Bit 3º, permiso de ejecución. Si es 1, el archivo se puede ejecutar, en caso contrario, no.

El bloque primero son los permisos del usuario, el bloque segundo los del grupo y el bloque tercero, los de los demás. Lo habitual es que un archivo ordinario, no programa, sea de la forma: rw- r-- r--. El guión - indica que el bit vale 0. El primer bloque rw- son los del usuario, el cual puede leer y modificar el archivo, pero no ejecutarlo. El segundo bloque r-- es el grupo del usuario, los cuales pueden leer el archivo pero no modificarlo ni ejecutarlo, y por último, el tercer bloque, el de los demás, r--, con idénticas posibilidades al grupo.

Hay un usuario en el sistema, de nombre root, al que todas estas cosas no le afectan. Puede leer, modificar y borrar cualquier archivo, independientemente de los permisos que tenga asignados. Es una especie de Gran hermano, cuya misión es el mantenimiento del sistema. El poder de root es enorme, razón por la cual, su responsabilidad también lo es, ya que puede inutilizar el sistema con una mala gestión. Sin embargo, un usuario normal, puede originar un destrozo en su espacio, pero no en el resto.

Vista la introducción, vayamos al grano. En el archivo /etc/shadow se encuentran las contraseñas encriptadas de los usuarios (en el Unix original, se encontraban en /etc/passwd). Es un archivo de texto normal y corriente, con la información organizada en columnas. Su propietario es root, y como es evidente, nadie, salvo él puede modificar su contenido. En efecto, lo listamos:

pedro@servidor2:~> ls -al /etc/shadow

-rw-r----- 1 root shadow 665 oct 7 13:39 /etc/shadow
Esto origina un problema: ¿qué ocurre si un determinado usuario quiere modificar su contraseña?. La solución es, aparentemente trivial, en concreto, mediante el programa passwd se le pide al usuario que escriba la vieja contraseña, con lo cual nos aseguramos que el auténtico dueño no se ha ido a tomar un café, y el compañero de la mesa de al lado, le quiere gastar una broma. Después la nueva un par de veces para evitar errores al teclear y finalmente se sustituye la antigua entrada en /etc/shadow por la nueva. Y aquí está el problema, ya que esto obliga a modificar el archivo, es decir, a escribir en él, lo cual el sistema no lo permite debido a la restricción de escritura antes comentada.

En conclusión, si quiero cambiar mi contraseña, no puedo, ya que eso implica modificar un archivo sobre el cual no tengo permiso.

Dennis Ritchie solucionó el problema (hasta patentó la idea) creando un bit adicional a cualquier programa, de forma que si está activado, cualquier usuario que ejecute dicho programa adquiere momentáneamente los derechos del propietario del programa, en este caso root, y sólo mientras el programa se mantiene en ejecución. Como el propietario del programa passwd es root, cualquier persona que quiera cambiar su contraseña mediante el programa anterior, se convierte en root, con lo cual puede modificar el contenido del archivo y lograr su propósito.

Como es evidente, esto origina un grave peligro, ya que si el programa no funciona bien, puede dañar al sistema, razón por la cual, este tipo de programas deben estar muy depurados para evitar conflictos.

Por último, veamos un listado de dos programas, el primero es el familiar grep y el segundo passwd, donde observamos la diferencia entre uno y otro:

 pedro@servidor2:~> ls -al /bin/grep
-rwxr-xr-x 1 root root 130664 feb 18 2011 /bin/grep

pedro@servidor2:~> ls -al /usr/bin/passwd
-rwsr-xr-x 1 root shadow 81856 feb 19 2011 /usr/bin/passwd

En grep, el tercer bit comenzando por la izquierda es x, mientras que en passwd, este mismo bit es s, lo cual nos indica lo explicado anteriormente.

Pedro González


Conferencia en El Ateneo

viernes, 7 de octubre de 2011

Las matemáticas (y la ciencia) que es ¿creación o descubrimiento?

Acabo de leer el libro "La poesía de los números. El rol de la belleza en matemáticas" de Antonio J. Durán, y me ha gustado mucho por lo que os recomiendo que por 10€ lo pidáis en cualquier quiosco de prensa, pues salió el pasado día 18 de Septiembre en la colección "el mundo es matemática" que publica semanalmente ELPAIS todos los domingos.

Hoy os voy a exponer un tema: Las matemáticas (y la ciencia) que es ¿creación o descubrimiento?

Este tema lo trata el libro en la pág. 26, del que saco el siguiente extracto:

".. quizás son mayoría los que sostienen que el termino "creadores" no debería aplicarse a los científicos en general, y a los matemáticos en particular. Por ejemplo, Fernando Savater en el libro Las preguntas de la vida en la pág. 236 escribe: "Decimos que es creador quien fabrica algo que sin él nunca hubiera llegado a ser, el que trae algo al mundo - grande o pequeño - que sin él nunca hubiera podría haber existido precisamente de ese modo y no de otro más o menos parecido". Así, Fleming no "inventó" la penicilina sino que la "descubrió" ..."

"En el hecho científico hay, sin embargo, dos planos: uno es lo descubierto - ya sea un teorema, una ley universal -  y otro es la forma en que se hace o se justifica el descubrimiento. Sin duda, por "lo descubierto" parece más apropiado calificar al científico de "descubridor". Pero ocurre a veces que cabe aplicarle a un científico la calificación de "creador" por la forma en que hizo o justificó su descubrimiento".

Otro día os hablare sobre la ciencia y la belleza: En la revista Physics World se hizo una encuesta sobre cual consideraban el experimento más bello de la física de todos los tiempos, entendiendo por bello aquel que para su demostración exigiera el menor número de elementos posibles y produjera a su vez resultados sorprendentes.

Emilio Jiménez

¿Ha llegado nuestro cerebro al límite de su posible desarrollo?

El número de Septiembre de Investigación y Ciencia contiene el artículo “Física de la inteligencia” de Douglas Fox en el que dice:
Puede que la evolución haya desarrollado nuestro cerebro hasta el límite permitido por las leyes de la física.
Para justificar esta hipótesis el autor argumenta:
Al doblar el espesor de un axón, el gasto energético se duplica, pero la velocidad de los impulsos aumenta solo en un 40 por ciento. Al final, al incrementar el tamaño del cerebro, el volumen de la materia blanca (los axones) crece más deprisa que el de la materia gris (el soma de las neuronas, que contiene el núcleo de la célula). Dicho de otro modo, cuanto mas grande es un cerebro, mayor es la fracción de su volumen dedicada al cableado y menor la encargada de calcular. Ello surgiere que, a la larga, un cerebro demasiado grande sería inviable.
Juan Rojas

jueves, 6 de octubre de 2011

El agua de los océanos proviene de cometas del cinturón de Kuiper

El cinturón de Kuiper es una región del sistema solar situada a una distancia entre 30 y 50 veces la distancia Tierra-Sol, donde orbitan cuerpos celestes de variados tamaños constituidos en gran parte por compuestos volátiles (principalmente metano, amoniaco y agua) congelados. Por choques e interacciones entre ellos, algunos cuerpos adquieren órbitas elípticas y se acercan al sol cortando las órbitas de los demás planetas. Al aproximarse al Sol los componentes volátiles se evaporan y forman un halo característico. Son los cometas.

La Tierra se formó por impactos de asteroides y cometas hace 4.500 millones de años y en su origen fue una bola incandescente que se enfrió poco a poco. Durante esa fase caliente el agua adquirida quedó siempre en la atmósfera en forma gaseosa y en su mayoría escapó de la gravedad del planeta. Por esa razón, el agua de nuestros océanos debe provenir de impactos posteriores a la fase caliente.

Hasta ahora se habían hecho estudios detallados de la composición de 5 cometas, pero ninguno proveniente del cinturón de Kuiper sino de la Nube de Oort, una región 10.000 veces mas lejana. Los análisis revelaban que la proporción de agua pesada era el doble de la proporción encontrada en los océanos terrestres. En la molécula de agua pesada uno de los átomos de hidrógeno se ha sustituido por un átomo de su isótopo deuterio (que es más pesado).

De estos análisis se deducía que el agua terrestre no podía provenir en su totalidad de cometas de la Nube de Oort y que la máxima contribución de estos cometas debía ser de alrededor del 10%. Además se suponía que, por su mayor proximidad al Sol, la proporción de agua pesada en los cometas del cinturón de Kuiper debía ser todavía mayor por lo que se descartaba a estos cometas como origen del agua terrestre. La suposición se basa en la observación de que los cuerpos mas densos están mas cerca del sol que los menos densos. Con estos datos, el origen de los océanos terrestres era un misterio.

Pero recientemente, el telescopio orbital Herschel (de la NASA) ha hecho, por fin, un análisis detallado del vapor de agua del cometa Hartley 2, proveniente del cinturón de Kuiper y los científicos se han llevado la sorpresa de que, contra todo pronóstico, el agua de ese cometa tiene la misma "firma química" que el agua que tenemos en La Tierra. Encontraron que la proporción de agua pesada era idéntica a la proporción que tiene el agua de nuestro planeta, abriendo así las puertas a la comprensión del origen de nuestros océanos.

Más información sobre este tema se puede conseguir en la siguiente página de la NASA:
http://www.nasa.gov/mission_pages/herschel/news/herschel20111005.html

Juan Rojas