“Conocimiento Sistemas>unix

¿Qué son los números de sistema UNIX?

2013/9/14
En los sistemas operativos similares a UNIX, las llamadas del sistema se identifican mediante números únicos. Estos se llaman Números de llamadas del sistema O a veces solo Números de sistema . Esencialmente son índices en una tabla de llamadas del sistema dentro del núcleo. Cuando un programa realiza una llamada del sistema (por ejemplo, `Open`,` Read`, `Write`,` Fork`), no usa directamente el nombre de la función; En su lugar, utiliza el número de llamada del sistema correspondiente. El kernel luego usa este número para buscar la función correcta para ejecutar.

Aquí hay un desglose de su significado:

* Eficiencia: El uso de números es más eficiente que usar cadenas (como nombres de funciones). Las búsquedas numéricas son mucho más rápidas que las búsquedas de cadenas.

* abstracción: Proporcionan un nivel de abstracción. La interfaz de llamada del sistema es consistente independientemente de los detalles de implementación específicos de cada función de llamada del sistema.

* portabilidad (con advertencias): Si bien la llamada del sistema * los números * en sí mismos no son necesariamente portátiles en diferentes sistemas similares a unix (por ejemplo, Linux, MacOS, BSD), los * nombres * de las llamadas del sistema a menudo son (aunque su comportamiento puede tener diferencias sutiles). Los archivos de encabezado proporcionan una asignación entre los nombres simbólicos y los números para un sistema específico. En general, usaría los nombres simbólicos en su código, confiando en el compilador y el enlazador para resolverlos con los números de llamadas del sistema correctos.

* Seguridad: El uso directo de los números de llamadas del sistema ofrece menos protección que usar una biblioteca o API bien volcada; El uso incorrecto puede conducir a bloqueos del sistema o vulnerabilidades de seguridad. Por lo tanto, usar los nombres simbólicos casi siempre se prefiere.

Cómo se usan: Un programa generalmente no usa directamente los números de llamadas del sistema. En su lugar, utiliza una interfaz de llamada del sistema (a menudo proporcionada por una biblioteca C), que maneja la traducción del nombre de la función al número. Los archivos de encabezado (como `unistd.h` en c) definen constantes simbólicas para cada llamada del sistema, permitiendo a los programadores escribir código portátil utilizando estos nombres simbólicos. El compilador y el enlazador se encargan de mapear estos símbolos a los números de llamadas del sistema apropiados durante la compilación y la vinculación.

En resumen, los números de llamadas del sistema son identificadores de bajo nivel utilizados por el núcleo para despachar llamadas al sistema, ofreciendo eficiencia y una capa de abstracción para los programadores que de otro modo necesitarían trabajar directamente con las interfaces del núcleo, una tarea generalmente se queda a los escritores de la biblioteca y el sistema operativo en sí.

unix
¿Cómo se comprueba si un archivo tiene errores ortográficos en Unix?
¿Cuál es el interruptor de contexto en UNIX?
¿Cómo se leen archivos pz en Unix?
Cómo cambiar la hora en SCO Unix
¿Cómo se crea un archivo de script en UNIX?
¿Cómo se hace un nuevo comando en Unix?
¿Cuál es el directorio en Linux?
¿Cuál es el significado de dos años?
Conocimiento de la computadora © http://www.ordenador.online