[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

Re: [Ayuda] HURD



El vie, 01-11-2002 a las 23:42, Antonio Cardenas escribió:
> La programación orientada a objetos surgió como una
> necesidad al desarrollarse programas cada vez mas
> grandes, como fue el caso de la antigua programación
> tipo espagueti que fue sustituida por la programación
> estructurada por ofrecer está muchas mas ventajas. De
> ahí el surgimiento del lenguaje C, el cual con la
> aparición de la programación orientada a objetos tuvo
> que emigrar a lo que hoy se conoce como C++. Es
> innegable todas las ventajas que la programación
> orientada a objetos ofrece sobre la programación
> estructurada. En cualquier buen libro de programación
> vienen explicadas todas las ventajas.

 Estoy de acuerdo. En cualquier libro de programacion de manufactura
relativamente reciente encontraras que la verdad de la vida es la
programacion orientada a objetos. Pero desafortunadamente, siempre
existe una diferencia entre el texto academico y la Vida Real(mr). Las
ventajas de C++ con respecto a C desaparecen porque en ambos tienes que
manejar apuntadores, y administrar la memoria sin utilizar un recolector
de basura. Las maravillosas ventajas de OOP (encapsulamiento,
polimorfismo, herencia, reuso de codigo) se esfuman cuando desbordas la
pila, o tienes fugas en la memoria, sin importar que haya sucedido en
una funcion, o en un constructor de clase. Combinado esto con algunos
'goto's, indispensables en ambos lenguajes, puedes hacer spaguetti
estructurado u orientado a objetos, a tu eleccion. Puedes solucionar
algunas cosas utilizando Objective-C, pero muchos ni siquiera lo han
escuchado mencionar. :-|

> El tener un kernel construido con programación
> orientada a objetos lo hace mas fácil de recibir
> mantenimiento y de hacerle modificaciones. También
> esto conlleva a una mayor capacidad de multihilado lo
> cual permite la construcción de clusters mas
> eficientes. También se tienen mas privilegios sin
> necesidad de ser root; es posible desarrollar y probar
> nuevos componentes del kernel sin necesidad de un
> reboot y sin interferir con otros usuarios.

 De verdad es mas facil depurar un nucleo orientado a objetos
multihilos? Como puedes determinar cual de los hilos fallo, a partir de
la informacion de volcado de memoria? Como puedes depurar un sistema, si
el objeto que administra la memoria muere, sin tener tiempo de notificar
(por paso de mensajes) al objeto que administra el sistema de archivos
para generar un volcado de memoria? Ojo, no estoy diciendo que sea
imposible, pero las soluciones para estos problemas no son triviales, y
no facilitan en nada el desarrollo de un nucleo de dichas
caracteristicas.
 Ahora con los clusters, Como incrementas su eficiencia con multihilos,
cuando el cuello de botella principal en un cluster es la comunicacion
entre los nodos?
 Y como último detalle: no es indispensable que tu nucleo sea orientado
a objetos para poder crear nuevas extensiones. En Linux, como en
cualquier otro sistema operativo moderno, puedes crear controladores sin
necesidad de reiniciar y/o interferir con otros usuarios. Y de cualquier
forma, hay modificaciones o extensiones que (por el momento), te forza a
reiniciar tu equipo. En este momento pienso en el administrador de
memoria, aqui se puede agregar otros mas.

> Este no es un proyecto nuevo, se inicio en 1983 (desde
> antes de Linux) y fue la primer idea de crear un
> sistema operativo completamente libre, lo que si es
> nuevo es que ya dejo de ser solo un proyecto, este
> kernel ya existe aunque aún está en pañales y le
> faltan años de desarrollo.

 Desafortunadamente, le falta mucho a HURD para convertirse en una
alternativa viable a cualquier otro sistema operativo que se encuentra
en produccion en estos dias. Las mismas dificultades que he mencionado
anteriormente hacen mas lento su desarrollo (no mas rapido, como
argumentas), y se vuelve tedioso trabajar con el. Toma en cuenta que
funcionara de maravilla cuando la plataforma que ofrece este madura,
pero esa plataforma ni siquiera esta completa en este momento.
 No quisiera ser ave de mal aguero, pero, si HURD llega a una
version 1.0, sera simplemente un juguete academico mas en desuso, como
Minix, o Amoeba.

> El kernel de Linux crece muy rápido, su tamaño en
> archivo tar.gz de la versión 1.0 apenas pasaba de 1
> MB,  la versión 1.2 ya era de 2.2 MB, la versión
> 2.0.29 ya fue de 5.8 MB, la versión 2.2.22 fue de 18.8
> MB y la versión 2.4.19 que es la última estable ya fue
> de 30.7 MB; actualmente se está trabajando en la
> 2.5.45 que lleva un tamaño de 36.4 MB pero ya
> descomprimido anda cerca de los 200 MB, trabajar con
> tanto código con solo programación estructurada se
> vuelve más y más tedioso a medida que el kernel crece,
> el que se pueda configurar el kernel de Linux por
> módulos alivia un poco el problema pero no lo
> soluciona. Esto es lo que hace atractivo al Kernel
> Hurd para el futuro. Será un kernel más poderoso y más
> fácil de depurar y actualizar.

  De verdad el tedio de programar estructuradamente impide el
desarrollo posterior? De verdad el hecho que el codigo sea escrito
en C es un problema para Linux? Yo diria que al contrario. En
realidad, la cantidad de personas que hace programacion estructurada
es mucho mayor que la que hace programacion orientada a objetos.
Y la cantidad de programadores que conocen C es mayor que la que
utiliza C++. Ahi Linux aprovecha una masa critica importante de
desarrolladores, que pueden entender, modificar y actualizar codigo
en este momento, no en algun futuro feliz donde todo se vuelva
mas facil.

> Es por lo anterior que el MIT se propuso hacer
> realidad el proyecto y los desarrolladores de Linux
> Debian lo están apoyando, si ya se tienen drivers
> hechos para Linux, no hace falta reinventar el hilo
> negro, solo hay que adaptarlos para Hurd en
> programación orientada a objetos.

 Cual es la ventaja REAL de cambiar un controlador para que funcione
con programacion orientada a objetos? Si le haces caso al paradigma de
programacion orientada a objetos, lo que realmente importa es tener una
interfaz sana para permitir que tu codigo se integre al resto del
proyecto, hacer transparente los recursos que se utilizaran en otras
partes del proyecto, y hacer opacos los metodos y funciones propios y
unicos de tu codigo. Y para hacer eso no necesitas C++, simplemente
saber escribir bien C.

> Cualquier modalidad de sexo torcido no tiene nada que
> ver aquí con Unix, el que hayas hecho ese comentario
> puede hacer hacer pensar a muchos en que existe un
> desequilibrio mental.
> Comprendo la pasión de muchos por Linux, yo también la
> tengo, pero no hay que estar cerrados en la idea de
> que no es superable.
> 
> http://www.gnu.ai.mit.edu/software/hurd/hurd.html

 De acuerdo: Linux debe ser superado. No me queda la menor duda. Pero no
he visto la menor pista para que HURD corresponda al siguiente paso
evolutivo de Linux en un corto o mediano plazo.

					Saludos
-- 
__(o< | Nombres/Names:        Cristian Othón  | cfuga en itam mx
\/|/  | Apellidos/Last Names: Martínez Vera   | http://cfuga.net/
/_/_  |                                       | http://linuxppp.com/
      |    "Pulchrum est paucorum hominum"    - Horace
_______________________________________________
Ayuda mailing list
Ayuda en linux org mx
Para salir de la lista: http://mail.linux.org.mx/mailman/listinfo/ayuda/



[Hilos de Discusión] [Fecha] [Tema] [Autor]