Linux学习路径(必须参阅linux)

电脑杂谈  发布时间:2020-06-16 19:05:06  来源:网络整理

linux开源中国_linux开源社区_开源中国 linux 源码

早起的花朵,ECharts作品展正式启动! >>>

许多学生对Linux并不熟悉,他们对Linux平台的开发一无所知. 当前的趋势越来越表明,作为一名出色的软件开发人员或计算机IT行业从业者,掌握Linux是非常重要的资源和谋生手段.

接下来,我将结合我几年的个人开发经验以及Linux(更像UNIX系统)和开源软件文化linux开源中国,讨论Linux学习方法以及学习中应注意的事项.

正如我刚才所说,许多同学甚至可能都不知道Linux是什么,而他们对UNIX一无所知. 因此,让我们从最基础的内容开始,我们不多讨论Linux和UNIX的历史,而直接进入入门学习.

Linux入门非常简单. 问题是您是否有耐心,是否喜欢抛球,以及是否不排除重新安装之类的大修. 可以说,不折腾地学习Linux是不好的. Bird兄弟说,要真正了解Linux的分区机制,我非常精通使用LVM. 没有20多个Linux安装的经验无法累积,因此您不必害怕折腾.

由于每个人以前都使用Windows,因此我也尽可能多地照顾这些“新手”. 我的建议是,如果您不熟悉Linux,请首先在虚拟机中尝试. 我建议将Virtual Box用于虚拟机. 我不主张使用虚拟机,因为这些虚拟机是开源的并且需要付费. 我不想提倡盗版. 当然,如果您有足够的钱,您可以尝试使用VM,但是我想说的是,甚至VM不一定也不错.

linux开源社区_linux开源中国_开源中国 linux 源码

付费软件不一定很好.

首先,Virtual Box非常紧凑. Windows平台上的安装软件包约为80MB,而VM始终为600MB. 尽管它具有强大的功能,但它消耗大量资源,更不用说您的Virtual Box可以完全满足您的需求. 因此,请自行选择.

如何使用虚拟机是您的事. 我不会教你这个,因为它很简单. 如果没有,您可以使用Google或百度. 要获得良好的英语水平,您可以直接查看官方文档. 现在介绍Linux发行版的知识.

如您所见,Linux发行版不是Linux. Linux仅指操作系统的内核. 不要让我向您解释谁是普通人. 我没有时间.

我推荐的分发方式如下:

您必须选择一个适合您的系统,然后将其安装在虚拟机中并开始使用它. 如果您想快速学习Linux,我建议您忘记图形界面. 不要认为图形界面是否可以回答您的问题. 而是环游世界,询问如何使用命令行解决问题.

在此过程中,您最好能够精通Linux命令,至少必须知道常用命令,同时建立自己的知识库,这是您积累的知识.

linux开源中国_linux开源社区_开源中国 linux 源码

在下一步中,您需要学习Linux平台上的C / C ++开发以及Bash脚本编程. 如果您对Java非常感兴趣,那就有Java. 同样,建议您放弃以VIM开头的图形界面IDE,为什么是VIM,而不是Emacs,我无意引起编辑大战,但我认为VIM适合初学者,适合那些笨拙的开发人员和慢头. Emacs的密钥太多,太复杂了,我担心. 然后是GCC,Make,Eclipse(Java,C ++或).

尽管Eclipse中列出了C ++,但我不建议您使用IDE来开发C ++,因为这不是Linux文化,您很容易忽略一些您应注意的问题. IDE使您变得懒惰,变得懒得像猪一样. 如果您对程序调试和测试非常感兴趣,那么GDB必须学习得很好,如果不是,那么GDB也是必修课. 这是开发的第一步. 请注意,我没有提到Linux系统API的内容. 在此阶段,无需担心. 您要做的就是在Linux平台上积累经验和开发经验.

我的推荐书籍如下: C语言编程. 用C语言编写的白皮书当然更好. C ++推荐使用C ++ Primer Plus,我不喜欢Java,不推荐它. 附上其他清单: java入门书籍. 工具推荐的VIM官方手册,GCC中文文档,GDB中文文档,GNU开源软件开发指南(电子书),汇编语言编程(让您对库,链接,内联汇编,编译器优化选项有初步的了解,没有任何深度)必填).

如果您无法通过此阶段,则不必这样做. 这是最基本的底线,否则请不要着急进行Linux开发. 非的Linux开发人员制作的程序与Linux文化或UNIX文化背道而驰. 这些程序并不遥远. 不可能像Bash和VIM之神一样. 因此,如果做得不好,您可以离开.

UNIX环境中的高级编程是杰作,是经典之作.

接下来,进入Linux系统编程,唯一的选择,APUE,在UNIX环境中进行高级编程,一遍又一遍地阅读,并且读10次太少了,如果你能在大学里转这本书,那么内容就是实践的但是,如果您有工作,您的口头表达能力就会足够强. 您可以在面试中说服所有考官.

(可能有些夸张,但是APUE绝对是圣经读物,即使Windows程序员也从中汲取营养,Google创始人的书本,Zalburk的床头读物. )

linux开源社区_开源中国 linux 源码_linux开源中国

