\begin{exe} {Touring the /proc Filesystem}

   \begin{info}
      Exactly what you see in this exercise will depend on your
      kernel version, so you may not match the output shown
      precisely.
   \end{info}

   \begin{enumerate}

      \item
      As root, \textbf{cd} into \filelink{/proc} and do a
      directory listing. This should display a number of
      files and directories:
      \begin{cmd}
$ cd /proc
$ ls -F
      \end{cmd}
      \begin{response}
1/      128/    1510/   20/     2411/   30895/  53/    6925/  802/  951/         kmsg
10/     129/    1511/   2015/   2425/   31/     54/    7/     81/   952/         kpagecgroup
1002/   13/     1512/   2022/   2436/   31449/  55/    70/    813/  957/         kpagecount
1007/   130/    1513/   2023/   2444/   32/     56/    702/   814/  97/          kpageflags
10540/  131/    1514/   20300/  2451/   33/     58/    709/   816/  9742/        loadavg
10590/  13172/  152/    20354/  2457/   34/     585/   71/    817/  98/          locks
10798/  132/    15552/  20380/  2489/   35/     59/    718/   82/   99/          meminfo
10805/  133/    15663/  20388/  25/     36/     60/    719/   83/   9923/        misc
10806/  134/    15737/  20392/  2503/   37/     61/    72/    834/  acpi/        modules
10809/  135/    159/    20396/  2504/   374/    6193/  721/   835/  asound/      mounts@
10810/  136/    15981/  2086/   2531/   379/    62/    723/   84/   buddyinfo    mtrr
10813/  137/    16/     2090/   2546/   38/     63/    725/   841/  bus/         net@
10894/  138/    162/    211/    2549/   380/    634/   727/   842/  cgroups      pagetypeinfo
10925/  1384/   1632/   22/     2562/   40/     64/    73/    85/   cmdline      partitions
10932/  1385/   1636/   2205/   25794/  41/     65/    7300/  857/  config.gz    sched_debug
10934/  1387/   166/    2209/   26/     42/     662/   74/    86/   consoles     scsi/
10935/  139/    1670/   2212/   2610/   43/     663/   757/   864/  cpuinfo      self@
10941/  1390/   17/     2232/   26108/  44/     665/   758/   867/  crypto       slabinfo
10983/  1393/   17271/  2238/   2619/   4435/   666/   76/    87/   devices      softirqs
10998/  14/     17361/  2296/   2624/   45/     67/    761/   88/   diskstats    stat
11/     140/    1793/   2298/   2627/   46/     670/   762/   881/  dma          swaps
11047/  1410/   18/     23/     2644/   468/    671/   765/   886/  driver/      sys/
1105/   1415/   1831/   23042/  2645/   47/     673/   766/   887/  execdomains  sysrq-trigger
1121/   1429/   18880/  2344/   2679/   470/    674/   768/   888/  fb           sysvipc/
1123/   1437/   18903/  2348/   27/     484/    678/   769/   889/  filesystems  thread-self@
1135/   1445/   19/     2353/   2706/   49/     679/   77/    89/   fs/          timer_list
11420/  146/    19392/  2354/   2762/   492/    68/    771/   9/    interrupts   timer_stats
11499/  1463/   19488/  2365/   28/     493/    682/   78/    90/   iomem        tty/
11515/  147/    1954/   23683/  2858/   5/      683/   79/    92/   ioports      uptime
11530/  1476/   1963/   2370/   28730/  50/     686/   793/   921/  irq/         version
1163/   148/    19727/  2372/   28734/  51/     687/   794/   928/  kallsyms     vmallocinfo
1164/   1485/   19734/  2374/   29/     510/    69/    8/     930/  kcore        vmstat
12/     149/    19984/  24/     2973/   514/    690/   80/    931/  keys         zoneinfo
127/    15/     2/      2406/   3/      52/     691/   801/   944/  key-users
      \end{response}

      Notice many of the directory names are numbers;
      each corresponds to a running process and the name
      is the \textbf{process ID}.  An important
      subdirectory we will discuss later is
      \filelink{/proc/sys}, under which many system
      parameters can be examined or modified.

      \item
      View the following files:
      \begin{itemize}
         \item
         \filelink{/proc/cpuinfo}:
         \item
         \filelink{/proc/meminfo}:
         \item
         \filelink{/proc/mounts}:
         \item
         \filelink{/proc/swaps}:
         \item
         \filelink{/proc/version}:
         \item
         \filelink{/proc/partitions}:
         \item
         \filelink{/proc/interrupts}:
      \end{itemize}
      The names give a pretty good idea about what
      information they reveal.

      Note that this information is not being constantly updated;
      it is obtained only when one wants to look at it.

      \item

      Take a peek at any random process directory (if it is not
      a process  you own some of the information might be
      limited unless you use \textbf{sudo}):
      \begin{cmd}
$ ls -F 4435
      \end{cmd}
      \begin{response}
attr/       coredump_filter  gid_map     mountinfo   oom_score_adj  sessionid  syscall
autogroup   cpuset           io          mounts      pagemap        setgroups  task/
auxv        cwd@             limits      mountstats  personality    smaps      timerslack_ns
cgroup      environ          loginuid    net/        projid_map     stack      uid_map
clear_refs  exe@             map_files/  ns/         root@          stat       wchan
cmdline     fd/              maps        oom_adj     sched          statm
comm        fdinfo/          mem         oom_score   schedstat      status
      \end{response}
      Take a look at some of the fields in here such as:
      \verb?cmdline, cwd, environ, mem,? and \verb?status?

   \end{enumerate}
\end{exe}

