2015-04-20 33 views
1

學校工作我必須添加自定義helloworld系統調用freebsd。我用以下鏈接作爲我的指南:http://members.tripod.com/s_mathur/bsdhowto.html 行! 在第二步我得到了問題:root沒有運行它的權限,所以我用:「make sysent」來代替。似乎沒問題。 第4步說:4.修改Makefile以包含sys_hello.c等,並重新編譯內核。 哪個makefile?以及如何編譯它以及如何調用系統調用hello? tnx提前freebsd通過編譯內核來添加自定義系統調用?

回答

1

如果sys_hello.c包含您的系統調用實現 - 它在sys/kern/sys_hello.c中 - 然後將此文件添加到conf /文件。搜索例如。 「kern_fork.c」,並以類似的方式添加sys_hello.c。之後,重建並重新安裝內核和世界(make buildkernel buildworld installkernel installworld);世界重建需要將用戶空間部分放入libc.so.至於調用 - 好吧,就像調用另一個系統調用一樣。您需要在某處添加syscall聲明。

+0

是的,sys_hello.c在sys/kern中。但sys/conf中沒有.c文件,所以它就是這個地方。在kern_fork.c中不包含sys_hello.h。我該怎麼辦? –

+0

sys/conf /文件 - 從字面上看,「files」,沒有擴展名 - 包含內核源文件列表(除了基於sys/modules /中的Makefiles構建的內核模塊外)。至於sys_hello.h - 是的,我不知道這個文件可能來自哪裏;只是不包括它? –

相關問題