InfraPub 为您找到相关结果 628

Go 1.16 即将发布,这些变更你需要知道

slice 的扩容条件是 len,在最新的中,已经改为了以 cap 属性作为基准: // src/runtime/slice.go if cap > doublecap { newcap = cap } else { // 这是以前的:if old.len < 1024 { // 下面是 Go1.16rc1 的 if old.cap < 1024 { newcap = doublecap } 以官方的 test case 为例: func main() { const N = 1024 var a [N]int x := cap(append(a[:N-1:N], 9, 9)) y := cap(append(a[:N:N], 9)) println(cap(x), cap(y...阅读全文

博文 2021-02-17 08:52:12 CSDN博客

Redis 命令、特性介绍与性能调优

。 但如果一个事务中的命令有非语法类的(比如对String执行HSET操作),无论客户端驱动还是Redis都无法在真正执行这条命令之前发现,所以事务中的所有命令仍然会被依次执行。在这种情况下,会出现一个事务中部分命令成功部分命令失败的情况,然而与RDBMS不同,Redis不提供事务回滚的功能,所以只能通过其他方法进行数据的回滚。 通过事务实现CAS Redis提供了WATCH命令与事务搭配使用,实现CAS乐观锁的机制。 假设要实现将某个商品的状态改为已售: if(exec(HGET stock:1001 state) == "in stock") exec(HSET stock:1001 state "sold"); 这一伪执行时,无法确保并发安全性,有可能多个客户端都获取到了”in...阅读全文

博文 2018-10-27 10:37:55 debian.cn

Ubuntu 20.04 LTS 时间表,4 月 23 日发布稳定版

界面中不会发生其它更新。随后,文档处理也将开始,包括最新的屏幕截图。 3 月 26 日:冻结文档字符串 完成所有特性和用户界面更新之后,文档中将停止创建和修改字符串。如果在稍后阶段需要更改字符串,则在获得团队批准的情况下才可以添加。 4 月 2 日:测试版冻结 开发人员在 Ubuntu 正式发布之前体验 Ubuntu 测试版本并提出 bug 或修复建议。 4 月 9 日:内核冻结 内核冻结是内核更新的最后期限。 4 月 16 日:最终冻结 最终冻结是最终版本的倒数第二个阶段,团队确认所有修复。 4 月 23 日:最终稳定版本 正式推出最终稳定版本。 不过像我们此前报导过的里程碑每日构建 Current 版本的开始出现则不列在此时间表中。 相关链接 Ubuntu 的下载地址:点击下载...阅读全文

博文 2020-01-25 10:40:19 debian.cn

Debian 9.3 Stretch 安装镜像ISO文件下载

最新安全更新和修复。但是,如果现有用户想要更新其安装,则无需下载它们。 要从 Debian GNU/Linux 9.2升级到9.3,只需打开终端并运行“sudo apt-get update && sudo apt-get dist-upgrade”命令。对于新的部署,您需要为相应的体系结构下载 Debian GNU/Linux 9.3 “Stretch” ISO,安装后不需要额外的下载。 下载Debian GNU/Linux 9.3安装映像,以及Debian GNU/Linux 9.3 GNOME Live,Debian GNU/Linux 9.3 KDE Live,Debian GNU/Linux 9.3 Xfce Live,Debian GNU / Linux 9.3 LXDE...阅读全文

谷歌公开了内部管理Infra层的两个工具的Paper

析的中间发生了,系统仅仅发送了一半配置。这时,“因缺失而关闭”会对生产造成严重破坏:想象一下,自动化地删除了数据库! 为了处理turndown,我们要求在实现下架给定asset类型之前要有额外的安全保证。然后,我们要求turndown的显式信号:asset上turndown的额外插件。虽然这个方案不完美——管理插件有点麻烦——但它避免了大量意外的turndown。 — 11 — 使用 使用Prodspec和Annealing的难度是我们面临的最大挑战。切换到基于intent的actuation要求思想的改变,这需要时间。随着我们发展到现在,使用不是一个问题,至少在技术栈的较低层。 但是,现有服务的初始建模可能很困难。这项工作通常需要调整复杂的SoT,它们可能还不包含所有必要的信息...阅读全文

博文 2023-01-08 11:23:20 CSDN博客

Redis 6.0.0 GA已正式发布

