当前位置: 首页 > Linux

学完Linux要学什么?

时间:2023-04-06 22:48:12 Linux

(这篇文章是长篇大论,因为最近在B站录了视频,所以也顺便把稿子发出去了)熟悉我的朋友应该都知道我是一名Linux工程师。所以让我问你一个问题。提到Linux,你首先想到的是什么工作?相信很多朋友都会想到两个词:运维。听到大家这样的回答,我真的很无奈,但是我也很理解,因为我对Linux的理解仅仅局限于运维层面。不过有这种概念的朋友实在是太多了,所以我有必要出来给大家科普一下Linux的主要业务方向。其实这个话题我已经写了很多文字版了,也在直播的时候给大家科普了下。这几天再以视频的形式给大家科普一次,今天顺便再把稿子发出来。linux其实是一个大方向,可以细分很多小方向。所以很多公司的岗位职责要求精通Linux,这是很不现实的。为了让大家对Linux的行业方向有一个更直观的认识,我画了下图。精选了一些优质的Linux电子书和视频资源,公众号“良旭Linux”后台回复“Linux”免费获取从这张图来看,从大方向上,Linux从业者可以分为两类方向:运维、开发。当然除了这两个方向之外,还有其他的方向,但是可能比较小众,我们暂时不讨论。但是单看这两个方向,又细分了很多更小的方向,可见Linux职业方向的多样性。下面我们将详细介绍各个方向的工作内容和职责。Linux运维工作内容和职责我们先来看运维。运维可以根据不同的工作内容细分为很多不同的方向,但是主流的划分方式一般是这张图中的几个方向。因为我不是做运维的,对运维相关的工作了解不多,所以无法深入介绍这些工作的细节。所以有时候在我的微信群里,很多朋友问我一些运维相关的问题,我实在是答不上来,因为我自己又不是做这个的。虽然运维也分了很多方向,但是很多公司,尤其是中小型公司,基本上都是一个人完成上面的所有工作。所以,如果你是从事运维的,你也需要掌握很多的技术。无论运维方向如何,工作内容基本上可以用两句话来概括。第一句话是:保证业务长期稳定运行。也就是说,你不仅要学习如何搭建公司的服务器,还要保证以上业务能够长期稳定运行。如果稍有失误,运维人员可能要承担责任。因此,运维人员常常自嘲是“背锅侠”。第二句是:确保数据安全可靠。这句话比较容易理解。现在数据泄露太严重了。和之前的脸书数据泄露事件一样,脸书也收到了不少罚单。因此,如何保证数据安全也是运维人员非常重要的工作。这几个方向中,前三个属于传统运维,总体来说工资比较低。后两者是近两年的热门工作,工资相对较高。其中,云计算运维涉及Docker、K8S等容器,技术要求较高。运维开发需要学习JS、Python等编程语言,会涉及到一些开发工作。我为Linux挑选了一些高质量的电子书和视频资源。公众号“良旭Linux”后台回复“Linux”,免费获取Linux开发工作内容和职责。以上就是对运维方向的介绍。大方向:发展方向。开发方向分为两个:应用层开发和底层开发。我们先来看应用开发。我现在做的工作是Linux应用开发。那么应用开发到底是做什么的呢?一般来说,应用程序开发分为桌面应用程序开发、嵌入式应用程序开发和服务器应用程序开发三类。不管是什么应用开发,简单来说就是在Linux下开发各种应用。那么什么是应用程序呢?我举个例子你就明白了。就像在Windows下,我们有QQ、微信、还有后面要介绍的虚拟机,统称为应用。这是一个应用程序的概念。同样,如果像这样的一些应用程序是在Linux下开发的,就属于应用程序开发。在Windows下,我们看到的大多数应用程序都有图形界面。但是Linux下有些应用程序是有接口的,还有相当一部分是没有接口的。Linux下有接口的应用程序使用的开发工具之一就是QT,所以有一个职位叫QT工程师,就是做这个工作的。当然QT程序是可移植的,Linux下的同一套代码无需任何修改就可以在Windows下编译运行。什么是嵌入式Linux应用程序开发?很多嵌入式设备,比如一些机器人玩具,一些智能家居设备,还有汽车的中控等等,很多都是运行Linux系统的。相应的,我们也需要为这些设备开发一些应用程序,也就是所谓的嵌入式Linux应用程序开发。这些应用通常没有界面,通常在后台默默运行,完成相应的业务工作。当然,也有一些带有接口的嵌入式应用,但其实很多也是直接运行QT的。应用开发的第三个方向是服务器后台开发。这实际上是后端。许多服务器后端是用Java开发的,但也有一些是用C++开发并运行在Linux系统上的。比如微信的后台就是用C++开发的。无论使用什么开发语言,都需要考虑事件处理和高并发的需求。同时,你必须学会??使用框架。你必须站在巨人的肩膀上才能走得更快更远。精选了一些优质的Linux电子书和视频资源,公众号“良旭Linux”后台回复“Linux”免费获取,一起来看看Linux的底层发展吧。其实只要接触过Linux,就会听说过内核、文件系统、uboot等名词。这些都是底层开发人员每天要处理的事情。一般来说,很多芯片厂商都已经为你做好了内核、文件系统、uboot的移植,你只需要学会如何维护就可以了。至于内核切割和定制等工作,则??需要底层工程师来完成。另外,你还要学习开发驱动,这部分工作要多一些。什么是驱动程序开发?众所周知,Linux下万物皆文件,设备亦然。因此,应用工程师需要对IO口等硬件进行操作,只需操作相应的设备文件即可。那么这个设备文件是如何实现对IO口的操作的呢?这是驱动程序开发的工作。很多公司对驱动开发的需求都比较大,于是诞生了一个叫做驱动开发工程师的特殊岗位。随着物联网的发展,很多设备,尤其是智能家居设备,都运行着Android系统。因此,在嵌入式设备上移植Android系统也是底层开发工程师的工作内容。当然,并不是所有的底层开发工程师都需要做这项工作,一切还是看公司的业务。但是如果有时间的话,应该把底层开发相关的工作都学一遍。以上就是Linux从业者的主要工作方向。介绍了这么多方向,很多人都开始头晕了:到底该往哪个方向努力呢?运维和开发这两个大方向,运维的工资可能比较低,运维的工作可能比较琐碎。一旦服务器宕机,第一时间冲到前线,基本上是7X24小时待命。而且运维的天花板比较低,可能工作三五年就到顶了。发展方向的天花板比较高,薪水也会比较高。对于应用和底层,应用方向的需求比较大。一般来说,一个公司只需要一个底层工程师,却需要培养一大群应用工程师。所以,低级工程师的聘用会比较少,通常比较好的地方都是那些芯片厂商。不过相对来说,低级工程师的薪水会比应用工程师高一些。这些方向的介绍只是市场上的一些实际情况。我没有建议你不要做运维,也没有建议你做应用开发,一切看个人兴趣和意愿。只要你对自己的工作感到满意,那才是最重要的。看到的都是真爱,走之前怎么不竖个大拇指?您的“三通”是良旭继续创作的最大动力!关注原创公众号《良序Linux》,第一时间获取最新Linux干货!公众号后台回复【信息】【面试】【简历】获取精选一线大厂的面试、自我提升、简历等信息。关注我的博客:lxlinux.net