
Estoy desarrollando un Linux integrado (ya casi ha terminado). Lo que estoy luchando es que el sistema se vuelve inestable al cortar la fuente de alimentación con frecuencia y ya no arranca. Incluso no funciona fsck
.
El sistema solo tiene un XFCE con una aplicación Qt fija cargada automáticamente para mostrar algunos gráficos.
Mi pregunta es: ¿cómo las distribuciones comerciales de Linux integradas (como Linux de administración de Wifi AP, ...) evitan este problema?
¿Tiene alguna idea?
Respuesta1
La mayoría hace una de dos cosas:
Ejecutan el sistema de archivos principal en modo de solo lectura y tienen un área separada para el almacenamiento de datos que se monta en lectura y escritura,
o
Tienen el sistema de archivos principal comprimido en un archivo que se expande a un disco ram en el momento del arranque.
Esto significa que el sistema de archivos siempre está en el mismo estado pase lo que pase. Sólo hay que preocuparse por la pequeña área de almacenamiento de configuración, y eso puede tener un sistema de archivos que no se preocupe demasiado por la pérdida de energía.
Otro consejo es desactivar todo el almacenamiento en caché en la partición de almacenamiento para que todos los cambios se escriban inmediatamente en el disco.
Respuesta2
Sí, en términos generales, no lo hacen.
A fin de cuentas, es probable que todos tengan dispositivos integrados fallidos, ya sean equipos de red, dispositivos IP u otros.
En pocas palabras, cree su aplicación lo mejor que pueda; como desarrollador, eso es todo lo que puede hacer.
Intente que su aplicación sea lo más sólida posible: coloque la verificación de errores en el nivel más alto/en todos los niveles. Entonces, por ejemplo, si tiene un archivo de configuración que es necesario y su aplicación no puede ejecutarse sin él, emita un pitido/comentarios si no lo encuentra; infórmeselo al usuario.
El siguiente nivel realmente proviene de su fabricante de hardware: la redundancia o la robustez son clave y, nuevamente, asegúrese de que el proveedor de hardware siga las ideas anteriores, como la verificación de errores/comentarios detallados para que, si algo falla, la gente sepa por qué/qué lo hizo.
No he entrado en muchos detalles, pero espero que esto ayude y le indique la dirección correcta.