Historias
Slashboxes
Comentarios
 

Login Barrapunto

Login

[ Crear nueva cuenta ]

fmaresca (4107)

fmaresca
  (email no mostrado públicam.)
http://barrapunto.com/

Down Kill Up Publicidad

Bitácora de fmaresca (4107)

Lunes, 24 de Mayo 2004

Odio a Unix

07:53h.
Unix
Estuve leyendo el UNIX haters handbook. Aunque el libraco está muy desactualizado, realmente vale la pena.

Mas allá del valor histórico de algunas anécdotas(?) y haciendo un tanto la vista gorda a la ostentosa tendenciosidad de los autores, estos muchachos tienen razón. Antes de recolectar las primeras puteadas, me apuro a decir que no pienso como ellos, e incluso donde tengo puntos de acuerdo sobre las conclusiones, en general no estoy de acuerdo con las premisas. Por ejemplo: el capítulo acerca de Sendmail está de mas. Sendmail fue y será siempre basura, pero eso no es culpa de UNIX.

Esto que digo no pretende ser la crítica de un libro, solamente unas pocas reflexiones acerca de lo que esa obra postula.

Por ejemplo, el capítulo dedicado al sistema de archivos de UNIX, UFS, si bien tiene buenos argumentos en general, adolece del mismo defecto que el resto de la obra: omite inadvertida o deliberadamente decir lo obvio: si bien para la época UFS no era gran cosa, el hecho de que UNIX careciera de un sistema de archivos de tipo journaling no es culpa de UNIX, si no, en todo caso, de las compañias que no invirtieron en desarrollar tal sistema de archivos en UNIX. La prueba de esto es que unos pocos años después de publicado este libro, GNU/Linux, FreeBSD y otras encarnaciones de UNIX tenían sistemas de archivos journaling, lo que significa que no es una limitación del diseño de UNIX el que no lo haya tenido antes.

La premisa pricipal detrás de la obra es que UNIX es un virus, no un SO, por lo tanto se ha propagado de forma descontrolada por el mundo una vez que fugó de los Bell Labs. La segunda premisa es que la filosofía UNIX (o Bell Labs., o New Jersey) "Worst is Better"[1] triunfa (por su economía o por ecología) sobre la filosofía MIT (Massachusetts Institute of Technology) del "Right Thing"[2].
La primera premisa es indiscutible: se trata de un postulado mitad alegórico y mitad metafórico, por lo tanto no hay forma de probar que sea verdad o no.
En la segunda quizás haya algo de cierto, pero por lo menos es dudoso que UNIX (o Bell Labs.) tengan el orgullo de ser sus inventores: la industria de EEUU tiene una larga historia de "worst si better": casi cualquier producto industrial que en EEUU salió al mercado lo hizo exhibiendo unas características técnicas muy por debajo del estado del arte. Basta pensar en los automóviles, el sistema HI-FI o el VHS.

La obra propugna la idea de que UNIX es el peor SO del mundo, lo cual es, por lo menos, gracioso. Sin embargo, los autores la van desarrollando a lo largo de la obra apoyándose en problemas y fallas (de diseño o de implementación) reales. Esto no es sorprendente, ya que para la fecha de publicación del libro (1994) UNIX tenía 25 años de edad, y esos eran por entonces los 25 años de innovación tecnológica mas veloz de la Historia. No soy un conocedor profundo de SOs, y se que probablemente para 1992 habría varios SOs mejores que UNIX en muchos aspectos. Pero muy pocos lograron popularizarse. En parte porque en la década del '90 los mainframes comenzaron a ser desplazados en todos lados por redes de PCs: a principios de los '90 Novell Netware + DOS o Win3.1, y posteriormente Win 3.11 for WorkGroups empezaban a ser muy comunes en lugares donde antes habría un mainframe con terminales de texto; en parte gracias al relativo menor costo de la infraestructura. O sea, el modelo de negocio en el mundo de la informática estaba cambiando rápidamente, y pocos (tanto productos como empresas) lograron mantener la cabeza por encima del agua.
En ese contexto evolucionaron otros SOs. Windows y MacOS son quizás los dos mas populares SOs en uso en la actualidad en PCs y como clientes de redes corporativas. Esto hizo pensar a muchos que un SO como UNIX tenía los días contados, al mismo tiempo que los mainframes iban siendo desplazados de las salas de servidores. A nadie se le courrió (por un tiempo) que UNIX sería un SO operativo para una PC, a fin de cuentas, quién querría algo tan pesado y complejo en su XT o AT?
Como todo el mundo sabe, MS-DOS es un SO superior y moderno, absolutamente apropiado para una PC o una pequeña terminal en una red corporativa. Además, MS-DOS supera en todos los aspectos a UNIX, corrigiendo y mejorando las falencias de aquel, e introduciendo novedades impracticables para UNIX.
Sin embargo, UNIX resurge una y otra vez: hoy, diez años después de publicada la obra, UNIX tiene varias reencarnaciones vivas y en desarrollo permanente.

