InfraPub 为您找到相关结果 129

CentOS停止维护后,我们应该用什么操作系统?

查软件包的不一致和错误)。稳定性是 Debian 的同义词。 [...] 安全是 Debian 最重要的特性之一。Christos Pontikis 在 pontikis.net 上写道面向企业环境的 DebianDebian 是可靠的。Debian 在从单个用户的笔记本计算机到超级对撞机、证劵交易所和汽车行业的数以千计的现实日常场景中证明其可靠性。它在学术界、科研机构和公共部门中也很流行。Debian 有很多专家。我们的软件包维护者不仅仅只为 Debian 打包软件包和整合新的上游版本。他们常常是该应用程序的专家,因此可以直接为上游开发做出贡献。Debian 是安全的。Debian 对其稳定版本提供安全支持。许多其它发行版的开发人员和安全研人员都依赖 Debian 的安全跟踪器。长期支持...阅读全文

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

。 关于 Kotlin/Native 说了这么多,Kotlin/Native 到底是什么?Kotlin/Native 能将 Kotlin 编译成机器码,目前还处于技术预览版阶段,离商用估计还需要至少一年的时间。 Kotlin/Native 不是 Jni 的概念,它不仅仅是要与底层代码比如 C、C++ 交互,而且还要绕过 JVM 直接编译成机器码供系统运行。这说明了什么?Kotlin 准备扔掉 Java 这根拐杖了。 第一次看到 Native 这个名字或许会很自然地想到 Jni,Kotlin 跑在 JVM 上面,使用 Jni 与底层代码交互。不过详细深入研后可以发现,Kotlin 开发团队的野心不可小觑,Java 诞生这么多年,也没有涉足过编译成除 Java 虚拟机字节码以外的字节码的事情...阅读全文

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

CCPA vs. GDPR:欧美这两部个人数据保护法有什么差异?

、或者处理其数据违反本条例规定时,有权要求数据不再被处理。 (2)例外:被遗忘权在如下情形下可能无法行使:例如为了行使言论和信息自由权,遵守法律义务,在公共健康领域执行有公共利益的任务或行使控制者被授予的官方权力,为公共利益、科学或者历史研目的、数据统计目的,或者为了法律辩护需要时。 此外,被遗忘权在如下情形下也可能无法行使:GDPR说明条款第47-48条考虑到基于数据主体与控制者之间的关系而产生的合理预期,若数据主体的基本权利和自由与控制者的合法利益不相冲突的前提之下,在如下情形中,数据主体难以行使被遗忘权:为了防止欺诈而对个人数据进行严格处理;企业集团为了内部管理的目的在企业集团内部进行个人数据传输;公共机构、计算机应急反应小组(CERTs)、计算机安全事件响应小组(CSIRTs)、电子...阅读全文

RabbitMQ 高可用实现镜像队列

于单点失效是有弹性的,但是同时也需要注意:尽管 exchange 和 binding 能够在单点失效问题上幸免于难,但是 queue 和其上持有的 message 却不行,这是因为 queue 及其内容仅仅存储于单个节点之上,所以一个节点的失效表现为其对应的 queue 不可用。 举例说明,如果一个 RMQ 集群由三个节点组成(RMQ集群节点的模式也是有讲的,一般三个节点会有一个 RAM,两个 DISK),exchange、bindings 等元数据会在三个节点之间同步,但 queue 上的消息是不会同步的,且不特殊设置的情况下,Queue 只会在一个节点存在。 可能有的同学会提另一个问题,我从三个 RMQ 节点的监控面板,都可以看到这个 Queue?这个是对的,这是由于 Queue 的元...阅读全文

博文 2018-12-30 19:21:59 debian.cn

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

