为什么2017年之后操作系统仍将扮演重要角色?

news2025/2/27 5:45:59
操作系统的历史虽然不像计算科学那么久远,但却也已经拥有相当可观的发展历程。大型机客户于上世纪五十年代末编写了第一批操作系统,这些系统直到数十年后的今天仍拥有相当的知名度——其中包括来自IBM公司的OS/360以及贝尔实验室打造的Unix。

在可预期的未来,操作系统仍将继续存在并保持活跃。

操作系统的历史虽然不像计算科学那么久远,但却也已经拥有相当可观的发展历程。大型机客户于上世纪五十年代末编写了第一批操作系统,这些系统直到数十年后的今天仍拥有相当的知名度——其中包括来自IBM公司的OS/360以及贝尔实验室打造的Unix。


首先,操作系统立足于物理系统之上且与硬件直接交互。这使得众多应用软件能够充分享受到硬件提供的特性与功能。举例来说,这意味着开发商能够在硬件当中提供更多创新空间,因为操作系统能够完成对新型处理器及各类服务器设计方案的支持任务——而无需强迫开发者承担这部分工作。可以说,硬件创新将在机器学习及其它关键性软件发展趋势背景下焕发更为旺盛的生机,这意味着我们不再需要年复一年等待CMOS工艺提升带来有限的一点性能提升。随着混合云架构的广泛普及,由此抽象层带来的可移植能力亦将变得更为重要。

第二,操作系统本身——特别是操作系统内核——负责执行应用程序所必需的常规任务。其管理进程调度、电源管理、root访问权限、内存分配以及全部其它底层守护及运行类细节任务,从而保证系统整体能够高效安全地保持运作。

最后,操作系统还作为其自有“用户相关”程序——例如日志记录、性能配置等系统工具——以及用户所编写之应用程序的接口存在。操作系统应当通过各类基于开放标准的API(即应用程序编程接口)为应用提供一致性接口。另外,商业支持型操作系统亦会提供与其在业务及技术层面保持合作关系的第三方应用程序供应商的产品,同时作为内容通道为该平台提供更多受信内容。

过去几年以来,计算技术的发展前景已经发生了很大变化,这也同时改变了我们看待操作系统及其效果的方式——尽管其仍然扮演实在同样的核心角色。总体而言,我们需要考虑应用程序打包方式、计算基础设施快速发展以及未来威胁与漏洞等一系列实质性转变。

容器化

运行在Linux容器内的应用程序相当于立足于一套经过隔离并运行在物理服务器之上的单一操作系统副本内。这套方案不同于以往基于虚拟机管理程序的虚拟化实例。虚拟机方案意味着每款应用都绑定有一套完整的访客操作系统副本,并能够通过管理程序与硬件进行通信。简而言之,虚拟化管理程序负责对硬件资源进行虚拟化,而容器技术则负责对操作系统资源进行虚拟化。如此一来,容器技术需要占用的内存等系统资源量更低,且应用程序的运行基本不会带来额外性能损耗。

容器化技术在很大程度上依赖于大家熟知的操作系统概念。容器构建于Linux内核的进程模式之上,同时配合其它操作系统功能,例如命名空间(例如进程、网络、用户)、cgroups以及权限模式,旨在实现容器隔离的同时实现完整的系统功能。

容器技术的优势在于,其能够将整体应用程序拆分成一组可移植层结构,从而以极低成本实现在不同环境间的迁移。在这方面,容器其实只是个笼统的概念,其拥有多种不同的实现形式——且目前尚未成为主流。(至少还远未达到虚拟化应用的普及程度。)对于容器技术而言,当前最为重要的变化在于开源及开放标准开始发挥核心作用。以开放容器倡议为例,该合作项目由Linux基金会负责管理,旨在围绕容器的格式及运行时等建立开放性行业标准。

