Debian 爱好者社区 为您找到相关结果 689

为什么使用 JavaScript 开发物联网?

较于PHP、Python、Java来说,JavaScript是最有可能在物联网大行其道的解释性语言。 JavaScript在浏览器没有对手,nodejs在服务器端也在不停的攻城拔寨,积累了大量的资源,构建了一个完整的应用开发生态环境。 JavaScript语言本身特点适合互联网,事件驱动,异步使单线程处理网络事件得心应手。 JavaScript已经跨界到物联网,受到了行业巨头的关注,各种项目发展的荼。 未来的物联网开发 果JavaScript在物联网获得成功,那么物联网的开发将会发生巨大的变化。 底层驱动由C实现,应用开发者不需要关注硬件,大量的互联网、移动互联网应用开发者加入物联网开发。 传统的交叉编译、烧写、调试的开发方式使用范围将急剧缩小 所见即所得,上位机和下位机的架构由C...阅读全文

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

LXD 3.8 发布,下一代容器管理器

LXD 服务器必须配置为监听单个 IPv4 或 IPv6 地址,同时内部集群流量和常规客户端流量都使用相同的地址。LXD 3.8 引入新的 cluster.https_address 选项作出改变,write-once 写入密钥保存用于集群通信的地址,并且无法在不必从集群中删除节点的情况下进行更改。有了这个单独的密钥,现在可以将集群节点上的常规 core.https_address 更改为任何地址,包括通配符模式, :8443。 集群镜像复制 集群中引入了自动镜像复制, 在 LXD 3.8 之前,镜像只会被复制到其它集群成员,虽然有利于性能、带宽和磁盘使用,但这有一个明显的缺点,即果镜像仅出现在单个系统上并且系统脱机,那么在系统恢复之前将无法使用该镜像。 此版本通过在至少 3 个系统上复制所...阅读全文

博文 2018-12-14 10:29:14 debian.cn

三大亮点带你看 Linux 内核 5.6

当我们还在体验 Linux 5.5 稳定发行版带来更好的硬件支持时,Linux 5.6 已经来了。说实话,Linux 5.6 比 5.5 更令人兴奋。即使即将发布的 Ubuntu 20.04 LTS 发行版将自带 Linux 5.5,你也需要切实了解一下 Linux 5.6 内核为我们提供了什么。 我将在本文中重点介绍 Linux 5.6 发布版中值得期待的关键更改和功能: Linux 5.6 功能亮点 当 Linux 5.6 有新消息时,我会努力更新这份功能列表。但现在让我们先看一下当前已知的内容: 1、支持 WireGuard WireGuard 将被添加到 Linux 5.6,出于各种原因的考虑它可能将取代 OpenVPN。果你使用过它,那你可能已经知道它比 OpenVPN 更好的...阅读全文

博文 2020-02-07 11:13:09 debian.cn

Open Source Initiative 批准四个新的开源许可证

许可证。 四个新的许可证 首先是 Cryptographic Autonomy License(CAL)。这个许可证是为分布式密码学应用而设计的。现有的开源许可证无法保证开放性,因为果没有义务与其他对等体共享数据,那么一个对等体就有可能损害网络的运行。所以,CAL 除了是一个强大的版权许可以外,还包括向第三方提供独立使用和修改软件所需的权限和材料,而不使第三方有数据或功能的损失。 随着分布式密码学在加密结构的点对点共享中越来越多的使用,果更多的开发者发现自己需要一个像 CAL 这样的法律工具,也就不足为奇了。我们希望由此产生的许可证是清晰易懂的,并希望开源从业者会发现它大有用处。 在我们之前的报道中曾提到,欧洲核子研究组织 CERN 提交的 CERN Open Hardware...阅读全文

博文 2021-03-01 10:44:35 OSChina

树莓派4上如何安装 Raspbian Buster

随着 Raspberry Pi 4 主板的问世,了解何使用Raspbian Buster设置您的操作系统。你的新Pi 4到了邮箱,你已经设置了办公桌,您已准备好安装操作系统。 对于初学者来说,Raspbian为Pi制造商提供了出色的桌面体验。最重要的是,Raspbian Buster是专为树莓派 4创建的。考虑到这些情况,我们将在 microSD卡上载入这个操作系统,用其启动树莓派。 下载 Raspbian Buster 首先,访问 Raspbian 下载页面,下载最新版 Raspbian Buster 的图像文件。第一个链接 “桌面+推荐软件版” 附带了处理日常需求所需的大部分软件,建议初学者使用。果你计划在命令行下使用你的Pi,桌面就不需要了,可以选择第三个 Lite 的选项。 下...阅读全文

