InfraPub 为您找到相关结果 561

架构师详解 Nginx 架构

引言:众所周知,Nginx 服务器是一个高性能的 Web 和反向代理服务器。Nginx 在激烈的 Web 服务器竞争中依旧保持良好的发展势头,一度成为 Web 服务器市场的后期之秀,这一切跟 Nginx 的架构设计是分不开的。 一. Nginx 模块化设计 高度模块化的设计是 Nginx 的架构基础。Nginx 服务器被分解为多个模块,每个模块就是一个功能模块,只负责自身的功能,模块之间严格遵循“高内聚,低耦合”的原则。 核心模块 核心模块是 Nginx 服务器正常运行必不可少的模块,提供错误日志记录、配置文件解析、事件驱动机制、进管理等核心功能。 标准 HTTP 模块 标准 HTTP 模块提供 HTTP 协议解析相关的功能,如:端口配置、网页编码设置、HTTP 响应头设置等。 可选...阅读全文

博文 2018-05-01 23:10:47 debian.cn

聊聊很重要的内核技术eBPF

在2018年的 Linux Plumber 大会上,eBPF成了亮点,有24个议题提到了 eBPF,可以预计eBPF会成为一大技术热点。 eBPF(Extended Berkeley Packet Filter) 的核心是驻留在 kernel 的高效虚拟机。最初的目的是高效网络过滤框架,前身是 BPF。 Linux kernel 3.18版本开始包含了eBPF,相对于 BPF 做了一些重要改进,首先是效率,这要归功于 JIB 编译 eBPF 代码;其次是应用范围,从网络报文扩展到一般事件处理;最后不再使用socket,使用map进行高效的数据存储。 根据以上的改进,内核开发人员在不到两年半的事件,做出了包括网络监控、限速和系统监控。目前eBPF可以分解为三个过: 以字节码的形式创建...阅读全文

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

什么是线程安全,以及并发需要知道的几个概念

众所周知,在Java的知识体系中,并发编是非常重要的一环,也是面试的必问题,一个好的Java序员是必须对并发编这块有所了解的。为了追求成为一个好的Java序员,我决定从今天开始死磕Java的并发编,尽量弥补自己在这方面的知识缺陷。 并发必须知道的概念 在深入学习并发编之前,我们需要了解几个基本的概念。 同步和异步同步和异步用请求返回调用的方式来理解相对简单。 同步:可以理解为发出一个请求后,必须等待返回结果才能执行下面的操作。 异步:请求发出后,不需要等待返回结果,可以继续执行后续操作,异步请求更像是在另一个 “空间” 中处理请求的结果,这个过不会影响请求方的其他操作。 举个生活中的例子,比如我们去实体店买衣服,挑选完款式后下单让售货员去仓库拿货,在售货员拿货的过你需要在店...阅读全文

博文 2018-12-31 20:44:06 debian.cn

Debian 8 使用 Apache 部署 Ruby on Rails

Ruby on Rails 是一个快速开发的Web框架,Web设计人员和开发人员利用它能实现动态的全功能Web应用序。 本文使用 Phusion Passenger 或mod_rails 方法部署 Rails 应用序。 Passenger 允许您直接在Apachen应用序中嵌入 Rails 应用序,而无需使用FastCGI或复杂的Web服务器代理。 安装Passenger和依赖关系 1.安装使用Ruby,构建Ruby模块和运行Rails应用序所需的系统包 sudo apt-get install build-essential libapache2-mod-passenger apache2 ruby ruby-dev libruby zlib1g-dev libsqlite3...阅读全文

博文 2021-01-28 17:50:33 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

Debian GNU/Linux 删除旧驱动程序,激怒老式硬件用户

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...阅读全文

博文 2020-04-23 09:29:31 debian.cn

Node.js Vs. PHP:你应该选择哪一个

现在,Web开发公司和开发人员可以选择多种技术栈来构建Web应用序。早期网络发展,不同的技术被用于前端和后端开发。但是,随着Node.js的发布,布局发生了变化,因为它允许开发人员使用 JavaScript 编写后端代码。这最终催生了MEAN(MongoDB + Express +AngularJS + NodeJS )堆栈 web 开发框架,从前端到后端甚至是数据库(MongoDB -JSON)都使用 JavaScript。在 Node.js 之前,Web 开发通常是在 PHP 的帮助下完成的,因为它很容易与 HTML 集成,帮助开发人员立即构建动态网站。在这篇文章中,我们将比较 Node.js 和 PHP,看哪一个最适合当前的行业需求。 PHP 和 Node.js 的基本区别在于...阅读全文

博文 2017-12-23 23:15:39 debian.cn

Flatpak 1.0正式版发布:Linux 应用沙盒开发里程碑