另外值得关注的是,容器技术与软件定义基础设施(例如OpenStack)相结合后,已经被纳入Linux范畴之内。通过计算机软件的发展历史,可以清晰地看到将技术方案集成至操作系统之内代表着相关技术将得到广泛采纳,并迎来更为广阔的发展空间及更加强大的生态系统支持——TCP/IP之于网络或者其它任何被广泛采用的安全相关特性都能够证明这一点。

规模化

另一大明显转变在于,我们越来越多地将计算资源表现形式归于大规模数据中心,而非个别服务器。这种转变早在Web诞生之初就已经出现,但必须承认,如今我们正在更为积极地利用高性能计算“网格”技术处理传统批量工作负载以及新型面向服务类负载。

与容器以及基于松散耦合型“微服务”(各服务运行于容器内)应用进行衔接——无论是否配合持久性存储——已经成为一类高人气云原生方案。尽管与面向服务架构(简称SOA)概念存在交集,但这类方案已经显示出强大的可行性,且开拓出不同于以往整体式应用开发理念的全新思路。通过细粒度、松散耦合架构实现的微服务应用允许我们在应用架构内反映经过确切定义的单一应用功能。微服务架构的快速更新、可扩展性以及容错性等优势正使得此类组合式应用全面压制传统整体型应用,毕竟我们很难在不影响其它组件的前提下,对后者的单一组件进行变更。

而这种转变从操作系统的角度来看,意味着应用能够更多将单一“计算机”作为一组聚合型数据中心资源集来看待。当然,其中仍然存在着大量底层独立服务器; 且虽已具备一定程度的自动化及自行运作能力,其仍需要运营及维护。不过,容器调度与管理的效率优势已经催生出新的抽象机制,即为工作负载的运行以及多层应用程序的组合带来全新实现层——而不再单纯依靠服务器。

隶属于Linux基金会的云原生计算基金会(简称CNCF)旨在“推动新型计算规范的采用,其面向包含成千上万拥有自我修复能力的多租户节点的现代分布式系统环境。”CNCF之下的杰出项目之一正是Kubernetes,这款开源容器集群管理工具最初由谷歌公司设计,但目前已经获得来自红帽等其它多家厂商的支持与贡献。

安全性

一切适用于虚拟化环境的安全强化机制、性能调整机制、可靠性技术手段以及认证,亦同样适用于容器化技术。事实上,操作系统在隔离化容器及软件定义基础设施领域承担的安全性与资源交付责任要远高于原有专用硬件或软件执行环境。Linux已经在利用开源模式构建综合性安全执行功能工具包当中成为受益者,其中包括通过SELinux实现强制性访问控制、广泛的用户空间与内核强化功能、身份管理与访问控制乃至加密等等。

不过就目前来看,信息安全态势仍然处于不断变化当中。无论是允许客户及合作伙伴访问特定系统与数据、允许员工使用自有智能手机与笔记本设备、使用来自软件即服务(简称SaaS)供应商提供的应用程序还是发挥公有云供应商的按需付费计价优势,我们都无法通过单一方案解决全部实际需求。

开放性开发模式允许整个行业认可同一套标准,并鼓励最为睿智的开发者不断对这些技术方案进行测试及改进。大型企业及其下辖部门能够及时向Linux及其它开源软件供应方提供安全性反馈,这也有力证明了社区合作在未来技术发展道路上解决问题的实际能力。另外,开源开发流程意味着一旦安全漏洞被曝光,整个开发者社区及供应商都能够协同提供代码更新、安全指导以及说明文档。

除了操作系统之外,同样的流程及实践方式亦被混合云基础设施所采用,旨在对现有方案进行升级并纳入更多新型功能。另外,当组件以微服务及其它松散耦合架构形式进行复用时,维护这些组件自身质量及其依赖性(当用于构建应用程序时)的重要意义将进一步提高。

有变化,亦有不变

目前操作系统开发及运营相关事务的具体优先级显然发生了转变。目前我们的关注重点在于如何以规模化方式进行自动化部署,而不再是对单一服务器进行定制、调整及优化。与此同时,威胁因素的发展速度及程度亦令安全边界变得更加模糊——这意味着我们需要立足系统层面了解网络以及快速加以应对的具体办法。

