自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 SONiC 之 Testbed(2)Ansible

Ansible是由RedHat开发的开源自动化工具,采用无代理架构,通过SSH/WinRM协议实现配置管理、应用部署和任务编排。其核心优势包括:1)无代理设计降低运维成本;2)YAML语法易学易用;3)幂等性确保操作安全;4)模块化架构支持扩展;5)跨平台兼容各类设备。核心组件包含控制节点、资产清单、Playbook剧本和模块系统,典型应用场景涵盖配置管理、云资源编排及网络自动化(如SONiC交换机配置)。提供源码和pip两种安装方式,推荐使用结构化Playbook布局实现代码复用。

2025-08-28 18:39:41 715

原创 计算机组成原理(13) 第二章 - DRAM SRAM SDRAM & ROM

本文介绍了计算机中常见的存储器类型,重点对比了DRAM、SRAM和SDRAM三类RAM技术。DRAM依靠电容存储数据,需要周期性刷新,成本低但速度较慢;SRAM采用6晶体管结构,无需刷新,速度快但成本高;SDRAM在DRAM基础上引入同步时钟机制,提升了传输效率。此外还概述了ROM的特性及其演进类型,包括掩膜ROM、PROM、EPROM、EEPROM和闪存,它们具有非易失性特点,在系统启动和固件存储中发挥关键作用。最后通过表格对比了三类RAM的主要特性差异。

2025-08-27 21:56:03 673

原创 计算机组成原理(12) 第二章 - 主存储器的基本组成

存储器芯片是电子设备实现数据存储的核心硬件,通过存储单元阵列记录二进制信息(0/1)。其核心组件包括地址译码器(定位存储单元)、读写电路(转换电信号)和控制逻辑(协调操作)。寻址机制通过地址线传输、译码定位实现数据访问,分为物理寻址(直接访问)和逻辑寻址(需地址转换)。指令寻址方式包括立即寻址、直接寻址等,影响CPU访问存储器的效率。这些原理共同构成了计算机存储系统的技术基础。

2025-08-23 20:41:13 917

原创 计算机组成原理(11) 第二章 - 存储系统的基本概念

计算机存储系统采用层次化结构平衡速度、容量与成本,主要包括寄存器、高速缓存、主存、外存等六层。存储器按介质可分为半导体存储器(如DRAM、SRAM、闪存)、磁表面存储器(如硬盘、磁带)和光存储器(如光盘);按访问方式分为随机存取(RAM)、顺序存取(磁带)和直接存取(硬盘)。性能指标涵盖存取时间、存储周期、带宽等速度参数,以及存储容量和可靠性指标。这种分层设计通过数据局部性原理实现高效访问,是计算机高性能运行的核心保障。

2025-08-23 16:35:37 696

原创 计算机组成原理(10) - 浮点数的表示

本文详细介绍了浮点数的计算机表示方法。主要内容包括:1)浮点数的概念与作用,用于表示带小数点的实数;2)IEEE 754标准规定的单精度(32位)和双精度(64位)浮点存储格式,包括符号位、指数位和尾数位的划分;3)浮点数的数值范围、精度和特殊值(如无穷大、NaN)的表示方法;4)数据在内存中的存储方式,包括大小端模式和边界对齐规则。文章通过具体示例阐述了浮点数的存储原理,并解释了其精度限制和运算误差的根源。

2025-08-22 22:19:18 734

原创 计算机组成原理(9) - 整数的乘除法运算

计算机整数乘除法运算基于二进制实现,通过硬件优化算法完成。乘法采用"移位+加法"原理,分无符号和有符号(补码)处理,现代处理器通过并行结构加速。除法更复杂,使用恢复余数法或更高效的加减交替法,需处理符号、溢出及除零异常。运算过程需考虑寄存器位数限制,结果整合和异常处理由硬件和软件协同完成。

2025-08-18 21:01:42 793

原创 SONiC (4) - redis的介绍以及应用