Flatpak,Linux应用序沙箱和分发框架(以前称为XDG-App),用于在Linux桌面上构建和分发托管应用序,今天已经达到1.0里碑。 经过三年多的开发,广泛使用的Flatpak Linux应用序沙盒和分发框架终于达到了1.0版本,这意味着它已经足够成熟,可以在生产环境中部署和使用,用于分发和运行Linux应用序。 “Flatpak 1.0是新稳定版系列中的第一个版本。这个新的1.x系列是0.10.x系列的继承者,它于2017年10月首次推出.1.0是新标准的Flatpak版本,推荐使用发行版尽快更新,“开发商Alexander Larsson说。 与Flatpak 0.10.0系列相比,Flatpak 1.0版本的亮点包括一个新的Flatpak门户,允许Linux应用...阅读全文

博文 2018-08-22 20:26:05 debian.cn

C++ 20 准备发布 C++ 23 提上议程

根据 Reddit C++ 版块上的信息,C++ 20 已经正式通过委员会草案,这意味着 C++ 20 可以准备发布。“在近期 ISO C++ 委员会会议上,我们完成了 C++ 20 委员会草案,并投票决定将国际标准草案(DIS,Draft International Standard)发送出去,以进行最终批准和发布”。 帖子介绍:“在序上,DIS 可能会被拒绝,但是由于我们的序和过,这种情况极不可能发生。这意味着 C++ 20 已经完成,并将在几个月后发布该标准。” C++ 20 是近十年来影响最大的一个版本,新的特性众多,包括: 模组(Modules)协(Coroutines)标准库 Concepts 的概念范围(range)constexpr支持:new/ delete...阅读全文

博文 2020-02-16 10:46:16 debian.cn

使用 Go 语言的三个原因

几个星期前,我一个朋友问我:“为什么要关心 Go 语言”? 因为他们知道我热衷于 Go 语言,但他们想知道为什么我认为 其他人 也应该关心。本文包含三个我认为 Go 是重要的编语言的原因。 安全 个人而言,你和我或许完全有能力在 C 中编写序,既不会泄漏内存,也不会不安全地重复使用内存。然而,整体上,即使有超过40年的经验,用 C 的序员也无法可靠地这样做。 尽管静态代码分析、valgrind、tsan 以及 “-Werror” 已经存在了几十年,却很少有证据表明这些工具被广泛认可,更不用说广泛采用。总而言之,事实表明,序员根本无法安全地管理自己的内存。现在是离开 C 的时候了。 Go 不需要序员直接管理内存,所有内存分配都由语言运行时自行管理,使用前初始化,必要时检查边界。它肯...阅读全文

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

Linux系统诊断-内存基础

的文件,大多反馈系统信息的实时情况(进、内存、cpu、设备信息等)。结论: /proc/meminfo 是 /proc 文件系统下保存你内存相关信息的"伪文件"。2.2 命令输出简介每个发行版输出都有一定差异,我们以debian8 4.19.x发行版为例。root@4f996feeb851:~# free -m total used free shared buffers cached Mem: 1991 1909 81 4 155 836 -/+ buffers/cache: 917 1073 Swap: 1023 1 1022大部分的命令输出意思,大家可以在man文档中找到解析,这里不做赘述。used: 已使用的内存 used = total - free -buffers...阅读全文

博文 2021-02-11 14:22:42 SegmentFault 思否

C++ 夺冠!成为 TIOBE 2022 年度编程语言

在上个月预想的 C++、C、Python 三种候选语言中,C++ 脱颖而出,成为 TIOBE 2022 年度编语言的最终获得者! C++ 摘得桂冠 近段时间来,C++ 的发展有目共睹,其在上个月甚至首次超过了 Java,位居榜单第三的位置。现如今之所以赢得年度编语言的称号,TIOBE 官方也进行了总结与回顾。 其表示,「C++ 受欢迎的原因是它出色的性能,同时 C++ 是一种高级面向对象语言。正因为如此,众多开发者可以使用 C++ 快速开发庞大的软件系统(超过数百万行代码),而不一定会陷入维护的噩梦循环中。 C++ 崛起的另一个原因是它“最近”不断发布具有有趣功能的新语言标准。第一个标准被称之为 C++11,它于 2011 年发布,这是自 1998 年以来,C++ 第一次发生的重大变化...阅读全文

博文 2023-01-10 06:42:12 CSDN博客

Docker 核心原理

