Blender Library and ID structs

Hi all,

I would like to get some basic information on the Library and ID structs commonly used in Blender. What are the exact functions of those two structs and how do they basically work? To my understanding ID is used for loading and saving structs (makesdna) but what about library?

Any help and tips are greatly appreciated.

-d-