总结来讲,应用程序正变得更具适应性、更具移动性、更具分布性、更具稳定性且更具轻量性。其安置、配置以及保护方式必须配合更高水平的自动化方案。在此期间,有些作法应当保持,而有些作法则应当变更。这意味着我们必须找到一种能够随新要求演变并适应新型工作负载的解决方案?而答案,无疑正是操作系统——或者说,Linux操作系统。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/426949.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详解二叉搜索树 --- key模型和key/value模型

🍀作者:阿润菜菜 📖专栏:数据结构 一、认识二叉搜索树的key模型和key/value模型 key的模型是指每个节点只有一个键值,用于确定节点在树中的位置。节点的键值必须满足二叉搜索树的性质,即左子节点的键值小于…

SpringBoot 中使用Guava实现单机令牌桶限流

SpringBoot项目中如何对接口进行限流,有哪些常见的限流算法,如何优雅的进行限流。 首先就让我们来看看为什么需要对接口进行限流? 为什么要进行限流? 因为互联网系统通常都要面对大并发大流量的请求,在突发情况下&a…

你还还还没学会RabbitMQ?-----------RabbitMQ详解及快速入门(工作模式)

你像天外来物一样,求之不得(咳咳,指offer)🌹 文章目录什么是MQ?MQ的优势与劣势使用MQ需要满足的条件常见的MQ产品关于RabbitMQ生产者消费者工作模式订阅模式路由模式通配符模式什么是MQ? Messa…

机器学习——支持向量机的训练

