There are many variations of magnetometers, accelerometers, gyroscopes, and so on. In some cases, the component has a single function, such as the module HMC5883L, which is just a magnetometer, or ADXL345 and MMA7660FC (part of contrib-drivers), which are accelerometers. In other cases, they are more complete, even proper 9 DoF (Degrees of Freedom) sensors like the ones on the phones, which are also known as IMUs (Inertial Measurement Unit).
In most cases there are drivers already available, even if most of them are just ports from Arduino. The structure of the driver varies a bit but it is usually along the lines of what we saw in this chapter. In the case that there is no driver, you can always read the spec sheet of the component and write it yourself. It is not as...