浅谈Linux程序开发

来源:
导读 大家好,我是本期栏目编辑小友,现在为大家讲解浅谈Linux程序开发问题。 Linux程序开发 一般来说,linux程序

大家好,我是本期栏目编辑小友,现在为大家讲解浅谈Linux程序开发问题。

Linux程序开发

一般来说,linux程序分为两部分:

1.潜在驱动因素的开发;

2.应用层的应用开发;

驾驶员

一般驱动都是和内核、硬件相关的,编程语言是C,所以你需要了解一些硬件知识,至少需要了解硬件原理图和芯片说明书。硬件原理图告诉我们底层接口的工作逻辑和芯片的工作条件(电压、电流、时钟脉冲等)。);手册告诉我们如何配置和使用芯片,关键是了解寄存器配置。对于芯片的配置,就是配置各个寄存器,比如配置一个AD音视频采集芯片:需要配置音频采样率、采样点、采样位数等。视频还需要有相应的码率、帧率、亮度、锐度、数据编码格式(BT656、BT1120等)等参数。),等等。这些参数。此外,还需要了解内核,比如内核的驱动框架,内核提供给驱动调用的接口,以及内核的调度和驱动机制。驱动程序通常对开发人员的要求比应用程序开发人员更高,需要掌握更多的知识,所以他们的工资通常比应用程序开发人员高。但是驱动开发的需求没有应用程序大,因为驱动一般完成后不需要更改,一般驱动的开发都是芯片厂商需要的,做具体应用的公司很少有驱动。

应用程序

应用程序基本上是通过通用编程语言开发特定的业务程序。这种编程语言不再局限于C语言,而是可以是C、C、java、Python、lua、shell、web的前端和后端开发等。

顾名思义,应用层就是一个应用程序。不同的行业有不同的服务,也就是不同的应用。比如智能公交行业,需要GPS定位、位置上报、根据位置自动报站,平台需要基于GPS做位置信息,实现智能车辆调度。因此,应用开发者的需求远大于驱动开发者的需求。做应用开发的另一个好处是可以熟悉行业的业务知识,可能对你的职业发展有好处。而不是专注于技术,可以通过技术实现业务功能,即满足客户的需求。你可以逐渐发展市场导向的思维,而不是专注于技术。毕竟技术只是手段和工具,最终还是要解决客户或者市场的问题。

做应用开发的时候,入门门槛比较低,刚毕业就可以做开发。但是优秀的应用开发工程师之间还是有很大的差异。这些差异在哪里?我的感受主要体现在以下几个方面:

1.需求分析。

2.应用程序的架构设计。

3.整体系统设计。

需求分析

不同的人对业务需求的分析有不同的理解,新手往往低估了技术难度和工作量。

应用架构设计。

一般不同的行业或者公司都有自己的应用框架,一般都是基于业务逻辑的应用框架。这个框架不是一下子设计出来的,而是根据公司业务的逐步完善而演变的。

整体系统设计。

此项可能只存在于嵌入式系统中;这里的系统是指整个设备的软件系统,包括uboot、内核、文件系统和flash的分区设计。里面有很多技巧,比如更重要的一个:升级功能。

对于嵌入式系统来说,升级是首先要考虑的,设备早期升级的频率可能比较高,一方面是因为新推出的软件存在bug,另一方面是因为需求增加。如果系统前期设计不够合理,后期升级系统或应用可能会很麻烦,所以在设备上线前,升级应该很稳定,最好支持远程升级;另外,在flash的分区设计中,最好做一个备份系统分区,即在主系统无法异常启动的情况下,可以选择通过备份系统启动,然后更新修复主系统。具体细节这里就不细说了,后面会介绍。

结束语

对于linux应用程序开发来说,入门非常简单。嵌入式linux应用基本上和Linux应用没有太大区别。如果你熟悉C/C语言,很容易上手。经历了几个完整的项目,填了一些坑,就可以算是入行了。

标签:

版权声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢您的支持与理解。