Solo una pregunta rápida, pero ¿por qué hay tantos sistemas de archivos que todavía compiten y están en uso hoy? (ntfs, fat32, ext3 (ffs), etc.)
Parece que los diseñadores de sistemas de archivos podrían ponerse de acuerdo sobre los mejores aspectos de cada tipo de sistema e implementar un "mejor" sistema de archivos, ¿no? Solo una idea, ya que estos sistemas de archivos han existido por un tiempo, y debería ser al menos algo evidente cuáles tienen buenas cualidades sobre los demás, y podríamos combinar lo bueno en cada uno y crear un sistema definitivo que sea mucho mejor
standards
file-systems
standardization
Templario oscuro
fuente
fuente
Respuestas:
Pensemos en los detalles aquí por un momento, usando ejemplos que ha citado:
ntfs: propiedad de Microsoft. Cualquiera que no sea Microsoft no puede usar esto, por lo tanto, tendría que usar / crear algo diferente. Ahora, si usted es Microsoft, desea usar esto sobre FAT debido a los problemas del próximo punto.
fat32 - No es lo suficientemente moderno. El tamaño máximo del archivo es de 4 GB. La búsqueda de entrada de directorio es O (n). La tabla de asignación es una lista vinculada, en lugar de algo más eficiente como un mapa de bits de asignación (donde es muy rápido encontrar espacio libre contiguo). No admite permisos. No admite enlaces duros o enlaces simbólicos. No es compatible con el diario.
ext3: esta fue una extensión de ext2 principalmente para soportar el registro en diario.
Entonces, parece que hay algunas razones:
Un sistema de archivos anterior carece de algo. En el caso de FAT, le falta mucho: tanto en términos de (1) características como (2) rendimiento. En el caso de ext2, no tenía actualizaciones por diario, por lo que la recuperación de un bloqueo tomó más tiempo.
Un sistema de archivos existente probablemente funcionaría, pero no es suyo. (por ejemplo, NTFS si no eres Microsoft). En este caso, realmente no tienes más remedio que inventar el tuyo.
fuente
Respuesta corta: una talla no sirve para todos.
Hay compensaciones. Por ejemplo, si desea un FS registrado, paga (eficiencia, complejidad, etc.), pero obtiene algo de él. Algunos no sienten la necesidad de un FS registrado y no quieren pagarlo, otros sí. Lo mismo con otras "características" de la FS.
fuente
Nunca puede haber un "mejor" de nada porque hay muchas opiniones sobre lo que es "mejor". La decisión es específica para las necesidades y limitaciones del usuario. Los diseños siempre se basan en su capacidad para ajustarse a las restricciones.
Un teléfono móvil básico necesita almacenar unos cientos de contactos, historial de mensajes de texto y algunas aplicaciones pequeñas. ¿Su sistema de archivos debe admitir una estructura de directorio jerárquico en unidades de varios terabytes en una configuración RAID? ¿Hay suficiente RAM en el dispositivo para ejecutar dicho sistema de archivos? ¿El sistema de archivos necesita ACL complejas? Probablemente no, para todas estas preguntas, por lo que bastaría con un sistema de archivos simple que consuma recursos.
Las empresas también desarrollarán diferentes productos para mantener una ventaja competitiva. Por ejemplo, Apple promociona la capacidad de su sistema de archivos HFS + para rastrear qué archivos han cambiado recientemente para que las copias de seguridad sean rápidas. Por otro lado, los controladores para un sistema de archivos de disquete (FAT) pueden caber en unos pocos KB de memoria.
fuente
Demasiado depende de lo que quieras optimizar.
Considere FAT por un momento: su soporte para nombres largos de archivo es muy complejo (por decirlo bien), y la búsqueda a través de archivos en un directorio es lineal, por lo que se ralentiza muy rápidamente si un directorio contiene muchos archivos. Al mismo tiempo, tiene un mínimo de metadatos para que la velocidad de escritura sin procesar sea muy buena, y dado que es tan simple sobre todo, el código para implementarlo puede ser bastante pequeño.
Algo como ext2 o ext3 agrega muchas características y capacidades que simplemente faltan en FAT. La búsqueda de archivos también es bastante más rápida. Al mismo tiempo, la velocidad de escritura sin procesar es probablemente un poco más lenta, y el código para implementar el sistema de archivos es, sin duda, mucho más grande.
fuente
Supongamos que no hubo compensaciones, y los diseñadores de sistemas de archivos implementaron un "mejor" sistema de archivos, libre de preocupaciones de patentes, y lanzado como BSD / GPL de doble licencia para que MS y Debian lo aceptaran por igual. ¿Qué te hace pensar que los otros sistemas de archivos desaparecerían de la noche a la mañana?
No creo que nadie haya usado FAT32 en un nuevo disco duro durante 10 años, pero aún persiste como el estándar de facto para formatear unidades USB, tarjetas SD, etc. Los fabricantes de cámaras y teléfonos móviles han probado y probado el firmware para usarlo. Los aficionados a Arduino tienen bibliotecas estables para usarlo. Todos van a necesitar grandes incentivos para cambiar.
Y luego tiene los problemas de compatibilidad con sistemas operativos más antiguos (especialmente Windows, cuyos usuarios no querrán instalar nuevos controladores de sistema de archivos).
fuente
Como suele suceder en la informática, la respuesta es (a) debido a circunstancias históricas y la necesidad de mantener la compatibilidad con versiones anteriores y (b) porque algunos métodos son más adecuados para algunas tareas que otras.
En (a) debe recordar que la "unidad de Winchester" - tengo la edad suficiente para recordar que se llama así - (lo que el resto del mundo llama un "disco duro") solo ha existido durante aproximadamente la mitad del tiempo de la computación electrónica e incluso entonces no ha sido accesible para la mayoría de los usuarios ni siquiera por ese tiempo por razones de costo. El sistema de archivos FAT funcionó bien en disquetes y también en los discos duros pequeños originales, ya que era razonablemente eficiente y requería una baja sobrecarga. Una vez que comenzó a usarse, y su uso se extendió ampliamente porque es fácil de implementar, los fabricantes no pudieron decirles a sus usuarios que sus datos anteriores eran repentinamente inválidos.
Del mismo modo, para los usuarios de Linux, digamos, un controlador NTFS estable tardó mucho en llegar, por lo que mantener los dispositivos formateados como FAT significaba que podían leerse y escribirse en múltiples sistemas.
En (b): piense en las diferencias entre un sistema que, por ejemplo, almacena miles de millones de registros de bases de datos basados en texto y uno que almacena archivos multimedia de DVD. Para la base de datos, cada registro podría ser muy pequeño, tal vez solo 30 o 40 bytes y, ciertamente, un sistema de archivos que asignó un 'segmento' completo (sin embargo, desea definir eso) del disco es probable que sea un desperdicio de espacio en disco. No es así con los DVD: es probable que los 'segmentos' más grandes (dentro de lo razonable, obviamente) sean altamente eficientes en términos de espacio.
Entonces, diferentes sistemas de archivos están diseñados para diferentes propósitos.
fuente
Otro ejemplo más de por qué nunca puede haber un sistema de archivos perfecto para todos: los HDD y SSD tienen características de acceso de lectura / escritura muy diferentes. Un sistema de archivos optimizado para SSD probablemente funcionaría mejor fragmentando archivos como locos pero con cada fragmento del tamaño de página del SSD en sí; esto funcionaría terriblemente en un disco duro. Un sistema de archivos optimizado para HDD intenta mantener los archivos lo más fragmentados posible e incluso coloca los archivos de uso frecuente en el área "activa" en la parte externa de la bandeja que gira más rápido; estas características no ayudarían en absoluto a las velocidades de lectura de SSD, y ponen una gran carga en cómo se escriben.
fuente
Creo que falta un hecho muy importante. La mayoría de las veces los programadores tienden a pensar que su forma de hacer algo es superior a todas las otras formas y, por lo tanto, miran un diseño de Sistema de archivos y presentan problemas y soluciones que parecen ser más generales, elegantes, rápidos, correctos ... Y si este sentimiento es lo suficientemente fuerte, son libres de construir su propio sistema de archivos.
Esto lleva a la competencia, la fragmentación, la confusión y espero que al final mejores soluciones y más opciones para elegir una solución adecuada para usted.
fuente
Aquí hay otro ejemplo concreto de por qué necesitaría un sistema de archivos separado o ampliar la funcionalidad de un FS existente.
fuente
En su lista, menciona un antiguo sistema de archivos utilizado porque no hay uno mejor disponible, sin embargo, es rápido.
Hay otros sistemas de archivos. Escuché que el sistema de archivos de Google es principalmente para duplicación / redundancia rápida si un disco duro o servidor se cae. Recuerdo haber oído hablar de otro sistema de archivos hecho para muchos archivos pequeños y para ser utilizado en un sistema para muchas solicitudes de archivos pequeños (miniaturas).
Esencialmente tienen objetivos diferentes y pueden ser de propiedad frente al código abierto.
fuente
Creo que ZFS (uso de Solaris en el sistema Sun [ahora Oracle]) es LA solución para el sistema de archivos.
Desafortunadamente, Oracle cierra OpenSolaris para el descubridor y lo prueba.
ZFS es de código abierto, algunos Linux están tratando de integrarlo, busque en Wikipedia más información.
fuente