some basic doubts / confusion regarding linux kernel / OS

ajay saini ajay_saini1006 at yahoo.co.in
Thu Oct 3 13:08:03 EDT 2013


Hi,

I had some confusion/doubts regarding Linux kernel / OS and I want to be completely sure that my understanding is right for below, and need your inputs (would be really glad for your help):

- There are functions defined in linux kernel. Some of these functions have a line "EXPORT_SYMBOL(<function_name>);"  after them.

   These are the functions which are exported, so they can be directly called from a linux kernel module - right ? (we just need to include header files which define
   them in our kernel module)

- There are some functions defined in linux kernel, which are not static and are not exported, like "migrate_pages" in migrate.c and it is mentioned in
   include/linux/migrate.h file. 
   Is there a way to call these functions, directly from kernel module ?? (even if I include the header file) ??
   If no, What is the technique used there, which prevents the module from calling this function (even though I have included the header file)??

- We have kernel header files defined in include/linux/ and there are user space header files (the C libraries).
    Can a user space program include kernel header file and call a kernel function directly?? No , right ??
    Again, what is there which prevents a user space program from doing so?? How this technique is implemented ??
   
- I understand that, a struct page exists for each physical page in RAM. And this linked list of struct pages are stored together at the beginning of a zone. After this
  storage, does the real data (content) of pages is stored.
  Now each of these pages must be pointing to the data area/page which they define ? Which is this field in the struct page, which points to this data area, a physical
  address + length of the page ?
   
Thanks,
Ajay
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20131004/97ca530b/attachment.html 


More information about the Kernelnewbies mailing list