来分享一下他打造 Debian 的那段历程。 Murdock 第一次接触到 GNU/Linux 是在 1993 年,当时他还是个 20 岁的学生,在普渡大学学习会计学。「那个年代,PC 才刚刚发展到勉强能运行 Unix 操作系统。我当时用的就是 Unix,那时候我觉得 Linux 是能让我更方便地使用 Unix 的一种方式。」用 Murdock 的话来说,当时的软件「完成度还相对粗糙」,但完善、改良软件对他来说也是一种兴趣爱好。 「Linux 最棒的地方之一就是它是第一批你不仅能看到它在干嘛,你还能亲自尝试着对它本身做尝试、做改动的操作系统。」 Murdock 开始研的时候,GNU/Linux 的发行版还很少。Murdok 当时选择的是 SLS,Softlanding Linux...阅读全文

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

WebAssembly:无需容器的 Docker (上)

讨了这个概念,这就是标题所说的 “没有容器的 Docker”。Wasm 如何结合 Docker 运行?Docker Desktop 现在加入了对 WebAssembly 的支持。 它是通过 containerd shim 实现的,该 shim 可以使用名为 WasmEdge 的 Wasm 运行时来运行 Wasm 应用程序。 这意味着,现在可以在 WasmEdge 运行时(模拟容器)中运行 Wasm 应用程序,而不是用典型的 Windows 或 Linux 容器运行容器镜像中二进制文件的单独进程。因此,容器镜像不需要包含正在运行的应用程序的操作系统或运行时上下文 —— 单个 Wasm 二进制文件就足够了。这在 Docker 的 Wasm 技术预览文章中有详细解释。WasmEdge 是什么...阅读全文

博文 2023-01-03 06:35:56 spider

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

最近游戏已上线运营,进行服务器内存优化,发现一个非常奇妙的问题,我们的认证服务器(AuthServer)负责跟第三方渠道SDK打交道(登陆和充值),由于采用了curl阻塞的方式,所以这里开了128个线程,奇怪的是每次刚启动的时候占用的虚拟内存在2.3G,然后每次处理消息就增加64M,增加到4.4G就不再增加了,由于我们采用预分配的方式,在线程内部根本没有大块分内存,那么这些内存到底是从哪来的呢?让人百思不得其解。 索 一开始首先排除掉内存泄露,不可能每次都泄露64M内存这么巧合,为了证明我的观点,首先,我使用了valgrind。 valgrind --leak-check=full --track-fds=yes --log-file=./AuthServer.vlog & 然后启动测试...阅读全文

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

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

让我们先讨什么是基于主机的入侵检测系统。如前所述,入侵检测系统是一种硬件或软件应用程序,可在检测到恶意活动时检测并警告管理员。HIDS主要专注于监视和分析日志文件,以便 基于预定义的策略和一组规则来检测异常和未经授权的更改。换句话说,HIDS与您添加的预先建立的规则一样有效。对于大量存储的日志,提取有意义的信息对于检测异常至关重要。提取的信息应准确。因此,确保这些日志的安全性对于防御日志操纵至关重要。1. OSSECOSSEC是开源安全事件关联器的缩写。这个建立良好且信誉良好的解决方案是OSSEC基金会开发和维护的免费和开放源代码的基于主机的入侵检测系统,这要归功于众多的贡献者。它后来归趋势科技所有。这是一个不断发展的项目,每月下载约5000次,并且具有可扩展性和多平台方面的特点,因为它...阅读全文

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

Sam Altman的成功学|OneFlow

讶于发生在自己身上的意外之喜,仅仅因为我十年前曾帮助过一位企业创始人。 建立人际网络的另一个途径是拥有好的名声,不亏待每一个一起共事的人。要大方慷慨地与他人分享资源,这会给你带来10倍、100倍的回报。此外,要知人善用,让每个人都能充分施展自己的才华(这是我从管理学中学到的最重要的一课,虽然我对管理学的研还并不多)。我们既要尽力挖掘他人的潜力但是又不能逼得太紧,这容易让人感到精疲力尽。 每个人都有各自擅长的领域。因此,我们要多看看自己的优点,不要总盯着缺点,要用优点来定义自身。面对缺点,我们要承认它,想办法弥补它,不要让缺点成为我们前进路上的阻碍。我常能在一些创业者口中听到这样的说法“我不能做A,因为我不擅长B”,这种思维方式让我十分吃惊,这反映出他们缺乏创造力。弥补弱点的最佳方式是聘请互...阅读全文

