标签: c

C语言内核深度解析 – 读书笔记1

Introduction 《C语言内核深度解析》的读书笔记 ISBN:978-7-115-43294-0 主要内容系摘录。 1. C语言与内存 32位的系统中可用内存是小于等于4G的,这里涉及了三总线的概念:地址总线、数据总线和控制总线。比如我们现在要向内存中写入一个数据,控制总线上传输写指令,地址总线上传输内存地址,而数据总线则传输要写入内存的数据。 我们说的多少位CPU,指的是数据总线的位数。数据线越多,一次处理的数据就越多,性能就越好。 内存位宽(内存数据线的数量)是指在一个时钟周期内所能...

解读CUDA汇编PTX(一) [翻译]

Introduction 本文系翻译文章Demystifying PTX Code。 在我最近的文章里,我展示了怎样从CUDA和OpenCL代码生成PTX文件,本文则将重点解读PTX文件里的复杂指令。 我们还是使用向量加法的代码 代码片段: https://gist.github.com/FindHao/394b2f069788e5a4c80a069638a47e1c 原作者的代码项目:https://github.com/pentschev/ptxtract 本文中,我们将关注OpenCL的P...

解读CUDA汇编PTX–目录

Introduction 近期在研究NVIDIA的CUDA 近汇编 PTX,还不算是真正的汇编,属于中间语言。这里翻译了部分网络上精彩的文章,以及官方的手册。 解读CUDA汇编PTX(一) [翻译] 本文系翻译。主要内容是对一个向量加法的PTX代码分析,适合入门阅读。

NVCC编译过程

Introduction 本文介绍了编写的nVIDIA Cuda代码是如何编译成二进制的。 上图即为官方的流程图。 打印步骤 nvcc -O2 -c vectorAdd.cu -keep -arch sm_20 –dryrun 以samples/0_Simple/vectorAdd为例,写上述编译命令。由于vectoradd这个样例比较简单,因此可以直接使用命令进行编译。 参数说明: 参数 含义 O2 该优化选项会牺牲部分编译速度,除了执行-O1所执行的所有优化之外,还会采用几乎所有的目标配置...

uCOS III 生产者消费者模型实现

Introduction 本文介绍了我实时系统课程的一个小作业,在ucos 上实现一个生产者消费者模型样例。基于ucos iii,因为ucos ii能直接跑的源码不好找。。 ucos 信号量 官方文档 主要有这么几个函数: OSSemCreate() OSSemDel() OSSemPend() OSSemPendAbort() OSSemPost() OSSemSet() OSSemCreate void OSSemCreate (OS_SEM *p_sem, CPU_CHAR *p_name...

匿名网络概述(Darknet)

1. Introduction 2. 浅网,深网,暗网 3. 洋葱路由(onion routing) 3.1 数据结构 3.2 弱点 3.2.1 计时分析 3.2.2出口节点漏洞 4. Tor(The Onion Router,洋葱路由器) 4.1 Tor浏览器 4.2 移动平台 4.3 Tor的工作原理 4.4 相关工作 4.5 Tor的设计原理 4.5.1 传输单元Cells 4.5.2 线路和流(Circuits and streams) 4.5.2.1 建立一条线路 4.5.2.2 中继...

Linux高危漏洞Dirtycow整理

Introduction 本文内容多为转发整理。 2016年10月18日,黑客Phil Oester提交了隐藏长达9年之久的“脏牛漏洞(Dirty COW)”0day漏洞,2016年10月20日,Linux内核团队成员、Linux的创始人Linus修复了这个 0day漏洞,该漏洞是Linux内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞,导致可以破坏私有只读内存映射。黑客可以获取低权限的本地用户后,利用此漏洞获取其他只读内存映射的写权限,进一步获取root权限。 ...

curses-键盘编码-openssl加解密

嵌入式系统实验报告 一 1.Introduction github源码地址 1.1 键盘编码 按键过程: 当用户按下某个键时, 1.键盘会检测到这个动作,并通过键盘控制器把扫描码(scan code)传送到计算机;键盘扫描码跟具体的硬件有关的,不同厂商对同一个键的扫描码有可能不同。 2.计算机接收到扫描码后,将其交给键盘驱动程序; 3.键盘驱动程序把这个扫描码转换为键盘虚拟码;虚拟码与具体硬件无关,不同厂商的键盘,同一个键的虚拟码总是相同的。然后,键盘驱动程序把该键盘操作的扫描码和虚拟码以及其它...

CacheSim-5 实验数据分析

Introduction CacheSim 简单的Cache模拟器 专辑目录本文统计了组相联路数、cache_line_size,cache_size以及替换策略对miss率和读写通信数据量的影响,并以图表的形式展现出来。 1. 组相联路数的影响 不变条件:cache_line_size 32bytes,LRU,Cache_size 32KB 组相联路数 miss率 1 1.735562 2 1.338225 4 1.305841 8 1.289746 12 1.282765 16 1.2833...

CacheSim-4详细实现cache miss以后的操作

Introduction CacheSim 简单的Cache模拟器 专辑目录本文主要介绍cache miss以后的操作。接上一章的cache hit以后的操作,如果miss了 index = get_cache_free_line(set_base); set_cache_line((_u32)index, addr); if (is_read) { cache_r_count++; } else { cache_w_count++; } cache_miss_count++; 先获得可用的li...