新改进让Linux 5.10能更快地休眠以及恢复工作
休眠的通用电源管理代码中完成的。那些I/O存储性能较低的系统将看到更大的好处,Linux 5.10版本正在加紧准备,预计年底左右走向稳定版本。 关于休眠/恢复期间I/O请求批量化的更多细节,请参考电源管理linux-next内核补丁的更多资料。...阅读全文
休眠的通用电源管理代码中完成的。那些I/O存储性能较低的系统将看到更大的好处,Linux 5.10版本正在加紧准备,预计年底左右走向稳定版本。 关于休眠/恢复期间I/O请求批量化的更多细节,请参考电源管理linux-next内核补丁的更多资料。...阅读全文
在去年年初,SUSE 的开发者向 Linux 内核提交了一个 v2 补丁,该补丁将 ReiserFS 文件系统标记为已弃用,并将会在 2025 年从内核中正式删除它。删除的原因主要是过去十多年该文件系统都不再活跃,并且在现代内核的生产用例中也不太可能再使用。基于差不多的原因,日前开发者也开始着眼讨论 Journaled File-System(JFS)文件系统是否还应该在内核中继续保留的问题。内核开发者 Christoph Hellwig 在邮件列表中表示:不久前,我们已经弃用了 ReiserFS,并计划将其删除。看着 JFS 中的代码,我想知道我们是否也应该这样做。虽然 JFS 不像 ReiserFS 那么复杂,但它的使用率也很低,而且从未成为任何主要发行版中的默认文件系统。1990...阅读全文
中提供了一个内置选项,可通过启用它来显示网页完整 URL。 具体操作方式如下: 使用 Chrome 83 Canary 或更高版本;前往 chrome://flags 页面;加载 chrome://flags/#omnibox-context-menu-show-full-urls; 选择启用,然后重新启动浏览器;重新启动 Chrome 后,访问任意网站,在 Omnibox 中选择域,然后右键单击并选中 “Show URL” 选项,最后单击网页上的任何其他区域以恢复 URL 的默认状态。 不得不说这个设计看起来有点“蛋疼”,这效果和双击地址栏没多大差别吧?还是等Chrome 83 发布后看看效果。...阅读全文
ipset 是 iptables 的扩展,它允许你创建匹配整个地址集合的规则,而不像普通的 iptables 链只能单IP或单网段匹配。 ipset 规则中的IP地址集合存储在带索引的数据结构中,这种结构即时集合比较大也可以进行高效的查找,从而减少系统资源占用或网络拥塞。IPset 也具备一些新防火墙设计方法,并简化了配置。ipset 的官网:http://ipset.netfilter.org 下面我们以一个实际场景为样例,介绍如何在Debian系统中,使用 ipset 将单个国家的左右 IP段 加入黑名单。 #### 准备工作:安装 ipset、或者网段列表 sudo apt-get -y install ipset wget -P . http://www.ipdeny.com...阅读全文
新的树莓派操作系统 Linux Raspbian XP Professional 现已可用,该操作系统专门针对 Raspberry Pi 4 设计。 Raspbian XP Professional 是一个仿 XP 外观的 Linux 系统。尽管用户不能在树莓派上拥有完整的 Windows XP 体验,但是该操作系统所提供的用户体验已相当接近 Windows XP。 Raspbian XP Professional 附带许多功能,可使人联想到旧的 XP OS。它具有有效的“开始”菜单,顶部带有可用的搜索栏。所有的菜单、图标和任务栏都具有经典的气泡 XP。其甚至包括完整的 LibreOffice 套件来代替 Microsoft Office,以满足办公要求。 不过,尽管该操作系统看起来像...阅读全文
随着互联网的高速发展,云存储技术已经相当成熟了,网盘成了人们工作和学习中不可缺少的部分。尽管如此,离线存储技术也无法被取代,毕竟在没有网络的情况下,离线存储才是最佳的解决方案。 而目前使用的最多的且最方便的离线存储设备就是U盘,凭借小巧便携的体型设计赢得了广大用户的喜爱,但随着数据的日益膨胀,小小的U盘无论是在读写速度还是在容量上已经无法满足我们日益增长的存储需求。 而今天,金士顿在CES大会上展示了一款离线存储设备——HyperX Savage EXO外置SSD。HyperX Savage EXO外置SSD外壳采用聚碳酸酯打造,存储颗粒为3D TLC NAND闪存,拥有480GB和960GB两种容量可供选择。 外置SSD的接口为USB3.1 Gen 2,带宽高达10Gbps,实际连续读写...阅读全文
力,在这些服务器上他们下载并安装了一个合法的 Monero 挖掘软件 XMRig 的定制版本。 攻击者还修改了本地 cron 作业,每三分钟触发一次 “watchd0g” Bash 脚本,该脚本检查 Monero 矿工是否仍处于活动状态,并在 XMRig 的进程停止时重新启动它。 攻击者使用这种简单的操作模式收获了大约 320 XMR(75,000 美元)。所有受感染的服务器都运行 Linux,大多数受害者位于日本(12%),中国(10%),台湾(10%)和美国(9%)。 由于 Cacti 系统通常设计为运行并密切关注内部网络,因此不应在线访问此类实例。...阅读全文
Planet 3DNow上关于AMD新处理器代号和路线图的文章引发广泛关注,提供了很多此前不曾为人了解的信息。其中,ThreadRipper产品线第三代产品代号Castle Peak,第四代产品代号Genesis,这是位于华盛顿的两处地理坐标。 访问购买页面: AMD旗舰店 看完HEDT,再来了解下锐龙家族, 按照时间顺序,明年一季度,AMD会推出Ryzen 4000U/4000H系列移动APU,其中U代表低电压,H代表35W标准电压,处理器家族代号Renoir(雷诺阿),升级到Zen 2架构,即7nm CPU+12nm I/O集成化设计,同时搭配Navi显卡,插槽为FP6,BGA封装。 接着在二季度末,EPYC嵌入式芯片“Starship”上线,最高8C16T,Zen 2架构。6月份是...阅读全文
。AppleInsider也进行了测试,但是并没有出现任何中断或者卡顿的情况。 凌晨4点45分:谷歌报告称,由于网络比较拥挤“用户可能会看到性能下降或者间歇性错误”。谷歌表示已经确认了造成拥堵的根本原因,预计很快会恢复正常。 凌晨6点:在简讯中,谷歌承认这些问题, 并表示工程团队已经完成缓解工作的第一阶段,目前正在实施第二阶段,应该会尽快修复正常。...阅读全文
Android 12 正式发布,代号「Snow Cone」 自今年 2 月 Google 发布 Android 12 开发者预览版起,时隔 8 个月时间 Google 正式发布 Android 12,该版本带来的重要功能包括: Material You Google 在今年推出了名为 Material You 的全新设计语言,极大地改变了 Android 的视觉效果。它专注于整个操作系统的个性化、色彩和动画。通知面板、快速设置,以及电源按钮菜... 15 2 NGINX 1.18 和 1.19 简析 今天文章的焦点将是互联网上最受欢迎的 Web 服务器 NGINX Open Source 的NGINX 1.19版本。NGINX 1.19 开发分支的推出跟随着早先发布的NGINX 1.18...阅读全文
特性和业务模型的第 4 层上。Dizme 生态系统预计将包括利用 Hyperledger堆栈和添加基于Algorand 区块链协议的货币化层的各种技术组件,这将使可验证凭证的交换和新的垂直应用程序的开发成为可能。身份凭证通过三个级别的保证进行管理:低级别的自我声明信息;中等级别的自动检查;以及可靠的实质性标识。这些级别的保证将使行业拥有更安全、创新和成本效益高的入职流程。 Linux基金会成立于 2000 年,有超过 1000 名成员支持,是世界上在开源软件、开放标准、开放数据和开放硬件方面进行合作的主要机构。Linux 基金会的项目对包括 Linux、Kubernetes、Node.js 等等。作为 Linux 基金会的一部分,DizmeID 基金会将利用开放治理和区块链技术社区的现有创新...阅读全文
许可,Red Hat 技术和社区外展计划经理 Tom Callaway 解释:“Fedora 认为 SSPL 是具有针对性的,它对特定类别的用户具有严重歧视性。” 此外,Debian Linux 也已经从它的发行版中删除了 MongoDB。 外界普遍认为从去年开始酝酿的开源与其它各势力的较量,到今年会发展成混战。联系一下前阵子 Confluent 宣布修改其平台部分组件的开源协议,Redis 模块协议的修改,其实目的是一样的,就是不想云厂商坐收渔翁之利。 这几位开源大佬与 MongoDB 其实可以视为开源厂商阵营;而前边提到的英国卫报可以看成是最终用户商阵营;AWS 可以归为云厂商阵营;Debian、RHEL 这一类则是操作系统层面,用于托管开源项目的阵营;当然还有最终个人用户一大阵营。 开...阅读全文
全球的内存市场主要被三星、SK Hynix和美光三家公司垄断,他们三家加起来的份额高达95%,中国要想在内存市场突破封锁并不容易,尽管有紫光、长鑫、兆易创新等公司投身存储芯片市场,但在现有的DDR内存技术上,中国公司技术、产能还差得远呢。 此外,内存也不止传统的DDR技术,还有很多新兴领域正在发展,比如PCM相变存储,相比传统内存它的优势很多,比如速度快了1000倍,耐用性也是传统内存的1000倍,江苏淮安市时代芯存公司投资130亿元建设了国内最大的相变存储基地,上周已经开始正式运营,预计年产值45亿元。 来自中国江苏网的消息称,淮安市集成电路产业现场推进暨江苏时代芯存半导体有限公司相变存储器工厂竣工运营启动仪式在淮安高新技术产业开发区顺利举行,此举标志着130亿元投资的相变存储项目开始进...阅读全文
Ubuntu 19.10 生命周期将在今年 7 月结束,之后一段时间内最大的版本则是 Ubuntu 20.04 LTS,其重大更新和改进将在 2030 年前终止。 20.04 是 Ubuntu 的第 8 个 LTS 版本,计划于明年 4 月 23 日发布。Canonical 会为 10 份月发布的版本制定 25 周时间表和 4 月发布的版本制定 27 周时间表来指导 LTS 的发展,Ubuntu 20.04 的开发生命周期遵循的正是 27 周的发布时间表。如 Ubuntu wiki 所示, 从这个表中我们可以看到几个关键节点: 2 月 27 日:特性冻结 Ubuntu 团队停止引入新特性、程序包和 API,他们开始专注于修复开发版本中的 bug。 3 月 19 日:冻结用户界面 此时,用户...阅读全文
SMR HDD和其他分区式存储设备提出的优化方案。它在传统的块设备之外提供了另一种映射,将分区式存储设备上面的每一个区都映射成一个单独的文件,这带来的好处就是应用程序无需修改太多的代码即可利用上分区式存储设备的优点,很多原本要自己做的控制都被集成在Zonefs里面了,不用开发者来动手了,这大大减少了使用分区式存储设备的迁移工作量。 Linux 5.6内核已经发布了第三个发布候选版,预计将于近期发布正式版,这版内核包括有针对新硬件的支持,被 Phoronix 称为是近几年最激动人心的Linux内核更新。...阅读全文
: 2700X 8核心16线程,2600 6核心12线程,非常适合多线程应用,不过也限制了频率提升。 主频: 2700X最低2.2GHz、基准3.7GHz、最高4.2GHz,相比1700X提升了10%左右。2600最低1.55GHz、基准3.4GHz、最高3.98GHz。 热设计功耗: 2700X 105W增加了10W,对散热器要求会更高一些。2600 65W保持不变。 一级缓存: 2700X 256KB一级数据缓存、512KB一级指令缓存保持不变,后者仍然比Intel多一倍。2600分别为192KB、384KB。 二级缓存: 2700X 4MB、2600 3MB,也保持不变,但改进了延迟。 三级缓存: 16MB不变,但依然改进了延迟,也比Intel大得多。 以上是部分测试成绩(完整版请参考这里),对比...阅读全文
。 它是为 ARM64 架构的服务器量身定做的,同时华为声称已经做了一些改变来提高其性能。你可以在华为开发博客上了解更多。 目前,根据 openEuler 的官方声明,有 50 多名贡献者为 openEuler 贡献了近 600 个提交。 贡献者们使源代码对社区可用成为可能。 值得注意的是,存储库还包括两个与之相关的新项目(或子项目),iSulad 和 A-Tune。 A-Tune 是一个基于 AI 的操作系统调优软件,iSulad 是一个轻量级的容器运行时守护进程,如在 Gitee 中提到的那样,它是为物联网和云基础设施设计的。 另外,官方的公告提到,这些系统是在华为云上通过脚本自动构建的。这确实十分有趣。 下载 openEuler 到目前为止,你找不到它的英文文档,所以你必须等待或选择通过...阅读全文
Go 1.10 还没发布,下面将简单介绍正在进行中的 Go 1.10 发布说明草案。Go 1.9 已于 2017 年 8 月发布,最新的 Go 1.10 预计将于 Go 1.9 发布六个月后 —— 2018 年 2 月发布。 Go 1.10 大部分的变更仍然集中在工具链、运行时和库的实现上。一如既往地,此版本依然会 保持与 Go 1.x 的兼容性 ,官方表示几乎所有的 Go 应用程序都能像以前一样继续编译和运行。 语言特性方面的改变 语言特性方面没有实质性的变化。 极端情况下,由无类型常量引起的变化已经弄清楚。因此,编译器也已进行升级,它可允许这样的索引表达式 x[1.0 << s] 通过编译,其中 s 是一个无类型常量。go/types 包也已完善。 方法表达式的语法 (grammar...阅读全文
许他们在多个账户之间链接联系人,这样人们可以轻松安全地搜索和查找会议、聊天和电话联系人。商业、企业和教育计划的管理员可以在 Zoom Dashboard 中查看他们的会议是如何连接到 Zoom数据中心。这包括任何连接到HTTP隧道服务器的数据中心,以及会议室连接器和网关等。...阅读全文
XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 v2.0.0 Release Notes 1、调度中心迁移到 springboot ; 2、底层通讯组件迁移至 xxl-rpc ; 3、容器化:提供官方 docker 镜像,并实时更新推送 dockerhub(docker pull xuxueli/xxl-job-admin),进一步实现产品开箱即用; 4、新增无框架执行器 Sample 示例项目 “xxl-job-executor-sample-frameless”。不依赖第三方框架,只需 main 方法即可启动运行执行器; 5、命令行任务:原生提供通用命令行任务 Handler(Bean...阅读全文
nmap或者port扫描器: # find out if TCP port 25 open or not (echo >/dev/tcp/localhost/25) &>/dev/null && echo "TCP port 25 open" || echo "TCP port 25 close" 你可以 使用循环来查找开着的端口: echo "Scanning TCP ports..." for p in {1..1023} do (echo >/dev/tcp/localhost/$p) >/dev/null 2>&1 && echo "$p open" done 输出: Scanning TCP ports... 22 open 53 open 80 open 139 open 445...阅读全文
goroutine的创建数量: func Serve(queue chan *Request) { for req := range queue { sem <- 1 go func() { process(req) // Buggy; see explanation below. <-sem }() } } 上面的代码看似简单清晰,但在go中,却有一个问题。Go语言中的循环变量每次迭代中是重用的,更直接的说就是req在所有的子goroutine中是共享的,从变量的作用域角度来说,变量req对于所有的goroutine,是全局的。 这个问题属于语言实现的范畴,在C语言中,你不应该将一个局部变量传递给另外一个线程去处理。有很多解决方法,这里有一个讨论。从个人角度来说,我更倾向下面这种方式: func...阅读全文
玲珑,面面俱到 作为一个开发者,你很可能希望为开源项目解决一个特定的痛点。或许你想要运行在一个目前还不支持的系统上,抑或你很希望改革社区目前使用的安全技术。想要引进新技术,特别是比较有争议的技术,最好的办法就是让人无法拒绝它。你需要透彻地了解底层代码,考虑每个极端情况。在不影响已实现功能的前提下增加新功能。不仅仅是完成就行,还要在特性的完善上下功夫。 糜不有初,鲜克有终 开源社区也有许多玩玩就算的人,但是承诺了就不要轻易失信。不要就因为提交被拒就离开社区。找出原因,修正错误,然后再试一试。当你开发时候,要和整个代码库保持一致,确保即使项目发生变化而你的补丁仍然可用。不要把你的代码留给别人修复,要自己修复。这样可以在社区形成良好的风气,每个人都自己改。 这些“潜规则”看上去很简单,但是还是有许...阅读全文
夫除了直接贡献之外还具有巨大的影响力,因为他指导和激励了与他接触的许多人。 — Jeremy Bícha 我还记得与 Steve 因 Linux 上的一款 Settlers of Catan 游戏而相遇的情景,当时游戏名为 Gnocatan,后来更名为 Pioneers。我当时正在添加一个小软件功能,而他几乎是所有事情的核心,包括更名。大约 15 年后,当我随机参加 Ubuntu 峰会时,他认出了我的名牌,并特意向我打招呼。他是个好人,很遗憾听到这个不幸的消息。 — Jeff Breidenbach 我翻遍了本地和公共邮件档案,在其中发现了 Steve 最早在 debian-devel 列表中发布的一些帖子。当时我正在开发并打算为 Debian 打包 freetds,但当时我遇到了一些技术问...阅读全文
should never reach here! exit(EXIT_FAILURE); } 请确保在你的main函数中的clone_flags的变量应该是这样的nt clone_flags = CLONE_NEWUTS | SIGCHLD;,然后编译并用同样的命令参数运行。这个时候你可以看到用它执行 hostname命令的返回值。同时为了核查这个变动不会影响你当前的shell环境,我们将执行 hostname 并确认返回了先前原始的值。 > gcc -o uts uts.c > ./uts hostname myhostname > hostname development IPC Namespace IPC namespace用于隔离进程间通信,像SysV的消息队列,让我们为这个命名空间创建一个...阅读全文
经过很长一段时间的开发,TiDB 终于发了 RC3。RC3 版本对于 TiKV 来说最重要的功能就是支持了 gRPC,也就意味着后面大家可以非常方便的使用自己喜欢的语言对接 TiKV 了。 gRPC 是基于 HTTP/2 协议的,要深刻理解 gRPC,理解下 HTTP/2 是必要的,这里先简单介绍一下 HTTP/2 相关的知识,然后在介绍下 gRPC 是如何基于 HTTP/2 构建的。 HTTP/1.x HTTP 协议可以算是现阶段 Web 上面最通用的协议了,在之前很长一段时间,很多应用都是基于 HTTP/1.x 协议,HTTP/1.x 协议是一个文本协议,可读性非常好,但其实并不高效,笔者主要碰到过几个问题: Parser 如果要解析一个完整的 HTTP 请求,首先我们需要能正确的读出...阅读全文
Querier–查询器处理PromQL的求值。如果是最近的数据,则从大块存储和或内部获取样本其他组件:Ruler–处理alertmanager产生的警报Alertmanager –评估警报规则ConfigsAPI –在Postgres中存储Ruler和Alertmanager的配置Table Manager–负责在选定的块chunk/索引index存储后端中创建表Consul –存储分发服务器distributor生成的一致的哈希环(hash ring)。分发服务器在发送指标时使用散列值来选择ingester。与其他选项的异同ThanosThanos和Cortex具有非常相似的目标:聚合指标,将其存储在块存储中,并为所有度量使用一块single pane。因此,两个项目重用大量Prometheus代码也...阅读全文
来分享一下他打造 Debian 的那段历程。 Murdock 第一次接触到 GNU/Linux 是在 1993 年,当时他还是个 20 岁的学生,在普渡大学学习会计学。「那个年代,PC 才刚刚发展到勉强能运行 Unix 操作系统。我当时用的就是 Unix,那时候我觉得 Linux 是能让我更方便地使用 Unix 的一种方式。」用 Murdock 的话来说,当时的软件「完成度还相对粗糙」,但完善、改良软件对他来说也是一种兴趣爱好。 「Linux 最棒的地方之一就是它是第一批你不仅能看到它在干嘛,你还能亲自尝试着对它本身做尝试、做改动的操作系统。」 Murdock 开始研究的时候,GNU/Linux 的发行版还很少。Murdok 当时选择的是 SLS,Softlanding Linux...阅读全文
,会获取到此套接字的文件描述符。 然后,bind到指定的地址进行监听listen。这样,服务端就在特定的端口启动起来并进行监听了。 之后,利用开启accept方法来监听客户端的连接请求。一旦有客户端连接,则将获取到当前客户端连接的connection文件描述符。 双方建立连接之后,就可以进行数据互传了。需要注意的是,在循环开始的时候,务必每次都要重新设置当前connection的文件描述符,是因为文件描描述符表在内核中被修改过,如果不重置,将会导致异常的情况。 重新设置文件描述符后,就可以利用select函数从文件描述符表中,来轮询哪些文件描述符就绪了。此时系统会将用户态的文件描述符表发送到内核态进行调整,即将准备就绪的文件描述符进行置位,然后再发送给用户态的应用中来。 用户通过...阅读全文
阅读行为放在编写之上 。Go 通过工具和自定义来强制所有代码格式化成特定的样式。这消除了学习项目特定语言的方言时的困难,并有助于发现错误,因为它们 看上去 就是不正确。 由于专注于分析和机器辅助,Go 开发人员开始采用越来越多的工具来发现常见的编码错误,这种工具从来没有在 C 语言开发者中产生共鸣 – Go 开发人员 希望 工具帮助他们保持代码清洁。 并发性 十多年来,芯片设计师一直在警告 免费午餐将会结束 。从最低端的手机到最耗电的服务器,硬件的并行性以 更多、更慢、堆砌 cpu 内核 的形式出现,但只有 当 你的语言可以利用它们才有意义。因此,并发特性需要内置到我们编写的要在今天的硬件上运行的软件中。 通过提供一种基于协程的 轻量级并发模型 ,或者是 Go 中已知的 goroutines...阅读全文
Kaewkasi:我十分认同这种观点,过去,我们启动运行一组Web服务器是非常困难的,而有了Docker,我们几分钟之内就可以完成。 问:Docker与普通虚拟机有什么不同? Chanwit Kaewkasi: Docker基本上使用操作系统级别的虚拟化,Linux命名空间和控制组。与虚拟化技术(如虚拟机使用的虚拟机管理程序)相比,Docker开销非常小。 Docker背后的真正引擎是Containerd 问:您如何在日常工作中使用Docker? Chanwit Kaewkasi: 我曾经帮助过东南亚和欧洲的公司设计和实施使用Docker应用架构,并将它们部署在Docker Swarm集群上。 问:使用Docker时您遇到过什么问题?您认为目前存在的挑战是什么? Chanwit Kaewkasi: 多集群...阅读全文
Linux是全球最重要的开源软件,RISC-V则是近年来兴起的一个开源CPU指令集,现在这两个阵营宣布达成合作——Linux基金会与RISC-V基金会将共同合作加速推广RISC-V ISA的开发及采用,Linux基金会还将为RISC-V生态系统提供大量资源,包括培训计划、基础工具以及社区扩展、营销和法律专业知识。 Linux开源社区经过这么多年发展已经很成熟了,而RISC-V在普通人眼里还很陌生,有些人可能还记得之前ARM公司还专门上线了一个网站,攻击RISC-V指令集的各种缺点,而ARM之所以如此兴师动众就是担心RISC-V指令集未来会跟自己抢饭碗,因为ARM赖以生存的就是ARM处理器/指令集授权费,但RISC-V是开源、免费的CPU指令集。 相比ARM指令集,RISC-V的历史很短...阅读全文
我司使用钉钉作为主要的内部通讯工具,基本上大家在电脑和手机上都开着,消息可以第一时间查看,报警消息的即时性要求比较高,我们计划使用钉钉来发送报警通知。本文将简要介绍发送消息的API使用样例。钉钉的API接口文档,请查阅钉钉开放平台。 介绍如何用 Python 实现钉钉自动发送消息,你可以用来和报警平台整合,或者做ChatOps。 获取 access token 要使用钉钉发送消息,首先需要获取access token,代码如下: def get_access_token(): url = 'https://oapi.dingtalk.com/gettoken?corpid=%s&corpsecret=%s' % (corp_id, corp_secret) request...阅读全文
方法论,就是关于人们认识世界、改造世界方法的经验性的理论,它是一种以解决问题为目标的体系或系统,通常涉及对问题阶段、任务、工具、方法技巧的论述。方法论会对一系列具体的方法进行分析研究、总结并最终提出较为一般性的原则。 这里汇总介绍几种方法论。 吉德林法则 美国通用汽车公司管理顾问查尔斯·吉德林提出:把难题清清楚楚地写出来,便已经解决了一半。只有先认清问题,才能很好地解决问题。这种观点在管理学上被称为吉德林法则。 墨菲定律(Murphy's Law) 主要内容有四个方面:一、任何事都没有表面看起来那么简单;二、所有的事都会比你预计的时间长;三、会出错的事总会出错;四、如果你担心某种情况发生,那么它就更有可能发生。 彼德原理 每个人在层级组织里都会得到晋升,直到不能胜任为止。换句话说,一个人...阅读全文
程都不会被新版本软件包破坏。 谷歌表示,Goobuntu 最后一个版本基于 Ubuntu 14.04 LTS(代号 Trusty)。Rodete 的开发始于 2015 年,2017 年,谷歌开始将机器迁移到 Rodete,并在 2018 年底完成所有迁移。2019 年初关闭了最后一批运行 Goobuntu 的机器。2020 年中,Rodete 完全跟上了 Debian Bullseye 的发布时间。未来谷歌计划与上游 Debian 更紧密地合作,并贡献更多的内部补丁来维护 Debian 软件包生态。...阅读全文
WordPress 开发团队刚刚发布了 WordPress 4.8 正式版,现在已经可以下载了。该版本以爵士乐钢琴家和作曲家 William John “Bill” Evans 的名字命名。WordPress 4.8 的新功能,讲给你提供更多的方式,让你来在网上表达自我和展现品牌。 虽然 WordPress 4.8 都是一些小的改进,但这些改进都是用户们所关注的,由数以百计的开发者共同完成的。现在,我们来一起看看这些关注已久的新功能:链接功能改进;三个媒体挂件(小工具)包括:图片、音频、和视频;文本挂件(小工具)增加了可视化编辑功能;管理后台增加了新模块,显示附近即将举行的 WordPress 活动。 令人激动的挂件更新 图片挂件(小工具) 往挂件里添加图片,现在可以说是非常简单了...阅读全文
随着 Raspberry Pi 4 主板的问世,了解如何使用Raspbian Buster设置您的操作系统。你的新Pi 4到了邮箱,你已经设置了办公桌,您已准备好安装操作系统。 对于初学者来说,Raspbian为Pi制造商提供了出色的桌面体验。最重要的是,Raspbian Buster是专为树莓派 4创建的。考虑到这些情况,我们将在 microSD卡上载入这个操作系统,用其启动树莓派。 下载 Raspbian Buster 首先,访问 Raspbian 下载页面,下载最新版 Raspbian Buster 的图像文件。第一个链接 “桌面+推荐软件版” 附带了处理日常需求所需的大部分软件,建议初学者使用。如果你计划在命令行下使用你的Pi,桌面就不需要了,可以选择第三个 Lite 的选项。 下...阅读全文
Ubuntu 19.10 生命周期将在今年 7 月结束,之后一段时间内最大的版本则是 Ubuntu 20.04 LTS,其重大更新和改进将在 2030 年前终止。20.04 是 Ubuntu 的第 8 个 LTS 版本,计划于今年 4 月 23 日发布。前两天我们报导过 Ubuntu 20.04 LTS 的版本更新时间表,描述了各个时间节点的发布情况,今天来看看 20.04 会带来什么亮点。 首先是主题变化,Yaru 会有一个从亮到暗的主题变化可选,该主题下的复选框、单选按钮以及滑块和进度条等,都不再呈蓝色或绿色,而以紫色取代之。从绿色切换到紫色,整体上减少了纷杂的色彩,同时也不破坏 Ubuntu 本身的和谐。 其次,Ubuntu 社区的另一个期待已久的需求也将得到满足,系统将删除预装的...阅读全文
在本月初的 GopherCon 上,知名 Go 语言贡献者与布道师 Dave Cheney 发表了名为《The Zen of Go》的演讲,之后他整理了演讲内容在博客中分享,由于内容过长,他又写了一个简洁版本: 完整版:https://dave.cheney.net/2020/02/23/the-zen-of-go简洁版:https://the-zen-of-go.netlify.com 这里简单翻译一下简洁版本的内容:编写简单、可读、可维护的 Go 代码的十个工程要点。 每个包实现单一目标 设计良好的 Go 软件包提供一个单一的思路,以及一系列相关的行为。一个好的 Go 软件包首先需要选择一个好名字,使用电梯法则(30 秒内向客户讲清楚一个方案),仅用一个词来思考你的软件包要提供什么功能...阅读全文
pkgname #查询软件包依赖关系 $ apt-cache rdepends pkgname #查询被哪些软件包依赖 $ apt-cache showpkg pkgname #同上 $ apt-cache policy pkgname #查询软件包的安装状态和版本 $ apt-cache stats #查看软件库的统计信息 软件包安装 $ sudo apt-get install pkgname $ sudo apt install pkgname $ sudo apt install -f #自动修复依赖 $ sudo apt-get install -f 在安装软件包之前,我们一般会执行 apt-get update,更新 apt-get 缓存中的软件包信息,获取最新软件包列表。软件的安装源,是由...阅读全文
述。 Go 1 和 Go 2 之间的主要区别在于主导权的不同。谁将影响设计,又该如何做出决策?我们都知道,Go 1 的诞生是小团队努力的结果,受外部影响不大;而到了 Go 2,尤其是经过将近 10 年的发展后,Go 语言的生态已经十分庞大,因此它也更多地受到社区的驱动和影响。经历了这些,Go 开发团队也了解到了更多一开始不知道的与语言特性和库相关的知识 —— 这些都来自于 Go 社区的反馈。 2015年,Go 开发团队引入了提案流程,以收集特定类型的反馈:针对语言和库变更方面的提案。由 Go 开发团队高级成员组成的委员会定期审查、分类和决定社区提交的提案。这个流程十分有效,但作为该过程的一部分,他们忽略了所有不向后兼容的提案,只是将其标记至 Go 2。到了2017年,Go 开发团队也停止进行...阅读全文
。这个时候context就派上用场了。我们首先看看context的结构设计和实现原理。context是什么context接口先看Context接口结构,看起来非常简单。type Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() error Value(key interface{}) interface{} } Context接口包含四个方法:Deadline返回绑定当前context的任务被取消的截止时间;如果没有设定期限,将返回ok == false。Done 当绑定当前context的任务被取消时,将返回一个关闭的channel;如果当前context不会被取...阅读全文
的文本文件。如果一台服务器有16个 CPU,每秒抽样99次,持续30秒,就得到 47,520 个调用栈,长达几十万甚至上百万行。 为了便于阅读,perf record命令可以统计每个调用栈出现的百分比,然后从高到低排列。 $ sudo perf report -n --stdio 这个结果还是不易读,所以才有了火焰图。 二、火焰图的含义 火焰图是基于 perf 结果产生的 SVG 图片,用来展示 CPU 的调用栈。 y 轴表示调用栈,每一层都是一个函数。调用栈越深,火焰就越高,顶部就是正在执行的函数,下方都是它的父函数。 x 轴表示抽样数,如果一个函数在 x 轴占据的宽度越宽,就表示它被抽到的次数多,即执行的时间长。注意,x 轴不代表时间,而是所有的调用栈合并后,按字母顺序排列的。 火焰图就...阅读全文
SSD来调整其默认配置。一般不需要手动调整。 原型mclock QoS排队算法已经可用。 新增一种退出机制,可以防止OSD出现对当前不能处理IO对象或PG的请求过载情况。 OSD更换过程简化,变得更加强大了。 您可以使用ceph功能来查询所有连接的后台程序和客户端的支持功能和版本。 通过ceph osd set-require-min-compat-client连接到集群,您可以配置最旧的Ceph客户端版本,但 Ceph将阻止您启用会破坏与这些客户端的兼容性的功能。 包括osd_recovery_sleep,osd_snap_trim_sleep和osd_scrub_sleep的几个睡眠设置,已经被重新实现,并且可以有效地工作。(这些在某些情况下用于解决问题,限制后台工作。) 完成对...阅读全文
根据 Let’s Encrypt CA 的统计,截至 2017 年 11 月,Firefox 加载的网页中启用 HTTPS 的比例占 67%,比去年底的 45% 有巨大提升。浏览器开发商如 Mozilla, Google 准备采取下一步措施:将所有 HTTP 网站标记为不安全。 随着 HTTPS 的普及,给网站加个 SSL 证书已经是大势所趋而且很有必要了。目前已经存在不少免费好用的 SSL 证书,因此,本文就来盘点一下关于免费 SSL 证书的那些事儿。 一、Let’s Encrypt 官方网站:https://letsencrypt.org/ 点评:毫无疑问,Let’s Encrypt 是目前使用范围最为广泛的免费 SSL 证书,而且官方博客宣布,自 2018 年开始提供通配符 SSL...阅读全文
apt-get install git 现在,我们切换到 /opt 目录,并从 Github 上克隆仓库: cd /opt git clone https://github.com/axboe/fio 现在,我们通过在 /opt 目录下切换到 Fio 的源代码目录,执行编译和安装操作了,命令如下: # cd /opt/fio # ./configure # make # make install 使用 Fio 进行磁盘性能测试 现在 Fio 已经安装到了你的系统中,我们一起看看如何使用 Fio 做磁盘的随机写、读和读写测试。 随机写测试 执行下面的命令来开始。这个命令将要同一时间执行两个进程,写入共计 4GB( 4 个任务 x 512MB = 2GB) 文件: sudo fio --name...阅读全文
:go:embed helloworld/*。 总的来讲,Go1.16 embed 特性很好的填补了 Go 语言在打包静态文件资源的一块原生空白领域。同时也说明了 Go 官方的确在不断地吸收社区的一些良好的想法和经验。 分享 Go 语言、微服务和奇怪的系统设计 ???? 长按关注煎鱼,在知识的海洋里遨游 学习资料分享,关注公众号回复指令: 回复【000】,下载 LeetCode 题解大全。回复【001】,下载 Go 进阶图书 Mastering Go。...阅读全文
以在 github 上的 apache 2.0 许可下找到。 Blessed-contrib 我个人最喜欢的是 Blessed-contrib,但是它并不是一个专门为了这种表演而设计的应用程序。相反,它是一个基于 node.js 的终端仪表板构建库的演示文件,该库名为 fordated contrib。与其他两个命令不同的是,我实际上使用了 fulded contrib 的库来做一些实际工作的事情,而不仅仅是假装工作。它是一个非常有用的库,有可以用一组命令行显示信息的小部件。但它也很容易填充虚拟数据来实现类似《WarGames》中的梦想。 在 github 上可以找到 Blessed-contrib 的源代码。 当然,虽然这些工具很简单,但有很多方法可以让你的屏幕充满各种乱码。你将在电影中看...阅读全文
# PostgreSQL 增量同步方案详细设计 ## 一:方案目的 通过PG实例的增量数据同步方案,解决PG在数据迁移中需要进行全量同步,需要长时间停服务的问题. 通过该方案,打通PG和其他数据产品间的数据通道,做到PG和其他数据产品和异构数据库间的实时的同步. ## 二:增量同步方案的技术背景 该方案基于PostgreSQL 9.4版本的逻辑流复制技术. PG9.4 可以做到,利用逻辑流复制,把表的增量数据,以自定义格式的形式组织起来被客户端订阅. 自定义格式的增量数据是逻辑流复制的关键,通过PG内核给出了开放的接口(5个回调函数),可以把增量数据以任意的形式输出. PG的客户端根据需要按照服务端规定的格式解析,就能得到完整的增量数据. ## 三:订阅增量数据的订阅规则 PG增量同步方案...阅读全文
WordPress 本质上并没大家认为的那么危险,而且开发者也在努力工作,以确保危险漏洞能被快速修复。但不幸的是,WordPress 的成功使其成为众矢之的:如果你能攻破一个 WordPress 安装,那么可能会有数以百万计的网站向你 “开放”。而且即使 WordPress 是安全的,也并不是所有的主题和插件都会有同样级别的开发重视程度。 有些人攻击 WordPress 是为了挑战或造成恶意的损害,这些行为都很容易被发现。最糟糕的罪魁祸首是那种潜入内容的行为,它们会将钓鱼网站深入到文件夹结构,或使用你的服务器发送垃圾邮件。一旦你安装的 WordPress 被破解,可能需要删除所有内容并从头重新安装。 庆幸的是,有很多简单的方案来提升安全性。下面提到的安全修复方案都不会超过几分钟。 1. 切...阅读全文