Redis 6 是有史以来改变最大的 Redis版本,因此即使稳定,也要小心处理,并在投入生产之前对其进行测试,以进行工作量测试。到目前为止,我们从未发现重大问题,但请务必小心。在收集报告时,我们将准备尽快发布Redis 6.0.1。 变化如下:除了稳定性之外,RC1和今天之间还有什么变化? 1. 在某些方面对客户端缓存进行了重新设计,尤其是放弃了缓存插槽方法,而只使用键名。在分析了替方案之后,在其他Redis核心团队成员的帮助下,这种方法最终看起来更好。除此之外,尤其是“广播模式”,我相信它将成为该功能最流行的使用模式之一。 使用广播时,服务器不再尝试记住每个客户端请求的密钥。相反,客户端订阅密钥前缀:每当与该前缀匹配的密钥被修改时,它们就会收到通知。这意味着可广播更多消息(但仅适...阅读全文

博文 2020-05-01 09:15:09 debian.cn

Linux Kernel 5.10.8发布:解决Btrfs性能倒退问题

Linux Kernel 5.10 LTS 的第八个维护版本更新于今天正式发布,本次更新最值得关注的改进就是终于解决了 5.10 Btrfs 性能倒退的问题。在去年圣诞节的时候,Linux 5.10 就被反馈 Btrfs 出现了明显的性能倒退问题。例如简单解压一个 Linux 内核源.tar.zst 文件,可能需要花费数倍的时间。 虽然修复 Btrfs 性能倒退的补丁在去年年底就已经推出,但直到今天才整合到 mainline 上。而且,在即将到来的 Linux 5.11 上还将会对 Btrfs 进行大量的改进。 总体来说,Linux 5.10.8 的情况应该不。Btrfs 开发者 Josef Bacik 在该页面上评论道:“5.10+patch比普通的5.9快了很多,因为我的系列补丁更...阅读全文

博文 2021-01-18 08:00:03 debian.cn

英特尔放出Linux微代码以修复Meltdown和Spectre漏洞

近日,Intel发布了最新版本的Linux处理器微数据文件,而这个补丁文件能够修复Intel CPU中的Spectre以及Meltdown漏洞。广大用户可以使用微文件来修复操作系统中目前已知的Intel CPU安全漏洞,而无需在计算机中执行BIOS更新。 根据Intel微下载页面所提供的介绍,Intel此次发布了40种不同版本(针对Linux)的补丁,可适用于多款不同型号的Intel处理器。 下面给出的就是Intel官方网站列出的处理器支持型号。大家可以参考下列表格以及cpu-world.com网站上的CPU信息来寻找合适自己处理器的补丁版本。注意,下列表格中的CPU版本号为十六进制值(例如(06-3c-03:32)),你可以在cpu-world.com寻找到相匹配的处理器...阅读全文

博文 2018-01-17 23:26:58 debian.cn

架构师详解 Nginx 架构

引言:众所周知,Nginx 服务器是一个高性能的 Web 和反向理服务器。Nginx 在激烈的 Web 服务器竞争中依旧保持良好的发展势头,一度成为 Web 服务器市场的后期之秀,这一切跟 Nginx 的架构设计是分不开的。 一. Nginx 模块化设计 高度模块化的设计是 Nginx 的架构基础。Nginx 服务器被分解为多个模块,每个模块就是一个功能模块,只负责自身的功能,模块之间严格遵循“高内聚,低耦合”的原则。 核心模块 核心模块是 Nginx 服务器正常运行必不可少的模块,提供日志记录、配置文件解析、事件驱动机制、进程管理等核心功能。 标准 HTTP 模块 标准 HTTP 模块提供 HTTP 协议解析相关的功能,如:端口配置、网页编设置、HTTP 响应头设置等。 可选...阅读全文

博文 2018-05-01 23:10:47 debian.cn

Kubernetes常用命令大全(持续更新)

分析)对控制器和服务,node同样有效 kubectl describe pods xxxxpodsname --namespace=xxxnamespace 其他控制器类似吧,就是kubectl get 控制器 控制器具体名称 查看pod日志 kubectl logs $POD_NAME 查看pod变量 kubectl exec my-nginx-5j8ok -- printenv | grep SERVICE kubectl get cs #### 集群健康情况 kubectl cluster-info #### 集群核心组件运行情况 kubectl get namespaces #### 表空间名 kubectl version #### 版本 kubectl api...阅读全文

博文 2020-03-13 12:35:13 debian.cn

华为的 Linux 发行版 openEuler 可以使用了!

华为提供了一个基于 CentOS 的企业级 Linux 发行版 EulerOS,华为也发布了一个名为 openEuler 的 EulerOS 社区版。 openEuler 的源也一同发布了,源可以在 Gitee 找到。它有两个独立的库,一个用于存储源;另一个作为软件包的源,存储有助于构建该操作系统的软件包。 openEuler 基础架构团队分享了他们使源可用的经验: 我们现在很兴奋。很难想象我们会管理成千上万的仓库。为了确保它们能被成功地编译,我们要感谢所有参与贡献的人。 openEuler 是基于 CentOS 的 Linux 发行版 与 EulerOS 一样,openEuler OS 也是基于 CentOS,但华为技术有限公司为企业应用进一步开发了该操作系统...阅读全文

博文 2020-01-27 11:08:00 debian.cn

代码审计CodeQL

CodeQL是一个白盒源审计工具,它以一种非常新颖的方式组织与元数据,使研究人员能够“像查询数据库一样检索”,并发现其中的安全问题。 GitHub于去年收购了开发CodeQL的公司Semmel,并与其联合成立了GitHub Security Lab,Semmel在此前推出了面向开源社区和企业的源分析平台 LGTM,这个平台能够自动化的发现并预警GitHub上开源软件的安全问题,同时,与CodeQL一样对开源社区与开发者保持免费。...阅读全文

分布式存储系统 Ceph 10.2.7 发布

Ceph v10.2.7 发布了。Ceph 是加州大学 Santa Cruz 分校的 Sage Weil(DreamHost 的联合创始人)专为博士论文设计的新一自由软件分布式文件系统。自 2007 年毕业之后,Sage 开始全职投入到 Ceph 开 发之中,使其能适用于生产环境。Ceph 的主要目标是设计成基于 POSIX 的没有单点故障的分布式文件系统,使数据能容和无缝的复制。 该版本更新日志尚未找到,了解更多请查看 提交记录 或关注 官方博客 。 下载地址 Source code (zip) Source code (tar.gz)...阅读全文

字节跳动开源微服务中间件 CloudWeGo - OSCHINA