Por supuesto UNIX no es perfecto ni mucho menos. Pero "Those who don't understand UNIX are doomed to reinvent it, poorly..."[3]. Claramente, UNIX, aunque no tuvo un diseño extremadamente cuidadoso ni perfecto, actualmente es el producto de muchos años de evolución, a través de los cuales ha ido transformándose y adaptándose a los cambios del entorno. Hoy tiene muchas formas distintas, como FreeBSD, GNU/Linux y MacOsX, y es el punto de partida en el diseño y desarrollo de otros sistemas, como Plan9 e Inferno.

A lo largo de la obra se critica el modelo de desarrollo y diseño de Unix. Se critica la forma en que evolucionó, y se culpa a UNIX de decisiones no técnicas tomdas por las empresas e instituciones que sucesivamente tuvieron derechos de propiedad sobre el.
La evolución de UNIX es accidentada, algunas de sus características son deseables, otras no tanto. Durante veinte años no hubo normas escritas ni un standard que estableciera que y como hacer, y hasta la aparición de POSIX en 1986, casi todos los esfuerzos hechos para "mejorar" UNIX estaban fuertemente influenciados por marquetroides y gerentes que ni siquiera sabían usarlo. Es cierto que UNIX sufrió muchas modificaciones que no fueron siempre afortunadas, pero es injusto e impreciso culpar de eso al diseño del SO.
En varios párrafos se culpa a UNIX de "hacer desaparecer" los archivos de los ususarios, el correo, provocar pérdidas de dinero, congestionar los links, etc. Cuando casi todas esas calamidades en realidad se debieron a fallas en el software (lo que corre en espacio de usuario) y pocas veces por problemas del kernel, sistemáticamente se culpa al diseño de UNIX de todos los males. UNIX fué concebido como un SO de propósito general para minicomputadoras; el diseño del SO debía necesariamente ser lo suficientemente flexible como para ser considerado "multipropósito". La otra característica importante del diseño de UNIX fué la portabilidad: UNIX se desarrolló e implementó sobre una mini obsoleta y era necesario poder sacarlo de ahí cuanto antes, por lo tanto, UNIX debía ser portable. En esa época (1969) no existían los terminales gráficos ni las redes. El añadido de soporte para el protocolo TCP/IP como es sabido, duplicó el tamaño del kernel. X es una porquería (aunque es popular, no es el único sistema de gráficos en *NIX).

En el capítulo dedicado a la seguridad, se hace incapié en el pobre modelo de seguridad de UNIX; se hace burla del hecho de que AT&T haya patentado (o intentado patentar) el infame SETUID; se señala como una falencia el hecho de que exista un cuenta de superusuario; en fin, se detallan algunos de los conocidos problemas de seguridad que Unix ha sufrido a lo largo de su vida.
Muchos de estos problemas empezaron a hacer su aparición cuando las máquinas con UNIX comenzaron a conectarse en redes. Claramente, muchos de los problemas (por ejemplo, los relacionados con SETUID root) son difíciles de solucionar, o comprenden realizar modificaciones que tornan inutilizable una gran parte del software existente, llevando a serios problemas de compatibilidad.
No obstante, sería interesante que se nos explique por que, por ejemplo, la compañia cuyo servidor aloja el sitio web de este libro, y donde uno de sus autores trabaja ( o trabajaba), no ha logrado un SO operativo mejor en el aspecto de la seguridad que UNIX; por el contrario, aún disponiendo de la experiencia de UNIX en ese campo, y teniendo la posibilidad de empezar de cero conociendo los potenciales problemas, y algunas de las posibles soluciones, produce un conjunto de productos que adolece exactamente de los mismos problemas que UNIX, y agrega otros nuevos.
Por supuesto, no son los autores de este libro responsables de lo que Microsoft hace (creo), pero si de no tomar en cuenta que muchas de las cosas que critican (que odian) en UNIX también están presentes (a veces peor) en otro SOs, muchos de los cuales no tienen ni siquiera las razones históricas que UNIX tiene para ciertas cosas.

Ciertamente, el diseño original de UNIX no tenía en cuenta los cambios que se producirían. Es decir, con el tiempo fue sufriendo modificaciones que lo convirtieron en algo muy distinto de lo que originalmente fue. No mas ni menos que lo que ha ocurrido con otros muchos SOs.
En todo caso, el principal motivo por el cual UNIX ha recorrido el trayecto hasta acá durante estos 35 años es que en su diseño hay pocos condicionamientos, es decir, es versátil; el segundo motivo es que UNIX ha evolucionado en el mundo real para resolver problemas reales. Quizás no siempre con la mejor fortuna, UNIX ha demostrado que su potencial está mas allá de las expectativas, y cada avance e innovación tecnológica que se produce confirma lo acertado del diseño de UNIX.
UNIX no es perfecto, ya lo dije, pero va camino de serlo.

-----
1 - "Peor es Mejor".
2 - "Lo que está bien".
3 - "Aquellos que ignoren UNIX están condenados a reinventarlo, pobremente..." - Henry Spencer.

Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.