侵权投诉

主流内存压缩技术那些事

Linuxer 2020-06-03 15:11 次阅读

1. 技术背景

说到压缩这个词,我们并不陌生,应该都能想到是降低占用空间,使同样的空间可以存放更多的东西,类似于我们平时常用的文件压缩,内存压缩同样也是为了节省内存。

尽管当前android手机6GB,8GB甚至12GB的机器都较为常见了,但内存无论多大,总是会有不够用的时候。当系统内存紧张的时候,会将文件页丢弃或回写回磁盘(如果是脏页),还可能会触发LMK杀进程进行内存回收。这些被回收的内存如果再次使用都需要重新从磁盘读取,而这个过程涉及到较多的IO操作。就目前的技术而言,IO的速度远远慢于这RAM操作速度。因此,如果频繁地做IO操作,不仅影响flash使用寿命,还严重影响系统性能。内存压缩是一种让IO过程平滑过渡的做法, 即尽量减少由于内存紧张导致的IO,提升性能。

2. 主流内存压缩技术

目前linux内核主流的内存压缩技术主要有3种:zSwap, zRAM, zCache。

2.1 zSwap

zSwap是在memory与flash之间的一层“cache”,当内存需要swap出去磁盘的时候,先通过压缩放到zSwap中去,zSwap空间按需增长。达到一定程度后则会按照LRU的顺序(前提是使用的内存分配方法需要支持LRU)将就最旧的page解压写入磁盘swap device,之后将当前的page压缩写入zSwap。

zswap本身存在一些缺陷或问题:

1)  如果开启当zswap满交换出backing store的功能, 由于需要将zswap里的内存按LRU顺序解压再swap out, 这就要求内存分配器支持LRU功能。

2)  如果不开启当zswap满交换出backing store的功能, 和zRam是类似的。

2.2 zRram

zRram即压缩的内存, 使用内存模拟block device的做法。实际不会写到块设备中去,只会压缩后写到模拟的块设备中,其实也就是还是在RAM中,只是通过压缩了。由于压缩和解压缩的速度远比读写IO好,因此在移动终端设备广泛被应用。zRam是基于RAM的block device, 一般swap priority会比较高。只有当其满,系统才会考虑其他的swap devices。当然这个优先级用户可以配置。

zRram本身存在一些缺陷或问题:

1)  zRam大小是可灵活配置的, 那是不是配置越大越好呢? 如果不是,配置多大是最合适的呢?

2)  使用zRam可能会在低内存场景由于频繁的内存压缩导致kswapd进程占CPU高, 怎样改善?

3)  增大了zRam配置,对系统内存碎片是否有影响?

要利用好zRam功能, 并不是简单地配置了就OK了, 还需要对各种场景和问题都做好处理, 才能发挥最优的效果。

2.3 zCache

zCache是oracle提出的一种实现文件页压缩技术,也是memory与block dev之间的一层“cache”,与zswap比较接近,但zcache目前压缩的是文件页,而zSwap和zRAM压缩是匿名页。

zcache本身存在一些缺陷或问题:

1)  有些文件页可能本身是压缩的内容, 这时可能无法再进行压缩了

2)  zCache目前无法使用zsmalloc, 如果使用zbud,压缩率较低

3)  使用的zbud/z3fold分配的内存是不可移动的, 需要关注内存碎片问题

3.内存压缩主流的内存分配器

3.1 Zsmalloc

zsmalloc是为ZRAM设计的一种内存分配器。内核已经有slub了, 为什么还需要zsmalloc内存分配器?这是由内存压缩的场景和特点决定的。zsmalloc内存分配器期望在低内存的场景也能很好地工作,事实上,当需要压缩内存进行zsmalloc内存分配时,内存一般都比较紧张且内存碎片都比较严重了。如果使用slub分配, 很可能由于高阶内存分配不到而失败。另外,slub也可能导致内存碎片浪费比较严重,最坏情况下,当对象大小略大于PAGE_SIZE/2时,每个内存页接近一般的内存将被浪费。

