
Algunos parches para Linux 6.15-RC4 (actualice el controlador del kernel para el sistema de archivos BCACHEFS) Alguna «sabiduría directa» de Linus Torvalds Con respecto a los sistemas de archivos insensibles a los casos, informe Phoronix.
El desarrollador de BCACHEFS, Kent Overstreet, comienza una conversación que explica cómo aguas arriba algunos de sus archivos y carpetas insensibles compatibles con ciertos parches de carga en el conductor del kernel BCACHEFS Hace unos dos años:
Cuando hablé con el desarrollador que ejecutó la implementación, noté que FSTEST debería haber sido probado. Sin embargo, parece que estoy pasando por alto diciéndole que se asegure de que las pruebas realmente se ejecuten … no más lo suficientemente lo suficientemente como para confiar en las pruebas automatizadas. Tienes que prestar atención a lo que está haciendo su código.
Overstreet agregó: «Hay una historia detrás de la solución del directorio insensible al caso y una lección que aprender». Torvalds respondió … «No»
«La única lección a aprender es un sistema de archivos que la gente nunca aprende».
Torvalds: Los nombres insensibles están muy mal y no debes hacerlo en absoluto. El problema no es la falta de pruebas, el problema es en primer lugar implementándolo. Entonces, el problema es el problema de «tratar de hacerlo correctamente», y de hecho es incorrecto en el proceso porque «correcto» no existe, pero tratar de hacer que los bytes aleatorios tengan significados muy mágicos.
Por cierto, la prueba está totalmente rota de todos modos. Lo que vi al final es que en realidad no estaban probando contra todos los casos realmente interesantes, aquellos que causan problemas de seguridad en la tierra del usuario. Problemas de seguridad como «Comprobación del espacio de usuario si los nombres de los archivos no coinciden con ciertos modos sensibles a la seguridad». Luego, el sistema de archivos de cerebro de mierda eventualmente coincide con ese patrón*, porque las personas que hacen este caso no son sensibles*siempre*hacen cosas como ignorar a los personajes no imprimidos, por lo que ahora «caso insensible» también significa «insensible a otras cosas» y también significa «insensible».
Maldita sea. La sensibilidad del caso es un error. People del sistema de archivos * todavía * piensa que esta es una característica que no puedo entender. Al igual que adoran el antiguo sistema de archivos de grasa _so_, tienen que recrearlo.
Esto lleva a Una discusión muy activa de ida y vuelta.
Resumen de los aspectos más destacados de Slashdot:
Respuesta Overstreet Existen «demandas establecidas» para los directorios insensibles a los casos. («Así que no quiero quejarme [how] Son «malos». Quiero que funcionen, quiero que el código se mantenga limpio y mantenible, no sangren cuando tengo que ir a depurar. «)
Torvalds respondióexplique por qué el código está separado:
Si el personal del sistema de archivos debe ver la luz y tener una insensibilidad de casos apropiada y bien diseñada, puede cambiar. Pero nunca he visto ese *olor *. Solo he visto un código malo que no entiende cómo funciona UTF -8, ni cómo funciona Unicode (o más bien: cómo Unicode * no funciona) – código que usa unicode para comparar las características sin una comprensión más profunda de cuál es el significado) …
Como no ha dicho nada sobre la forma en que cree que el sistema de archivos se está equivocando, es solo basura. No he visto ningún caso sobre cómo manejarlos. Honestamente, ya no creo que los «problemas» de seguridad sean reales porque nos estamos deshaciendo activamente de los directorios compartidos por diferentes usuarios/TMP porque esto es causado por _so_.
Torvalds: La verdad es que no puedes hacer que las búsquedas insensibles a los casos sean una situación rápida …
Overstreet: Esto es exactamente lo que hace el código DCACHE y es la fuente del problema …
Torvalds: Creo que estás confundido y no sabes de qué estás hablando. Será mejor que aprenda cómo funciona realmente DCACHE.
Overstreet: No, estoy escribiendo sobre las búsquedas de CI cómo usar con dcache. Ve y eche un vistazo.
Torvalds: Kent, literalmente escribí la mayor parte del código, usted afirma que el caso CI está tratando de ser un caso rápido …
Overstreet: El tema es la búsqueda de CI, si escribes, me comeré los zapatos … ¿lo hiciste a propósito? Estoy hablando de que el caso CI es una combinación demasiado optimizada y mal diseñada. No digo que los casos de CI intenten ser un camino rápido hacia una búsqueda sensible al caso, lo que sería una locura.
Torvalds: Empiece a presionar. Ese código molesto que usa D_Compare y D_Hash devuelve. Desde una mirada rápida, es desde el '97 y se fusionó en 2.1.50 … Si obtiene el alias para la bofetada, es posible que esté haciendo algo mal.
Overstreet: Sí, Al acaba de señalarme genic_set_sb_d_ops () … nunca se dio cuenta de que mi queja sobre el bit de dcache no tiene sentido, dije que cómo debería funcionar es cómo funciona realmente. jeje.
Torvalds: Es una forma divertida de decir: «Oh, Linus, tienes razón cuando me llamas por mis tonterías».









