$ gcc aio.c -laio
$ ./a.out epoll.c
$ gcc event-exam.c -lev
http://mp.weixin.qq.com/s/Xp4-r-a2iWpDx_yntGIGOQ
$ gcc epoll.c
http://mp.weixin.qq.com/s/aghkAAv1hxR9sMce3Z69Zw
$ sudo sh -c 'echo cfq > scheduler'
$ sudo ionice -c 2 -n 0 cat /dev/sda > /dev/null &
$ sudo ionice -c 2 -n 7 cat /dev/sda > /dev/null &
$ sudo iotop
$ sudo apt-get install libfuse-dev
$ gcc -D_FILE_OFFSET_BITS=64 hello.c -lfuse
$ mkdir mnt
$ ./a.out mnt
$ cd mnt/
$ ls
hello
$ mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
...
a.out on /home/baohua/develop/training/io-courses/fuse-hello/mnt type fuse.a.out (rw,nosuid,nodev,user=baohua)
#dumpe2fs
#dd if=image bs=4096 skip=18 | hexdump -C -n 32
%!xxd -g 1
%!xxd -r