精彩博客

2020 openEuler 高校开发者大赛,拥抱开源,共筑社区

随着开源理念在国内软件行业的普及与传播,开源被越来越多的企业与开发者所选择。据中国信息通信研究院发布的《开源生态白皮书(2020年)》显示,我国 87.4% 的企业正在使用开源技术。 国家发改委等 13 部门在今年 7 月公布的《关于支持新业态新模式健康发展 激活消费市场带动扩大就业的意见》中提出,需加快推进产业数字化转型,壮大实体经济新动能,鼓励发展开源社区,支持开放软件源代码、硬件设计和应用服务。 开源,正变得越...

2020/11/16 19:01
1W
3
StratoVirt 的 virtio 设备模拟是如何实现的

virtio 是一种通用的半虚拟化的 I/O 通信协议,提供了一套前后端 I/O 通信的的框架协议和编程接口。根据该协议实现的设备通过前后端的配合,相比全模拟设备可以大幅减少陷入陷出以及内存拷贝的次数,使 guest 获得高效的 I/O 性能。作为目前虚拟化标准的通用协议规范,经历了 0.95、1.0、1.1 三个版本的演进。根据 0.95 版本实现的称为传统 virtio 设备,1.0 版本修改了一些 PCI 配置空间的访问方式和 virtioqueue 的优化和特定...

03/08 18:05
1K
0
openEuler网络配置+换源+桌面环境ukui等基本环境部署