摘要:本文介绍了Redis在SONiC开发中的重要作用,以及Redis的基本特性和核心数据类型。Redis是一个高性能的键值存储系统,支持字符串、哈希、列表、集合和有序集合等丰富数据类型,具有原子性操作、持久化和发布/订阅等功能。文章详细讲解了每种数据类型的常用命令和操作示例,包括字符串的SET/GET、哈希的HSET/HGET、列表的LPUSH/LRANGE等。同时介绍了Redis的发布订阅模式和多客户端交互方式。这些Redis基础知识对理解SONiC中的数据交互机制至关重要。

2025-08-17 11:42:49 930

原创 SONiC (3) - SONiC 社区支持的平台

本文列出了150款支持SONiC网络操作系统的交换机平台,涵盖Accton、Arista、Dell、Nvidia等主流厂商。这些设备采用Broadcom、Intel、Marvell等不同ASIC芯片,端口配置从1G到800G不等,均通过社区测试并发布。其中Broadcom平台占比最高(约60%),其次是Intel Tofino和Marvell方案。典型配置包括:32x100G(Arista 7060CX)、64x400G(Dell Z9664F)等高性能型号,以及48x1G+4x10G等接入层设备。所有平台

2025-08-16 10:33:59 754

原创 计算机组成原理(8) - 定点数的运算

定点数移位运算分为逻辑移位(适用于无符号数)和算术移位(适用于有符号数)。逻辑移位左右移动时高位/低位补0,算术移位则保持符号位不变。移位运算能快速实现乘除2的幂次运算,但需注意溢出问题。定点数加减运算基于补码表示,减法可转换为加法实现,统一由加法器完成。关键要处理溢出判断,常用双符号位法或符号位分析法检测。这种设计简化了硬件实现,是计算机算术运算的基础。

2025-08-03 14:27:01 602

原创 计算机组成原理(7) - 算数逻辑单元(ALU)

算术逻辑单元(ALU)是CPU的核心运算部件,负责执行算术和逻辑运算。其核心功能包括算术运算(加法、减法、乘法等)和逻辑运算(与、或、非等)。ALU由输入控制、运算核心电路(加法器、逻辑单元等)和标志生成电路组成,通过接收操作码控制运算类型。工作流程包括指令解析、数据输入、运算执行和结果存储。ALU的性能直接影响CPU的数据处理能力,是计算机执行运算的基础单元。

2025-08-02 15:46:09 962

原创 Linux 设备驱动程序(3)- 字符驱动(1)

本文介绍了Linux字符设备驱动的开发流程,重点讲解了设备编号管理、核心数据结构及注册方法。字符设备驱动用于管理以字节流方式读写的设备,如串口、键盘等。开发时需处理主次设备号分配、file_operations结构定义、file/inode结构使用等关键环节。文章详细说明了静态/动态分配设备号的方法,以及通过cdev结构注册驱动的步骤(初始化、添加、创建节点等)。最后强调驱动卸载时要反向释放资源,包括删除设备文件、注销cdev结构等。整个流程体现了字符设备驱动如何在内核中建立设备编号与操作方法的关联机制。

2025-08-02 11:04:00 1447

原创 计算机组成原理(6) - 加法器

加法器是数字电路的核心组件,用于执行二进制加法运算。基本功能包括:处理0和1的二进制加法运算,并通过半加器(处理本位和进位)或全加器(额外处理低位进位)实现。多位加法可通过级联实现。一位全加器使用异或门(求和)和与或门组合(进位)实现逻辑。n位加法器存在串行延迟问题,需并行优化。实际应用中还需带标志位的加法器来检测运算错误。理解加法器需掌握基本逻辑运算(与、或、异或等)及其电路实现。

2025-07-30 20:37:49 1068

原创 C 开发问题集合集(1)

