
跪求一份linux下网络编程的学习心得
正好我上午正在看的这篇:======================== 解答:学习Linux的四个步骤 假设你是计算机科班出身,计算机系的基本课程如数据结构、操作系统、体系结构、编译原理、计算机网络你全修过 我想大概可以分为4个阶段,水平从低到高 从安装使用=>linux常用命令=>linux系统编程=>内核开发阅读内核源码 其中学习linux常用命令时就要学会自己编译内核,优化系统,调整参数 安装和常用命令书太多了,找本稍微详细点的就ok,其间需要学会正则表达式 系统编程推荐《高级unix环境编程》,黑话叫APUE 还有《unix网络编程》 这时候大概还需要看资料理解elf文件格式,连接器和加载器,cmu的一本教材中文名为《深入理解计算机系统》比较好 内核开发阅读内核源码阶段,从写驱动入手逐渐深入linux内核开发 参考书如下《linux device drivers》,黑话叫ldd 《linux kernel development》,黑话叫lkd 《understading the linux kernel》,黑话叫utlk 《linux源码情景分析》 这四本书为搞内核的必读书籍 最后,第三阶段和第四阶段最重动手,空言无益,光看书也不罩,不动手那些东西理解不了 学习linux\\\/unix编程方法的建议 建议学习路径: 首先先学学编辑器,vim, emacs什么的都行。
然后学make file文件,只要知道一点就行,这样就可以准备编程序了。
然后看看《C程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书来看。
如果想学习UNIX\\\/LINUX的编程,《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷。
这样基本上系统方面的就可以掌握了。
然后再看Douglus E. Comer的《用TCP\\\/IP进行网际互连》第一卷,学习一下网络的知识,再看《UNP》的第一卷,不仅学习网络编程,而且对系统编程的一些常用的技巧就很熟悉了,如果继续网络编程,建议看《TCP\\\/IP进行网际互连》的第三卷,里面有很多关于应用协议telnet、ftp等协议的编程。
如果想写设备驱动程序,首先您的系统编程的接口比如文件、IPC等必须要熟知了,再学习《LDD》2。
对于几本经典教材的评价: 《The C Programing Language》K&R 经典的C语言程序设计教材,作者是C语言的发明者,教材内容深入浅出。
虽然有点老,但是必备的一本手册,现在有时候我还常翻翻。
篇幅比较小,但是每看一遍,就有一遍的收获。
另外也可用谭浩强的《C语言程序设计》代替。
《Advanced Programing in Unix Envirement》 W.Richard Stevens:也是非常经典的书(废话,Stevens的书哪有不经典的
),虽然初学者就可以看,但是事实上它是《Unix Network Programing》的一本辅助资料。
国内的翻译的《UNIX环境高级编程》的水平不怎么样,现在有影印版,直接读英文比读中文来得容易。
《Unix Network Programing》W.Richard Stevens:第一卷讲BSD Socket网络编程接口和另外一种网络编程接口的,不过现在一般都用BSD Socket,所以这本书只要看大约一半多就可以了。
第二卷没有设计到网络的东西,主要讲进程间通讯和Posix线程。
所以看了《APUE》以后,就可以看它了,基本上系统的东西就由《APUE》和《UNP》vol2概括了。
看过《UNP》以后,您就会知道系统编程的绝大部分编程技巧,即使卷一是讲网络编程的。
国内是清华翻译得《Unix网络编程》,翻译者得功底也比较高,翻译地比较好。
所以建议还是看中文版。
《TCP\\\/IP祥解》一共三卷,卷一讲协议,卷二讲实现,卷三讲编程应用。
我没有怎么看过。
,但是据说也很经典的,因为我没有时间看卷二,所以不便评价。
《用TCP\\\/IP进行网际互连》Douglus.E.Comer 一共三卷,卷一讲原理,卷二讲实现,卷三讲高级协议。
感觉上这一套要比Stevens的那一套要好,就连Stevens也不得不承认它的第一卷非常经典。
事实上,第一卷即使你没有一点网络的知识,看完以后也会对网络的来龙去脉了如指掌。
第一卷中还有很多习题也设计得经典和实用,因为作者本身就是一位教师,并且卷一是国外研究生的教材。
习题并没有答案,留给读者思考,因为问题得答案可以让你成为一个中级的Hacker,这些问题的答案可以象Douglus索取,不过只有他只给教师卷二我没有怎么看,卷三可以作为参考手册,其中地例子也很经典。
如果您看过Qterm的源代码,就会知道Qterm的telnet 实现部分大多数就是从这本书的源代码过来的。
对于网络原理的书,我推荐它,而不是Stevens的《TCP\\\/IP祥解》。
《Operating System - Design and Implement》这个是讲操作系统的书,用Minix做的例子。
作者母语不是英文,所以英文看起来比较晦涩。
国内翻译的是《操作系统设计与实现》,我没看过中文版,因为翻译者是尤晋元,他翻译的《APUE》已经让我失望头顶了。
读了这本书,对操作系统的底层怎么工作的就会 有一个清晰的认识。
《Linux Device Driver》2e ,为数不多的关于Linux设备驱动程序的好书。
不过内容有些杂乱,如果您没有一些写驱动的经验,初次看会有些摸不着南北。
国内翻译的是《Linux设备驱动程序》第二版,第一版,第二版的译者我都有很深的接触,不过总体上来说,虽然第二版翻译的有些不尽人意,但是相比第一版来说已经超出了一大截。
要读这一本书,至少应该先找一些《计算机原理》《计算机体系结构》的书来马马虎虎读读,至少应该对硬件和计算机的工作过程有一些了解。
谁有linux的学习心得
针对某一方面,例如shell编程之类的
急....
带着目的去学习,要完成一定的任务。
慢慢来,首先学会基本的文件操作,用熟vi编辑器,能够游刃有余的配置自己的网络。
会安装各种linux上的软件包。
请问谁有Linux的学习心得的吗
问题一:恕我直言,LZ所谓的熟悉也是自以为了吧。
一个程序员,说到对一门语言熟悉,那就显示出不错的功底了,还怎么写不出程序
问题二:你是想写什么样的程序
一个聊天程序,还是一个成绩查询系统,还是某个特定算法的实现,还是对做什么冥冥之中感觉自己仍然力不从心
初步总结:基于linux平台的c语言开发还不是很熟悉,检验办法:写一个简单的一对一聊天程序,要求多平台运行。
进一步窥探:算法与数据结构基础不扎实,视野不开阔,不知道自己该干什么。
建议:继续埋头苦干,研读linux高级编程和算法与数据结构,研习其中程序、算法的实现。
多到CSDN、开源中国等等网站溜达,里面的问答可谓尽显智慧。
祝好
Linux编程的几个重要知识点
说白了,就几个操作,open,close,read,write,Linux将所有东西都抽象为文件,例如存在于硬盘文件系统的固然不用说,连硬件的声卡,串口等都之需要像访问文件那样访问,这确实提供了很大的方便,不需要多记忆API。
这样跟之前驱动程序看过的能联系起来了。
一个驱动程序干些什么东西
很简单,最基本的必须提供这4个系统调用函数。
具体实现就是驱动程序里面要实现的了。
这个就是接口。
进程父进程,子进程,创建进程等。
线程的生成,等待控制等问题。
这里比较好学,进程说白了就是一个执行的程序实力,一个应用程序执行了,那么至少生成了一条进程。
或者干脆说,就是一个“任务”linux根据的就是这个最小单位来调度的,操作系统的任务调度。
当然了,现在是上位机编程,所以不需要知道操作系统的细节,我们只需要了解API。
线程在一个进程中分几个线程,调度颗粒更加小。
着重讨论了pthread 接口内存管理C标准的内存管理函数就不要说了,注意内存泄露等问题。
这里主要是学习内存映像文件,就是说将一个文件搬到内存里面执行。
进程间通讯管道,FIFO,共享内存,消息队列等进程间通讯的手段,这个是操作系统的一个比较重要的概念。
所以还是必须好好的学习。
守护进程
如何学习linux下编程
Linux里面装好GCC\\\/G++\\\/GDB或者python\\\/pdb,先学习在vi\\\/gedit里面写简单code,然后自己用gcc\\\/g++编译,如果有兴趣可以再debug看看.或者先学习bash编程,教程也可以很容易找到.最重要是坚持,每天学习一点\\\/看书\\\/看视屏, 码代码.有问题多思考多问多总结.
对 linux的学习
linux下的gcc可以满足你的c\\\/c++编程需求,想写java,可以在linux下用eclipse。