9 月 8 日,字节跳动正式宣布开源 CloudWeGo。这是一套以 Go 语言为核心、专注于微服务通信与治理的中间件集合,具有高性能、可扩展、高可靠的特点。 据介绍,作为项目维护方,字节跳动基础架构团队已推进项目以 CloudWeGo 开源库为主进行迭,未来团队将坚持内外维护一套,统一迭演进,并逐步分享更多内部微服务最佳实践。 项目地址:https://github.com/cloudwego 项目官网:www.cloudwego.io CloudWeGo 第一批开源了四个项目,以 RPC 框架 Kitex 和网络库 Netpoll 为主。 Kitex Kitex 是一个 Golang 微服务 RPC 框架,具有高性能、强可扩展的特点。 字节跳动使用 Golang 作为主要业务开...阅读全文

博文 2021-09-09 13:56:42 中文开源技术交流社区

Go 语言的大版本更新:Go 2.0 安排上了

提案包括更好的处理和泛型,而它们的草案已在今年的 GopherCon 大会上发布,等待更多的探索发展。至于剩余的提案,官方提到,他们不希望过度影响数百万 Go 开发者以及现在的 Go ,更不想冒着分裂生态系统的风险去改版 Go 2,因此 Go 2 无法做出太多变更,每一个变更都需要仔细选择。为此,这些提案都将使用新的提案评估流程来决定去留与发展。 提案评估流程 提案评估流程旨在收集对少数选定提案的反馈意见,以作出最终决定。这个过程或多或少会与发布周期并行进行,包括以下步骤: 提案选择:Go 开发团队选择少量看起来值得考虑接受的 Go 2 提案,但尚未做出最终决定。 提案反馈:Go 开发团队将发布一份列出所选提案的公告,公告会向社区解释提案的初衷并收集反馈意见。在这个步骤中,社区可提出...阅读全文

玩转 AWS 的必备工具

再用AWS的建立镜像工具转化成一个订制的AMI。那样手动式建立的AMI全过程一般用时费力不易配备,并且容易。因此 大家必须一个专用工具来自动化技术全部建立AMI的全过程,与此同时叙述建立AMI的编能够储存而且根据再配备重复使用,来很大地优化和管理方法AMI建立的全过程。 Packer就这样一个自动化技术建立AMI的专用工具。如下图所显示,Packer根据JSON文件模板来叙述一个建立AMI的全过程,如何配置AMI都由编叙述。客户只需根据改动这一软件更新来随后实行一个简洁的指令来自动生成订制的AMI。那样订制AMI的全过程则能够直接进入版本号智能管理系统,便捷消费者查看和跟踪订制全过程的转变 。...阅读全文

玩转 AWS 的必备工具

AMI全过程一般用时费力不易配备,并且容易。因此 大家必须一个专用工具来自动化技术全部建立AMI的全过程,与此同时叙述建立AMI的编能够储存而且根据再配备重复使用,来很大地优化和管理方法AMI建立的全过程。 Packer就这样一个自动化技术建立AMI的专用工具。如下图所显示,Packer根据JSON文件模板来叙述一个建立AMI的全过程,如何配置AMI都由编叙述。客户只需根据改动这一软件更新来随后实行一个简洁的指令来自动生成订制的AMI。那样订制AMI的全过程则能够直接进入版本号智能管理系统,便捷消费者查看和跟踪订制全过程的转变 。...阅读全文

成功运作一个开源项目的15个要点

运作开源项目很容易。所有你需要做的就是让你的源可用和开源,对吧?嗯,也许。其实,开源项目是否成功取决于你对项目成功的定义。且不论你是怎么定义的,创建开源项目需要大量的工作。如果你已经有了目标,那么你需要准备投资。虽然开源软件是免费的,但它的创作却不是免费的:你需要往项目中投入时间和精力等宝贵资源。 那么,你如何投资这些资源? 1、定义成功 在考虑运作开源项目之前,你需要明确定义成功的意义。这里有很多因素要考虑。只将放入可公开访问的存储库就可以了,还是说你想对你的项目做更多?合作与采用对你来说重要吗?你只是为了打造作为一名软件开发者的声誉吗?你对成功的定义是否包括长期的可行性?你想围绕这个项目发展一个社区吗?你关心商业采用吗?你对这些问题的回答可以帮助你确定接下来你需要采纳的建议有多...阅读全文

博文 2017-11-08 09:58:28 debian.cn

AWS EKS 添加IAM用户角色 - SRE运维博客

的联合身份用户。如果使用不属于 aws-auth ConfigMap 的 IAM 用户或角色访问 Amazon EKS 控制台,则无法看到 Kubernetes 工作负载。也不会看到集群的概览详细信息。所以要向其他 AWS 用户或角色授予与集群交互的能力,您必须在 Kubernetes 中编辑 aws-auth ConfigMap。 因为部门有不通的角色,所以想基于不通的角色分配不同的权限,下面是记录添加一个对 EKS 只有只读权限的 AIM 用户。 {{< notice info "注意:" >}} 如果您在运行 AWS 命令行界面 (AWS CLI) 命令时遇到,请确保您使用的是最新版的 AWS CLI。 {{< /notice >}} 为 IAM 用户或角色配置权限 要查找具有主要...阅读全文

博文 2022-12-19 21:15:27 博客园

域名与商标: 如何防止域名被仲裁

