How is boolean represented in memory?

How are booleans represented in memory? If you had 8 booleans declared one after another, will they be packed tightly in 1 byte?

How are booleans retrieved? No OS will actually fetch 1 bit, right? They must grab an entire word (16 bits in Unix, I believe). If this is so, then wouldn’t it be faster to use ints instead of bools? Because the bool would have to be extracted out of the retrieved word (with an XOR???) whereas the int can be used directly.