Android手机实测发现,anon pages的平均压缩比大约在1:3左右,所以compressed anon page size很多在1.2K左右。如果是Slub,为了分配大量1.2K的内存,可能内存浪费严重。zsmalloc分配器尝试将多个相同大小的对象存放在组合页(称为zspage)中,这个组合页不要求物理连续,从而提高内存的使用率。

需要注意的是, 当前zsmalloc不支持LRU功能, 旧版本内核分配的不可移动的页, 对内存碎片影响严重, 但最新版本内核已经是支持分配可移动类型内存了。

3.2 Zbud

zbud是一个专门为存储压缩page而设计的内存分配器。用于将2个objects存到1个单独的page中。zbud是可以支持LRU的, 但分配的内存是不可移动的。

3.3 Z3fold

z3fold是一个较新的内存分配器, 与zbud不同的是, 将3个objects存到1个单独的page中,也就是zbud内存利用率极限是1:2, z3fold极限是1:3。同样z3fold是可以支持LRU的, 但分配的内存是不可移动的。

4.内存压缩技术与内存分配器组合对比分析

结合上面zSwap / zRam /zCache的介绍, 与zsmalloc/zbud/z3fold分别怎样组合最合适呢?

下面总结了一下, 具体原因可以看上面介绍的时候各类型的特点。

5.zRAM技术原理

本文重点介绍zRam内存压缩技术,它是目前移动终端广泛使用的内存压缩技术。

5.1 软件框架

下图展示了内存管理大体的框架, 内存压缩技术处于内存回收memory reclaim部分中。

再具体到zRam, 它的软件架构可以分为3部分, 分别是数据流操作,内存压缩算法 ,zram驱动。

数据流操作:提供串行或者并行的压缩和解压操作。

内存压缩算法:每种压缩算法提供压缩和解压缩的具体实现回调接口供数据操作调用。

Zram驱动:创建一个基于ram的块设备, 并提供IO请求处理接口。

5.2 实现原理

Zram内存压缩技术本质上就是以时间换空间。通过CPU压缩、解压缩的开销换取更大的可用内存空间。

我们主要描述清楚下面这2个问题:

1) 什么时候会进行内存压缩?

2) 进行内存压缩/解压缩的流程是怎样的?

进行内存压缩的时机:

1) Kswapd场景:kswapd是内核内存回收线程, 当内存watermark低于low水线时会被唤醒工作, 其到内存watermark不小于high水线。

2) Direct reclaim场景:内存分配过程进入slowpath, 进行直接行内存回收。

下面是基于4.4内核理出的内存压缩、解压缩流程。

内存回收过程路径进行内存压缩。会将非活跃链表的页进行shrink, 如果是匿名页会进行pageout, 由此进行内存压缩存放到ZRAM中, 调用路径如下:

在匿名页换出到swap设备后, 访问页时, 产生页访问错误, 当发现“页表项不为空, 但页不在内存中”, 该页就是已换到swap区中,由此会开始将该页从swap区中重新读取, 如果是ZRAM, 则是解压缩的过程。调用路径如下:

5.3 内存压缩算法

目前比较主流的内存算法主要为LZ0, LZ4, ZSTD等。下面截取了几种算法在x86机器上的表现。各算法有各自特点, 有以压缩率高的, 有压缩/解压快的等, 具体要结合需求场景选择使用。

6.zRAM技术应用

本节描述一下在使用ZRAM常遇到的一些使用或配置,调试的方法。

6.1 如何配置开启zRAM

1) 配置内存压缩算法

下面例子配置压缩算法为lz4

echo lz4 > /sys/block/zram0/comp_algorithm

2) 配置ZRAM大小

下面例子配置zram大小为2GB

echo 2147483648 > /sys/block/zram0/disksize

3) 使能zram

mkswap /dev/zram0

swapon /dev/zram0

6.2 swappiness含义简述

swappiness参数是内核倾向于回收匿名页到swap(使用的ZRAM就是swap设备)的积极程度, 原生内核范围是0~100, 参数值越大, 表示回收匿名页到swap的比例就越大。如果配置为0, 表示仅回收文件页,不回收匿名页。默认值为60。可以通过节点“/proc/sys/vm/swappiness”配置。