博文 2020-02-04 19:33:29 debian.cn

Go 泛型的括号选择:[ ] or ( )

( ) 和 [ ] 可供选择。然而缺少修饰的方括号会在数组和 slice 的类型声明中造成歧义,在解析索引表达式时也会引起小程度的歧义。因此在设计之初他们决定使用小括号,因为小括号似乎更符合 Go 语言的风格,而且看起来问题最少。 为了使小括号正常工作,并且为了向后兼容,他们表示不得不在类型参数列表中引入type关键字。最后,他们在参数列表、复合字面量和嵌入类型中发现了额外的解析歧义,而这些歧义需要嵌套更多的小括号来解决。不过即便此,他们还是决定继续使用小括号,因为当时还有更重要的设计问题需要解决。 现在他们决定重新考虑这个最初的决定。果仅使用方括号声明类型参数,那么声明数组的方式下所示: type A [N]E 不过这就无法与泛型的声明进行区分: type A[N] E 但果能接受额外的...阅读全文

博文 2020-07-16 10:38:01 debian.cn

Golang 之禅: 如何写优质代码

。 明确处理错误 健壮的程序其实是由处理故障案例的片段组成的,并且需要在故障出现之前处理好。冗余的if err != nil { return err }比出了故障再一个个去处理更有价值。panic 和 recover 也一样。 尽早 return,不要深陷 每次缩进时都会在程序员的堆栈中添加另一个先决条件,这会占用他们短期内存中的 7±2 个片段。避免需要深层缩进的控制流。与其深入嵌套,不使用守卫子句将成功路径保持在左侧。 并发权留给调用者 让调用者选择是否要异步运行你的库或函数,不要强制他们使用异步。 在启动 goroutine 之前,要知道它什么时候会停止 goroutines 拥有资源、锁、变量与内存等,释放这些资源的可靠方法是停止 goroutine。 避免包级别的状态 要完成明确和...阅读全文

博文 2020-02-25 20:48:33 debian.cn

Saltstack极高危漏洞: 可获取master权限

这两天开源配置管理工具 saltstack 爆出了CVSS得分为10分的漏洞。果你对CVSS的评分没有概念,那么前几年震惊互联网的 openssl心脏滴血漏洞,CVSS base评分是5.0,由此可知这次爆出来的 saltsatck 漏洞是多么严重。 漏洞信息: 该漏洞是 F-secure 研究人员在3月份发现的,目前该漏洞已经在最新版本中修复。本次极高危漏洞,是由两个不同的漏洞引起的,一个是身份验证绕过漏洞 CVE-2020-11651,一个是目录遍历漏洞没有过滤掉不受信任的输入 CVE-2020-11652,从而导致攻击者可以不受限制的访问 salt-master 的整个文件系统。 攻击者获取salt-master的权限后,便可以控制整个被salt-master管理的数据中心的各主机...阅读全文

博文 2020-05-05 18:32:44 debian.cn

Debian 9更新到最新的Linux内核

喜欢折腾的同学,会豪气何升级 Debian Stretch 的内核到新版。遗憾的是现在能搜到的升级 Debian Linux 内核的文章多数是使用Ubuntu的deb安装包,其实这样装上去是有问题,常见的问题是,总会提示需要 apt --fix-broken install 。 这里简单记录一下,何使用Debian官方源更新到最新的内核;以及何是用 Kernel.org 的deb源,更新内核到最新的 5.x 版本。 修改更新源 name@debian.cn:~$ echo -e "deb http://http.debian.net/debian stretch-backports main\ndeb-src http://http.debian.net/debian stretch...阅读全文

博文 2019-03-25 22:33:22 debian.cn

历数2017年五大Linux痛点

Linux操作系统为许许多多用户安装和使用,难免会遇到一些问题。正2016年我们总结过5大Linux故障排除技巧一样,在即将过去的2017年里,我们依然搜集了用户在使用Linux系统时发现的问题,在此总结综述为"2017年五大Linux痛点",直指用户使用的关键点,希望能对您有所帮助。 1.文档 文档的问题是你今年最大的痛点吗?开源的方式产生了大量优秀的代码,文档的质量也因此上升了一个台阶。随着越来越多的非技术用户采用Linux和开源软件,文件的质量和数量将变得至关重要。果您想为开源项目做贡献,但又不觉得自己有足够的技术来提供代码,那么改进文档是一个很好的参与方式。许多项目甚至将文档保存在它们的存储库中。因此你可以通过自己的贡献去改进工作的效率。 2.软件/版本不兼容 软件版本不兼容的...阅读全文

