跪求一份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设备驱动程序》第二版,第一版,第二版的译者我都有很深的接触,不过总体上来说,虽然第二版翻译的有些不尽人意,但是相比第一版来说已经超出了一大截。要读这一本书,至少应该先找一些《计算机原理》《计算机体系结构》的书来马马虎虎读读,至少应该对硬件和计算机的工作过程有一些了解。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-05
《Operating System - Design and Implement》这个是讲操作系统的书,用Minix做的例子。作者母语不是英文,所以英文看起来比较晦涩。国内翻译的是《操作系统设计与实现》,我没看过中文版,因为翻译者是尤晋元,他翻译的《APUE》已经让我失望头顶了。读了这本书,对操作系统的底层怎么工作的就会
  有一个清晰的认识。
  《Linux Device Driver》2e ,为数不多的关于Linux设备驱动程序的好书。不过内容有些杂乱,如果您没有一些写驱动的经验,初次看会有些摸不着南北。国内翻译的是《Linux设备驱动程序》第二版,第一版,第二版的译者我都有很深的接触,不过总体上来说,虽然第二版翻译的有些不尽人意,但是相比第一版来说已经超出了一大截。要读这一本书,至少应该先找一些《计算机原理》《计算机体系结构》的书来马马虎虎读读,至少应该对硬件和计算机的工作过程有一些了解。

跪求一份linux下网络编程的学习心得
如果想学习UNIX\/LINUX的编程,《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷。这样基本上系统方面的就可以掌握了。然后再看Douglus E. Comer的《用TCP\/IP进行网际互连》第一卷,学习一下网络的知识,再看《UNP》的第一卷,不仅学习网络编程,而且对系统编程的一些常用的技巧就很熟悉了...

请有经验LINUX网络编程的兄弟给我提点好的建议和分享学习经验,多谢~
学这个《UNIX网络编程.卷1》必看,跟着一步步做就可以学到很多东西 关于电脑问题,最好装个win7 64位,然后安装2-3个虚拟机来运行,内存最好弄到8G 我开始就是对着那本书来学的,不错的内容,还有源码 配合着tcp\/ip详解.卷1,都整明白了,也算个不错的水平了 ...

我要研究网络编程,哪位高手告诉我怎么入门
如果你要学习网络编程技能的话,根据我的个人经验,你可以从下面入手:(1)、首先在自己的电脑上安装一个 Linux 系统、配置好网络环境,并且达到熟练使用 Linux 操作系统的程度。(2)、Linux 网络编程实质上是一个基于客户端\/服务器(即:client\/server)的套接字编程结构(即:网络的 socket 编程)。

如何学习linux平台上的网络编程
你需要找到《UNIX网络编程第1卷:套接口API》看这个书的同时,你从网上找些最简单的网络通讯程序小例子看看,对比书的介绍,很快你就会做个简单的聊天工具。然后:《UNIX网络编程第2卷:进程间通信》尝试做个具备一定并发量的Server端程序,使用多线程方式。用这本书做你的学习的总线,网上搜索学习做验证...

Linux高性能网络编程十谈|工具篇
让我们首先看下Linux服务器中与高性能网络编程密切相关的参数和工具。内核参数方面,例如:max-file-number:控制文件描述符数量,可通过ulimit -n修改用户级限制,如果达到上限,需通过\/etc\/security\/limits.conf调整。\/proc\/sys\/fs\/file-max是系统级限制,临时修改可提升资源使用。epoll_max_user_watches...

你是如何学习linux编程的?
网络编程是Linux编程的另一重要方面,主要涉及socket编程。理解TCP\/IP协议,熟悉socket申请、绑定、监听、接受等步骤,对构建服务器模型有重要意义。进程池、线程池和多进程方式的复用是提高并发性能的关键。数据库知识也是Linux编程中不可或缺的部分。虽然数据库不属于Linux范畴,但掌握数据库操作对于进行Linux...

linux学会了能干什么
第一,您将深入理解操作系统的本质,作为电脑专家,能更精细地管理与维护自己的系统,确保运行高效稳定。第二,学习Linux的网络编程和服务器管理,为职业发展铺路,无论是在企业内部IT岗位,还是云计算、网络安全等技术领域,都将成为您独特的优势。第三,Linux的开源特性赋予用户极大的灵活性,可根据个人...

那位能分享学习linux的过程经验
1,linux不是玩具 如果你想系统的学习linux,你必需清楚的认识到这一点.现在有很多人,号称是linux爱好者,但是他们大部分的事情还是用windows 做,而linux只是作为一个随便玩玩的系统.他们懂得一些linux的基本操作,知道有linux这个玩艺,也因为经常听人家说linux好就咬定了 linux就是好.只要有人说linux比windows差,那么他...

Linux 网络编程(epoll、epoll反应堆、心跳、线程池)
epoll通过复用文件描述符集合传递结果,避免了每次等待事件前重新准备文件描述符集合的步骤。获取事件时,只需遍历那些被内核IO事件异步唤醒并加入Ready队列的描述符集合,无需遍历整个集合。epoll是Linux大规模并发网络程序中的热门首选模型。epoll函数的基本API包括创建epoll句柄、监听文件描述符事件、控制文件...

关于Linux下的C\/c++编程
当学会了常见的命令操作之后,你就可以在linux平台上开始编写你的C\/C++语言代码了,这时的编写代码和windows上编写的代码没有多大的区别,只是有一些头文件需要替换一下就可以了。接着学会如何使用gcc\/g++编译工具、gdb调试工具(到后期熟练了之后还需要掌握make工具),这样就可以编译调试自己写出的程序了。

相似回答