6.3 zRam相关的技术指标

1) ZRAM大小及剩余空间

Proc/meminfo中可以查看相关信息

SwapTotal:swap总大小, 如果配置为ZRAM, 这里就是ZRAM总大小

SwapFree:swap剩余大小, 如果配置为ZRAM, 这里就是ZRAM剩余大小

当然, 节点 /sys/block/zram0/disksize是最直接的。

2) ZRAM压缩率

/sys/block/zram/mm_stat中有压缩前后的大小数据, 由此可以计算出实际的压缩率

orig_data_size:压缩前数据大小, 单位为bytes

compr_data_size :压缩后数据大小, 单位为bytes

3) 换出/换入swap区的总量, proc/vmstat中中有相关信息

pswpin:换入总量, 单位为page

pswout:换出总量, 单位为page

6.4 zRam相关优化

上面提到zRam的一些缺陷, 怎么去改善呢?

1)  zRam大小是可灵活配置的, 那是不是配置越大越好呢? 如果不是配置多大是最合适的呢?

zRam大小的配置比较灵活, 如果zRam配置过大, 后台缓存了应用过多, 这也是有可能会影响前台应用使用的流畅度。另外, zRam配置越大, 也需要关注系统的内存碎片化情。因此zRam并不是配置越大越好,具体的大小需要根据内存总大小及系统负载情况考虑及实测而定。

2)  使用zRam,可能会存在低内存场景由于频繁的内存压缩导致kswapd进程占CPU高, 怎样改善?

zRam本质就是以时间换空间, 在低内存的情况下, 肯定会比较频繁地回收内存, 这时kswapd进程是比较活跃的, 再加上通过压缩内存, 会更加消耗CPU资源。改善这种情况方法也比较多, 比如, 可以使用更优的压缩算法, 区别使用场景, 后台不影响用户使用的场景异步进行深度内存压缩, 与用户体验相关的场景同步适当减少内存压缩, 通过增加文件页的回收比例加快内存回收等等。

3)  增大了zRam配置,对系统内存碎片是否有影响?

使用zRam是有可能导致系统内存碎片变得更严重的, 特别是zsmalloc分配不支持可移动内存类型的时候。新版的内核zsmalloc已经支持可移动类型分配的, 但由于增大了zRam,结合android手机的使用特点, 仍然会有可能导致系统内存碎片较严重的情况,因些内存碎片问题也是需要重点关注的。解决系统内存碎片的方法也比较多, 可以结合具体的原因及场景进行优化。

原文标题:谈谈内存压缩那些事

文章出处:【微信号:LinuxDev,微信公众号:Linuxer】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

Linux Mint 19 基于 Ubuntu 18.04 LTS

说到 Linux Mint 20 的发布,有很多事情要谈。虽然我们已经介绍了 Linux Mint ....
的头像 Linux爱好者 发表于 07-13 09:34 13次 阅读
Linux Mint 19 基于 Ubuntu 18.04 LTS

Linux系统的概念及由来

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任....
发表于 07-12 10:12 102次 阅读
Linux系统的概念及由来

Linux要如何学习

学习大多类似庖丁解牛,对事物的认识一般都是由浅入深、由表及里的过程,循序才能渐进。学习 Linux ....
发表于 07-12 10:05 21次 阅读
Linux要如何学习

Linux系统有哪些优点

Linux系统Linux系统优点有哪些?Linux是GNU / Linux的全名,是一组免费使用和免....
发表于 07-12 10:03 64次 阅读
Linux系统有哪些优点

Linux的发展前景怎么样

言归正传,关于Linux的前景如何,就目前Linux在各行各业中所起到的作用,可以预测未来3-8年内....
发表于 07-10 17:15 388次 阅读
Linux的发展前景怎么样

关于嵌入式Linux项目开发内容

 对于嵌入式Linux开发所需要的知识,也正是处理数据流转时所需要的技术, 对于嵌入式Linux项目....
发表于 07-10 16:57 50次 阅读
关于嵌入式Linux项目开发内容