几率是相当高的。因此,在推销域名的时候,应尽量避免使用域名注册邮箱进行,而且还得保证你所使用的推销邮箱与你本人的关联性不强才行。同时,为迫使对方高价赎回,利用这类商标域名,建立一些会对商标产生负面影响的网站,就更不可取了。 如果一旦认定域名为“恶意抢注”,通行的作法是商标权利人胜诉。 二、盗用和模仿类域名 即平时所讲的TYPO域名和加前缀、加后缀的流量域名,在域名仲裁中也是及易被仲裁的类别。 这类域名由于与对应的商标高度相似,及易导至网络用户的混淆、认,实际上是淡化了原商标的知名度。这类域名会被定义为商标盗用类域名。它也有两个显著特点: 1、域名与商标(包括知名公司的名称、专有指标识)及为相似,客观上会造成他们混淆、认。2、商业使用。 第一个特点是显著的,大多数情况下,米农注册这类域名...阅读全文

博文 2019-01-18 14:59:59 debian.cn

五款流行开源的 HIDS 系统简单介绍

火墙等),OSSEC作为强大的日志分析引擎是一个不的选择。​后来的发行版增加了用于基于debian的系统的身份验证日志文件,以及用于分析(3.6.0)的非标准Sophos UTM时间戳,用于缩进日志的多行日志收集(3.5.0)以及对多行的其他升级。记录。2. Tripwire顾名思义,这是Tripwire开发的基于主机的免费开放源检测系统。该公司也提供商业解决方案,但我们将专注于开源HIDS。开源的Tripwire软件包仅在几乎所有Linux发行版上运行。它以确保数据完整性的强大功能而闻名,它可以帮助系统管理员检测对系统文件的更改,并在文件损坏或被篡改时通知他们。要将其安装在Linux主机上,只需使用apt-get或yum实用程序。在安装过程中,系统将要求您添加必需的密。最好选择一个...阅读全文

博文 2023-01-26 11:07:43 joseph

Linux 27周年:这27件有趣的事实你可能不知道

许多人认为10月5日是 Linux 系统的周年纪念日,因为这是 Linux 在1991年首次对外公布的时间。不过,你可能不知道的是,早在1991年8月25日,当年还是大学生的 Linus Torvalds 就向 comp.os.minix 新闻组的人透露了由于“业余爱好”他正在研究操作系统的消息。因此,该时间也被许多爱好者视为 Linux 的真正诞生日期。 为纪念 Linux 27 岁诞辰,OMG Ubuntu 列出了 27 个与 Linux 和 Linus Torvalds 相关的有趣事实。 1、截至 2018 年,Linux 内核已有 20,323,379 行。尽管近期有所减少,但庞大的量意味着 Linux 仍然是地球上(单个)最大的开源项目。 2、Linux 差点不叫这个名字...阅读全文

谷歌元老施密特隐退:传奇落幕 新篇开启

位。 另一个是对社交网络的犹豫,施密特曾坦言自己在谷歌最大的就是在社交网络兴起的时候没有及时参与。不过好在创始人佩奇接任 CEO 之后马上上线了 Google+,抢回了不少市场,但是即使如此,谷歌在这场战争中的缺席还是从反面帮助 Facebook 和 Twitter 等社交巨头崛起了。 最后一件事情当然就是 Android 了,大家都知道 Android 的创始人是 Andy Rubin,但是这个项目是谷歌三巨头中哪一个主导的呢?答案是接任施密特的佩奇,当年他花了5000万美元买下了 Android 项目,而这件事情施密特甚至都不知道,布林对 Android 也是没有多大的兴趣。 所以施密特虽然能够作为谷歌的润滑剂,但是他在创新能力、远见上的不足也非常明显,事实证明世界还是属于年轻人的...阅读全文

博文 2017-12-24 09:18:44 debian.cn

图解 Debian 系统通用安装教程

这篇文章我会尽可能详细地说明如何快速安装纯净的Debian新系统,需要懂一点vi编辑器的使用方法。 如果是新手,没用过 vim 编辑器也不用担心,我会尽量详细地说明使用方法。 首先在Debian官网上下载网络安装CD或者完整DVD镜像,DVD镜像只需DVD-1即可。如果你的网络环境不,推荐下载 netinst 包,通过网络安装 Debian 系统。 下载好镜像后做成U盘启动盘,从U盘启动开机。在引导界面选择Graphical install(图形化安装),进入安装过程,如图: 选择语言界面,选择中文吧, 提示虽然是好心,但是安装过程中我就见到一处乱还就是下面这个图上,直接选是,下一步。 区域选择,选择中国。 主机名,自己随便填吧。 域名可不填,直接下一步。 设置root密,自己设定好...阅读全文

博文 2017-07-13 12:52:56 debian.cn

Kotlin 一统天下?Kotlin/Native 支持 iOS 和 Web 开发

发行版)。该版本引入了一系列新功能,包括对多平台项目的实验性支持 —— 允许开发者在针对 JVM 和 JavaScript 的模块之间共享,以及多项对语言方面的改进 —— 包括支持在注释中使用数组字面量。更多关于 1.2 版本新功能的内容,点此查看。 此外,值得关注的就是协程这个特性了。虽然协程仍然被标记为实验性状态,但官方特意说明了这里“实验性”表的含义。官方表示协程已经完全准备好用于生产环境,他们也已使用协程进行开发,而且也没发现在使用当中出现任何重大问题。之所以仍保持实验性状态,是为了能够对 Kotlin 继续进行设计迭。根据目前的计划,Kotlin 1.3 将会删除协程的实验性状态。 Kotlin/Native 对 iOS 开发的支持 另外一个重大消息就是 Kotlin...阅读全文

