- 博客(22)
- 资源 (3)
- 收藏
- 关注
原创 人脑智能的进化过程研究--仍然是一团迷雾
Book:The Evolution of Intelligent Systems – How Molecules Became Minds, by Ken Richardson, 2010, Palgrave Macmillan现在脑科学研究的现状还远远不能解开人脑的奥秘。各个研究学派的理论不仅不能相互兼容统一,而且都没有足够深入到人脑细节中。Many people interested...
2019-07-28 13:00:50
118
原创 AOP--面向方面语言--结点与切点--
结点:定义符合指定特征的代码语句。可以是一个方法定义或者调用,也可以是变量的定义或者运算。切点:是结点的集合。用不同的结点描述符合特定条件的代码段。面向方面语言(AOP)用这些特征作为限定条件,从而定位到符合限定的代码,以便于在这些代码上进行操作。AOP定义了以下谓词描述程序代码段的特征(描述的代码以java为例)。参考:http://www.eclipse.org/aspectj/doc/r...
2019-07-28 12:51:01
198
原创 CheriABI简介
在CHERI 架构中指针可以被定义为权能,而不是传统的整数类型的虚拟地质。CHERI中的权能定义不仅可以兼容C语言中的指针,而且加强了指针的语义。传统的胖指针仅仅是指针区间的保护, 而CHERI权能(或指针)在此基础上还提供了完整性保护, 强制本源验证, 和访问单调性。 这些更强的保护机制必须与现有的操作系统、运行环境以及应用程序相互兼容才有现实意义。如果将进程模型、用户-内核交互、动态链接以及内...
2019-07-28 12:47:41
420
原创 计算机缓存架构的分类
现代计算机中缓存的实现有很多不同点,比较重要的点有:缓存大小 (cache size)缓存行大小 (cache line size)缓存集大小 (set size)是否写分配 (write-allocate)替换策略 (replacement policy)虚拟寻址还是物理寻址 (look-up by virtual or physical address)缓存行标记方法,是虚拟地...
2019-07-28 12:43:42
319
原创 缓存中使用虚拟寻址的设计问题
摘要自:Unix Systems for Modern Architectures – Symmetric Multiprocessing and Caching for Kernel Programmers by Curt Schimmel: Chapter 3 “Virtual Caches”虚拟寻址缓存根据指令或者数据的虚拟地址作为索引 (index) 和标记 (tag)。这在一定程度...
2019-07-28 12:40:31
237
原创 FreeBSD 信号管理
参考书籍 The Design and Implementation of the FreeBSD Operating System by Marshall Kirk McKusick, George V. Neville-Neil, and Robert N.M. Watson. 2nd edition, Chapter 4, Process Management – 4.7 Signals....
2019-07-28 12:37:23
180
翻译 gcc预处理器--文件处理
文件libcpp/files.c负责文件搜索,打开,读取,缓存。处理主要源代码以及递归包含的头文件。基本策略是使系统调用的个数最少。在一些系统中,open() , fstat()一类的函数花销很大。每一个#include-d 文件,需要搜索所有的文件或者目录直到找到目标。一些项目中,如glibc,在调用命令中指明了20-30个库目录,这使得搜索十分耗时。
2013-01-22 12:01:42
372
翻译 gcc预处理器--libcpp--词法分析
参考:http://gcc.gnu.org/onlinedocs/cppinternals/词法分析:http://code.woboq.org/gcc/libcpp/lex.c.html_cpp_lex_direct_cpp_lex_tokencpp_get_token
2013-01-22 10:08:56
975
原创 gcc灰盒测试--调用不同阶段的遍处理
参考:First Level Gray Box Probing1,查看gcc的优化命令: gcc -c --help=optimizers // gcc -c -O2 --help=optimizers -Q //查看gcc当前优化设置2,编译并输出中间文件: gcc -fdump-tree-all -fdump-ipa-
2013-01-21 11:43:56
363
原创 gcc中的‘遍处理’概览--pass
gcc-**/gcc/passes.c: 源码参考http://code.woboq.org/gcc/gcc/passes.c.html解析参考:First Level Gray Box Probinggcc中239个遍处理程序。有的会在不同的地方被多次调用,条件常量(conditional constant)的传播(propagation)和不可达代码(dead code)的删除
2013-01-21 10:55:17
630
原创 linux kernel : RCU 读-拷-更新的同步机制
参考:http://www.kernel.org/doc/Documentation/RCU/whatisRCU.txt
2013-01-18 17:24:56
263
原创 ldv-kernelRules : export-3.5.aspect 定义对驱动程序导出函数的重构
源码:kernel-model/export-3.5.aspect此文件定义了一个源码重构(插桩)的方面文件,将所有驱动程序的导出函数的每一次调用之后都执行一次ldv_func_check($res)或者ldv_check_pointer($res)函数。后者针对返回值为指针的函数(1524个函数),前者针对其他类型返回值函数(6813个函数)。尚存问题:开头一句/*Exp
2013-01-18 15:21:21
299
原创 ldv-kernelRule: ERR.aspect定义对内核指针错误处理函数的重构
该文件重新定义了linux内核中(linux/include/linux/err.h )定义的错误检测相关函数:IS_ERR, PTR_ERR, ERR_PTR and IS_ERR_OR_NULL 函数分别替换为了 ldv_is_err, ldv_err_ptr,ldv_ptr_err,ldv_is_err_or_null。实施替换的原因,是源于这些函数的内核实现对于验证模块(基
2013-01-17 17:48:17
411
翻译 aop- advice语法结构
原网站: http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html在用切点描述了符合特定特征的程序块之后, 就可以用编译器定位到这些符合条件的代码段, 并对这些代码进行处理.advice定义程序中切点部分的具体操作, 比如在切点前(后)插入代码, 或者替换切点代码,等等. advice由切点和操作
2013-01-17 15:04:56
696
原创 ldv内核模型源码--alloc
该文件用于描述内核中内存分配(以页为单位)操作的各种不同函数。根据函数的参数中是否含有gfp_t标记以及标记在参数列表中的位置进行分类,作为不同的程序切点。如,下面的语句定义了一个切点:将内核内存分配函数中含有gfp_t标记并作为第一个参数的函数作为一类切点,命名为ARG_1。pointcut ARG_1: call(unsigned long __get_free_pages(.
2013-01-15 20:44:21
668
原创 入口 gcc-4.6.0/gcc/gcc.c
gcc程序入口。分析gcc工作流程的起点。 示例:执行命令: /usr/bin/gcc -o /home/malele/hello.o /home/malele/hello.cmain函数----------------------------输入: int argc,参数个数; char **argv,参
2013-01-15 09:05:36
522
翻译 gcc-4.6.0/gcc/gcc.c#main
intmain (int argc, char **argv){ size_t i; int value; int linker_was_run = 0; int lang_n_infiles = 0; int num_linker_inputs = 0; char *explicit_link_files; char *specs_file; char *lt
2013-01-14 22:08:52
491
原创 gcc-4.6.0/gcc/opts-common.c#decode_cmdline_option
static unsigned intdecode_cmdline_option (const char **argv, unsigned int lang_mask, struct cl_decoded_option *decoded){ size_t opt_index; const char *arg = 0; int value = 1; un
2013-01-14 22:03:30
355
原创 gcc-4.6.0/gcc/opts-common.c#decode_cmdline_options_to_array
/* Decode command-line options (ARGC and ARGV being the arguments of main) into an array, setting *DECODED_OPTIONS to a pointer to that array and *DECODED_OPTIONS_COUNT to the number of entrie
2013-01-14 21:57:54
294
原创 gcc-4.6.0/gcc/opts-common.c#generate_option_input_file
/* Fill in *DECODED with an option for input file FILE. 针对文件名称(*file)作为选项的情况, 将文件名称信息记录到选项的标准数据格式(cl-decoded_option)中。*/voidgenerate_option_input_file (const char *file, struct cl_dec
2013-01-14 21:56:00
298
原创 gcc-main-cl_decoded_option
/* Structure describing the result of decoding an option. *//*用于存储命令行选项相关信息的数据结构*/struct cl_decoded_option{ /* The index of this option, or an OPT_SPECIAL_* value for non-options and
2013-01-14 21:20:31
273
原创 emacs使用方法
官网tip:http://www.gnu.org/software/emacs/tour/另一个:A Tutorial Introduction to GNU Emacs
2013-01-13 12:03:03
210
Principles of Program Analysis
2019-08-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人