学Linux到底学什么?未来职业到底是怎么样的?

本文探讨了Linux工程师的两大主要方向——运维和开发,包括各自的工作内容、职责以及职业前景。运维方向包括传统运维和热门的云计算运维,而开发方向则涉及应用层开发和底层开发。文章指出,运维工作需要保障业务稳定和数据安全,开发工作则涵盖了桌面应用、嵌入式应用和服务器应用的开发。选择哪个方向取决于个人兴趣和职业规划。

作为一名Linux工程师。那么我来问大家一个问题,提到Linux,你们第一时间想到的是这是一个怎样的岗位呢?我相信会有很大一部分的朋友会想到两个字:运维。

 

 

听到大家这样的回答,我真的是很无奈,但也是非常的理解,因为,曾经我对Linux的了解程度也是仅限在运维的层面上。但是,有这种概念的朋友实在是太多了,所以我有必要出来给大家科普一下Linux的几个主要的从业方向。

其实这个话题我写过了很多的文字版本,也在直播的时候给大家科普过了,这几天也以视频的形式再给大家科普一次,今天就顺便把文稿再发出来一下。

Linux其实也是一个大的方向,可以细分为很多小方向。所以很多公司的岗位职责上面写着要求精通Linux,这是非常不现实的。为了能让大家更直观了解Linux的从业方向,我画了下面这张图。

 

从这张图来看,从大的方向来划分,Linux从业者可以分为两个方向:运维、开发。当然除了这两个方向,还有一些其它方向,但可能比较小众,就暂时不讨论了。但是,单单从这两个方向来看,又细分出了很多更小的方向,因此我们可以看到Linux从业方向的多样性。

下面我们来详细介绍各个方向的工作内容和职责。

Linux运维工作内容和职责

我们首先来看运维。运维又可以根据不同的工作内容细分为很多不同的方向,但是,主流的分法一般就是这张图的几个方向。

 

因为我本身不是做运维的,对运维相关的工作也不是太了解,所以这些工作的详细内容我也没办法深入介绍。所以有时候在我的微信群里,很多小伙伴拿一些运维相关的问题来问我,我真的是答不上来,因为我本身不是做这块的。

 

虽然运维也分很多方向,但很多公司,特别是中小公司,基本是一个人干完上面这些所有工作。所以,从事运维工作的话也是需要掌握不少技术的。

不管是什么方向的运维,工作内容基本都可以概括为两句话。第一句话是:保障业务长期稳定运行。就是说,公司的服务器,你不仅要学会搭建,而且要保证上面的业务要做到长期稳定运行,任何出一点点差错,运维人员可能就要背这个锅了。所以,运维人员经常自嘲自己是“背锅侠”。

 

第二句话是:保障数据安全可靠。这句话比较好理解,现在数据泄漏太严重了,像之前facebook数据泄漏事件让facebook吃了不小的罚单。所以如何保证数据的安全也是运维人员一项非常重要的工作。

 

这几个方向当中,前3个属于传统运维,一般而言工资相对比较低。后两个是这两年的热门工作,工资相对高一些。其中云计算运维要涉及到容器Docker,K8S之类的,技术要求更高。而运维开发需要学习到JS,Python之类的编程语言,会涉及到一些开发的工作。

Linux开发工作内容和职责

以上这些就是对运维方向的介绍,我们再来看第二大方向:开发方向。开发方向又分为两个:应用层开发底层开发。首先来看应用开发。我现在做的工作就是Linux应用开发。那应用开发到底做些什么工作呢?

一般而言,应用开发又分细分为这三个:桌面应用开发、嵌入式应用开发、服务器运用开发。

 

不管是什么应用开发,简单而言,都是在Linux下开发各种各样的应用程序。那什么又是应用程序呢?我举个例子你们就明白了。就好比在Windows下,我们有QQ、微信、以及后面要介绍的虚拟机等,这些都统称为应用程序。这就是应用程序的概念。

同样的,如果在Linux下也开发一些类似这种的应用程序,就是属于应用开发。在Windows下,我们看到的那些应用程序大部分是带图形界面的,然而,在Linux下的应用程序,有些会带有界面,而相当一部分是不带界面的。

Linux下带界面的应用程序所使用的开发工具之一就是QT,所以有个岗位就叫作QT工程师,做的就是这个活。当然QT程序是可移植的,Linux下同样一套代码可以不用作任何修改就可以在Windows下编译运行。

嵌入式Linux应用开发又是什么?很多嵌入式设备,比如一些机器人玩具,一些智能家居设备,以及汽车的中控等,很多跑的是Linux系统。那对应的我们也需要给这些设备开发一些应用程序,就是所谓的嵌入式Linux应用开发。这些应用程序通常是不带界面的,它们通常会在后台默默运行,完成相应的业务工作。当然也有一些嵌入式应用程序是带界面的,但其实很多也是直接跑QT的。

 

应用开发的第三个方向就是服务器后台开发。这个其实也是后端,很多服务器后端是用Java进行开发,但也有一些是用C++开发然后跑在Linux系统上,比如微信的后台就是使用C++开发的。

不管是使用什么开发语言,都需要考虑事件处理、高并发之类的需求,同时也要学会使用框架,要站在巨人的肩膀上,才走得更快更远。

我们再来看看Linux底层开发。其实,只要有接触到Linux,都会听说过内核、文件系统、uboot之类的名词,这些就是底层开发人员天天打交道的东西。

 

一般而言,内核、文件系统、uboot的移植很多芯片厂商都已经给你做好了,你只需学会维护即可。而对于内核裁剪、定制之类的工作,那就需要底层工程师来做了。

