学习Unix/Linux编程要学些什么

最近利用空余时间看了一下《Unix/Linux编程实践教程》,原书名为:Understanding Unix/Linux Programming: A Guide to Theory and Practice。感觉这本书写的还是不错的,讲的Unix/Linux系统编程,主要是通过讲解Unix系统上的命令程序是如何实现的来分析了Unix系统的原理和系统编程。比如讲解了who,cp,ls,pwd等命令用Unix C语言应该怎么实现。通过这种讲解方式,不仅学会了Unix的系统编程,而且还弄懂了Unix操作系统的一些原理性的东西。感觉写的非常不错。

那么,Unix/Linux下的系统编程要学哪些东西呢?通过本书,感觉主要学习一下内容:

1。Unix/Linux 下基本的C语言编程,包括基本编辑工具的使用,vim,Emacs等任意一种,gcc,gdb等编译调试工具的使用,以及Unix系统下的基本命令的使用以及C语言基本语法。也就是要能够在Unix系统下能使用开发工具写出最基本的c语言程序。

2。文件的读写(read,write,close以及文件描述符和文件属性的理解),目录的操作,以及对应于这些系统调用的c库函数。

3。设备的操控(在Unix中,设备是作为文件来操作的,提供了与文件一致的操作接口)。I/O重定向。

4。信号机制(signal)。

5。进程的创建,执行(fork,exec,exit,wait,pipe等),进程之间的通信(IPC:文件/命名管道/共享内存/Socket/信号量)

6。线程的使用(pthread_create, pthread_join, pthread_mutex_lock, pthread_mutex_unlock, pthread_cond_wait, pthread_cond_signal)

7。Socket网络编程。(socket, bind, listen, accept, sendto, recvfrom),理解网络编程的模型。(同步与异步I/O)

对于这些知识,不仅仅是学会这些系统或者函数调用,跟重要的是理解其编程模型。然后就是结合实际需求,利用这些基本知识进行开发了。很多时候,解决实际问题的方法比这些东西更重要,但是,这些基本知识是你开发的必备知识。

最后,推荐想学习Unix或者Linux编程的一定要看看这本书。另外,如果要做应用开发的话,可以再学习一下GUI开发(GTK++或者Qt)。

posted @ 2010-06-11 18:49  gshine  阅读(2293)  评论(0编辑  收藏  举报