- 博客(76)
- 收藏
- 关注
转载 计算机系统的多级层次结构
多级层次结构: 是从使用语言的角度,基于程序员与计算机系统对话中所采用的语言结构和语义划分。 现代计算机系统的层次结构分为六级: 多级层次结构中(机器—语言) M5: 应用语言机器 – 应用语言 M4: 高级语言机器 – 高级语言 M3: 操作系统机器 – 作业...
2015-05-19 19:37:00
1230
转载 计算机系统的设计规则,性能评测
控制流程的三种实现方式: 全硬件,软硬结合,全软件 1:逻辑上是等价的 2:硬件实现“速度快,成本高,灵活性差,占用内存少 3:软件实现,速度慢,复制费用低,灵活性好,占用内存多,容易设计,可改性强, 适应性强,设计周期短 理论上,由两种极端实现方法 1:全硬件机器:操...
2015-05-19 19:37:00
347
转载 计算机系统结构,组成和实现
计算机系统结构的定义: 计算机系统结构是其所处环境中最高层次的概念,是对计算机系统中各个机器之间界面的划分和定义,以及对各级界面上,下的功能进行分配。也称为体系结构。 计算机体系结构指的是计算机系统设计的观念和架构,描述计算机在实际中所做的设计的原则。 计算机体系结构是从程序...
2015-05-19 19:37:00
778
转载 黑盒测试及其实例
(一):黑盒测试 黑盒测试是指对程序功能性的测试,也就是不考虑内部的具体实现,仅仅就程序的功能是否满足需求进行测试,相当于一个看不见内部的黑盒子。 (二):黑盒测试的作用 黑盒测试主要是注重功能的测试,包括: 功能的完整性,正确性测试 界面错误 输入和输出错误 数据库访问...
2015-05-19 19:36:00
788
转载 总结
1:SELinux的访问控制是基于所有系统资源包括进程的安全上下文。安全上下文包含三个元素:用户,角色和 类型标识符。类型标识符是访问控制最关键的元素。 在SELinux中,强制访问控制(TE)是访问控制主要的特征。通过指定主体的标识(也被称作域标识)作为源和 客体的标识作为目的...
2015-05-19 19:36:00
70
转载 SELinux的功能熟悉
此时,玩SELinux系统就有些价值了。例如,我们使用一个带有严格策略的Fedora Core 4 的发行版。这些大多数例子基本上都能在Red hat Enterprise Linux version 4或者是Fedora Core 5上运行了。虽然可能有些不同,但是你也可能能够使用其他...
2015-05-19 19:36:00
102
转载 selinux第一节
(一):selinux简介 selinux是security enhancement linux的简称,从字面意思说就是安全增强型linux,这种增强能够有效的减轻 有缺陷的应用软件所出现的问题,包括那些没有被发现的或者是被创建的缺陷。同时,这种增强也能够强化很多安全 目标,从数...
2015-05-19 19:36:00
98
转载 SELinux的多层安全机制
类型强制策略相比SELinux引入的MAC(强制访问控制)是比较遥远的。然而,在一些情况下,特别是在分类的政府应用的子集中,传统的MLS(多层安全机制)强制访问控制加上TE是非常有价值的。在意识到 这个情形之后,SELinux也包括一些MLS的形式。在SELinux中,MLS的特征是可...
2015-05-19 19:36:00
105
转载 安全上下文
(一)、类型强制策略的安全上下文 所有的操作系统访问控制都是基于与主体和客体相关的访问控制属性的。在SELinux中,访问控制属性杯称作安全上下文。所有的客体(文件,进程间通信,通信管道,套接字,网络主机等)和主体(进程)有一个和他们相关的单一安全上下文。一个安全上下文有三个元素:用户...
2015-05-19 19:36:00
136
转载 The role of Roles
SELinux也提供了可一种基于角色的访问控制(RBAC,Role-based access control)。SELinux的RBAC的特征是建立在TE基础上的。在SELinux中的访问控制在根本上是TE,即类型强制访问策略。角色能够限制一个进程转换后的类型,该类型是在进程安全上下文中...
2015-05-19 19:36:00
90
转载 Type enforcement(类型强制访问控制)
(一)、简介 在SELinux中,所有的访问都要被明确的同意。SELinux默认的是没有访问,不管Linux的用户ID和组ID是什么。是的,这就意味着在SELinux中没有默认的超级用户,不像在标准Linux中的root用户。被同意的访问的方式是由主体的类型(也就是域)和客体的类型使...
2015-05-19 19:36:00
248
转载 yacc语法分析与lex词法分析相结合
语法 对于某些应用,我们所完成的简单的词类识别也许足够用了;而另一些应用需要识别特殊的标记序列并执行适当的动作。传统上,对这样的一套动作描述成为语法。 使用右箭头”->”意味着可以用一个新的符号取代一套特殊的标记。 例如: subject ->noun\pron...
2015-05-19 19:36:00
309
转载 最简单的lex的例子
lex和yacc可以帮助你编写程序转换结构化输入。既包括从输入文件中寻找模式的简单文本搜索程序,也包括将源程序变换为最佳的目标代码的C编译程序等。 lex使用一系列对可能标记的描述,产生一个能识别那些标记的C例程(我们成为词法分析器。词法分析程序(lexer),或成为扫描程序)。 ...
2015-05-19 19:36:00
169
转载 LEX学习 第二节
接着第一节中的第一个示例,我们扩展第二个示例,将词法分析程序扩展为识别不同的词性。 下面是程序示例: %{/* * 扩展第一个示例以识别其他的词性 * */%}%%[ \t ]+ /* 忽略空白 */;is |am |are |were |was |b...
2015-05-19 19:36:00
129
转载 STL中deque,queue,stack,list的学习
(一):要点 1:容器deque的使用方法 2:容器queue,stack的使用方法 3:容器list的使用方法 (二)deque 1:deque简介 deque是“double-ended queue”的缩写,deque是双端的,vector是单端的。 deque...
2015-05-19 19:35:00
98
转载 linux内核基础层的学习(1)
一:内核基础层数据结构 1:双向链表list a):链表的定义 struct list_head{ struct list_head *next,*pre; } b):container对象和list_entry #define container_of(ptr,ty...
2015-05-19 19:35:00
100
转载 绪论
一:内核主流应用模式:嵌入式开发 1:整体层面的使用:内核裁剪,编译,bootloader等提供定制化功能,把一些内核模块移植到工作内核。嵌入式BSP的维护和功能开发。 2:驱动程序编写 注:BootLoader是嵌入式系统在加电之后执行的第一段代码,在它完成CPU和相关硬件的初...
2015-05-19 19:35:00
76
转载 SeAndroid获取以及编译过程
对于SeAndroid的学习和研究刚刚开始,还没有了解什么是真正的SeAndroid,所以也不敢妄加评判,等学习之后再好好聊聊对于SeAndroid的看法,对于她的学习我是先从编译开始的,下面就是我的获取和编译的过程。从头到尾编译了差不多得17,8个小时,因为中间有一次出现错误,改正之后...
2015-05-19 19:35:00
83
转载 STL学习--vector的学习
(一):学习目标: 1:模板,包括函数模板和类模板 2:容器及其分类,以容器中的数据结构 3:容器vector和迭代器的具体用法 (二):学习 1:函数模板 /** * 学习模板函数 */int max(int a,int b){ return a > b?a:...
2015-05-19 19:35:00
99
转载 STL练习2 实现插入排序,箱子排序和基数排序
使用list实现了排序的中比较简单的插入排序,箱子排序和基数排序,其中,箱子排序和基树排序只能用于数的排序,所以限制还是蛮大的,箱子排序在实际使用中基本上不使用,箱子排序是基数排序的基础,基数排序有MSD和LSD,MSD也就是从最高位开始向最低位排序,LSD也就是从最低位向最高位排序。 ...
2015-05-19 19:35:00
86
转载 STL vector练习
由于上一节学习了STL的使用,特别学习了vector的学习,所以在这里需要去回顾练习一下。下面是我的代码,我是用vector容器,实现了冒泡排序,选择排序和快速排序。特别的,在最后着重学习一个快速排序的原理。 (一):vector练习,实现几个排序算法 //===========...
2015-05-19 19:35:00
123
转载 字符替换
编制一个字符替换函数rep(char *s,char *s1,char *s2),实现将已知字符串s中所有属于字符串s1中的字符都用字符串s2中的对应字符代替。这里使用指针实现。 举个例子: char s[] = “ABCABC”; char ...
2015-05-19 19:34:00
1896
转载 C实现任意进制数的转化
该实例要求使用C实现一个无符号整数到[2,16]进制数的转换。这个还是比较好想的,就是对该无符号整数不断的斤进制数d取余数,取商,一直做这样的运算,直到商为0为止,将所有的余数按照从后往前的顺序穿起来,就是转换后的进制数。 下面上我的代码: #include <stdio....
2015-05-19 19:34:00
79
转载 寻找相同元素的指针
此实例的要求是在两个已经摆好顺序的数组寻找第一个相同的元素在第一个数组中的指针。 这个实例的思想比较好,如果我来做的话,就是先从第一个数组的第一个元素开始,每次取出一个元素,与第二个数组的每一个元素进行比较,当元素值相等的时候,返回元素的指针。 但是在此实例中,使用了另外一种思想...
2015-05-19 19:34:00
107
转载 寻找指定元素
在已知数表中找出第一个与指定值相等的元素的下标和指针。这个实例还是比价简单的。 我的思路是,首先创建一个struct结构,该结构中有两个成员变量,一个是数组元素的下标,一个是数组元素的指针值,当程序进程查找的时候,将找到的结果保存到该结构上。下面是我的程序的实现部分: #incl...
2015-05-19 19:34:00
116
转载 C判断一个正整数n的d进制数是否是回文数
所有的有关于回文数的定义和如何判断一个n的d进制数是否是回文数的方法都在我的代码注释当中,直接上代码: #include <stdio.h>int circle(int n,int d);/** * @brief main 判断正整数n的d进制表示是否是回文数 *...
2015-05-19 19:34:00
376
转载 C实现万年历
要求:输入年份输出这一年的日历 注意:公元1900年一月一日是星期一,这一年是平年 思路:获取输入的年份y,首先获取从公元1900年到(y-1)年 的天数,然后获得该年份的第一天是星期几,进行输出。 这次实例,我花费了很长的时间,最后发现错误的原因出在在求某一年是闰年还是平年的...
2015-05-19 19:34:00
148
转载 C实现数组中元素的排序
使用C实现数组中元素的排序,使得数组中的元素从小到大排列。只不过在这个过程中出了一点小问题,在C中进行数字交换的时候,必须要使用指针的,不能使用引用。在后面的文章中,我要学习一个在C中的引用和指针的区别。下面看一下我的代码吧。 #include <stdio.h>vo...
2015-05-19 19:34:00
573
转载 钢材切割问题
已知钢材的总长,订单数和各订单需要的长度编制程序从订单中选择一组订单对钢材作切割加工, 使得钢材得到最佳应用,约定,每次切割损耗固定长度的钢材。 下面写一下我的思路,刚开始没有想明白应该怎么使用递归去做,但是,看了他们的代码之后,走了一遍,才明白,其实思路不太好想,但是实现起来还是比...
2015-05-19 19:34:00
1519
转载 使用指针比较整型数据的大小
该C实例是一个比较简单的实例,但是在该实例中,重点介绍了C语言中比较常用的也是容易出错的指针变量,其中包括指针变量的赋值,指针变量的运算等等。该实例实现了通过使用指针变量来比较3个整形数据,使其从小到大排列,实现比较简单,下面附上我的代码: #include <stdio.h&...
2015-05-19 19:34:00
750
转载 指向数组的指针
指向数组的指针变量成为数组指针变量。一个数组是由连续的一块内存单元组成的。数组名就是这块连续内存单元的首地址。 该实例我们实现了使用数组的指针引用数组,利用数组名以及下标引用数组等。 其中,使用数组的指针和数组的下标来遍历数组的时候可能不太容易理解,但是我已经在注释中说明清楚了。...
2015-05-19 19:34:00
534
转载 利用数组求前n个质数
我的算法思想和实现方式都在代码和注释当中呢,这样的方式确实使算法复杂度降低一个等级,很好啊。 #include <stdio.h>#include <time.h>/** * 利用数组求前n个质数 * 确定一个数m是否为质数,可以用已求出的质数对m * ...
2015-05-19 19:34:00
288
转载 C二维数组练习
这次实例的要求是: * 在n行n列的二维整数数组中,* 按照以下要求选出两个数。 * 首先从每行中选出最大数,在从选出的n个最大数中选出最小数;* * 其次,从每行选出最小数,再从选出的n个小数中选出最大数。* 下面就是我的代码,在注释中可以看到我的想法: #inclu...
2015-05-19 19:34:00
643
转载 整数转换成罗马数字
编写一个将整数n(1 <= n <= 9999)转换成罗马数字。 整数n(1<=n<=9999)与罗马数字表示有以下对应关系 1000 - m,有几个1000就有几个m对应 900 - 两个字符cm 500 -...
2015-05-19 19:34:00
118
转载 C使用递归实现前N个元素的和
递归函数,也就是不断的调用自身的函数,使用递归能够比较方便的解决一些比较难使用循环解决的问题。就在这个例子中,求一个数组a[]的前n项和,也就是求a[n-1]+a[n-2]+…+a[0],那么如果一个函数sum是用来求数组前n项和的,sum定义为sum(int a[],int n),则使...
2015-05-19 19:34:00
322
转载 从键盘读入实数
编制一个从键盘读入实数的函数readreal(double *rp)。函数将读入的实数字符列换成实数后,利用指针参数rp,将实数存于指针所指向的变量*rp。 解析: 函数在返回之前,将最后读入的结束实数字符列的字符返还给系统,以便随后读字符时能再次读入该字符。函数若能正常读入实数,...
2015-05-19 19:34:00
141
转载 内核memory barrier学习
本文例子均在 Linux(g++)下验证通过,CPU 为 X86-64 处理器架构。所有罗列的 Linux 内核代码也均在(或只在)X86-64 下有效。 本文首先通过范例(以及内核代码)来解释 Memory barrier,然后介绍一个利用 Memory barrier 实现的无锁...
2015-05-19 19:33:00
60
转载 NCQ与TCQ的区别及测试比较
硬盘指令队列NCQ/TCQ技术详解&性能测试 作者:Darren NCQ(Native Command Queuing)与TCQ...
2015-05-19 19:33:00
368
转载 实模式和保护模式的段式存储
intel 8086是16位的CPU,有着16位的寄存器,16位的数据总线和20位的地址总线。但由于其寄存器和数据总线都是16位,仅仅具有64kb的寻址能力,所以采用段+偏移的方式得到20位的即1M的寻址能力。则其计算公式为: 物理地址 = 段值 * 16 + 偏移。 也就是段值左移...
2015-05-19 19:33:00
190
转载 自制操作系统-最简单的系统hello World
按照自制操作系统的步骤,首先需要使用二进制编辑器编辑一个.img文件,编辑完成之后,可以有两种运行方式: 1:可以将该img文件烧进软盘文件中,重新启动计算机 2:使用qume虚拟机运行。 我们采用第二种方式,首先我们需要获取其中的.img文件,在其光盘中的”30天自制操作系统...
2015-05-19 19:33:00
269
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人