除此之外,你还要学会开发驱动,这部分的工作应该是比较多的。什么是驱动开发呢?大家知道,在Linux下一切皆文件,设备也是。所以应用工程师需要操作硬件,比如IO口,只需操作对应的设备文件即可。那这个设备文件怎么实现对IO口进行操作?这就是驱动开发的工作了。很多公司对驱动开发的需求比较大,所以诞生出一个专门的岗位叫驱动开发工程师。

而随着物联网的发展,现在很多设备,特别是智能家居类的设备,很多跑的是安卓系统。所以在嵌入式设备上移植一个安卓系统,也是底层开发工程师的一个工作内容。当然不是所有的底层开发工程师需要做这个工作,一切视公司的业务而定。但如果有时间,底层开发相关的工作都应该要学会。

以上就是Linux从业者的主要工作方向,介绍了这么多方向后,很多人开始晕乎了:我到底该从事哪个方向?

对于运维和开发两个大方向,在薪资方面运维可能会比较低,而且运维的工作可能会比较琐碎,服务器一旦宕机就要第一个冲到前线,基本是7X24小时待命。而且,运维的天花板相对比较低,可能工作过三五年就到顶了。

而开发方向天花板就比较高一些了,而且薪资会相对比较高。对于应用和底层,应用方向的需求比较大,通常而言一个公司只需一个底层工程师即可,却需要养一大群的应用工程师。所以底层工程师就业面会比较小一些,通常比较好的去处就是那些芯片厂商。但是,相对而言底层工程师的工资会比应用工程师要高一些。

对于这些方向的介绍,只是目前市面上的一些实际状况。我没有建议你别做运维,也没有建议你去做应用开发,一切都是看个人兴趣与意愿。只要自己工作得开心,才是最关键的。

看完的都是真爱,点个赞再走呗?您的「三连」就是我的最大动力!

  1. 关注公众号「Linux C后台服务器开发」,第一时间获取最新Linux干货!
  2. 后台回复【资料】【面试】【架构】获取精选一线大厂面试、自我提升、简历等资料。

更多Linux服务器开发高阶完整视频分享,点击链接即可观看:https://ke.qq.com/course/417774?flowToken=1013189

内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。

Linux服务器开发高级架构qun:720209036

嵌入式软件领域是一个技术密集型且持续发展的方向,其习路径和职业发展具有较高的技术深度和广泛的应用场景。以下是嵌入式软件未来习方向与职业发展路径分析。 ### 一、嵌入式软件未来习方向 1. **操作系统与底层开发** 掌握实时操作系统(RTOS)的原理与应用是嵌入式软件工程师的核心技能之一。例如 FreeRTOS、VxWorks、ThreadX 等系统在工业控制、物联网设备中广泛使用。此外,Linux 嵌入式系统的定制与驱动开发也是重要方向,特别是在智能硬件和边缘计算领域[^2]。 2. **嵌入式人工智能(Edge AI)** 随着 AI 技术的普及,越来越多的嵌入式设备开始集成 AI 推理能力,如图像识别、语音识别等。习 TensorFlow Lite、ONNX Runtime 等轻量级推理框架,以及如何在资源受限的嵌入式平台上部署模型,将成为未来几年的关键技能。 3. **通信协议与网络编程** 嵌入式设备越来越多地需要接入网络,掌握如 MQTT、CoAP、LoRaWAN、蓝牙、Wi-Fi、Zigbee 等协议栈的实现与优化,是构建智能设备通信能力的基础。此外,熟悉 TCP/IP 协议栈和嵌入式网络编程也是必备技能之一[^2]。 4. **安全与加密技术** 随着物联网设备的普及,嵌入式系统的安全性问题日益突出。习嵌入式平台的安全启动、固件签名、加密通信(如 TLS/DTLS)、安全存储等技术,有助于提升系统的整体安全性。 5. **跨平台开发与工具链优化** 掌握交叉编译、CMake、Makefile、自动化构建工具等,能够提升开发效率。同时,熟悉调试工具如 GDB、Tracealyzer、JTAG 等,也有助于快速定位和解决问题。 ### 二、嵌入式软件职业发展路径 1. **初级嵌入式软件工程师** 主要负责模块级开发与调试,涉及驱动开发、任务调度、通信协议实现等。需要掌握 C/C++ 编程语言、基本的硬件知识、RTOS 或 Linux 的使用[^3]。 2. **中级嵌入式软件工程师** 能够独立完成嵌入式系统的设计与实现,包括系统架构设计、性能优化、多任务调度等。通常需要掌握至少一种主流嵌入式平台(如 STM32、ARM Cortex、ESP32、NXP 系列等)。 3. **高级嵌入式软件工程师 / 技术专家** 专注于某一技术方向深入发展,如嵌入式 AI、嵌入式 Linux 内核开发、嵌入式安全等。具备系统级优化能力,能够主导技术选型与架构设计,并在团队中起到技术引领作用。 4. **技术经理 / 架构师** 在积累一定经验后,可向技术管理或系统架构方向发展。技术经理需具备项目管理、团队协作与跨部门沟通能力;架构师则需具备深厚的系统设计能力,能够制定技术路线与平台选型。 5. **创业或技术顾问** 对于有创业意愿的工程师,可以基于嵌入式技术开发智能硬件产品或提供行业解决方案。技术顾问则可为企业提供嵌入式系统设计、性能优化、安全加固等方面的专业服务。 ### 三、建议的习路线图 ```plaintext 基础编程能力(C/C++) → 硬件基础知识(ARM/MCU) → RTOS/Linux 开发 → 驱动开发 → 通信协议 → 系统优化 → AI/安全等进阶方向 ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值