Debian 13 代号为Trixie:《玩具总动员》的蓝色恐龙
,Debian 11 Bullseye 的第一个里程碑“过渡和构建基础冻结”将会发生在 2021 年 1 月 12 日;第二个里程碑“软冻结”于 2 月 12 日,新增的第三个里程碑“硬冻结”在 3 月 12 日,而第四个里程碑“完全冻结”日期还未定。...阅读全文
,Debian 11 Bullseye 的第一个里程碑“过渡和构建基础冻结”将会发生在 2021 年 1 月 12 日;第二个里程碑“软冻结”于 2 月 12 日,新增的第三个里程碑“硬冻结”在 3 月 12 日,而第四个里程碑“完全冻结”日期还未定。...阅读全文
据Android Police报道,谷歌的全新操作系统Fuchsia正在Pixelbook平台上进行测试。测试的项目是打开开发者模式和实现USB启动。Pixelbook发布于今年10月份,运行Chrome OS系统,采用12.3寸触控屏幕,QHD分辨率高清屏,像素密度高达235ppi,支持背光的软触键盘,可选酷睿i5/i7处理器、最高16GB内存+512GB 存储,10小时电池续航,拥有2× USB-C接口。 此前,Fuchsia还支持了宏碁的Switch Alpha 2和Intel NUC,看起来测试的范围相当广泛。 资料显示,Fuchsia最大的不同的是,拒绝使用Linux内核,而是启用了自己开发的微内核Magenta(或者说Zircon)。 Fuchsia使用了多种语言,包括C...阅读全文
,以避免出现代码丢失等问题。在切换分支的时候,我们需要确保其他人都知道这个操作,并且保证他们的代码状态是干净的。六、SVN切换分支的优缺点在软件开发中,我们需要经常进行分支管理,因此,SVN的分支管理功能就显得尤为重要了。下面我们来看一下,SVN切换分支的优缺点。1. 优点SVN切换分支的最大优点就是方便快捷。通过SVN我们可以很方便地将工作副本切换到不同的分支,这样可以让我们更加高效地进行代码管理和开发工作。此外,SVN还提供了完善的分支合并机制,可以帮助我们更好地保持代码的稳定性。2. 缺点SVN的缺点主要体现在以下几个方面:(1)SVN对源代码有一定的限制;(2)SVN操作过程较为繁琐;(3)SVN的并发处理能力相对较差。七、总结综上所述,SVN切换分支是一项非常重要的基础操作,在软件开...阅读全文
,Go 1 更多的是确保能快速构建包含很多独立软件包的程序。Go 2 的目标是通过允许带有类型参数的参数多态来解决编写 Go 库的问题,这些问题抽象出了不必要的类型细节。 此外,除了预期的容器类型之外,开发团队还希望能编写有用的库来操作任意的 map 和 channel 值。理想方案是编写能够同时操作 [ ]byte 和 string 值的多态函数。 type List(type T) []T func Keys(type K, V)(m map[K]V) []K 更多细节请查阅Golang 2 设计草案页面。...阅读全文
Metasploit 项目是一个旨在提供安全漏洞信息的计算机安全项目,可以协助安全工程师进行渗透测试(penetration testing)及入侵检测系统签名开发。Metasploit 项目知名的功能还包括反取证与规避工具,其中的某些工具已经内置在 Metasploit Framework 里面。 Metasploit Framework —— 一套针对远程主机进行开发和执行 “exploit代码” 的工具,是 Metasploit 的最为知名的子项目。Metasploit Framework 全称为 The Metasploit Framework,简称 MSF。这是一个渗透测试的框架,不是一个直接的渗透测试攻击软件。Metasploit 作为全球最受欢迎的工具,不仅仅是因为它的方便性...阅读全文
没有人在做任何竞选活动。” 为什么大家都不愿担任领导人呢? Debian 领导人的主要职能有两项:一方面是代表 Debian 到世界各地,在会议上进行分享,同时处理项目与其它团队和公司的关系;另一方面是行政上的,领导人要管理项目资金,任命开发者在项目中担任不同角色,并负责项目中的一些细节。 但是公开信中也指出,实际上,因为 Debian 项目把各种各样的权限都下放到社区成员中,导致领导人的实权实际上并没有多少。比如,个别开发者几乎可以完全控制他们维护的软件包;开发人员之间的技术分歧很大的时候,将由项目技术委员会处理;发布管理者与 FTP 主人有权最终决定项目实际发布的内容,以及何时发布;项目秘书负责确保遵循必要的程序;政策团队处理项目的大部分总体设计。 另一方面,Debian 领导人这个职位...阅读全文
对于云主机与云主机之间,只有轻微差异(小包场景下,pps 会有 3~5% 损耗),而且Pod网络性能各项指标(吞吐量,包量,延迟等)不会随着节点规模增大而削减。而Flannel UDP,VXLan模式和Calico IPIP的模式存在明显的性能消耗。Pod能直通公有云和物理云。对于使用公有云和物理云的用户而言,业务上K8S少了一层障碍,多了一份便利。而Flannel的host gw模式下,容器无法访问公有云和物理云主机。 而CNI的工作流程如下所示。 创建Pod网络过程: 删除Pod网络过程: Pod IP 消失问题的排查与解决 为了测试CNI插件的稳定性,测试同学在UK8S上部署了一个CronJob,每分钟运行一个Job任务,一天要运行1440个任务。该CronJob定义如下...阅读全文
Williams 却坚持认为取代 live-build 很有必要。Learmonth 给 live-build-ng 换了一个争议性也许小一些的名字: live-wrapper 。他说他的目标是为 Debian Live 项目加入新的工具(并且「把 Debian Live 项目引入 Debian 里面」),但是完成这件事还需要很大的努力。 我向已经被 ITP 问题所困扰的每个人道歉。我们已经告知大家 live-wrapper 还不足以完全替代 live-build 且开发工作仍在进行以收集反馈。尽管有了这部分的工作,我们收到的反馈缺并不是我们所需要的。 这种对于取代 live-build 的强烈反对或许已经被预知到了。自由软件社区的沟通和交流很关键,所以,计划去替换一个项目的核心很容易引起争议——更何况是...阅读全文
很多人误以为shell脚本只能在命令行下使用。其实shell也可以调用一些GUI组件,例如菜单,警告框,进度条等等。你可以控制最终的输出,光标位置还有各种输出效果。下面我将介绍一些工具,帮助你创建强大的,互动的,用户友好的 Unix/Linux shell脚本。我在FreeBSD和Linux下测试过这些工具,不过其他UNIX系列的操作系统应该都支持的。 1. notify-send 命令 这个命令可以让你通过通知进程发送一个桌面通知给用户。这可以用来向用户发送提示,或者显示一些信息而不用打断用户工作。你需要安装如下软件包: $ sudo apt-get install libnotify-bin 下面这个例子展示了如何从命令行向桌面发送一个简单的消息: notify-send...阅读全文
broker-0、broker-1等…… Topic:消息的主题,可以理解为消息的分类,kafka的数据就保存在topic。在每个broker上 都可以创建多个topic。实际应用中通常是一个业务线建一个topic。 Partition:Topic的分区,每个topic可以有多个分区,分区的作用是做负载,提高kafka的吞 吐量。同一个topic在不同的分区的数据是不重复的,partition的表现形式就是一个一个的⽂件夹! Replication:每一个分区都有多个副本,副本的作用是做备胎。当主分区(Leader)故障的 时候会选择一个备胎(Follower)上位,成为Leader。在kafka中默认副本的最大数量是10 个,且副本的数量不能大于Broker的数量,follower和leader绝对...阅读全文
投票,也就是弹劾机制,可将任期内的当权者赶下台;它严格限定了在委员会里,只允许少于 50% 的成员是企业(5 人委员会里最多有 2 个);并且关注到核心开发者的选举/淘汰、如何更新治理提案等问题。 而且,PEP 8016 中也提出了新的 PEP 流程,目前的 PEP 流程是提案人确定 PEP 的选题方向,提案人负责收集与整合来自整个社区的反馈。然后,相关领域的专家们汇总全部讨论,并开启为期 14 天的审查,之后进行社区投票。如果一个 PEP 很有争议,任何专家成员都可发起动议来拒绝通过它,这需要超过 2/3 的票数。PEP 8016 的 PEP 流程:理事会在必要时可直接地批准/否决 PEP,但最好是设置流程来避免这样做决策,例如,将决策权委派给团队或者 BDFL 代表。 7 种治理方案一览...阅读全文
,无论你有多大的聪明才智,也无论你如何努力进取,总会有一个你胜任不了的职位在等待着你,并且你一定会达到那个位置。这就是著名的彼得原理。 吉尔伯特法则 吉尔伯特法则是由吉尔伯特提出的一条管理定律,指出“工作危机最确凿的信号,是没有人跟你说该怎样做。” 它告诉我们一个道理:作为下属,当有人教训和指点的时候都是福气,都意味着关心。怕就怕没有人说你什么,也没有人教你怎么做。这等于说你没人管了,游离于纪律、规章的制约之外,看似自由,其实危机四伏。 沃尔森法则 沃尔森法则是美国企业家沃尔森提出的法则。主旨为把信息和情报放在第一位,金钱就会滚滚而来。你能得到多少,往往取决于你能知道多少。 要在变幻莫测的市场竞争中立于不败之地,你就必须准确快速地获悉各种情报:市场有什么新动向?竞争对手有什么新举措?……在获得...阅读全文
) FreeBSD的Ceph的第一个版本可用。通过常规FreeBSD端口和软件包发布系统,最新可用版本:net/ceph-devel。 在 Jewel(v10.2.z)版本上进行的重要修改 RADOS 现在默认为AsyncMessenger (ms type = async)的传统SimpleMessenger。最明显的区别是 我们现在使用固定大小的线程池进行网络连接(而不是使用SimpleMessenger,一个socket两个线程)。 优化OSD故障检测时间,而以前的心跳超时(默认为20秒)。 优化OSDMaps的代码量。 集群在进行重平衡/数据恢复时,OSD会停止Scrub。 RGW RGW现在支持S3多对象复制API。 现在可以离线重塑现有的分支。离线目前,桶重塑要求所有IO(特别是写入)到特定的桶...阅读全文
#TTYPath=/dev/console MaxLevelStore=warning MaxLevelSyslog=warning MaxLevelKMsg=warning MaxLevelConsole=info #MaxLevelWall=emerg #LineMax=48K 配置目录及其优先级 默认设置是在编译期间确定的, 所以仅在确实需要修改默认设置的情况下, 才需要使用配置文件。位于 /etc/systemd/ 目录中的初始配置文件, 仅包含了展示选项默认值的注释, 目的在于方便系统管理员查看和直接修改。 如果软件包想要自定义某些默认设置, 那么必须将自定义的配置文件安装到 /usr/lib/systemd/*.conf.d/ 目录中。 /etc/ 目录仅供系统管理员使用。 系统管理员可以利用...阅读全文
最近有时间,都在看Go,感觉Go语言真的不错,具体自行百度。今天简单说一下算法。 什么是算法一系列的计算步骤,用来将输入数据转化成输出结果算法的意义用于解决特定的问题解决同一个问题的不同算法的效率常常相差非常大,这种差距的影响往往比硬件和软件方面的差距还要大。 算法在我们编程开发中,还是不可或缺的。下面简单来列举一下go语言常见的十大算法。 BubbleSort(冒泡排序) func Sort(list []int, left, right int) { if right == 0 { return } for index,num := range list { if index < right && num > list[index + 1] { utils.SwapGo(list...阅读全文
码的困境结束,从而实现更快的开发。 简而言之,Web框架可以简化Web开发。 如果您想深入了解Web框架及其优点,请点击此处。 为什么Django是Python开发者的最佳选择 Django是一个Python编写的,高级的,MVC风格的开源库。 Django也被称为“完美主义者的最终框架”,它最初是为新闻网站设计的,因为它允许开发人员编写数据库驱动的Web应用程序,而无需从头开始编码。 除了更快完成常见的Web开发任务,Django还可以保持设计干净且实用。 Django是Python Web开发新人的最佳选择,因为官方文档和教程是几个(同类)软件开发框架中最好的。 技术市场充斥着一系列网络框架,但Django在最受欢迎的服务器端Web框架里处于顶峰位置。设计Django背后的座右铭很简单...阅读全文
回绑定变量后的函数(也即闭包),此时即便生成闭包的环境(父函数)已经释放,闭包仍然存在,这个过程很像类(父函数)生成实例(闭包),不同的是父函数只在调用时执行,执行完毕后其环境就会释放,而类则在文件执行时创建,一般程序执行完毕后作用域才释放,因此对一些需要重用的功能且不足以定义为类的行为,使用闭包会比使用类占用更少的资源,且更轻巧灵活,现举一例:假设我们仅仅想打印出各类动物的叫声,分别以类和闭包来实现: 可以看到输出结果是完全一样的,但显然类的实现相对繁琐,且这里只是想输出一下动物的叫声,定义一个 Animal 类未免小题大做,而且 voice 函数在执行完毕后,其作用域就已经释放,但 Animal 类及其实例 dog 的相应属性却一直贮存在内存中: 而这种占用对于实现该功能后,则是没有必要...阅读全文
ghcr.io/vmware-labs/php-wasm 7.4.32-cli-aot 63460740f6d5 44 minutes ago 5.35MB 这是意料之中的,因为对于 Wasm,我们只需要在容器内添加可执行二进制文件,而对于传统容器,我们仍然需要来自运行二进制文件的操作系统的一些基本库和文件。这种大小差异对于第一次拉取镜像的速度以及进行在本地存储库中占用的空间非常有帮助。Wasm 可移植性Wasm 最大优势之一就是它的可移植性。 当人们想要一个可移植的应用程序时,Docker 已经提供了传统的容器作为一种选择。 然而,除了镜像特别大之外,传统容器还绑定到它们运行的平台架构。 作为程序员,相比许多人都经历过这种坎坷:针对不同的架构,必须构建支持的软件版本,并为每种架构打包对应镜像...阅读全文
Docker基于mamespace、cgroups、chroot等技术来构建容器,不是一个系统调用就能搞定,容器是一个用户态的概念。本文中Docker软件工程师Michael Crosby深入探讨了Docker对namespace技术的应用。 相信你在很多地方都看到过“Docker基于mamespace、cgroups、chroot等技术来构建容器”的说法,但你有没有想过为何容器的构建需要这些技术? 为什么不是一个简单的系统调用就可以搞定?原因在于Linux内核中并不存在“linux container”这个概念,容器是一个用户态的概念。 Docker软件工程师Michael Crosby将撰写一些列博客,深入到Docker运行的背后,探索在 docker run这段代码的背后发生了什么...阅读全文
!版权声明:本博客内容均均为原创,每篇博文作为知识积累,写博不易,转载请注明出处。 目录[-] 参考地址: Nacos 官方文档 系统环境: Nacos 版本:1.4.1 Mysql 版本:8.0.19 Kubernetes 版本:1.20.1 项目示例地址: Kubernetes 中部署 Nacos 的部署文件 Kubernetes 中部署 Mysql 数据库部署文件 如果该文章对你有帮助,别忘了 Github 帮忙点颗星哦~ 一、什么是 Nacos Nacos 是阿里开源的服务注册中心与配置中心组件,能够帮助开发人员快速实现动态服务发现、服务配置、服务元数据及流量管理。同时能够与 SpringCloud、Kubernetes、Dubbo 等开源生态无缝集成。 Nacos 支持如下核心特...阅读全文
,非常的耗时且影响集群的可用性。元数据更新网络开销大整个元数据的更新操作也是以全量推的方式进行,网络的开销也会非常大。强耦合违背软件设计原则Zookeeper对于运维来说,维护Zookeeper也需要一定的开销,并且kafka强耦合与zk也并不好,还得时刻担心zk的宕机问题,违背软件设计的高内聚,低耦合的原则。网络分区复杂度高Zookeeper本身并不能兼顾到broker与broker之间通信的状态,这就会导致网络分区的复杂度成几何倍数增长。zk本身不适合做消息队列zookeeper不适合做消息队列,因为zookeeper有1M的消息大小限制 zookeeper的children太多会极大的影响性能znode太大也会影响性能 znode太大会导致重启zkserver耗时10-15分钟...阅读全文
激励是指激发人的行动动机的心理过程,是一个不断朝着期望的目标前进的循环的动态过程。简言之,就是在工作中调动人的积极性的过程。激励是对人的一种刺激,是促进和改变人的行为的一种有效的手段。激励的过程就是管理者引导并促进工作群体或个人产生有利于管理目标行为的过程。每一个人都需要激励,在一般情况下,激励表现为外界所施加的推动力或吸引力,转化为自身的动力,使得组织的目标变为个人的行为目标,促进团队合作的的动力,使企业更高效的达成既定目标!团队激励的八大方法1、为团队成员设立共同的奋斗目标依照激励理论,共同的奋斗目标是调动全体团队成员积极性的利器,这个目标必须是可衡量的和可实现的。人的动机与行为都有一定的目的性,而建立明确的目标,就能有效地激发和引导人们的动机,鼓舞和激励人们采取积极的方法去努力奋斗...阅读全文
Slot中。 有一些客户端(如Redisson)实现了集群化的pipelining操作,可以自动将一个pipeline里的命令按key所在的分片进行分组,分别发到不同的分片上执行。但是Redis不支持跨分片的事务,事务和LUA Script还是必须遵循所有key在一个分片上的规则要求。 主从复制 vs 集群分片 在设计软件架构时,要如何在主从复制和集群分片两种部署方案中取舍呢? 从各个方面看,Redis Cluster都是优于主从复制的方案 Redis Cluster能够解决单节点上数据量过大的问题 Redis Cluster能够解决单节点访问压力过大的问题 Redis Cluster包含了主从复制的能力 那是不是代表Redis Cluster永远是优于主从复制的选择呢? 并不是。 软件架构永远不...阅读全文
MongoDB 服务器都很重要。尤其是,除非有非常好的理由要使用mapReduce、group 或 $where,否则你应该 在配置文件中设置 javascriptEnabled:false,禁用 JavaScript。因为标准 MongoDB 的数据文件是不加密的,另外, 使用专门的用户运行 MongoDB 也是一个明智的做法,对数据文件的完全访问仅限于那个用户,这样就可以使用操作系统自带的文件访问控制了。 没有设计一个模式 对于模式,MongoDB 没有强制要求。这不是说它不需要模式。如果你真想保存文档而又没有一致的模式,那么你可以非常快速、简单地保存它们,但是 检索会十分麻烦 。 “MongoDB 模式设计的六大经验原则 ”是一篇值得一读的经典文章,而第三方工具(如 Studio 3T)提供的类似...阅读全文
- 框架类组件配置,比如CAT客户端的配置。虽然这类框架类组件是由其他团队开发、维护,但是运行时是在业务实际应用内的,所以本质上可以认为框架类组件也是应用的一部分。这类组件对应的配置也需要有比较完善的管理方式。 2、Why Apollo 正是基于配置的特殊性,所以Apollo从设计之初就立志于成为一个有治理能力的配置管理平台,目前提供了以下的特性: 统一管理不同环境、不同集群的配置 Apollo提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空间(namespace)的配置。同一份代码部署在不同的集群,可以有不同的配置,比如zk的地址等通过命名空间(namespace)可以很方便的支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆...阅读全文
API收集堆栈跟踪和跟踪内存分配,因而其可以和OpenJDK、Oracle JDK和其他基于HotSpot JVM的Java应用在运行时协同工作。 Github项目链接地址:https://github.com/jvm-profiling-tools/async-profiler Async-profiler可以跟踪以下类型的事件: CPU周期; 硬件和软件性能计数器,如缓存未命中、分支未命中、页面错误、上下文切换等; Java堆中的分配; 满足的锁定尝试,包括Java对象监视器和可重入锁; 支持的平台Linux / x64 / x86 / ARM / AArch64macOS / x64注意:macOS分析仅限于用户空间代码。 生成的火焰图,绿色代表用户栈,黄色代表jvm,红色代表内核;横坐标...阅读全文
打印“Hello World!”,进而要他们记忆 printf 的各种“格式字符”的意义,要他们实现各种复杂格式的打印输出,甚至要求打印到文本文件里,然后再读出来…… 可是殊不知,这种输出输入操作其实根本不算是语言的一部分,而且对于掌握编程的核心概念来说,都是次要的。有些人的 Java 课程进行了好几个星期,居然还在布置各种 printf 的作业。学生写出几百行的 printf,却不理解变量和函数是什么,甚至连算术语句和循环语句都不知道怎么用!这就是为什么很多初学者感觉编程很难,我连 %d,%f,%.2f 的含义都记不住,还怎么学编程! 然而这些野鸡大学的“教授”头衔是如此的洗脑,以至于被他们教过的学生(比如我女朋友)到我这里请教,居然骂我净教一些没用的东西,学了连 printf 的作业都没...阅读全文
了10个工作日的延期,那我们会针对这个问题抽取指标分析原因,但如果下个版本此问题不存在,则指标取消。当然,如果目前的指标集不能反映当前问题,我们会根据实际情况扩充指标集。固定通用指标是指业界认可的一些评定标准,如开发代码千行代码bug率;或者对于项目人员关注的指标信息我们也会将这类指标抽取出来作为通用指标,如线上遗留问题原因等。以输入法为例,下图是输入法项目总结中的指标集。总结:1)制定的指标可以通过定量的数据衡量;2)制定的指标要项目组三方认知达成一致,且三方都认可。3. 项目数据分析在第二步中选取指标后,我们就要根据指标进行数据分析。在数据分析过程中我们要注意异常数据,对于异常数据我们要进行深入分析,直到找到问题的根本,数据的分析才算到位。总结:1) 对通用指标的数据分析时,一般不少于三...阅读全文
一、HAProxy简介 (1)HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在时下的硬件上,完全可以支持数以万计的 并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。 (2)HAProxy 实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户端(User...阅读全文
在集群化环境里,日志采集是重要基础设施。本文结合最新的 1.0.9 版,对 logpipe 做一个简单的介绍。开源主流解决方案是基于 flume-ng,但在实际使用中发现 flume-ng 存在诸多问题。 比如 flume-ng 的 spoolDir 采集器只能对文件名转档后的大小不能变化的最终日志文件进行采集,不能满足采集时效性要求,如果要采集正在被不断追加的日志文件,只能用 exec 采集器搭配 tail -F 命令,但 tail -F 命令又不能通配目标目录中将来新增的未知文件名。其它解决方案如 logstash 由于是 JAVA 开发,内存占用和性能都不能达到最优。 作为一个日志采集的本地代理,内存占用应该小而受控,性能应该高效,耗费 CPU 低对应用影响尽可能小,要能异步实时追踪...阅读全文
WordPress 开发团队刚刚发布了 WordPress 4.8 正式版,现在已经可以下载了。该版本以爵士乐钢琴家和作曲家 William John “Bill” Evans 的名字命名。WordPress 4.8 的新功能,讲给你提供更多的方式,让你来在网上表达自我和展现品牌。 虽然 WordPress 4.8 都是一些小的改进,但这些改进都是用户们所关注的,由数以百计的开发者共同完成的。现在,我们来一起看看这些关注已久的新功能:链接功能改进;三个媒体挂件(小工具)包括:图片、音频、和视频;文本挂件(小工具)增加了可视化编辑功能;管理后台增加了新模块,显示附近即将举行的 WordPress 活动。 令人激动的挂件更新 图片挂件(小工具) 往挂件里添加图片,现在可以说是非常简单了...阅读全文
Vsftpd的安装: aptitude update //更新数据源列表 aptitude install vsftpd //安装vsftpd Vsftpd的文件结构: /usr/sbin/vsftpd —- VSFTPD的主程序 /etc/init.d/vsftpd —- 启动脚本 /etc/vsftpd.conf —- 主配置文件 /etc/pam.d/vsftpd —- PAM认证文件 /etc/ftpusers —-记录不允许访问FTP服务器的用户名单 /home/ftp —-Vsftpd的根目录 此外VSFTPD的日志文件为/var/log/vsftpd.log。 Vsftpd的管理控制。 /etc/init.d/vsftpd start //启动vsftpd /etc...阅读全文
当 Torvalds 将某些代码标记为“dontuse”,通常表明这个问题比较大。在 5.12 首个候选版本更新中,破坏了交换文件(swapfile)的处理。具体来说,更新后的代码会失去指向 swapfile 开头的正确偏移。用 Torvalds 自己的话来说,“交换还是会发生,但它发生在文件系统的错误部分,最终结果显然是灾难性的”。这样 Linux 内核如果想要将内存中的内容分页到磁盘上的时候,数据就会落在相同磁盘和 swapfile 活跃的分区的随机部分上,而且这不是作为文件,而是作为垃圾直接写入到磁盘的原始扇区。这意味着不仅要覆盖现有文件中的数据,还要覆盖相当大块的元数据,这些元数据的损坏很可能会导致整个文件系统无法挂载和使用。Torvalds 继续指出,如果你根本不使用 swap...阅读全文
在去年年初,SUSE 的开发者向 Linux 内核提交了一个 v2 补丁,该补丁将 ReiserFS 文件系统标记为已弃用,并将会在 2025 年从内核中正式删除它。删除的原因主要是过去十多年该文件系统都不再活跃,并且在现代内核的生产用例中也不太可能再使用。基于差不多的原因,日前开发者也开始着眼讨论 Journaled File-System(JFS)文件系统是否还应该在内核中继续保留的问题。内核开发者 Christoph Hellwig 在邮件列表中表示:不久前,我们已经弃用了 ReiserFS,并计划将其删除。看着 JFS 中的代码,我想知道我们是否也应该这样做。虽然 JFS 不像 ReiserFS 那么复杂,但它的使用率也很低,而且从未成为任何主要发行版中的默认文件系统。1990...阅读全文
在以前,很多从其他语言转过来 Go 语言的同学会问到,或是踩到一个坑。就是以为 Go 语言所打包的二进制文件中会包含配置文件的联同编译和打包。 结果往往一把二进制文件挪来挪去,就无法把应用程序运行起来了。因为无法读取到静态文件的资源。 无法将静态资源编译打包进二进制文件的话,通常会有两种解决方法: 第一种是识别这类静态资源,是否需要跟着程序走。第二种就是考虑将其打包进二进制文件中。 第二种情况的话,Go 以前是不支持的,大家就会去借助各种花式的开源库,例如:go-bindata/go-bindata 来实现。 但从在 Go1.16 起,Go 语言自身正式支持了该项特性,今天我们将通过这篇文章快速了解和学习这项特性。 基本使用 演示代码: import _ "embed...阅读全文
Scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘、信息处理或存储历史数据等一系列的程序中。本文着重介绍 Scrapy 架构及其组件之间的交互。 Scrapy 组件介绍 Scrapy Engine 引擎负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件。 详细内容查看下面的数据流(Data Flow)部分。 调度器(Scheduler) 调度器从引擎接受request并将他们入队,以便之后引擎请求他们时提供给引擎。 下载器(Downloader) 下载器负责获取页面数据并提供给引擎,而后提供给spider。 Spiders Spider 是 Scrapy用户编写用于分析response并提取item(即获取到的item)或额外跟进的...阅读全文
Docker v1.13.0 正式版发布了。需要注意的是,在 Docker 1.13 中,与在 Docker 1.12 中引入的实验版本相比,管理插件 api 发生了变化。在升级到 Docker 1.13 之前,必须卸载使用 Docker 1.12 安装的插件。可通过 docker plugin rm 命令卸载插件。 如果已经升级到 Docker 1.13 而不卸载先前安装的插件,则当 Docker 守护程序启动时,可能会看到此消息 Error starting daemon: json: cannot unmarshal string into Go value of type types.PluginEnv 要手动删除所有插件并解决此问题,请执行以下步骤: 从 /var/lib...阅读全文
由 Red Hat 工程师牵头的团队,正在为 Linux/开源社区研究名为 NVFS 的文件系统。NVFS 的目标是成为像英特尔 Optane DCPMM 那样的高速文件系统。NVFS面向基于DAX的设备(直接访问),并将整个设备映射成一个线性地址空间,从而绕过 Linux 内核的块层(block layer)和缓冲区缓存。 在 NVFS 文件系统之前,开源社区有个用于持久性内存的 NOVA 文件系统,但该项目在去年意外结束了。在没有另一个面向高性能持久性内存设备的 Linux 文件系统的情况下,Red Hat 的 Mikulas Patocka 一直在领导 NVFS 的工作。 尽管 NVFS 是面向基于 DAX 的设备,但它采用了与 EXT4 类似的设计方法,并与 Linux 的 VFS...阅读全文
如果你是在一个大型组织,你运行了 NFS 或者 Samba 服务给不同的用户,你将会需要灵活的挑选并设置很多复杂的配置和权限去满足你的组织不同的需求。Linux(以及其他Unix等POSIX兼容的操作系统)有一个被称为访问控制列表(ACL)的权限控制方法,它是一种权限分配之外的普遍范式。例如,默认情况下你需要维护3个权限组:owner、group和other。 使用ACL后,你可以设置权限给其他用户或组,而不单只是简单的"other"。可以允许指定的用户A、B、C拥有写权限而不再是让他们整个组拥有写权限。 ACL支持多种Linux文件系统,包括ext2, ext3, ext4, XFS, Btrfs等。如果你不确定你的文件系统是否支持ACL,请参考文档。 首先我们需要安装工具来管理ACL...阅读全文
作者:京东零售 石朝阳 在说IO多路复用模型之前,我们先来大致了解下Linux文件系统。在Linux系统中,不论是你的鼠标,键盘,还是打印机,甚至于连接到本机的socket client端,都是以文件描述符的形式存在于系统中,诸如此类,等等等等,所以可以这么说,一切皆文件。来看一下系统定义的文件描述符说明: 从上面的列表可以看到,文件描述符0,1,2都已经被系统占用了,当系统启动的时候,这三个描述符就存在了。其中0代表标准输入,1代表标准输出,2代表错误输出。当我们创建新的文件描述符的时候,就会在2的基础上进行递增。可以这么说,文件描述符是为了管理被打开的文件而创建的系统索引,他代表了文件的身份ID。对标windows的话,你可以认为和句柄类似,这样就更容易理解一些。 由于网上对linux...阅读全文
一句话概况:stackstorm是一个事件驱动的自动化引擎。StackStorm 是一坨功能强大的开源自动化平台,可将通过使用插件封装API的方式,将所有应用程序,服务和工作流程连接起来。这里的所有包括了目前我们常用Gitlab、Zabbix、ELK、AWS 等服务。 Stackstorm 具有很好的可扩展性,灵活性,完美支持 ChatOps 和全操作的API实现。通过Stackstorm 可以将您现有的基础架构和应用程序环境联系在一起,以便您可以更轻松地自动化操作该环境。它特别专注于针对事件采取行动。 便利的故障排除 - 触发由Nagios,Sensu,New Relic和其他监控系统捕获的系统故障,在物理节点、OpenStack或Amazon实例和应用程序组件上运行一系列诊断检查,并将...阅读全文
SwitchHosts 是一个用于快速切换本地 hosts 文件的小程序,便于开发人员快速修改测试域名的解析记录。SwitchHosts 基于 Electron 开发,同时使用了 React、Ant Design 以及 CodeMirror 等框架/库,项目主页为 https://oldj.github.io/SwitchHosts/。 SwitchHosts 主界面 SwitchHosts 功能特性 快速切换本地 hosts 文件hosts 文件语法高亮在线 hosts 方案系统托盘图标快速切换macOS: 支持 Alfred workflow 快速切换 下载安装 switchhosts 你可以直接下载源码到本地运行或编辑,或者在下面下载可执行版本: SwitchHosts! 下载地址1...阅读全文
新安装的Debian系统,默认一般使用DHCP获取IP地址,除非在安装过程中,使用了指定的IP地址。本文将介绍如何在Debian系统中,配置使用静态IP地址,配置网关,以及设置DNS服务器。 这些配置通过修改配置文件,很容易实现。在 Redhat 系列的 Linux 环境中,我们一般修改网卡的网络配置文件,对应的文件名为 /etc/sysconfig/network-scripts/ifcfg-eXX,其中eXX即为网络设备名。网络设备的列表可以他通过 ifconfig 命令获取。同样的,在 Debian 环境下,我们只需要修改网络的配置文件便可以了。相比之下,配置过程要比 Redhat 更为方便,只需要修改 /etc/network/interfaces 文件。 Debian 系统设置静...阅读全文
引言:众所周知,Nginx 服务器是一个高性能的 Web 和反向代理服务器。Nginx 在激烈的 Web 服务器竞争中依旧保持良好的发展势头,一度成为 Web 服务器市场的后期之秀,这一切跟 Nginx 的架构设计是分不开的。 一. Nginx 模块化设计 高度模块化的设计是 Nginx 的架构基础。Nginx 服务器被分解为多个模块,每个模块就是一个功能模块,只负责自身的功能,模块之间严格遵循“高内聚,低耦合”的原则。 核心模块 核心模块是 Nginx 服务器正常运行必不可少的模块,提供错误日志记录、配置文件解析、事件驱动机制、进程管理等核心功能。 标准 HTTP 模块 标准 HTTP 模块提供 HTTP 协议解析相关的功能,如:端口配置、网页编码设置、HTTP 响应头设置等。 可选...阅读全文
xfs 从 v5 开始支持查看文件的创建时间。使用 dmesg 命令,可以查看系统当前使用的 xfs 的版本:
```
# dmesg | grep -iE 'xfs.*\s+mounting' | head -1
```
如何查看 xfs 上文件的创建时间?
找到文件的 inode 信息后,就可以直接查看,
```
# stat -c '%i' test.txt
7827295
```
然后获取文件的创建时间,
```
# xfs_db -r -c "inode 7827295" -c "p v3.crtime.sec"
做文字输入,按ESC键可回到命令模式。 3) 底行模式(last line mode) 将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号。 不过一般我们在使用时把vi简化成两个模式,就是将底行模式也算入命令模式。 一、打开文件、保存、关闭文件(vi命令模式下使用) vi filename //打开filename文件 :w //保存文件 :w debian.cn //保存为当前目录下的文件"debian.cn" :q //退出编辑器,如果文件已修改请使用下面的命令 :q! //退出编辑器,且不保存 :wq //退出编辑器,且保存文件 :x! //退出编辑器,且保存文件,忽略是否对文件具有写权限 二、插入文本或行(vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退...阅读全文
在执行 docker ps 命令时可以通过过滤条件来判断,比如 hostnetwork 网络模式的容器,可以加过滤条件,**network=host**, `docker ps --filter network=host --format "table {{.ID}}\t{{.Names}}"` kubenet 网络插件可以用 **network=none** 来过滤...阅读全文
包 Packages: Cargo提供的让我们创建, 测试和分享Crates的工具.箱 Crates: 提供类库或可执行文件的模块树模块 Modules and use: 管理和组织路径, 及其作用域和访问权限路径 Paths: 如结构体(structs), 函数(function), 或模块(module)等事物的命名方式包(Packages)和箱(Crates)包(Package)通过Cargo创建. 每一个包(Package)都有一个Cargo.toml文件. 包(Package)包含箱(Crates)的规则如下:只能包含0或1个类库箱(library crates)可以包含任意多个二进制箱(binary crates)至少有一个箱(Crate), 可以是类库箱(library...阅读全文
Phoronix表示,该网站近期收到了许多用户的来信,称对 Debian GNU/Linux 放弃许多旧的硬件驱动程序的举措感到愤慨。本月初,Debian“X Strike Force”团队决定从 Debian 中删除一些过时的输入和视频驱动程序。其指出,作出该决定的依据是“它们在上游没有维护,或没有任何价值。” 受影响的驱动程序包括有 Mach 64、ATI Rage R128、Savage、Silicon Motion、SiS、Trident 和 NeoMagic 图形硬件。其中,像 ATI Rage 128 之类已有 20 多年的应用历史,并且这些驱动程序还支持许多其他种类硬件。 最初,Geode display driver 也被设置为删除,不过最终被保留了下来。此外,Elo...阅读全文
我们登陆远程服务器后,常常需要下载、或者上传一些文件,我们常用的 lrzsz 对 tmux 支持不够友好,于是就有了 trzsz 这个新工具,它安装简单,使用方便,功能全面,小巧灵活,GitHub项目地址: https://github.com/trzsz/trzsz为什么需要 trzs 这个“轮子”?考虑 laptop -> hostA -> hostB -> docker -> tmux 这种场景,使用 scp 或 sftp 是不方便的。在这种场景下,使用 lrzsz ( rz / sz ) 是很方便的,但是很可惜它与 tmux 不兼容。 tmux 不愿意支持 rz / sz ( 906, 1439 ),而重新造一个工具比修改 tmux 简单很多。trzsz 安装指南在远程服务器上安装...阅读全文