编者按:JavaFlightRecorder(简称为JFR)曾经是OracleJDK商业版的附属组件,在JDK11中正式开源,后又被移植到JDK8中。JFR对应用的侵入性很小,同时又能提供应用运行时相对准确和丰富的信息;合理使用该工具可以极大地提高工作效率。本文剖析JFR的事件机制,希望能帮助大家从原理上理解JFR,进而能正确使用JFR。本篇文章中的源码大部分来自openjdk8u262;本文出发点是梳理JFR的事件机制,侧重点在于理解而非应用对于JFR我们有着...
2022-08-16 11:39:11 7007浏览 0点赞 0回复 0收藏
编者按:笔者在AArch64中遇到一个G1GC挂起,CPU利用率高达300%的案例。经过分析发现问题是由JVM的锁机制导致,该问题根因是并发编程中没有正确理解内存序导致。本文着重介绍JVM中Monitor的基本原理,同时演示了在什么情况下会触发该问题。希望通过本文的分析,读者能够了解到内存序对性能、正确性的影响,在并发编程时更加仔细。现象本案例是一个典型的弱内存模型案例,大致的现象就是AArch64平台上,业务挂死,而进程占用CPU持...
2022-08-16 11:39:02 5470浏览 0点赞 0回复 0收藏
1997年5月EricS.Raymond发表了被誉为“开源圣经”的《大教堂与集市》,开源运动从此有了自己的独立宣言,越来越多的企业组织意识到开源的价值加入到开源运动中,开放、平等、协作、共享的开源模式逐渐成为新一代软件开发模式。当前,开源已成为全球软件技术和产业创新的主导模式,覆盖了软件开发的全域场景,全球97%的软件开发者和99%的企业都在使用开源软件,技术软件、新型平台软件也大多基于开源。可以说软件定义未来世界,...
2022-08-16 11:38:52 4456浏览 0点赞 0回复 0收藏
上篇文章我们介绍了操作系统引导过程中的BIOS与磁盘分区表的内容,也提到了bootloader,bootloader作为BIOS与OS之间的桥梁,在BIOS完成引导的部分工作退出后,由bootloader担负起启动内核的重任。在openEuler中,我们使用的系统加载器主要有两个:syslinux以及GRUB2。syslinux仅在使用光盘安装X86BIOSlegacy的机器时使用,其他情况下均使用GRUB2作为默认的系统加载器,所有我们着重介绍下GRUB2GRUB(GRandUnifiedBootloader)是...
2022-08-16 11:38:44 9718浏览 0点赞 0回复 0收藏
系统基础镜像提供了一个轻量级的Linux操作系统用户空间,并且作为各应用镜像的构建基础,在拥有最基础的软件包能力同时,体积应尽量做到最小。为提高容器应用的启动效率,为后续云原生相关应用打下基础,CloudNativeSIG进行了一系列的探索,包含本文提及的基础镜像裁剪以及后续计划实施的软件包优化等。同时我们也了解到,我们的伙伴目前已经在公司内部的“磐舟”容器平台部分使用openEuler基础镜像作为应用构建的基础,在规模...
2022-08-16 11:37:48 7578浏览 0点赞 0回复 0收藏
pkgship是一个包管理工具,能查询操作系统RPM包信息和包之间的依赖关系。当你想在现有版本库里引入新的软件包时,最让人挠头的就是需要将软件包的层层安装依赖、编译依赖梳理出来一起引入。而现有的包管理工具是无法直接获取到完整的引入包列表的。pkgship的自依赖查询能力可以快速识别软件包复杂的依赖关系,以关系图谱形式直观展示,并提供依赖关系文件下载,方便对包依赖关系进行分析和处理,实乃“居家”引包必备神器。pkgs...
2022-08-16 11:37:33 4659浏览 0点赞 0回复 0收藏
作为一名优秀的码农,必须熟练掌握的技能,大家肯定都能列出一大堆出来,多线程,操作系统,分布式等等……不过,在掌握这些晦涩难懂的知识前,码农们还需要掌握的一个重要的技能,那就是要学会怎么打开计算机。小伙伴们有没有考虑过,当你按下电脑的启动键时,是什么在冥冥之中,指引计算机找到了操作系统并完成了启动?说到这个问题,那就不得不提的是:系统引导。系统引导在计算机中,引导是启动计算机过程中的一个重要阶段...
2022-08-16 11:37:22 9400浏览 0点赞 0回复 0收藏
作者简介:汪少博,就职于华为OS内核实验室,KernelSIGCommitter,负责MPAM特性。MPAM(MemorySystemResourcePartitioningandMonitoring)特性用于解决混部业务时由于共享资源竞争带来的性能下降问题,MPAM作为继x86RDT[2]技术后的另一个针对CPU访存系统资源隔离的全新特性倍受关注,相比其他架构的类似特性,Arm64架构下的MPAM特性采用全新的确定性流控方式,控制手段更加丰富,控制对象覆盖更广,目前在鲲鹏服务器上的应用取...
2022-08-16 11:37:05 9780浏览 0点赞 0回复 0收藏
openEulerkernel开发跟linuxmainline一样,采用社区协作的方式,我们发送补丁、咨询问题都是通过邮件进行交流的,因此我们进行内核开发的标准流程和主线内核的开发流程是一样的。首先你需要配置好你的git,而且要能正常使用git发送补丁;下载openEulerkernel源代码;提交、验证你的补丁;补丁验证完成后,发往openEulerkernel邮件列表,等待社区讨论及回复;参与讨论,与Maintainer和其他开发者充分沟通。如果大家有意见,可以...
2022-08-16 11:36:50 7783浏览 0点赞 0回复 0收藏
关于作者蔡灏旻:openEuler社区CloudNativeSIG初创发起成员,任CloudNativeSIGMaintainer。2017年加入华为,多年容器、操作系统研发经验,对容器、Kubernetes、云原生等领域有深入的研究。现任iSula容器团队架构师,带领团队研发iSula容器解决方案,其中轻量级容器引擎iSulad,镜像构建方案isulabuild等已经在openEuler开源。写在前面以下观点是我自己一点点粗浅的理解,如有赞同,那太棒了,我们想一块儿去了。如有不同,那真是...
2022-08-16 11:36:22 4302浏览 0点赞 0回复 0收藏
编者按:本文作者文蔺,奇舞团前端开发工程师,转载已获授权。今年在组内推动常态化的分享活动,协助一些同学选题并审阅ppt和文章,一直想就其间种种问题做一次总结。虽然自己不怎么动手写博客,但因负责编辑奇舞周刊(weekly.75team.com)1的缘故,这几年接触了大量优秀的文章,耳濡目染,对技术文章的写作也形成了一些自己的看法。本文将从准备工作、文章结构、注意事项等方面展开,希望对乐于分享的同学有一定启发。准备工作...
2022-08-16 11:36:11 4911浏览 0点赞 0回复 0收藏
2020年12月8日,一则很小的消息在海外被发布,却引来中国乃至全球的科技产业巨大的震动:红帽公司将会在2021年底停止维护开源操作系统CentOS。CentOS虽然不为一般用户所熟悉,但它在企业级用户里,却是如雷贯耳般的存在。不少企业级计算平台,包括企业服务器、超级计算机、云计算平台以至电商平台都在广泛的使用。虽然红帽公司表示,未来会继续维护CentOS的另一个滚动版本“CentOSStream”,但CentOSStream已经从一个稳定的下游...
2022-08-16 11:35:47 4300浏览 0点赞 0回复 0收藏
RISCV是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。openEuler在RISCV上进行了一些探索:以下相关信息来自于https:gitee.comopeneulerRISCV2020年6月,openEuler发布了第一版支持RISCV的文件系统rootfs和kernel镜像。2020年8月,在OBS构建系统开始构建openEulerRISCV软件包。2020年9月,在华为全联接(HC)2020大会上发布了openEulerRISCV,国内首发RISCV版Linux。2020年10月,中科院成功移植openEulerRISCV到果壳...
2022-08-16 11:35:16 9443浏览 0点赞 0回复 0收藏
作者简介:范彬,在云计算、容器技术领域工作多年,具有丰富的大型分布式软件架构设计和系统性能调优经验,对Docker、Kubernetes等开源技术具有丰富的实施落地经验。现任中国电信天翼云容器小组研发组长,带领团队研发了天翼云容器引擎平台,并在金融、通讯等多个行业得到成功应用。一直保持热情和努力去研究最新的内核和网络技术,知乎「Kubernetes架构」专栏的创建者,《Linux内核观测技术BPF》和《云原生数据中心网络》书的...
2022-08-16 11:34:43 5739浏览 0点赞 0回复 0收藏
作者小智世间再无CentOS。但不必悲伤,世界还有另一种操作系统的选择。CentOS8的停止维护与首届线下openEulerSummit的不期而遇,成为了这个冬天最令人印象深刻的巧合。12月25日,InfoQ记者深度参与了由openEuler社区主办,InfoQ承办的openEulerSummit2020,本文试图从另一种角度,解读中国操作系统行业的发展路径。再见,CentOS8"TheCentOSProjectJustCommittedSuicide"。当RedHat放弃CentOS8的维护,转向CentOSStream的开发时...
2022-08-16 11:33:19 5160浏览 0点赞 0回复 0收藏
初入社区确定目标我叫王海涛,哈尔滨工业大学(深圳)校区计算机专业的大三学生。为了准备第一届全国大学生操作系统比赛,我的老师建议参加一些RISCV相关的比赛,提前熟悉RISCV,为从零写内核做好准备。于是我在2020年寒假期间参加了“2020openEuler高校开发者大赛”,选择的题目是“为openEulerRISCV添加Grub的引导启动方式”。从安装openEuler、注册gitee账号,再到用QEMU模拟RISCV、学习Grub,这个比赛让我学到了操作系统启...
2022-07-28 17:04:07 6472浏览 0点赞 0回复 0收藏
编者按:笔者遇到一个非常典型的问题,应用在X86正常运行,在AArch64上JVM就会崩溃。这个典型的JVM内部问题。笔者通过分析最终定位到是由于JVM中模板解释器代码存在bug导致在弱内存模型的平台上Crash。在分析过程中,涉及到非常多的JVM内部知识,比如对象头、GC复制算法操作、CAS操作、字节码执行、内存序等,希望对读者有所帮助。本文介绍了一般分析JVMcrash的方法,并且深入介绍了为什么在aarch64平台上引起这样的问题,最后...
2022-07-28 17:00:53 5651浏览 0点赞 0回复 0收藏
什么是PR?借用知乎上的一个回答:用类比的方法来解释一下pullreqeust。想想我们中学考试,老师改卷的场景吧。你做的试卷就像仓库,你的试卷肯定会有很多错误,就相当于程序里的bug。老师把你的试卷拿过来,相当于先fork。在你的卷子上做一些修改批注,相当于gitcommit。最后把改好的试卷给你,相当于发pullrequest,你拿到试卷重新改正错误,相当于merge。pullrequest简称为PR,在不同的系统中PR有不同的名字,有些系统中使用M...
2022-07-28 16:59:32 5693浏览 0点赞 0回复 0收藏
编者按:JNI是Java和C语言交互的主要手段,要想做好JNI的编程并不容易,需要了解JVM内部机理才能避免一些错误。本文分析Cassandra使用JNI本地库导致JVM崩溃的一个案例,最后定位问题根源是信号的错误处理(一些C编程人员经常会截获信号,做一些额外的处理),该案例提示JNI编程时不要随意截获信号处理。现象在使用Cassandra时遇到运行时多个位置都有发生crash现象,并且没有hserr文件生成,这里列举了其中一个crash位置:分析首...
2022-07-28 16:58:34 5527浏览 0点赞 0回复 0收藏
首先您需要6步配置WSL环境,然后您就能在MicrosoftStore上安装任意WSL发行版了,包括openEuler!目前openEuler20.03LTSSP2已经在MicrosoftStore上架,欢迎大家使用。配置WSL环境这是官方文档,在Windows10上安装WSLMicrosoftDocs,您也可以按照以下步骤来做:启动控制台使用管理员身份打开PoweShell,您可以按下Win+X,点击“WindowsPowerShell(管理员)”。请注意,请不要点击“WindowsPowerShell”,一定要点击带有(管理员)后...
2022-07-28 16:57:19 1.1w浏览 0点赞 0回复 0收藏