
跪求一份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 系统使用心得
windows 就是傻瓜相机;linux 就是数码相机
Linux 学习心得, 以前学了一学期的Linux,现在发现忘了好多,要怎么办啊
找台linux机器,装个虚拟机也行,多练
实践才是硬道理
熟悉C语言了。
还有linux高级编程,怎么感觉任然不会写程序,应该怎么做
问题一:恕我直言,LZ所谓的熟悉也是自以为了吧。
一个程序员,说到对一门语言熟悉,那就显示出不错的功底了,还怎么写不出程序
问题二:你是想写什么样的程序
一个聊天程序,还是一个成绩查询系统,还是某个特定算法的实现,还是对做什么冥冥之中感觉自己仍然力不从心
初步总结:基于linux平台的c语言开发还不是很熟悉,检验办法:写一个简单的一对一聊天程序,要求多平台运行。
进一步窥探:算法与数据结构基础不扎实,视野不开阔,不知道自己该干什么。
建议:继续埋头苦干,研读linux高级编程和算法与数据结构,研习其中程序、算法的实现。
多到CSDN、开源中国等等网站溜达,里面的问答可谓尽显智慧。
祝好
linux有哪些优点
Linux 的优点很多,其中主要的有以下几个方面:eTrade公司的首席技术官John Levin说:“采用Linux操作系统环境比运行与维护UNIX操作系统成本降低几乎30倍”。
总结一下,主要有以下几个原因:低软件成本:由于Linux 是开放源代码的操作系统,除了Kernel免费以外,它的许多系统程序以及应用程序也是自由软件,可以从网上免费获得。
所以它的软件成本非常低廉。
低人员培训成本:Linux最初是从大学生开发出来的,并由重多的业余爱好者共同丰富和完善它的功能,所以有许多的学生和计算机从业人员,已经具备Linux的技能。
而且在低端的PC,PC服务器上也可使用,而且普及率越来越高。
人才储备比较充足,用人单位可以比较容易地招到这方面的人才。
而且,众多的企业级的用户的计算环境是低端(PC,PC服务器)和高端(UNIX服务器或中型机甚至大型机)计算机共存,不同厂商的计算机共存(涉及的操作系统可能有Windows,IBM AIX,HP-UNIX,SUN Solaris 等等),这就要求计算机系统的管理和维护人员具有多个操作系统的技能,而如果采用Linux,由于几乎所有档次的计算机平台都支持Linux,所以技术人员只需这一种操作系统的培训就可以了。
低移植成本:Linux能够在几乎所有的计算机平台上运行,包括PC、PC服务器、UNIX服务器、中型机、大型计算机上,给用户的应用软件在不同的平台之间的移植创造了极为便利的条件。
例如,企业级用户随着业务的不断增长,硬件平台从小型的PC服务器升级到较高端的UNIX服务器,甚至更高端的中型机或大型机的情况是极为常见的。
过去,由于PC服务器使用的是Windows 操作系统,而UNIX 服务器使用的操作系统,中型机和大型机使用的是厂商提供的专用系统,所以在不同的平台之间的软件移植,可能会发生中间件软件的版本更换,应用软件的重新编译,甚至是应用软件源代码的修改,很可能需要比较大的人力物力的投入,而如果采用了Linux 操作系统,不同平台之间的移植就会容易的多。
低管理成本:同理,由于众多的企业级的用户的计算环境是低端和高端计算机共存,不同厂商的计算机共存,如果将操作系统都统一成Linux, 系统的一致性,可降低管理的成本。
同时,任何一个操作系统,都不是完美的,都有一些或大或小的漏洞甚至是错误。
由于Linux是一个开放源代码的软件,有众多的互联网上志愿开发者在协同工作,使得Linux的功能的完善和漏洞的发现和修改的速度非常快,降低了使用和管理的风险,从而降低了管理的成本。
高性能:Linux高性能方面的特点表现在Linux系统资源的低占用率和在高性能运算的优势。
2.3.2 操作系统的低占用率Linux 是由内核(kernel)以及在其之上的实用程序构成的,内核负责管理计算机的各种资源,如处理器和内存,而且必须保证合理地分配资源。
当Linux启动时,内核被调入内存,并一直驻留在内存中直到关机断电。
同大多数的Unix或者类Unix系统类似,Linux的内核在设计的时候被设计的尽量很小,把许多工作交给内核以外的实用程序执行。
通过利用Linux这个特点,用户在安装Linux的时候可以定制安装的应用程序的多少,在某些情况下用户可以仅安装一个Linux的核心。
2.3.3 Linux在高性能运算方面的优势在科学计算和石油勘探等高性能计算领域应用最为广泛的是高性能计算群集技术(High Performance Computing Cluster,简称HPC Cluster)。
它是一种并行计算群集的实现方法。
近年来,新的HPC系统正迅速崛起,这就是使用运行Linux操作系统的Intel平台的计算机来构建HPC Cluster。
由于使用Linux操作系统,通用的硬件平台和标准的网络组件,群集中的各个结点价格相对低廉,扩展容易实现,从而可以得到更高的性价比。
Linux 可以运行在PC、PC服务器上这些传统上是Windows 操作系统垄断的领域,在这一领域, Linux的出现好似一股春风吹来,不仅打破了Windows的垄断,而且它在功能和性能上,都优于Windows操作系统,而更接近与高端的UNIX系统。
使低端的用户,也能享用到某些只有高端系统才能带来的好处。
2.3.4 高可扩展性、可维护性Linux具有的可扩展性与可维护性使Linux具有更多的优势。
可扩展性标准的Linux实用程序有着大量的功能,开发人员可以通过修改源代码来进行功能的扩展。
Linux可以在广泛的硬件平台上运行且有类似的接口,用户可以把应用程序从一个Linux系统很方便的移植到另外一个Linux系统。
可维护性由于Linux的用户界面与各个商业版本的UNIX非常相近,几乎所有的IT技术人员都对其操作界面有相当的了解。
此外,由于Linux可以在各种硬件平台上运行,熟悉Linux的技术人员可以很容易地管理多种硬件平台上的应用。
目前很多版本的Linux比如红旗Linux的用户界面都在模仿Window 进行开发,因此可以方便非IT技术人员实用。
开放的标准Linux是一个从公开源代码发展来的操作系统,因此奠定了Linux相较其他诸如Windows、以及各商业版本UNIX操作系统的先天优势,由于全世界无数的技术人员都可以帮助Linux修改系统错误,提升性能,因此到目前Linux已经迅速成为一个相对健壮的操作系统,并且也越来越多的跻身各种的企业关键业务之中。
如何学习linux操作系统
是的首先要保安装的是正确的,接着保证你的这个可文当前登录账号的执行权限,可以用ls -al查看一下如果,你可以使用如下方式执行:1、.\\\/tlesp (如果后面又参数,你可以根据需要添加参数)2、\\\/home\\\/path\\\/tlsap (如果后面又参数,你可以根据需要添加参数)



