InfraPub 为您找到相关结果 675

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

Go 语言官博发文展示了 Go 2 计划,征询社区和用户的意见。 先简单回顾 Go 语言发展历程: 2007 年 9 月 25 日,Rob Pike、Robert Griesemer 和 Ken Thompson 讨论构建一种新的编程语言,Rob 建议命名为 “Go” 。 随后,Russ Cox 和 Lance Taylor 加入 Go 语言设计团队。2009 年 11 月 10 日,Go 语言开源。 在开源社区的帮助下,Go 做了一系列改进,于 2011 年 10 月 5 日正式提出 Go 1 计划。2012 年 3 月 28 日 Go 1.0 正式发布。 Go 语言从酝酿到发布经历了五年,Go 1.x 开发也已续了五年,目前更新到了 1.9 版本(正式版计划 8 月发布),也是时候讨...阅读全文

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

2017 Linux 内核开发报告 Linux统治着计算机世界

。去年以来,来自 500 多家公司的 4300 多名开发者对内核做出了贡献。其中 1,670 个是首次贡献,约占贡献者的三分之一。 去年,Linux 内核的十大企业贡献者包括 Intel, Red Hat, Linaro, IBM, Samsung, SUSE, Google, AMD, Renesas 和 Mellanox。微软也仍在 贡献 ,但不再是最大的贡献者。 随着开发人员和公司数量的增加,Linux 的开发速度续加快。在 2015-16 年,每小时有 7.8 个补丁。去年内核每小时接受的平均更改次数为 8.5 次。这不是打字错误,确实是每小时 8.5 次的代码更改或每天 204 次的代码更改。 因为更高质量的补丁正在被合并,并且社区比以往任何时候都更好地修复回归。此外,英特尔的 0...阅读全文

博文 2017-10-26 10:57:34 debian.cn

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

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

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

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

