前言 gcc/g++是Linux中的编译器,vim是Linux中的编辑器。要想将代码运行起来还需要编译才可实现。 本篇文章,主要通过预处理、编译、汇编、链接来介绍gcc/g++。...Linux系统下,gcc/g++头文件默认路径: /usr/include/,去查看它即可 条件编译 有一个很深刻的印象,在下载安装pycharm时,需要选择安装社区版还是专业版。...编译 在VS中,编译器会检查语法是否有错误,如果没有错误,才会编译成汇编语言。Linux下的gcc/g++也是一样。...-O0 -O1 -O2 -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高 -w 不生成任何警告信息。 -Wall 生成所有警告信息。
头文件的展开 此时生成test.i,我们用vim进入test.i,在利用底行模式vs test.c: 同时,在预处理阶段完成了宏替换、去注释以及条件编译: 条件编译的生效(宏的命令行定义) 可以向编译器传参来保证宏在命令行中定义...**这个库的位置: Linux下默认形成可执行程序,默认使用的是动态库 /lib64/libc-2.17.so静态库 生成静态链接 生成可执行程序后面要加上-static 但是我们仔细看一下体积的差距太大了
今日更新了Linux的编译器gcc、g++的内容 欢迎大家关注点赞收藏⭐️留言 编译器-gcc/g++ 我们直接用自带的gcc编译器会编译不了,因为当前版本太低了,有些语法不支持。...3种常见c++后缀 .cc和.cpp都是指c++,需要用g++编译器,如果用gcc编译器就会报错。如果想支持更高的语法特性,可以加上 -std=c++11 的选项。g++也可以编译c语言程序。...-O0 -O1 -O2 -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高 -w 不生成任何警告信息。 -Wall 生成所有警告信息。
gcc test.c -E -o test.i /usr/include/stdio.h //linux下的头文件路径 C:\Program Files\Microsoft Visual Studio\...2022\Community\SDK\ScopeCppSDK\vc15\SDK\include\ucrt\stdio.h //我的windows下的头文件路径 预处理之后的文件中多出来的一大堆代码其实是从linux...劣势:形成的可执行程序体积太大,网络、磁盘、内存的资源占用量大, 2.动态链接 通过编译器内部的链接器,来链接标准函数库,值得注意的是,动态链接的时期是在程序运行的时候,如果程序需要链接,链接器就会链接标准函数库...windows下动态库后缀为.dll静态库后缀为.lib 在安装vs2022时,我们安装的不仅仅是编译器本身,还要安装标准库的.h文件,以及标准动静态库等 5.Linux的大部分命令就是用C语言写的...大家需要有这个认识,Linux中大部分指令都是用C语言写的。
原作者:Bane Radulovic 译者: 郭旭瑞 审核: 魏兴华 DBGeeK社群联合出品 ASM File Directory 本篇主要介绍ASM的1号文件,ASM的1号文件是ASM的文件目录...虽然这是一个内部的文件,但ASM实例会把它当做其它ASM文件一样管理,在ASM的文件目录中也会有它自己的条目(指向了它自己),在一个normal和high冗余的磁盘组中,它也会做镜像,随着新文件的产生,...V$ASM_FILE and V$ASM_ALIAS views ASM文件目录中描述的大部分信息都可以通过V$ASM_FILE视图查询到。...然而,该视图中并不会显示ASM元信息文件的信息。V$ASM_FILE视图中没有描述文件名的列,所以为了得到一个有意义的输出,同时我们还需要联合V$ASM_ALIAS视图。...译者注:译者认为这里作者遗漏了一个很重要的定位asm一号文件的方法,通过kfed 读取asm磁盘头的kfdhdb.f1b1locn部分,可以获得ASM一号文件所在的AU,例如下面的例子里显示了一号文件在磁盘的
前言 在之前已经分享了 【Linux】vim的使用,这次来看看在云服务器上的编译器gcc。 2....这个是因为编译器版本的问题: 查看编译器的版本:gcc -v 版本不是最新的,不支持在for里面定义变量。...mv test.cxx test.txt 这里是不行的,Linux是不关心文件后缀的,但是编译器是关系。这里编译器就是把.txt当成文本文件了。...在Linux里面有,同样在windows里面也有。 在在Linux中库的真正的名字是把前缀lib去掉,去掉“.”后面的后缀。 所以这个就是c标准库。...因为Linux存在这两种库,就决定了,在链接时,有两种方式:动态链接和静态链接。
原作者:Bane Radulovic 译者: 庄培培 审核: 魏兴华 DBGeeK社群联合出品 ASM disk header ASM磁盘头可能是ASM元数据中最广为人知的部分。...包含ASM元数据的AU会以元数据块的方式进行格式化(一个元数据块的大小为4K)。AU0位于ASM磁盘的起始位置,它始终用于存储ASM元数据。AU0的第一个块,即block 0,就是ASM的磁盘头。...我们对一个LINUX平台上通过asmlib管理的磁盘的block 0,使用kfed工具进行输出观察。 ?...ASM disk header backup ASM从11.1.0.7版本开始,磁盘头块的信息会自动备份到AU1的倒数第二个ASM元数据块中。...Conclusion ASM磁盘头包含ASM磁盘组正常运作和保持可用的重要元数据。
一、名词说明 Automatic Storage Management (ASM):自动存储管理 ASM Cluster File System (ACFS) :ASM群集文件系统 ASM Dynamic...官方这一部分主要还是让学习者对ASM有个框架式的了解 ASM是Oracle推荐的存储管理解决方案 ASM使用磁盘组来存储数据文件等 ASM支持单实例和RAC环境 ASM磁盘组(disk group)是...下面介绍ASM的组件: 1.ASM实例(ASM Instances) ASM也有实例,类似数据库实例,有SGA跟后台进程(ps -ef | grep asm_) ASM实例挂载磁盘组,以使ASM文件可用于数据库实例...图1-1 展示了具有一个ASM实例和多个数据库实例的单个节点配置。ASM实例管理元数据,并为ASM文件提供空间分配。当一个数据库实例创建时或者打开ASM文件,它将这些请求发送到ASM实例。...6.ASM文件 存储在ASM磁盘组中的文件称为ASM文件 每个ASM文件都包含在单个OracleASM磁盘组中 存储在ASM中的文件类型: Control files Data files, temporary
gcc mycode.c -0 mytest,后,./mytest就可以编译了,相当于把a.out重命名了
我们还可以通过给编译器传递不同的宏值来进行代码的动态裁剪。
用 -D选项可以对编译器传递不同的宏值。在结合条件编译,可以对代码进行动态裁剪。 ...我们对编译器传递了verson2=2,这样的话,条件编译就只编译verson2=2的部分 应用:VS 的免费版和专业版 其实两个版本就是软件,免费版就是一部分的专业版。...4.补充知识:语言与编译器的自举过程 C语言编译器优化成V2----->用C语言编译器v1编译------->v2形成软件(语言的自举) 那么:程序在翻译的过程,是翻译成低级语言,还是直接翻译为二进制文件
前面介绍了linux的常用命令和对文本的操作,接下来我将对大家领略一下vi编译器的强大功能。 希望大家觉得写的还不错的话可以点个“推荐”哦!...一、vim/vi编译器简介 Vim/Vi是一个功能强大的全屏幕文本编译器(Full Screen Text Editor),是Linux平台上最常用的文本编译器 用于建立、编辑、显示文本文件(linux...三、vim/vi编译器的简单使用 3.1、vi启动 输入vi命令后,便进入全屏幕编辑环境,此时的状态为命令模式。...四、Vi编译器常用的命令 3.1、在文件中移动光标 h:向左移动一个字符 l:向右移动一个字符 k:向上移动一行 j:向下移动一行 ^(即Shift+6):移动到当前行的开头处
原作者:Bane Radulovic 译者: 郭旭瑞 审核: 魏兴华 DBGeeK社群联合出品 ASM Disk Directory 本篇文章讲述ASM元信息的2号文件,ASM的2号文件是ASM...对ASM来说,磁盘目录只是一个普通的ASM文件,在ASM的文件目录中也会有它的条目,如果磁盘组做了冗余策略,它也会相应做镜像,也会像其他文件一样根据实际需要做空间的伸长。...V$ASM_DISK_STAT view 视图V$ASM_DISK_STAT展示了跟V$ASM_DISK相同的信息,不过查询V$ASM_DISK_STAT并不会执行发现所有磁盘的操作。...Locating the disk directory 我们可以在ASM实例中查询固态表X$KFFXP来查看哪些AU属于ASM的2号文件,同时通过join视图V$ASM_DISK_STAT来获取ASM的磁盘名称...Conclusion ASM磁盘目录维护了关于ASM磁盘组中的所有的磁盘的信息,这些信息基本上可以通过视图V$ASM_DISK去获取,也可以通过kfed工具去访问到这些信息。
对于 ASM 而言,它提供了 两种模型:对象模型和事件模型。...ASM 的对象模型(ASM Tree API) 对象模型的 本质 是一个 被封装过后的事件模型,它 使用了树状图的形式来描述一个类,其中包含多个节点,例如方法节点、字段节点等等,而每个节点又有子节点,例如方法节中有操作码子节点...的事件模型(ASM Core API) 它 采用了设计模式中的访问者模式。...当我们在使用 ASM 进行操控时,可以将它们视为一个个与之对应的事件。...在使用 ASM 进行插桩的时候,我们尤其需要注意以下 两点: 1)、当我们使用 ASM 处理字节码时,需要 逐步小量的修改、验证,切记不要编写大量的字节码并希望它们能够立即通过验证并且可以马上执行。
原作者:Bane Radulovic 译者: 郭旭瑞 审核: 魏兴华 DBGeeK社群联合出品 ASM file number 7 ASM元信息7号文件,是ASM的逻辑卷目录,用于跟踪与ADVM...ASM动态逻辑卷设备是由ASM动态逻辑卷构建的。一个磁盘组中可以配置一个或多个ASM动态逻辑卷设备。ASM集群文件系统通过ADVM接口构建在ASM磁盘组之上。...ADVM像数据库一样,也是ASM的一个客户端。当一个逻辑卷被访问时,相应的ASM文件会被打开并且ASM extent的信息会被发送到ADVM驱动。...cluster file system 这时,可以在逻辑卷设备上创建ASM集群文件系统(ACFS): # /sbin/mkfs -t acfs /dev/asm/acfs_vol1-159 mkfs.acfs...Conclusion 一个磁盘组中可以配置一个或多个ASM动态逻辑卷设备。ASM集群文件系统通过ADVM接口构建于ASM磁盘组之上。ADVM跟数据库一样,也是ASM的一个客户端。
原作者:Bane Radulovic 译者: 郭旭瑞 审核: 魏兴华 DBGeeK社群联合出品 ASM Active Change Directory 当ASM实例要对多个元信息block进行原子修改时...,ASM的active change directory 简称ACD会记录相应的日志,ACD是ASM元信息的3号文件。...ACD被分成多个chunk或者thread,每个运行中的ASM实例都有它自己的42MB大小的chunk。当一个磁盘组被创建时,会分配一个独立的chunk给ACD。...输出中我们只需要关注一个地方就可以了,那就是kfracdc.thread=1,这代表该ACD属于ASM实例一。在一个集群环境中,该值是与ASM实例号相对应的。...Conclusion 本篇只是一个说明性质的文章,只为完结ASM元信息系列文章,一些过于细节的地方也不必深究,明白ASM ACD的内部工作机理也没有太大的实践益处。
原作者:Bane Radulovic 译者: 魏兴华 审核: 魏兴华 ASM file number 5 本章讲述ASM的5号文件,5号文件是ASM的模板目录,包含了磁盘组中所有的文件模板的信息...有两种类型的模板:一种是系统自带的,一种是用户创建的,默认的模板(系统自带的)已经包含ASM的所有文件类型,创建文件时会根据文件类型自动匹配,用户创建的模板只会在用户特别指定时会使用。...v$asm_diskgroup WHERE name='DATA'; GROUP_NUMBER NAME Redundancy -------...译者注:隐含参数_asm_stripesize代表了精细条带的大小,默认为128K,隐含参数_asm_stripewidth代表了条带的宽度,默认为8。...这次的结果显示了只为1MB的文件分配了1个虚拟区,额外的一个是ASM的文件头。注意这个文件是三重的镜像和粗粒度的条带。
asm 读书笔记 标签(空格分隔): asm 类 ---- #####类 编译过后的class结构: 一部分描述修饰符,名称,超类,接口以及其上的annotation 每个field为一部分,每部分里面包含属性的修饰符...return value(void,MethodVisitor..); ClassVisitor->ClassReader: return value(void,MethodVisitor..); Asm
体系结构(主要由ASM实例及ASM磁盘组组成) ASM的使用需要创建一个ASM实例,用于管理ASM磁盘组 ASM磁盘组由ASM磁盘组成,可以包含一个或多个ASM磁盘 ASM磁盘可以是实际的磁盘,也可以是磁盘的某个分区...ASM实例 如果一个实例服务于多个RDBMS,建议将ASM的ASM_HOME与DB的ORACLE_HOME分开,便于日后的升级与维护 ASM磁盘组的创建与配置在ASM实例启动之后 使用ASM磁盘的RDBMS...下载路径:ASMLib下载 注意下载支持该内核的包,分为两部分,一是Library and Tools,二是Drivers for kernel 如本人的Linux的内核为: [root@oradb...TOTAL_MB FREE_MB ----------- ---------- ---------- 1 199 148 0 199 148 1 199 148 0 199 148 重新启动Linux...ASM discovered an insufficient number of disks for diskgroup "DG1" SQL> ho ls -hlt /dev/raw # LINUX
原作者:Bane Radulovic 译者: 魏兴华 审核: 魏兴华 ASM Continuing Operations Directory ASM中一些运行时间较长的操作,例如rebalance..., drop disk, create/delete/resize file,这些信息ACD的简要结构不足以描述其变化,这些操作需要通过ASM的COD目录去追踪,COD是ASM的4号文件,每一个磁盘组都会有一个...Background operation 后台操作是由ASM实例的后台进程去执行的,它作为磁盘组的维护任务的一部分,而非特殊要求,直到完成或者ASM实例挂掉,如果ASM实例挂掉,执行恢复的实例需要重新执行后台操作...ASM的前台进程发起请求,为了能够记录这个rollback操作,必须在ASM的COD目录中申请一个槽位,COD目录的block 1展示了所有的槽位和使用状态,如果所有的槽位当时都是忙的,那么这个操作会休息一段时间...如果数据库实例挂掉或者ASM前台进程挂掉,一个不可恢复的错误会发生,然后这个操作会被终止。
领取专属 10元无门槛券
手把手带您无忧上云