ASM

曹工说Spring Boot源码(29)-- Spring 解决循环依赖为什么使用三级缓存,而不是二级缓存

霸气de小男生 提交于 2020-08-05 00:22:53
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean Definition到底是什么,咱们对着接口,逐个方法讲解 曹工说Spring Boot源码(3)-- 手动注册Bean Definition不比游戏好玩吗,我们来试一下 曹工说Spring Boot源码(4)-- 我是怎么自定义ApplicationContext,从json文件读取bean definition的? 曹工说Spring Boot源码(5)-- 怎么从properties文件读取bean 曹工说Spring Boot源码(6)-- Spring怎么从xml文件里解析bean的 曹工说Spring Boot源码(7)-- Spring解析xml文件,到底从中得到了什么(上) 曹工说Spring Boot源码(8)-- Spring解析xml文件,到底从中得到了什么(util命名空间) 曹工说Spring Boot源码(9)-- Spring解析xml文件,到底从中得到了什么(context命名空间上) 曹工说Spring Boot源码(10)-- Spring解析xml文件,到底从中得到了什么(context:annotation-config 解析)

用于测试Collat​​z猜想的C ++代码比手写汇编要快-为什么?

孤街浪徒 提交于 2020-08-04 22:09:48
问题: I wrote these two solutions for Project Euler Q14 , in assembly and in C++. 我用汇编语言和C ++语言为 Euler Q14项目 编写了这两种解决方案。 They are the same identical brute force approach for testing the Collatz conjecture . 它们是用于测试 Collat​​z猜想 的相同相同的蛮力方法。 The assembly solution was assembled with 组装解决方案与 nasm -felf64 p14.asm && gcc p14.o -o p14 The C++ was compiled with C ++使用 g++ p14.cpp -o p14 Assembly, p14.asm 汇编, p14.asm section .data fmt db "%d", 10, 0 global main extern printf section .text main: mov rcx, 1000000 xor rdi, rdi ; max i xor rsi, rsi ; i l1: dec rcx xor r10, r10 ; count mov rax, rcx l2: test

ASM单实例由Oracle Restart引发的系列故障分析(Final Version)

强颜欢笑 提交于 2020-07-29 08:11:06
ASM单实例由Oracle Restart引发的系列故障分析(Final Version) 置顶 aaron8219 2013-08-26 03:35:50 5816 收藏 分类专栏: Oracle ASM 版权 今天重新打开上次安装完的一个ASM单实例环境,突然报错 SQL> startup ORA-01078: failure in processing system parameters ORA-01565: error in identifying file '+DATA/asmsingle/spfileasmsingle.ora' ORA-17503: ksfdopn:2 Failed to open file +DATA/asmsingle/spfileasmsingle.ora ORA-29701: unable to connect to Cluster Synchronization Service 以为是监听问题造成的无法读取asm磁盘组,于是运行netca删除监听和服务名,准备重新创建。 当我删除监听后,准备再重新创建一个时,报了一个错误,如下图: 需要重启Oracle Restart后再配置netca,否则不能注册到Oracle Restart google了一下,Oracle Restart是11gR2用来管理单实例组件的一个组件,在装完Grid

8086汇编语言程序设计——分支

二次信任 提交于 2020-07-29 03:35:16
汇编语言程序和高级语言程序一样,有顺序、分支、循环、子程序四种结构形式。 计算机程序在执行过程中,可以改变程序的执行顺序,根据一定的条件进行转移,使程序完成更复杂的功能。汇编语言提供了无条件转移指令和条件转移指令。 一个分支程序的例子 示例 设计分支程序,实现下列公式计算。X、Y为字型。假设X单元中保存三个数:9,-6,34,分别作判断和计算。 设计思路: (1) 在数据段中定义2个字型变量X、Y,均为带符号数; (2) 在X单元中依次取出三个数分别作判断,根据X的大小作分支转移; (3) 采用寄存器相对寻址方式(MOV AX,X[SI])取出X的三个值; (4) 标号OUT1是各路分支的公共出口。 程序框图: 代码: ; a.asm 用正常程序格式编写分支程序 data segment x dw 9 ,- 6 , 34 y dw 3 dup(?) ;定义一个变量,占3的字,每个字的内容未知 data ends code segment assume cs: code, ds: data start: mov ax,data mov ds,ax mov cx, 3 ;循环三次 mov si, 0 let0: mov ax,x[si] ;取出X cmp ax, 0 ;X ≥ 0 ? jge let1 ;是,转到let1 mov bx,ax ;否,计算X*X imul bx jmp