Linux内核代码中常用下划线()和连接符(##)实现宏定义功能。下划线()用于隔离宏参数避免冲突,如"name"区分宏参数与外部变量;连接符(##)实现标识符拼接,如"attr##_name"生成唯一变量名。此外,内核还常用字符串化操作符(#)、变长参数宏(...)、条件编译宏等技巧,通过do{...}while(0)包装多行代码避免语法错误。这些技巧广泛用于设备属性定义、调试信息打印等场景,是理解内核代码的基础。示例代码展示了这些语法的实际应用,包括调试宏定义和模

2025-07-30 11:49:34 1072

原创 Linux 设备驱动程序(2)- 模块的构建和运行(3)

本文介绍了Linux内核模块开发的基本知识。主要内容包括:1)模块必须包含的头文件(module.h、init.h等)和许可声明;2)模块初始化和清理函数的编写规范,包括__init/__exit修饰符的使用和错误处理机制;3)模块参数的声明和使用方法,支持多种数据类型和权限控制。文章详细说明了模块开发中的关键环节,如设施注册、资源管理和错误恢复,特别强调了使用goto处理初始化失败的最佳实践。同时指出模块参数可通过insmod/modprobe设置,并支持sysfs接口。这些内容是开发高质量内核模块的基础

2025-07-28 15:10:15 679

原创 计算机组成原理(5) - 逻辑门电路

本文系统介绍了算术运算与逻辑运算的区别及各类逻辑运算的特性。算术运算针对数值进行数学计算,结果依赖数值大小;逻辑运算针对布尔值或二进制位,遵循逻辑规则。基本逻辑运算包括:与(全真才真)、或(一真即真)、非(取反)。复合逻辑运算有:与非(与运算取反)、或非(或运算取反)、异或(相同为假不同为真)和同或(相同为真不同为假)。这些运算在编程条件判断、位操作、电路设计中具有关键作用,其中与非和或非因功能完备性成为数字电路的基础单元。理解各类运算的特点及相互关系对计算机科学领域至关重要。

2025-07-26 23:26:13 985

原创 计算机组成原理(4) - 定点数的编码表示

计算机中数值的表示主要分为定点数和浮点数两种形式。定点数的小数点位置固定,分为定点整数和定点小数,具有运算简单、硬件成本低的优点,但表示范围和精度有限,适用于嵌入式系统等场景。浮点数采用科学计数法思想,通过阶码和尾数动态调整小数点位置,能表示极大或极小的数,精度较高但运算复杂,广泛应用于科学计算等领域。有符号数的表示经历了从原码、反码到补码的演变过程,补码因统一了0的表示、简化了运算而成为现代计算机标准。在实际运算中,CPU的ALU硬件电路直接处理补码形式的数据,编译器自动完成转换,使补码运算对程序员透明。

2025-07-26 18:27:15 1086

原创 计算机组成原理(3) - 进位计数制

摘要:进位计数制是基于基数和位权规则的数值表示方法,常见的有十进制、二进制、八进制和十六进制。不同进制间可通过位权展开(R进制转十进制)、除R取余/乘R取整(十进制转R进制)及分组法(二/八/十六进制互转)进行转换。计算机中"真值"是数值的实际含义,而"机器数"是其二进制编码形式,通过原码、反码、补码等方案表示符号和数值。理解这些概念对掌握计算机数值处理至关重要。

2025-07-26 11:42:56 745

原创 SONiC (2) - SONiC的基础配置与show

SONiC网络操作系统通过ConfigDB作为"单一事实源"集中管理配置,支持动态生成运行配置。文章详细介绍了SONiC的基本操作:1) SSH登录方式与默认凭证;2) 关键show命令(ip/ipv6接口、路由协议等);3) 管理接口的三种配置方法(CLI、config_db.json、minigraph.xml);4) 版本查看与升级流程;5) 启动配置管理机制。特别说明VRF技术实现多虚拟路由表隔离,并强调2017年9月后不再推荐使用minigraph.xml配置。文章还包含DHC

2025-07-24 21:05:31 673

原创 Linux 设备驱动程序(2)- 模块的构建和运行(2)

