自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

a drip

The mind is not a vessel to be filled, but a fire to be kindled.

  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 Cryptographic Chaining Mode

Cipher ChainingECB(electronic codebook) mode

2017-08-03 08:15:20 507

原创 加密算法简介

加密算法原理签名算法应用场景:检查报文正确性方案:从报文文本中生成报文摘要常用SHA或者MD5作为签名算法缺点:签名算法不是加密算法,不能用来加密,作用是检查篡改对称加密算法应用场景:传递不适合明文传输的报文方案:如果用一个密码把消息加密,解密的时候还用这个密码,这种加密算法就是对称加密算法常用AES加密算法缺点:密码需要定期更新,带来密码安全传递问题DH密钥交换算法应用场景:

2016-09-25 23:05:49 2476 1

原创 kernel I2C总线驱动

I2C总线驱动I2C体系结构I2C核心 提供I2C总线驱动和设备驱动的注册、注销方法I2C总线驱动 是对I2C硬件体系结构中适配器端的实现I2C设备驱动 是对I2C硬件体系结构中设备端的实现,设备一般挂接在受CPU控制的I2C适配器上,通过I2C适配器与CPU交换数据

2016-09-10 23:35:59 337

原创 kernel 网络驱动

网络设备网络驱动结构从上到下划分4层:网络协议接口层 使上层协议独立于具体设备网络设备接口层 向协议接口层提供统一的用于描述具体网络设别属性和操作的结构体 net_device设备驱动功能层(提供实际功能) net_device 的具体成员网络设备与媒介层 完成数据包发送和接收的物理实体网络设备初始化硬件准备工作,检查设备是否存在和硬件资源对 net_device 数据和函数指

2016-09-10 23:25:06 803

原创 just blame

呵呵 发现csdn上面快餐文化还是比较受欢迎。也对,csdn更多的是工具性查阅解决当前手头问题,长篇大论、系统梳理知识的需求较少。 能用较短篇幅讲清楚问题实质,确实是一种现实需求。 另外,起一个好标题,同样是博客文章流量保证。

2016-09-09 00:31:24 247

原创 kernel 内存 I/O

内存 I/O内存管理单元MMU辅助操作系统进行内存管理,提供虚拟地址和物理地址的映射、内存访问权限保护和cache缓存控制等硬件支持TLB(translation lookaside buffer):转换旁路缓存,TLB是MMU的核心部件,它缓存少量的虚拟地址与物理地址的转换关系,是转换表的cacheTTW(translation table walk):转换表漫游,当TLB中没有缓冲对应的地址转换

2016-08-09 22:07:10 514

原创 kernel 中断

中断中断分 向量中断 和 非向量中断向量中断由硬件提供中断服务程序入口地址非向量中断由软件提供中断服务程序入口地址程序架构top half: 紧急的硬件操作(调度 bottom half),不可中断bottom half: 延缓的耗时操作,可响应新的中断request & freeflags若设置 IRQF_SHARED ,则表示多个设备共享中断使能和屏蔽中断disable_irq_no

2016-08-09 22:05:57 594

原创 kernel 异步

异步一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询状态用户空间处理一个设备释放的信号的三项工作:/* specify handler for signal */signal(SIGIO, input_handler);/* current process owns this fd */fcntl(STDIN_FILENO, F_SETOWN, getpid());/* launc

2016-08-02 22:45:27 405

原创 kernel 阻塞

等待队列wake_up() 可唤醒处于 TASK_INTERRUPTIBLE 和 TASK_UNINTERRUPTIBLE 的进程; wake_up_interruptible() 只能唤醒处于 TASK_INTERRUPTIBLE 的进程static ssize_t xx_write(struct file *filp, const char __user *buf, size_t s

2016-08-01 23:30:40 320

原创 内核竞态同步机制

编译乱序代码中设置barrier()屏障,可以阻挡编译器的优化,保证屏障前的语句和屏障后的语句不串序#define barrier() __asm__ __volatile__("": : :"memory") 其中volatile关键字更多的只是避免内存访问行为的合并,对C编译器而言,volatile是暗示除了当前的执行线索以外,其他的执行线索也可能改变某内存,所以它的含义是“易变的”执

2016-07-29 22:03:27 530

原创 poll 机制

poll mechanism1. (user space) poll >> sys_poll > >do_sys_poll >>poll_initwaitfs/select.c文件中asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds, long timeout_msecs){ ... ret

2016-07-23 17:20:18 348

原创 解决 source insight 代码关联问题

source insight 工程使用时间一久会出现关联问题,需重建工程 菜单中选择Project -> Rebuild Project -> Re-Create the whole project from scratch

2016-07-23 12:04:18 8001

原创 如何生成i文件(预处理文件)

Makefile 内核编译生成预处理文件module_name-y := xxx_drv.o xxx_drv.i xxx_drv.i 即预处理文件

2016-07-23 11:58:10 4625

原创 git checkout

Git单文件回滚至以前版本step1: git reset “commit_id” “file_name” (回滚至以前版本) step2: git checkout – “file_name” (使用 “git checkout – …” 忽略工作目录上的改动) step3: git add “file_name” (添加) step4: git commit (上传)Git用别的分支

2016-07-23 11:38:41 460

原创 内核打印杂谈

内核打印基本规则 dev_info(): 启动过程、或者模块加载过程等“通知类的”信息等,一般只会通知一次,例如probe函数; dev_dbg(): 一般使用在普通错误,如-EINVAL、-ENOMEM等errno发生处,用于调试; dev_err(): 一般使用在严重错误,尤其是用户无法得到errno的地方,或者程序员不容易猜测系统哪里出了问题的地方;打印dev_dbg A) dyn

2016-07-22 23:42:12 513

原创 Linux内核 kmalloc, kzalloc & devm_kzalloc 区别

首先,kzalloc()实现了kmalloc()+memset()的功能 源码如下: static inline void *kzalloc(size_t size, gfp_t flags) { return kmalloc(size, flags | __GFP_ZERO); }而 devm_kzalloc() 是具有资源管理的 kzalloc()。使用资源管理(res

2016-02-22 00:21:19 9220

原创 linux0.11系列之(三): 启动引导 setup.s

在boot/目录下看到的三个汇编文件,构成我们linux0.11启动的过程。分别为setup.s, bootsect.s, head.s 。 接下来就来看看setup.s做了哪些工作。setup.s获取基本硬件参数

2016-01-04 21:13:32 1239

原创 linux0.11系列之(二): 启动引导 bootsect.s

linux按照学习思路,可以姑且分为五大部分: 启动引导,系统调用,进程调度,内存管理,文件系统那我们从 linux0.11 的启动开始探索。我们可以在boot/目录下看到有三个汇编文件,构成我们linux启动的过程。分别为setup.s, bootsect.s, head.s 其中setup.s也给编译器指明了整个linux启动的入口:entry startstart:故事就从这里开始吧。引

2016-01-02 19:16:34 931

原创 linux0.11系列之(一): 实验环境搭建

就在这里,开始我的第一篇博客吧。在开始我的linux 0.11操作系统体验之前,先来讲讲我所搭建的实验环境吧。首先我用的是Ubuntu 14.04

2016-01-02 12:37:47 4819 3

飞鸽传书 流程图

飞鸽传书 流程图,详细的线程关系的程序框图,

2015-05-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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