
Web架构全景与linux基础知识总结一、软件生命周期与运维价值产品经理–(提需求)–开发工程师-(写代码)-测试工程师-(测试是否通过)-部署运维(部署/反馈)用户QAQuality Assurance 质量保证 SRESite Reliability Engineering 站点可靠性工程是Google提出的运维方法论也是现代运维的发展向。本课程培养的核心目标就是SRE工程师。1、系统的流程用户沸羊羊我有一个想法我需要一个可以和美羊羊网页聊天软件用户登录、添加好友、聊天、发送图片、打视频、转账等等 产品经理喜羊羊好的好的我写一个需求文档给我们开发看看。 开发工程师慢羊羊天天写代发我真的是服了这都是什么需求又要加班...终于写完了开始编译打包。 测试工程师暖洋洋来让我看看这个软件做的怎么样这不行那不行需要重新修改修改 慢悠悠我服了 改完通过测试后 运维工程师懒洋洋部署服务器操作系统长传软件包开始部署JDK、mysql、redis缓存、按照软件包、配置域名和转发规则 沸羊羊不错不错我要和美羊羊聊天了 过几天 沸羊羊这个打视频的时候会断网什么情况 懒洋洋我先看看这个代码有问题需要开发优化一下运维的核心价值把一份代码变成一个7×24小时稳定、快速、可扩展的在线服务。开发工程师负责 生孩子写代码造功能运维工程师负责 养孩子让系统健康稳定地运行二、Web架构全景宏观# 访问 www.baidu.com 完整全流程整体链路浏览器本地缓存校验 → DNS解析 → TCP三次握手 → TLS加密握手 → HTTP请求发送 → 百度服务器处理返回HTML → TCP挥手释放连接 → 浏览器渲染百度首页## 一、用户操作 浏览器本地缓存检查行为浏览器地址栏输入www.baidu.com按下回车1. 浏览器先查询**内存缓存(Memory Cache)**短期缓存页面静态资源无百度首页缓存2. 查询**磁盘缓存(Disk Cache)**本地硬盘历史缓存过期/不存在3. 读取本机hosts文件WindowsC:\Windows\System32\drivers\etc\hosts/ Linux/etc/hosts无www.baidu.com手动IP映射4. 无本地缓存触发DNS域名解析。## 二、DNS解析把 www.baidu.com 转为百度服务器公网IP域名不能直接网络通信分层递归迭代查询1. **浏览器DNS缓存**无该域名记录2. **操作系统DNS缓存**Windowsipconfig /displaydns/ Linux/etc/resolv.conf无记录3. 操作系统请求**本地DNS服务器**运营商DNS 或 公共DNS223.5.5.5 - 本地DNS无缓存发起迭代四层查询1. 根服务器.返回.com顶级域名服务器地址2. .com 顶级服务器返回baidu.com权威DNS地址3. baidu.com 权威服务器查询www子域名返回百度CDN节点IP如180.101.49.114. 本地DNS把IP传回浏览器并缓存域名-IP映射。## 三、TCP三次握手和百度IP 443端口建立可靠连接HTTPS默认端口443HTTP为80操作系统发起TCP连接1. 客户端(本机)→ 百度服务器SYN包seq1000请求建立连接2. 百度服务器 → 本机SYNACK包ack1001seq2000同意建立3. 本机 → 百度服务器ACK包ack2001确认就绪 TCP通道建立完成。## 四、TLS握手HTTPS独有百度全站加密TCP通路就绪后先协商加密通道再传输网页数据1. 客户端发送TLS版本、加密套件列表2. 百度CDN服务器下发SSL证书包含百度域名、公钥、CA机构签名3. 浏览器校验证书确认颁发机构可信、域名匹配、证书未过期4. 浏览器生成随机预主密钥用百度证书**公钥加密**发给服务端5. 百度服务器用自身私钥解密拿到预主密钥6. 双方通过密钥生成对称加密密钥AES后续所有网页数据加密传输防劫持、窃听。## 五、浏览器组装HTTPS请求发送给百度服务器加密通道就绪发送标准GET请求报文## 六、百度服务端分层处理请求返回HTML响应百度后端分层CDN节点 → Nginx反向代理 → 业务服务1. **CDNNginx** 用户访问的是百度全国CDN边缘节点Nginx接收443请求解密TLS判断是首页静态页面 无本地缓存则转发后端业务服务有缓存直接返回页面 实现负载均衡、拦截非法请求、防盗链。2. **百度业务服务** 拼接首页模板、填充热搜、导航栏、广告模块生成完整百度首页HTML源码3. 组装HTTP响应报文返回浏览器## 七、TCP四次挥手页面数据传输完成HTTP/1.1默认长连接闲置一段时间后断开四次挥手流程1. 浏览器客户端发送FIN不再发送数据2. 百度服务器返回ACK收到关闭请求传输剩余图片、JS资源3. 服务器数据发送完毕发送FIN服务端无数据4. 客户端返回ACKTCP连接彻底释放三、服务器核心部件CPUCPU负责执行所有计算。处理请求、MySQL执行查询都需要CPU 主频主频越高处理数据越快 核心数核心越多同时处理的内容越多 线程数一心多用 内存CPU 运算时临时存放数据、程序的高速空间断电数据全部丢失 硬盘 / SSD 是永久存储断电数据保留速度远慢于内存。 作用CPU 不能直接读写硬盘所有正在运行的程序浏览器、系统、服务器 Nginx必须先加载进内存CPU 才能快速读取运算。 磁盘是持久化存储设备外存断电数据不会丢失用来长期存放系统、软件、文件、日志、缓存、数据库数据。 CPU不能直接读取磁盘数据必须先加载到内存 RAM 才能运算。 分为两大类机械硬盘 HDD、固态硬盘 SSD 网卡是主机和外部网络的唯一硬件出入口。 电脑 / 服务器 CPU、内存的数据必须通过网卡转换成电信号 / 光信号才能发给交换机、路由器、外网外网数据也只能通过网卡流入本机。四、Linux是什么# Linux 发展史完整详解## 一、时代背景1960–1980Unix 前传Linux 的源头根基### 1. Multics 项目1964麻省理工MIT、贝尔实验室、通用电气联合开发**分时操作系统Multics**目标是多用户同时使用大型机但项目过于臃肿、进度缓慢1969年贝尔实验室退出。 团队两名研究员**肯·汤普森Ken Thompson、丹尼斯·里奇Dennis Ritchie** 留在实验室。### 2. Unix 诞生1969汤普森利用闲置小型机基于Multics思路简化写出简易操作系统取名 **Unics简化版Multics**后改名Unix。1972年丹尼斯·里奇发明**C语言**1974年两人把Unix内核全部用C重写——**操作系统首次脱离汇编具备跨硬件移植能力**这是后世Linux能遍地开花的核心基础。### 3. Unix 商业化分裂1970–1980贝尔实验室隶属ATT早期免费对外发放Unix源码给高校伯克利大学UC Berkeley基于Unix二次开发出 **BSDBerkeley Software Distribution**增加TCP/IP网络、C Shell、vi等现代网络系统基石。1983年美国反垄断法案拆分ATTATT开始**商业售卖Unix封闭源码、收取高额授权费**企业、高校想要使用Unix必须付费源码不再公开催生开源运动。### 4. GNU 计划开源运动起点1983理查德·斯托曼Richard Stallman发起 **GNU项目**口号打造一套**完全自由、开源、可自由修改分发**的完整类Unix操作系统。 GNU陆续开发全套工具链gcc编译器、bash shell、glibc标准库、gawk、emacs等唯独缺少**操作系统内核**GNU Hurd内核开发多年难产。 斯托曼推出 **GPL开源协议**核心规则——使用GPL代码衍生的软件必须完整开源禁止闭源商用捆绑。### 5. MINIX教学微型Unix1987荷兰教授安德鲁·塔能鲍姆Andrew Tanenbaum为操作系统教学编写微型类Unix内核MINIX源码公开但**禁止商用、限制修改分发**且内核设计小巧简陋不适合个人电脑日常使用。 当时PC主流系统MS-DOS单任务、闭源没有廉价可用的类Unix系统为Linux诞生埋下契机。## 二、Linux 诞生1991林纳斯·托瓦兹Linus Torvalds### 1. 个人动机芬兰赫尔辛基大学学生林纳斯买不起商业UnixMINIX又限制多想在自家**Intel80386PC** 上搭建一套免费、完整的类Unix内核。### 2. 历史性邮件1991.8.25林纳斯在MINIX新闻组发布公开邮件核心内容我正在做一个免费操作系统只是业余爱好不会像MINIX那样庞大支持386硬件任何人可以自由下载试用。### 3. 0.01版本发布1991.9发布Linux0.01仅**8000行C代码**只能在386架构运行甚至不能独立启动必须依托MINIX环境编译运行。 名称由来Linus Unix → Linux吉祥物企鹅Tux1996年正式确定。### 4. 结合GNU完整操作系统成型Linux只是**内核**管理硬件、进程、内存缺少终端、编译器、工具。 林纳斯把Linux内核搭配GNU全套开源工具gcc、bash、glibc形成一套完整免费可用的类Unix系统。1992年林纳斯将Linux内核协议改为 **GPLv2**任何人可查看、修改、分发内核源码修改后的衍生内核也必须开源奠定Linux开源根基。### 5. 早期关键冲突Linux vs MINIX1992教授塔能鲍姆公开批判Linux内核是**单片内核**架构落后MINIX微内核才是未来且Linux绑定x86硬件移植性差。 这次论战极大提升Linux曝光度全球程序员涌入社区不断提交补丁、驱动、功能快速迭代。## 三、高速发展期1992–2000发行版百花齐放、服务器崛起Linux内核本身只是内核**发行版Distribution**Linux内核 GNU工具 软件包管理器 桌面环境 系统配置各大团队打包成品系统对外分发。### 1. 经典早期发行版1. **Slackware1993** 最早成熟发行版极简风格至今仍维护无依赖自动解决手动管理软件包代表纯粹老式Linux。2. **Debian1993** 全球志愿者社区开发严格遵守GNU自由软件准则dpkg包管理稳定性极强。1994年Debian1.1发布成为后世Ubuntu、Deepin、树莓派系统的母体。3. **Red Hat红帽1994** 首个商业化Linux公司创造RPM软件包格式降低企业部署门槛。1998年推出 **Red Hat Enterprise LinuxRHEL企业版**付费订阅技术支持面向服务器、企业市场开创Linux商业化盈利模式。4. **SUSE1994德国** 欧洲主流发行版YaST图形化配置工具适合桌面与服务器后被Novell收购如今有企业版SLES。### 2. 90年代重大里程碑1. **多架构支持**早期仅x86逐步支持Alpha、PowerPC、ARM摆脱Intel绑定可跑小型机、嵌入式设备。2. **网络能力完善**完整集成TCP/IPWeb服务器Apache大量部署在Linux90年代末互联网爆发Linux凭借免费稳定取代昂贵商用Unix成为网站服务器首选。3. **桌面环境诞生** - KDE1998Qt框架图形桌面 - GNOME1999GNU官方开源桌面GTK框架 Linux不再只是服务器专用开始具备PC桌面能力。4. **19992.2内核发布** 里程碑内核支持SMP多处理器、超大内存、多种文件系统ext2成熟、大量硬件驱动企业服务器大规模落地。### 3. 行业认可转折点1998IBM、Intel、Oracle、惠普等巨头公开支持Linux - IBM投入数十亿美元适配服务器硬件、数据库适配Linux - 数据库Oracle推出Linux版本 商用Unix厂商Solaris、AIX、HP-UX市场份额开始萎缩。## 四、成熟稳定期2000–2010企业、嵌入式、服务器全面垄断### 1. 内核迭代2.4 / 2.6 时代1. **Linux2.42001** 完善USB设备、ISA/PCI硬件、ext3日志文件系统解决断电文件损坏服务器可靠性大幅提升。2. **Linux2.62003跨10年长期版本** 现代Linux核心内核 - 抢占式内核低延迟适配实时设备 - 完善内存管理、进程调度 - 全面支持ARM嵌入式架构 - udev硬件自动识别热插拔2.6持续更新至2011支撑整个2000年代服务器、手机、嵌入式。### 2. 桌面发行版爆发1. **Ubuntu2004基于Debian** 南非企业家马克·舍特尔沃斯创立Canonical公司主打**简单易用、免费桌面**半年一个版本五年长期支持LTS。 大幅降低Linux使用门槛普通个人用户大规模接触Linux成为全球最流行桌面发行版。2. **CentOS2004** 社区将RHEL源码重新编译、去除商标免费发布完全兼容RHEL中小企业服务器首选免费系统。3. 其他分支Fedora红帽社区测试版、Mint基于Ubuntu轻量化桌面。### 3. 嵌入式领域全面占领2003–2010Linux轻量、开源、裁剪灵活彻底统治嵌入式市场1. **Android2008** Google基于Linux2.6内核开发安卓系统智能手机全球普及Linux借手机走进数十亿普通人2. 路由器OpenWrt、智能家电、机顶盒、工控机、车载系统全部采用Linux3. 树莓派雏形、ARM开发板兴起。### 4. 服务器与云计算萌芽- Web、数据库、缓存服务器90%以上部署Linux - 虚拟化成熟KVM原生集成Linux内核Xen广泛使用 - 亚马逊AWS早期云服务器全系Linux云计算底层根基确立。### 5. 商业化格局定型- 企业付费RHEL、SLES商业订阅服务 - 免费服务器CentOS、Debian Stable - 个人桌面Ubuntu、Mint - 嵌入式定制厂商基于内核自行裁剪。## 五、云与国产崛起2010–2020容器、国产操作系统、云原生时代### 1. 内核主线升级3.x → 4.x- Linux3.02011版本号简化去除冗长2.6前缀 -4.x系列2015–2019完善cgroup、namespace为容器底层提供原生支持NVMe固态硬盘、新型硬件驱动全面适配Btrfs文件系统完善。### 2. 容器革命Docker Kubernetes底层全靠LinuxLinux内核自带的 **Namespace资源隔离、Cgroup资源限制、UnionFS** 是容器技术唯一底层支撑。2013年Docker发布2015年K8s诞生全球云计算、微服务全部基于LinuxWindows服务器份额持续下滑。### 3. 国产Linux操作系统高速发展国内出于信息安全、自主可控需求基于Debian/RHEL二次开发自研发行版1. **麒麟操作系统Kylin** 国防科大起步分为服务器版、桌面版**银河麒麟V10**适配鲲鹏ARM/x86党政、医疗、政务、机房主力国产系统2. **统信UOSDeepin** 深度桌面美观易用面向个人、政企替换Windows3. 其他欧拉OpenEuler华为服务器内核、龙蜥Anolis阿里云服务器、龙梦、普华等。 全部基于Linux内核适配国产鲲鹏、飞腾、龙芯CPU。### 4. 超算领域绝对垄断全球TOP500超级计算机99%运行Linux气象、航天、核能、AI算力集群全部依赖Linux。## 六、现代Linux2020–至今5.x / 6.x内核AI算力、全场景统一### 1. 内核迭代 5.x → 6.x- Linux5.02019完善ARM64架构、实时调度、内存优化 -5.x系列新增io_uring高速异步IO大幅提升数据库、存储性能、内置exFAT文件系统、硬件安全模块 - Linux6.x2023至今当前稳定主线强化GPU调度、AI算力调度、内存透明巨页、云原生隔离优化专门适配NVIDIA、国产GPU算力服务器。### 2. AI算力基础设施基石大模型训练、推理服务器底层100% Linux - 主流发行版Ubuntu Server、CentOS Stream、OpenEuler、RHEL - 内核优化GPU显存调度、多卡通信CUDA、ROCm显卡驱动深度适配Linux。### 3. 全新服务器发行版CentOS8停止维护2021替代方案 - CentOS Stream红帽上游测试版 - Rocky Linux、AlmaLinux社区免费兼容RHEL - 华为OpenEuler、阿里Anolis云厂商自研服务器系统。### 4. 全场景覆盖现状2026现状1. **服务器/云/超算**垄断市场2. **移动端**AndroidLinux内核占据手机市场3. **嵌入式**路由器、工控、汽车、智能家居、智能穿戴4. **桌面**Ubuntu、统信UOS、麒麟桌面、Fedora5. **物联网、边缘计算**轻量LinuxYocto、OpenWrt6. **国产信创体系**党政、医院、国企替换Windows的核心操作系统。## 七、Linux 核心社区与治理模式贯穿全程的核心优势1. **创始人终身维护**林纳斯·托瓦兹始终是内核主线维护者掌握主干代码合并权限2. **分层维护体系**子系统维护者网络、存储、ARM、驱动分层管理补丁全球数千开发者协作3. **完全开源透明**所有内核开发邮件列表公开任何人可提交补丁4. **无单一厂商控制**红帽、华为、Intel、谷歌、阿里等企业均雇佣程序员提交内核代码但无法垄断内核社区主导发展避免闭源系统厂商锁死用户。## 八、总结Linux成功的核心原因1. **开源GPL协议**允许免费使用、修改、分发企业零授权成本2. **C语言编写模块化**跨x86/ARM/RISC-V等所有硬件架构3. **社区协同开发**全球厂商、志愿者持续迭代漏洞修复速度远超闭源系统4. **轻量化可裁剪**可跑手机、单片机也可支撑超算、万卡AI集群5. **无厂商绑定**没有单一公司垄断政企不用担心停服、涨价锁死6. **生态完整**网络、存储、虚拟化、容器、数据库、AI软件全栈适配。