3 votos

¿Se sabe por qué el sistema de archivos de iOS distingue entre mayúsculas y minúsculas?

Desarrollando una aplicación para iOS, había una cosa que me volvía loco: ejecutando la misma aplicación que creaba los mismos archivos en la misma ruta, el simulador de iPhone funcionaba de forma correcta, mientras que un iPhone real no. Al final descubrí que había escrito mal un carácter (mayúscula en lugar de minúscula) y, en consecuencia, el iPhone creaba una carpeta que empezaba con un carácter en mayúscula, mientras que colocaba el archivo en una ruta con esa carpeta que empezaba con la versión en minúscula de ese carácter. Sin embargo, al simulador no le importaba esa diferencia. Supongo que eso se debía a que el simulador, al funcionar en un sistema que no distingue entre mayúsculas y minúsculas (OS X/mac OS), hereda su "insensibilidad a las mayúsculas", mientras que el iPhone (me parece) distingue nativamente entre mayúsculas y minúsculas.

¿Hay alguna explicación/documentación conocida por parte de Apple (u otras fuentes de confianza) sobre por qué el sistema de archivos de iOS distingue entre mayúsculas y minúsculas, dado que es un sistema operativo basado en uno que no distingue entre mayúsculas y minúsculas (OS X)?

1 votos

Creo que por el momento iOS y MacOS utilizan sistemas de archivos diferentes. Es de suponer que con el tiempo ambos usarán APFS. Hay algo de información en la sección de Implementación de developer.apple.com/library/content/documentation/

4 votos

La mejor pregunta es "¿por qué MacOS no distingue entre mayúsculas y minúsculas?". Todos los sistemas operativos basados en Darwin, aparte de MacOS, utilizan HFSX (Mac OS Extended, Case-Sensitive) mientras que MacOS utiliza HFS+ (Mac OS Extended). Aunque no hay una "razón" oficial de por qué, probablemente se hizo para mantener la compatibilidad con los sistemas HFS cuando Apple hizo la transición a HFS+. Según parece, esto continuará con APFS, ya que Apple parece haber introducido una variante de APFS que no distingue entre mayúsculas y minúsculas en marzo de este año.

0 votos

Entonces, ¿la distinción entre mayúsculas y minúsculas de un sistema reside exclusivamente en el sistema de archivos que se utiliza? ¿Si "por ejemplo" formateo en HFS+ una partición en un entorno Linux, el uso de esa partición desde la consola tendrá un comportamiento insensible a las mayúsculas y minúsculas como MacOS?

3voto

Michael Zhou Puntos 167

HFS+ funcionaba originalmente en System 8 y System 9 y no distingue entre mayúsculas y minúsculas. Apple desarrolló el sistema de archivos HFSX, que distingue entre mayúsculas y minúsculas, alrededor de 2002-2003, como reemplazo de UFS, que era utilizado por NextSTEP y también podía ser usado por OS X.

En la transición de System 9 a OS X, Apple ofreció las API de Carbon para que los proveedores pudieran portar fácilmente sus productos sin tener que reescribir completamente sus aplicaciones. Carbon no distingue entre mayúsculas y minúsculas. Durante muchos años, los principales proveedores utilizaron el código de Carbon en sus productos, por lo que HFS+ quedó como el sistema de archivos por defecto.

iOS ha pasado a APFS pero TimeMachine utiliza HFSX.

0 votos

¿Así que los dispositivos iOS no tuvieron que soportar la compatibilidad con versiones anteriores y adoptaron un sistema de archivos que distingue entre mayúsculas y minúsculas, mientras que OS X se quedó con un sistema de archivos compatible con Carbon? Así que la decisión fue una especie de obligación, no una preferencia por un sistema que no distinga entre mayúsculas y minúsculas, ¿estoy en lo cierto? Sin embargo, he leído que es posible instalar OS X con "HFS+ sensible a mayúsculas y minúsculas". ¿No se rompería así la compatibilidad con las aplicaciones "soportadas por Carbon"?

0 votos

@mars YMMV- ejecutando una aplicación con código de carbono. Algunas funcionan bien y otras se niegan a instalarse. He utilizado sistemas de archivos UFS o HFSX desde OS X 10.1.

-1voto

martinkunev Puntos 106

No estoy seguro de las intenciones de los desarrolladores de iOS, pero la mejor pregunta es por qué hacer que un sistema de archivos no distinga entre mayúsculas y minúsculas. Históricamente, hacer que los sistemas de archivos no distingan entre mayúsculas y minúsculas fue un error.

Estos son algunos de los problemas de los sistemas de archivos que no distinguen entre mayúsculas y minúsculas.

  • Está mal definido (piensa en unicode).
  • Cada sistema de archivos lo hace de forma diferente.
  • La insensibilidad a las mayúsculas y minúsculas debe manejarse en la capa de la interfaz de usuario.
  • La insensibilidad a las mayúsculas y minúsculas obliga a superponer violaciones sobre otro código.
  • La casuística es contagiosa.
  • La insensibilidad a las mayúsculas y minúsculas puede provocar fallos de seguridad.
  • La insensibilidad a las mayúsculas y minúsculas añade complejidad y no aporta ninguna ventaja real.

En mi opinión, este es un argumento suficiente para que el sistema de archivos distinga entre mayúsculas y minúsculas.

EDITAR

Al parecer, se desaconseja proporcionar enlaces con discusiones más profundas, así que voy a eliminar los enlaces.

0 votos

No estaba discutiendo que las fs sin distinción entre mayúsculas y minúsculas sean buenas, tenía curiosidad por saber las razones de la diferencia entre iOS y OSX, que están estrictamente relacionados pero tienen un enfoque diferente.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X