Re: [escepticos] Lenguajes de programación (era: No pienses en un elefante)

Borja Marcos BORJAMAR en SARENET.ES
Jue Ago 23 09:45:51 WEST 2012


On 23 Aug 2012, at 10:16, Tei <oscar.vives en gmail.com> wrote:

>> Y un videojuego no es un sistema operativo.
>> 
> 
> Tienen cosas en comun.

Pocas. 

>>> - Porque las librerias estan pensadas para C/C++ y tienen bindings
>>> para C/C++ y estan testeadas para C/C++.  Si quieres otro lenguaje, te
>>> pelearas con los bindings, bugs que nadie ha visto antes, y el diseño
>>> de la libreria no sera completamente adecuado para tu lenguaje.
>> 
>> Que sí, pero por motivos históricos y malas decisiones.
> 
> Tendrian todo el sentido en su momento y contexto, y no estoy seguro
> de que si no se volvieran a repetir las mismas circunstancias si
> hariamos algo distinto.

Y ojo, creo que C es una excelente herramienta para el propósito para el que se diseñó.

>> Eso no quiere decir que tengas que usar C. Crearte tu esquema para planificar tareas en absoluto implica que estés haciendo un sistema operativo, por la sencilla razón de que no estás accediendo directamente a registros de E/S, tablas de memoria virtual, etc, operaciones en las que, como explico en otro mensaje, sí necesitas tener la certeza de una correspondencia biunívoca entre los datos que maneja tu programa y su representación en la memoria o los registros del procesador.
> 
> Los juegos son los primeros programas que venian equipados con drivers
> especiales para acceder a la memoria en modo flat, cuando el resto
> pedia memoria al sistema operativo.
> 
> Muchos juegos no piden continuamente memoria al sistema operativo,
> porque esto seria lento. Piden un bloque grande de memoria, y tienen
> su propio gestor de memoria, el cual esta escrito para ser eficiente
> en velocidad. Seguramente esperan a cambiar de nivel o similar para
> hacer una desfragmentacion de este
> bloque de memoria.

Sí, pero eso no tiene ningún misterio. Yo lo he tenido que hacer montones de veces para mejorar el rendimiento en sistemas en tiempo real. Obviamente un esquema de gestión de memoria dinámica de propósito general no se adapta al cien por cien a cualquier situación.

> Casi todos los juegos del mundo crean su propio interfaz de usuario desde cero.

Eso no es un sistema operativo :)

> Muchos juegos tienen un diseño de disco virtual, donde los ficheros
> estan dentro de ficheros grandes de datos.  Un  europe.dat en un juego
> suele ser una "imagen de disco" dentro de la cual hay un monton de
> ficheros.  Los juegos virtualizan un disco usando uno o varios
> columenes de estos.  Estos volumenes tienen como versiones primitivas
> (optimizadas para velocidad) de FAT.

Y eso es una tontería que han hecho por uno de los siguientes motivos:

- Evitar que los usuarios cojan los archivos gráficos de los monigotes del juego y los usen por ahí

- Evitar el engorro de que la instalación maneje centenares de archivos

- Evitar que los usuarios modifiquen cosas del juego

Ahora, ¿eficiencia? Ni de coña, y especialmente en un sistema operativo moderno.








Borja.



Más información sobre la lista de distribución Escepticos