对 Docker 的使用大部分都比较熟悉,但是说到 docker 的实现原理很多人还是一知半解。我把在团队内部做的一次 Docker 核心原理分享总结到文章里,以供参考。 Docker 的优势 Build once, Run anywhere 上面这句话很精辟的总结了 docker 的优点。我从下面几点具体描述 docker 带给开发者的能力 应用标准化 无论什么语言开发的应用,我们都能用 dockerfile 和构建脚本方便的进行应用构建打包,代码库 + 构建 + registry 统一了 CI/CD 流,也提升了效率。 环境一致 由于应用和依赖全部构建成镜像,做到了一次构建多次交付,无论是开发,测试还是上线环境都是一致的。大大提高了开发效率 应用隔离 由于通过 docker 部署的应...阅读全文

博文 2021-02-25 09:14:23 lxkaka

21款必不可少的Ubuntu桌面应用程序

无论你是刚接触Ubuntu,还是最近从微软Windows改用Ubuntu,都会在下文中找到适合你的一款软件。并非所有的应用序对每个人都有用,欢迎分享你认为最出色的Linux应用序。 有读者常常问我们必不可少的Ubuntu应用序有哪些,本文我将逐一介绍21款对Ubuntu来说必不可少的应用序,而不是仅仅在留言区回复。 无论你是刚接触Ubuntu,还是最近从微软Windows改用Ubuntu,都会在下文中找到适合你的一款软件。并非所有的应用序对每个人都有用,欢迎分享你认为最出色的Linux应用序。 我们不会介绍默认情况下随Ubuntu交付的任何软件,比如火狐、LibreOffice、Thunderbird和Transmission等,可能的话,重点介绍不需要为它添加PPA的软件...阅读全文

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

理解 Linux 的虚拟内存

有些矛盾。于是翻一下资料重新整理一下这些知识,希望下次在用到它们时能更顺畅。转载随意,请注明来源,文章持续修订。 由来 虚拟内存 毋庸置疑,虚拟内存绝对是操作系统中最重要的概念之一。我想主要是由于内存的重要”战略地位”。CPU太快,但容量小且功能单一,其他 I/O 硬件支持各种花式功能,可是相对于 CPU,它们又太慢。于是它们之间就需要一种润滑剂来作为缓冲,这就是内存大显身手的地方。 而在现代操作系统中,多任务已是标配。多任务并行,大大提升了 CPU 利用率,但却引出了多个进对内存操作的冲突问题,虚拟内存概念的提出就是为了解决这个问题。 虚拟内存简单直观的解释 操作系统有一块物理内存(中间的部分),有两个进(实际会更多)P1 和 P2,操作系统偷偷地分别告诉 P1 和 P2,我的整个内存...阅读全文

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

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

JavaFX 11 发布,与 JDK 拆分后的首个正式大版

JavaFX 11 发布了,JavaFX 是一个强大的图形和多媒体处理工具包集合,它允许开发者来设计、创建、测试、调试和部署富客户端序,并且和 Java 一样跨平台。由于 JavaFX 库被写成了 Java API,因此 JavaFX 应用序代码可以调用各种 Java 库中的 API,例如 JavaFX 应用序可以使用 Java API 库来访问本地系统功能并且连接到基于服务器中间件的应用序。JavaFX 可以自定义序外观,CSS 将外观和样式与业务逻辑实现进行了分离,因此开发人员可以专注于编码工作。值得注意的是,从 JDK 11 开始,JavaFX 模块与 JDK 分开提供 。 JavaFX 11 需要 JDK 10(必须是 OpenJDK 版本)或 JDK 11,建议使用...阅读全文

博文 2018-09-20 13:09:25 debian.cn

Q4OS 3.8 LTS 发布,基于 Debian Buster

Q4OS 3.8 稳定版发布了(发布公告),代号为“Centaurus”。这是一个长期支持(LTS)版本,支持至少五年的安全补丁和软件更新。 Q4OS 是基于 Debian 的桌面 Linux 发行版,它被设计为提供传统样式的用户界面(Trinity)及简单的附件,并提供稳定的应用序编接口以支持复杂的第三方应用软件,例如谷歌 Chrome、VirtualBox 与开发工具。 新版本 Q4OS Centaurus 基于 Debian Buster 10 和 Plasma 5.14,也可选 Trinity 14.0.6 作为桌面环境,它适用于 64 位和 32 位/i686pae 计算机,以及不带 PAE 扩展的旧 i386 系统。 Q4OS 的具体目标之一是能够将 Plasma 和...阅读全文

Google 开源漏洞扫描系统 Tsunami

