| With the prevalence of Linux Operating System, the graphics based application has been widely developed and used, and thus rising a hot issue in Linux desktop application implementation—how to develop those graphics software effectively and how to schedule the multi-thread as well as the multi-user well.To complete the graphic application, the implementation of the user-welcomed graphics user interface (GUI) is vital. Therefore, this paper 1) discusses the common GUI developing methods and processes with shell and GTK+, 2) designs and implements a communication program using Linux GUI and Named-pipe.We focus, in this paper, on discussing the main problems of graphics user interface design, such as GTK+ components, steps of graphics user interface design, event handler, callback functions, asynchronous I/O and etc. The experiment results prove that the GTK+ based Name-pipe communication program can be operated easily and conveniently. It also reveals swiftly-responded and stably-run characteristics. Meanwhile, the GUI developing methods and processes mentioned in this paper could also provide some valuable information for later studies.The mainly structure of this paper is as follows,Chapter 1 mainly introduces the background, basic principles, and values for the study in this paper. The common way of graphics user interface implementation in Linux is presented, and we also discuss the pros and cons in using GTK+ in the programs.Chapter 2 introduces the Linux programming tools and techniques. Through comparing the advantages and disadvantages of commonly used GUI programming tools and techniques, we conclude that GTK+ (GIMP ToolKit)is the most effective way in C based GUI implementation. In this chapter, we also specifically introduce the basic knowledge of developing environment choosing and building, gcc compiling, tool"make", gtk 2.0.Chapter 3 introduces the knowledge of GUI developing methods using GTK+, including a brief introduction in common developing procedure in GTK+, a particular discussion in component arrangement, and a focused presentation in key techniques like callback functions and etc. In this part, we also offer an introduction of tools used in the program. Chapter 4 mainly emphasizes on the developing steps and difficulties in communication and graphics application of this program, such as the event response and so forth. To illustrate the detail implementation procedure, after carefully studying the classic FIFO sending and accepting program, we present the basic designing method using GTK+. Chapter 5 presents the experiment and its statistics, including the"makefile"implementation, function testing, system testing, error handling process and etc.Chapter 6 describes the conclusions of our work. And we also point out the future work, which include 1) further the program so that the program could adapt to different operating systems. 2) add the function of user-defined time interval in order to improve the interactive operation.3) improve the process communication mechanism, so that it could achieve more than FIFO way, such as message queue shared memory and other IPC communication experiments likewise.Meanwhile, the other point of this paper is the asynchronous communication programming, which referring to knowledge of sockets, process/threads, I/O and etc. In this paper we also discuss the situation of multi-input and output, poll method in improving the possibility of event-driven asynchronous communication, and compare differences between the thread method and the poll method.The main obstacles in this dissertation are in the understanding and using the mechanism of GTK+ developing, and multi-process software designing method, which are referring to number of difficult operating system knowledge and design patterns.According to the experiment results, the program and knowledge we propose in this paper , which runs stably and requires basic principles of GUI programming, is valuable for later studies. |