说透IO多路复用模型_京东云开发者的博客

统资源,所以,随着客户端的增多,其性能也就越差。 而边缘触发,由于监控的是FD的状态变化,所以整体的系统通知并没有那么频繁,高并发下整体的性能表现也要好很多。但是由于此模式下,用户需要积极的处理好每一笔数据,带来的维护代价也是相当大的,稍微不注意就有可能出错。所以使用起来须要非常小心才行。 至于二者如何抉择,诸位就仁者见仁智者见智吧。 行文到这里,关于epoll的讲解基本上完毕了,大家从中是不是学到了很多干货呢? 由于从netty研到linux epoll底层,其难度非常大,可以用曲高和寡来形容,所以在这块索的文章是比较少的,很多东西需要自己照着man文档和源码一点一点的琢磨(linux源码详见eventpoll.c等)。这里我来纠正一下搜索引擎上,说epoll高性能是因为利用mmap技...阅读全文

博文 2023-01-01 15:13:50 CSDN博客

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

程技术平台。而到了 Novell 之后用了不到三年就使这家公司扭亏为盈,最后的亏损其实很大程度上需要归结为微软的打压和互联网泡沫的破裂,那次失败真不是施密特能控制的。所以 Novell 公司在他担任谷歌 CEO 之后依然为他保留了董事会主席席位,以示尊重。 施密特的地位堪比二位创始人 谷歌由佩奇和布林创立于1998年,但是直到2001年施密特担任 CEO,谷歌依然只是一个技术还不错,但是完全没办法赚钱的小公司,施密特本人就曾直言:“他们在各个方面的看法,都与我不尽相同。让人搞不清他们的思路竟是令人耳目一新的远见,还是单纯天真。” 而施密特的加入,正好为两位创始人天马行空的设想打下了良好的基础——钱。施密特发现了搜索业务和广告之间的高度关联性,并由此创造了搜索广告这一革命性的盈利模式,直到现...阅读全文

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

基于thanos搭建分布式prometheus

的永久存储和查询能力。 Compactor则是对Bucket里的历史数据进行采样或者清理,有具体需求后再自行研即可。 上述组件均是可选的,没有历史数据永存需求的可以直接忽略。 方案2:thanos receive + thanos querier thanos提供的另一种方案是计算与存储分离,利用thanos receive组件部署一个分布式存储集群,然后令prometheus通过remote write机制直接写入到thanos receive集群完成分布式存储,这样prometheus本身就无状态了。 再利用thanos querier反向代理到thanos receive集群,最终对外提供统一的promql查询入口,这个阶段就没有prometheus什么事了。 这套方案的工作原理如下...阅读全文

博文 2021-03-01 13:02:46 鱼儿的博客

Kafka 3.0新特性全面曝光,真香!

导语 | kafka3.0的版本已经试推行去zk的kafka架构了,如果去掉了zk,那么在kafka新的版本当中使用什么技术来代替了zk的位置呢,接下来我们一起来一竟,了解kafka的内置共识机制和raft算法。一、Kafka简介Kafka是一款开源的消息引擎系统。一个典型的Kafka体系架构包括若干Producer、若干Broker、若干Consumer,以及一个ZooKeeper集群,如上图所示。其中ZooKeeper是Kafka用来负责集群元数据的管理、控制器的选举等操作的。Producer将消息发送到Broker,Broker负责将收到的消息存储到磁盘中,而Consumer负责从Broker订阅并消费消息。(一)Kafka核心组件producer:消息生产者,就是向broker...阅读全文

博文 2022-04-28 16:02:11 mp.weixin.qq.com

“Debian 章程有毒” - OSCHINA

debhelper。赋予个人维护者如此大的自由,导致我们无法开展提高构建 Debian 软件包抽象级别的项目,这反过来又让工具更加困难。”Michael Stapelberg 在自己的文章中讨了 Debian 中过大的个人自由。 “我认为 Debian 社区的管理存在一个很大问题 —— 社区正在被一些特定问题深深地分裂成很多不同阵营。” Russ Allbery 曾表示。 或许,这也成就了 Debian 如今的“儿孙满堂”——不少软件从 Debian 衍生出来。就拿2014 年systemd 事件为例,那场争议导致 Debian 阵营开始分裂 —— 反对者创建了一个不使用 systemd 的分支 Devuan。此外,基于 Debian 的衍生产品还有很多,比如 Ubuntu、Deepin、Kali...阅读全文

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

