2009-06-10 10 views
7

yo estaba viendo la WWDC 2009 Keynote y algo que alguien dijo acerca de Windows 7/Vista me tiene curiosa ..¿Cuál es el problema con las DLL y el Registro?

El orador afirmó que era 7 sigue siendo un sistema operativo pobres, ya que todavía utiliza las mismas tecnologías tales como DLL y la registro. ¿Cuán precisas son sus afirmaciones y qué tan diferente es OS X? Incluso os x tiene bibliotecas cargadas dinámicamente ¿no? Supongo que la cuestión del Registro podría tener algún peso ...

¿Alguien me puede explicar las diferencias en la estrategia de cada sistema operativo?

No estoy tratando de incitar a los fanboys aquí o nada, sólo quiero saber cómo ambos sistemas operativos frente a los problemas en general ..

Gracias,

kreb

+0

Así que, de todos modos, supongo que la pregunta sigue en pie ... Si dlls y registros son inferiores, ¿qué los hace? ¿Qué usa os x que es superior a dlls y registros, si lo que el vocero ha dicho es verdad? – krebstar

Respuesta

4

DLL

La principal diferencia entre OS X y Windows es que Windows históricamente trató de ahorrar espacio/memoria haciendo que todos comparten el código (es decir, instalar una DLL, cada uno puede utilizarlo). Apple está compilando estáticamente (bueno, no realmente, pero podría ser así) todas las bibliotecas que no son del sistema en cada aplicación. Desperdicia espacio/memoria de disco, pero hace que la implementación de la aplicación manera sea más fácil y no haya problemas de control de versiones.

Registro

OS X hace tienen un registro, que son archivos planos llamados simplemente plists, en lugar de un componente mágico que es sobre todo como un sistema de archivos, excepto cuando no lo es. El enfoque de Apple facilita la migración de configuraciones de una máquina a otra, mientras que el enfoque de Windows es más rápido en la memoria, y permite a las aplicaciones "mirar" fácilmente una clave sin tener un gran impacto (es decir, una aplicación cambia una tecla y la otra al instante lo sabe).

En conclusión

de lleno de ella El presentador principal, 10.6 es sobre todo el mismo código que 10,5, que era sobre todo el mismo código que 10.4 et al, al igual que Win7 es en su mayoría Vista, que es en su mayoría servidor '03, etc. Hay ahora código demasiado probado en un sistema operativo para descartarlo en cada lanzamiento, especialmente si realmente desea que las aplicaciones de sus clientes funcionen.

+0

Gracias, eso fue muy claro ... :) Aceptar esto como la mejor respuesta, aunque Barry Wark también es bueno ... – krebstar

+0

Es inexacto decir que todas las bibliotecas que no son del sistema están vinculadas estáticamente en la aplicación paquetes en OS X. Aunque los paquetes de aplicaciones pueden contener marcos (bibliotecas vinculadas dinámicamente), y algunos agrupan marcos que no son del sistema, también es posible instalar marcos en una carpeta Library/Frameworks de todo el sistema o del usuario donde se pueden usar por muchas aplicaciones. Las aplicaciones de OS X que no son arrastrables instalable (es decir, requieren un instalador completo) generalmente usan el instalador para instalar estos marcos. –

+0

Para todos los propósitos prácticos, las únicas personas que pueden crear marcos son Apple, o todas las aplicaciones se convierten en un archivo .pkg. –

-4

de DLL son malas variaciones de las librerías, ya que no pueden operar por sí mismas, para usarlas se llama (automáticamente) un ejecutable envoltorio adicional, lo que agrega una sobrecarga no requerida y hace que sea mucho más difícil determinar qué bibliotecas están realmente en uso. Otro defecto menos importante es la incapacidad de los sistemas para compartir verdaderamente una biblioteca. * Los sistemas nix evitan esto al tener bibliotecas en el nivel superior ejecutándose por sí mismas o bajo un envoltorio más grande (como kde-init), las bibliotecas pueden ser compartidas por cualquier aplicación, lo que significa que solo se requiere una copia de cada biblioteca, y puede matar en cualquier momento una sola biblioteca con facilidad según sea necesario.

El registro es una gran idea, excepto por el hecho de que se utiliza para tanto, casi cualquier cosa que instale usará el registro y un registro corrupto y hará que su sistema operativo sea casi completamente inútil hasta que se solucione. Esto se evita en los sistemas * nix al tener múltiples archivos diferentes para diferentes contenidos, los controladores se refieren a través del archivo de configuración de Xorg, las aplicaciones instaladas se escribirán en su propia base de datos y las claves o identificación se escribirán en un directorio, en lugar de un solo archivo de uso múltiple. Esto reduce la posibilidad de una falla grave y significa que en cualquier momento probablemente aún pueda reparar el sistema. Si Xorg se corrompe, simplemente reconfigúralo, si la base de datos de aplicaciones instalada se daña, puedes repararlo o reconstruirlo, y si un directorio de configuraciones individuales de las aplicaciones se daña solo necesitas reinstalar una aplicación (y la mayoría de las aplicaciones comerciales buenas deberían tener una forma de repararlas). esto de todos modos)

+0

Lo siento, pensé que era posible compartir archivos DLL? Hmm .. =/De todos modos, gracias por la respuesta :) – krebstar

+3

En realidad, el uso de archivos DLL no requiere ningún ejecutable contenedor, son utilizados directamente por las aplicaciones. Además, las aplicaciones pueden ciertamente compartir archivos DLL. Un ejemplo de uso compartido son los archivos DLL del sistema de Windows o .NET GAC. –

+0

Los comentarios aquí acerca de las DLL son muy incorrectos. Las DLL pueden (y a menudo son) completamente compartidas entre los procesos. – Foredecker

7

Por supuesto, ambos sistemas operativos tienen facilidades para usar archivos DLL (se llaman dylibs o Frameworks en OS X dependiendo de cómo están empaquetados) .dylibs se parecen mucho a las DLL: están dinámicamente vinculadas biblioteca y, como tal, puede haber múltiples versiones de ellos flotando alrededor. Los marcos, por otro lado, son realmente una estructura de directorios. Contienen bibliotecas vinculadas dinámicamente (potencialmente múltiples versiones de ellas), recursos, encabezados, documentación, etc. El enlazador dinámico en OS X maneja automáticamente la elección de la versión correcta de la biblioteca del marco para cada ejecutable. El sistema parece funcionar mejor que la administración de DLL de Windows, lo cual es bastante desordenado (por supuesto, el sistema de Windows está vinculado a problemas heredados que Apple dejó de lado cuando se movieron a OS X). Para ser justos, Unix ha tenido una solución a este problema durante mucho tiempo, al igual que el uso de enlaces simbólicos para vincular dylibs a su correcta implementación versionada, permitiendo múltiples versiones instaladas.

No existe un equivalente OS X del registro de Windows. Esto es bueno y malo. El lado bueno es que es mucho más difícil corromper un sistema OS X completo con un registro estropeado. En cambio, OS X almacena la configuración en muchos archivos separados, generalmente uno o más por aplicación, usuario o lo que sea. Estos archivos generalmente son un archivo formateado plist (un esquema XML que representa diccionarios, matrices y tipos primitivos).El lado malo es que, al conservar este legado de Unix-y, OS X no tiene las mismas herramientas über-admin que pueden agitar el registro y hacer todo tipo de cosas locas.

+0

+1 Buena respuesta gracias :) – krebstar

Cuestiones relacionadas