<p indent="0mm">Brain-computer interface (BCI) is a relatively newly developed technology, which builds up a channel for the communication and interaction between the brain and the outside world. It can be used to gain access to the neural activity information in the brain, decode the intention of the user, and understand higher levels of semantics of the user, as well as used as a means for the regulation and control of brain activities. BCI technology, although experienced only a short period of developments, has already been used in neuroscience for understanding the working principles of the neural systems, in the fields of therapeutic, rehabilitation, and augmentation of neural and physiological functions, as well as exhibited a strong potential for applications in a wide range of fields, such as learning and education, game and entertainment, and automatic control of industrial process and various devices. Since using the technology can not only detect information about the neural activity inside the brain, but also exert stimulation to the nervous system so that the neural activity can be regulated and controlled by designed algorithms, ethical and legal considerations are generated for the research and applications of BCIs. In this paper, the basic principle and structure of BCIs are briefly introduced, and the evolution and present status of the technology are reviewed. Particularly, we present an overview of the development of the technology by introducing some events and techniques in the field, and review the classification of BCIs with respect to the techniques developed for brain signal acquisition, namely, invasive, non-invasive, and semi-invasive BCIs. In information technology, brain signal decoding techniques are critical to BCIs. We review some technical developments particularly for the neural signal decoding algorithms. In terms of the neural activities they deal with, BCIs can also be classified into motor-sensory BCIs and cognitive BCIs. The latter deals with brain activities related to higher order functions, such as memory, language, attention, and decision making, in contrast to the sensory and motor functions. The techniques and systems developed for cognitive BCIs are reviewed. Some challenging problems for the further development of the BCI are described in this paper. The problems are classified and reviewed in three categories. The first category is problems related to performance and applicability of BCIs, including the communication speed, the accuracy of neural signal decoding algorithms, and the applicability problems particularly connected to the biocompatibility issue. The second category is safety and security of BCIs, including safety and reliability of BCI software and hardware, security problems from cyberattacks and use of AI algorithms. The third category is ethical and legal issues facing the design and application of BCIs, including the problems related to privacy, identity and agency, as well as social equality. Some research directions for the further development of BCIs are also presented.