目录 实践SVM分类 测试1-1​编辑 测试1-2 SVM核心 支持向量机函数 分类器SVC的主要属性: 分类器SVC的主要方法: 回归器SVR的主要属性: 支持向量机在鸢尾花分类中的应用 实践SVM分类 (1)参数C的选择: C为惩罚系数,也称为正则化系数: C越小模型越受限(即单个数据…

【设计模式】从Mybatis源码中学习到的10种设计模式

文章目录一、前言二、源码:学设计模式三、类型:创建型模式1. 工厂模式2. 单例模式3. 建造者模式四、类型:结构型模式1. 适配器模式2. 代理模式3. 组合模式4. 装饰器模式五、类型:行为型模式1. 模板模式2. 策略模式3. 迭代器模式六…

长江流域9省2市可视化(不展示业务信息水质及真实断面)

一、处理9省2市地理信息为geojson集成到项目 shp转geojson关键Java代码 /*** shp转换为Geojson* param shpPath* return*/ public static Map shape2Geojson(String shpPath,String filePath){Map map new HashMap();FeatureJSON fjson new FeatureJSON();try{StringBuffer …

阶段二33_面向对象高级_IO[转换流,对象流]

知识点: 1.转换流:InputStreamReader,OutputStreamWriter2.对象流:ObjectInputStream,ObjectOutputStream一.转换流 1.转换流原理图 2.转换流概述 转换流就是来进行字节流和字符流之间转换的 InputStreamReader是从…

p75 应急响应-数据库漏洞口令检索应急取证箱

数据来源 必须知识点: 第三方应用由于是选择性安装,如何做好信息收集和漏洞探针也是获取攻击者思路的重要操作, 除去本身漏洞外,提前预知或口令相关攻击也要进行筛选。排除三方应用攻击行为,自查漏洞分析攻击者思路&a…

表白墙(服务器版)

文章目录一、准备工作二、前后端交互后端前端三、数据库版本一、准备工作 我们之前实现过这样一个表白墙,具体前端代码参考 表白墙 这篇文章 但是我们之前写的这个表白墙有一些问题: 1.如果我们刷新页面/重新开启,之前的数据就不见了 2.我们…

python pyc文件

参考自 What are pyc files in Python 和Python什么情况下会生成pyc文件? - 知乎 加上了我自己的理解 官方文档有这么解释 A program doesnt run any faster when it is read from a ‘.pyc’ or ‘.pyo’ file than when it is read from a ‘.py’ file; the o…

C生万物 | 一探指针函数与函数指针的奥秘

文章目录一、指针函数1、定义2、示例二、函数指针1、概念理清2、如何调用函数指针&#xff1f;3、两道“有趣”的代码题O(∩_∩)O< 第一题 >< 第二题 >4、函数指针数组概念明细具体应用&#xff1a;转移表✔5、指向函数指针数组的指针三、实战训练 —— 回调函数1、…

Pix4D软件简易使用方法

一、实验目的 学习无人机处理软件 Pix4D 的各项基本功能模块&#xff0c;掌握处理无人机影像的一般处理流程及质量评价。学习新建项目&#xff0c;对图像进行初始化操作以便后处理。学会制作正射影像图&#xff0c;生成质量报告&#xff0c;并对其进行分析。 二、实验内容 &…

抽象轻松MySqL

第一步安装下载MySQL 手把手教你下载安装 第一步打开官方网站 这里提供两种——第一种懒人版&#xff1a;MySQL点击蓝色字会有链接 第二种手动版本&#xff1a;百度搜索Mysql&#xff08;注意不要点.cn的因为有点翻译问题&#xff09; 点开后的图如下 接下来开始装备下载 点…

Disentangled Graph Collaborative Filtering

代码地址&#xff1a;https://github.com/ xiangwang1223/disentangled_graph_collaborative_filtering Background&#xff1a; 现有模型在很大程度上以统一的方式对用户-物品关系进行建模(将模型看做黑盒&#xff0c;历史交互作为输入&#xff0c;Embedding作为输出。)&…

【C++进阶之路】初始C++

文章目录一.C的发展历史时代背景产生原因发型版本二.C的应用场景三.C 的学习成本C的难度C的学习阶段21天精通C的梗一.C的发展历史 时代背景 20世纪60年代——软件危机。部分原因:C语言等计算机语言是面向过程语言&#xff0c;在编写大型程序需要高度抽象与建模&#xff0c;此…

HTML中表格标签<table><tr><tb><th>中单元格的合并问题

前情知晓 层级关系如下&#xff1a; <table><tr><td> </td><th> </th></tr></table> <table>...</table> 用于定义一个表格开始和结束 <tr>...</tr> 定义一行标签&#xff0c;一组行标签内可以建立…

【前端】从零开始读懂Web3

序言 用心生活&#xff0c;用力向上&#xff0c;微笑前行&#xff0c;就是对生活最好的回馈。 本专栏说明&#xff1a; 主要是记录在分享知识的同时&#xff0c;不定时给大家送书的活动。 参与方式&#xff1a; 赠书数量&#xff1a;本次送书 3 本&#xff0c;评论区抽3位小伙伴…

Python进阶特性(类型标注)

1.4 Python进阶特性(类型标注) 1.4.1 类型标注介绍 Python属于动态类型语言&#xff0c;只有在运行代码的时候才能够知道变量类型&#xff0c;那么这样容易产生传入参数类型不一致的问题&#xff0c;导致出现意想不到的bug。这也是动态类型语言天生的一个问题。 所以在Python…

【Spring】— Spring中Bean的装配方式

Spring中Bean的装配方式Bean的装配方式1.基于XML的装配2.基于Annotation的装配3.自动装配Bean的装配方式 Bean的装配可以理解为依赖关系注入&#xff0c;Bean的装配方式即Bean依赖注入的方式。Spring容器支持多种形式的Bean装配方式&#xff0c;如基于XML的装配、基于Annotatio…

电力系统中针对状态估计的虚假数据注入攻击建模与对策(Matlab代码实现)

&#x1f352;&#x1f352;&#x1f352;欢迎关注&#x1f308;&#x1f308;&#x1f308; &#x1f4dd;个人主页&#xff1a;我爱Matlab &#x1f44d;点赞➕评论➕收藏 养成习惯&#xff08;一键三连&#xff09;&#x1f33b;&#x1f33b;&#x1f33b; &#x1f34c;希…