专栏首页CSDN技术头条什么程度才算精通 Linux?

什么程度才算精通 Linux?

本文选自 | 《攻克 Linux 系统编程》

作者 | 宇文拓

责编 | 林瑟

Linux 的优秀之处自然不必多说。如果将操作系统比作一辆汽车,那 Linux 就是一辆性能出色的多功能越野车,上山下海飞天无所不能。

如果你拥有了它,一定不会只满足于驾驶它上下班,不能只会挂挡、踩油门和控制方向之类的基本操作。我们想充分了解并掌握它,挖掘其更多潜能。但是,这个过程有相当的难度。

01

Linux 系统编程的难点

  • 对于有一定 Linux 开发基础希望进阶学习 Linux 系统编程的开发人员来说,其难点在于,Linux 所囊括的技术点繁杂,往往不知从何下手。
  • 对于稍有些系统编程经验的 Linux 开发者来说,难点往往在于,缺乏对底层技术的透彻理解,而不能自如地把握和控制好系统的复杂行为,同时,底层技术也经常成为中级开发者晋升到高级职位的瓶颈。

02

技术繁杂,很难把握头绪

Linux 内容纷繁复杂,会让学习者不知从何处下手。虽说 Linux 开放了所有设计图纸,可如果将这些图纸全部打印出来,可能要装满整个房间,即使号称 Linux 源码航海图的《深入理解 Linux 内核》图书也有 800 多页。如果毫无方向地从头看起,看不了几页可能就昏昏欲睡了。

在我最开始接触 Linux 系统开发,还没有多少真实项目经验时,就曾数次扑进 Linux 设计图纸里,但每次都坚持不了几个月,然后带着受伤的自信心惨败而归。

对于 Linux 开发者,这时如果能有一本 Linux 航海图的阅读指引,标注出航海图上宝藏的埋藏位置和宝藏简介,一定可以让学习过程更有方向性,也更加轻松愉悦。

03

不了解底层原理,难从根源解决问题

开发者在最初开发 Linux 系统上的应用和服务时,往往会将大量精力倾注在实现业务需求上,对底层技术的实现细节并没有特别深刻的理解。

但随着系统复杂性的提高,开发人员只有对底层实现细节有越来越透彻的理解,才能更好地把握和控制系统的复杂行为。否则一旦遇到如下这些问题,将很难从根源上解决。

  • 程序在某个位置出现间歇性崩溃,可当我添加一行调试用的日志后,就再也没崩溃过了,这背后到底是怎么回事呢?
  • 我写了一个多进程模型的服务器,但总感觉新进程启动地不干净,有时会有些父进程的东西掺和到子进程里来。可如果让父进程在启动子进程之前做更多的计算,或者单纯多等一会,这种情况发生的概率便大大减少了,该系统的行为让人有点捉摸不透,其背后的原因是什么呢?
  • 我的信号处理程序与主程序使用同一个共享变量来交换信息,大多数时候都能正常工作,可总会时不时抽风一下,代码都已仔细检查过,找不出任何逻辑上的问题。这让人非常苦恼,到底是哪里出现问题了?

类似这种程序表现与预期不完全一致的情况会让开发者非常头疼,尤其是那种大部分时间表现正常,偶尔会“抽风”的情况。这些令人头疼的问题,我不止一次地经历过,数次被 Linux 伤害自信的感觉至今仍记忆犹新。

幸运的是,在经历了多次探索、踩坑之后,Linux 系统的行为特点以及如此设计的内在原因终于在我眼前逐渐明晰起来,这个系统内部精巧的设计也越来越清晰地展现在我眼前。

如今,我已从事 Linux 开发近十年,再回想那段在 Linux 世界中几度迷失的经历,已经能够明确知道问题出在了哪里——还不知道它能做什么时,便试图弄清它是如何运作的。正如还不知道一辆车发动后如何前进,便开始研究发动机、变速箱里的那一堆齿轮、联动部件,结果自然是事倍功半。

相信很多 Linux 开发者都曾经或正在遭遇与我类似的痛苦经历。

为了帮助大家度过难关,实现 Linux 快速高效学习,我将多年积累的学习和研发心得整理成了《攻克 Linux 系统编程》达人课。

本文分享自微信公众号 - GitChat精品课(CSDN_Tech),作者:宇文拓

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 看完这篇 Linux 的基本操作你就会了!

    Linux 的优秀之处自然不必多说。如果将操作系统比作一辆汽车,那 Linux 就是一辆性能出色的多功能越野车,上山下海飞天无所不能。

    CSDN技术头条
  • Linux的赌注:总有一个发行版适合你

    作者简介:Steven J. Vaughan-Nichols,自1993年(Linux问世两年之后)开始使用Linux,尝试过数十个不同的发行版,运营网站Des...

    CSDN技术头条
  • 怒怼黑客,Linux 下的7个开源安全工具

    https://www.tecmint.com/best-antivirus-programs-for-linux/

    CSDN技术头条
  • 为什么要学习Linux

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

    Vamei
  • 开源技术大神总结的7条Linux核心知识点

    据不完全统计,Linux在数据中心操作系统上的份额高达近70%。它一般运行于服务器和超级计算机上,我们日常访问网站背后的数百万台服务器很大几率运行着的操作系统就...

    用户6543014
  • 学习Linux,如快速入门?

    随着现在互联网时代的爆发,越来越多的企业开始需要Linux工程师,相对应的Linux工程师的薪资待遇也越来高,那么Linux到底是什么?如何快速入门呢?今天我就...

    小小科
  • 一、Linux介绍及安装

    本文标识 : L00000 本文编辑 : 灭霸 编程工具 : Linux 阅读时长 : 2分钟

    DataScience
  • 为什么说当代大学研究生即使是文科都要懂点Linux?(附学习资料)

    在操作系统领域,Windows可谓是笔记本和台式机上的绝对霸主,iOS和安卓在手机上分庭抗礼,而对于Linux,很多朋友有所耳闻,但了解并不多。今天我将简单介绍...

    PP鲁
  • linux 科普

    为了进一步强化大型主机的功能,让主机的资源可以提供更多的使用者来利用,所以在1964年, 由AT&A公司的贝尔实验室(Bell)、麻省理工学院(MIT)及奇异公...

    suwanbin
  • IT皇冠上的明珠! Linux 操作系统学习看过来!

    操作系统堪称是IT皇冠上的明珠,Linux阅码场专注Linux操作系统内核研究, 它的文章云集了国内众多知名企业一线工程师的心得,畅销著作有《linux设备驱动...

    编程珠玑

扫码关注云+社区

领取腾讯云代金券