阅读本书之后,您将对Linux系统编程有一个很好的了解,知道Linux和Windows平台开发之间的区别吗?它们的优缺点是什么?我的总结如下: 进行Windows平台开发非常困难. 微软的系统API一直在扩展. 如果要为当前流行的系统使用最新趋势,最有效的功能和最合适的功能,则必须始终学习. Linux不是,Linux系统中只有100个核心API,您可以记住它并保留良好的内存. 而且它很长一段时间都没有更改,为什么它没有更改,因为它与UNIX兼容并且符合POSIX标准. 因此,Linux平台的开发主要集中在基础或服务器编程上.

这是它的优势. 当然,图形是Linux的弱点,但我从开发人员的角度出发. 我不在乎,因为我可以适应命令行. 如果有更好的图形界面,我将把它当作礼物. 此外,Windows是封闭源代码,您甚至不知道系统做了什么. 您将永远由Microsoft领导. 如果微软说Win8不支持QQ,那么腾讯一定不能哭. Linux是完全开源的,只要您拥有足够的技术,您就不会喜欢它,可以自己进行更改.

此外,尽管Windows被许使用,但它只有一次使用机会,主要针对台式机. 而且Linux在各个方面都得到了发展,特别是在云计算,服务器软件,嵌入式领域,企业级应用程序方有广阔的前景,并且具有一流的兼容性,因为它支持POSIX可以在UNIX系统上无缝运行,无论是Apple Mac还是Mac完全支持IBM的AS400系列. 此外,Linux开发环境绝对是一流的,无论是C / C ++,Java,Bash,Python,PHP,Javascript. . . . . . 甚至C#也支持它. 除了Visual Stdio套件,微软不是很友好,是吗?

如果您在观看《 APUE》后有很多感触,我希望验证一下您的一些想法或经验. 我推荐UNIX编程的技巧. 世界顶级黑客将与您分享他的观点.

网络方向: 服务器软件编写和高性能并发编程

是时候转移注意力了. 一般来说,我分为四个方向: 网络,图形,嵌入式,设备驱动程序.

如果您选择网络并将其细分,则我对其他事情不熟悉. 我只谈论服务器软件编写和高性能并发编程. 相对而言,这是网络编程中的最高技术内容,也是底层. 这需要大量的经验,阅读大量的书籍并进行大量的项目.

linux开源中国_开源中国 linux 源码_linux开源社区

我的观点是按以下顺序阅读书籍:

更深入地了解APUE,尤其是进程,线程,IPC,套接字多核编程-必须充分理解Pthread,您非常了解UNIX网络编程-第一卷,第二卷TCP / IP网络的详细解释-第一卷重复阅读I上面的两本书中应该已经详细阅读了5.TCP / IP网络. 第2卷,我认为看第2卷几乎是一样的,当然第3卷更好,请努力阅读6.Lighttpd源代码, 7.Nginx的源代码与Apache相比,Nginx的源代码更少,如果可以粗略地看一下,那是非常NB. 查看源代码主要是为了学习内部的套接字编程和并发控制,对此进行思考很令人兴奋. 如果您具备这些技能,则可以尝试将简历投向暴雪,为他们编写服务器背景,并考虑在服务器软件上运行的《魔兽世界》. Linux内核TCP / IP协议对TCP / IP实现的深入了解

如果您仍然喜欢驱动程序设计,则可以查看较低层的协议,例如链路层,有关路由器,网卡,网络设备驱动程序和嵌入式系统软件的内容,这应该不是问题.

当然,普通的互联网公司,甚至是百度级的公司,都应该毫不犹豫地雇用您. 仅阅读以下书籍就需要时间和经验,因此请在35岁之前完成!跳到一个给您未来的地方!

图形方向,我认为图形方向在以下几个方面也很有前途.

在国外,Opengl的产业和游戏开发相对成熟. 影视特效linux开源中国,例如皮克斯,在国外也相对成熟. GPU计算技术可以应用于浏览器网页渲染,GPU计算资源的利用,由于开源的原因,有很多文档程序可以参考. 如果您可以开发到Firefox或Google进行浏览器开发,那就应该很好.

嵌入式方向: 嵌入式方向并没有说明,Linux非常重要.

掌握多种架构,不仅是X86,ARM,MCU等. 我不懂硬件. 我预见你会死一半. 我也想朝着嵌入式的方向发展. 但是我想我不能仅仅通过在学校里教授嵌入式方法就与一群学习电子学的学生竞争. 我敦促每个人在使用硬件之前先了解它们. 如果您要进行嵌入式应用程序开发,则只能祝您好运. 不要碰到诺基亚或惠普之类的公司,否则您将很痛苦.

驱动程序设计: 软件开发周期很长,硬件不同,而且速度很快. 每个月都有那么多新硬件诞生,如何使它们在Linux上运行,这是您的工作. 由于Linux具有良好的兼容性,因此,如果它不是低级驱动程序,则可以完成基本的C语言,并且系统架构的影响很小. 由于系统的支持,您可能需要更改才能在ARM上使用PC硬件. 因此,与硬件嵌入式开发不同,硬件驱动程序开发对硬件知识有很高的要求.

可以遵循的方向很多,例如家用电器,尤其是索尼,日立,希捷和富士康等工厂稀缺.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-247651-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 温碧霞
        温碧霞

        就是能奈何了

      • 辽太祖耶律阿保机
        辽太祖耶律阿保机

        赤裸裸千里万里挑衅和侵犯别国做出愚蠢行为是要付出代价的

      • 魏安王
        魏安王

        处于中国领海和国际公共海域交界海域

      热点图片
      拼命载入中...