c语言linux开发技术栈学习,linux c语言开发

kodinid 10 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言linux开发技术学习问题,于是小编就整理了3个相关介绍c语言Linux开发技术栈学习的解答,让我们一起看看吧。

  1. 技术栈是什么东东?
  2. 嵌入式一年半,现两份offer,一Linux驱动,单片机;二通信协议栈,网络安全产品。怎样选择好些?
  3. 老师说C语言是面向过程的编程语言,它能使用面向对象编程吗?如何使用?

技术栈是什么东东?

一般来说是指将N种技术互相组合在一起(N>1),作为一个有机的整体来实现某种目的或功能。也可以掌握这些技术以及配合使用的经验。

举个例子:开发一个普通OA系统,您使用了 + css + javascript + vue+ Spring Boot+Spring cloud + hibernate + Spring+rocket Mq+Redis+Es + linux + 等等,这些技术加起来就可以称为技术栈。

c语言linux开发技术栈学习,linux c语言开发-第1张图片-安济编程网
图片来源网络,侵删)

嵌入式一年半,现两份offer,一Linux驱动单片机;二通信协议栈,网络安全产品。怎样选择好些?

谢谢邀请。

linux驱动,主要写底层代码,各种外设接口调试需要会用linux shell指令,能够对linux内核比较熟悉,需要掌握linux底层,以及各类外设接口协议。也需要一定的硬件理论和知识。涉及领域多,产品类型丰富,就业机会和就业岗位多,工资较高。

而通信协议栈,如蓝牙ble协议栈,zigbee协议栈等类似通信协议栈。做通信协议栈的工程师比linux驱动的人数少,所以有工作经验的人,工资会十分高。

c语言linux开发技术栈学习,linux c语言开发-第2张图片-安济编程网
(图片来源网络,侵删)

去年和一个朋友聊天,为了找一个能写某一款蓝牙芯片固件的人,工资直接开到4万一个月。

但同时,整个行业,需求通信协议栈的工程师岗位也相对于单片机和linux的岗位要少很多。主要是通信领域,行业比较专一,岗位机会少,选择性较linux驱动少,相同年限的协议栈工程师比linux工程师的工资要好一些

linux驱动和通信协议栈两个行业技术要求和门槛都比较高,工资也相对于其他一般的普通单片机开发等,工资待遇都好些,但这两个岗位的工作压力和工作强度都会比较大。而且各有优劣。

c语言linux开发技术栈学习,linux c语言开发-第3张图片-安济编程网
(图片来源网络,侵删)

其实各有各的好!!我们是做5G基站的,协议栈和嵌入式linux都有。我个人是做嵌入式的。

我的个人看法是:

协议栈:工资较高,加班非常多,要看非常多的资料,5G的协议栈极其复杂,调试也非常困难。

嵌入式:就业面广,找工作容易,收入上较低。如果在产品成熟的公司做嵌入式是很轻松的,因为底层的东西通常不会有太多的更改。如果是尚在开发阶段做嵌入式那就很困难。在5G行业你可能还要极高的英语阅读能力,因为到目前为止,基本上还没有中文资料可以看。

总结一下。做协议栈要掌握的技能相对嵌入式要少很多,会一门语言,能看文档,做做调试。做嵌入式要求知识非常全面,linux,硬件,各种仪器,c, shell, pythonwindows的一些界面编写也得会。残酷的是:你花很多时间去学会它们,会得多但工资并不高。

如何选择要看个人,如果你打算三五年后自己创业就不要去做协议栈了,做这个对你以后创业基本上用处不大。反倒是嵌入式会随着物联网的兴起,开个小公司能挣点钱。


linux驱动,主要写底层代码,各种外设接口调试,需要会用linux shell指令,能够对linux内核比较熟悉,需要掌握linux底层,以及各类外设接口协议。也需要一定的硬件理论和知识。涉及领域多,产品类型丰富,就业机会和就业岗位多,工资较高。