博文 2017-11-05 19:28:14 debian.cn

Facebook 是如何进行大规模代码部署的

Facebook 高速发展的 2007 年到 2016 年,他们一天部署 3 次,cherry-pick 集齐成千上万个 commit;现在使用类似持续交付的方法,每个 commit 能自动部署到 production。公司里有很多员工、很多用户的好处:新让公司所有员工先用上,因为员工数足够多,能很快发现问题;然后让 2% 的访问量用上新,最后慢慢增加到 100% 的访问量。 不久前有篇关于缩短 Facebook 发布流程的文章,阐述了将投入生产的灵活方法。这篇文章着重讲述了他们在一年之内如何从“ cherry-picking ”升级到“ push-from-master ”策略。早些时候, Facebook 也分享了他们部署过程的细节。作者 Chuck Rossi 是...阅读全文

博文 2017-10-31 14:05:20 debian.cn

一位五年工作经验架构师的感悟

多,有 100 多个系统,很多业务概念。 老大说:不要好高骛远,我建议你结合当前的工作,一步步学习,以点带面。 刚进公司的时候,我不是很有自信,因为知道自己技术可能比很多大牛差距很大。同时,自己也是一个不太会表达的人(原来的老大也说过,我的软能力不行),整体上在初期感觉相对较闷。 日常工作就会把自己占得很满,怎么去学习?我的技术不行,就想去学,框架,支付宝的全部是开源的,所以我可以很简单通过 eclipse 直接查看框架的源,渐渐的,比很多人都了解框架,了解技术。我还会去狂公司的论坛,公司的 doc,这上面有框架设计相关的内容。所以,很多时候机会是很多的,关键是你想不想去去。 所以,不要好高骛远,脚踏实地,时刻保持饥饿感,积少成多。 开放心态,视野决定格局 12 年妻子怀孕,于是转...阅读全文

博文 2021-01-28 17:50:31 debian.cn

3个 Linux 命令让你看起来很忙:摸鱼的技巧

如果你看过谍战片、动作片或犯罪电影,你就会在脑海中勾勒出黑客坐在电脑屏幕前的样子:一行行快速移动的,大量的矩阵中的十六进制数字像雨水一样飞过。也许有一张世界地图,上面有一些发光点和一些快速更新的图表,也许还会有三维几何图形。如果可能的话,这一切还可以显示在多个显示器上面。 当然,我们这些技术人员很快意识到这完全是胡说八道。虽然我们中的许多人都有双显示器(或更多),但闪烁的数据通常与专注于工作这一目的背道而驰。编写、管理项目和管理系统与股票交易不同。我们遇到的大多数情况都需要我们对试图解决的问题进行大量思考,与利益相关者进行良好的沟通,进行一些研究以及组织信息,然后还有占工作量很少的快速打字。 但这并不意味着我们不想和电影中的黑客一样。有时,我们只是想让自己看起来“有效率”。 旁...阅读全文

博文 2019-09-28 15:48:43 debian.cn

