Здесь содержатся все имена ядра, самое главное - все API. И их адреса размещения.
(это так написано везде в учебниках)
Ковыряюсь я с вот таким проектом: Implementing a Distributed Firewall.
На виртуальной машине в VirtualBox, чтоб не разрушить основную инсталляцию, вот система:
Код: Выделить всё
olej@ubuntu:~/Загрузки$ uname -a
Linux ubuntu 3.2.0-25-generic-pae #40-Ubuntu SMP Wed May 23 22:11:24 UTC 2012 i686 i686 i386 GNU/Linux
olej@ubuntu:~/Загрузки$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:29:e5:a9 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.105/24 brd 192.168.1.255 scope global eth0
inet6 fe80::a00:27ff:fe29:e5a9/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:29:8d:45 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.101/24 brd 192.168.56.255 scope global eth1
inet6 fe80::a00:27ff:fe29:8d45/64 scope link
valid_lft forever preferred_lft forever
Код: Выделить всё
olej@ubuntu:/proc$ whoami
olej
olej@ubuntu:/proc$ cat /proc/kallsyms | grep sys_write
00000000 T sys_write
00000000 T sys_writev
00000000 t proc_sys_write
Символы (имена) есть, а адресов их - нет!
Хватило сообразительности ... обманув Ubuntu :
Код: Выделить всё
olej@ubuntu:~$ sudo sh
[sudo] password for olej:
# whoami
root
# mc
root@ubuntu:/proc# cat /proc/kallsyms | grep sys_write
c1144d20 T sys_write
c11453d0 T sys_writev
c119bbc0 t proc_sys_write