Całość jest opisywana przez rekurencyjny typ ctl_table. Struktura ta nie tylko daje opis zmiennych dla interfejsu z procfs ale również dla ciągle używanej funkcji systemowej(sysctl). Różnice między interfejsami stanowią identyfikatory zasobu. Dla proc jest to nazwa w katalogu, opisują to pola procname i child, to drugie pozwala zbudować hierarchie. Nie typowe jest tutaj to że dzieci nie są listą ale tablicą zakńczoną zerami. Wybrano taki sposób ponieważ struktura ta jest twożona statycznie w kodzie programu i podczas startu systemu przepisywana na proc_dir_entry.
Dla funkcji sysctl identyfikatorem jest numer,
który znajduje się w pliku include/linux/sysctl.h.
Oba interfejsy mają równierz oddzielne funkcje obsługujące.