浅谈下 Fastjson 的 autotype 绕过

大兔子大兔子 提交于 2020-07-29 02:57:45
作者:Kingkk 原文链接: https://www.kingkk.com/2020/06/%E6%B5%85%E8%B0%88%E4%B8%8BFastjson%E7%9A%84autotype%E7%BB%95%E8%BF%87/ 本文为作者投稿,Seebug Paper 期待你的分享,凡经采用即有礼品相送! 投稿邮箱:paper@seebug.org 继去年1.2.47 Fastjson被绕过之后,最近的1.2.68又出现了绕过。 正好前段时间翻了一遍Fastjson的源码,对整体逻辑有了一些了解,就尝试分析下autotype的校验过程,以及这两次绕过的思路。若有错误,还望指出。 autotype的校验 为什么校验一直被绕过 1.2.24之后,fastjson对反序列化的类型进行了校验,主要就体现在 ParserConfig.checkAutoType 函数中 里面会对反序列化的类型进行黑白名单和校验,然后获取对应的Java类。 至于为什么没开启 SupportAutoType 属性依然会存在反序列化的危险呢? 可以看到在解析过程中,只要key值为 @type 时,就会进入 checkAutoType 函数尝试获取类。 而且校验 SupportAutoType 属性的工作却是在 checkAutoType 函数中完成的(跟进之后也可以看到是在函数最末端调校验的值

Istio 网关之南北向流量管理(内含服务网格专家亲自解答)

不打扰是莪最后的温柔 提交于 2020-07-28 17:31:58
作者 | 王夕宁 阿里巴巴高级技术专家 参与阿里巴巴云原生公众号文末留言互动,有机会获得赠书福利! 本文摘自于由阿里云高级技术专家王夕宁撰写的《Istio 服务网格技术解析与实践》一书,文章介绍将集群外部的客户端连接到集群内运行的服务,以及如何从集群内的服务访问集群外部的任何服务,即通常所说的南北向流量管理。其中介绍了 Istio 在南北向流量方面的路由控制能力,引出 Istio 网关的概念及其工作原理。 本文文末汇集并整理了近期 Istio 的相关问题并特邀王夕宁老师进行解答,希望能够对大家有所帮助~ Istio 网关 网络社区中有一个术语 Ingress,是指入口请求到集群内服务的流量管理。Ingress 指的是源自本地网络之外的流量,指向本地集群网络中的端点。此流量首先路由到公开的入口点,以便通过执行一些本地网络的规则和策略来确认哪些流量被允许进入。如果流量未通过这些入口点,则无法与集群内的任何服务连接。如果入口点允许流量进入,则将其代理到本地网络中的合适节点。Istio 对入口流量的管理是由 Istio 网关进行的。 Istio 网关的工作原理 传统上,Kubernetes 使用 Ingress 控制器来处理从外部进入集群的流量。使用 Istio 时,情况不再如此。Istio 网关用新的 Gateway 资源和 VirtualServices 资源来控制入口流量

win10 64 使用 visual studio 2017 搭建汇编开发环境

时光总嘲笑我的痴心妄想 提交于 2020-07-28 08:31:40
转自http://blog.csdn.net/sinat_27382047/article/details/70339455 插件 vs2015的汇编语法高亮插件(安装就行)这玩意找了我很久= = http://download.csdn.net/detail/fhw_bin_dl/9724391 过程【这是小事,vs这一系列都可以照葫芦】 一、建项目 1.建一个空项目,必须先建空项目,改现成的C++项目为assembler项目可能会造成编译不过. 2.选中项目右键 “生成自定义”,选择MASM生成规则. 二、添加及设定源文件 3.选中源文件右键-》添加-》新建项 此处后缀名是汇编的.asm 4.选中项目右键-》属性-》链接器-》系统-》 子系统选 “控制台(SUBSYSTEM:CONSOLE)” 5.选中项目右键-》属性-》链接器-》高级-》 入口点 填 "main" 三、 测试 代码编译运行: (可以看到,如果安装了高亮插件, 不仅注释可以用了,代码也有高亮提示了 ) 最后,输出, 调试时 选择菜单 调试-》窗口-》寄存器 就能看到寄存器值。(这样,就不至于苦逼地用指令-ip一步步看了吧~) 代码【这事儿可深了……】 先上那位大神可以过的代码 TITLE Add and Subtract (AddSub.asm) ; This program adds and