Apache Kafka发布 3.0 正式版

不是与什么的AdminClient收益已经为最新的偏移,这是下一个记录的偏移,在主题/分区写入混淆。)这个扩展现有ListOffsets API允许用户测生动活泼的通过询问哪个是最近写入的记录的偏移量以及它的时间戳是什么来分区。kafka ConnectKIP-745:连接 API 以重新启动连接器和任务在 Kafka Connect 中,连接器在运行时表示为一组Connector类实例和一个或多个Task类实例,并且通过 Connect REST API 可用的连接器上的大多数操作都可以应用于整个组。从一开始,一个值得注意的例外restart是Connector和Task实例的端点。要重新启动整个连接器,用户必须单独调用以重新启动连接器实例和任务实例。在 3.0 中,KIP-745使用户...阅读全文

博文 2021-09-26 14:13:03 joseph

如何读懂火焰图?+ 实例讲解程序性能优化 - xuxh120

627891 > 627891.svg -d N 分析持续时间(以秒为单位)。如果未提供启动,恢复,停止或状态选项,则查器将运行指定的时间段,然后自动停止。 -i N 设置分析间隔(以纳秒或者毫秒等作为单位),默认分析间隔为10ms。 -o 转储文件的格式。 等待15s,就会产生结果,生成 627891.svg 文件。vim 627891.svg 并删除第一行,然后下载到本地并使用浏览器打开。 结果如下图,此图俗称火焰图,主要看每个方法的横轴长度,占用横坐标越长的操作,其占用的 cpu 即最长,很直观的。 9.2 性能黑点分析 我们首先发现下图红框内的代码存在严重的性能问题。在append的过程中,获取线程 stack 的过程耗时比较大。从火焰图中分析,耗时占据了接近50%的是,一个logger操作...阅读全文

博文 2022-03-11 10:05:09 博客园

WebAssembly:无需容器的 Docker (下)

Tasks %CPU Memory podruntime 145 0.1 636.3M podruntime/docker 145 0.1 636.3M docker 2 0.0 39.7M docker/ee444b... 1 0.0 6.7M 镜像大小首先,索镜像,我们看到 Wasm 容器镜像比传统镜像小得多。 即使是 alpine 版本的 php 容器也比 Wasm 容器大。$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE php 7.4.32-cli 680c4ba36f1b 2 hours ago 166MB php 7.4.32-cli-alpine a785f7973660 2 minutes ago 30.1MB...阅读全文

博文 2023-01-03 06:39:46 spider

提问的智慧 – 全文

具体步骤上开玩笑,有些可怜的新手会把它当成真的指令,那样也许会毁了用户的安装进程。 索性的疑问可以引出更多的细节。如果你问题问得好,你也可以学到点东西。试试将很差的问题转变成好问题,别忘了我们曾经都是新手。 尽管对那些懒人敷衍一句「Read The Fucking Manual」(RTFM)是正当的,但是指出文档的位置(或者给出一个搜索关键词)会更好 如果你决定回答一个问题,请尽可能详尽地提供一个好答案。当别人正在用错误的工具或方法时,别给出一个权宜之计,应推荐一个更好的工具,重新组织这个问题。 提供一个可操作的回答建议!如果回答者已经详细地研过问题,并且已经测试过X、 Y, Z, A、B、和C方法,均没有得出一个满意的结果,这表明简单地回复「请尝试X或者Y方法」或提供一个链接是没有用的...阅读全文

博文 2009-10-01 13:18:00 debian.cn

理解 Linux 的虚拟内存

