Jimmy's Blog

Linux
Linux

Ubuntu启用zram

前言 ZRAM这个玩意儿在移动端上已经存在很长时间了,但是不知道为什么现在PC上依然在使用普通的swap。在我看来,zram这个玩意其实放在PC上也是很不错的一个功能。特别是现在一些云服务的内存不到的情况下使用,还是能缓解一下内存不足的问题的。所以接下来这篇是记录下Ubuntu下启用zram的一个过程。 安装 ubuntu上有对应的apt软件包,可以使用进行安装 [crayon-62bcc7bd93bed063059862/] 使用 安装后,会同时安装systemctl的服务,但是主要还是会依赖zramctl这个可…

2022-04-04 1条评论 242点热度 0人点赞 jimmychen 阅读全文
Android

(原创)使用Android NDK socket编程对比多路复用select和epoll的性能

  上一篇在分析lowmemorykiller的时候遇到了一个特殊的调用,那就是epoll。epoll属于多路复用的机制之一。之前了解得不是特别深入,所以这一篇做一下深入了解,当然相关概念网上已经很多了,这里主要是通过写代码来进行了解,毕竟再多的概念不如使用一次来得直接。所以这篇的前面部分摘录自网络,在讲解基础的相关知识后,会通过Android NDK,编写一个socket程序,来对比select和epoll两者的性能。 概述   I/O多路复用就通过一种机制,可以监视多个描…

2018-11-19 0条评论 4077点热度 1人点赞 jimmychen 阅读全文
Android

(原创)根据log分析SD卡挂载过程

  在分析SD卡挂载过程前,先了解Android存储的一些杂乱概念吧。 Android存储类型 Internal vs External   对于Internal Storage 与 External Storage,官方文档上有这么一段话,描述得很详细了,我翻译了一段下来:   所有的Android设备都有两块存储区域:Internal Storage和External Storage。它们的名称来源于早期的Android系统,那时候大家的手机都内置(P…

2018-07-04 1条评论 5016点热度 5人点赞 jimmychen 阅读全文
Android

(转载)Android系统匿名共享内存(Anonymous Shared Memory)C++调用接口分析

  在Android系统中,针对移动设备内存空间有限的特点,提供了一种在进程间共享数据的机制:匿名共享内存,它能够辅助内存管理系统来有效地管理内存,它的实现原理我们在前面已经分析过了。为了方便使用匿名共享内存机制,系统还提供了Java调用接口(MemoryFile)和C++调用接口(MemoryHeapBase、MemoryBase),Java接口在前面也已经分析过了,本文中将继续分析它的C++接口。   在前面一篇文章Android系统匿名共享内存Ashmem(Anonym…

2018-06-22 0条评论 1528点热度 0人点赞 jimmychen 阅读全文
Android

(转载)Android系统匿名共享内存Ashmem(Anonymous Shared Memory)驱动程序源代码分析

  PS:最近在学习surfaceflinger和hardwarecomposer的内容,这中间有用到匿名共享内存的知识,所以就从老罗的博客中转载这篇博客作为备份学习了。   在上一文章Android系统匿名共享内存Ashmem(Anonymous Shared Memory)简要介绍和学习计划中,我们简要介绍了Android系统的匿名共享内存机制,其中,简要提到了它具有辅助内存管理系统来有效地管理内存的特点,但是没有进一步去了解它是如何实现的。在本文中,我们将通过分析And…

2018-06-20 0条评论 1613点热度 0人点赞 jimmychen 阅读全文
Linux

(原创)Device Mapper源码分析

  上一篇只是从理论上说明了Device Mapper(DM)的基本知识,这一篇我们来阅读以下代码。因为Device Mapper涉及较多的块设备驱动内容的知识,博主对这一块涉及不深,大家将就看了。 DM是一个驱动   首先DM是一个驱动,User Space的应用要想建立设备映射就需要打开该驱动,然后通过其提供的IOCTL借口来完成对应的工作。DM驱动注册的开始位置在drivers/md/dm.c文件底下,一个一个尽量分析。 [crayon-62bcc7bda0f3b813…

2018-03-26 2条评论 2988点热度 0人点赞 jimmychen 阅读全文
Linux

(转载)device mapper原理

本文转载自:https://www.ibm.com/developerworks/cn/linux/l-devmapper/   最近在看Android DM-Verity相关内容,发现DM-Verity底层依赖于Linux系统的Device Mapper,这一篇先了解Device Mapper 的基本原理,下一篇再从代码分析。   Device Mapper 是 Linux2.6 内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块…

2018-03-24 0条评论 3648点热度 4人点赞 jimmychen 阅读全文
Linux

(转载)SPI协议及其工作原理浅析

以下内容转载自:http://blog.csdn.net/ce123_zhouwei/article/details/6895408   SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO;用于 CPU与各种外围器件进行全双工、同步串行通讯。SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。    S…

2018-01-28 0条评论 2097点热度 0人点赞 jimmychen 阅读全文
Linux

(原创)Linux下I2C框架分析

  在上一篇I2C协议的简单介绍后,我们马上结合Linux源码来了解下Linux中的I2C框架是如何的。 1. 基本框架了解   如上图显示的,要讨论的东西包括driver、client、i2c-dev、i2c-core、Algorithm和adapter。在上层的位置中,Client可以简单的理解为具体的物理设备,而driver就是驱动物理设备的驱动程序,i2c-dev则是为不同的client设备提供统一访问接口的作用。i2c-core在中间的位置,起到承上启下的作用,为上…

2018-01-28 0条评论 2433点热度 2人点赞 jimmychen 阅读全文
Linux

(转载)i2c总线协议的工作原理详解

本文转载自:http://www.elecfans.com/emb/jiekou/20171206595812.html 一、概述   1、I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。 SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(边沿触发)   SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成\线与\关系。   I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平…

2018-01-23 0条评论 2843点热度 2人点赞 jimmychen 阅读全文
12
分类
  • Android / 45篇
  • ART虚拟机 / 7篇
  • Binder / 9篇
  • C/C++ / 10篇
  • JNI编程指南与规范 / 18篇
  • Linux / 12篇
  • SQL数据库 / 10篇
  • SurfaceFlinger / 10篇
  • 再战C Primer Plus / 14篇
  • 再战C++ Primer Plus / 14篇
  • 网络编程 / 4篇
Adsense

COPYRIGHT © 2022 Jimmy's Blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang