云架构师进阶攻略(完整版)-2

简介: 云架构师进阶攻略(完整版)

四、了解Linux基础知识


作为一个云架构师,首要的一点,就是要熟悉Linux的基础知识,基本原理了。

说到操作系统,一般有三个维度,一个是桌面操作系统,一个是移动操作系统,一个是服务器操作系统。


Stack Overflow Developer Survey 2018有这样一个统计,对于开发人员来说,桌面操作系统的排名是Windows,MacOS,Linux,所以大部分人平时的办公系统都是windows。

           

当然因为办公的原因,平时使用windows的比较多,所以在学校里,很多同学接触到的操作系统基本上都是Windows,但是一旦从事计算机行业,就一定要跨过Linux这道坎。


根据今年W3Techs的统计,对于服务器端,Unix-Like OS占到的比例为近70%。所谓Unix-Like OS 包括下图的Linux,BSD等一系列。

           

           

从这个统计可以看出,随着云计算的发展,软件SaaS化,服务化,甚至微服务化,大部分的计算都是在服务端做的,因而要成为云架构师,就必须懂Linux。


随着移动互联网的发展,客户端基本上以Android和iOS为主,下图是Gartner的统计。Android是基于Linux内核的。因而客户端也进入了Linux阵营,很多智能终端,智能设备等开发职位,都需要懂Linux的人员。

           

学习Linux主要包含两部分,一个是怎么用,一个是怎么编程,背后原理是什么。


对于怎么用,上手的话,推荐《鸟哥的Linux私房菜》,按着这个手册,就能够学会基本的Linux的使用,如果再深入一点,推荐《Linux系统管理技术手册》,砖头厚的一本书,是Linux运维手边必备。


对于怎么编程,上手的话,推荐《UNIX环境高级编程》,有代码,有介绍,有原理,如果对内核的原理感兴趣,推荐《深入理解LINUX内核》。


Linux的架构如下图

           

我们知道,一台物理机上有很多的硬件,最重要的是CPU,内存,硬盘,网络,但是一个物理机上要跑很多的程序,这些资源应该给谁用呢?当然是大家轮着用,谁也别独占,谁也别饿死。为了完成这件事情,操作系统的内核就起到了大管家的作用,将硬件资源分配给不同的用户程序使用,并且在适当的时间将资源拿回来,再分配给其他的用户进程,这个过程称为调度。


操作系统的功能之一是系统调用


当用户程序想请求资源的时候,需要调用操作系统的系统调用接口,这是内核和用户态程序的分界线,就像你要打车,要通过打车软件的界面,下发打车指令一样,这样打车软件才会给你调度一辆车。


操作系统的功能之二是进程管理


当一个用户进程运行的时候,内核为他分配的资源,总要有一个数据结构保存,哪些资源分配给了这个进程。分配给这个进程的资源往往包括打开的文件,内存空间等。

           

操作系统的功能之三是内存管理


每个进程有独立的内存空间,内存空间是进程用来存放数据的,就像一间一间的仓库。为了进程使用方便,每个进程内存空间,在进程的角度来看都是独立的,也即都是从0号仓库,1号仓库,一直到N号仓库,都是独享的。但是从操作系统内核的角度来看,当然不可能独享,而是大家共享,M号仓库只有一个,你用他就不能用,这就需要一个仓库调度系统,将用户进程的仓库号和实际使用的仓库号对应起来,例如进程1的10号仓库,对应到真实的仓库是110号,进程2的20号仓库,对应到真实的仓库是120号。


操作系统功能之四是文件系统


对于Linux来讲,很多东西都是文件,例如进程号回对应一个文件,建立一个网络连接也对应一个文件。文件系统多种多样,为了能够统一适配,有一个虚拟文件系统的中间层VFS。


操作系统功能之五是设备管理


设备分两种,一种是块设备,一种是字符设备,例如硬盘就是块设备,可以格式化为文件系统,再如鼠标和键盘的输入输出是字符设备。


操作系统功能之六是网络管理


其实对于Linux来讲,网络也是基于设备和文件系统的,但是由于网络有自己的协议栈,要遵循TCP/IP协议栈标准。


           

对于Linux的基础知识方面,我写了几篇文章如下。


图说Linux进程

图说Linux进程之二

图说Linux进程之三

图解Linux文件系统

图解Linux系统调用

Linux的虚拟文件系统VFS

图解Linux的Socket



