Programa de control principal de Linux

  
        

6.1, la idea general del programa Linux

El proceso init es el primer proceso iniciado por el kernel de Linux, es el iniciador de todos los procesos posteriores. El proceso inicial de este sistema es un enlace al proceso rc, por lo que el proceso rc es el proceso principal, que es el programa que se ejecuta primero en el kernel. Inicialmente, otros procesos secundarios se inician en el programa principal del proceso. Suspender la señal de espera del proceso.

El proceso secundario hace algo para procesar o iniciar o cerrar otros procesos secundarios al señalar el proceso principal, el proceso principal recibe la señal. Además, algunos procesos se comunican a través de zócalos.

Para algunos procesos, el programa se ejecuta una vez y se cierra. Algunos procesos son programas que se ejecutan de forma continua.

6.1, programa rc

La secuencia principal se llama rc, init, ip-up, ip-down, dtu-dns, start_watchdog, start-lan, stop-lan, start_timer, etc. Los procesos son conexiones a rc. Cuando se ejecutan estos procesos, el proceso de rc determina qué controladores se ejecutarán según los parámetros del proceso.

Si ejecuta el indicador de inicio, ingresará al ciclo principal de RC.

6.3, entorno de ejecución de inicialización

El bucle principal incluye las siguientes partes de la inicialización:

1, inicialización del sistema

monta el directorio relacionado con el sistema

Generación de todos los nodos de dispositivos

Montaje de directorios relacionados con la partición flash

Creación de enlaces a archivos de parámetros

Creación de directorios relacionados

Inicialización de parámetros del dispositivo

Inicialización de la consola

Kernel Module Load

Configuración de zona horaria, hora del sistema y sincronización de hardware

Inicio de vigilancia de hardware incorporado

Inicio de vigilancia de hardware externo

2, inicialización de GPIO

Apague el indicador correspondiente, encienda la alimentación del módulo, desactive la alimentación de la placa secundaria

apague el GPIO no utilizado

Encender la alimentación de la placa secundaria

Inicializar cada módulo

3. Encender la LAN

4. Inicializar la señal

Inicializar la señal

Señal de registro

5, Inicialización del archivo de configuración

Archivo de configuración relacionado con la marcación PPP

Parámetros de la DTU Archivo de configuración

Archivo de configuración de parámetros del controlador de red

Teléfono o archivo de configuración de activación de SMS

Archivo de configuración de detección de ICMP

Archivo de configuración de detección de DNS

Archivo de configuración de parámetros DDNS

Archivo de configuración de parámetros del canal de mantenimiento

6.4, ejecutando varios procesos

1. Abra el servidor local TCP

Figura:

Figura 6.2 Diagrama de flujo del proceso del servidor local

2, abra varios servicios

Servidor Httpd abierto

Conexión de cliente DTU abierta < Br>

El servicio Dhcpd está activado

El servicio Telnet está activado

La supervisión del número de procesos duplicados está activada

Las estadísticas de tráfico están activadas

6.5, asegurándose de que el proceso PPPD es correcto Ejecutar

1. Antes de ejecutar pppd, primero determine si la interfaz del módulo se puede abrir normalmente. Si la excepción está activada, reinicie el sistema.

2. Después de ejecutar pppd, determine si generar /tmp /ppp /link. file cada 1 segundo y vuelva a marcar si no se genera dentro del período de tiempo de espera.

3, antes de volver a ejecutar pppd para restablecer el módulo, desconecte la conexión pppd para evitar que la última ejecución pppd no se cerrara.

4, pppd dial-up abre con éxito la función de prueba de red, para evitar que el propio pppd no pueda detectar la caída.

6.6, ejecutar para procesar el bucle

Después de que se inicializa el programa principal, el servicio relacionado comienza a ingresar al procesamiento del bucle principal, el bucle principal comienza a marcar la línea y luego del procesamiento en línea, y finalmente está inactivo Espera una señal de evento. El bucle principal controla principalmente si hay una anomalía en el PPPD y en la WAN. Si se encuentra una anomalía, se realiza el procesamiento correspondiente. El flujo de procesamiento es el que se muestra en la siguiente figura: Como puede ver en el diagrama de flujo, el bucle principal es una máquina de estados. Cuando un proceso envía una señal, la función de procesamiento de la señal cambia el valor del estado, el bucle principal salta del estado IDLE, al estado REINICIAR o PARAR, vuelve a hacer un bucle y finalmente se estabiliza al estado inactivo. Es común ejecutar el proceso de ip-down cuando el PPPD se desconecta. El proceso envía una señal al proceso principal y el proceso principal pasa al estado REINICIAR. El programa principal vuelve a ejecutar el proceso de marcación.

6.7. Uso de señales

Las señales son eventos generados por los sistemas UNIX y Linux en respuesta a ciertas condiciones. El proceso que recibe la señal toma alguna medida en consecuencia. Normalmente la señal es generada por un error. Pero también pueden enviarse explícitamente de un proceso a otro como una forma de comunicar o modificar el comportamiento entre procesos. La generación de una señal se llama generación, y una señal se recibe llamada captura.

Debe incluir el archivo de encabezado: #include < signal.h >

El uso de la señal incluye los siguientes pasos:

1. Registre una señal.

Por ejemplo: señal (SIGHUP, rc_signal);

2. Función de procesamiento de señal.

static void rc_signal (int sig)

{

… …

if (sig == SIGHUP) {

Syslog (6, señalización RESTART \\ n ");

signaled = RESTART;

}

… …

}

3. Enviar señal

Señale el proceso principal: kill (1, SIGHUP);

Copyright © Conocimiento de Windows All Rights Reserved