博文 2017-11-25 12:27:56 debian.cn

LFS 8.0 正式发布:从零开始编译自己的 Linux 发行版

去年的9月8日发布 LFS 7.10之后,就在昨天,LFS 8.0 终于面世了。LFS 的全称是 Linux From Scratch,就像它的名字一样,这个发行版是一个教我们何从零开始打造自己的 Linux 发行版的指南,同时还有姊妹发行版 BLFS,全称是 Beyond Linux From Scratch,昨天 BLFS 8.0 也一同发布了更新。准确地说,昨天 LFS 社区正式发布了 LFS Version 8.0, LFS Version 8.0 (systemd), BLFS Version 8.0, 和 BLFS Version 8.0 (systemd) 四个更新版本。 与其说 LFS 是一个发行版,它其实就是一本书,附赠的源代码,《Linux From Scratch...阅读全文

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

Ubuntu 创始人爆粗口: 开源社区弥漫着“反社会人格”

Shuttleworth,请你不要让 Mir 死亡。(我理解在桌面端这可能是非常困难或许无法实现的,但是果你未来想要进一步布局物联网,你就会发现它是非常实用的。) 随后 Shuttleworth 的回复并不令人感到愉快: Martin Kozub,我们拥有大量使用 Mir 作为合成器的物联网项目,因此代码将会接受更新。我也非常赞同,它是非常高效、简洁和强悍的图形合成引擎,聪明的人都非常的喜欢。 然而我由衷的讨厌 Mir 的存在,因为这是一款非常容易产生分歧的软件。就像是气候变化或者枪支管理一样,它会变成不合理的策略话题。无论你站在哪一方都释放出种族拥护的信号。在社区中部分软件的对立已经变成了非常严重的问题,有些人会选择站在对立面怀着抱怨和讨厌的态度,而另一些人则站在了同一阵营,甘愿投入时间和精力并不断让软件变得...阅读全文

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

Kubernetes调度算法浅析

在真正的生产环境中,何合理的分配服务器资源、提高利用率、让整个集群运行的更加稳定使得 k8s-scheduler 这个角色在集群中的地位愈发重要。 kube-scheduler的预选(过滤)和精选(打分) api-server会将创建pod的请求发送给kube-scheduler,并且将pod信息记录在etcd数据库中。之后kube-scheduler会根据预选(过滤)规则,首先过滤掉一部分node节点中的pod,没有被过滤掉的pod可以看做是可以被调度的pod,之后再通过更加严格的规则给剩下的pod打分,这一步也叫作优选。打分最高的pod可以看做被优先分配到pod任务。 调度流程简介 创建pod的命令被api-server的api接口接收到。api-server将pod信息存储在...阅读全文

博文 2020-12-20 11:01:10 debian.cn

Python 社区有了新治理模式

随着 Python 之父 Guido van Rossum 逐步卸任 BDFL,Python(CPython)的未来之路牵动了万千开发者的心。没了首领,Python 今后的发展会怎么样?社区将何运作?谁来领导 Python 这门语言和社区呢?这些问题不得不解决,而用什么样的方式解决,这就需要先由社区讨论并最终决定。 前两天我们分析过目前 Python 社区已经提出的 7 种正在进行投票的治理方案,而最新消息是,目前投票环节已经结束,最终 PEP 8016 当选了新时代的 Python 社区治理方案。 PEP 8016 治理方案采用指导委员会模式,其特点是引导治理的迭代,该方案由 Nathaniel J. Smith 和 Donald Stufft 提出。 PEP 8016 中提出了不信任...阅读全文

轻量级发行版 Alpine Linux 介绍

real 0m5.315s user 0m0.028s sys 0m0.019s 迁移至 Alpine 基础镜像 目前大部分 Docker 官方镜像都已经支持 Alpine 作为基础镜像,可以很容易进行迁移。例: ubuntu/debian -> alpine python:2.7 -> python:2.7-alpine ruby:2.3 -> ruby:2.3-alpine 另外,果使用 Alpine 镜像替换 Ubuntu 基础镜像,安装软件包时需要用 apk 包管理器替换 apt 工具,, $ apk add --no-cache Alpine 中软件安装包的名字可能会与其他发行版有所不同,可以官方网站上搜索并确定安装包名称。果需要的安装包不在主索引内,但是在测试或社区索引中。那么...阅读全文

