http://www.linux.or.jp/JM/html/LDP_man-pages/man5/proc.5.html
http://d.hatena.ne.jp/inutch/20080114/1200298525
http://jo1upk.blogdns.net/linux/?proc
fs/proc/array.c
static int do_task_stat(struct task_struct *task, char * buffer, int whole)
fs/proc/proc_misc.c
void __init proc_misc_init(void)
proc_create("diskstats", 0, NULL, &proc_diskstats_operations);
static const struct file_operations proc_diskstats_operations = {
.open = diskstats_open,
.read = seq_read,
.llseek = seq_lseek,
.release = seq_release,
};
static int diskstats_open(struct inode *inode, struct file *file)
{
return seq_open(file, &diskstats_op);
}
include/linux/seq_file.h fs/seq_file.c
include/linux/sched.h
#define TASK_COMM_LEN 16
struct task_struct {
...
char comm[TASK_COMM_LEN];
...
}
# format # IRQNUM cat /proc/interrupts
http://homepage3.nifty.com/owl_h0h0/unix/job/ORACLE/oracle/pmap_linux.html
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ja/ref-guide/s1-proc-directories.html
5.3.9.5. /proc/sys/vm/
カーネルをチューニングする
http://www.thinkit.co.jp/free/tech/23/5/
http://search.luky.org/linux-kernel.2004/msg29063.html