C y Shell no compiten por el mismo espacio en rogpOS. C admite la ruta interactiva y de larga duración. Shell organiza tareas breves de puesta en marcha, montaje y operación. La frontera es una elección de seguridad y mantenimiento.
Cuando usar C
- bucle gráfico y entrada en tiempo real;
- estado persistente durante la sesión;
- navegación, componentes y renderizador;
- indexar o analizar con estructuras claras y límites conocidos;
- crear procesos cuando los argumentos deben permanecer separados y verificables.
El lanzador utiliza C11, SDL2, SDL2_image y SDL2_ttf. La separación entre pantallas, componentes, núcleo de integración y UI impide que una pantalla controle archivos o procesos por sí sola.
Cuando usar cáscara
- preparar el entorno y los puntos de reunión;
- iniciar o finalizar un servicio simple;
- seleccione una configuración declarativa;
- ejecutar una secuencia corta, legible y fácil de deshacer;
- conecte herramientas existentes sin convertir el script en una aplicación permanente.
Cuando el script pasa a construir comandos a partir de texto, mantener un estado complejo o analizar formatos grandes, C o una herramienta dedicada proporciona límites más claros.
Mejores prácticas de Shell
- iniciar scripts Bash controlados con
set -euo pipefail; utilizarset -eucuando el intérprete es POSIXsh; - encerrar las expansiones entre comillas y pasar argumentos como argumentos, sin juntar una línea para
eval; - utilizar
mktemppara archivos temporales ytraprestaurar la condición y eliminar los desechos; - declarar el intérprete correcto en el asunto;
- manejar códigos de salida y escribir mensajes que indiquen el paso que falló;
- validar con
bash -nosh -ny ShellCheck cuando esté disponible; - mantener scripts de inicio con operaciones
start,stop,restarty códigos coherentes.
Buenas prácticas para C
- compilar con C11,
-Wally-Wextra; los módulos críticos también utilizan advertencias más estrictas; - mantener limitados los buffers y cachés;
- comprobar rendimientos, tamaños, propiedad y ciclo de vida de los recursos;
- preferir
argvexplícito a una cadena de shell; - separar funciones y procesos de E/S puras;
- utilizar desinfectantes en las pruebas de host, sin confundir esto con las pruebas de hardware;
- Pruebe el contrato público de módulos, no detalles internos frágiles.
Gates antes de integrarse
El proyecto combina verificación de arquitectura, pruebas de características y temas, análisis de shell, compilación de iniciador e inspección de rootfs. La inserción previa local evita que un archivo no válido avance, pero aún así no reemplaza las pruebas en el R36S, R36S Plus o R40X Pro Max correspondiente.
Una regla sencilla
Si la tarea pertenece al marco, foco, estado de la interfaz o una sesión larga, tiende a C. Si prepara el entorno y termina, tiende a descascararse. Si requiere una concatenación compleja de comandos o datos no confiables, deténgase y vuelva a dibujar el límite.