ubuntu系统菜鸟入门完全使用手册?ubuntu系统
老铁们,大家好,相信还有很多朋友对于ubuntu系统菜鸟入门完全使用手册和ubuntu系统的相关问题不太懂,没关系,今天就由我来为大家分享分享ubuntu系统菜鸟入门完全使用手册以及ubuntu系统的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
怎么学习linux
学习Linux步骤:
1、先了解了解基础吧,找一本薄一点的,浅一点的书,了解一下什么是linux。有个基本了解即可。不建议马上看《鸟哥的Linux私房菜》,这本书很不错,如果你了解linux基础之后再看,对你可以说是不受益匪浅都不行。没基础看《鸟哥的Linux私房菜》比较痛苦,内容很多。
2、了解之后,在自己电脑上弄个虚拟机,装上linux系统(redhat或ubuntu都行)。专攻《鸟哥的Linux私房菜》。当你把这本书攻下来时,才知道原来命令行并不可怕,自己打着打着就很长啦。
学linux最主要靠实践,不实践,只看书对你没好处的哦。自己在虚拟机上慢慢玩吧,玩多了就知道咋回事啦。不懂的多找资料弄懂,弄懂之后再实践,这才会有收获。
那位能分享学习linux的过程经验
1,linux不是玩具
如果你想系统的学习linux,你必需清楚的认识到这一点.现在有很多人,号称是linux爱好者,但是他们大部分的事情还是用windows做,而linux只是作为一个随便玩玩的系统.他们懂得一些linux的基本操作,知道有linux这个玩艺,也因为经常听人家说linux好就咬定了 linux就是好.只要有人说linux比windows差,那么他们就奋起反驳,他们也看不起用windows的人,认为用windows的人水平低.但是自己用电脑的大部分时间还是用windows并且把重要的文件都放在了windows分区,因为他们骨子里只把linux当做玩具,没有真正领悟 linux的精髓所在.如果你真正想系统的学习linux,想用linux有所作为,那么请忘记windows的思维方式,慢慢感受和习惯linux的操作方式,总有一天你会真正体验到他的奥妙所在,从而从自己内心深处喜欢他,使用他,而不是为了赶时髦或向人炫耀而使用他.
2,手头有一本好的入门教材吗
"如果你还没有好好的读完过一本linux安装及入门教材就不要到初学者论坛来问问题!因为你连问问题的资格都没有!"这是我的一个比较偏激的观点.
如果你现在开始下决心学习linux了,那么第一件你要做的事情是到书店去挑一本好书.而不是到论坛社区去问该用什么版本,该如何学习 linux.一本好的入门教材可以让你快速领悟linux的操作方式,系统的基本使用等等.而且都是前人总结经验写出来的,他可以帮你搭起一个学习 linux的框架,对linux有一个总体的认识.就好比建一撞大楼前先打好地基,搭好混凝土框架.以后就可以慢慢往这个框架里添砖加瓦,最后建起大楼.而那些想急于学习的,不想看书,只想靠混论坛来学习linux知识的人,就好比建一撞大楼,今天建好第一层,然后第一层就要全部粉刷好,装修好,家具买好住进去,然后第二天再开始建第二层.这样没有整体规划的学习是学不好linux的,最后的结果是浪费自己的时间,也浪费别人的时间.如果你不信,可以让实事去告诉你,以一年为限,你和你的一个朋友同时从0开始学linux,计算机基础差不多.你去买几本好书自己慢慢看边看边做实验,让你的朋友整天到各大论坛瞎混零散的学些linux知识.也许一开始,你的朋友会比你懂得多,但是一年以后你的水平肯定在你的朋友之上.在初学阶段,不要随便在论坛上发问,多看书是根本,即使真的非问不可的问题,也要先自己动手察资料解决.实在不行再来问,高手不会鄙视菜鸟,因为每一个高手都是从菜鸟过来的,他们都知道菜鸟的苦衷.但是高手会看不起那些自己不愿动手动脑不会学习解决问题而只想得到现成答案的人.那样的人会被高手在心里暗骂成不配用linux的蠢货.
你需要以下几种书:
一本好入门教材->一本linux指令参考手册->linux系统管理手册->讲解linux系统原理的书.
一开始,你只需要入门教材就可以了.并且严格安教材的讲解去学习,不要一天到晚想着去装显卡驱动啦,装游戏啦,装软件啦,这些都没有必要.你就当你自己的电脑不能上网,只能通过看书学习.慢慢看书,稳抓稳打.慢慢地就融会贯通了.这时候你再到linux初学者论坛去看看,你在那里早已经是高手了.
另外,一开始你要选定一本入门教材,但是不能只看一本,因为有些书上讲的,可能是另外的书上没有的.因此,重点选一本教材看完.然后再看两三本入门教材浏览一下.作为对第一本书的知识的扩充和巩固.在看书过程中,如果你有什么不懂的,不要急于上论坛问,自己认真看几次,实在不懂没有关系,把问题放在那里.不要钻牛角尖不懂不肯放手,这种精神是好的,但是方法是错误的.你尽管学下去,也许你看完书本以后的内容,就对前面不懂的内容豁然开朗了.这是在学习linux中常有的情况.
另外,现在很多入门书籍是针对非技术型用户的.(我把那些对linux本身不感兴趣,只想用他来上网,听音乐和打字的人称为非技术型用户,而把对linux本身感兴趣的人称为技术用户)
这些针对非技术型用户的入门书籍几乎通篇都是插图,讲解的内容都是如何在图形界面下操作.这些书籍并不能帮你成为一个高手.反而会让你养成倚赖鼠标和图形界面操作的习惯以后很难改掉.因此不能看这些书,一定要买那些一开始就从系统基本机构基本命令开始讲解的书籍.我看过的第一本linux入门书籍共有十多章,但是他从第十一章开始才大致的讲解了一下图形界面的知识.我很感谢这本书,让我一开始就脱离了windows的思维方式,给我以后的进一步学习带来了很大帮助.
完成以上的内容,你就完成了建大楼打地基建混凝土框架的过程了.可以接下来进一步学习了.
3,你看完系统自带的文档了吗?
当你完成入门的过程后,就可以开始读其他的文档,然后到论坛的精华区看看,向你建起来的大楼框架中添砖头了.当然,首先要读的,还是系统自带的文档.
绝大多数linux发行版都自带非常详细的文档.比如我一直在用的redhat,他有从系统安装到系统安全,针对不同层次的人的详尽文档.静下心来,把这些文档读完,比看任何论坛的精华区都有用.书籍和文档就好比是你每天都离不开的一日三餐,论坛区的精华文档就好比是点心和水果.你可以不吃点心和水果,但是决不能不吃正餐.
当然,不能为看文档而看文档,你一定要边看边安文档中说的做试验验证.这样才印象深刻,否则看过就忘记了等于没有看.
另外,如果真心想学习linux就不要吝啬,也不要害怕丢失数据而不敢做实验.我建议你去买一个小的二手硬盘,然后放开手干.不要怕丢失数据而不敢做,如果你没有学会技能,将来做了linux系统管理员或者网络管理员到那时因为不会而丢了数据就是大事情了.
4,学习linux不是逛自由市场.
经常看到有人问用什么版本的linux好,其实只要你认真学习无论什么版本都挺好的.要知道,开发linux发行版的人都是通读过linux内核代码,对linux原理极其精通的人,而且每一个开发团队都对他的发行版做过测试后放出的.那些国际知名的大品牌更是如此.因此,讨论什么版本好并无意义,关键是你是不是真心想学.不过,为了避免曲高和寡,最好选用的人多的版本,比如redhat manrake suse等等.国内有一两个 linux版本做的也不错,但是国内的linux都是面向非技术型用户开发的,因此,如果你想成为高手,建议不要用国内的版本.
学习linux不是逛自由市场,选定版本就要静下心来学习.不要今天换版本明天要升级.这样对你没有好处.我见过一些人号称用过十几种甚至几十种linux,向人谈论起来头头是到,好像懂的很多,但是如果你让他去用linux搭建一个web服务器,做一个linux网关,他就什么都不会了.他们把时间都浪费在了版本的转换上了.
5,你能看懂英文文档吗?
谈论这个问题,我有点低气不足,因为我自己的英语很差.但是,至少我可以无障碍的读完一般的计算机文档.计算机英语很简单,只要熟悉了计算机专业英语,高中毕业的水平就可以轻松的阅读计算机文档了.如果你的英语实在太差了,连最简单的计算机英语文档都看不懂,那么在学习linux的同时,请赶紧学习英语.也许你说,你可以看翻译的文档,当我还是一个菜菜鸟的时候,也是这样认为的.但是,后来才发现,如果你想深入学习linux,看不懂英文文档实在是太难了.写的最好的,最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的.即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表.你去看看各大软硬件生产商的官方网站,有哪一个不是用英语作为其主站的?长期用windows的人会很不习惯这一点,装个软件还要看半天文档,应为windows用起来实在太简单了.但是如果你想学习linux就必需学会看各种文档,而大部分的文档都是用英语写的.我发现很多人甚至连man文档都不会看,有什么命令不会用了就跑到论坛上来问,还装出一副可怜相,乞讨一个命令的用法.有这些时间还不如自己看看man文档,即使你一个一个单词的翻译成中文再自己看都比问别人强,因为别人的回答再怎么详尽都比不上man文档详尽.安装一个新的软件时先看README,再看INSTALL然后看FAQ,最后才动手安装,这样遇到问题就知道为什么.否则,说明文档都不看,结果出了问题再来找答案反而浪费时间!古人说欲速则不达就是这个道理!
6,忘记windows的思维方式
思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度.现在很多人用linux.但是,他们用linux的方式完全是 windows的那一套方式.骨子里都是windows的思想.这样是不能领悟linux的精髓体验不到他的优越性的.我前几天看到一个朋友要把刚装了不到2天的mandrake 10删除掉,我问他为什么,他说太慢了,受不了,还是用windows快.然后我留意了一下他用linux的方式,他的所有操作都带着windows的影子.他连最基本的删除,移动文件这样的操作都要用鼠标,这样当然慢了!最后我只好说,你删除吧,你不适合用linux, linux不是这样用的.各位可以去看看那些linux高级用户,他们是怎样操作的.通常他们都是在X上开一个xterm或者rxvt终端,80%以上的操作都在这个终端下用命令完成,因为 linux的命令行十分强大,速度也十分快,简单的几个命令的组合就能完成非常复杂的操作.举一个例子:linux的常用命令find,去看看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会了就对他爱不释手.他的功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和 grep命令,那么他能完成非常复杂的操作,如果同样的操作你用图形界面的工具来完成,恐怕要多花十几陪的时间.因此linux高手经常会说:如果没有 find和grep我们还怎么活.但是现在大部分的linux初级用户受到windows影响都喜欢用图形界面的工具来完成一些基本的操作,我并不是说图形界面不好.只是由于linux和windows设计思想的不同他们的操作方式也有很大不同.在windows下用图形界面操作会比敲命令快,但是 linux是一个命令行组成的操作系统,他的精髓在命令行!无论图形界面发展到什么水平这个原理是不会变的!
7,入门以后多学命令
当你看完了一两本入门书籍后就应该扩充自己的知识,多学习linux命令,但是不要在初学阶段就系统的学习linux命令,初学阶段只要学会书上提到过的命令就可以了.单靠学习各种命令而成为高手是不可能的,但不会命令而成为高手也是不可能的.这就好比学英语,什么语法都不懂,只捧着单词手册背单词是学不会英语的,但是没有单词词汇量英语水平也提不高的.
在linux中学习命令的最好办法是学习bash脚本编程.bash脚本比起其他语言来学习简单,但是功能却十分强大.通过学习bash编程,能让你掌握大量的linux命令.另外,买一本命令参考手册是必要的,遇到不知道怎么用的命令可以随时查询,这要比察man文档快.特别适合英语不好,看不懂man文档的人.
在linux中,命令可分为系统基本命令和应用程序命令.系统基本命令是所有的unix类系统都支持的命令,走到哪都不变,只要是unix类系统上就肯定有.比如ls,rm,rmdir,cp,cd,mv,cat等等.这样的基本命令大约有200个,这些命令是一定要掌握的,我买了一本< redhat 7指令参考手册>这本书非常好,他根据命令的常用指数分类,标明3颗星的为最常用命令,一定要掌握,两颗星的其次,1颗星的只要知道一下就可以了虽然现在都已经FC3了,但是经典的UNIX基本命令几十年来都没有变过!另外有些命令是linux特有的或者是某一个应用程序的可执行文件比如xmms播放器.这些只要知道就可以了,不知道也无所谓.有些命令比较少用,因此通常都记不住他的用法,对于这些命令至少要知道有这个命令,脑子里有印象,需要用的时候察一下手册就可以了,但是决不能不知道这个命令的存在!
8,学会管理系统
等到有了基本知识,也掌握了一定量的命令用法后,就可以进一步学习管理系统.这些内容入门书上会有,但是不会很深入.要深入的学习系统管理,就要去买一本类似之类的书.认真的看书并做实验,可以让你很快的进步.学习配置各种网络服务器,用linux搭建网络,这些都是学习linux系统管理和网络管理的好方法.到了这个阶段就可以经常上网察察资料,看发布软件的官方网站文档和FAQ,看看论坛精华区文章.但是不能本末倒置,多看书还是根本.书籍和官方文档可以让你系统的学习,但是论坛可以让你学到一些小知识,小技巧.我本人也经常到论坛上来看看,因为即便是一个新手,也可能会发现一些你所不知道的小技巧,看论坛可以学到这些小技巧.但是我看文档和看论坛的时间比不会小于4:1.可以把平时积累的问题一次在论坛上发问.但是初学的时候不要频繁上论坛,因为你要问的问题都在书上写着,耐心一点,你很快就能看到了.
9,了结系统结构
等你有了一定的系统管理知识,知道了/etc下那些配置文件有什么用,知道了一般的网络服务器如何配置后,就可以去了解系统结构了.了解系统结构不是要你去看什么文件夹放什么内容,而是要学习一些原理性的东西.比如系统是如何引导的,引导后启动了那些东西.系统中哪些是最基本的库文件,有什么用等等.学习系统结构的最好方法是自己做一个linux系统,再也没有什么能比自己做一个linux系统更能学习系统结构的了.LFS(linux from strach)可以教你从源代码自己编译一个系统.通过自己编译一个系统,你就可以了结linux系统结构,知道哪些文件是干什么用的,以及他们如何协调工作.当然,在你达到LFS水平之前还有很多事情要做,比如学会如何编译安装源代码发布的软件和编译新的内核等等.到了LFS水平,那么在大多数 linux论坛上你就可以被人称作"高手"了!到了这个地步,就相当于一撞大楼已经基本建好,但是还需要粉刷和装修,真正的细活还在后面!
永远记住天外有天,人外有人的道理.即便有了LFS水平,在那些搞linux系统开发,通读过linux内核代码的人看来你还是一个菜鸟.因此,请时刻保持虚心的态度.即便是在论坛上只有一颗星级别的人,也有可能是一个潜在的,真正的高手!大多数真正的高手平时都在搞研发工作,哪里有时间上论坛啊!倒是有很多大学还没毕业的学生,整天混在论坛上.
10,学习专业课程
如果你不是计算机专业的,而想把linux学好,就一定要学习专业课程.学习微机原理,操作系统,计算机网络等等专业课程是必需的.为什么同时开始学习linux,有些人学的非常快,不到半年就成了高手,有些人玩来玩去还玩不出名堂,玩了一两年还是菜鸟?因为那些学得快的人有基础,他们都学过专业课程.同样一篇文档,没有基础的人可能看了三遍还不明白,基础扎实的眼睛扫两下就懂了!这就是专业和非专业的差别!因此,要想达到更高的境界就一定要学习基础的专业课程.
11,保持虚心学习的态度
我想再重复一遍天外有天,人外有人的道理!
保持虚心的学习态度不仅能让你学到更多知识,而且会让你受人尊重.
在linux的世界里,如果你想靠混论坛,发水贴,换几颗星星增加一下级别,然后再面对菜鸟说几句牛哄哄的话来赢得别人的尊重是不可能的.即便是一个刚入门的菜鸟,也能分辨你回答问题的质量,从而知道你到底有多少水平.另外,当你成了"高手"的时候,你也能从"菜鸟"那里学到很多知识.因为有很多问题是你从来没有想过的,认为自己肯定会的,但是实际遇到的时候会有困难.而"菜鸟"们往往更善于发现这类问题.这就是中国人常说的"教学相长"!
关于linux学习路线的问题 请教前辈
很多同学接触Linux不多,对Linux平台的开发更是一无所知。而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段。下来我将会结合自己的几年的个人开发经验,及对 Linux,更是类UNIX系统,及开源软件文化,谈谈Linux的学习方法与学习中应该注意的一些事。
就如同刚才说的,很多同学以前可能连Linux是什么都不知道,对UNIX更是一无所知。所以我们从最基础的讲起,对于Linux及UNIX的历史我们不做多谈,直接进入入门的学习。
Linux入门是很简单的,问题是你是否有耐心,是否爱折腾,是否不排斥重装一类的大修。没折腾可以说是学不好Linux的,鸟哥说过,要真正了解Linux的分区机制,对LVM使用相当熟练,没有20次以上的Linux装机经验是积累不起来的,所以一定不要怕折腾。
由于大家之前都使用Windows,所以我也尽可能照顾这些“菜鸟”。我的推荐,如果你第一次接触Linux,那么首先在虚拟机中尝试它。虚拟机我推荐Virtual Box,我并不主张使用VM,原因是VM是闭源的,并且是收费的,我不希望推动盗版。当然如果你的Money足够多,可以尝试VM,但我要说的是即使是VM,不一定就一定好。付费的软件不一定好。首先,Virtual Box很小巧,Windows平台下安装包在80MB左右,而VM动辄600MB,虽然功能强大,但资源消耗也多,何况你的需求Virtual Box完全能够满足。所以,还是自己选。如何使用虚拟机,是你的事,这个我不教你,因为很简单,不会的话Google或Baidu都可以,英文好的可以直接看官方文档。
现在介绍Linux发行版的知识。正如你所见,Linux发行版并非Linux,Linux仅是指操作系统的内核,作为科班出生的你不要让我解释,我也没时间。我推荐的发行版如下:
UBUNTU适合纯菜鸟,追求稳定的官方支持,对系统稳定性要求较弱,喜欢最新应用,相对来说不太喜欢折腾的开发者。
Debian,相对UBUNTU难很多的发行版,突出特点是稳定与容易使用的包管理系统,缺点是企业支持不足,为社区开发驱动。
Arch,追逐时尚的开发者的首选,优点是包更新相当快,无缝升级,一次安装基本可以一直运作下去,没有如UBUNTU那样的版本概念,说的专业点叫滚动升级,保持你的系统一定是最新的。缺点显然易见,不稳定。同时安装配置相对Debian再麻烦点。
Gentoo,相对Arch再难点,考验使用者的综合水平,从系统安装到微调,内核编译都亲历亲为,是高手及黑客显示自己技术手段,按需配置符合自己要求的系统的首选。
Slackware与Gentoo类似。
CentOS,社区维护的RedHat的复刻版本,完全使用RedHat的源码重新编译生成,与RedHat的兼容性在理论上来说是最好的。如果你专注于Linux服务器,如网络管理,架站,那么CentOS是你的选择。
LFS,终极黑客显摆工具,完全从源代码安装,编译系统。安装前你得到的只有一份文档,你要做的就是照文档你的说明,一步步,一条条命令,一个个软件包的去构建你的Linux,完全由你自己控制,想要什么就是什么。如果你做出了LFS,证明你的Linux功底已经相当不错,如果你能拿LFS文档活学活用,再将Linux从源代码开始移植到嵌入式系统,我敢说中国的企业你可以混的很好。
你得挑一个适合你的系统,然后在虚拟机安装它,开始使用它。如果你想快速学会Linux,我有一个建议就是忘记图形界面,不要想图形界面能不能提供你问题的答案,而是满世界的去找,去问,如何用命令行解决你的问题。在这个过程中,你最好能将Linux的命令掌握的不错,起码常用的命令得知道,同时建立了自己的知识库,里面是你积累的各项知识。
再下个阶段,你需要学习的是Linux平台的C/C++开发,同时还有Bash脚本编程,如果你对Java兴趣很深还有Java。同样,建议你抛弃掉图形界面的IDE,从VIM开始,为什么是VIM,而不是Emacs,我无意挑起编辑器大战,但我觉得VIM适合初学者,适合手比较笨,脑袋比较慢的开发者。Emacs的键位太多,太复杂,我很畏惧。然后是GCC,Make,Eclipse(Java,C++或者)。虽然将C++列在了Eclipse中,但我并不推荐用IDE开发C++,因为这不是Linux的文化,容易让你忽略一些你应该注意的问题。IDE让你变懒,懒得跟猪一样。如果你对程序调试,测试工作很感兴趣,GDB也得学的很好,如果不是GDB也是必修课。这是开发的第一步,注意我并没有提过一句Linux系统API的内容,这个阶段也不要关心这个。你要做的就是积累经验,在Linux平台的开发经验。我推荐的书如下:C语言程序设计,谭浩强的也可以。C语言,白皮书当然更好。C++推荐C++ Primer Plus,Java我不喜欢,就不推荐了。工具方面推荐VIM的官方手册,GCC中文文档,GDB中文文档,GNU开源软件开发指导(电子书),汇编语言程序设计(让你对库,链接,内嵌汇编,编译器优化选项有初步了解,不必深度)。
如果你这个阶段过不了就不必往下做了,这是底线,最基础的基础,否则离开,不要霍霍Linux开发。不专业的Linux开发者作出的程序是与Linux文化或UNIX文化相背的,程序是走不远的,不可能像Bash,VIM这些神品一样。所以做不好干脆离开。
接下来进入Linux系统编程,不二选择,APUE,UNIX环境高级编程,一遍一遍的看,看10遍都嫌少,如果你可以在大学将这本书翻烂,里面的内容都实践过,有作品,你口头表达能力够强,你可以在面试时说服所有的考官。(可能有点夸张,但APUE绝对是圣经一般的读物,即使是Windows程序员也从其中汲取养分,Google创始人的案头书籍,扎尔伯克的床头读物。)
这本书看完后你会对Linux系统编程有相当的了解,知道Linux与Windows平台间开发的差异在哪?它们的优缺点在哪?我的总结如下:做Windows平台开发,很苦,微软的系统API总在扩容,想使用最新潮,最高效的功能,最适合当前流行系统的功能你必须时刻学习。Linux不是,Linux系统的核心API就100来个,记忆力好完全可以背下来。而且经久不变,为什么不变,因为要同UNIX兼容,符合POSIX标准。所以Linux平台的开发大多是专注于底层的或服务器编程。这是其优点,当然图形是Linux的软肋,但我站在一个开发者的角度,我无所谓,因为命令行我也可以适应,如果有更好的图形界面我就当作恩赐吧。另外,Windows闭源,系统做了什么你更本不知道,永远被微软牵着鼻子跑,想想如果微软说Win8不支持QQ,那腾讯不得哭死。而Linux完全开源,你不喜欢,可以自己改,只要你技术够。另外,Windows虽然使用的人多,但使用场合单一,专注与桌面。而Linux在各个方面都有发展,尤其在云计算,服务器软件,嵌入式领域,企业级应用上有广大前景,而且兼容性一流,由于支持POSIX可以无缝的运行在UNIX系统之上,不管是苹果的Mac还是IBM的AS400系列,都是完全支持的。另外,Linux的开发环境支持也绝对是一流的,不管是C/C++,Java,Bash,Python,PHP,Javascript,。。。。。。就连C#也支持。而微软除Visual Stdio套件以外,都不怎么友好,不是吗?
如果你看完APUE的感触有很多,希望验证你的某些想法或经验,推荐UNIX程序设计艺术,世界顶级黑客将同你分享他的看法。
现在是时候做分流了。大体上我分为四个方向:网络,图形,嵌入式,设备驱动。
如果选择网络,再细分,我对其他的不是他熟悉,只说服务器软件编写及高性能的并发程序编写吧。相对来说这是网络编程中技术含量最高的,也是底层的。需要很多的经验,看很多的书,做很多的项目。
我的看法是以下面的顺序来看书:
APUE再深读–尤其是进程,线程,IPC,套接字
多核程序设计- Pthread一定得吃透了,你很NB
UNIX网络编程–卷一,卷二
TCP/IP网络详解–卷一再看上面两本书时就该看了
5.TCP/IP网络详解–卷二我觉得看到卷二就差不多了,当然卷三看了更好,努力,争取看了
6.Lighttpd源代码-这个服务器也很有名了
7.Nginx源代码–相较于Apache,Nginx的源码较少,如果能看个大致,很NB。看源代码主要是要学习里面的套接字编程及并发控制,想想都激动。如果你有这些本事,可以试着往暴雪投简历,为他们写服务器后台,想一想全球的魔兽都运行在你的服务器软件上。
Linux内核 TCP/IP协议栈–深入了解TCP/IP的实现
如果你还喜欢驱动程序设计,可以看看更底层的协议,如链路层的,写什么路由器,网卡,网络设备的驱动及嵌入式系统软件应该也不成问题了。
当然一般的网络公司,就算百度级别的也该毫不犹豫的雇用你。只是看后面这些书需要时间与经验,所以35岁以前办到吧!跳槽到给你未来的地方!
图形方向,我觉得图形方向也是很有前途的,以下几个方面。
Opengl的工业及游戏开发,国外较成熟。
影视动画特效,如皮克斯,也是国外较成熟。
GPU计算技术,可以应用在浏览器网页渲染上,GPU计算资源利用上,由于开源的原因,有很多的文档程序可以参考。如果能进火狐开发,或google做浏览器开发,应该会很好。
嵌入式方向:嵌入式方向没说的,Linux很重要。
掌握多个架构,不仅X86的,ARM的,单片机什么的也必须得懂。硬件不懂我预见你会死在半路上,我也想走嵌入式方向,但我觉得就学校教授嵌入式的方法,我连学电子的那帮学生都竞争不过。奉劝大家,一定得懂硬件再去做,如果走到嵌入式应用开发,只能祝你好运,不要碰上像Nokia,Hp这样的公司,否则你会很惨的。
驱动程序设计:软件开发周期是很长的,硬件不同,很快。每个月诞生那么多的新硬件,如何让他们在Linux上工作起来,这是你的工作。由于Linux的兼容性很好,如果不是太低层的驱动,基本C语言就可以搞定,系统架构的影响不大,因为有系统支持,你可能做些许更改就可以在ARM上使用PC的硬件了,所以做硬件驱动开发不像嵌入式,对硬件知识的要求很高。可以从事的方向也很多,如家电啊,特别是如索尼,日立,希捷,富士康这样的厂子,很稀缺的。
LDD– Linux驱动程序设计与内核编程的基础读物
深入理解Linux内核–进阶的
Linux源代码–永无止境的
当然你还的看个方面的书,如网络啊什么的。