自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 dpkg、rpm 和 apt-get、yum 的区别及使用

dpkg: 是Debian packager的简称,是由Debian开发出来的包管理器,软件包在发布时打包成.deb格式 rpm:是Red hat package manager的简称,是由Red hat开发出来的包管理器,软件包在发布时打包成.rpm格式 dpkg和rpm命令虽然可以解决安装...

2020-02-11 11:06:17 97 0

原创 如何启用linux内核异常自动重启机制

内核出现异常,有这么几种情况: 1.在内核代码执行路径上会主动的去检查一些执行环境,如果不满足触发panic; 2.某段代码一直占着cpu,其他进程都得不到执行,这又分为两种情况: a)某段代码禁止了内核抢占,并且进入了死循环,这种情况下时钟中断可以响应,但是因为禁止了内核抢占,中断处理函数结束后...

2020-01-29 18:49:36 426 0

原创 linux 时间子系统之基本概念(一)

time相关的用户空间api: clock_t clock(void); The clock() function returns an approximation of processor time used by the program.The value returned is the...

2020-01-18 10:17:17 156 0

原创 linux串口编程

参考资料: https://www.cmrr.umn.edu/~strupp/serial.html#config http://man7.org/linux/man-pages/man3/termios.3.html https://github.com/modlfo/firmata/blob/...

2020-01-18 09:52:42 1434 0

原创 linux input输入子系统源码分析

总体软件架构 先来个整体的软件层次架构图: 从上图输入子系统的框架图,可以看出,输入子系统由Input driver(驱动层)、Input core(输入子系统核心)、Event handler(事件处理层)三部分组成。一个输入事件,如鼠标移动、键盘按下等通过Input driver ->...

2020-01-17 19:51:14 149 0

原创 linux中对/dev/console和/dev/tty的理解

/dev/console是什么 如果系统中存在多个tty设备,想象一下,这时内核启动的log应该打印在哪里,这时内核会从tty中选择一个最合适的作为console,当然内核启动参数中也可以明确的去指定那个tty作为内核的console,/dev/console主要是暴露给用户空间使用的,主要用于系...

2020-01-16 18:30:34 252 0

原创 一文理解session, 进程组, 进程和终端之间的关系

现在我们从Session和进程组的角度重新来看登录和执行命令的过程。 getty或telnetd进程在打开终端设备之前调用setsid函数创建一个新的Session,该进程称为Session Leader,该进程的id也可以看作Session的id,然后该进程打开终端设备作为这个Session...

2020-01-16 17:04:15 226 0

转载 ELF 安全特性检查工具

http://manpages.ubuntu.com/manpages/trusty/man1/hardening-check.1.html

2019-07-25 09:35:10 201 0

原创 FORTIFY_SOURCE详解