直接在x86硬件上显示图片(无os)

对着背影说爱祢 提交于 2020-07-28 08:25:09
1 任务   为了学习计算机底层和os,我给自己布置了一个任务:在x86硬件上,使用c和nasm来显示一张bmp图片。完成这个任务,前后估计花了2个月的业余时间。   这个任务涉及了很多知识点,包括:启动区、保护模式、nasm汇编、c和nasm汇编互调、ld链接、硬盘io读取、显卡调色板模式、bmp图片格式、bios中断指令、c指针操作内存、borch虚拟机、binutils工具集、makefile等。 2 环境 ubuntu borchs nasm和 c PS: c代码遵循google的C++ 风格指南,使用gnu99标准 。 3步骤 3.1 生成一个10M的硬盘镜像   bximage是borchs软件包的一个小工具,可以用于生成硬盘或软盘镜像。打开终端,输入:bximage。按照如下图所示的,一步一步地操作。 最终会在当前目录下,生成一个名为10M.img的文件。 3.2 准备一张320*200的bmp图片   为简单起见,屏幕的分辨率使用320*200。因此我们的bmp图片的大小320*200。我准备了一张图片,如下,这是我家主子的靓照。   将文件命名为cat-666.bmp,然后写入到#201扇区 dd if =src/cat-ham.bmp of=10M.img bs=512 seek=201 conv=notrunc 3.3 引导区   引导区位于启动盘的#0扇区

计算机基础知识03

别等时光非礼了梦想. 提交于 2020-07-28 03:54:37
内存管理 内存管理的发展历程 DOS时代 - 同一时间只能有一个进程在运行(也有一些特殊算法可以支持多进程) windows9x - 多个进程装入内存 1:内存不够用 2:互相打扰 为了解决这两个问题,诞生了现在的内存管理系统:虚拟地址 分页装入 软硬件结合寻址 程序在磁盘存储的时候,已经按块存储了,每块4k用于加载到内存页中,并产生页表,在页表中记录每块的功能,比如执行程序在第二块,那么在执行程序的时候,会把第二块加载到内存中用于执行,当执行完以后发现要用第三块,在把第三块加载到内存页中; 分页(内存不够用),内存中分成固定大小的页框(4K),把程序(硬盘上)分成4K大小的块,用到哪一块,加载那一块,加载的过程中,如果内存已经满了,会把最不常用的一块放到swap分区, 把最新的一块加载进来,这个就是著名的LRU算法 LRU算法 LeetCode146题,头条要求手撕,阿里去年也要求手撕 Least Recently Used 最不常用 哈希表(保证 查找操作O(1)) + 链表 (保证 排序操作和新增操作 O(1))) 双向链表 (保证 左边指针 指向右边块) 虚拟内存(解决相互打扰问题) DOS Win31 ... 互相干掉 为了保证互不影响 - 让进程工作在虚拟空间,程序中用到的空间地址不再是直接的物理地址,而是虚拟的地址,这样,A进程永远不可能访问到B进程的空间

Centos7中使用7zip压缩工具

无人久伴 提交于 2020-07-26 10:42:39
7-Zip是一个支持7z(它实现了LZMA压缩算法,具有非常高的压缩比)、LZMA2、XZ、ZIP、Zip64、CAB、ARJ、GZIP、BZIP2、TAR、CPIO、RPM、ISO、大多数文件系统映像和DEB格式的文件归档器。RAR格式由于不是免费许可,已经被删除了。 环境 Centos 7.7 Minimal p7zip-16.02 安装 默认Centos7没有安装p7zip安装包,默认源里面也没有这个安装包,需要安装epel源才能安装p7zip安装包。 [root@localhost ~]# yum -y install epel-release [root@localhost ~]# yum -y install p7zip p7zip-plugins 使用方法 7z 命令 提供的函数字母与 命令 行选项类似,但使用时不使用 - 。这些参数字母告诉命令它需要执行的函数。 压缩文件 创建一个压缩包使用 a 参数 创建一个7z格式的压缩包: [root@localhost ~]# 7z a files.7z file1.txt file2.txt file3.txt file4.txt 7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 p7zip Version 16.02 (locale