csapplinux一定要cdrom吗在linux上学习吗

你是如何学习 Linux 编程的?
感觉有实例的话学起来比较快,我也买了apue这本书,但是从头看到尾好像有点乏味?看到有些书有一些练习,例如实现ls命令,chmod命令等等。大家还有啥建议吗?
按投票排序
首先,要学Linux编程,你得会用Linux,也就是得在命令行环境下生存下来。什么叫生存下来呢?就是我现在给你一台主机,键盘,显示器啥的,然后给你一个服务器版的Linux系统的光盘或者其他什么安装盘,你去把这台主机用起来。什么叫用起来呢?你平常用Windows电脑干啥,你现在还用这台电脑干啥。新建文件啊,查看文件,编辑文件,保存文件,复制,移动,删除,打包,解压,联网,下载个什么东西啊等等基本操作你得会。还有软件怎么安装,不仅要熟悉apt-get和yum,还有给你源码的软件怎么安装你得会,另外要熟悉Linux下的文件系统,每个目录是干啥的,目录下的文件是干嘛的,插入一个U盘,如何挂载这个U盘,操作U盘下的文件你得会啊。这个看一本书就行了,《鸟哥的Linux私房菜-基础篇》,记得是基础篇,记得安装Linux系统自己操作一遍,还有一本是服务器篇,你既然是要学Linux编程开发,那就不用看服务器架设篇了。做完这一步,你可以开发了。Linux下开发,两种基本语言,C和C++咯,至于其他人要说Python,Java,Ruby啥的不讨论,因为就讨论Linux下的开发,什么是Linux开发呢?就是利用Linux的API进行开发咯,首先你得会C语言或者C++语言啊,这个去看丹尼斯的《C程序设计语言》,注意是丹尼斯的,C++的就去看《Essential C++》或者《C++ Primer》,然后在Linux下的程序开发,Linux的API是遵循POSIX标准的,自行谷歌什么叫POSIX。Linux下程序开发几大块,文件操作,这个很重要,你要知道Linux下的一个思想叫一切皆文件,可见文件读写多重要了。I/O模型,五大I/O模型,阻塞,非阻塞,复用,信号驱动和异步I/O,环环相扣丝丝相连,概念和操作都要仔细琢磨,最重要的当属复用,就是select,poll和epoll,面试笔试就问这个东西,要知道他们的适用范围和优缺点。进程和线程,包括进程和线程的概念和区别,进程和线程的建立,同步,通信,互斥等等。网络编程,就是socket编程,Linux编程,这个学不好等于啥都没学,这个估计还得了解一下TCP/IP协议,编程方面主要是那几步,申请socket,bind,listen,accept几步,要熟悉种常见的服务器模型,进程池线程池方式的,多进程方式的,复用方式的,最重要的是复用方式的,这部分可以先只写服务器,测试直接用Telnet就好了,加快速度么。其余的就是数据库,这个东西不属于Linux,但是还得会,要不然啥都做不了,看那本《MySQL必知必会》,当然深入的话还得找本专业的书细细看。这个时候就可以真刀真枪的去干点有意思的事了,比如写个终端下的类似于QQ的软件啊,包括服务器和客户端啊,慢慢的增加并发数,比如可以同时支持五千人在线啊,文件传输啊等等。然后学学Qt,熟悉一下图形界面,可以把你的终端下的QQ完全改成图形界面下的。估计到这个时候,你差不多在Linux下进行像样的开发了吧。在这个过程的学习中,相信你已经学会Makefile的编写啊,编译啊,链接啊等等一些细枝末节的东西了,还得反思一下把零散的东西串一串,要系统化。接下来就是继续深入了,Linux为什么这么多人用,好处在哪里,你得去稍微的看看内核源码啊,内核的进线程调度啊,我告诉你,Linux内核的一个链表都够你研究好几节课的。哦,这个时候,数据结构啥的又得翻出来加强一下了不是,计算机网络啥的也得看看,操作系统原理啥的也得看看呢不是,把这些东西放在这里是合适的,前面让你知其然,知道怎么编程怎么做,现在要知其所以然了不是。在学习的过程中,要不断积累和了解最新的东西,最起码要知道个概念,比如分布式,大数据,云计算,机器学习,计算机视觉,JIT等等,形成知识链,这样不会导致你最后不知道学啥。有个建议,一定要学一下Python,一定要学一下Python,一定要学一下Python,重要的事情说三遍。它能极大的提高你的工作效率,也能和C/C++结合在一起用,很nice的语言。最后推荐几本书(前面的包含在内):《鸟哥的Linux私房菜 基础篇》《C程序设计语言》 丹尼斯写的《Linux C编程一站式学习》 宋劲杉写的《Eensstial C++》《C++ Primer》《Effective C++》《Linux网络编程》 宋劲彬写的《Unix环境高级编程》《Unix网络编程》 两部《Linux高级程序设计》 华清远见的《MySQL必知必会》《数据库系统概念》《大话数据结构》《算法导论》《Linux内核情景分析》《深入理解Linux内核》《深入理解计算机系统》《现代操作系统》《深入理解计算机网络》《TCP/IP》的三卷经典书廖雪峰的Python学习网站另外各大论坛,stackoverflow, 博客园,CSDN等等,多逛逛,当然还有知乎也要多逛逛。差不多就这么多了吧,前文列举的东西,只要完成一半,估计就不用我教你学了,你自己应该知道自己该学啥了……有时间在更,估计是没时间了……1月20日更:之前有一点忘记写了,一定要学习一款版本管理工具,首先要了解一下什么是版本管理。然后选择一款版本管理工具,这个很重要。目前常用的是git和svn,就用git就好了,当然你要去用svn那也行。还是建议用git,看廖雪峰的git教程就好。
取决于你对计算机基础的掌握程度。首先你需要达到把CSAPP看完的那种对体系的了解程度然后你可以搞一些简单的,用到OS比较多feature的开源项目看看早期版本的redis值得一看,redis的作者是不造轮子的高手。 还有如果你们学校有Online Judge的话也可以看看他的源码。之后你应该已经明白自己的路了,多写吧!
入门用《Unix/linux编程实践教程》整本书就是通过实例进行讲解
个人觉得做自己感兴趣的事情就好,不要因为大家都说 linux 好,所以也觉得好。当你真正喜欢 linux 的时候,才不会觉得乏味。为了用而学,不要为了学而用。
因为没有具体的实现案例和项目。你觉得无意思。Linux
其实这本书中的例子也有这样大量的命令实现的,书中代码10000多行,都敲一遍并且调调bug你就会发现另一个世界。我现在也在学习,代码在github上托管,如果有兴趣,大家一起学
谢邀。我最开始并没有刻意、主动去学习Linux编程。我是因为网络编程课程需要,被迫把C/C++的编程环境从windows迁移到Linux的。然后发现在Linux环境编程是一种完全不同的体验,很爽。除此之外,激发我学习Linux兴趣的,可能还有同时也在进行的操作系统原理课程实验——diy Linux 早期内核。APUE至今没怎么看过,感觉UNP更好(玩)一点,对并发、网络编程入门很有用。
APUE还乏味的话,就不要写Linux程序了。主要是知道系统提供了什么接口,这些接口分别是什么样的概念,用在哪些地方,会有哪些坑,怎样写代码才能更健壮。APUE不是一本单纯的API手册。
APUE 非常好的一本书 不乏味 它是基础读物 好好看吧
Apue并不是一本简单的api查询手册 ,它还讲了很多操作系统的细节,内存,文件系统等方面,以及很多历史原因造成的坑。 还陈述了许多重要的概念,个人觉得,在使用这一层面的api,对概念的正确把握很重要,比如用户,有效用户等。 这本书都有讲。反正我当时看的时候有种 卧槽 那么棒 的感觉,不知道题主静下心来看看的话会不会有同感。
已有帐号?
无法登录?
社交帐号登录急需了解在 linux系统下 使用c语言 做底层开发需要学习的东西,希望好心的过来人指点下。时间比较紧迫_百度知道
急需了解在 linux系统下 使用c语言 做底层开发需要学习的东西,希望好心的过来人指点下。时间比较紧迫
软件硬件都有些了解但是都不实用,学什么,我想知道我现在到底该做什么,现在要工作了我是学电子的
提问者采纳
CSAPP 深入理解计算机系统APUE UNIX环境高级编程LDD Linux驱动程序开发各种C语言经典书籍 C陷阱与缺陷 C指针 C专家编程等,会让你对C语言有一个重新的认识。各种编辑工具 VIM CTAG等熟悉Linux的基本命令和一两种脚本shell python perl
提问者评价
其他类似问题
,他解释上述基本所有命令和Linux初学者需要一定程度的不适感,后驱.,然后再尝试安装Linux在XP中使用VMware或重新安装分区的在线搜索,你可以了解关于“Linux下的C编程大全更高版本的内核。随便一个解释linux的书,如果你学习C和C比较专长..,在国家的嵌入式视频.,你需要做驱动开发,得到一本书,学习Linux系统管理,在线,本项目不认为鸟哥的Linux私房菜“上楼”如何安装linux系统,应用程序,先熟悉一下linux命令,可以采取一看,搜搜
为您推荐:
其他1条回答
C语言先做着呗,就算写也是大牛,再有 底层国内很少有人写做底层开发 中国没几个合格的
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 csapp中文版 pdf 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信