相关文章
|
4月前
|
人工智能 安全 API
深入理解OpenClaw技术架构与实现原理(上)
本文深度剖析OpenClaw——当前最热门的个人AI助手系统,涵盖其本地优先、多端联动的总体架构,以及Gateway网关、Agentic Loop、定时任务、工具系统、Channels连接生态、上下文管理、SubAgent子智能体等16大核心模块。全文以AI-Coding实现为特色,强调安全沙箱、协议化设计与自进化能力,展现新一代软件构建范式的开山之作。
深入理解OpenClaw技术架构与实现原理(上)
|
3月前
|
安全 网络协议 网络安全
三分钟了解http和https
表现形式:HTTPS站点会在地址栏上显示一把绿色小锁,表明这是加密过的安全网站,如果采用了全球认证的顶级EV SSL证书的话,其地址栏会以绿色高亮显示,方便用户辨认。
585 1
|
7月前
|
负载均衡 算法 架构师
Ribbon负载均衡
本文深入讲解Spring Cloud中Ribbon实现客户端负载均衡的原理,包括@LoadBalanced注解的作用、负载均衡策略分类与算法,并演示如何自定义配置及优化饥饿加载,帮助读者全面掌握Ribbon的核心机制与应用实践。
151 2
 Ribbon负载均衡
|
缓存 监控 负载均衡
电商API性能优化全方位策略剖析
电商API性能优化对提升用户体验与业务效率至关重要。本文从八个方面探讨优化策略:1) 数据库优化,如索引设计、查询语句精简及冷热数据分离;2) 缓存策略,利用本地与分布式缓存减少数据库压力;3) 异步处理,通过任务队列提高响应速度;4) 负载均衡,分散高并发请求;5) 代码优化,改进算法与重构低效代码;6) 接口设计优化,标准化与模块化设计;7) 安全措施,强化数据加密与身份验证;8) 持续监控与优化,确保长期稳定运行。综合应用这些策略可显著提升电商API性能与用户体验。
Python实现PowerPoint演示文稿到图片的批量转换
PowerPoint演示文稿作为展示创意、分享知识和表达观点的重要工具,被广泛应用于教育、商务汇报及个人项目展示等领域。然而,面对不同的分享场景与接收者需求,有时需要我们将PPT内容以图片形式保存与传播。 这样能够避免软件兼容性的限制,确保信息接收者无需安装特定软件即可查看内容,还便于在网络社交平台、博客、电子邮件中快速分享与嵌入。而用Python代码可以高效地实现PowerPoint演示文稿到图片的批量转换,从而提升工作效率。
|
存储 人工智能 安全
如何调用 DeepSeek-R1 API ?图文教程
首先登录 DeepSeek 开放平台,创建并保存 API Key。接着,在 Apifox 中设置环境变量,导入 DeepSeek 提供的 cURL 并配置 Authorization 为 `Bearer {{API_KEY}}`。通过切换至正式环境发送请求,可实现对话功能,支持流式或整体输出。
4550 16
|
机器学习/深度学习 人工智能 开发框架
解锁AI新纪元:LangChain保姆级RAG实战,助你抢占大模型发展趋势红利,共赴智能未来之旅!
【10月更文挑战第4天】本文详细介绍检索增强生成(RAG)技术的发展趋势及其在大型语言模型(LLM)中的应用优势,如知识丰富性、上下文理解和可解释性。通过LangChain框架进行实战演练,演示从知识库加载、文档分割、向量化到构建检索器的全过程,并提供示例代码。掌握RAG技术有助于企业在问答系统、文本生成等领域把握大模型的红利期,应对检索效率和模型融合等挑战。
971 14
|
搜索推荐 算法 Java
堆排序实战:轻松实现高效排序,附详细Java代码
嗨,大家好!我是小米,一名热爱技术分享的程序员。今天要带大家了解堆排序——一种基于二叉堆的数据结构,具有O(n log n)时间复杂度的选择排序算法。堆排序分为构建大顶堆和排序两个阶段:先建堆使根节点为最大值,再通过交换根节点与末尾节点并调整堆来逐步排序。它稳定高效,空间复杂度仅O(1),适合对稳定性要求高的场合。虽然不如快速排序快,但在避免递归和节省空间方面有优势。一起动手实现吧!如果有任何疑问,欢迎留言交流!
595 2
|
物联网 测试技术 API
物联网项目开发:从规划到部署的完整指南
本篇详细介绍了物联网项目开发的完整流程,涵盖项目规划与需求分析、设计与开发物联网系统,以及测试与部署阶段。通过代码示例,读者可以了解如何有效地规划项目目标、分析需求,设计硬件与软件系统,进行系统测试,并最终将物联网系统成功部署到实际环境中。通过实际示例,读者将获得在物联网项目开发中的实践经验,为构建成功的物联网应用提供了有益的指导。
1791 1
|
Ubuntu API 开发工具
基于铜锁构建Web在线加密工具库
基于铜锁构建Web在线加密工具库
360 0