什么是嵌入式系统?

嵌入式系统(Embedded System),是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。[1][2]嵌入式系统常被用于高效控制许多常见设备,被嵌入的系统通常是包含数字硬件和机械部件的完整设备,例如汽车的防锁死刹车系统。相反,通用计算机如个人电脑则设计灵活,可以智能处理各式各样的运算情况,以满足广大终端用户不同的需要。 
现代嵌入式系统通常是基于微控制器(如含集成内存和/或外设接口的中央处理单元)的,但在较复杂的系统中普通微处理器(使用外部存储芯片和外设接口电路)也很常见。通用型处理器、专门进行某类计算的处理器、为手持应用订制设计的处理器等,都可能应用到嵌入式系统。常见的专用处理器有数字信号处理器。 
嵌入式系统的关键特性是处理特定的任务,因此工程师能对其进行优化,以降低产品的体积和成本,提升可靠性和性能。 
嵌入式系统的物理形态包括便携设备如计步器、电子手表和MP3播放器,大型固定装置如交通灯、工厂控制器,大型复杂系统如混合动力汽车、磁共振成像设备、航空电子设备等。它们的复杂度低至单片机,高至大型底盘或外壳内安装有多个部件、外设和网络。

嵌入式Linux ?

嵌入式Linux 是嵌入式系统中比较主流的一种,其以Linux 为嵌入式设备的操作系统,并广泛用于消费电子,移动电话,航天航空电子中。其Wiki上如是描述: 
嵌入式Linux(英语:Embedded Linux)是一类嵌入式操作系统的概称,这类型的操作系统皆以Linux内核为基础,被设计来使用于嵌入式设备。这类操作系统被广泛地使用在移动电话、个人数码助理(PDA)、媒体播放器以及众多消费性电子设备中。 
比起发行版的Linux 系统,嵌入式Linux 以Linux 为蓝本,进行了大规模的裁剪,只保留目标平台需要用到的东西。其保留了Linux 的开放性,并且也具体嵌入式设备的需求。 
但是由于Linux 的庞大以及其为桌面服务器系统的本质,所以在一些性能方面确实是无法达到预期目标,为此还有专门的社区分支基于Linux 开发了支持硬实时的RT分支版本。由于Linux 的兼容性非常的好,所以嵌入式Linux的贱人显然也是完美的。嵌入式设备提供商可以按照自己的需求随意裁剪Linux 源码,并添加自己的功能。

啥?嵌入式设备的用户体验?

不管要做出什么样形态的产品,用户体验总是会被大家推崇到首位,你系统做的在牛逼,架构选的多么的新颖,算法多么的前无古人。假如你的产品用起来体验很烂,照样没有客户埋单。 
用户体验又分为了好多类型,比如外观、材质、手感这属于外部的一个感官。俗称颜值。比如玩王者农药是否卡?费电吗?防水吗?能看VR吗?美颜效果如何?这一类体验属于交互体验。交互体验是内在。再比如还有一类人比较关心的就是是否有一些特色功能,比如红外、虹膜、指纹。 这些功能其实对于大多数的消费者而言都是锦上添花。但是对于一些极客而言,确实实打实的可用功能。归到最后其实就是,始于颜值,陷于才华,忠于人品。 
那么你如果满足了上述的要求,作为消费产品,又会回归一个比较俗的话题,那就是价格。 恩恩,扯远了。

交互体验的最终目的就是迅速,人机交互的响应很迅速。不过我任务对于大多数泛嵌入式终端产品来讲,大多其实是无人值守的交互状态。所谓无人值守,即是设置好了预期指令,可以在不需要人为交互的情况下,做出响应。比如交换机,路由器,中控器等。这些设备大多是提供协作功能,其本身不需要太多的人机交互,更多的是用来做人机->机或者机->人机 交互的通路。 
这些设备的要求,要比单纯的人机交互设备的响应要求更高。 大家可以接受电脑或者手机重启一次,或者死机一次。 但是无法忍受断电,断网。

还要优化什么?

嵌入式系统设备的优化目的大抵可以从下面几个点去概括

上述总结出自魅族的内核团队大神吴老师总结的,我觉得概括的很全面,也很到位。

增强系统的稳定性

随着业务的增量变化,没有百分之一百的稳定性,只有百分之99.9的稳定性,我们的目标其实也就是百分之99.9的稳定性,这样的系统才是最健壮的。 
根据吴老师的描述,可以通过以下手段来进行稳定性的测试取样,然后做评比。 
- 尽量模拟各种潜在的应用场景,需要构造应用场景测试例。 
- 使用各种压力测试环境将系统上资源利用到极致,采用Linux 现有的测试工具,可做成一套完整的测试流程。 
- 采用标准的测试套件将整个系统的兼容性(是否符合标准)、完整性(功能是否完善)、健壮性(是否容易Crash)。

Linux 标准测试套件

Linux 硬件测试工具以及功能测试相关工具

嵌入式Linux 性能优化方向

那么在嵌入式系统中,为了提高设备的响应速度以及稳定性我们应该要优化什么?我觉得可以从下面几个方向入手。