镜像下载、域名解析、时间同步请点击[ 阿里云开源镜像站](https://developer.aliyun.com/mirror/?utm_content=g_1000303593) ## 1.网络配置 你可以选择查看官方文档进行配置:[配置网络 (openeuler.org)](https://docs.openeuler.org/zh/docs/21.03/docs/Administration/%E9%85%8D%E7%BD%AE%E7%BD%91%E7%BB%9C.html) > 接下来的操作基本都需要root权限,所以直接使用root用户登录。 先ping下百度,如出现下面情况,进行网络配置...

03/21 10:53
397
0
StratoVirt 的中断处理是如何实现的?

中断是外部设备向操作系统发起请求,打断 CPU 正在执行的任务,转而处理特殊事件的操作。设备并不能直接连接到 CPU,而是统一连接到中断控制器上,由中断控制器管理和分发设备中断。为了模拟一个完整的操作系统,虚拟化层也必须完成设备中断的模拟。虚拟机的中断控制器通过 VMM 创建,VMM 可以利用虚拟机的中断控制器向其注入中断。 在 x86_64 架构下,中断控制器包括 PIC 和 APIC 两种类型。PIC 控制器通过两块 Intel 8259 芯片...

01/25 21:01
4K
0
StratoVirt 基于 Rust 的 balloon 功能实践

StratoVirt 是计算产业中面向云数据中心的企业级虚拟化 VMM,实现了一套架构统一支持虚拟机、容器、Serverless 三种场景。StratoVirt 在轻量低噪、软硬协同、Rust 语言级安全等方面具备关键技术竞争优势。 背景介绍: 通常,在同一台服务器上存在着不同的用户,而多数用户对内存的使用情况是一种间断性的使用。也就是说用户对内存的使用率并不是很高。在服务器这种多用户的场景中,如果很多个用户对于内存的使用率都不高的话,那...

2021/12/14 20:53
1.7K
0
openEuler结合ebpf提升ServiceMesh服务体验的探索

服务网格的前世今生 早期的微服务架构上存在着服务发现、负载均衡、授权认证等各种各样的难题与挑战。起初微服务践行者们大多自己实现这么一套分布式通信系统来应对这些挑战,但这无疑造成了业务功能的冗余,解决此问题的方法就是将共有的分布式系统通信代码提取出来设计成一套框架,以框架库的方式供程序调用。但这个看似完美的方法却存在着几个致命的弱点: 框架大部分对业务来说是侵入式修改,需要开发者学习如何使用框架 框架...

2021/12/20 19:15
2.2K
0
StratoVirt vCPU管理Rust线程同步的实现

StratoVirt是开源在openEuler社区的轻量级虚拟化平台,具备轻量低噪、强安全性的行业竞争力。 StratoVirt进程运行在用户态,在虚拟机启动之前,StratoVirt会完成启动之前的准备工作,包括虚拟机内存的初始化、CPU寄存器初始化、设备初始化等,启动,CPU寄存器初始化和虚拟机在运行过程中vCPU陷出事件的处理,都是由StratoVirt的vCPU管理模块CPU完成。如下是StratoVirt中vCPU管理模块的组成,以及其在StratoVirt中的位置。 stra...

2021/11/30 18:00
2.4K
0
StratoVirt地址空间管理-基于Rust的实现与优化

StratoVirt 是开源在 openEuler 社区的轻量级虚拟化平台,具备轻量低噪、强安全性的行业竞争力。StratoVirt 进程运行在用户态,在虚拟机启动之前, StratoVirt 会完成启动之前的准备工作,包括虚拟机内存初始化、CPU 寄存器初始化、设备初始化等。其中,内存初始化工作和虚拟机的地址空间管理, 都是由 StratoVirt 的地址空间管理模块AddressSpace完成。如下是 StratoVirt 地址空间管理模块的组成,以及其在 StratoVirt 中的位置...

2021/11/25 18:00
8.4K
0
StratoVirt vCPU管理Rust线程同步的实现

StratoVirt是开源在openEuler社区的轻量级虚拟化平台,具备轻量低噪、强安全性的行业竞争力。 StratoVirt进程运行在用户态,在虚拟机启动之前,StratoVirt会完成启动之前的准备工作,包括虚拟机内存的初始化、CPU寄存器初始化、设备初始化等,启动,CPU寄存器初始化和虚拟机在运行过程中vCPU陷出事件的处理,都是由StratoVirt的vCPU管理模块CPU完成。如下是StratoVirt中vCPU管理模块的组成,以及其在StratoVirt中的位置。 stra...

2021/11/22 17:55
7.2K
0
倪光南院士:欧拉与鸿蒙协同发展构建未来操作系统新生态

近年来,产业界在国家政策方针的指导下,在相关部门的带领下,通过产业链协同共建,通过开源开放共享的方式,打通操作系统产业“政产研学用”各环节,形成了有效合力,极大地促进了我国操作系统产业的跨越式发展。 “欧拉和鸿蒙两大操作系统相继开源。日前,在操作系统产业峰会 2021 上,华为携手社区全体伙伴共同将欧拉开源操作系统(openEuler,简称‘欧拉’)正式捐赠给开放原子开源基金会。”中国工程院院士倪光南表示,这是我...

2021/11/23 17:55
2.5K
0
StratoVirt:下一代轻量级虚拟化VMM

StratoVirt 是什么 Strato,取自 stratosphere,意指地球大气层中的平流层,大气层可以保护地球不受外界环境侵害,而平流层则是大气层中最稳定的一层;类似的,虚拟化技术是操作系统平台之上的隔离层,既能保护操作系统平台不受上层恶意应用的破坏,又能为正常应用提供稳定可靠的运行环境;以 Strato 入名,寓意为保护 openEuler 平台上业务平稳运行的轻薄保护层。同时,Strato 也承载了项目的愿景与未来:轻量、灵活、 安全和完...

2021/10/20 22:25
1.2W
2
529个项目结项,暑期2021开始发奖金啦!

109 个开源社区参与; 877 个项目任务上线; 1126 名申请学生,1814 份申请,681 名学生中选; 447 所高校学生参与,分布在全球 20 个国家; 529 个项目被完成并通过结项; …… 暑期 2021 进入圆满收官阶段,在近 1 年的时间里,汇聚了全球众多爱好开源的小伙伴,交出一张不斐的成绩单。结项奖金的发放工作现已启动,各位通过结项审核的同学 11 月起将会陆续收到结项奖金和结项证书。 开源项目百花齐放 开源软件供应链点亮计划...

2021/11/01 10:04
2.2K
0
使用 NMT 和 pmap 解决 JVM 资源泄漏问题

编者按:笔者使用 JDK 自带的内存跟踪工具 NMT 和 Linux 自带的 pmap 解决了一个非常典型的资源泄漏问题。这个资源泄漏是由于 Java 程序员不正确地使用 Java API 导致的,使用 Files.list 打开的文件描述符必须关闭。本案例一方面介绍了怎么使用 NMT 解决 JVM 资源泄漏问题,如果读者遇到类似问题,可以尝试用 NMT 来解决;另一方面也提醒 Java 开发人员使用 Java API 时需要必须弄清楚 API 使用规范,希望大家通过这个案例有所...

2021/09/07 17:58
8.4K
1
看看毕昇 JDK 团队是如何解决 JVM 中 CMS 的 Crash

编者按:笔者遇到一个非常典型 JVM 架构相关问题,在 x86 正常运行的应用,在 aarch64 环境上低概率偶现 JVM 崩溃。这是一个典型的 JVM 内部 bug 引发的问题。通过分析最终定位到 CMS 代码存在 bug,导致 JVM 在弱内存模型的平台上 Crash。在分析过程中,涉及到 CMS 垃圾回收原理、内存屏障、对象头、以及 ParNew 并行回收算法中多个线程竞争处理的相关技术。笔者发现并修复了该问题,并推送到上游社区中。毕昇 JDK 发布的所有版...

2021/08/17 18:00
1W
3
JNI 中错误的信号处理导致 JVM 崩溃问题分析

编者按:JNI 是 Java 和 C 语言交互的主要手段,要想做好 JNI 的编程并不容易,需要了解 JVM 内部机理才能避免一些错误。本文分析 Cassandra 使用 JNI 本地库导致 JVM 崩溃的一个案例,最后定位问题根源是信号的错误处理(一些 C 编程人员经常会截获信号,做一些额外的处理),该案例提示 JNI 编程时不要随意截获信号处理。 现象 在使用 Cassandra 时遇到运行时多个位置都有发生 crash 现象,并且没有 hs_err 文件生成,这里列举...

2021/08/10 18:00
6.4K
1
如何向欧拉操作系统社区提交一个好 PR?

什么是 PR?借用知乎上的一个回答:用类比的方法来解释一下 pull reqeust。想想我们中学考试,老师改卷的场景吧。你做的试卷就像仓库,你的试卷肯定会有很多错误,就相当于程序里的 bug。老师把你的试卷拿过来,相当于先 fork。在你的卷子上做一些修改批注,相当于 git commit。最后把改好的试卷给你,相当于发 pull request,你拿到试卷重新改正错误,相当于 merge。 pull request 简称为 PR,在不同的系统中 PR 有不同的名字,...

2021/08/02 18:00
811
0
JDK 从8升级到11,使用 G1 GC,HBase 性能下降近20%。JDK 到底干了什么?

编者按:笔者在 HBase 业务场景中尝试将 JDK 从 8 升级到 11,使用 G1 GC 作为垃圾回收器,但是性能下降 20%。到底是什么导致了性能衰退?又该如何定位解决?本文介绍如果通过使用 JFR、火焰图等工具确定问题,最后通过版本逐一验证找到了引起性能问题的代码。在毕昇 JDK 中率先修复问题最后将修复推送到上游社区中。希望通过本文的介绍让读者了解到如何解决大版本升级中遇到的性能问题;同时也提醒 Java 开发者要正确地使用参数...

2021/08/03 18:00
2.9W
21
一个 JVM 解释器 bug 在 AArch64 平台导致应用崩溃的问题分析

编者按:笔者遇到一个非常典型的问题,应用在 X86 正常运行,在 AArch64 上 JVM 就会崩溃。这个典型的 JVM 内部问题。笔者通过分析最终定位到是由于 JVM 中模板解释器代码存在 bug 导致在弱内存模型的平台上 Crash。在分析过程中,涉及到非常多的 JVM 内部知识,比如对象头、GC 复制算法操作、CAS 操作、字节码执行、内存序等,希望对读者有所帮助。本文介绍了一般分析 JVM crash 的方法,并且深入介绍了为什么在 aarch64 平台上...

2021/07/28 18:00
1W
4
Java Flight Recorder - 事件机制详解

编者按:Java Flight Recorder(简称为JFR)曾经是 Oracle JDK 商业版的附属组件,在 JDK 11 中正式开源,后又被移植到 JDK8 中。JFR对应用的侵入性很小,同时又能提供应用运行时相对准确和丰富的信息;合理使用该工具可以极大地提高工作效率。本文剖析JFR的事件机制,希望能帮助大家从原理上理解 JFR ,进而能正确使用 JFR。 本篇文章中的源码大部分来自 openjdk8u262; 本文出发点是梳理 JFR 的事件机制,侧重点在于理解而非应...

2021/07/20 18:00
8.4K
0
JVM 锁 bug 导致 G1 GC 挂起问题分析和解决【毕昇JDK技术剖析 · 第 2 期】

编者按:笔者在 AArch64 中遇到一个 G1 GC 挂起,CPU 利用率高达 300%的案例。经过分析发现问题是由 JVM 的锁机制导致,该问题根因是并发编程中没有正确理解内存序导致。本文着重介绍 JVM 中 Monitor 的基本原理,同时演示了在什么情况下会触发该问题。希望通过本文的分析,读者能够了解到内存序对性能、正确性的影响,在并发编程时更加仔细。 现象 本案例是一个典型的弱内存模型案例,大致的现象就是 AArch64 平台上,业务挂死...

2021/07/13 18:14
1.1W
1

没有更多内容

加载失败,请刷新页面

我把整个研发中台拆分过程的一些心得总结

背景在21年,中台拆分在21年,以下为中台拆分的过程心得,带有一定的主观,偏向于中小团队中台建设参考(这里的中小团队指3-100人的团队),对于大型团队不太适用,毕竟大型团队人中/技术充足...

昨天 20:07
5.4K
3
字节跳动开源 Go HTTP 框架 Hertz 设计实践

前言 Hertz 是字节跳动服务框架团队研发的超大规模的企业级微服务 HTTP 框架,具有高易用性、易扩展、低时延等特点。在经过了字节跳动内部一年多的使用和迭代,如今已在 CloudWeGo 正式开源。...

06/22 13:50
8.8K
1
得物App数据模拟平台的探索和实践

原创|得物技术-凌遥 导读 Mock是一个接口编辑模拟工具,可以快速手动或者基于YAPI创建Mock接口模拟数据调试,同时支持场景,场景组的快速切换,方便在开发期和测试阶段试验不同数据返回的U...

06/22 10:56
6.1K
0
记mysql-connector-java:8.0.28的bug排查,你可能也踩坑了

前言 如标题,最终查明问题是因为 mysql-connector-java:8.0.28 的一个 bug 导致的。但是在真相未浮出之前,整个问题可谓扑朔迷离,博主好久没有排查过如此得劲的 bug ,随着一层层的 debug ...

06/21 11:58
1.8W
9
百度交易中台之钱包系统架构浅析

导读:百度APP内含有现金、活动、虚拟等多类资产信息,分布于百度APP内各个业务线中,用户回访信息难度较高,且用户对百度资产认知度不高。我的钱包建立后,汇聚百度APP内所有用户资产信息,...

06/21 11:30
1W
4
剖析 SPI 在 Spring 中的应用

vivo 互联网服务器团队 - Ma Jian 一、概述 SPI(Service Provider Interface),是Java内置的一种服务提供发现机制,可以用来提高框架的扩展性,主要用于框架的开发中,比如Dubbo,不同框架...

06/21 09:20
6.6K
4
前端自动化构建之Gulp

前端自动化构建之Gulp 本篇文章的核心是介绍一款强大的任务流工具Gulp,之所以题目叫做“前端自动化构建之Gulp”,是因为Gulp本身是使用JS编写的运行在Node环境的一个npm包,并且大部分开发者...

06/18 12:41
6.4K
2
掘地三尺搞定 Redis 与 MySQL 数据一致性问题

Redis 拥有高性能的数据读写功能,被我们广泛用在缓存场景,一是能提高业务系统的性能,二是为数据库抵挡了高并发的流量请求,点我 -> 解密 Redis 为什么这么快的秘密。 把 Redis 作为缓存组...

06/17 16:12
1.2W
7
系统困境与软件复杂度,为什么我们的系统会如此复杂

作者:聂晓龙(率鸽) 读 A Philosophy of Software Design 有感,软件设计与架构复杂度,你是战术龙卷风吗? 前言 有一天,一个医生和一个土木工程师在一起争论“谁是世界上最古老的职业”。...

06/17 15:50
1.4W
15
基于 Prometheus + Grafana 实现 Nexus 监控观测

前言 Nexus 是开源的 Maven 私服仓库,同时 Nexus 还支持 Npm 、 .Net、Golang 、Python 等开发语言的包管理。Nexus 也是我们重度使用的一个应用,Nexus 保存着 Tap 各开发组的代码构建产物。...

06/16 18:21
9.1K
1
一种简单的架构设计逻辑|得物技术

1 背景 技术方案设计和评审是版本迭代的一个重要环节,一般情况下版本迭代交付,技术方案设计在2-3天,颗粒度大的需求或者独立项目,这一个环节的时间会适度拉长,但是整体时间还是比较紧凑。...

06/15 15:35
1.4W
10
kLoop:直通 Linux 内核的高性能 asyncio

本文适合有一定编程基础的同学阅读,但不要求有任何专业方向的经验。写作目的,一是撺掇各路英豪一起做开源,二是记录一下新项目的选型设计和概念验证过程。全文小一万字(知乎那个字数统计…...

06/12 04:24
1.2W
9
Cube 技术解读 | Cube 渲染设计的前世今生

作者:何瑾(潇珺) 本文为《Cube 技术解读》系列第四篇文章,往期文章欢迎大家回顾。 《Cube 技术解读 | Cube 小程序技术详解》 《Cube 技术解读 | 支付宝新一代动态化技术架构与选型综述》 ...

06/10 15:19
7.1K
1
618 大促来袭,浅谈如何做好大促备战

作者:泮圣伟(十眠) 如何有效利用云产品做好我们的业务大促备战,这是一个大家都比较关心的问题。今天趁着 618 大促来袭前,谈一谈我们所积累的最佳实践。 点击下方链接,立即查看视频讲解...

06/09 14:44
6.1K
2
Android对so体积优化的探索与实践

减小应用安装包的体积,对提升用户体验和下载转化率都大有益处。本文将结合美团平台的实践经验,分享 so 体积优化的思路、收益,以及工程实践中的注意事项。本文将先从 so 文件格式讲起,结合...

06/09 12:06
6.4K
0
淘宝Native研发模式的演进与思考 | DX研发模式

DX全称DinamicX,目前是在淘宝乃至整个阿里集团内广泛使用的Native动态化方案,核心优势是性能和稳定性。过去几年一直有其他淘宝/集团的外部文章中有涉及到DX,但DX一直没有对外做过完整介绍...

06/07 16:51
9K
1
React Native 资源更新增量包的优化实践

本文首发于微信公众号“Shopee技术团队” 。 作者:Pei,来自 Shopee 商家服务前端团队。 1. 背景 Shopee 的许多手机应用是原生与 React Native(下文简称 “RN”)的混合(hybrid)应用。在...

06/06 17:37
4.8K
0
实时数据湖在字节跳动的实践

对实时数据湖的解读 数据湖的概念是比较宽泛的,不同的人可能有着不同的解读。这个名词诞生以来,在不同的阶段被赋予了不同的含义。 数据湖的概念最早是在 Hadoop World 大会上提出的。当时的...

06/06 11:48
9.9K
0
Golang 常见设计模式之单例模式

之前我们已经看过了 Golang 常见设计模式中的装饰和选项模式,今天要看的是 Golang 设计模式里最简单的单例模式。单例模式的作用是确保无论对象被实例化多少次,全局都只有一个实例存在。根据...

06/01 10:25
7.8K
3
3000帧动画图解MySQL为什么需要binlog、redo log和undo log

> 全文建立在MySQL的存储引擎为InnoDB的基础上 先看一条SQL如何入库的: 这是一条很简单的更新SQL,从MySQL服务端接收到SQL到落盘,先后经过了MySQL Server层和InnoDB存储引擎。 Server层就像...

05/31 21:58
2W
25

没有更多内容

加载失败,请刷新页面

返回顶部
顶部
返回顶部
顶部