Linux的特点_Linux与windows的区别

Linux是一套免费使用和自由传播的类Unix操作系统,是一个多用户、多任务、支持多线程和多CPU的....
发表于 07-10 16:53 116次 阅读
Linux的特点_Linux与windows的区别

Linux如何安装软件

在任何操作系统中,我们都需要安装应用程序来完成日常任务。在Windows世界中,每个程序都有一个简单....
发表于 07-10 16:38 37次 阅读
Linux如何安装软件

Linux嵌入式操作系统有哪些优势

嵌入式Linux操作系统是将Linux操作系统进行裁剪,使Linux操作系统能够在嵌入式计算机系统上....
发表于 07-10 16:34 145次 阅读
Linux嵌入式操作系统有哪些优势

Linux操作系统与Windows操作系统的五大区别

Linux操作系统和Windows操作系统身为三大操作系统巨头里面的两大巨头,他们有什么区别呢?首先....
发表于 07-10 16:28 137次 阅读
Linux操作系统与Windows操作系统的五大区别

基于linux的十大操作系统排名

基于linux内核开源的特性,并随着linux的不断发展,各种基于Linux的操作系统版本也在不断发....
发表于 07-10 16:23 76次 阅读
基于linux的十大操作系统排名

在Linux系统下使用top命令查看CPU使用情况

在Linux系统下,使用top命令查看CPU使用情况。
发表于 07-10 11:46 34次 阅读
在Linux系统下使用top命令查看CPU使用情况

开源技术超八成企业认可 开源人才短缺已成行业痛点

近年来,全球开源产业链已经形成,中国企业对开源技术的接受程度也逐年增高,超八成的企业认可开源技术,国....
的头像 工程师人生 发表于 07-10 11:41 204次 阅读
开源技术超八成企业认可 开源人才短缺已成行业痛点

黑客常用的Kali Linux是什么_有什么用

我们很多人都会对黑客感兴趣,甚至觉得黑客霸气外漏,当然也有人是觉得黑客是遭人唾弃,没干啥好事儿。先不....
发表于 07-10 11:38 146次 阅读
黑客常用的Kali Linux是什么_有什么用

Linux创建者说,我不再编写任何代码

VMware副总裁问道:“你怎么办?”,Linux的创建者回答说,他回答了电子邮件。Linus的创建....
的头像 倩倩 发表于 07-10 10:30 192次 阅读
Linux创建者说,我不再编写任何代码

家用路由器使用过时的Linux操作系统,存在着网络安全的漏洞

至于厂商使用了多少保护嵌入式设备的缓解技术,研究显示AVM使用的防护最多,而友讯最少。整体而言,研究....
发表于 07-10 09:15 100次 阅读
家用路由器使用过时的Linux操作系统,存在着网络安全的漏洞

三星DeX将Linux PC体验带入移动设备

“尽管处于试用阶段,但Galaxy on Linux是我们的创新解决方案,它将PC上的Linux体验....
发表于 07-10 08:21 166次 阅读
三星DeX将Linux PC体验带入移动设备

系统封装之系统减肥的操作步骤

为了减少Ghost恢复镜像备份文件时所需时间,或在一张光盘上尽可能安装更多的软件,这就需要将Ghos....
发表于 07-09 11:27 30次 阅读
系统封装之系统减肥的操作步骤

Linux查看服务器状态的命令大全

Linux查看服务器状态的命令大全
发表于 07-09 09:34 37次 阅读
Linux查看服务器状态的命令大全

操作系统的置换算法FIFO-OPT-LRU实现代码

在一个请求分页系统中,设页面大小占100个单元,假如系统分配给一个作业的物理块数为3,试求出用FIF....
发表于 07-08 17:24 19次 阅读
操作系统的置换算法FIFO-OPT-LRU实现代码

Linux内核配置编译分析的设计方案

Linux内核配置编译分析的设计方案
发表于 07-08 16:53 83次 阅读
Linux内核配置编译分析的设计方案

熊谱翔:RT-Thread到底会走向何方?