博文 2018-06-16 13:48:00 debian.cn

深度解密基于 eBPF 的 Kubernetes 问题排查全景图

Label、Namespace 等概念非常适合用来构建上下文信息。3、繁多监测系统,造成监测界面不一致复杂系统带来的一个严重副作用就是监测系统繁多。数据链路不关联、不统一,监测界面体验不一致。很多运维同学或许大多都有过这样的体验:定位问题时浏览器打开几十个窗口,在 Grafana、控制台、日志等各种工具之间来回切换,不仅非常耗时巨大,且大脑能处理的信息有限,问题定位效率低下。果有统一的可观测性界面,数据和信息得到有效地组织,减少注意力分散和页面切换,来提高问题定位效率,把宝贵时间投入到业务逻辑的构建上去。二、解决思路与技术方案为了解决上述问题,我们需要使用一种支持多语言,多通信协议的技术,并在产品层面尽可能覆盖软件栈端到端的可观测性需求,通过调研,我们提出一种立足于容器界面和底层操作系统,向上关联...阅读全文

博文 2022-03-21 09:11:51 joseph

Apache Flink 1.14 新特性预览 - OSCHINA

作为社区 RoadMap 的重要组成部分,是大数据实时化必然的趋势。但是另一方面,传统离线的计算需求其实并不会被实时任务完全取代,而是会长期存在。 在实时和离线的需求同时存在的状态下,以往的流批独立技术方案存在着一些痛点,比: 需要维护两套系统,相应的就需要两组开发人员,人力的投入成本很高; 另外,两套数据链路处理相似内容带来维护的风险性和冗余; 最重要的一点是,果流批使用的不是同一套数据处理系统,引擎本身差异可能会存在数据口径不一致的问题,从而导致业务数据存在一定的误差。这种误差对于大数据分析会有比较大的影响。 在这样的背景下,Flink 社区认定了实时离线一体化的技术路线是比较重要的技术趋势和方向。 Flink 在过去的几个版本中,在流批一体方面做了很多的工作。可以认为 Flink...阅读全文

博文 2021-09-05 07:26:58 中文开源技术交流社区

7大维度看国外企业为啥选择gRPC打造高性能微服务

gRPC是一个高性能、开源、通用的RPC框架,面向移动和HTTP/2设计,是由谷歌发布的首款基于Protocol Buffers的RPC框架。 gRPC基于HTTP/2标准设计,带来诸双向流、流控、头部压缩、单TCP连接上的多复用请求等特性。这些特性使得其在移动设备上表现更好,更省电且节省空间占用。gRPC 1.0版本是2015年面世以后的第一次版本发布,开发者可以把该版本用于生产。API现在也是很稳定的。 Bugsnag(注:一家云端bug监控服务商)每天处理数以亿计的错误信息,为了处理这些数据,考虑优先构建一个可扩展,性能强大的后端系统,并从中学到很多有挑战性的技术。最近,我们推出了新版本的仪表板,这个项目要求扩展系统,来处理服务呼叫的显著增加,这些呼叫是跟踪用户发布和会话所需的...阅读全文

博文 2018-03-19 17:51:32 debian.cn

案例:Redis命令不当 引起数据库雪崩 造成数百万损失

最近的互联网线上事故发生比较频繁,9月19日网上爆料出顺丰近期发生了一起线上删库事件,在这里就不介绍了。 这里分享一下最近发生在我公司的事故,以及何避免,并且何处理优化。 该宕机的直接原因是使用 Redis 的 keys * 命令引起的,一共造成了某个服务化项目的两次宕机。 间接原因还有很多,技术跟不上业务的发展,由每日百万量到千万级是一个大的跨进,公司对于系统优化的处理优先级不高,技术开发人手的短缺。 第一次宕机 2018年9月13日的某个点,公司某服务化项目的 RDS 数据库实例连接飙升,CPU 升到 100%,拒绝了其他应用的所有请求服务。 整个过程下: 监控报警,显示RDS的CPU使用率达到80%以上,DBA介入,准备KILL慢SQL 1分钟内,没有发现明显阻塞的SQL...阅读全文

博文 2018-10-27 10:18:18 debian.cn

最全 MongoDB 基础教程

