I want to learn how the Linux kernel works, specifically about the following topics: structure, programming design, device development, but I do not know of good places to learn about these topics. I have read Developing Linux Device Drivers. 
How/Where to learn about linux kernel?
linux kernel;development;learning
With regard to kernel modules/device drivers, Linux Device Drivers, 3rd Edition is available free online.  There are more recent and more in depth books on the topic but that is a good start.  One of the authors is Greg Kroah-Hartman, a lead kernel developer, who has another free online book, Linux Kernel in a Nutshell.With regard to the design and inner working of the kernel itself, Professional Linux Kernel Architecture by Wolfgang Mauerer is a terrific, very detailed book.  This and the other references focus on the 2.6 kernel but most of the information still applies to 3.x.The interactive kernel map is also interesting and links into a source code cross reference.