由于个人兴趣及项目需求动手写了一个RTOS,在2006年初发布了RT-Thread的第一个内核版本并....
的头像 RTThread物联网操作系统 发表于 07-08 15:57 147次 阅读
熊谱翔:RT-Thread到底会走向何方?

一文知道uClinux和Linux的异同

  uClinux是针对控制领域的嵌入式linux操作系统,它从Linux2.0/2.4内核派生而来,沿袭了主流Linux的绝大部分特性。适合不具...
发表于 07-08 15:38 72次 阅读
一文知道uClinux和Linux的异同

和ASAN相比,HWASAN具有哪些缺点?

Shadow memory有一些元数据的思维在里面。它虽然也是内存中的一块区域,但是其中的数据仅仅反....
发表于 07-08 15:24 43次 阅读
和ASAN相比,HWASAN具有哪些缺点?

linux虚拟机下使用IOMETER测试磁盘的IO性能

前面有分享了windows下如何使用IOMETER来测试网络磁盘的IO性能,今天分享一下linux下....
发表于 07-08 10:32 28次 阅读
linux虚拟机下使用IOMETER测试磁盘的IO性能

内存溢出的解决办法 ?

求解决方案?????
发表于 07-08 08:34 46次 阅读
内存溢出的解决办法 ?

《Linux驱动开发入门与实战_linux典藏大系_郑强》高清pdf下载链接

《Linux驱动开发入门与实战_linux典藏大系_郑强》高清pdf下载链接百度网盘链接:提取码:dat9 下载链接2: 内容简介 ...
发表于 07-07 21:09 179次 阅读
《Linux驱动开发入门与实战_linux典藏大系_郑强》高清pdf下载链接

嵌入式Linux系统篇:RealARM2410技术手册

  RealARM2410是基于三星公司S3C2410X 高性能ARM 处理器的嵌入开发平台,旨在为....
发表于 07-07 16:35 39次 阅读
嵌入式Linux系统篇:RealARM2410技术手册

I.MX6ULL终结者开发板裸机仿真jlink调试

I.MX6ULL‘终结者’开发板预留了JTAG仿真接口,并给出了开发文档,可以实现在JLINK仿真器条件下的单步跟踪、断点...
发表于 07-07 10:56 266次 阅读
I.MX6ULL终结者开发板裸机仿真jlink调试

Windows和Linux虚拟机的双系统结合工具WSL 2

很长一段时间以来,双系统是我唯一的解决方案。我一直在用的是一台苹果笔记本,它几乎可以做任何事:开发、....
的头像 如意 发表于 07-07 10:47 332次 阅读
Windows和Linux虚拟机的双系统结合工具WSL 2

鸟哥的Linux私房菜基础篇第四版PDF电子书免费下载

现在的人们几乎无时无刻都会碰计算机!不管是桌面计算机(桌机)、笔记本电脑(笔电)、平板计算机、智能型....
发表于 07-07 08:00 72次 阅读
鸟哥的Linux私房菜基础篇第四版PDF电子书免费下载

4G内存和6G内存的手机成本差异是多少?

现在手机4G内存和6G内存的成本差异大概有多少呢?实际上,现在大多数的手机厂商还是使用LPDDR4X....
的头像 如意 发表于 07-05 10:38 288次 阅读
4G内存和6G内存的手机成本差异是多少?

工控机由哪几部分组成

那我们的工控机的是怎样做的呢?我们的工控机是由哪几方面组成的,下面给大家讲解一下:
发表于 07-05 09:30 119次 阅读
工控机由哪几部分组成

Linux主要应用在那些领域

日前,国际超算大会发布了最新的全球TOP500超级计算机列表,其中最著名的是日本超级计算机“ Fug....
的头像 Wildesbeast 发表于 07-04 11:38 420次 阅读
Linux主要应用在那些领域

如何才能管理Linux中的用户活动

如果要管理Linux服务器,则需要准备好使用几个命令来检查用户活动-用户何时连接以及他们连接的频率、....
的头像 Wildesbeast 发表于 07-04 11:38 410次 阅读
如何才能管理Linux中的用户活动