前不久组内又有一次我比较期待的分享:“Linux 的虚拟内存”。是某天晚上加班时,我们讨论虚拟内存的概念时,leader 发现几位同事对虚拟内存认识不清后,特意给这位同学挑选的主题。 我之前了解一些操作系统的概念,主要是毕业后对自己大学四年的荒废比较懊恼,觉得自己有些对不起计算机专业出身,于是在工作之余抽出时间看了哈工大在网易云课堂的操作系统公开课,自己也读了一本讲操作系统比较浅的书 《Linux内核设计与实现》,而且去年自己用 C 写简单的服务器时,也追根底了解了更多的系统底层知识。多亏了这些知识,让我对应用层的知识更有掌控感,也在上次排查问题时(从应用到内核查接口超时)助了我一臂之力。 前几天另一位同事来问另一个虚拟内存相关的问题,我才发现对于虚拟内存,我的理解还不够深刻,一些概念还...阅读全文

博文 2018-11-25 11:03:49 debian.cn

如何写好技术文档 — 来自十多年的文档经验总结

你搭建起整个文档的框架。 - WHEN: 明确文档的创建、Review和更新日期。因为文档也有时效性,明确相关日期可以避免阅读者踩坑。 - WHERE: 文档应该放在哪! 建议一个组织或者团队有统一的永久文档存放地址,并且有版本控制。最好是方便查找、使用和分享。 - WHY: 为什么要写这篇文档, 你期望读者读完后从文档中获得什么! ### 三段式写作 ### 写文章一般都会有三个部分,专业写作者也讲凤头、猪肚、豹尾,这三个词概括出了好文章三部分应有的特点。技术文档也算是文章的一种,所以一般也都会有这三部分,每个部分有其自己的作用,比如第一部分阐述问题,中间部分介绍具体的解决方案,第三部分总结要点。 但这也并不以为着文档应该有三个部分,如果文档内容比较多,可以将其做更细致的拆解,可以适当增...阅读全文

博文 2021-07-30 16:15:13 joseph

协议介绍之深入了解 gRPC

选择。 如果大家对解析 HTTP/1.x 很感兴趣,可以研下 http-parser,一个非常高效小巧的 C library,见过不少框架都是集成了这个库来处理 HTTP/1.x 的。 Request/Response HTTP/1.x 另一个问题就在于它的交互模式,一个连接每次只能一问一答,也就是client 发送了 request 之后,必须等到 response,才能继续发送下一次请求。 这套机制是非常简单,但会造成网络连接利用率不高。如果需要同时进行大量的交互,client 需要跟 server 建立多条连接,但连接的建立也是有开销的,所以为了性能,通常这些连接都是长连接一直保活的,虽然对于 server 来说同时处理百万连接也没啥太大的挑战,但终归效率不高。 Push 用...阅读全文

博文 2017-06-22 11:08:48 debian.cn

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

) 升级数据库配置 迁移非核心业务到新的RDS实例中去 第二次宕机 由于上一次的宕机原因未找到,所以此次的宕机是可以预见的。 20180919,还是一样的”配方”,还是原来的”味道”。同一个RDS,CPU飙升至100%,接下来就是拒绝服务,宕机。当然,有了第一次的经验,直接主从切换,在几十秒左右就恢复了所有业务,但还是严重影响了公司的业务和形象 原因分析 恢复业务后,公司紧急召开了紧急事故研会议,当然,我的级别是参与不了的。公司的高管,高层技术架构、DBA、各个项目的主负责人一起进行了会议。 在此次会议中,经过查看各个项目的日志,后台的监控数据,发现在那台RDS数据库CPU飙升时,有一台Redis数据库内存将近100%,然后急剧下降。联系第一次的宕机情况,也是类似的。 接下来就是联系服务器数据...阅读全文

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

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

Kubernetes对象的关系。 豆荚在Kubernetes中无处不在,因此了解它们将有助于您的工作。部署概述 - 提供部署概述 。 了解部署控制器如何工作非常有用,因为它们在无状态应用程序中经常用于扩展和不健康应用程序的自动修复。服务概述 - 涵盖服务,Kubernetes集群中另一个常用对象。 了解服务类型及其选项对于运行无状态和有状态应用程序至关重要。 您可以研的其他重要概念是Volumes , Ingresses和Secrets ,所有这些在部署生产应用程序时都会派上用场。 Kubernetes提供了许多功能和特性。 Kubernetes官方文档是了解概念,查找特定于任务的指南以及查找各种对象的API参考的最佳位置。...阅读全文

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

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