上述优化前提是你自己的程序已经在一个比较良好的算法或者调度下已经无法迈出往前一步了,当然我这儿只是类比。具体还要根据生产环境来决定。因为很多人根据无需去优化这些,把自己写的业务代码优化好才是王道。

嵌入式 Linux 业务软件质量控制

嵌入式Linux性能优化相关推荐

  1. Linux内核启动速度优化,嵌入式Linux启动时间优化的秘密之五-Bootloader

    描述 本文主要讲述嵌入式Linux启动时间优化的秘密,我们继续上篇没有讲完的嵌入式Linux启动时间优化方法,本文主要会讲Bootloader.想看上一篇的请查看本文结尾的链接. Bootloader ...

  2. 嵌入式linux的调试时间,嵌入式LINUX启动时间优化

    目录: 1. 实践过程 2. 参考帖子 2.1 嵌入式Linux-启动时间优化: 要点如下: 优化第一步: ?? 修改u-boot,把QSPI的读取速度进行提升 优化第二步: ??? 对内核进行裁剪, ...

  3. 开发人员如何解决Linux性能优化之痛?

    这些问题或者场景,你是否曾经遇到过? •  流量高峰期,服务器CPU使用率过高报警,你登录Linux上去top完之后,却不知道怎么进一步定位,到底是系统CPU资源太少,还是程序并发部分写的有问题? • ...

  4. 如何学习Linux性能优化?

    如何学习Linux性能优化? 你是否也曾跟我一样,看了很多书.学了很多 Linux 性能工具,但在面对 Linux 性能问题时,还是束手无策?实际上,性能分析和优化始终是大多数软件工程师的一个痛点.但 ...

  5. linux性能优化--cpu篇

    linux性能优化--cpu篇 前言 负载 CPU使用率 proc perf 一些链接 `perf list` 比较有用的event `perf stat` `perf record` Profili ...

  6. 超全整理 | 嵌入式Linux 性能工具和诊断思路

    作为程序员,和 Linux 打交道,在服务器上分析系统性能情况,我觉得是每一个后端工程师都无法避开的事情. 无论你是开发还是运维,可能都经历过这样的场景: 流量高峰期,服务器 CPU 使用率过高报警, ...

  7. linux下缓存命中测试,Linux 性能优化实战(倪朋飞)---查看缓存命中情况

    cachestat 提供了整个操作系统缓存的读写命中情况. cachetop 提供了每个进程的缓存命中情况.但是,cachetop 并不把直接 I/O 算进来. 安装 cachestat.cachet ...

  8. Linux性能优化方向及相关工具

    1. 考察性能的指标 从应用负载的角度 吞吐 延时 从系统资源的角度 CPU使用率 内存饱和度 2. 定位性能问题的步骤 选择指标评估性能 设置性能优化的目标 进行性能基准测试 分析和定位性能瓶颈 对 ...

  9. 查看linux内存优化,Linux性能优化和监控系列(三) 分析Memory使用状况

    Linux性能优化和监控系列(三) 分析Mem 分析Memory使用状况 内存是影响服务器性能的一个主要因素, 当进程已经驻留内存或者系能够分配给进程足够的内存给它, CPU能顺利自如的运行. 如果发 ...

最新文章

  1. HGOI20190808 省常中互测1
  2. JavaScript怎么安装_几句话说清楚JavaScript、V8引擎、NodeJS、NMP,到底是什么东东...
  3. python格式文件大小_在Python中调整NVSS FITS格式文件的大小并对其进行操作
  4. 多版本php共存 linux,linux下多版本php共存的原理、方法
  5. W3c 中文 文档,很不错
  6. 利用jemalloc分析内存泄漏以及LD_PRELOAD
  7. 隐私问题不想用自己手机收验证码怎么办?
  8. 自己动手搭建免费VoIP服务器
  9. plotly系列 | 绘制散点图组合箱线图(联合图)
  10. python table类中的 可以作为初步观察工具_《趣学Python编程》习题总结
  11. ABAP clear、refresh、free的区别
  12. python增删改查mysql_python之mysql的增删改查
  13. 服务器部署jdk,tomcat环境及腾讯云域名解析
  14. Lua源码分析 - 虚拟机篇 - 语义解析之Opcode生成(17)
  15. python nodejs开发web_用nodejs和python实现一个爬虫来爬网站(智联招聘)的信息
  16. 机器人教父预测AI未来32年!Yann LeCun留言称赞
  17. 映目图文直播上海世界移动通信大会
  18. Nest.js 怎样使用 hbs 的 partials?
  19. 《内网安全攻防:渗透测试实战指南》读书笔记(四):权限提升分析及防御
  20. Oracle - 级联删除

热门文章

  1. Python 字符串的join方法
  2. FGD · 轻松实现音频播放
  3. git回滚到某次commit的文件
  4. 面向对象编程思想的理解
  5. 新职场必备的6款办公软件
  6. VScode 详细教程
  7. 疫情过后,互联网会迎来新的拐点,新一批人将崛起!
  8. 《高阶Perl》——第3章 缓存与记忆术
  9. Leecode147.地下城游戏(python)
  10. android添加人物动画效果图,Android编程根据系列图片绘制动画实例总结