Frequency spectrum resource is the most important and fundamental resource for various information systems such as communication systems, radar systems and so on. In order to overcome the conflicts between the scarcity and low usage efficiency, cognitive capability becomes more and more important for future information system designs. In this paper, we give a comprehensive work on the problem of how to share the frequency resources between communication and radar systems. It is shown that to achieve more efficient and flexible resource usage, the involved secondary terminals should be able to sense the environment and learn from the historical actions. Moreover, various intelligent algorithms should be carefully designed and all the available resources should be optimized as well to avoid serious interference and unexpected affects on the original designs. The tradeoffs among different design performance metrics are also investigated in depth. Finally, several open problems and future research directions are presented.