云架构师进阶攻略(完整版)-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



相关文章
|
存储 缓存 人工智能
云架构师进阶攻略(完整版)-1
云架构师进阶攻略(完整版)
360 0
云架构师进阶攻略(完整版)-1
|
缓存 监控 Kubernetes
云架构师进阶攻略(完整版)-6
云架构师进阶攻略(完整版)
176 0
|
分布式计算 资源调度 搜索推荐
云架构师进阶攻略(完整版)-5
云架构师进阶攻略(完整版)
123 0
|
存储 运维 Kubernetes
云架构师进阶攻略(完整版)-4
云架构师进阶攻略(完整版)
210 0
|
网络协议 架构师 Linux
云架构师进阶攻略(完整版)-3
云架构师进阶攻略(完整版)
199 0
|
机器学习/深度学习 SQL 分布式计算
新手入门赛-(o2o)数加平台使用教程(下)|学习笔记
快速学习新手入门赛-(o2o)数加平台使用教程(下)
226 0
|
SQL 机器学习/深度学习 分布式计算
新手入门赛-(o2o)数加平台使用教程(上)|学习笔记
快速学习新手入门赛-(o2o)数加平台使用教程(上)
170 0
|
消息中间件 SpringCloudAlibaba 负载均衡
阿里P8大牛总结的保姆式笔记「SpringCloudAlibaba」完整版开放
随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。从互联网早起到现在,系统架构大体经历了下面几个过程: 单体应用架构——垂直应用架构——分布式架构——SOA架构——微服务架构,接下来我们就来了解一下每种系统架构是什么样子的, 以及它们的缺点和优点。
258 0
|
存储 Kubernetes Cloud Native
重磅合集 | 31 篇技术文章,带你从零入门 K8s (留言赠书)
由阿里云与 CNCF 共同开发的《CNCF x Alibaba 云原生技术公开课》(视频课程)第一期已更新完毕。本文整理了全部课程文章 31 篇,期待给正在学习 Kubernetes 的同学提供一些参考。
12963 0
重磅合集 | 31 篇技术文章,带你从零入门 K8s (留言赠书)
|
人工智能 Kubernetes 小程序
开发者社区精选直播合集(二十一)| 云上快速搭建小程序
本合集由浅入深,旨在帮助小程序开发者们解决开发中遇到的问题,为开发者们快速赋能,提高开发体验。
开发者社区精选直播合集(二十一)|  云上快速搭建小程序