首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏linux驱动个人学习

    深入理解虚拟 物理地址转换,页--基于ARMV8

    每一个页表项占用8个字节,每一张页有512项,所以一张页占用空间为512*8=4K,因此页的基地址都是4k对齐的,也就是页基地址的低12位都为0; 内核页表相关重要宏控,相信你仔细看过第三节的实例之后 armv8规定,所有页级别都是用同一个描述符格式,PGD只能输出下一级目录的基地址。 2.3 用户/内核PGD基地址 基于之前的分析可知,用户虚拟地址和内核虚拟地址转换为物理地址的时候使用不同的页基地址寄存器(TTBRx),因此他们的转换是基于不同的全局页目录PGD。 : MMU在转换虚拟地址的时候遵循以下步骤(基于以上配置): 1,如果虚拟地址bit[63:40]都为1,则使用TTBR1作为第一级页目录基地址,当bit[63:40]都为0时,使用TTBR0作为第一级页目录基地址 6,PMD包含512个64位PTE,从虚拟地址中获取VA[30:21]进行索引,PMD+(index[30:21]8),MMU从PMD表项中读取PTE的基地址; 7,MMU检查PMD目录项的有效性(

    1.5K00编辑于 2024-05-26
  • 来自专栏未知之路-技术杂记

    MySQL8的临时

    临时粗浅的讲,临时就是临时使用、在会话或sql结束后就会被销毁的。临时有两种,一种是用户手动创建的,另一种是在执行sql过程中由mysql自动创建的,这种临时就叫做内部临时。 -- 必须指明引擎为memory,否则会使用innodb引擎创建为磁盘临时 -->CREATE TEMPORARY TABLE 名(字段列表) ENGINE=MEMORY;手动创建的临时可以和普通同名 temptable_max_ram:所有临时的总大小超过这个值后,原有的临时如果继续增大就会被转换为磁盘临时,如果此时新建临时也会被存储在磁盘上。 分为会话临时空间和全局临时空间。会话临时空间按临时的类型分为用户创建的临时空间和mysql的优化器自动创建的内部临时空间。 查看会话临时空间:只能查看引擎是innodb的临时的空间,根据PURPOSE字段区分用户创建的临时和内部临时,分别是user和intrinsic。

    4.6K30编辑于 2023-01-03
  • 来自专栏波波烤鸭

    虚拟机字节码指令

    double型数值并将结果压入栈顶 0x88 l2i 将栈顶long型数值强制转换为int型数值并将结果压入栈顶 0x89 l2f 将栈顶long型数值强制转换为float型数值并将结果压入栈顶 0x8a l2d 将栈顶long型数值强制转换为double型数值并将结果压入栈顶 0x8b f2i 将栈顶float型数值强制转换为int型数值并将结果压入栈顶 0x8c f2l 将栈顶float型数值强制转换为 long型数值并将结果压入栈顶 0x8d f2d 将栈顶float型数值强制转换为double型数值并将结果压入栈顶 0x8e d2i 将栈顶double型数值强制转换为int型数值并将结果压入栈顶 0x8f 当结果小于等于0时跳转 0xa5 if_acmpeq 比较栈顶两引用型数值, 当结果相等时跳转 0xa6 if_acmpne 比较栈顶两引用型数值, 当结果不相等时跳转 0xa7 goto 无条件跳转 0xa8 创建指定类型和指定维度的多维数组(执行该指令时, 操作栈中必须包含各维度的长度值), 并将其引用压入栈顶 0xc6 ifnull 为null时跳转 0xc7 ifnonnull 不为null时跳转 0xc8

    59720发布于 2019-04-02
  • 来自专栏算法之名

    mycat 1.6.5 for mysql 8攻略

    如果你下载已经打包好的mycat 1.6.5压缩包.tar.gz是永远也连接不了mysql 8的,我们需要的是mycat 1.6.5的源代码Mycat-Server-1.6.zip的源代码,这个可以自行去下载 上传,解压,修改/conf目录下的三个文件server.xml,schema.xml,rule.xml 假如我们有一个userbetorder要分成5张,如图 ? xml version="1.0" encoding="UTF-8"?> <! -- 级 DML 权限设置 --> <! /mycat start就可以了 用你的数据库连接工具连接进去,操作一个,如插入,查找等于操作5个,每插入一次,他会随机插入到一个分中 另外不要使用select * from 逻辑;来进行查找,

    88310发布于 2019-08-20
  • 来自专栏全栈程序员必看

    mysql8分区_MySQL 分区

    MySQL分区就是将一个分解为多个更小的。从逻辑上讲,只有一个或一个索引,但在物理上这个或者索引可能由多个物理分区组成。每个分区在物理上都是独立的。 分区会在磁盘上为每个分区创建一个文件,如下:# ls -lh t_range* -rw-r—– 1 mysql mysql 8.4K 8月 17 19:25 t_range.frm -rw-r—– 1 mysql mysql 96K 8月 17 19:25 t_range#P#p0.ibd -rw-r—– 1 mysql mysql 96K 8月 17 19:25 t_range#P#p1.ibd Hash分区用法如下:以YEAR(b)做hash,分区数据量是4。 -rw-r—– 1 mysql mysql 96K 8月 18 11:46 t_sub#P#p1#SP#p1sp1.ibd -rw-r—– 1 mysql mysql 96K 8月 18 11:46

    4K10编辑于 2022-06-30
  • 来自专栏嵌入式ARM和Linux

    ARMv8虚拟化基础知识

    1 概述 2 虚拟化简介 3 AArch64虚拟化 4 `Stage-2`地址转换 5 指令的陷入和模拟 6 虚拟化异常 7 虚拟化通用定时器 8 虚拟化主机扩展 9 嵌套虚拟化 10 安全空间的虚拟化 11 虚拟化的成本 12 小测验 13 其它参考文章 14 接下来的计划 1 概述 本文描述了ARMv8-64的虚拟化支持。 为了支持该功能,需要一组新的地址转换,称为Stage-2页。 操作系统(OS)控制一组地址页,将自己的虚拟地址空间映射到它认为的物理地址空间上。 为了使能这些机制,ARMv8架构支持虚拟中断:vIRQ、vFIQ和vSError。这些虚拟中断的行为与物理中断(IRQ、FIQ和SError类似,但只能在EL0或EL1上执行时发出信号。 地址转换中描述符中的NS标志位控制输出是安全,还是非安全地址空间。

    3.3K41编辑于 2022-08-15
  • 来自专栏cloudskyme

    虚拟化平台cloudstack(8)——从UI开始

    处理简单列举一下4.1中API的新特性 在VM中重新配置物理网络 支持IPV6 扩展VMX设置 重新设置SSH密钥来访问虚拟机 在4.1中改变的API命令: API Commands Description serviceOfferingId=1&diskOfferingId=1&templateId=2&zoneId=4&apiKey=miVr6X7u6bN_sdahOBpjNejPgEsT35eXq-jB8CG20YI3yaxXcgpyuaIRmFI_EJTVwZ0nUkkJbPmY3y2bciKwFQ &signature=Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D 更容易读的方式: http://localhost:8080/client/api ? serviceOfferingId=1 &diskOfferingId=1 &templateId=2 &zoneId=4 &apiKey=miVr6X7u6bN_sdahOBpjNejPgEsT35eXqjB8CG20YI3yaxXcgpyuaIRmFI_EJTVwZ0nUkkJbPmY3y2bciKwFQ &signature=Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D

    1.3K60发布于 2018-03-20
  • 来自专栏程序人生丶

    Docker学习路线8:容器注册

    容器注册是Docker容器镜像的集中存储和分发系统。它允许开发人员以这些镜像的形式轻松共享和部署应用程序。 容器注册在容器化应用程序的部署中发挥着关键作用,因为它们提供了一种快速、可靠和安全的方式,在各种生产环境中分发容器镜像。 这些替代品提供了一组不同的功能和功能,以满足您的容器注册需求。了解这些选项将使您在选择 Docker 映像的容器注册时做出更明智的决策。 ACR 还提供使用虚拟网络和防火墙的私有网络访问。 容器注册的选择应基于您的要求,例如安全性、可扩展性、成本效益或与其他服务的集成。通过探索这些选项,您可以找到最适合您项目的容器注册

    1.5K30编辑于 2023-07-19
  • 来自专栏AustinDatabases

    MYSQL 8 UNDO 空间 你了解多少

    全局临时空间中 这里提到为什么有两个位置来存储UNDO LOG 1 UNDO 在全局临时空间存储的事务是不需要回滚的,主要这里存储的是数据库临时中产生的事务,所以这部分UNDO 不需要回滚 2 存在UNDO 空间的信息,这部分是需要单独存储在UNDO 空间中的 这里每个UNDO 空间 和临时空间最大支持 128个回滚段,通过 innodb_rollback_segments 来定义回滚段的数量 关于UNDO TABLESPACE 在MYSQL 8 和 MYSQL 5.7 有一些区别,首先mysql 5.7 的 undo log 默认是3个, MYSQL 8 默认是2个 innodb_undo_ 001 和 innodb_undo_002, 在之前 MYSQL 5.7 之前UNDO LOG 是无法在系统运行的时间进行添加的,而在8.014 版本后,MYSQL 8 是可以动态的添加UNDO LOG 同时MYSQL 8 的 UNDO LOG 的空间可以进行卸载的工作,将undo log 空间置为inactive ,然后在进行卸载。

    1.7K10编辑于 2022-12-12
  • 来自专栏嵌入式iot

    ARMV8 mmu页结构分析

    1.概述 armv8 mmu页结构比较复杂,总体说来可以将MMU分为以下几个部分: (1)虚拟地址(VA)为48位,而一般只使用到39位(512G内核,512G用户) (2)可以配置成3级页(64K 页)或者4级页(4K页) 最高的地址位是48为的地址,用4级页进行管理。 虚拟地址的63位可以用来选择TTBRx。 2.虚拟地址格式 按照虚拟地址格式可以分为以下几种: 4K时页的映射 ? 64K时页的映射 ? 3.页映射过程 如果要理解ARM64的映射过程,需要搞清楚的是 目前基于ARMv8-A架构的处理器最大可支持到48根地址线,也就是寻址2^48的虚拟地址空间。 即虚拟地址空间范围为 0x0000 0000 0000 0000 ~ 0x0000 FFFF FFFF FFFF,共 256 TB。

    2.7K10发布于 2020-03-17
  • 来自专栏机器学习/数据可视化

    hive之路8-修改和分区

    本文中主要介绍了对表、分区和字段的各种操作 修改 修改主要是对表的结构和属性进行操作,包含: 重命名 alter table oldname rename to new_table; 修改属性 alter table table_name set tblproperties (property_name=property_value); 修改注释 alter table table_name [sorted by (col_name,...)] into number buckets; 修改的目录 修改分区 添加分区 alter table tablename add [if not exists

    1.8K20发布于 2021-03-02
  • 来自专栏Alan's Lab

    8虚拟机项目 python 实现

    [From Nand to Tetris] 第8虚拟机项目 python 实现 为防闲逛至此的看官不知所云: From Nand to Tetris 是一个在线课程,目标是指导学生从 Nand 逻辑门开始从头到尾完成一整套计算机系统 另外还有第六章的作业答案:第6章 汇编器项目 python 实现 # _*_ coding: utf-8 _*_ import sys import os import glob class C_TYPE

    59320发布于 2018-10-19
  • 来自专栏ADAS性能优化

    Armv8架构虚拟化介绍

    本文描述了Armv8-A AArch64的虚拟化支持。包括stage 2页转换,虚拟异常,以及陷阱。本文介绍了一些基础的硬件辅助虚拟化理论以及一些Hypervisor如何利用这些虚拟化特性的例子。 包括stage 2页转换,虚拟异常,以及陷阱。本文介绍了一些基础的硬件辅助虚拟化理论以及一些Hypervisor如何利用这些虚拟化特性的例子。 为了支持Stage 2 转换, 需要增加一个页,我们称之为Stage 2页。操作系统控制的页转换称之为stage 1转换,负责将虚拟机视角的虚拟地址转换为虚拟机视角的物理地址。 而stage 2页由Hypervisor控制,负责将虚拟机视角的物理地址转换为真实的物理地址。 图32:安全世界的IPA地址空间 与stage 1不同,stage 2转换中没有NS比特位。

    1.2K20编辑于 2022-05-13
  • 来自专栏专注 Java 基础分享

    基于跳跃的 ConcurrentSkipListMap 内部实现(Java 8

    由于它内部根据键的 hash 值取模容量来得到元素的存储位置,所以整体上说 HashMap 是无序的一种容器。 但实现却远远比红黑树要简单,本篇我们主要从以下几个方面来对这种并发版本的数据结构进行学习: 跳跃的数据结构介绍 ConcurrentSkipListMap 的前导知识预备 基本的成员属性介绍 put 方法并发添加 remove 方法的并发删除 get 方法获取指定结点的 value 其它的一些方法的简单描述 一、跳跃的数据结构介绍 跳跃具有以下几个必备的性质: 最底层包含所有节点的一个有序的链表 通过概率算法得到新插入节点的一个 level 值,如果小于当前的最大 level,从最底层到 level 层都添加一个该节点。 如果概率算法得到的 level 大于当前的最大 level 值的话,那么将会新增一个 level,并且将新节点添加到该 level 上。

    3.5K50发布于 2018-01-04
  • 来自专栏Rattenking

    OpenCV-Python学习(8)—— OpenCV 颜色操作

    2.3 查找的使用和优点 构建查找; 查找应用; 查找优势,预计算,空间换时间,避免重复计算,节约计算时间。 # 4 'COLORMAP_OCEAN', # 5 'COLORMAP_SUMMER', # 6 'COLORMAP_SPRING', # 7 'COLORMAP_COOL', # 8 # 4 'COLORMAP_OCEAN', # 5 'COLORMAP_SUMMER', # 6 'COLORMAP_SPRING', # 7 'COLORMAP_COOL', # 8 自定义查找 自定义一个取反查找; 使用取反查找读取图片显示; 5.1 代码 使用 cv.imread() 读取图片; 使用 np.zeros((256,1,3), dtype=np.uint8) /images/butterfly.jpg') lut3 = np.zeros((256,1,3), dtype=np.uint8) for i in range(256): lut3[

    2.9K20编辑于 2022-10-24
  • 来自专栏summerking的专栏

    k8s的pod状态

    状态 描述 CrashLoopBackOff: 容器退出,kubelet正在将它重启 InvalidImageName: 无法解析镜像名称 ImageInspectError: 无法校验镜像 ErrImageNeverPull: 策略禁止拉取镜像 ImagePullBackOff: 正在重试拉取 RegistryUnavailable: 连接不到镜像中心 ErrImagePull: 通用的拉取镜像出错 CreateContainerConfigError: 不能创建kubelet使用的容器配置 Create

    39420编辑于 2022-09-19
  • 来自专栏各类技术文章~

    【力扣-哈希8、四数之和(18)

    2,2], target = 0 输出: [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] 复制代码 示例 2: 输入: nums = [2,2,2,2,2], target = 8

    36800发布于 2021-11-06
  • 来自专栏人人都是极客

    万字剖析 Armv8 架构虚拟

    综述 本文描述了Armv8-A AArch64的虚拟化支持。包括stage 2页转换,虚拟异常,以及陷阱。 这种能力对于虚拟机的隔离和沙箱功能来说至关重要。这使得虚拟机只能看到分配给它自己的物理内存。为了支持Stage 2 转换, 需要增加一个页,我们称之为Stage 2页。 操作系统控制的页转换称之为stage 1转换,负责将虚拟机视角的虚拟地址转换为虚拟机视角的物理地址。而stage 2页由Hypervisor控制,负责将虚拟机视角的物理地址转换为真实的物理地址。 Armv8提供了vIRQs, vFIQs, 和vSErrors来支持虚拟中断。 Stage 1转换中的NS比特位控制使用安全地址还是非安全地址。这意味着在安全世界,需要两个IPA地址空间。 与stage 1不同,stage 2转换中没有NS比特位。

    1.4K30编辑于 2022-07-18
  • 来自专栏顾宇的研习笔记

    采用 Multipass 管理本机虚拟 K8S 集群

    偶然发现 Multipass 可以支持在 Apple M1 虚拟 Ubuntu 实例,效果还不错。 /k8sctl status: 检查 k8s 集群上各节点虚拟机工作状态。 ./k8sctl login: 登陆控制面进行操作。 ├── client.sh │ │ └── server.sh │ ├── init.sh # 虚拟机初始化脚本目录 │ ├── k8s │ │ ├── install.sh # client.sh │ │ └── server.sh │ └── openldap # LDAP 服务端配置脚本 │ └── server.sh └── share # 和虚拟机之间交换文件的共享目录 这个项目和 Provisioner 一样,用于产生一个最小的可验证功能的虚拟 K8S 集群环境。随着我的学习和总结,这个项目也会不断完善。

    1.2K40编辑于 2022-04-02
  • 来自专栏云计算教程系列

    如何在Debian 8上设置Apache虚拟主机

    在本教程中,您将在Debian 8服务器上设置两个Apache虚拟主机,根据访问者访问的域向访问者提供不同的内容。 准备 要完成本教程,您需要: 1、一台Debian 8的服务器 2、一个可以使用sudo命令的非root账户 3、服务器安装了Apache 在本教程中,我们会为创建虚拟主机example.com和test.com 您现在拥有测试虚拟主机所需的页面。接下来,让我们配置虚拟主机。 第三步,创建新的虚拟主机文件 虚拟主机文件确定虚拟主机的实际配置,并决定了Apache Web服务器如何响应各种域请求。 etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf 注意:Debian 8中的默认 ---- 参考文献:《How To Set Up Apache Virtual Hosts on Debian 8

    2.1K40发布于 2018-07-24
领券