En general, ¿cómo puedo saber si mi proyecto necesita un sistema de archivos? [cerrado]

3

Esta pregunta > ofrece una buena visión general de alto nivel de cuándo un sistema operativo es apropiado en una plataforma integrada. Los tres temas mencionados son los requisitos de red, los requisitos de GUI y los requisitos del sistema de archivos.

La red y las GUI son lo suficientemente obvias, pero me pregunto cuándo un sistema de archivos es apropiado y / o requerido para un sistema integrado. ¿Qué tipo de tareas integradas se prestan a una solución de sistema de archivos?

¿Tal vez algo como una aplicación de recopilación de datos, donde las mediciones anteriores o los archivos de registro deben almacenarse para futuras referencias?

    
pregunta Chris Fernandez

4 respuestas

1

Las situaciones más obvias donde encuentro un sistema de archivos deseable:

  1. Siempre que tenga que intercambiar datos con un sistema externo (por ejemplo, una PC). Definitivamente, un sistema de archivos FAT es la solución más fácil cuando se utiliza una tarjeta SD o una memoria USB (por ejemplo, un registrador de datos, la preparación de archivos de configuración en una PC).

  2. Usted usa almacenamiento NAND. Necesita un sistema de archivos que sea compatible con NAND, porque todos los chips NAND tienen sectores defectuosos y el sistema de archivos tiene que trabajar alrededor de ellos.

respondido por el filo
1

Los sistemas operativos resumen las cosas, por lo que las diferentes aplicaciones en la misma máquina no necesitan preocuparse unas de otras.

Los sistemas de archivos siguen la misma lógica. Si necesita almacenamiento para varios componentes independientes que no deberían necesitar coordinar el uso de recursos entre sí, necesita un componente de mediación, que sería un sistema de archivos.

Esta puede ser una asignación genérica de una clave primaria (posiblemente jerárquica) a un solo blob de datos de longitud arbitraria, como la mayoría de los sistemas de archivos, o puede contener características adicionales como flujos secundarios, índices (por ejemplo, búsqueda de artistas en carpetas MP3) , un formato de grabación como en Palm OS, ...

    
respondido por el Simon Richter
1

Trabajé en un proyecto de recolección remota de datos. Si bien se suponía que el sistema debía estar conectado permanentemente a través de RF, tuvimos que manejar el caso en el que no se podían enviar los datos de RF, de Internet o por cualquier otra razón, ya que no podíamos permitirnos perder datos.

En ese momento estábamos usando un RTOS con un sistema de archivos Fat en una tarjeta PIC24 y SD. Desafortunadamente, esto no era confiable ya que en caso de pérdida de energía, podría suceder que el sistema de archivos esté dañado.

También FAT es bastante complejo de manejar con uC, especialmente cuando empiezas a tener muchos archivos.

Nuestra solución al final fue escribir los datos en bruto en la tarjeta SD, con el sector de escritura / lectura almacenado en los primeros 10 sectores de la SD con asignación al azar para evitar el desgaste repentino.

El inconveniente fue que tuvimos que usar un software especial en el modo de administración para leer los datos de una computadora, aunque era mucho más confiable que un sistema de archivos Fat, y también mucho más fácil de manejar en el PIC.

Mirando hacia atrás, probablemente ahora usaría un Linux incorporado para manejar esto en lugar de un PIC ya que ahorra mucho tiempo y dolor de cabeza. La conectividad también es mucho más fácil de manejar en un linux que en un uC, la desventaja de linux es el costo, el consumo de energía, el tiempo de arranque y la latencia de E / S según lo que haga.

    
respondido por el Damien
1

La única vez que necesita un sistema de archivos es cuando tiene un requisito que lo menciona, como "el sistema debe proporcionar al usuario tales y tales archivos" o "la configuración del sistema debe ser almacenado en un archivo de configuración ".

En todos los demás casos, un sistema de archivos es una compensación entre la complejidad y la conveniencia del software. Los sistemas de archivos le permiten almacenar datos sin tratar con detalles de bajo nivel, son fácilmente escalables y (si elige un sistema de archivos compatible) facilita mucho el intercambio de datos.

A veces no puede pagar la complejidad porque su plataforma de destino es muy limitada en términos de memoria y / o rendimiento. A veces, la complejidad se interpone en el camino de lograr la confiabilidad deseada (como en un dispositivo que se puede apagar en cualquier momento pero no tolera perder datos). En estos casos, se debe considerar trabajar con registros de datos fijos en lugar de archivos.

Si puede permitirse la complejidad y la necesidad (o prevé que pueda necesitar) flexibilidad, abstracción o compatibilidad, utilizar un sistema de archivos es una buena idea.

    
respondido por el Dmitry Grigoryev

Lea otras preguntas en las etiquetas