![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Safety
文章平均质量分 80
baishuwei
love movie
展开
-
验证(Verification) & 确认(Validation)
验证(Verification) & 确认(Validation)验证(Verification) & 确认(Validation) 是在电气/电子/可编程电子器件领域中重要的组成部分。很多人在理解二者的具体含义时并没有深刻领会二者的区别,因此,笔者在这里介绍二者的含义,希望给一些茫然者一点帮助。验证(Verification) & 确认(Validation) 都是为了检验产品、服务、系统是否满原创 2008-08-27 10:28:00 · 2301 阅读 · 0 评论 -
MISRA 2004 (先前作者写的MISRA文档是基于 1998版本,这个是基于更新的MISRA 2004版本)
汽车行业软件可靠性联盟(MISRA:Motor Industry Software Reliability Association)的使命为了提高车辆系统中软件的安全性和可靠性,是对汽车工业的软件应用和开发提供相应支持和帮助。MISRA-C的早期目的是为了指导汽车行业中C语言软件的开发,但是,从1998年,MISRA-C已经在汽车工业、航空航天、医疗设备、以及其它工业环境中得到应用和发展。MI原创 2009-09-17 21:48:00 · 1415 阅读 · 0 评论 -
嵌入式实时Hypervisor:XtratuM (2)
第1章 绪 论1.1 研究现状Hypervisor也被称作虚拟机监控器(VMM,Virtual Machine Monitor),它是一个基于计算机硬件平台的软件(可以是系统软件也可以是应用软件),允许多个操作系统在一个硬件平台上并行运行。Hypervisor系统被分为两类:I型和II型[1]。在I型中,Hypervisor作为系统软件直接运行于主机硬件之上,原创 2009-09-27 22:55:00 · 2515 阅读 · 0 评论 -
嵌入式实时Hypervisor:XtratuM (4)
1.3 研究内容XtratuM Hypervisor是超微内核技术与准虚拟化技术结合的产物,它是典型的I型Hypervisor系统。超微内核技术是一种操作系统内核结构,它类似于微内核技术,与微内核系统相比,它将一些“冗余”的功能模块从内核中移除,系统内核负责底层最基本的中断管理、物理时钟管理、以及实时任务调度(用于调度上层应用任务或操作系统)。因此,也有人将XtratuM视原创 2009-09-27 23:04:00 · 2092 阅读 · 0 评论 -
嵌入式实时Hypervisor:XtratuM (7)
1.1 Hypercall系统调用是通用操作系统提供的一种重要机制,系统调用将操作系统分为两个部分:内核空间和用户空间。用户程序可以通过系统调用接口从用户空间陷入内核空间,这种机制有助于虚拟内存的实现,并且还可以提高系统的可靠性、安全性、健壮性。在XtratuM系统中,Hypercall是一种类似于系统调用的机制,它是上层域从用户空间陷入Hypervisor Kern原创 2009-10-30 00:01:00 · 1233 阅读 · 0 评论 -
嵌入式实时Hypervisor:XtratuM (8)
1.1 内存管理内存管理主要包含两个方面,一个是内存分配,另一个是内存映射。在XtratuM系统开发和移植过程中,内存分配问题主要体现在每个域或客户操作系统内部,例如PaRTiKle系统采用TLSF(Two-Level Segregate Fit)算法。关于TLSF算法,读者可以参考[36]。本节的内容主要包含域中内存使用类别和内存映射机制。现阶段,在Xtratu原创 2009-10-30 00:07:00 · 990 阅读 · 0 评论 -
嵌入式实时Hypervisor:XtratuM (9)
1.1 域间通信工具为了提高域之间的作业协作能力,域间通信(Inter-Domains Communication)工具被引入到XtratuM Hypervisor系统中。当前,XtratuM系统中存在两种数据通信工具,一种是针对数据流的命名管道(FIFO),另外一种是针对块数据的共享内存。命名管道是一种简单的流数据传输工具,采用先进先出的策略,不同于PIPE(管道),命名原创 2009-10-30 00:08:00 · 1059 阅读 · 0 评论 -
嵌入式实时Hypervisor:XtratuM (10)
1.1.1.1 FIFO/XM V2.0与FIFO/XM V1.0相比,FIFO/XM V2.0有两处改进,1)Lock-Free机制的使用避免了阻塞竞争机制的使用,2)将FIFO模块从XtratuM内核中分离。在FIFO/XM V1.0中,基于阻塞机制的信号量和中断屏蔽被使用,从而降低了系统的吞吐率和事件相应速度。尤其是低优先级域可能阻塞高优先级域,从而引起实时域原创 2009-10-30 00:09:00 · 965 阅读 · 0 评论 -
嵌入式实时Hypervisor:XtratuM (11)
1.1.1 共享内存共享内存(Share Memory)是类似FIFO的数据传输设备[43]。共享内存采用的主要技术是内存映射。在共享内存中,由于所有高层的虚拟内存都基于底层物理内存,因此,物理内存是共享内存系统中最重要部分。在XtratuM系统中,物理内存是由Linux内核管理,因此,系统可以采用Linux内核APIs分配物理内存。为了提高系统分配物理内存的效率和成原创 2009-10-30 00:11:00 · 875 阅读 · 0 评论 -
嵌入式实时Hypervisor:XtratuM (3)
1.2 研究意义Hypervisor出现的早期是被应用到大型服务器中,伴随着Hypervisor技术的发展和推广以及硬件设备的发展,Hypervisor逐渐被应用于个人桌面计算机环境中,近几年,Hypervisor又逐渐在嵌入式环境中蔓延。显然,Hypervisor具有一定的价值或优点,才得以在这三种环境中生存和发展。下面列出了Hypervisor技术的优点以及可以解决的问原创 2009-09-27 23:01:00 · 1887 阅读 · 0 评论 -
MISRA C指导指南解读系列9(MISRA C规则101-113)
2.1. 指针和数组101.不能对指针进行算术操作(A) 本条的目的是为了防止指针指向无效的内存空间。例如void myfunc(void) { int *a; int *b; int arr[10]; a = arr; a ++; /* 与规则冲突 */原创 2009-05-06 16:11:00 · 1392 阅读 · 0 评论 -
安全软件开发的经验之见
以下是一些安全软件开发的经验总结,希望与大家共享。1 安全软件不要太复杂!复杂的安全软件不易与理解,设计,开发,以及验证,从而提高了软件系统的不安全性。2 采用动作的地方应该呈现相应的紧要属性。3 安全性和可靠性是一门艺术,并且两者都是紧要属性。4 系统开发中,合适的抽象是一种关键的工具。5 抽象和紧要的概念是非常难于量化的。6 记住,不要将折衷和优化从安全软件生命周期中删除。7 多样性和冗余是技原创 2008-08-30 11:01:00 · 721 阅读 · 0 评论 -
缓存溢出问题简述
缓存溢出 缓存溢出(Buffer overflow),是指在存在缓存溢出安全漏洞的计算机中,攻击者可以用超出常规长度的字符来填满一个域,通常是内存区地址。这篇文章就是讲解简单的缓存溢出问题。文章以x86_32 和 linux 系统平台为蓝本。为了介绍缓存溢出,数据的存储地址、主要的汇编指令、重要的寄存器等内容都要讲解。 1. 变量存储在C语言中,变量属性有很多中,但是原创 2008-11-02 19:21:00 · 3559 阅读 · 0 评论 -
MISRA C指导指南解读系列4(MISRA C规则20-32)
2.1. 声明和定义20.所有的对象和函数标识符在使用前必须声明(R)21.内部标识符不能与外部标识符具有相同的名称,从而隐藏的外部标识符(R) 例如 static int a; int myfunc(void) { int a; /* 违反该规则 */}22.对象的声明应该在原创 2009-04-28 10:59:00 · 1529 阅读 · 0 评论 -
MISRA C指导指南解读系列5(MISRA C规则33-45)
2.1. 操作符33.&&和||右边的操作数不应该含有边缘影响(R) int myfunc1(void);int myfunc(void) { int is; int x; if( is && ( x ++ == 3))原创 2009-04-28 11:30:00 · 1268 阅读 · 0 评论 -
MISRA C指导指南解读系列7(MISRA C规则68-86)
2.1. 函数68.函数的声明应该是在文件的范围内(R) 例如 void myfunc(void) { extern int call(void); /* 违反规则68 */} 69.函数不能使用可变参数格式的样式(原创 2009-05-04 13:58:00 · 1572 阅读 · 0 评论 -
MISRA C指导指南解读系列8(MISRA C规则87-100)
2.1. 预处理87.文件中#include语句前面只能是其它的预处理语句或注释(R) 例如: static int a; #include /*与规则87冲突*/ ……88.非标准字符不能出现在#include语句的头文件名称中(R)原创 2009-05-05 13:41:00 · 1729 阅读 · 0 评论 -
C语言中逻辑运算符(&&,||,!)和位运算符号(&,|,^)的区别
1. C语言中逻辑运算符(&&,||,!)和位运算符号(&,|,^)的区别在C语言中,编程者经常混淆两组运算符:(&&,||,!)和(&,|,^)。第一组是逻辑运算符,它的操作数是布尔型,而第二组则是位运算符,其操作数是位序列。在布尔型操作数中,只有两个数值,0或1。C语言规定,在逻辑运算中,所有的非0数值都看做1处理。而位序列则可以是有无符号的字符型,整型,长短整型等。在位运算原创 2009-05-05 13:40:00 · 56615 阅读 · 5 评论 -
MISRA C指导指南解读系列10(MISRA C规则114-127)
2.1. 标准库114.保留字和标准库函数不能重新定义或取消定义(R) 在C语言中存在一些保留标识符和函数名,在应用软件中,不能随意重新定义或者取消这些定义。例如在C语言中,存在一些重要的宏和变量:__LINE__,__FILE__,__FILE__,__DATA__,__TIME__,__STDC__,errno等。#define __LINE原创 2009-05-07 15:08:00 · 2034 阅读 · 1 评论 -
嵌入式实时Hypervisor:XtratuM (13)
2.7.2 UART驱动上面一节中介绍了XtratuM驱动模型的架构。那么如何利用XtratuM驱动模型去创建和添加设备驱动呢?这就是接下来要讲的内容,基于XtratuM驱动模型的UART驱动。2.7.2.1 UART设备串口是一种串行通信物理设备,每一个周期信息只能读入或者写出一个位。通常,串口用来连接个人计算机和嵌入式开发板,用来调试设备或程序。由于串口每次只能读/写一位数据,因此传输能力相对原创 2010-01-29 23:48:00 · 873 阅读 · 0 评论