Windows比Unix和Linux到底有什么优劣势

在大多数情况下,Windows甚至优于Unix / Linux。 对于某些专业技术人员来说,Unix....
的头像 Wildesbeast 发表于 07-04 11:13 323次 阅读
Windows比Unix和Linux到底有什么优劣势

详解Linux服务器的用户活动和命令

如果您在管理Linux服务器,最好准备好使用用于检查用户活动的多个命令——用户何时登录及登录频率、属....
的头像 如意 发表于 07-03 15:30 2184次 阅读
详解Linux服务器的用户活动和命令

一文了解虚拟机Linux系统的几大组件

本文概述了Linux系统的几大组件,描述了这些组件之间的关系。文章解释了术语,并描述看似很基础的细节....
的头像 如意 发表于 07-03 15:20 303次 阅读
一文了解虚拟机Linux系统的几大组件

Linux就该这么学【电子书分享】

公益分享,侵删 章节包括有: 第0章 咱们先来谈谈学习方法和红帽系统。 第1章 部署虚拟环境安装linux系统。 第2章 新手...
发表于 07-03 14:45 658次 阅读
Linux就该这么学【电子书分享】

Linux初学者(学习资料)

根据统计结果,越来越多的人开始转向Linux,而程序员中使用Linux的比重也越来越高。于是整理一些Linux的资料就显得尤为重要。...
发表于 07-03 14:17 1304次 阅读
Linux初学者(学习资料)

虚拟机:Linux生成自签名SSL证书

虚拟机:Linux生成自签名SSL证书
的头像 如意 发表于 07-02 16:34 399次 阅读
虚拟机:Linux生成自签名SSL证书

嵌入式必看 Linux内存管理工作原理

机器的内存是有限资源,而进程数量是无法确定的,如果在某些时候已经启动的进程占据了所有内存空间,此时就....
发表于 07-02 15:10 227次 阅读
嵌入式必看 Linux内存管理工作原理

如何创建AXI CDMA Linux用户空间示例应用

步骤 3:成功完成后,选择“验证设计 (Validate design)”以验证设计,并检查地址编辑....
的头像 FPGA开发圈 发表于 07-02 15:03 615次 阅读
如何创建AXI CDMA Linux用户空间示例应用

Linux下对于函数调用的工作原理

高地址的一部分空间会分配给内核,称为内核空间,剩下的内存空间给用户使用,称为用户空间。
发表于 07-02 14:46 73次 阅读
Linux下对于函数调用的工作原理

CUDA 6中的统一内存模型

NVIDIA在CUDA 6中引入了统一内存模型 ( Unified Memory ),这是CUDA历....
的头像 Linuxer 发表于 07-02 14:08 128次 阅读
CUDA 6中的统一内存模型

雷克沙进军内存市场,内存市场大风暴

雷克沙的笔记本和台式机内存条采用了黑色的 PCB。参数方面,笔记本和台式机内存条都是 DDR4 26....
发表于 07-02 09:42 75次 阅读
雷克沙进军内存市场,内存市场大风暴

基于POSIX和Unix的多用户、支持多线程和多CPU的操作系统

Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本....
的头像 ST视频 发表于 07-02 08:14 583次 观看
基于POSIX和Unix的多用户、支持多线程和多CPU的操作系统

梳理嵌入式Linux的一些知识

学单片机的朋友有些已经有一些Linux基础了,但也不乏有些朋友没用过Linux,甚至有些初学的读者朋....
的头像 玩转单片机 发表于 07-01 16:56 485次 阅读
梳理嵌入式Linux的一些知识

宋宝华: Linux为什么一定要copy_from_user ?

传给dev_set_name()的根本是个stack区域的临时变量,是一个匆匆过客。而device的....
的头像 Linuxer 发表于 07-01 14:49 412次 阅读
宋宝华: Linux为什么一定要copy_from_user ?

Gigantic巨页与CMA的完全结合

用户可以在开机的时候通过hugetlb_cma bootargs来设置CMA的大小,如果是NUMA架....
的头像 Linuxer 发表于 07-01 14:46 146次 阅读
Gigantic巨页与CMA的完全结合