从技术层面讲,无疑选二。国内大部分公司的驱动开发主要是移植和调整参数软件开发的技能要求不高,后续发展有限。做协议栈对开发能力要求更高,当然也更能锻炼人,将来从事其它开发也比较容易转。

首先恭喜题主哈,这两份工作都不错,如果要考虑以后前景的话,我个人比较推荐后者。

因为我第一份工作就是在华为做嵌入式,后来转向到了网络通信的部门,对二者都有一定的了解。所以先点评一下两个工作:

Linux嵌入式与协议栈

linux驱动:关于嵌入式,这是一个很成熟的技术了,就业路子广,要求比较低,待遇也处于中上水平,但想要成为给一个优秀的嵌入式工程不光要把C语言学的十分扎实,还要熟悉掌握操作系统原理,Shell等脚本语言,对于底层协议和硬件也要有一定的理解。linux驱动工程师的年薪多在10-15w之间;

协议栈:网络安全从过去到现在一直都是个非常热门的岗位,要求同样也不低,例如深信服,启明星辰等在招聘网络安全相关岗的时候,很多都是博士起步。协议栈这东西很复杂,而且很抽象,大量的数学运算也让人头秃,想要搞懂已有的都不是件容易事,如果是自研协议栈就更难了。而且这个行业对英语要求非常高,最起码得有PEST4的水平才能看懂各式各样的外文文档。当然了这个行业的待遇也很高,通信协议栈工程师的年薪多在20w—40w。

从就业和短期[_a***_]来看,嵌入式好一些;从个人长期发展来看,通信协议栈更适合

如果题主是目前急需一份工作,嵌入式会是个更好的选择。我接触过不少人都是先做三五年的技术,积累经验然后自己开家小公司,过的都很不错;如果不存在生活上的压力,并想钻研深层次的一些东西,可以选择通信协议栈。别的不说,光是在英语上的提升就不可估量。一个专家级别的网络通信协议栈工程师的待遇相当之高,有兴趣的朋友可以搜一下。


(都看到最后了,麻烦点个赞或者关注吧,谢谢~)

老师说C语言是面向过程编程语言,它能使用面向对象编程吗?如何使用?

C是面向过程的,在语言这一层面上并没有支持类和对象的概念,C++才支持的。但是,面向对象,本质上是一种编程和设计的思想。即使用纯C,仍然不妨碍人应用面向对象的编程思想。倘若研究过Linux的源代码就应该有点印象,它是纯C写的,但是里面很多函数指针,本质上是模块之间互相松耦合,体现的就是面向对象的设计思想。

谢谢邀请。

其实,“面向过程”和“面向对象”只是程序开发中的一种方法,或者说一种思想,大多数现代高级编程语言都能使用这两种编程思想,C语言当然也不例外。

只不过,有些编程语言在语法上支持“对象”,而C语言则没有原生的“对象”语法。不过借助于灵活的指针和结构体语法,在C语言程序开发中使用“面向对象”思想也是很简单的。

鉴于题主可能是C语言初学者,在开始讨论如何使用C语言进行“面向对象”开发之前,先介绍两个新函数——malloc() 和 free() 。

如果题主看过我之前文章的话,应该明白C语言程序每调用一次函数,系统就会在栈中分配一块栈帧给被调用函数,当函数执行完毕后,这部分栈帧就自动被系统收回了。

malloc() 函数的作用是申请一块指定大小内存,它的C语言原型如下,成功时返回这块内存的首地址,失败时返回 NULL。

C语言程序中函数的局部变量占用的内存,是函数运行时,自动在其所属栈帧中分配的,所以局部变量会随着函数结束释放。不过,malloc() 向系统申请的内存在堆区里,这部分内存不会随着函数的退出自动释放,需要程序员自己使用 free() 函数释放:

到此,以上就是小编对于c语言linux开发技术栈学习的问题就介绍到这了,希望介绍关于c语言linux开发技术栈学习的3点解答对大家有用。

标签: 协议 linux 嵌入式