Linux下多线程程序为什么消耗大量虚拟内存

] munmap(0x7f53d0000000, 13275136) = 0 [pid 19343] mmap(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f53d04a8000 Process 19495 attached 我检查了一下trace文件也没有发现大量内存mmap动作,即便是brk动作引起的内存增长也不大。于是感觉人生都没有方向了,然后怀疑是不是文件缓存把虚拟内存占掉了,注释掉了中所有读写日志的,虚拟内存依然增加,排除了这个可能。 灵光一现 后来,我开始减少thread的数量开始测试,在测试的时候偶然发现一个很奇怪的现象。那就是如果进程创建了一个线程并且在该...阅读全文

博文 2015-01-28 10:35:39 debian.cn

华为正式发布 openEuler 系商业发行版操作系统

3月27日,华为开发者大会2020以线上形式举行,华为云与计算BG总裁侯金龙在主题演讲中发布openEuler系商业发行版操作系统,首批参与的操作系统包括银河麒麟服务器操作系统V7.6,普华服务器操作系统V5.1(鲲鹏版)、深度欧拉V1.0以及傲徕服务器操作系统1.0。 IT之家此前报道过,今年1月份,openEuler开源社区(以下简称openEuler社区)正式开放源、镜像及开发测试环境,标志着openEuler社区开放运作迈出了坚实一步。作为主要筹备方,华为会逐步开放在ICT基础软件领域的技术积累,将操作系统、编译器/JDK等领域的基础平台能力开源至openEuler社区。 在openEuler社区,社区参与者可下载操作系统安装镜像或源,快速了解并掌握openEuler操作系...阅读全文

博文 2020-03-27 11:10:15 debian.cn

深入理解Golang之context

{} } 跟valueCtx类似,cancelCtx中也有一个context变量作为父节点;变量done表示一个channel,用来表示传递关闭信号;children表示一个map,存储了当前context节点下的子节点;err用于存储信息表示任务结束的原因。再来看一下cancelCtx实现的方法:func (c *cancelCtx) Done() <-chan struct{} { c.mu.Lock() if c.done == nil { c.done = make(chan struct{}) } d := c.done c.mu.Unlock() return d } func (c *cancelCtx) Err() error { c.mu.Lock() err := c.err...阅读全文

博文 2021-01-27 09:05:27 知乎

聊聊很重要的内核技术eBPF

在2018年的 Linux Plumber 大会上,eBPF成了亮点,有24个议题提到了 eBPF,可以预计eBPF会成为一大技术热点。 eBPF(Extended Berkeley Packet Filter) 的核心是驻留在 kernel 的高效虚拟机。最初的目的是高效网络过滤框架,前身是 BPF。 Linux kernel 3.18版本开始包含了eBPF,相对于 BPF 做了一些重要改进,首先是效率,这要归功于 JIB 编译 eBPF ;其次是应用范围,从网络报文扩展到一般事件处理;最后不再使用socket,使用map进行高效的数据存储。 根据以上的改进,内核开发人员在不到两年半的事件,做出了包括网络监控、限速和系统监控。目前eBPF可以分解为三个过程: 以字节的形式创建...阅读全文

博文 2020-08-16 11:08:44 debian.cn

Golang 中的 channel 通道详解

channel通道golang的并发模型是序列通信处理CSP(communicating sequential process)——使用通信来共享内存 ,避免goroutine因竞争共享内存频繁加锁产生的性能问题。基本数据结构golang中提供了一个特殊的类型channel实现goroutine之间的通信。channel类似于队列,先进先出。channel数据结构源在src/runtime/chan.go下。chan 使用 hchan 表示,它的传参与赋值始终都是指针形式,每个 hchan 对象表着一个 chan。hchan 中包含一个缓冲区 buf,它表示已经发送但是还未被接收的数据缓存。buf 的大小由创建 chan 时的参数来决定。qcount 表示当前缓冲区中有效数据的总量...阅读全文

osquery 4.1.0 发布,操作系统监控工具

osquery 是 SQL 驱动的分析和监控操作系统的工具,是操作系统分析框架,支持 OS X 和 Linux 系统。osquery 能帮助监控和分析低水平的操作系统,提供更直观的性能监控。 4.1.0 版本内容如下: New Features / Under the Hood improvements 还原扩展 SDK 和构建支持改进文档在整个库中添加更多的测试允许使用标志配置更多 Linux Audit 设置添加 logger_tls_max_lines 标志添加对 AWS Session Token 支持 Build 在所有平台上将 OpenSSL 升级到 1.0.2t在 Windows 和 MacOS 上使用 SQLite 3.29.0在 Windows 和 MacOS 上使用...阅读全文

博文 2019-11-07 10:14:24 debian.cn

Linux Kernel 5.10改进EXT4文件系统:随机覆盖性能提升10倍

在 Linux Kernel 5.10 中已经增加了对 EXT4 文件系统的更新,其中包括在 DAX/DIO 模式下大幅改进文件覆盖的效率。尤其是在运行英特尔 Optane DCPMM 存储的情况下,并行写入尤其是随机覆盖性能可以提升 10 倍以上,常规操作也能提升 2 倍以上。但是您必须使用 EXT4 iommap (例如在DAX / DIO模式下),并且此更改不会影响 EXT4 的常规操作。 另一项针对 EXT4 的重大改变是由谷歌 Harshad Shirwadkar 提交的 “fast commits”。fast commits 模式和在有序模式(挂载选项 data=ordered)运行的 EXT4 用户有关,在保持最小增量的情况下与 JBD2 日志共享的快速提交空间中重新...阅读全文

博文 2020-10-25 10:58:54 debian.cn

王垠:如何掌握所有的程序语言

了这里面的东西,每个程序员都应该可以做到这一点。嗯,但愿吧。 重视语言特性,而不是语言 很多人在乎自己或者别人是否“会”某种语言,对“发明”了某种语言的人倍加崇拜,为各种语言的孰优孰劣争得面红耳赤。这些问题对于我来说都是不存在的。虽然我写文章批评过不少语言的缺陷,在实际工作中我却很少跟人争论这些。如果有其它人在我身边争论,我甚至会戴上耳机,都懒得听他们说什么 为什么呢?我发现归根结底的原因,是因为我重视的是“语言特性”,而不是整个的“语言”。我能用任何语言写出不,就算再糟糕的语言也差不了多少。 任何一种“语言”,都是各种“语言特性”的组合。打个比方吧,一个程序语言就像一台电脑。它的牌子可能叫“联想”,或者“IBM”,或者“Dell”,或者“苹果”。那么,你可以说苹果一定比 IBM 好...阅读全文

博文 2017-07-10 10:13:17 debian.cn

Go 语言发布 2.x 计划,或将不完全向后兼容

论 Go 2 了。 开发团队表示,Go 语言如今的目标与 2007 年相同,就是希望使程序员更有效地管理两种规模:生产规模和开发规模,其中又主要针对的是与许多其他服务器交互的并发系统,和许多工程师协调的大型库。Go 2 的目标就是解决 Go 1 在规模化方面做的还不好的地方。 据 Russ 估算,目前全球的 Go 开发者至少有 50 万,这意味着有数百万个 Go 源文件和至少十亿行 Go 。那些程序员和源表了 Go 的成功,但同时也是对 Go 2 的主要约束。只有在回报非常巨大时,才能让开发者改变原有的旧习惯,学习新用法。Go 2 必须修正 Go 1 的问题,带动所有的 Go 开发者, 也就必须带上所有现有的 Go 源,不能让生态系统分裂。 如果把 Go 2 要增加的特性分...阅读全文

博文 2017-07-22 19:50:05 debian.cn

Golang常见的十大算法精简版

} /*** * go特有变量交换 */ func SwapGo(list []int, i, j int) { list[i],list[j]=list[j],list[i] } /*** * go变量高阶交换(不推荐,一般不好理解) */ func SwapGoAdvanced(list []int, i, j int) { list[i]=list[i]+list[j] list[j]=list[i]-list[j] list[i]=list[i]-list[j] } 运行排序方法 使用终端执行go get github.com/e9ab98e991ab/go-algorithm执行touch main.go执行vim main.go拷贝下方到main.go文件中wq保存后直接执行go run...阅读全文