MongoDB 创建数据库 - 格式:use DATABASE_NAME - use ruochen - db 创建数据库需要插入一条数据才会在列表中显示 - db.ruochen.insert({'name': '若尘'}) - show dbs 删除数据库 格式:db.dropDatabase() use ruochen db.dropDatabase() show dbs 创建集合 - 格式:db.createCollection(name, options) - name: 要创建的集合名称 - options: 可选参数,指定有关内存大小及索引的选项 字段 类型 描述 capped 布尔 (可选)果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它...阅读全文

博文 2021-02-22 07:45:45 OSChina

Cortex: 高可用和水平扩展Prometheus监控系统

Prometheus已成为cloud-native世界中的默认监控应用程序和系统。对于真是使用案例,Prometheus应该是高可用的,这是有挑战的。一旦在高可用性模式下运行Prometheus,就会遇到很多问题,例数据重复,为重复数据实现single pane等。为了解决此问题,Cortex诞生了。Cortex是一个CNCF sandbox project,旨在为使用Prometheus 收集的指标提供长期存储和全局指标视图。首先让我们看一下Cortex的主要目标,然后看一下它为Prometheus解决的一些问题。水平可伸缩性– Cortex可以分成多个微服务,每个微服务都可以独立地水平伸缩。例果许多Prometheus实例正在向Cortex发送数据,则可以扩展Ingester微...阅读全文

博文 2021-10-09 17:00:22 知乎

玩转 AWS 的必备工具

/free/? sc_channel=seo&sc_campaign=acquisition_CN&sc_medium=backlink&sc_content=developer 一般我们在AWS上建立了一个集群服务器,则很有可能我们要对这种这一群集的全部服务器虚拟机统一的实际操作,例安裝一个程序包,运行某一服务项目,布署某一文档这些。倘若大家假仅有一台网络服务器,那全部流程非常简单,立即根据ssh登陆到网络服务器,并手动式实行一系列的指令就可以。但要是使用的另一半是成千上万的网站服务器的情况下,大家就必须一个能完成群集实际操作(collectiveoperation)的专用工具了。现阶段这种的专用工具许多,包含Ansible,Chef,Fabric,Puppet,Saltstack,文中...阅读全文

玩转 AWS 的必备工具

/? sc_channel=seo&sc_campaign=acquisition_CN&sc_medium=backlink&sc_content=developer 一般我们在AWS上建立了一个集群服务器,则很有可能我们要对这种这一群集的全部服务器虚拟机统一的实际操作,例安裝一个程序包,运行某一服务项目,布署某一文档这些。倘若大家假仅有一台网络服务器,那全部流程非常简单,立即根据ssh登陆到网络服务器,并手动式实行一系列的指令就可以。但要是使用的另一半是成千上万的网站服务器的情况下,大家就必须一个能完成群集实际操作(collectiveoperation)的专用工具了。现阶段这种的专用工具许多,包含Ansible,Chef,Fabric,Puppet,Saltstack,文中主要详细介绍Ansible和...阅读全文

Kubernetes v1.21 新特性预览

IPv4 和 IPv6 两个地址。注意,果使用了 CNI 插件和云服务商扩展(Cloud Provider),CNI 插件和云服务商扩展也需要支持 IPv4/IPv6 双栈。CSIVolumeHealth Alpha 和 CSIStorageCapacity Beta从 v1.21 开始,Kubernetes 支持 CSI 存储插件的 Volume 健康检查(Alpha 版),CSI 插件需要实现外部健康监控控制器。当 Volume 或者 Node 出现异常时,该控制器会向 Volume 所属的 PVC 以及使用该 PVC 的 Pod 发送一个异常事件。CSIStorageCapacity 用于跟踪 CSI 存储容量并确保 Pod 调度到足够存储容量的节点上。该特性从 v1.21 开始进入...阅读全文

博文 2021-03-30 20:24:36 mp.weixin.qq.com

Debian 11 "bullseye" 发布,带来内核 exFAT 支持

:更新了 42821 个软件包(占 buster 软件包总数的 72%)。而且,由于各种原因,有相当数量的软件包(9519 个,占 buster 软件包总数的 16%)从这次发行中被删除了。您将不会看到这些包有任何更新,而且在包管理软件中它们会被标记为“过时的”;桌面程序和软件包往常一样,Debian 也提供了多个桌面程序和环境。提供的桌面环境包括 GNOME 3.38,KDE Plasma 5.20,LXDE 11,LXQt 0.16,MATE 1.24,以及 Xfce 4.16。生产力应用也得到了升级,包括办公套件:LibreOffice 已升级到 7.0 版;Calligra 已升级到 3.2 版;GNUcash 已升级到 4.4 版;这次发行包含了许多软件的更新,其中包括:​无驱动扫...阅读全文