谷歌已宣布将其内部使用的 Tsunami 漏洞扫描序进行开源,以帮助其他组织保护用户数据。Tsunami 将不会成为谷歌的正式品牌产品,而是由开源社区以类似于管理 Kubernetes(另一种谷歌内部工具)的方式来维护。 “我们已经向开源社区发布了 Tsunami 安全扫描引擎。我们希望该引擎可以帮助其他组织保护其用户数据。我们还希望促进协作,并鼓励安全界在 Tsunami 之上创建和共享新的探测器。” 与其他漏洞扫描序不同的是,Tsunami 本就是秉承着以大型企业为使用对象的初衷而进行构建的,旨在查找包含数十万个设备的大型网络中的漏洞。谷歌方面表示,其设计的漏洞扫描序具有极强的适应性,Tsunami 能够扫描多种设备类型,而无需为每种设备运行不同的扫描仪。 Tsunami 在扫描...阅读全文

博文 2020-07-16 10:25:50 debian.cn

Linux Systemd被爆远程漏洞 CVE-2017

在 Systemd (linux 操作系统流行的 init 系统和服务管理器) 中发现了一个关键漏洞, 这使得远攻击者有可能触发缓冲区溢出, 从而通过 dns 响应在目标计算机上执行恶意代码。 Systemd是什么 systemd 是一种系统初始化序。和 sysVinit 以及 upstart 一样,systemd 会成为系统开机时启动的第一个进(至少 PID 是 1),由它掌管计算机接下来要做的事情,例如读取 fstab 挂载磁盘和按照 runlevel 的设定启动各种服务。其安全的重要性不言而喻。 Systemd远代码执行漏洞 CVE-2017-9445 该漏洞编号 CVE-2017-9445 ,实际上驻留在 " systemd-resolved " 的...阅读全文

博文 2017-07-02 09:39:36 9445 影响多种Linux系统

Debian8安装TeamViewer远程协助软件