本文介绍了Linux内核模块的编译、加载、卸载及内核符号表相关知识。主要内容包括:1. 模块编译方法,通过Makefile调用内核构建系统生成.ko文件;2. 模块加载与卸载工具(insmod/modprobe)的使用及依赖管理;3. 内核版本兼容性问题及跨版本适配方法;4. 内核符号表的作用、查看方式及符号导出机制。文章还涉及模块开机自动加载配置和常见问题解决方案,为内核模块开发提供了实用指导。

2025-07-22 22:52:40 842

原创 计算机组成原理(2) - 计算机的系统结构

摘要:计算机系统基于冯诺依曼架构,由存储器、CPU、I/O设备和总线组成,通过"取指令-分析-执行"的循环完成运算。CPU包含运算器(ALU)和控制器,主存储器作为数据中转站,通过MAR/MDR进行地址定位和数据缓冲。计算机工作流程包括程序加载、指令执行循环(取指、译码、执行)和结果输出。性能指标涵盖CPU(主频/核心/缓存)、内存(容量/频率/带宽)、存储设备(SSD/HDD速度)和显卡(显存/核心频率)等参数,不同应用场景对硬件要求各异。系统软件(OS/语言处理)和应用软件协同运作,

2025-07-21 22:39:29 1020

原创 Linux 设备驱动程序(2)- 模块的构建和运行(1)

本文介绍了Linux内核模块的开发基础,包括模块构建、加载卸载、运行原理及关键注意事项。主要内容包括:1) 环境准备与内核源码获取;2) Hello World示例模块的编写和Makefile配置;3) 模块加载/卸载流程及常用命令;4) 内核模块与应用程序的核心差异,如特权级隔离、并发处理等;5) 当前进程指针current的使用及注意事项。文章强调内核开发的特殊性,包括资源手动管理、并发控制、栈空间限制等,并指出内核编程需要严格遵循规范,以确保系统稳定性。

2025-07-20 18:07:13 633

原创 计算机组成原理(1) - 计算机的发展史

计算机硬件发展经历了电子管、晶体管、集成电路到超大规模集成电路的演进,从ENIAC(占地170㎡)到智能手机芯片(数平方厘米),运算速度从每秒5000次提升至百亿次。软件则从机器语言发展到智能系统,编程门槛不断降低,应用场景从科学计算扩展到云计算和AI。硬件为软件提供能力边界,软件倒逼硬件迭代,二者协同推动计算机从实验室工具发展为通用技术。1947年"马克Ⅱ型"计算机中发现的飞蛾(bug)成为计算机故障的代名词,"Debugging"术语由此诞生。

2025-07-20 10:27:46 614

原创 SONiC (1) - 什么是SONiC

SONiC 全称(云开放网络软件),是一款基于 Linux 的开源网络操作系统(Network Operating System, NOS),专为数据中心和云计算场景设计,旨在打破传统网络设备的 “硬件 - 软件绑定” 模式,提供灵活、可定制、低成本的网络解决方案。ONIE开放式网络安装环境(ONIE)用于裸机设备安装网络操作系统,类似于PC的BIOS引导安装OS。配置优先级是SONiC的核心配置数据库,重启后持久化生效;多用于大规模自动化部署。

2025-07-19 22:57:02 851

原创 SONiC 之 Testbed(1)Topology

在数据中心中,通常有一排排的机柜,每个机柜内安装了服务器。不同层级的网络设备构成了“改进型Clos网络”,用于承载机柜内部和机柜之间设备的流量。这些网络设备的层级分为Tier0、Tier1和Tier2。

2025-07-19 17:22:06 564

原创 Linux 设备驱动程序(1)- 设备驱动简介

驱动程序(Driver)是,其核心角色是实现软件与硬件的通信和协作,确保硬件设备能被操作系统及上层应用程序正确识别、控制和使用。驱动程序是,没有驱动,操作系统无法识别硬件,硬件也无法发挥功能。其核心价值在于,是计算机系统中软硬件协同工作的关键组件。日常使用中,及时更新驱动(如通过厂商官网、系统更新工具)是保证硬件性能和系统稳定性的重要操作。

2025-07-18 21:32:35 952

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除