type关键字,那么歧义就会消失: type A[type N] E 此外,使用小括号时产生的歧义似乎不会出现在方括号中。下面是一些使用方括号但不需要额外嵌套小括号的例子: using () using [] func f((T(int)) func f(T[int]) struct{ (T(int)) } struct{ T[int] } interface{ (T(int)) } interface{ T[int] } [](T(int)){} []T[int]{} 为了更好地理解以及进行测试,他们表示将开始对原型实现进行修改,让泛型能使用小括号或方括号(注意不能同时混用,只能使用其中一种)。这些修改将首先提交到 dev.go2go 分,最终会出现在 Go playground 上...阅读全文

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

如何使用 journalctl 清理 journal 日志

--vacuum-time=2d journalctl --vacuum-size=500M 如果要手工删除日志文件,则在删除前需要先轮转一次journal日志 systemctl kill --kill-who=main --signal=SIGUSR2 systemd-journald.service 要启用日志限制久化配置,可以修改 /etc/systemd/journald.conf SystemMaxUse=16M ForwardToSyslog=no 然后重启 systemctl restart systemd-journald.service 检查journal是否运行正常以及日志文件是否完整无损坏 journalctl --verifyjournal配置参考 [Journal...阅读全文

博文 2021-02-05 15:43:28 博客园

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 版本更新至最新版本添加ACL控制,禁止其他用户访问salt-master的4505、4506端口。将 saltstack 部署在内网中,目前saltstack的对于身份验证和鉴权还不足以安全的将其暴露在公网 漏洞爆出后,saltstack催促用户尽快应用 saltstack 官方推荐的加固方案 。如果你不想看英文,可参考以下要点: 系统的安全设置 1. 限制可以登录到salt-master的人员 2. 登录salt-master通过ssh密钥登录,并在密钥中添加密码验证 3. 妥善保管好你的ssh私钥 4. 通过堡垒机或者VPN来登录salt-master 5. 限制对外暴露的端口的数量 6. 保系统补丁更新 7. 将安全提高到高优先级列表中...阅读全文

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

Linux 进程 PID 编号最大为多少

整理本文,起源是看到知乎上的一个问题,为什么Linux的进程pid编号极限最大值( process pid max)是131070? 问题中提到,通过提问者的测试(Ubuntu18.04操作系统下),Python脚本实现的分配进行pid脚本,渠道系统自动分配给进程的最大pid值是131070,这是一个并不特殊的值。(通常可以想到的上限会是与二进制数字相关,例如1024,65536等等)。 很高兴,看到还是有很多人在坚知乎的本来精神,先问是不是,再问为什么。 Linux 内核的进程 PID 最大值并非 131070,而是 32768 (32 位系统)和 2 的 22 次方(64 位系统)。这是Linux手册中明确给出的说明: /proc/sys/kernel/pid_max (since...阅读全文

博文 2021-01-12 11:47:15 debian.cn

Scrapy 架构及数据流图简介

URL的类。 每个spider负责处理一个特定(或一些)网站。 Item Pipeline Item Pipeline负责处理被spider提取出来的item。典型的处理有清理、 验证及久化(例如存取到数据库中)。 下载器中间件(Downloader middlewares) 下载器中间件是在引擎及下载器之间的特定钩子(specific hook),处理Downloader传递给引擎的response。 其提供了一个简便的机制,通过插入自定义代码来扩展Scrapy功能。 Spider中间件(Spider middlewares) Spider中间件是在引擎及Spider之间的特定钩子(specific hook),处理spider的输入(response)和输出(items及requests...阅读全文

博文 2017-07-23 22:56:26 debian.cn

如何重启 Kubernetes 中的 Pods

{namespace} 这个方法简单粗暴有效。因为 Kubernetes 是声明式 API,所以删掉了之后,Pod API 对象就与预期的不一致了,便会自动重新创建 Pod 保与预期一致。但是如果ReplicaSet 管理的 Pod 对象很多的话,那么要一个个手动删除,会很麻烦,所以可以使用命令来删除 ReplicaSet, kubectl delete replicaset {rs_name} -n {namespace} 由于 Deployment 对象并不是直接操控的 Pod 对象,而是操控的 ReplicaSet 对象,而 ReplicaSet 对象就是由副本数目的定义和Pod 模板组成,所以我们也可以通过调整 ReplicaSet 的数量来实现重启,比如先 scale 到 0,然后再 scale...阅读全文

博文 2020-07-13 21:23:30 debian.cn

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

,RedHat 网站上所谓的 "Under Investigation" 只是继续等待 Linux 主线内核的修复,或许要让 Linux 内核安全有所改善我们需要更多的 stack clash 和 DirtyCow 续曝光。 因为利益的关系,Linux 基金会对自由软件社区和 GPL 已经非常不友好,虽然 Greg K-Hartman 一直强调 Linux 基金会是一个非盈利组织,但一个 NGO 的 CEO 为什么有高达 49 万美金(2014 财年)的年薪,也没人知道为什么 Greg 本人会有 Google 的邮箱(拿 Linux 基金会和 Google 双薪水?),Linux 内核本来有一次改善安全的机会,可惜 Linux 基金会的市场 PR 需求搞砸了整件事。HardenedLinux 社区在这...阅读全文

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

使用 tmate 分享你的终端会话

不久前,我们写过一篇关于 teleconsole 的介绍,该工具可用于快速分享终端给任何人(任何你信任的人)。今天我们要聊一聊另一款类似的应用,名叫 tmate。 tmate 有什么用?它可以让你在需要帮助时向你的朋友们求助。 什么是 tmate? tmate 的意思是 teammates,它是 tmux 的一个分,并且使用相同的配置信息(例如快捷键配置,配色方案等)。它是一个终端多路复用器,同时具有即时分享终端的能力。它允许在单个屏幕中创建并操控多个终端,同时这些终端还能与其他同事分享。 你可以分离会话,让作业在后台运行,然后在想要查看状态时重新连接会话。tmate 提供了一个即时配对的方案,让你可以与一个或多个队友共享一个终端。 在屏幕的地步有一个状态栏,显示了当前会话的一些诸如...阅读全文

博文 2017-12-06 10:33:33 debian.cn

Twitter确认接受440亿美元收购提议 埃隆·马斯克将完全控制该公司

他首次披露他在Twitter的9.2%股份时,他就创建一个"编辑"按钮向Twitter用户进行了调查,而实际上Twitter已经在开发这个按钮。他后来还建议取消Twitter Blue的广告并降低其订阅价格,并增加狗狗币作为付选项。 马斯克一直直言不讳地批评Twitter的内容管制,称自己是一个"言论自由的绝对主义者",并对该平台在他的控制下如何节制表示担忧。"马斯克在TED 2022期间接受克里斯-安德森的采访时说:"人们有一个现实和认知,即他们能够在法律的范围内自由发言,这一点非常重要。我认为从广义上讲,我们越是能增加对Twitter这个公共平台的信任,文明受损的风险就越小。" 马斯克最初在4月13日提出以每股54.20美元的价格收购Twitter。该提议是在马斯克披露收购...阅读全文

kubelet 中垃圾回收机制的设计与实现

表 evictUnits, err := cgc.evictableContainers(gcPolicy.MinAge) if err != nil { return err } // 2、回收 Deleted 状态以及 Terminated 状态的 pod,此处 allSourcesReady 指 kubelet // 的三种 podSource 是否都可用 if allSourcesReady { for key, unit := range evictUnits { if cgc.podStateProvider.IsPodDeleted(key.uid) || (cgc.podStateProvider.IsPodTerminated(key.uid...阅读全文

博文 2021-02-05 17:48:22 知乎

细数k8s支持的4种类型的container - 侃豺小哥

截止目前k8s1.18,k8s已经标准容器,sidecar容器,init 容器,ephemeral 容器 4种类型的containers。本文我们详细介绍一下这4种容器的特性已经使用场景。 Ephemeral 容器 临时容器与其他容器的不同之处在于,它们缺少对资源或执行的保证,并且永远不会自动重启,因此不适用于构建应用程序。临时容器使用与常规容器相同的 ContainerSpec 段进行描述,但许多字段是不相容且不允许的。 临时容器没有端口配置,因此像 ports,livenessProbe,readinessProbe 这样的字段是不允许的。 Pod 资源分配是不可变的,因此 resources 配置是不允许的。 有关允许字段的完整列表,请参见临时容器参考文档。 临时容器是使用...阅读全文

博文 2021-08-20 11:45:32 博客园

Hadoop 核心 - HDFS 分布式文件系统详解

(NameSpace) HDFS 传统的层次型文件组织结构。用户或者应用程序可以创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似:用户可以创建、删除、移动或重命名文件。 Namenode 负责维护文件系统的名字空间,任何对文件系统名字空间或属性的修改都将被 Namenode 记录下来。 HDFS 会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data。 4. NameNode 元数据管理 我们把目录结构及文件分块位置信息叫做元数据。NameNode 负责维护整个 HDFS 文件系统的目录树结构,以及每一个文件所对应的 block 块信息(block 的...阅读全文

三个简单而优秀的 Linux 网络监视器

你可以通过 iftop、Nethogs 和 vnstat 这三个 Linux 网络命令,了解有关你网络连接的大量信息。iftop 通过进程号跟踪网络连接,Nethogs 可以快速显示哪个在占用你的带宽,而 vnstat 作为一个很好的轻量级守护进程运行,可以随时随地记录你的使用情况。 iftop iftop 监听你指定的网络接口,并以 top 的形式展示连接。 这是一个很好的小工具,用于快速识别占用、测量速度,并保网络流量的总体运行。看到我们使用了多少带宽是非常令人惊讶的,特别是对于我们这些还记得使用电话线、调制解调器、让人尖叫的 Kbit 速度和真实的实时波特率的老年人来说。我们很久以前就放弃了波特率,转而使用比特率。波特率测量信号变化,有时与比特率相同,但大多数情况下不是。 如果你只...阅读全文

博文 2017-11-07 00:07:38 debian.cn

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

开发和发布时间表后,新版本的 Linux kernel 现在基本每隔 66 天左右发布一次。 18、Linux 不是 Linus Trovalds 唯一知名的作品,还有 Git 版本控制系统和潜水应用 SubSurface 。 19、据估计,90% 的好莱坞视觉效果在生产流程的某个阶段依赖于 Linux 。 20、根据 openhub.net 的统计数据,超过 95% 的 Linux 是用 C 语言编写的。 21、最新版本的 Linux kernel 可能有 13.3%的代码由空行组成。这并非毫无意义,空行是严谨的编码风格的一部分,使内核保整洁、高效和有序。 22、基于 Linux 的 Android 是目前全球最成功的移动操作系统。 23、Linux 的每个内核版本都有一个有趣的代号,比...阅读全文

Debian的版本号及distributions

distribution的revision level递增,比如从3.0变为3.0r1,2.2r4变为2.2r5 APT::Default-release 在不同的环境下,我们对debian系统的要求也会不同,比如在生产环境下,我们希望系统是相当稳定的,这时stable就是最好的选择;而对于一个喜欢尝试新功能、新软件的用户,testing或unstable可能更合适些。要达到这样的要求,我们可以在/etc/apt/sources.list文件中只指定一种distribution源,比如想使用stable distribution,就在sources.list里只加入stable源,这样系统上安装的package的版本都会是进入了stable的版本。但有些时候我们也需要一个混合的系统,比如希望在保整个系统是...阅读全文

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

Python的闭包和装饰器

了一个闭包——inner_func,并且该闭包有自由变量——name,因此这也意味着,当函数func的生命周期结束之后,name这个变量依然存在,因为它被闭包引用了,所以不会被回收。 另外再说一点,闭包并不是Python中特有的概念,所有把函数做为一等公民的语言均有闭包的概念。不过像Java这样以class为一等公民的语言中也可以使用闭包,只是它得用类或接口来实现。 nonlocal 语句 在 python 的函数内,可以直接引用外部变量,但不能改写外部变量,因此如果在闭包中直接改写父函数的变量,就会发生错误: 在 python 2 中可以在函数内使用 global 语句,但全局变量在任何语言中都不被提倡,因为它很难控制,python 3 中引入了 nonlocal 语句解决了这个问题...阅读全文

博文 2014-07-23 17:06:38 debian.cn

nsenter 及 Linux命名空间 简介

nsenter 是一个可以在指定进程的命令空间下,运行程序的命令,它位于 util-linux 包中。 nsenter 用途 nsenter 的一个典型用途是进入容器的网络名字空间,进行网络相关的排障。大多数容器,为了保轻量,没有包含较为基础的命令,比如说 ip,ping,telnet,ss,tcpdump等,这就给容器内的网络调试带来困扰。这时就可以使用 nsenter 命令仅进入到容器的网络命名空间,使用宿主机的相关命令调试容器网络。 此外,nsenter也可以进入 mnt, uts, ipc, pid, user 命令空间,以及指定根目录和工作目录。 nsenter 使用 首先看下nsenter命令的语法: nsenter [options] [program [arguments...阅读全文

博文 2020-12-15 11:22:44 debian.cn

新加坡华侨银行(OCBC) 零门槛开户 使用APP在家即可申请

者自己手机自带的商店。2. 进入开户流程准备好所需材料,开始进入开户流程。1 打开APP 选择简体中文。如果没有弹出,可以点击右上角来选择语言。然后,点击 【注册成为新客户】​2 选择第二项 【电子护照的外国人】,然后点击【开始申请】​输入介绍人代码 【 IRVU37JB 】,可以获得 15 新币,大约80元人民币的奖励。不写的话没有任何奖励。​3 国家代码点进去选择中国大陆 +86,手机号和邮箱输入自己的即可。然后,接收验证码并填写。​4 点击下一步,扫描护照条形码。这一步,把护照打开到有人像的那一页,然后在光线充足的地方使用手机扫描。 需要一些耐心,扫描可能不会很快,手拿稳多试试即可。​5 NFC 读取护照芯片。护照合上,手机背面贴在护照正面上,开始读取。缓缓移动手机,调整到可以读取的...阅读全文

Golang 中的 channel 通道详解

制将在编译期检测。func f1(out chan<- int) {} func f2(out chan<- int, in <-chan int){} 在调用f1或f2的时候,传入的chan类型参数会自动隐式转换为chan<- int 和<-chan int类型,这种转换只是单向的,没有单向channel类型转换为chan类型。因为关闭操作只用于断言不再向channel发送新的数据,所以只有在发送者所在的goroutine才会调用close函数,因此对一个只接收的channel调用close将是一个编译错误。带缓存的channel带缓存的Channel内部有一个元素队列。队列的最大容量是在调用make函数创建channel时通过第二个参数指定的。通过内置函数cap() 可以获得...阅读全文

Debian 往事: 与已故创始人 Ian Murdock 的昔日访谈

Debian 在他离开之后还能续发展非常欣慰。 我总是说,我离开 Debian 这个项目之后才发现这个项目肯定会成功。因为我的离开意味着 Debian 将会自生自灭自力更生,它将在没有我的情势下独立发展。事实证明它做到了,而且不仅仅是生存下来了,还做到了大范围的推广普及。对此我非常自豪。 2016 年的今天,我们终于发现 Murdock 是多么有先见之明。最近的 GNU/Linux 发展史家谱明确地告诉了我们 Debian 在免费软件领域究竟有多大的影响力,开发 Debian 的那位伟人对此做出了多大的贡献。 本文转载自: http://tech2ipo.com/10027118,英文原文参考这里。...阅读全文

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

Debian 9 使用kubeadm创建 k8s 集群(下)

worker1 Ready 1d v1.14.0 worker2 Ready 1d v1.14.0 如果所有节点都具有Ready for STATUS值,则表示它们是群集的一部分并准备好运行工作负载。 但是,如果一些节点将NotReady作为STATUS ,则可能意味着工作节点尚未完成其设置。 等待大约五到十分钟,然后重新运行kubectl get nodes并检查新输出。 如果少数节点仍具有NotReady作为状态,则可能必须验证并重新运行前面步骤中的命令。 现在您的集群已成功验证,让我们在集群上安排一个示例Nginx应用程序。 第7步 - 在群集上运行应用程序 您现在可以将任何容器化应用程序部署到您的群集。 为了保熟悉,让我们使用部署和服务部署Nginx,以了解如何将此应用程序部署到集群。 如果更...阅读全文

博文 2019-05-13 22:57:41 debian.cn