- 博客(41)
- 资源 (15)
- 收藏
- 关注
原创 可信计算-普通的文件传输
此实验基于example下的file_demo普通的文件传输为啥子叫普通嘞,因为后面有复杂的啊~1.先看一下启动文件套餐(姑且这么叫着)_file_receiver.def:{ "CUBE_PATH":"/home/kx/cube-1.3"}{ "CUBE_APP_PATH":"/home/kx/test", "INSTANCE":"ft/file_receiver",}_file_sender.def:{ "CUBE_PATH":"/home/kx/cube-1.3"}
2021-04-12 16:17:37
580
原创 可信计算的hello
可信的Hello,world!本次基于上次的Hello实例来对CUBE架构的配置运行状况进行简单分析。Hello实例用来演示实例的模块配置和消息分发等基本功能,它是通过三个系统模块hello模块、echo模块和print模块来实现“hello,world”消息的输出的。Hello模块输出(MESSAGE,BASE_MSG)格式的hello消息,echo模块收到消息后,将消息原样输出,print模块收到消息后,在终端输出消息记录内容。Hello实例中的消息路由策略则配置了(MESSAGE,BASE_MSG
2021-04-12 15:34:15
1021
原创 Cube可信软件基搭建
Cube软件环境搭建注:本环境均在kx/cube-1.3目录下首先要有gcc,make,gitapt install gccsudo apt install makesudo apt install gitCube架构的基本框架部分遵循LGPL协议开源,只要有一台连接Internet的Linux机器,即可下载cube架构的源码。本示例需要基础架构cube-1.3即可进行最初的测试。cube-1.3代码遵循LGPL协议开源。源码地址在国内的码云开源平台上可下载,地址为: algorist
2021-04-12 11:32:21
2449
1
原创 Cube可信软件基简介
1、Cube可信软件基简介Cube-1.3是一个基于分布式消息驱动的架构,具备数据格式定义和解析、内存数据库支持、软件定义的模块加载和消息路由支持等功能。本课程所有实验用例的总体思路就是用cube架构来进行应用场景和攻防场景的模拟,在模拟框架中选择实训点留出空白,由实训学生理解实训场景的实训要求后,通过编程填补空白,并通过模拟环境的自动化测试来对实训学生的实训工作进行评价。Cube架构有记录、消息、模块、实例和消息路由等几个基本概念。记录: 指预先定义了格式的数据,格式为Cube-1.3架构所支持的数
2021-04-12 10:47:25
1528
原创 Python多进程编程 ---- 基础篇7. Pool
----------基础篇进程池引入为什么要用进程池呢?如果我们有几百上千个任务需要自行,那么按照之前的做法,我们就要创建几百上千个进程,每一个进程都要占用一定的内存空间,进程间的切换也费时,系统开销很大,而且,难道这成千上百个进程能同时并发执行的有几个呢?其实也就那么几个子,所以,根本没必要创建那么多进程。那么怎么办呢?那就创建进程池。进程池里有固定数量的进程,每次执行任务时都从进程池中取出一个空闲进程来执行,如果任务数量超过进程池中进程数量,那么就等待已经在执行的任务结束之后,有进程空闲之后再执行,
2021-03-11 10:17:57
306
原创 Python多进程编程 ---- 基础篇6. Pipe
----------基础篇引子创建管道方法:Pipe([duplex]):在进程之间创建一条管道,并返回元组(conn1,conn2),其中conn1,conn2表示管道两端的连接对象,强调一点:必须在产生Process对象之前产生管道。dumplex:默认管道是全双工的,如果将duplex射成False,conn1只能用于接收,conn2只能用于发送。conn1.recv():接收conn2.send(obj)发送的对象。如果没有消息可接收,recv方法会一直阻塞。如果连接的另外一端已经关闭,那么
2021-03-05 16:59:38
488
原创 Python多进程编程 ---- 基础篇5. Queue
----------基础篇引子Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递。常用方法:get( [ block [ ,timeout ] ] ) :从队列读取并且删除一个元素。如果q为空,此方法将阻塞,直到队列中有项目可用为止。block用于控制阻塞行为,默认为True。timeout是可选超时时间,用在阻塞模式中。如果blocked为True(默认值),并且timeout为正值,那么在等待时间内没有取到任何元素,会抛出Queue.Empty异常。如果blocked为
2021-03-05 16:50:25
519
原创 Python多进程编程 ---- 基础篇4. Event
----------基础篇引子python进程的事件用于主进程控制其他子进程的执行,Event类有如下几个主要方法:wait() 插入在进程中插入一个标记(flag)默认为 False,当 flag为False时,程序会停止运行进入阻塞状态;set() 使flag为True,程序会进入非阻塞状态;clear() 使flag为False,程序会停止运行,进入阻塞状态 ;is_set() 判断flag 是否为True,是的话返回True,不是则返回False红绿灯
2021-03-05 16:33:15
370
原创 Python多进程编程 ---- 基础篇3. Semaphore
----------基础篇这个和Lock差不多引子锁同时只允许一个线程更改数据,而信号量是同时允许一定数量的进程更改数据 ,用来控制对共享资源的访问数量。假如有一下应用场景:有10个人吃饭,但只有三张餐桌,只允许做3个人,没上桌的人不允许吃饭,已上桌吃完饭离座之后,下面的人才能抢占桌子继续吃饭:如果不用信号量,肯定是10人一窝蜂一起吃from multiprocessing import Processimport timeimport randomdef fun(i): prin
2021-03-05 16:13:39
212
原创 Python多进程编程 ---- 基础篇2.Lock(进程同步)
----------基础篇引子进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的,而共享带来的是竞争,竞争带来的结果就是错乱,如何控制,就是加锁处理。例1:多个进程共享同一打印终端①并发运行,效率高,但竞争同一打印终端,带来了打印错乱from multiprocessing import Processimport os,timedef work(): print('%s is running' %os.getpid()) time.
2021-03-05 16:00:24
275
转载 Ubuntu18.04美化MacOS(新更grub界面美化)
Ubuntu18.04美化MacOS(新更grub界面美化)写在前面的话:在美化过程中大多数资源来自境外网站,下载时速度特别慢,写这篇博客一是为了给读者看,也是为了自己保存资源并记录ubuntu18.04的使用,避免你们或是自己以后再花费大量时间去百度方法和下载。感谢: feipeng8848 GNOME-LOOK.ORG 各插件开发者声明: 资源会放在博客中,但请尊重开发者的付出,资源仅供下载者个人美化使用。一、美化后效果图1、主界面:2、功能页图标:3、窗口、文件
2021-03-05 15:21:19
600
原创 Python多进程编程 ---- 基础篇1.Process
----------基础篇multiprocessing 引入python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数,Python会完成其他所有事情。借助这个包,可以轻松完成从单进程到并发执行的转换。multiprocessing支持子进程、通信和共享数据、执行不同形式的同步,提供了Process、Queue、Pipe、Lock等组件。1. Pro
2021-03-05 15:16:20
346
转载 栈溢出(下)
0x10 上篇回顾上篇文章介绍了栈溢出的原理和两种执行方法,两种方法都是通过覆盖返回地址来执行输入的指令片段(shellcode)或者动态库中的函数(return2libc)。本篇会继续介绍另外两种实现方法。一种是覆盖返回地址来执行内存内已有的代码片段(ROP),另一种是将某个函数的地址替换成另一个函数的地址(hijack GOT)。0x20 相关知识0x21 寄存器在上篇的背景知识中,我们提到了函数状态相关的三个寄存器—esp,ebp,eip。下面的内容会涉及更多的寄存器,所以我们大致介绍下寄存器
2021-03-05 15:15:53
192
转载 栈溢出(上)
0x10 本期简介在计算机安全领域,缓冲区溢出是个古老而经典的话题。众所周知,计算机程序的运行依赖于函数调用栈。栈溢出是指在栈内写入超出长度限制的数据,从而破坏程序运行甚至获得系统控制权的攻击手段。本文将以32位x86架构下的程序为例讲解栈溢出的技术详情。为了实现栈溢出,要满足两个条件。第一,程序要有向栈内写入数据的行为;第二,程序并不限制写入数据的长度。历史上第一例被广泛注意的“莫里斯蠕虫”病毒就是利用C语言标准库的 gets() 函数并未限制输入数据长度的漏洞,从而实现了栈溢出。Fig 1. 波
2021-03-05 15:15:04
253
原创 试比较嵌入式系统中常用 3 种通信接口:USRT、SPI 和 I2C
试比较嵌入式系统中常用 3 种通信接口:USRT、SPI 和 I2C(本文比较浅显。。)USARTUSART通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。物理层:TX:发送数据输出引脚。RX:接收数据输入引脚。SW_RX:数据接收引脚,只用于单线和智能卡模式,属于内部引脚,没有具体外部引脚。nRTS:请求以发送(Request To
2020-12-20 23:01:13
3634
原创 嵌入式系统原理课后习题练习
嵌入式系统原理及应用----基于ARM Cortex-M3内核的STM32F103系列微控制器答案仅供参考,不喜勿喷~~本人比较懒,后面的就没仔细整
2020-10-16 22:46:17
105142
13
原创 phpstudy设置目录文件夹(新版)
新版的phpstudy与以往有很大的变化,很多功能不再那么好更改。以下,我们对新版phpstudy进行设置目录浏览,方便我们进行开发首先将你的phpstudy 中的默认网站删掉然后新建网站如下,记得修改日期,根目录自己修改接下来是对配置文件进行修改,使我们能够进行目录浏览。只需要修改这一句变为Options Indexes FollowSymLinks ExecCGI然后记得重启即可。...
2020-06-17 11:35:48
5409
2
转载 Hash算法特点
2.2 Hash算法有什么特点一个优秀的 hash 算法,将能实现:正向快速:给定明文和 hash 算法,在有限时间和有限资源内能计算出 hash 值。逆向困难:给定(若干) hash 值,在有限时间内很难(基本不可能)逆推出明文。输入敏感:原始输入信息修改一点信息,产生的 hash 值看起来应该都有很大不同。冲突避免:很难找到两段内容不同的明文,使得它们的 hash 值一致(发生冲...
2020-04-15 16:22:47
8753
转载 Hash算法——进阶
Hash算法——进阶2.1 Hash是什么,它的作用先举个例子。我们每个活在世上的人,为了能够参与各种社会活动,都需要一个用于识别自己的标志。也许你觉得名字或是身份证就足以代表你这个人,但是这种代表性非常脆弱,因为重名的人很多,身份证也可以伪造。最可靠的办法是把一个人的所有基因序列记录下来用来代表这个人,但显然,这样做并不实际。而指纹看上去是一种不错的选择,虽然一些专业组织仍然可以模拟某个人...
2020-04-15 16:17:07
152
转载 Hash算法解决冲突的方法
Hash算法解决冲突的方法一般有以下几种常用的解决方法1, 开放定址法:所谓的开放定址法就是一旦发生了冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入公式为:fi(key) = (f(key)+di) MOD m (di=1,2,3,……,m-1)※ 用开放定址法解决冲突的做法是:当冲突发生时,使用某种探测技术在散列表中形成一个探测序列。沿此序列逐个单...
2020-04-15 16:13:38
183
转载 Hash构造函数的方法
1.2 Hash构造函数的方法1.2.1 直接定址法:直接定址法是以数据元素关键字k本身或它的线性函数作为它的哈希地址,即:H(k)=k 或 H(k)=a * k + b ; (其中a,b为常数)例1,有一个人口统计表,记录了从1岁到100岁的人口数目,其中年龄作为关键字,哈希函数取关键字本身,如图(1): 可以看到,当需要查找某一年龄的人数时,直接查找相应的项即可。如查找99...
2020-04-15 16:01:21
2137
转载 Hash原理(基础)
一、Hash原理(基础)1.1 概念哈希表就是一种以 键-值(key-indexed) 存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值。哈希的思路很简单,如果所有的键都是整数,那么就可以使用一个简单的无序数组来实现:将键作为索引,值即为其对应的值,这样就可以快速访问任意键的值。这是对于简单的键的情况,我们将其扩展到可以处理更加复杂的类型的键。使用哈希查找有两个步骤:...
2020-04-15 16:00:58
219
转载 Python中列表与元组、字典与集合、字符串
列表与元组、字典与集合、字符串大杂烩列表与元组基础相同点:列表和元组都是一个可以放置任意数据类型的有序集合;列表和元组都支持负数索引;列表和元组都支持切片操作;列表和元组都可以随意嵌套。不同点:列表是动态的(mutable):长度大小不固定,可以随意地增加、删减或者改变元素。元组是静态的(immutable):长度大小固定,无法增加删减或者改变,对任何改变只有创建一个新的...
2020-04-12 10:34:00
610
原创 python实验一、基础
实验一、Python基础(比较基础没有给出代码,回去自己敲一敲)目标1.熟练掌握Python解释器安装与基本用法2.熟练掌握pip命令在线安装Python扩展库的方法3.熟练运用Python运算符4.熟练运用Python内置函数5.养成对用户输入立即进行类型转换的习惯一、Python安装与开发环境搭建1.安装Python解释器记得要勾选 Add pythonx.xx to P...
2020-04-12 10:08:26
2642
原创 数据结构c实验十二 排序
实验十二 排序1、实验目的:理解常见的排序算法。2、实验环境与设备:已安装Visual Studio 2010(或其以上版本)集成开发环境的计算机。3、实验原理:常见排序算法的排序思想及其实现。4、实验内容:设计相应算法,分别统计直接插入排序、起泡排序、简单选择排序3种排序算法执行过程中需要进行的关键字比较和记录移动次数。注:上述算法实现时可以把元素类型均简化为int型。如待排序列...
2020-04-12 09:56:24
293
原创 数据结构c实验十一 查找
实验十一 查找1、实验目的:理解常见的查找算法。2、实验环境与设备:已安装Visual Studio 2010(或其以上版本)集成开发环境的计算机。3、实验原理:基于有序顺序表的折半查找。4、实验内容:实现折半查找算法的非递归和递归算法。注:算法实现时可以把元素类型均简化为int型。如有序顺序表为:(5,13,19,21,37,56,64,75,80,88,92)//折半查找算...
2020-04-12 09:54:53
396
原创 数据结构c实验十 图
实验十 图1、实验目的:(1)理解图的概念(2)掌握图的常见存储结构。(3)理解图的常见操作。2、实验环境与设备:已安装Visual Studio 2010(或其以上版本)集成开发环境的计算机。3、实验原理:(1)图的邻接矩阵存储。(2)带权无向图(无向网)的最小生成树实现。4、实验内容:(1)实现图的邻接矩阵存储(2)输出显示图的顶点、边和邻接矩阵(3)求解图的最小生成...
2020-04-12 09:52:52
407
原创 数据结构c实验八 求二叉树的高度、叶子数
实验八 求二叉树的高度、叶子数1、实验目的:(1)理解二叉树的二叉链表存储。(2)理解二叉树这种递归数据结构以及其操作的递归实现。2、实验环境与设备:已安装Visual Studio 2010(或其以上版本)集成开发环境的计算机。3、实验原理:(1)二叉树的二叉链表存储。(2)二叉树的三种遍历算法。4、实验内容:(1)基于标明空子树的先序遍历序列构造一棵采用二叉链表存储的二叉树...
2020-04-12 09:50:15
830
原创 数据结构实验八 二叉树的构造和遍历
实验八 二叉树的构造和遍历1、实验目的:(1)理解二叉树的二叉链表存储。(2)理解二叉树这种递归数据结构以及其操作的递归实现。2、实验环境与设备:已安装Visual Studio 2010(或其以上版本)集成开发环境的计算机。3、实验原理:(1)二叉树的二叉链表存储。(2)二叉树的三种遍历算法。4、实验内容:(1)基于标明空子树的先序遍历序列构造一棵采用二叉链表存储的二叉树。(...
2020-04-12 09:48:55
2380
1
原创 数据结构实验七 多维数组和矩阵
实验七 多维数组和矩阵1、实验目的:(1)理解数组的特特性和二维数组的存储方式。(2)了解各种特殊矩阵的压缩存储方法。2、实验环境与设备:已安装Visual Studio 2010(或其以上版本)集成开发环境的计算机。3、实验原理:(1)三角矩阵的压缩存储。(2)矩阵的求和运算。4、实验内容:矩阵运算:根据两个4阶三角矩阵的压缩存储,计算两个矩阵相加之和,并将结果存入一个新的...
2020-04-12 09:46:45
560
原创 数据结构实验六 串
实验六 串1、实验目的:(1)掌握串的概念。(2)理解串的存储结构。(3)能够基于串的相应存储结构实现串的常用操作。2、实验环境与设备:已安装Visual Studio 2010(或其以上版本)集成开发环境的计算机。3、实验原理:(1)串的定长顺序存储结构。(2)串的常用操作实现。4、实验内容:基于串的定长顺序存储结构实现串的常用操作,并举例演示。// 预定义常量#de...
2020-04-12 09:43:45
1316
原创 数据结构 实验五 停车场管理
实验五 停车场管理1、实验目的:(1)掌握栈的使用方法。(2)掌握队列的使用方法。2、实验环境与设备:已安装Visual Studio 2010(或其以上版本)集成开发环境的计算机。3、实验原理:(1)使用队列遵循“先来后到”规则的排队停车。(2)利用栈实现后进先出的进出停车场移车操作。4、实验内容:5、实验考核:(1)完成纸质版实验报告(2)提交电子版作业6、...
2020-04-12 09:40:44
2622
原创 数据结构实验四 约瑟夫生死游戏
实验四 约瑟夫生死游戏1、实验目的:利用线性表解决实际问题。2、实验环境与设备:已安装Visual Studio 2010(或其以上版本)集成开发环境的计算机。3、实验原理:(1)利用线性表的删除功能剔除被杀掉的人。(2)利用单链表、不带头结点的循环链表或带头结点的循环链表均可实现。4、实验内容:约瑟夫生死游戏问题有如下几种表述;表述一:古代某法官要判决N个犯人的死刑,他有一...
2020-04-12 09:38:00
4608
1
原创 数据结构实验三 基于线性表的集合运算
实验三 基于线性表的集合运算1、实验目的:(1)掌握线性表的使用方法。(2)掌握线性表的顺序存储结构。2、实验环境与设备:已安装Visual Studio 2010(或其以上版本)集成开发环境的计算机。3、实验原理:(1)利用线性表的数据元素来表示集合成员。(2)利用线性表的插入操作形成新的线性表。4、实验内容:假设利用线性表分别表示两个集合A和B(即线性表中的数据元素即为集合...
2020-04-12 09:35:07
1951
原创 数据结构实验二 顺序表的实现
实验二 顺序表的实现1、实验目的:(1)掌握线性表的基本概念。(2)掌握线性表的顺序存储结构。(3)掌握顺序表的常用操作的实现。2、实验环境与设备:已安装Visual Studio 2010(或其以上版本)集成开发环境的计算机。3、实验原理:(1)在理解顺序表的基础上,实现顺序表的常用操作。(2)测试顺序表,并能够利用实现的顺序表解决实际问题。4、实验内容:顺序表包含了初始化...
2020-04-12 09:29:05
1476
原创 数据结构时间复杂度测试
实验一 算法的时间复杂度测试1、实验目的:(1)掌握时间复杂度的基本概念。(2)熟悉程序计算时间的计时方法。2、实验环境与设备:已安装Visual Studio 2010(或其以上版本)集成开发环境的计算机。3、实验原理:基于计时函数clock()进行毫秒级计时。4、实验内容:请编写两个程序,分别调用下列两个函数测试它们在不同计算规模时的运行时间并验证其时间复杂度,尝试画出计算时...
2020-04-12 09:24:26
1034
1
原创 python:selenium如何对网页元素进行定位
一、相关函数首先看一下有什么可以用到的函数吧。定位单个匹配元素的方法有:find_element_by_idfind_element_by_namefind_element_by_xpathfind_element_by_link_textfind_element_by_partial_link_textfind_element_by_tag_namefind_element...
2020-04-11 22:41:29
863
转载 python:Selenium有些网页元素找不到
selenium测试无法定位到网页元素,可能有以下原因1、元素未加载完成,可以设置个等待时间2、如果元素在iframe里,在窗口里找是找不到元素的,更是无法点击。所以,要切换到iframe里去找元素。driver.switch_to_frame(“frameName”) # 根据框架名来切换(某些情况下亦有driver.switch_to.frame)driver.switch_to_...
2020-04-11 22:25:43
1618
MacOS壁纸.zip
2021-01-21
ubuntu18.zip
2021-01-21
Windows10Manager_3.2.7.0_Portable.rar
2020-09-17
DirectX修复工具.zip
2020-09-17
证件照大师插件 WIN版 MAC版.zip
2020-09-17
体育论文——浅谈体育锻炼对人体身心健康的积极作用.docx
2020-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人