jschiwal is right:
1. kmalloc is one alternative
2. Kernel 2.6 offers other alternatives, including the rich, powerful "slabs" API
3. Robert Love's "Linux Kernel Development, 2nd Ed" is an excellent book that discusses these -
and many other essential issues - in depth. It's an absolute must-have:
http://www.bookpool.com/sm/0672327201
4. Another, complementary book that's also a must-have is the O'Reilly "Linux Device Drivers, 3rd Ed":
http://www.bookpool.com/sm/0596005903
5. And of course - as jschiwal also said - the best reference is /usr/src/linux, starting with "Documentation/"!