微控制器(MCU)由什么组成

微控制器(MCU)由中央处理器(CPU),非易失性存储器(ROM),易失性存储器(RAM),外围设备....
发表于 06-29 11:20 110次 阅读
微控制器(MCU)由什么组成

极度详细之Linux官方最新版本5.4移植教程

    我们在学习Linux内核开发的时候,拿到的Linux内核源码都是开发板厂家移植修改过的。我们按照厂家的使用手册,...
发表于 06-29 11:15 2347次 阅读
极度详细之Linux官方最新版本5.4移植教程

选择单片机(MCU)考虑的九大因素

单片机(MCU)是一个小型的计算机,它将各个部件集成在单个芯片上,具有CPU,内存(RAM和ROM)....
发表于 06-29 09:53 89次 阅读
选择单片机(MCU)考虑的九大因素

虚拟机:程序在指定地址运行的步骤

我们知道程序在每次运行的时候地址都是不一样的,linux之所以有这样的设计也许是为了安全性考虑,不利....
的头像 如意 发表于 06-29 09:45 456次 阅读
虚拟机:程序在指定地址运行的步骤

开源LIDAR原型制作平台

内核中使用的软件驱动器会启动硬件组件,向用户显示所有可用功能。这些驱动器大部分都是工业I/O (II....
发表于 06-28 14:19 192次 阅读
开源LIDAR原型制作平台

将文件自动备份到连上的USB介质的步骤

备份是防止数据丢失的最后一道防线,它提供了恢复原始数据的一种方法。您可以使用可移动介质(比如外部硬驱....
的头像 如意 发表于 06-28 11:44 525次 阅读
将文件自动备份到连上的USB介质的步骤

请问为什么要在Linux下学习C语言?

前些日子,由于看到同学安装了deepin,所以我也搞了一个玩玩,最后双系统折腾来折腾去,一直在纠结用什么发行版比较好,什么版本...
发表于 06-24 14:25 1908次 阅读
请问为什么要在Linux下学习C语言?

嵌入式linux会被淘汰吗

  嵌入式linux不会被淘汰,现在智能设备bai越来越du多,嵌入式的应用更加广泛,同时人们zhi对智能设备的要求越来越高,因dao此...
发表于 06-22 09:17 215次 阅读
嵌入式linux会被淘汰吗

嵌入式开发环境有哪些

  做Linux嵌入式系统的对常见的几种嵌入式开发环境一定不会默生,由于主要接触网络相关产品的一些系统设计,因此,将可能用到...
发表于 06-22 08:54 181次 阅读
嵌入式开发环境有哪些

AM4379 AM437x ARM Cortex-A9 微处理器 (MPU)

TI AM437x高性能处理器基于ARM Cortex-A9内核。 这些处理器通过3D图形加速得到增强,可实现丰富的图形用户界面,还配备了协处理器,用于进行确定性实时处理(包括EtherCAT,PROFIBUS,EnDat等工业通信协议)。该器件支持高级操作系统(HLOS)。基于Linux的® 可从TI免费获取。其它HLOS可从TI的设计网络和生态系统合作伙伴处获取。 这些器件支持对采用较低性能ARM内核的系统升级,并提供更新外设,包括QSPI-NOR和LPDDR2等存储器选项。 这些处理器包含功能方框图中显示的子系统,并且后跟相应的“说明”中添加了更多信息说明。 处理器子系统基于ARM Cortex-A9内核,PowerVR SGX™图形加速器子系统提供3D图形加速功能以支持显示和高级用户界面。 可编程实时单元子系统和工业通信子系统(PRU-ICSS与ARM内核分离,允许单独操作和计时,以实现更高的效率和灵活性.PRU-ICSS支持更多外设接口和EtherCAT,PROFINET,EtherNet /IP,PROFIBUS,以太网Powerlink,Sercos,EnDat等...
发表于 09-25 11:51 146次 阅读
AM4379 AM437x ARM Cortex-A9 微处理器 (MPU)