Historia de syscalls añadidos a Linux?


¿Hay algún lugar donde pueda obtener una lista completa de la versión mínima de Linux necesaria para cada syscall? Estoy buscando una respuesta general a las preguntas del formulario " Si uso syscall X, ¿cuál es la versión mínima de Linux en la que puede ejecutarse mi código?"

Author: R.., 2011-07-23

4 answers

Esta información se puede encontrar en el syscalls(2) página de manual. Para aquellas llamadas al sistema donde no se indica ninguna versión del kernel, la llamada al sistema apareció en kernel 1.0 o anterior.

 30
Author: mark4o,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-10 06:48:57

Linus ha criticado durante mucho tiempo la comprobación en el espacio de usuario de determinadas versiones del kernel para saber si una característica está disponible - el enfoque recomendado es probar la característica que desea (las llamadas sin implementar devuelven ENOSYS).

Una razón para esto es que los números de versión simplemente no significan tanto como parecen - los núcleos de distribución, que la mayoría de los usuarios están ejecutando, a menudo tienen características backportadas de versiones más nuevas del núcleo. Algunos de ellos son verdaderos monstruos de Frankenstein en este respeto.

 9
Author: caf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-23 00:07:08

Puede encontrar esto al usar sitios como http://linux.die.net / cerca de la parte inferior de las páginas para las llamadas a la API, en la sección 'Version'. Por ejemplo, inotify se agregó en Linux 2.6.13.

Para las llamadas posix esto no se aplicará porque se recopilan bajo las especificaciones Posix, por ejemplo, read tiene una sección 'Conforme' que menciona POSIX.1-2001.

 4
Author: Karl Mutch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-22 23:28:13

Hay una lista de llamadas de sistema en el archivo include/asm-generic/unistd.h. Puede consultar el historial de ese archivo en:

Http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=history;f=include/asm-generic/unistd.h;h=2292d1af9d705f129ae523ce00a6b7794fb1648c;hb=8df54d622a120058ee8bec38743c9b8f091c8e58

No estoy seguro acerca de syscalls para otro arco que x86. Puede haber detalles.

 2
Author: Peter Senna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-11 14:35:04