编程术语¶
- ABI(application binary interface)(应用程序二进制接口)
- AOP(Aspect Oriented Programming)(面向切面编程)
- BIOS (Basic Input/Output System)(基本输入输出系统):是计算机的微处理器在计算机系统通电后用来启动计算机系统的程序。它还管理计算机操作系统 (OS) 和连接的设备 (如硬盘、视频适配器、键盘、鼠标和打印机) 之间的数据流。
- Blob(Binary Large Object)(进制类型的大对象)
- code hot path(代码热路径)(指程序中频繁执行的代码块)
- CI/CD(Continuous integration/Continuous delivery)(持续集成,持续交付)
- CRUD(create, read, update, delete)(增删改查)
- DDD(Domain-driven design)(领域驱动设计)
- ELF(Executable and Linking Format) 是一种对象文件的格式,用于定义不同类型的对象文件 (Object files) 中都放了什么东西、以及都以什么样的格式去放这些东西
- GRUB(GRand Unified Bootloader 简称“GRUB”)是一个来自 GNU 项目的多操作系统启动程序。GRUB 是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB 可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。
- GNU (GNU's Not Unix):GNU 是一个 自由 的 操作系统,其内容软件完全以 GPL 方式发布。这个操作系统是 GNU计划 的主要目标,名称来自 GNU's Not Unix!的 递归缩写,因为 GNU 的设计类似 Unix,但它不包含具著作权的 Unix 代码
- GNU 计划:是一个 自由软件集体协作 计划。(开源软件)
- GPL:GNU通用公共许可证(GNU General Public License)
- IFS(internal field separator)(内部字段分隔符)
- IOPS(Input/Output Operations Per Second)是一个用于计算机存储设备(如硬盘(HDD)、固态硬盘(SSD)或存储区域网络(SAN))性能测试的量测方式,可以视为是每秒的读写次数。
- IPC(Inter Process Communication)(进程间通信)
- LLVM LLVM 是一套编译器基础设施项目,为自由软件,以 C++ 写成,包含一系列模块化的编译器组件和工具链,用来开发编译器前端和后端。它是为了任意一种编程语言而写成的程序,利用虚拟技术创造出编译时期、链接时期、运行时期以及“闲置时期”的优化。
- OCI(Open Container Initiative) 是一个轻量级,开放的治理结构(项目),在 Linux 基金会的支持下成立,致力于围绕容器格式和运行时创建开放的行业标准
- OOP(Object Oriented Programming)(面向对象编程)
- OSI(Open Systems Interconnection)(开放系统互连)
- POP(Procedure-Oriented Programming)(面向过程编程)
- POSIX(Portable Operating System Interface)(可移植操作系统接口)
- PWA(Progressive Web App)(渐进式 web 应用)
- RAID(Redundant Array of Independent Disks)(独立硬盘冗余阵列,简称磁盘阵列)
- RPC(Remote Procedure Call)(远程进程点调用)
- SDK(Software Development Kit)(软件开发工具包)
- SFINAE(Substitution Failure Is Not An Error)(替换失败不是错误)
- WBS(Work breakdown structure) 工作分解结构
- 网络分区:因为一些故障,使得有些节点之间不连通了,整个网络就分成了几块区域。数据就散布在了这些不连通的区域中。这就叫分区。
- 存储:只要存数据的都可以叫存储,如数据库,文件系统、对象存储、块存储
1 什么是 magic number¶
- 编程中的「魔数」(magic number)是什么意思?平时我们能接触到哪些魔数?
-
wiki-Magic-number 某些具有特定格式的文件,喜欢在文件开头写几个特殊的字符以表明自己的身份,以便 验明正身。例如常见的几种图片格式的文件:
-
JPEG (jpg),文件头:FFD8FF
- PNG (png),文件头:89504E47
- GIF (gif),文件头:47494638
- Windows Bitmap (bmp),文件头:424D
2 什么是幂等¶
在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。
3 权威日志¶
权威日志是在分布式系统下产生的一种概念,分布式系统内多个节点可能会出现不一致现象,这时 WAL 日志可能不一致,这时候,就需要选出一个能被所有节点接受的一个日志文件,这个被选出的日志就是权威日志,然后其它节点的本地日志就可以比较权威日志来修复以达成数据一致。 以 ceph OSD 选出权威日志为例,有如下选取步骤: 1. 具有最新的 last_update 的 OSD; 2. 如果条件 1 相同,选择日志更长的 OSD; 3. 如果 1,2 条件都相同,选择当前的主 OSD;
4 in-place¶
in-place
操作,意思是所有的操作都是“就地”操作,不允许进行移动,或者称作 原位操作,即不允许使用临时变量。out-place
正好与其相反。
如下列举一个交换 2 个变量值的 in-place 方式:
1. (out-place)设置中间变量
// 设置中间变量
int temp;
temp = x;
x = y;
y = temp;
- (in-place)通过加减运算实现
// 加减运算
x = x + y;
y = x - y;
x = x - y;
- (in-place)通过异或操作实现
// 异或运算
x = x ^ y;
y = x ^ y;
x = x ^ y;
4.1 什么是 dump¶
在计算机中,dump 的中文意思为“转储”,一般指将数据 导出、转存成文件或静态形式,即将动态(易失)的数据,保存为静态的数据(持久数据)。 一般指将数据导出、转存成文件或静态形式。比如可以理解成:把内存某一时刻的内容,dump(转存,导出,保存)成文件。 像 core 文件也是一种 dump 产生的文件,用于 gdb 调试。