于intent模型。数据pipeline和批处理job就是这样的例子。比如,可以构造一个代表批处理job的intent——asset可以表示“这个job必须在过去24小时运行至少一次”——当约束条件不再有效时,插件负责启动job。但是,这种设置有点尴尬,我们尚未索通过Prodspec和Annealing对数据pipeline和批处理job的适当支持。 管理turndown时间(从生产环境中移除一些基础设施)也很棘手。我们的许多用户都要求“因缺失而关闭”,即让系统将从Prodspec中消失的asset视为必须删除相应基础设施的隐含信号。 这种方法在某些有限的情况下是可以的,但我们通常不会支持它,因为它给整个生产环境带来了太大的风险。配置系统里更为常见的故障模式是返回部分内容——比如,如果在分...阅读全文

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

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

1. HDFS概述 Hadoop 分布式系统框架中,首要的基础功能就是文件系统,在 Hadoop 中使用 FileSystem 这个抽象类来表示我们的文件系统,这个抽象类下面有很多子实现类,竟使用哪一种,需要看我们具体的实现类,在我们实际工作中,用到的最多的就是HDFS(分布式文件系统)以及LocalFileSystem(本地文件系统)了。 在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。 HDFS(Hadoop Distributed File System)是 Hadoop 项目的一个子项目。是 Hadoop 的核心组件之一, Hadoop 非常适于存储大型数据 (比如 TB 和 PB),其就是使用 HDFS 作为存...阅读全文

kubectl 创建 Pod 背后到底发生了什么?—探寻 Kubectl 创建 Pod 的原理

中文原文:https://www.yangcs.net/posts/what-happens-when-k8s/ (杨传盛的博客) 英文原文:https://github.com/jamiehannaford/what-happens-when-k8s 想象一下,如果我想将 nginx 部署到 Kubernetes 集群,我可能会在终端中输入类似这样的命令: $ kubectl run --image=nginx --replicas=3 然后回车。几秒钟后,你就会看到三个 nginx pod 分布在所有的工作节点上。这一切就像变魔术一样,但你并不知道这一切的背后竟发生了什么事情。 Kubernetes 的神奇之处在于:它可以通过用户友好的 API 来处理跨基础架构的...阅读全文

博文 2022-04-18 16:18:04 CSDN

HAProxy用法详解 最详细中文文档

处理部分流量同时又不修改服务器的地址成为可能。 性能 HAProxy借助于OS上几种常见的技术来实现性能的最大化。 1,单进程、事件驱动模型显著降低了上下文切换的开销及内存占用。 2,O(1)事件检查器(event checker)允许其在高并发连接中对任何连接的任何事件实现即时测。 3,在任何可用的情况下,单缓冲(single buffering)机制能以不复制任何数据的方式完成读写操作,这会节约大量的CPU时钟周期及内存带宽; 4,借助于Linux 2.6 (>= 2.6.27.19)上的splice()系统调用,HAProxy可以实现零复制转发(Zero-copy forwarding),在Linux 3.5及以上的OS中还可以实现零复制启动(zero-starting); 5,内存...阅读全文

博文 2014-05-10 17:14:46 debian.cn

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

一个双端出入的队列,那么请尽量不要使用Redis的List数据结构。 为了更好支持队列的特性,Redis还提供了一系列阻塞式的操作命令,如BLPOP/BRPOP等,能够实现类似于BlockingQueue的能力,即在List为空时,阻塞该连接,直到List中有对象可以出队时再返回。针对阻塞类的命令,此处不做详细讨,请参考官方文档(https://redis.io/topics/data-types-intro) 中”Blocking operations on lists”一节。 Hash Hash即哈希表,Redis的Hash和传统的哈希表一样,是一种field-value型的数据结构,可以理解成将HashMap搬入Redis。 Hash非常适合用于表现对象类型的数据,用Hash中的...阅读全文

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