博文 2019-09-05 09:31:10 debian.cn

2017年的Linux内核防护依然脆弱

"Linux 内核 “社区” 对待安全的优先级并不高,虽然经历了 2000 年的多次大规模漏洞利用事件但并没有让 Linus Torvalds 本人改变 "A bug is bug" 的哲学,由于 Linux 内核的安全问题逐渐影响到了 Android 和 IoT 设备,一次 华盛顿邮报的曝光促使了 KSPP(Linux 内核自防护项目)的成立。 KSPP 是由 Linux 基金会旗下的 CII(基础架构联盟)管理,其吸纳了来自诸多大厂商(Google, RedHat, Intel, ARM 等)的工程师进行联合工作,可惜的是两年的时间过去了,KSPP 大多时候只是在重复的抄袭 PaX/Grsecurity 的各种特性以获得各自雇主那里的 KPI 和 credit,各种混乱的合并到了...阅读全文

博文 2021-01-28 17:50:35 debian.cn

一位资深Java架构师的晋级心得

师之前,应当先成为Java工程师。熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的;池技术,什么对象池,连接池,线程池……Java反射技术,写框架必备的技术,但是有严重的性能问题,替方案java字节技术;nio,没什么好说的,值得注意的是"直接内存"的特点,使用场景;java多线程同步异步;java各种集合对象的实现原理,了解这些可以让你在解决问题时选择合适的数据结构,高效的解决问题 成为Java架构师,需要掌握哪些技能呢? 1.框架源分析 设计模式:Singleton单例模式,Factory工厂模式,Proxy理模式,Template模板模式,Prototype原型模式等Spring5:Spring提醒结构,IOC注入原理,AOP设...阅读全文

博文 2019-01-13 22:49:22 debian.cn

Debian 相比 Ubuntu 有哪些不同之处

非常易于使用。如果你的工作习惯与这些概念不一致,可能会强烈反对Ubuntu易于使用这一观点。 然而,虽然Ubuntu源自Debian,但两者的区别还是很明显。从安装和桌面,到程序包管理及社区,大家认为自己对于Ubuntu和Debian了解的情况可能是的,或者至少需要作一些严格限制――这一切使选择哪个发行版适合贵公司的业务战略显得非常困难。 安装方面的区别 眼下,你可以使用哪个发行版取决于拥有的硬件。Debian目前面向大约13种硬件架构:从标准的32位和64位英特尔架构到ARM和PowerPC架构,还支持另外两种正在开发的架构。相比之下,Ubuntu支持32位和64位版本这两大不同的计算机桌面环境,现正在为移动设备开发Ubuntu ARM版本。 要考虑的另一个方面是面向每个发行版的安装程...阅读全文

博文 2017-12-22 23:41:07 debian.cn

Golang Context 探究

在用 Golang 开发过程中,我们一定能在里很多函数或方法都会传递 context, 也会经常遇到这样的报 context deadline exceeded。你有想过或去探究过 context 到底是什么吗,为什么会遇到上述的报。在这里我们就分析一下 context 是什么及用途。 首选 Golang 中的 context 值得是 context.Context 接口,Golang 在 1.7 版本中引入标准库的接口。context 主要用来在 goroutine 之间传递上下文信息,包括:取消信号、截止时间、key-value 等。 Context 定义 Context 接口定义如下 1 2 3 4 5 6 7 8 9 10 type Context interface...阅读全文

博文 2021-02-25 09:27:27 lxkaka

为什么 Django 能持续统治 Python 开发世界

对于 Python 开发者来说,web 开发框架真可谓玲琅满目。然而 Django , 毋庸置疑的成为最受青睐的 web 框架。通过本篇博客,我来为大家讲解下为什么相比 Flask、Pyramid、Tornado、Bottle、Diesel、Pecan、Falcon 这些流行的 Python web 框架,Python 开发者更倾向于选择 Django。 再大肆宣扬Django之前,让我们简单了解一下web框架 Web框架是一个库,使开发人员更容易构建动态网站、Web应用程序和Web服务。 众所周知的是,每个网站都有一些通用的功能(如处理会话,数据验证等等),一些您每次创建网站时都需要编写的功能。 这使开发任务平淡乏味。 然而,使用Web框架可以让您每次创建网站都需要重新编写通用功能...阅读全文

博文 2017-07-21 14:15:11 debian.cn

十个增加 Linux Shell 脚本趣味的小工具

盘灯: setleds -D +num 关闭数字键盘灯: setleds -D -num -caps: 清除大写灯 +caps:打开大写灯 -scroll:清除滚动锁 +scroll:打开滚动锁 4. zenity 命令 这个命令可以显示GTK+的对话框,然后返回用户的输入。你可以用这个命令在脚本中显示信息,并要求用户输入信息。下面这段就是域名的whois查询: #!/bin/bash # Get domain name _zenity="/usr/bin/zenity" _out="/tmp/whois.output.$$" domain=$(${_zenity} --title "Enter domain" \ --entry --text "Enter the domain you...阅读全文

