system call Ejercicio 1 practico 2

system call Ejercicio 1 practico 2

de Pedro Liber Antonio Carrasco Aguilar -
Número de respuestas: 2

Mirando algunos links (si los kernels son mas viejos que el 4.1.2)

https://shanetully.com/2014/04/adding-a-syscall-to-linux-3-14/

http://www.tldp.org/HOWTO/html_single/Implement-Sys-Call-Linux-2.6-i386/

www.csee.umbc.edu/courses/undergraduate/CMSC421/fall02/burt/projects/howto_add_systemcall.

https://tssurya.wordpress.com/2014/08/19/adding-a-hello-world-system-call-to-linux-kernel-3-16-0/

http://cs.carleton.edu/faculty/jondich/courses/cs307_f05/documents/syscall.html


Modify the system call table

Eso ya no corre mas?

Xq hablan de una tal entry.S o syscall.tbl TABLA Archivos que no se encuentran el src del kernell.

Hay que usar este macro? https://lwn.net/Articles/604287/

Parece que alguien ya tuvo esta duda en el kernel 4 (sin embargo el encuentra la tabla yo no)

unix.stackexchange.com/questions/223888/how-to-add-a-system-call-in-linux-kernel-4-x

Alguine lo hizo sin registrar la sistem call en la tabla.

La macro no puede registrar la systemcall en la tabla solo la expande, a asmlinkage.

En el kernell 4.x Cambiaron la forma de registrar una systemcall?

Salu2

En respuesta a Pedro Liber Antonio Carrasco Aguilar

Re: system call Ejercicio 1 practico 2

de Pedro Liber Antonio Carrasco Aguilar -

Ok segun ppt

Si la system call existe en todas las arquitecturas se puede definir en include/linux/syscalls.h

Voy a definirla solo ahi y ver si funciona.


En respuesta a Pedro Liber Antonio Carrasco Aguilar

Re: system call Ejercicio 1 practico 2

de Pedro Liber Antonio Carrasco Aguilar -
Este procedimiento anda!!

https://tssurya.wordpress.com/2014/08/19/adding-a-hello-world-system-call-to-linux-kernel-3-16-0/

Es porque se mantiene compativididad hacia atras?

pregunto xq segun entiendo en esto

unix.stackexchange.com/questions/223888/how-to-add-a-system-call-in-linux-kernel-4-x

y en esto https://lwn.net/Articles/604287/

syscalltbl.sh

genera Automagicamente arch/x86/include/generated/asm/syscalls_32.h. Por lo que no seria necesario agragar

arch/x86/syscalls/syscall_32.tbl

ni

include/linux/syscalls.h

Entendi mal?
Para que esta el macro SYSCALL_DEFINEn en este caso SYSCALL_DEFINE0(long hello) que expande a una "asmlinkage long sys_hello()" o algo asi?

Salu2