不要光想着价格 QLC 与 TLC 闪存有什么不同

以及QLC闪存? TLC = Trinary-Level Cell,即3bit/cell(每个Cell单元储存3个数据,有8个状态,具体上图,有八种不同电压状态)。主要特点:成本低,容量大,但速度慢,寿命短,约500-1000次擦写寿命。但随着技术的成熟,寿命问题已经得到改善(约1500-2000次擦写寿命),并成为目前闪存颗粒中的最主流产品。 QLC=Quad-Level Cell,即4bit/cell(每个Cell单元储存4个数据,有16个状态,具体上图,有十六种不同电压状态)。相比于TLC来说,成本比更低,容量更大,而可靠、稳定性及寿命则更差些(此前几年预计的理论可擦写100-150次),不过目前东芝宣称,他们的QLC NAND拥有多达1000次左右的P/E编程擦写循环,几乎已经和...阅读全文

博文 2017-08-01 09:52:54 debian.cn

利用 NAT VPS 进行流量中转

Contents1. 准备2. 使用 firewalld 进行中转3. 使用 UFW 进行中转4. 使用 iptables 进行中转4.1. CentOS 下保存规则4.2. Debian & Ubuntu 下 保存规则:5. 使用 socat 进行中转6. 目标机的设置7. 一些大陆 NAT VPS 商8. References本文最后更新于 2020 年 6 月 3 日本文以 CentOS 8 和 Debian 10 & Ubuntu 20.04 为例,介绍何在 NAT VPS 上设置流量中转。开始前,请先根据实际使用的操作系统,参照以下文章对服务器进行各种必要的配置:CentOS 服务器的初始配置Debian & Ubuntu 服务器的初始化配置本文以 sammy 用户为例,进行中...阅读全文

博文 2021-03-11 21:16:11 Silearner

Jono Bacon: GPL 没落了吗?

客户觉得把他们的代码用 GPL 发布不舒服。 随着 大约 65% 的公司对开源事业做贡献 ,自从 2010 年以后显然开源行业已经引来了不少商业兴趣和投资。我相信,我之前说的那些趋势,已经表明这行业不认为 GPL 适合搞开源生意。 连接社区和公司 说真的,GPL 的没落不太让人吃惊,因为有下原因。 首先,开源行业已经转型升级,它要在社区发展以及……你懂的……真正能赚钱的商业模型中做出均衡,这是它们要做的最重要的决策。在开源思想发展之初,人们有种误解说,“果你搞出来了,他们就会用”,他们确实会来使用你的软件,但是在很多情况下,都是“果你搞出来了,他们不是一定要给你钱。” 随着历史的进程,我们看到了许多公司,比 Red Hat、Automattic、Docker、Canonical...阅读全文

博文 2017-08-04 08:03:43 debian.cn

Golang 中的 channel 通道详解

,dataqsiz 表示缓冲区的大小,对于无缓冲区通道而言 dataqsiz 的值为 0。果 qcount 和 dataqsiz 的值相同,则表示缓冲区用完了。__buf __缓冲区表示的是一个环形队列 。其中 **sendx 表示下一个发送的地址,recvx **表示下一个接收的地址。elemtype 是channel的中存放的具体类型,每一个通道都是一个具体类型的导管,也就是声明channel的时候需要为其指定元素类型。recvq 表示等待接收的 sudog 列表,一个接收语句执行时,果缓冲区没有数据而且当前没有别的发送者在等待,那么执行者 goroutine 会被挂起,并且将对应的 sudog 对象放到 recvq 中。sendq 类似于 recvq,一个发送语句执行时,果缓冲区已经满了,而且没...阅读全文

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

