idea: when users call read() or readdir() to get contents of /proc or its children, these calls will invoke kernel provided read() or readdir(), and these functions will fill in the right contents ========== when you do ls /proc to read the dir contents of /proc proc_root_readdir proc_readdir // returns non-process directory entries; these were // created before using create_proc_entry proc_pid_readdir // returns fake dir entries, whose inode # encodes the // process id. no entry created for each process ========== inode operations proc_root_lookup proc_pid_lookup