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.
Buen artículo
(Puntos:1)Un amigo se ha leído el libro (yo estoy esperando a que acaben los exámenes para cogerlo) pero de tu texto me surge una duda: ¿por qué sendmail es basura?
No estoy muy metido en el tema de servidores de correo, he montado un postfix y poco más, pero siendo sendmail el estándar durante muchos años, me extraña esa afirmación, ¿podrías darme algunos motivos?
Buen artículo, ya tengo ganas de leer el libro... XD
¿Por qué es malo el superusuario?
(Puntos:1)( http://aparatos.blogspot.com/ | Última bitácora: Miércoles, 22 Julio de 2009, 06:44h )
Pero por no quedarme con la duda... Dices: "se señala como una falencia el hecho de que exista un cuenta de superusuario". ¿Y por qué? ¿Qué alternativas hay al superusuario?
Sendmail fue y será siempre basura
(Puntos:3, Inspirado)Ahí he dejado de leer.
puntos de vista
(Puntos:1)( http://dfmf.uned.es/~osotolongo | Última bitácora: Lunes, 22 Septiembre de 2003, 10:33h )
Yo ni siquiera comparto la opinion de los autores, pero me parece un buen libro. Siempre es bueno ver otros puntos de vista. ;-)
Living your life is a task so difficult, it has never been attempted before.
otra opinión
(Puntos:1)( http://www.angelfire.com/co2/muzaraque/index.html | Última bitácora: Domingo, 02 Noviembre de 2008, 19:37h )
No he leido el libro, tengo cosas mas interesantes que hacer que leer un libro dedicado a criticar el diseño de unix, 25 años despues de ser hecho.
Vamos como decir que los cazas de la WWII están mal diseñados y que el Eurocaza2000 es infinitamente mejor ¡¡¡¡¡han pasado 50 años!!! ¡¡¡por dios!!!
¿para que $oñ$ harían los romanos acueductos pudiendo usar vasos comunicantes?