刊首语
有没有看了好多碎片化的信息还是抓不到重点,有没有依稀记得哪里看过比较好的项目但就是找不到,有没有发现一些媒体去写技术性报道特别不专业。受好友痞子衡的启发准备做下人人都是极客的半月刊,主要记录嵌入式,Linux,Android 等相关领域近两周发生的资讯,以及觉得不错的开源项目和工具。欢迎大家留言提供更多感兴趣的话题板块,我会根据大家的反馈更新在人人都是极客的半月刊里。
人人都是极客半月刊记录近两周值得分享的相关行业内容,周六发布。
图片来自app一个
资讯
1. Arm推出2款新AI边缘计算芯片设计,专为物联网设备打造
Arm 推出了 2 款具有 AI 功能的 NPU(神经处理单元),Arm Cortex-M55 和 Ethos-U55。专为物联网终端设备设计,不需要连接云,旨在提高低功耗嵌入式设备的机器学习和推理能力。据说在某些语音和视觉场景下,能将机器学习性能提升多达 480倍。下面我们来详细看下这两款芯片。
Cortex-M55:氦气技术+自定义指令能力
这是第一款基于 Arm 氦气技术的片上系统。所谓氦气技术,实际上是针对 Arm Cortex-M 系列处理器的 M-Profile 矢量扩展(MVE)技术。
这是 Armv8.1-M 架构的扩展,增加了150多个新的标量和矢量指令。可以有效计算 8 位、16 位和 32 位定点数据。
Ethos-U55:Arm 首款 microNPU
Ethos-U55 属于 Cortex-M 处理器的配套 NPU 加速器架构,需要和 Cortex-M55、Cortex-M33、Cortex-M7、Cortex-M4 等产品搭配使用。它包含 32 至 256 个可配置计算单元,与基本的 Cortex-M55 相比,最多可实现 32 倍的机器学习性能提升。
理论上讲,Ethos-U55 + Cortex-M55 比前几代 Cortex-M 运行机器学习任务的速度最高能提升 480 倍。软件方面,Cortex-M55 和 Ethos-U55 都可以与流行的机器学习框架(TensorFlow 和 PyTorch),以及 Arm 自家的解决方案很好地配合使用。
2. Linux Kernel 5.6已着手应对 2038 年问题
Linux Kernel 5.6 版本已来,新版本最大的亮点就是支持 usb4.0 和着手解决了 2038 年问题。
Linux 5.6 也成为第一个为 32 位系统准备运行到 2038 年之后的主线内核。
什么是 2038 年问题?2038 年问题是指在使用POSIX时间的32位计算机应用程序上,格林尼治时间2038年1月19日凌晨03:14:07(北京时间:2038年1月19日中午11:14:07)之后无法正常工作。
由于 2038 年问题,Unix 时间戳将在 2038 年 1 月 19 日溢出,因为它无法存储带符号的 32 位整数,并且将限制更新 32 位系统。这会导致某些软件在 2038 年 1 月 19 日 3 时 14 分 07 秒之后无法正常工作。届时,在大部分 32 位操作系统上,依据 “time_t” 标准,时间将会“绕回”且在内部被表示为一个负数,并造成程序无法工作,因为它们无法识别 2038 年,而可能会跳回 1970 年或 1901 年。
开源项目
1. 物联网实时数据库 TDengine 发布 ARM 版
万物互联时代必将需要适合嵌入式领域的数据库,由于受嵌入式设备资源的限制,SQLite凭借其轻小的优势在嵌入式系统的数据处理中独占鳌头,远远超过大家熟悉的MySQL, Oracle等数据库。但边缘计算、物联网网关、嵌入式系统中,数据往往是各种传感器或设备采集的时序数据,这些数据具有如下鲜明的特点。
1:数据是时序的;2:数据是结构化的;3: 数据极少有更新或删除操作;4:数据产生源是唯一的;5:相对互联网应用,写多读少;6:用户关注的是一段时间的趋势,而不是某一特点时间点的值;7: 数据是有保留期限的;8:数据的查询分析一定是基于时间段和地理区域的;9:除存储查询外,还往往需要各种统计、插值和其他实时计算操作;10:数据流量平稳。
SQLite是关系型数据库,没有利用上述数据特点,因此在存储、查询数据的性能上严重不足,而且不提供插值、不提供流式计算、不提供数据生命周期管理、无账号、无远程登录等功能,也难实现边云协同。随着物联网、工业互联网的发展,SQLite的局限越来越明显。
目前有人已经基于这个开源项目做了短信监控平台,车联网平台,智慧排水系统,智慧菜场项目。
TDengine是涛思数据团队针对物联网、工业互联网数据特点而开发的一数据处理平台。详细开源地址如下:
https://github.com/taosdata/
2. LEP(Linux易用剖析器)
是大神宋宝华开发的工具,LEP的全称是Linux Easy Profiling(Linux易用剖析器),核心特点在于Easy(简单),主要功能在乎Profiling(剖析)。LEP的设计目标是:便利Linux的程序员,以最快最直接的方式,定位到系统里面一些bug的源头,以及一些性能瓶颈的原因。
下图演示了LEP观察CPU利用率、平均负载等的时候的图形。
个人觉得有点像 android studio 里的 profile 工具,里面集成了 perf 然后以可视化的角度提供给开发者,可以更方便的帮助开发者调试问题。但LEP的场景不仅仅限于开发者,由于其便携分布的特点,可以运用在大型监控,或者工厂检测等物联网场景中。结合上面的 TDengine 实时数据库简直就是一个拿来就可以用的分布式实时数据物联网系统。哈哈,恭喜你可以去创业了。
https://github.com/linuxep/linuxep
工具
1.一次运行多个控制台 Tmux
你有没有遇到过编译过程中突然断网,或者因为下班等原因不得不断网的经历。这种尴尬的场景就是会话和窗口绑定导致的。有没有一种工具可以解绑会话和窗口的关系,实现窗口一次运行多个控制台,还可以在后台运行的工具。答案是肯定的。
Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离。
tmux使用C/S模型构建,主要包括以下单元模块:
一个tmux命令执行后启动
一个tmux服务
一个tmux服务可以拥有多个session,一个session可以看作是tmux管理下的伪终端的一个集合
一个session可能会有多个window与之关联,每个window都是一个伪终端,会占据整个屏幕
一个window可以被分割成多个pane
有了它你还可以肆无忌惮地去分屏,再也不怕窗口来回切换带来的痛苦了。
详细开源地址如下:
https://github.com/tmux/tmux
2.动态图ScreenToGif
之前看别人公众号文章的时候发现很多不错的动态图,不仅美观,而且在讲解知识流程的时候更简洁直观。一直好奇是怎么做的,于是去网上搜索,找到一个不错的工具,而且还是开源的。它就是ScreenToGif。
ScreenToGif是款小巧,多功能的工具,大小才3M,支持屏幕,网络摄像头和视频等。
开源地址如下:
https://github.com/NickeManarin/ScreenToGif