,跑至内存不再增加,果然valgrind显示没有任何内存泄露。反复试验了很多次,结果都是这样。 在多次使用valgrind无果以后,我开始怀疑程序内部是不是用到mmap之类的调用,于是使用strace对mmap,brk等系统函数的检测: strace -f -e"brk,mmap,munmap" -p $(pidof AuthServer) 其结果下: [pid 19343] mmap(NULL, 134217728, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f53c8ca9000 [pid 19343] munmap(0x7f53c8ca9000, 53833728) = 0 [pid 19343...阅读全文

博文 2015-01-28 10:35:39 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

聊聊很重要的内核技术eBPF

。它使用其他输入流(例容器运行时度量标准和Kubernetes度量标准)丰富了收集的数据,并允许连续监视和检测容器,应用程序,主机和网络活动。 5:Katran Katran是一个C ++库和eBPF程序,用于构建高性能的第4层负载平衡转发平面。 Katran利用Linux内核中的XDP基础结构来提供用于快速数据包处理的内核功能。它的性能与NIC接收队列的数量成线性比例,并且使用RSS友好的封装转发到L7负载平衡器。 6:Sysdig Sysdig是提供深层系统可见性的简单工具,并具有对容器的原生支持。 其他基于eBPF技术的项目还有很多,比kubectl-trace ,ply 等,这里不再赘述。 何编写一个eBPF程序? 在很多情况下,不是直接使用eBPF,而是通过Cilium,bcc...阅读全文

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

UCloud 叶理灯 谈:Docker、K8S 和 Serverless

要做了哪些定制,有什么特色呢? 叶理灯:果说定制 K8S 的话,其实是违背了 K8S 的初衷。我们并没有定制 K8S,我们是基于公有云给用户提供了原生的 K8S 产品。在公有云上提供原生的 K8S,其实要做很多的工作,例与公有云的计算、网络和存储的整合,给用户提供一个开箱即用的原生K8S集群等等。 我为什么说不应该定制呢?因为大家知道 PaaS 发展到今天,一直存在的一个问题就是供应商绑定的问题。而 K8S 之所以那么有生命力,之所以迅速流行,是因为它提供了一个开源的标准,让用户使用 K8S PaaS 平台,可以避免厂商绑定。也就是说你的服务在某个服务商的 K8S 上运行,可以无缝的迁移到另外一个服务商。 作为云厂商其实最重要的工作是,基于我们自身云平台的体系,提供原生的 K8S 给用户...阅读全文

博文 2019-06-14 08:28:49 debian.cn

使用 MongoDB 之前应该知道的 14 件事

本文作者从事数据库相关工作接近四十年,最近开始使用 MongoDB。在开始使用 MongoDB 之前,作者希望有些事情自己已经知道。根据一般经验,对于数据库是什么以及它们能干什么,人们会有先入为主的认识。为了给他人提供方便,本文列出了一些常见的错误。 本文要点 即使 MongoDB 没有强制要求,设计一个模式还是至关重要。 类似地,在设计模式及访问模式时设计好索引。 避免大对象,尤其是大数组。 谨慎对待 MongoDB 的设置,尤其是关乎安全和稳定性时。 MongoDB 没有查询优化器,因此,对于何安排查询操作的顺序,你必须格外小心。 创建一个无需身份验证的 MongoDB 服务器 很遗憾,MongoDB 在安装时默认不启用身份验证。在只从本地访问的工作站上,这没什么不好。但是,由于...阅读全文

“Debian 章程有毒” - OSCHINA

吵,Joey 也在这时离开了他贡献18年之久的 Debian。 If I have one regret for my 18 years in Debian, it's that when the Debian constitution was originally proposed, despite seeming dubious, I had neglected to speak out. It's clear to me now that it's a toxic document that has slowly but surely led Debian in very unhealthy directions. 果说我在 Debian 的18年有什么遗憾的话,那就是在...阅读全文

博文 2021-12-06 13:55:33 中文开源技术交流社区

Fedora28正式版发布:GNOME 3.28使用更优雅

深受Linux之父 -- Linus Torvalds 青睐的 GNU/Linux 发行版 - Fedora 于今天发布了 28.0 正式版。Fedora 28 带来了很多的新功能,但令桌面/工作站用户最为开心的事情就是引入了GNOME 3.28环境,支持Thunderbolt 3 端口并改善笔记本电池续航表现。 需下载Fedora 28,请访问 官方网站:https://getfedora.org/ ● Get Fedora 28 Workstation ● Get Fedora 28 Server ● Get Fedora 28 Atomic Host Fedora系统此前一直将GNOME作为默认桌面环境,而且最令人称道的一点在于Fedora并不会对该桌面环境进行修改和自定义。换句话...阅读全文

Consul 1.6 GA 发布

Consul 1.6.0 已于近日 发布 GA 版本 ,Consul 是 HashiCorp 公司推出的开源工具,也是主流的用于实现分布式系统服务发现与配置的方案。HashiCorp 对 Consul 的介绍是一个多云服务网络平台,用于在跨任何运行时平台和公共云或私有云的场景连接和保护服务。 本次更新主要集中在 Consul Connect(为其增加了一些主要新特性)和 Consul 的服务网格解决方案方面,此外还有一些改进和错误修复。 Consul 1.6 新特性 支持对 L7 层的流量管理 。1.6 使用了新的配置条目类型,可为服务到服务(service-to-service)的请求启用高级流量管理模式。其他配置条目类型服务解析器、服务隔离器以及服务路由器通过高级服务故障转移和部署模...阅读全文

Eric Raymond:Windows 10将成为Linux内核上的仿真层

微软的财务状况做为证据,比Linux系统已经是Windows的子系统(Windows Subsystem for Linux - WSL),以及即将发布 Ubuntu Linux系统下基于Chromium内核的Edge浏览器正式版。后者很容易理解,微软花了很少时间就把浏览器市场抢到了领先位置。 “微软开发者将Linux内核引入Windows功能,这表明让人超级感兴趣的技术方向。”Raymond是说。WSL让Linux二进制文件无需仿真就可以在Windows 10系统下运行。 另外的因素是Proton,可以在Linux上运行Windows二制流游戏,Raymond认为,Windows可以像在Linux内核的Proton一样成为仿真层,老的游戏程序和旧版软件都将位于该仿真层。 Windows...阅读全文

博文 2020-09-30 11:07:43 debian.cn

Jonathan Carter 再次当选为 Debian 项目负责人

Carter 的有 421 票,高于 Sruthi Chandran 的 341 票。 具体投票过程与结果分析访问:https://www.debian.org/vote/2021/vote_001 Jonathan Carter 在竞选宣言中描述了他的工作目标: - 改进财务相关工作,例提升财务透明度,更好地追踪资金的收入和使用情况 - 实行支出政策 (expendature policy),主要是让项目成员更清楚他们可以在哪些方面花钱以及何花钱,Jonathan Carter 表示项目成员之间对于这方面没有达成一致的认识,通常会导致这些成员不使用本来可以让 Debian 项目受益的资金 - 考虑正式注册 Debian 组织 今年选举 DPL 的投票中还提及到了是否应就 Richard...阅读全文

Bash Shell 中的 PROMPT_COMMAND

今天查看了一个系统初始化的 Shell 脚本,其中有一段命令是配置记录 bash 命令日志的,下: ``` LOGIN_IP=$(who am i | awk '{print $NF}') export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });echo $(date +"%Y-%m-%d %H:%M:%S") [$(whoami)@$SSH_USER$LOGIN_IP `pwd` ]" $msg" >> /var/log/.history; }' ``` 其中的 PROMPT_COMMAND 是 bash 的环境变量,这个变量的中内容是作为一个普通的 bash 命令执行的,而且执行时间是...阅读全文

基于 Debian 的 MX Linux 19.1 正式版发布

果你想要尝试下更有新鲜感的 GNU/Linux 系统,那么不妨来体验下最新发布的MX Linux 19.1版本更新版。 MX Linux同样是一款非常出色的GNU/Linux发行版本,而且在社区中的人气也处于快速升温状态,不过在普通用户群体中的知名度还不是很高。MX Linux基于Debian,并使用Xfce轻量级桌面环境,预装Firefox、LibreOffice等卓越应用程序。 MX开发团队今天表示:“我们非常欢迎你来使用MX 19.1版本。MX-19.1是MX-19分支的全新版本,包含了大量的BUG修复和软件更新。果你已安装了MX-19,那么不需要重新安装。所有软件均可通过常规更新渠道获得更新。” 开发团队进一步表示:“由于使用此更新版本的用户(使用更新的硬件,尤其是较新的AMD...阅读全文

基于 Qt 的开源笔记软件 VNote 1.11.1 发布

新年伊始,VNote发布小更新v1.11.1。顾名思义,这次更新将会很“小”,主要是修复已知问题。当然,这次更新也有值得大家浪费带宽下载的地方: 1. 更好的中文支持 这一次基本所有界面都已经支持中文了,强迫症表示幸福感来的有点突然。 2. 更好的复制粘贴 果大家之前使用VNote来编辑,然后在阅读模式将HTML文本复制到其他应用(OneNote或者邮件客户端)的话,那么这次绝对要更新了。现在VNote支持在阅读模式复制,基本格式无损地粘贴到其他富文本编辑器中,甚至支持文本图片混合复制哦!另外,还提供了无背景复制功能,让你的粘贴更酸爽! 3. 更好的主题 改进了主题,特别是针对暗色主题,让大家用得更舒服! 4. 外部程序支持快捷键 自定义外部程序现在支持快捷键了,从此可以一键打开喜欢的...阅读全文

博文 2018-01-05 23:43:22 debian.cn