title: Clarification of book's explanation and source code: #define BITCHUNK_BITS (sizeof(bitchunk_t) * CHAR_BIT)
body: <p>On Tanenbaum's operating systems design and implementation, p.154 says the bitmap has a bit for each of the NR_SYS_PROCS(32).</p>
  
  <p>And at the end of minix/kernel/table.c, there is a check to make sure the number of processes in the boot image is not greater than the ipc mask:</p>
  
  <blockquote>
    <p>/* verify that                                                                       the first chunk of the ipc mask has enough bits to accommodate the processes<br>
      * in the image. */                                                              </p>
  </blockquote>
  
  <pre><code>extern int dummy[(BITCHUNK_BITS &gt; NR_BOOT_PROCS - 1) ? 1 : -1];
  </code></pre>
  
  <p>I was looking into the size of BITCHUNK_BITS, thinking it would equal 32, but it equals 16, as defined in /minix/kernal/const.h</p>
  
  <p><code>#define BITCHUNK_BITS   (sizeof(bitchunk_t) * CHAR_BIT)</code></p>
  
  <p>where bitchunk_t is unsigned short and CHART_BIT is 8.</p>
  
  <p>Why make sure the number of processes in the boot images is less than 16 rather than 32 when it is possible to add more user processes to the boot image?</p>