Es nada menos que Andrew S. Tanenbaum quien se hace esta pregunta en un artículo que publica este mes la revista Computer del IEEE.
En este trabajo Tanenbaum parece apostar por la resurrección de los microkernels, abandonados tiempo atrás por su bajo desempeño frente a los kernels monolíticos, reabriendo así un debate que alcanzó su punto álgido en 1992.
Coincide el artículo en el tiempo con las preocupantes declaraciones de Andrew Morton, responsable de las versiones de producción del kernel de Linux, que asegura que los bugs en la versión 2.6 aparecen mucho más rápido que sus soluciones.
¿Programas fiables? Hoy no
Envite8 Mayo 2006 - 9:46am
Cualquier programa que herede código con, digamos, cinco o diez años de antiguedad será (casi necesariamente) inseguro, con excepciones notables como el "¡Hola Mundo!". Ello se debe a que, simplemente, en esa época los analizadores de código eran lentos e ineficientes, y eso cuando se usaban. Ese código es hoy igual de inseguro que entonces, se hagan los esfuerzos que se hagan.
Hoy en día, un programa empezado desde cero puede hacerse casi seguro si se siguen unas normas básicas de programación defensiva desde la mismísima primera línea de código (y aún antes, desde su planificación). Y fíjense que aún así digo "casi".
No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a decirlo.
- Voltaire -
La pregunta correcta - en la práctica - sería...
El Nigromante7 Mayo 2006 - 8:50am
¿Se utiliza el modelo de desarrollo correcto (por ejemplo, en GNU/Linux)?
Por mi modesta experiencia con GNU/Linux (y otros S.O.s comerciales), parece que la aplicación de la ingeniería del software en este caso deja algo que desear.
La aportación estilo "hobby" de miles de desarrolladores por todo el mundo está muy bien, pero llegados a cierta complejidad, hay que sistematizar al máximo el proceso de desarrollo de software.
Yo he detectado "bugs" en aplicaciones GNU/Linux que demuestran que los desarrolladores no han realizado un mínimo plan de pruebas, de las funcionalidades más basicas del programa. En algunos casos fallaba la propia instalación.
En estas condiciones, es difícil ponerse a hablar de otras cuestiones más profundas.
centrandose sólo en Linux...
alcojol7 Mayo 2006 - 11:27am
Yo hablaba de S.O.'s en general, doy por supuesto que en el desarrollo de S.O.s como Solaris utilizan metodologías de programación y no se dedican al code&fix, si ya hablamos concretamente de Linux eso puede ser un desmadre, no sé que tipo de procedimientos habrá que seguir para aportar algo a Linux oficialmente.
el saber nos hace libres
la pregunta correcta es...
alcojol6 Mayo 2006 - 3:59pm
¿podemos hacer programas fiables y seguros? La respuesta, en mi opinión es, ahora no, en un futuro sí. La informática es muy muy joven, pretender llegar en medio siglo a los niveles de madurez y seguridad de otros campos, como la arquitectura, que tienen miles de años de antigüedad es sencillamente absurdo.
Para asegurar que un programa es correcto habría que verificarlo matemáticamente, cosa que se puede hacer pero, no conozco a nadie que lo haga, ¿verifican formalmente el código del kernel Linux? Lo dudo, ni el de Linux ni el de ningún S.O., por una parte sería un trabajo descomunal, sobre todo teniendo en cuenta que para los S.O. se usan lenguajes operacionales, que multiplicaría el coste de producción, por otra parte pretender que algo tan complejo sea "fiable y seguro" simplemente a base de tests es poco menos que vivir en el mundo de Espinete y compañía.
el saber nos hace libres