Below are four different cases that can happen: char buf[5]; /* 1) Known correct. No runtime checking is needed, memcpy/strcpy functions are call...

2019-07-24 09:50:36 3201 0

原创 linux core文件解析

Linux ELF core files A core file is essentially a snapshot of the process and its state right before it cored (crashed or dumped). A core file is a t...

2019-07-05 17:08:52 1285 0

原创 AddressSanitizer

sanitizers This project is the home for Sanitizers: AddressSanitizer, MemorySanitizer, ThreadSanitizer, LeakSanitizer, and more The actual code resi...

2019-07-03 10:03:52 2145 0

原创 configure配置过程学习

本文章是自己通过阅读configure的总结笔记,可能部分理解有错误,希望大家不吝指出,大家共同学习 目标 通过configure用户选项进行配置,加上测试系统支持的特性,生成配置结果,根据配置结果替换编译系统中的变量,从而实现根据配置改变编译的结果 一般是将 xxx.in 根据配置替换其...

2019-04-18 17:10:58 699 0

原创 LSM框架介绍

LSM是Linux Security Module的简写 在内核需要安全检查的地方安插了很多钩子: //所有的钩子都定义在security/security.c文件中 int security_file_open(struct file *file, const struct cred *c...

2019-04-18 11:17:44 1669 1

原创 USB OTG学习笔记

本文是查阅相关资料学习了半天的心得,记录下来防止忘记,不正确之处望指正。 OTG 是On-The-Go的缩写,是为了USB设备身份主从互换而引入的。 为了支持OTG,改动部分包括如下: 1.接口修改,增加了另外一条ID线 2.增加了额外的协议,ADP,SRP,HNP 一个既支持主又支持从的USB设...

2019-03-21 14:58:07 117 0

原创 linux spi驱动分析

spi的驱动框架主要分为: cpu<—platform bus—>spi master 端 <-----spi bus—>spi slave 端 spi master 指的是spi控制器,spi master device是平台设备,spi master driver是平台...

2019-03-20 18:40:47 406 0

原创 linux平台设备和平台驱动

由module_init宏指定模块的初始化入口 下面来看看模块的初始化 static struct platform_driver efuse_driver = { ...

2019-03-16 17:53:07 270 0

原创 Linux audit详解

什么是audit The Linux Audit Subsystem is a system to Collect information regarding events occurring on the system(s) ,Kernel events (syscall events), U...

2019-02-14 13:29:31 8608 0

原创 linux kernel keys笔记

keys在内核中的表示为: struct key { atomic_t usage; /* number of references */ key_serial_t serial; /* key serial numb...

2019-02-14 10:24:17 441 0

原创 升级ubifs以支持 fscrypt

The Linux kernel configuration item CONFIG_UBIFS_FS_ENCRYPTION: prompt: UBIFS Encryption type: bool depends on: CONFIG_UBIFS_FS_XATTR &amp;&am...

2019-01-17 20:30:35 494 0

原创 Linux signal捕获

signal的原理这里不打算多讲,这里主要讲一下应用 man 7 signal,可以看到一些关于signal的介绍: 每个信号都对应着一个action,默认的有:Term, Ign,core,Stop,Cont,  文档上明确的写着是以进程为修改单位的,所有的线程的action都相同: Th...

2019-01-14 09:36:33 602 0

原创 ubi & ubifs学习笔记

drivers/mtd/ubi/ubi-media.h  EC: Erase Count,记录块的擦除次数 struct ubi_ec_hdr {  __be32 magic; __u8 version; __u8 padding1[3]; __be64 ec; /* Warning: th...

2019-01-11 18:39:54 1664 0

原创 深入理解dm-verity机制

近期做的一个项目,由于客户对安全性要求比较高,涉及到文件系统校验的问题,起初是在ramdisk中挂载rootfs后对所有重要的文件检查sha256,但是随着rootfs的逐步增大,发现校验花费的时间太长,竟然达到十几秒,于是就想改用一种方案,首先想到的是整个rootfs校验后在挂载,这样肯定是比一...

2018-12-27 11:26:36 8075 1

原创 linux权限检查机制

1.文件权限  static inline int do_inode_permission(struct vfsmount *mnt, struct inode *inode, int mask)   {       if (unlikely(!(inode-&gt;i_opflags...

2018-11-28 16:01:36 798 0

原创 Linux 查看打开的网络端口

使用netstat netstat -nape 可以列出所有已经建立连接和listening状态的端口 ​对于嵌入式busybox,netstat命令可能不支持列出打开端口的程序名,方法有两个: 配置busybox ​​重新编译busybox,支持-p选项列出程序名 2.通过/proc...

2018-09-27 20:30:01 3794 0

原创 arm neon优化

neon是simd的一种实现   使用neon的方式有: 1.neon library  使用第三方开源库,直接函数调用 2.auto-vectorization 使用编译器自动auto-vectorization gcc相关的选项有: -mcpu=cpu-name, where ...

2018-09-13 21:00:00 2333 0

原创 自己实现的简单dmalloc

写了个简单的dlmalloc的实现,这个自然是无法实用的,需要不断完善,通过简单的实例重点在于说明dlmalloc的工作原理。  struct  tag_node{ void *  addr; int size; char *  function; char *...

2018-07-16 09:25:31 762 0

转载 Android Boot Sequence

In this post we will discuss about the boot process of Android operating system. As the Android is based on Linux Kernel , so its boot process will g...

2018-05-29 19:06:16 288 0

转载 android property system

android property systemProperty system is an important feature on android. It runs as a service and manages system configurations and status. All the...

2018-05-29 14:22:07 405 0

原创 Android的log问题

#include &lt;utils/Log.h&gt;#undef LOG_TAG#define LOG_TAG "SKHDI"#define SK_TRACE LOGI#define SK_INFO_TX(fmt,args...)     ALOGI(&qu...

2018-05-29 14:17:08 511 0

原创 Android by-name机制

init: create symlinks to block device nodes   eMMC block device names may change based on the detection order of the eMMC device and any other SD ...

2018-05-29 14:15:37 1403 0

原创 mips简介

wiki:https://en.wikipedia.org/wiki/MIPS_architecture官方网站:https://www.mips.com/https://www.mips.com/?do-download=arm-to-mips-architecture-migration-gu...

2018-05-25 14:36:07 953 0

原创 arm简介

British company ARM Holdings develops the architecture and licenses it to other companies, who design their own products that implement one of those ...

2018-05-25 11:23:14 842 0

转载 Implementing Regular Expressions

点击阅读原文

2018-05-24 15:11:46 85 0

转载 Writing Your Own Shell

点击阅读原文

2018-05-24 15:07:56 141 0

转载 gcc内嵌汇编

6.43 How to Use Inline Assembly Language in C CodeThe asm keyword allows you to embed assembler instructions within C code. GCC provides two forms of...

2018-05-24 15:00:04 210 0

转载 Intel and AT&T 汇编区别

Intel and AT&amp;T Syntax. Intel and AT&amp;T syntax Assembly language are very different from each other in appearance, and this will lea...

2018-05-24 14:41:36 230 0

转载 Back to Basics: The Universal Asynchronous Receiver/Transmitter (UART)

Back to Basics: The Universal Asynchronous Receiver/Transmitter (UART)December 20, 2016 by Robert KeimThis technical brief explains some low-level de...

2018-05-24 10:43:31 209 0

转载 the-i2c-bus-hardware-implementation-details

The I2C Bus: Hardware Implementation DetailsDecember 20, 2015 by Robert KeimEssential information for understanding and designing the hardware needed...

2018-05-24 10:39:36 198 0

转载 How Does a C Debugger Work? (GDB Ptrace/x86 example)

原文出处:https://blog.0x972.info/?d=2014/11/13/10/40/50-how-does-a-debugger-workWhen you use GDB, you can see that it has a complete control over your ap...

2018-05-24 10:29:54 138 0

原创 nandflash驱动详解

架构图+-----------+   system bus    +-------------------+      CLE, io[8:0]     +-------------------+ |    cpu        |←------------→  |   nand controle...

2018-05-23 18:38:45 6356 0

提示
确定要删除当前文章?
取消 删除