TeamViewer是一个能在任何防火墙和NAT代理的后台用于远控制,桌面共享和文件传输的简单且快速的解决方案。为了连接到另一台计算机,只需要在两台计算机上同时运行 TeamViewer 即可,而不需要进行安装(默认是免安装方式运行)。该软件第一次启动在两台计算机上生成 ID。只需要输入你的伙伴的ID到TeamViewer,就会立即建立起连接。 由于TeamViewer的Linux版本很长时间都没有更新,所以在Linux系统安装TeamViewer时会碰到依赖问题。这篇教介绍如何在Debian Jessie系统安装TeamViewer远协助软件。 Debian 8安装TeamViewer 到 TeamViewer.com下载32位的deb安装包。(TeamViewer Linux版本...阅读全文

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

Raspberry Pi 即将迎来 Vulkan 的支持

Raspberry Pi 基金会表示,他们正在致力于为 Raspberry Pi 提供开源 Vulkan 驱动序的支持。 Vulkan 是“新一代图形和计算 API,可提供对现代 GPU 的高效、跨平台访问”。它是 OpenGL 的下一代版本,和 DirectX 12 一样都是基于 AMD 私有的 Mantle API,不同的是 Vulkan 是开源的图形 API,它承诺通过给予开发者访问硬件底层的能力而大幅提升 3D 应用的性能。 对 Vulkan 的支持现在在 Android 智能手机中很常见。三星就长期支持 Vulkan,以改善 Galaxy 设备上的图形和游戏性能。Vulkan 也有得到 SteamOS 上类似 Valve 等的重量级游戏支持。 不过,Vulkan 才刚刚进入...阅读全文

一位资深Java架构师的晋级心得

Java 架构师是什么?是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。一个架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。 所谓架构师,思考的是全局的东西,是如何组织你的系统,以达到业务要求,性能要求,具备可扩展性(scalability),可拓展性(extendability),前后兼容性等。可能涉及到的东西包括了从硬件到软件的方方面面。 架构师在软件开发的整个过中起着很重要的作用。 架构师的主要任务不是从事具体的软件序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。 在成为Java架构...阅读全文

博文 2019-01-13 22:49:22 debian.cn

Debian 11 Bullseye 冻结计划发布

Debian 开发团队发布了下一个主要版本 Debian 11 Bullseye 的暂定软件包冻结日期计划。 根据介绍,此次在软冻结(Soft Freeze)和完全冻结(Full Freeze)之间引入了一个新的里碑:硬冻结(Hard Freeze)。硬冻结期间,关键软件包和没有自动化测试的软件包是禁止自动迁移的,这些软件包将需要手动从发布团队中取消限制以进行迁移,与完全冻结一样。 从时间表里看得出来,Debian 11 Bullseye 的第一个里碑“过渡和构建基础冻结”将会发生在 2021 年 1 月 12 日;第二个里碑“软冻结”于 2 月 12 日,新增的第三个里碑“硬冻结”在 3 月 12 日,而第四个里碑“完全冻结”日期还未定。 完全冻结的开始日期将依据开始计划发布...阅读全文

博文 2020-03-13 13:08:15 debian.cn

WebAssembly:无需容器的 Docker (上)

本文翻译自 Wasm Labs @ VMware OCTO 的 blog: WebAssembly: Docker without container,已获得授权这是 Wasm Labs 在 2022 年 12 月 15 日在冬季 Docker Community All Hands 7 的关于 Docker+WebAssembly 的演讲的文字版。作者:Asen Alexandrov,Wasm Labs 工师文中的我们均指作者或 Wasm Labs。由于文章内容翔实、篇幅较长我们将分成上下两篇分享,上篇将注重在概念阐释,如 Wasm 是什么,Wasm 与 Docker 的关系是什么。下篇文章将更具实践性,将以 PHP 为例带领大家实践 Docker + Wasm。最近,Docker 宣...阅读全文

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

Go 1.10 发布说明草案:预计于 2018 年 2 月发布

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...阅读全文

博文 2017-11-18 13:59:12 debian.cn

Debian告知用户其系统在没有商业固件的情况下可能无法工作

Debian 11 “Bullseye “将于8月中旬发布,今天上午发布的是Debian Bullseye安装序的第三个候选版本。本次安装序的更新为用户提供了更多的文件,部分技术以外的内容受到格外的关注,因为开发团队希望让用户知道将这套系统运行在现代显卡和类似产品的风险,除非加载不被认为是自由软件的固件,否则这些产品往往无法使用。​对于许多现代图形处理器,包括AMD的图形处理器,甚至是NVIDIA最近几代GPU的Nouveau驱动序经常会出现这样的情况:不仅3D硬件加速不工作,甚至显示模式设置也可能失败,导致空白屏幕或以次优的分辨率驱动未加速的显示器。特别是对于较新的GPU和现代显示器来说,如果没有固件文件,这些开源驱动序等于说是没有用的,而可公开重新发行的固件文件只有二进制文件因...阅读全文

Qt 5.9.4 正式发布:包含近 200 项 Bug 修复

Qt 5.9.4 已正式发布,这是继 5.9正式版 之后的第四个维护版本,未添加任何新功能,但提供了大量的 Bug 修复和性能改进。 与 Qt 5.9.3 相比,新的 Qt 5.9.4 包含近 200 项 Bug 修复 以及超过 500 项更改。有关重要更改的详细信息,请查阅发行说明。 开发团队表示,Qt 5.9 LTS 将很快进入“Strict” 阶段(在发布 Qt 5.11 分支之后)。届时,它仍将得到重要的 bug 修复和显着的性能改进。下一个 Qt 5.9.5 补丁版本计划于 2018 年 3 月底发布。 Qt 是一个跨平台的 C++ 图形用户界面应用序框架。它提供给开发者建立图形用户界面所需的功能,广泛用于开发 GUI 序,也可用于开发非 GUI 序。Qt 是完全面向对象的...阅读全文

博文 2018-01-25 10:38:53 debian.cn

Linux 容器 vs 虚拟机 — 谁更胜一筹

自从 Linux 上的 容器 变得流行以来,了解 Linux 容器和虚拟机 之间的区别变得更加棘手。本文将向您提供详细信息,以了解 Linux 容器和虚拟机之间的差异。 Linux 容器 vs 虚拟机 – 应用序与操作系统 首先要了解的有关容器和虚拟机的一个事情是,一个运用于应用序,另一个是为操作系统设计的。这就是为什么您经常会看到一些企业应用序运行在容器上而不是自己的虚拟机上。在虚拟机上使用容器有一些优点。 容器最大的优点之一是可以预留比虚拟机少的资源。请记住,容器本质上是单个应用序,而虚拟机需要更多资源来运行整个操作系统。 如果您需要运行 MySQL,NGINX 或其他服务,使用容器是非常有必要。但是,如果您需要在自己的服务器上运行完整的 LAMP 堆栈 ,则运行虚拟机更好。虚...阅读全文

博文 2017-11-25 10:23:56 debian.cn

Apollo 分布式配置中心详解

Apollo(阿波罗)是携框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流治理等特性,适用于微服务配置管理场景。 本文简单从功能特点做介绍,更详细的说明请参考Apollo配置中心介绍。本地快速部署可以参考这里。线上的演示环境从这里可以访问到: 106.54.227.205 (账号/密码: apollo/admin) Apollo 配置中心产生背景 大多情况下序随着功能的复杂,序的配置也会增多:包括各种功能开关、参数配置、服务地址信息配置等,同时开发人员对序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群的管理配置、权限控制、审核机制等。 在这样的大环境下,传统的通过配置文件、数据库...阅读全文

博文 2020-04-12 12:16:26 debian.cn

玩转 AWS 的必备工具

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

玩转 AWS 的必备工具

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

运维的未来:云服务兴起,运维人员会“下岗”吗?

本文作者 Tyler Treat 是一名软件工师,他认为运维的未来从很多方面来说都跟质量保证(QA)的未来走向相似。未来,运维要使开发者能够通过工具、自动化和流实现自助服务。传统的运维( Ops)没有消失,只是在重组。 云服务的发展看起来让运维人员“丢”了工作,因为从传统意义上说,从本地(on-premise)转移到云平台意味着运维工作在相当大度上外包给云提供商。这正应了那个流行词—— “无运维运动”(NoOps),许多人称之为 DevOps 的“继承者”,虽然这个词最近这些日子已经不是那么响亮了。这使得 Amazon 和开发团队创建的产品——包括基础设施自动化,部署自动化,配置管理,日志管理以及监控和检测——之间出现了隔膜,隔膜虽小,但却至关重要。 事实上,运维的未来从很多方面来说...阅读全文

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

Linux内存buffer和cache的区别

在Linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的序已经被关闭了,该序所占用的内存用来做缓存使用,对于开启过的序、或是读取刚存取过得数据会比较快。 一. 内存使用说明 Free 命令相对于top 提供了更简洁的查看系统内存使用情况: [root@debian ~]$ free total used free shared buffers cached Mem: 1035108 1008984 26124 0 124212 413000 -/+ buffers/cache: 471772 563336 Swap: 2096472 842320 1254152 这里显示的单位是KB。 在Linux的内存分配机制中,优先使用物...阅读全文

Go 公布 2.0 设计草案:规模化和扩展性、支持泛型

去年7月,Go 语言官博就曾透露 Go 2 开发计划,并表示 Go 2 的目标就是解决 Go 1.x 在规模化方面做的还不够好的地方。随着时间的推进,开发团队已着手准备 2.0 版本的开发工作,并公布了设计草案,供社区讨论和反馈,以促进最终的语言设计。 设计草案包含三个方面,错误处理、错误值和泛型,并针对各个方面进行了详细的概述和改进草案。大致总结如下: 一、错误处理(Error handling) 为扩展至大型代码库,Go 序必须是轻量级的,不会过度重复,且具备稳健性,能够优雅地处理出现的错误。 目前 Go 检查错误的代码太多,但处理这些错误的代码却严重不足。对于 Go 2,开发团队希望错误检查更加轻量级,减少用于错误检查的 Go 序的文本量。此外,还能更加方便地编写错误处理序,提...阅读全文

博文 2018-09-01 18:39:47 debian.cn

Facebook 是如何进行大规模代码部署的

Facebook 高速发展的 2007 年到 2016 年,他们一天部署 3 次代码,cherry-pick 集齐成千上万个 commit;现在使用类似持续交付的方法,每个 commit 能自动部署到 production。公司里有很多员工、很多用户的好处:新代码让公司所有员工先用上,因为员工数足够多,能很快发现问题;然后让 2% 的访问量用上新代码,最后慢慢增加到 100% 的访问量。 不久前有篇关于缩短 Facebook 发布流的文章,阐述了将代码投入生产的灵活方法。这篇文章着重讲述了他们在一年之内如何从“ cherry-picking ”升级到“ push-from-master ”策略。早些时候, Facebook 也分享了他们部署过的细节。作者 Chuck Rossi 是...阅读全文

博文 2017-10-31 14:05:20 debian.cn

Debian 10 Buster 将确保自动安装安全升级

Debian Project的Cyril Brulebois本周早些时候很高兴地宣布,即将释出的Debian GNU/Linux 10 “Buster”操作系统的安装序的第二个alpha版本发布。 Debian的 安装序 Alpha 2版本有一些重要的变化,比如默认通过pkgsel组件添加无人值守升级包,以确保安全升级的自动安装,以及为mips64el架构添加安装映像。 Debian GNU/Linux 10 “Buster” 安装序的第二个alpha版本的另一个重要变化是现在支持新的Linux 4.13内核系列安装,尽管你应该知道它上个月已经结束支持,所以我们相信第三个Debian Installer的alpha版本将支持Linux kernel 4.14 LTS。 此外,还支持针...阅读全文

博文 2017-12-10 07:04:21 debian.cn

Linux基金会宣布开放物联网ACRN管理程序

Linux基金会发布了其中一个开源项目ACRN的详细信息,这是一个专为物联网和嵌入式设备设计的管理序。该项目得益于英特尔代码和工的贡献,其目标是创建一个灵活小巧的虚拟机管理系统。通过基于Linux的服务操作系统,ACRN可以同时运行多个客户操作系统,使其成为许多场景的理想选。 Linux基金会表示,管理序和设备模型是以“安全关键型工作负载”为基础构建的,并且设想ACRN将一些IoT工作负载整合到一个平台上。虽然该项目是作为强大而灵活的解决方案提供的,但嵌入式开发人员社区被邀请提供代码以进一步扩展和改进ACRN。 通过项目ACRN,嵌入式开发人员可以立即使用新的管理序选项。 ACRN针对资源受限设备进行了优化,并将重点放在隔离安全关键型工作负载并给予他们优先考虑,使项目适用于许多物联...阅读全文

博文 2018-03-20 08:33:38 debian.cn

Linux 5.2.1 发布 最新的稳定版内核

在 Linux 5.2 发布一周后,第一个修订版本 5.2.1 也已经发布了,用来处理各种错误/回归。需要注意的是5.2并非长期支持(LTS)分支,推荐注重稳定的用户还是使用当前的LTS内核。 5.2.1版只是修改一些小小的问题,主要有以下方面: 修复 Perf减少 RTL 8712 驱动序的堆栈使用fscrapt 将不再为 dead 目录设置策略还有一个新的文档部分,详细说明了 Spectre 的 CPU 漏洞 完整列表查看发布说明。 Linux Kernel 5.2的亮点包括Sound Open Firmware,这是一个支持DSP音频设备的开源固件。此外还新增了用于挂载文件系统的新挂载API,面向ARM Mail设备的全新开源GPU驱动,在EXT4文件系统中支持不区分大小写,以及对...阅读全文

博文 2019-07-15 10:24:57 debian.cn

Raspberry Pi 支持 Vulkan 最新进展

2 月份 Raspberry Pi 基金会曾表示,他们正在致力于为 Raspberry Pi 提供开源 Vulkan 驱动序的支持,而如今,这项开发工作已经取得了不少可喜的进展。 Raspberry Pi 基金会的博客指出,目前使用 Raspberry Pi 4 的 VideoCore VI GPU 渲染 RGB 三角形的里碑已经通过 Vulkan 1.0 Khronos Conformance 测试套件超过 70,000 项测试,并且为 Vulkan 1.0 API 的重要子集提供了实现。为了展示效果,看看在 Raspberry Pi 4 上运行一些受欢迎的 Vulkan 演示拍摄图片: 尽管这些演示很不错,但与实际的游戏和应用还相距甚远,Raspberry Pi 基金会介绍,在驱动...阅读全文

博文 2020-06-13 18:15:31 debian.cn

AMD 2020处理器产品线曝光: Zen2 APU与Zen 3锐龙4000

Ryzen嵌入式G系列芯片,代号River Hawk,Zen 2架构,最高4核8线。 第三季度的产品最富竞争力,毕竟Zen 3架构将新鲜登场,首秀是代号Milan的第三代EPYC,最高64核128线。8月份将是锐龙4000桌面处理器和锐龙APU产品,前者当然升级到Zen 3,代号Vermeer(维米尔),最高16核,延续AM4接口;后者则升级为Zen 2架构,采用Ryzen 4000G/GE的命名,Zen 2架构+Navi。 同年第四季度是线撕裂者4000产品,最高64核128线。这一路线图也呼应了本周一则消息,AMD最快10月份推出第三代线撕裂者,最高48核?...阅读全文

博文 2019-07-21 19:05:34 debian.cn

细数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 博客园

深入理解Golang之context

context是Go并发编中常用到一种编模式。本文将从为什么需要context,深入了解context的实现原理,以了解如何使用context。 作者:Turling_hu 来源: 掘金 原文链接: https://juejin.im/post/5e52688c51882549417fc671前言这篇文章将介绍Golang并发编中常用到一种编模式:context。本文将从为什么需要context出发,深入了解context的实现原理,以及了解如何使用context。为什么需要context在并发序中,由于超时、取消操作或者一些异常情况,往往需要进行抢占操作或者中断后续操作。熟悉channel的朋友应该都见过使用done channel来处理此类问题。比如以下这个例子:func...阅读全文

博文 2021-01-27 09:05:27 知乎

Robolinux 10.1 发布,基于 Debian 的发行版

Robolinux 10.1 发布了,Robolinux 是基于 Debian GNU/Linux 最新稳定发行的用户友好的、直观的操作系统。该项目非常有趣的特性之一是预配置好的 VirtualBox 虚拟机支持套件,可运行 Windows XP 或 Windows 7,从而允许用户在 Robolinux 中无缝安装和运行 Windows 操作系统。 Robolinux 发布了三款全新的 Raptor Series 10 操作系统:Cinnamon,MATE 3D 和 Xfce v10.1 LTS 2023 版本。 Robolinux 10 系列版本基于 Ubuntu 18.04 构建,带来了 4.15 Linux 内核以及大量增强和改进,例如: 最新硬件的驱动序支持...阅读全文

博文 2018-10-01 23:32:39 debian.cn

Ubuntu 19.10 计划于 10 月 17 日正式发布,代号 Eoan Ermine

Canonical 官方 宣布 Ubuntu 19.10 版本的发布日期定在 2019 年 10 月 17 日,它将是 Ubuntu 20.04 LTS 发布之前的最后一个短期版本。 根据 Ubuntu 按照字母顺序进行版本命名的规则,该版本名称基于字母 “E”,代号为 “Eoan Ermine”。“Ermine” 学名白鼬,俗称短尾黄鼠狼。 定于 9 月份发布的 GNOME 3.34 桌面版 将构成下一个 Ubuntu 版本的基础。此更新包括 Nautilus、Evince 和 Calendar 等核心应用序的新版本,还可能包含改进的录音机工具。 此外,在 Ubuntu 19.04 版本中首次亮相的实验性 Xorg 分数缩放 设置将会在 19.10 版本中更容易获得。 新版本其他的计划...阅读全文

博文 2019-05-14 13:26:43 debian.cn

Linux Mint 19.2 “Tina”稳定版发布

| 64-bit Linux Mint 更新内容: 新版本除了对附带的软件进行升级,还带来了许多改进和新特性,让你的桌面使用起来更加舒适。除此之外,还提供了 UI 方面的改进,例如现在支持对滚动条的配置进行设置,并且在应用序菜单中对具有相同名称的序显示添加的描述,以便用户可以在 GNOME 序的 X-Apps 和 Deb 软件包的 Flatpaks 中进行区分。 Linux Mint 19 针对 Xfce, MATE 和 Cinnamon 这三个桌面环境版本都提供了一些独有的新特性,但大多数新特性对于所有的版本都是通用的,下面来看看有哪些变化。 改进了升级管理器中的内核管理软件管理器可以获取“丢失”的 GPG 密钥软件管理器可以扫描/删除重复的源优化了 Muffin 窗口管理器,使用起来感觉...阅读全文

Golang后端面试题目

技术一面 基础面试 一面是通过电话直接沟通。 go的调度go struct能不能比较go defer(for defer)select可以用于什么context包的用途client如何实现长连接主协如何等其余协完再操作slice,len,cap,共享,扩容map如何顺序读取实现set实现消息队列(多生产者,多消费者)大文件排序基本排序,哪些是稳定的http get跟headhttp 401,403http keep-alivehttp能不能一次连接多次请求,不等后端返回tcp与udp区别,udp优点,适用场景time-wait的作用数据库如何建索引孤儿进,僵尸进死锁条件,如何避免linux命令,查看端口占用,cpu负载,内存占用,如何发送信号给一个进git文件版本,使用顺序...阅读全文

博文 2020-04-13 13:13:00 2020腾讯社招

王垠:如何掌握所有的程序语言

很多编初学者至今还在给我写信请教,问我该学习什么序语言,怎么学习。由于我知道如何掌握“所有”的序语言,总是感觉这种该学“一种”什么语言的问题比较低级,所以一直没来得及回复他们 可是逐渐的,我发现原来不只是小白们有这个问题,就连美国大公司的很多资深工师,其实也没搞明白。 今天我有动力了,想来统一回答一下这个搁置已久的“初级问题”。类似的话题貌似曾经写过,然而现在我想把它重新写一遍。因为在跟很多人交流之后,我对自己头脑中的(未转化为语言的)想法,有了更精准的表达。 如果你存在以下的种种困惑,那么这篇文章也许会对你有所帮助: 你是编初学者,不知道该选择什么序语言来入门。 你是资深的序员或者团队领导,对新出现的种种语言感到困惑,不知道该“投资”哪种语言。 你的团队为使用哪种序语言争...阅读全文

博文 2017-07-10 10:13:17 debian.cn

漫画赏析:Linux 内核到底长啥样

今天,我来为大家解读一幅来自 TurnOff.us 的漫画 “InSide The Linux Kernel” 。TurnOff.us 是一个极客漫画网站,作者 Daniel Stori 画了一些非常有趣的关于编语言、Web、云计算、Linux 相关的漫画。今天解读的便是其中的一篇。 在开始,我们先来看看这幅漫画的全貌! Inside the Linux Kernel 这幅漫画是以一个房子的侧方刨面图来绘画的。使用这样的一个房子来代表 Linux 内核。 地基 作为一个房子,最重要的莫过于其地基,在这个图片里,我们也从最下面的地基开始看起: Filesystem 地基(底层)由一排排的文件柜组成,井然有序,文件柜里放置着“文件”——电脑中的文件。左上角,有一只胸前挂着 421 号牌的小企...阅读全文

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