博文 2018-04-09 09:38:50 debian.cn

Ubuntu 20.04 LTS 正式版发布

,优麒麟。优麒麟由工信部、Canonica 和国防科技大学联合开发,整合了多个中国本土流行 Linux 应用。 Ubuntu 20.04 使用 Linux 5.4 内核,该版本具有内核锁定模式和 exFAT 支持等新特性。 内核锁定功能主要是为了防止 root 帐户篡改内核,从而在用户态进程和之间划清界限。启用该功能后,即便是 root 帐户也无法访问某些内核功能,从而保护操作系统免受受损的 root 帐户影响。 exFAT 文件系统则是 FAT32 的替者,它由微软开发,但是不仅用于 Windows 系统,目前 exFAT 在整个电子行业中都得到了广泛应用,特别是 SD 卡、USB 闪存驱动、数相机和 MP3 播放器中使用最为充分,你平时用这些电子产品的时候,多半就使用到了...阅读全文

博文 2020-04-24 01:58:26 debian.cn

Linux基金会宣布开放物联网ACRN管理程序

Linux基金会发布了其中一个开源项目ACRN的详细信息,这是一个专为物联网和嵌入式设备设计的管理程序。该项目得益于英特尔和工程的贡献,其目标是创建一个灵活小巧的虚拟机管理系统。通过基于Linux的服务操作系统,ACRN可以同时运行多个客户操作系统,使其成为许多场景的理想选。 Linux基金会表示,管理程序和设备模型是以“安全关键型工作负载”为基础构建的,并且设想ACRN将一些IoT工作负载整合到一个平台上。虽然该项目是作为强大而灵活的解决方案提供的,但嵌入式开发人员社区被邀请提供以进一步扩展和改进ACRN。 通过项目ACRN,嵌入式开发人员可以立即使用新的管理程序选项。 ACRN针对资源受限设备进行了优化,并将重点放在隔离安全关键型工作负载并给予他们优先考虑,使项目适用于许多物联...阅读全文

博文 2018-03-20 08:33:38 debian.cn

Node.js Vs. PHP:你应该选择哪一个

现在,Web开发公司和开发人员可以选择多种技术栈来构建Web应用程序。早期网络发展,不同的技术被用于前端和后端开发。但是,随着Node.js的发布,布局发生了变化,因为它允许开发人员使用 JavaScript 编写后端。这最终催生了MEAN(MongoDB + Express +AngularJS + NodeJS )堆栈 web 开发框架,从前端到后端甚至是数据库(MongoDB -JSON)都使用 JavaScript。在 Node.js 之前,Web 开发通常是在 PHP 的帮助下完成的,因为它很容易与 HTML 集成,帮助开发人员立即构建动态网站。在这篇文章中,我们将比较 Node.js 和 PHP,看哪一个最适合当前的行业需求。 PHP 和 Node.js 的基本区别在于...阅读全文

博文 2017-12-23 23:15:39 debian.cn

Kafka 3.3 使用 KRaft 共识协议替代 ZooKeeper

控制器故障转移接近瞬时。Kafka 社区计划在下一个版本(3.4)中弃用 ZooKeeper,然后在 4.0 版本中完全删除它。此外,Kafka 3.3 还提供了其他一些新特性,比如添加了与元数据日志处理相关的指标,允许用户为其他用户创建委托令牌,以及严格统一的粘性分区器,以缩短分区时间。对于 Kafka Streams,这个版本增加了源/接收器指标,如消费/生产吞吐量、暂停/恢复拓扑,并集成了 KStream transform()和 process()方法。Kafka Connect 增加了对源连接器的精确一次语义支持。原文链接: https://www.infoq.com/news/2022/10/apache-kafka-kraft/...阅读全文

Postgres 10 开发者新特性

。通过把来自不同列的数据关联起来,查询规划器(query planner)现在可以避免一些边缘情况,在那些边缘情况下,之前的Postgres版本会认为WHERE语句更强的选择性,并且会导致选择了计划从而拖慢执行时间。Postgres的这个改进在整个SQL世界中都是极具创新性的。 Postgres 10还对并行性进行了改进。开发者现在可以使用索引扫描(index scans)和仅索引扫描(index-only scans)、并行合并连接(merge joint)以及位图堆扫描。并行查询是通过不同的workers来实现的,因此在某些情况下,设置和分解的成本会超过并行化的好处。默认情况下,可以在大于8MB大小的表以及大于512KB的索引上启用并行表扫描(parallel table scan...阅读全文

博文 2017-12-30 11:46:16 debian.cn

Debian下安装搜狗拼音输入法

Linux上的中文输入法,基本上都比较原始,仿佛还停留在上个世纪。唯有搜狗还行。 简介 2013年12月,搜狗与Ubuntu Kylin团队开始合作开发“搜狗输入法Linux版”。经过五个月的合作,于2014年4月17日,正式发布了1.0版本。2015年10月16日更新至2.0版本。 搜狗输入法Linux版基于开源小企鹅输入法框架、开源Qimpanel面板以及搜狗输入法引擎开发。目前,我最看重的功能有: 智能输入,动态调频,动态组词 可自由导入的细胞词库 模糊音输入,智能纠 方便的中英文切换 长词联想 逗号句号翻页 皮肤替换 添加源安装 由于Debian官方是不支持搜狗输入法的,因此纯命令行操作,要先添加源。 如果没有apt-add-repository,先用sudo apt-get...阅读全文

博文 2021-01-28 17:50:16 debian.cn