![](https://csdnimg.cn/release/download_crawler_static/87984619/bg7.jpg)
Linux 内核由 5 个主要的子系统组成。这 5 个子系统分别是进程调度(SCHEN)、内存
管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC)
【3】
。
各个子系统之间的依赖关系如下:
进程调度与内存管理之间的关系:这两个子系统互相依赖。程序要在多道程序环境下运
行,必须为之创建进程,而创建进程的第一件事,就是要将程序和数据装入内存。
进程间通信与内存管理之间的关系:进程间通信子系统要依赖内存管理来支持共享内存通信
机制,这种机制允许两个进程除了拥有自己的私有内存外,还可存取共同的内存区域。
虚拟文件系统与网络接口之间的关系:虚拟文件系统利用网络接口来支持网络文件系统
(NFS),利用内存管理来支持 RAMDISK 设备。
内存管理与虚拟文件系统之间的关系:内存管理利用虚拟文件系统来支持交换,交换进
程定期地由调度程序调度,这也是内存管理依赖于进程调度的唯一原因。当一个进程存取的
内存映射被换出时,内存管理向文件系统发出请求,同时,挂起当前正在运行的进程。
在这些子系统中,进程调度子系统是其他子系统得以顺利工作的关键。无论是文件系统
的系统进程还是网络子系统的服务进程,都需要通过进程调度来获得相应的 CPU 时间以正
常运行
【4】
。
2 需求分析
2.1 需求性分析
2.1.1 编写目的
随着 Linux 操作系统的慢慢开始流行,将来会有越来越多的软件运行于 Linux 操作系
统上。本次课题就是以 Linux 操作系统为基础设计的类似于 Windows 操作系统的聊天程序,
使得很多安装的是 Linux 操作系统的人士能够像在 Windows 操作系统上聊天程序一样,方
便的进行沟通。
使用已学完的 Linux 系统、Gtk+界面设计、连接数据库和 socket 通信等功能来实现聊
天系统。
2.2 对界面的需求
1)一个显示框:用来显示发送和接受的聊天信息。
2)两个复选框:(1)编辑:用来控制信息显示框来输入信息是否可编辑。
(2)换行:用来控制显示框里面的文本是否可以换行。
3)三个按钮: (1)历史记录按钮:查看历史记录的信息。(2)发送按钮:发
送需要发出的信息。(3)关闭按钮:关闭窗口。
4)一个录入框: 功能是让用户可以输入需要发送的信息。
5)对通信的需求:(1)绑定服务器的 IP 地址。(2)客户机可以实现发送接
收信息。(3)服务器可以实现发送接收信息。
6)对数据库的需求:聊天信息插入数据库,也可以从数据库里面取出信息。
7)运行环境:Windows 7 系统、虚拟机、linux 系统、MySql 数据库。
3 系统应用技术
3.1 Gtk+界面设计
Gtk+是 Linux 环境下用于图形用户界面开发的一个库,现在已成为类 UNIX 系统下开发
图形界面应用程序的主流开发工具之一,并已移植到 Windows 上了。通过这个库,可以很
方便地实现在 Linux 操作系统中开发图形用户界面
【5】
。
3.1.1 Gtk+基础
最 初 Gtk+ 是 作 为 另 一 个 著 名 的 源 码 项 目 GIMP ( GNU Image Manipulation