009c - 行业术语宝典|【视频+发音】
本帖最后由 不二如是 于 2021-1-25 18:15 编辑鱼C字幕组的小伙伴们经常能在后台看到鱼油让我们整理出一份中英术语表。
曾经自己也写过一个发音页面(传送门):
还是有美中不足的地方,那么既然作为字幕组的组长,理应出一份更好的术语文档给鱼油~
毕竟咱们鱼C出品,必是精品~
既然要做,就做的彻底:
邀请远在大洋彼岸的 Peter 老师配发音+小师妹视频演绎定义
字幕组的同志们从底层、基础、并发、数据库、系统、安全等方面为鱼油梳理出下面使用率超高的术语!
一方面避免尴尬的发音问题,另一方面提高英语学习能力!
如果鱼油刚刚入门,有些词没看过,也不要慌,可以先在脑海里留一个轮廓。
随着慢慢变强,迟早会在以后的学习/工作路上遇到它们。
如果鱼油已经是一名老鸟,这份清单也可以帮你温故知新,随时备查。
废话不多说,开始喽!!
点击上方目录,快速传送哦{:10_302:}
预知更多神文请看:
菊、套与吹水 | 【???】
如果有收获,别忘了评分{:10_281:} :
https://xxx.ilovefishc.com/forum/202011/20/092334ggd6inlzfisfrdir.png.thumb.jpg
如此多懂学习的VIP至尊都已订阅本专辑,你还不快点行动!(☞订阅传送门 )
0、底层
Bit(位):
Bit 是一个比特位或者二进制中的一位,也就是 0 或 1,是信息的最小单位。
Byte(字节):
Byte 是一个字节,由 8 个 Bit 组成,可以表达 0~255 这 256 个数。
对于计算机来说,当我们说“ 64 位计算机”的时候,指的是计算机寄存器的大小为 64 位。
也就是它可以一次计算的数据大小为 264 次方。
指针(Pointer):
编程语言中用来表示或存储一类数据类型及其对象或变量的内存地址。
这个地址直接指向(points to)存储在该地址的对象。
句柄(Handle):
Windows 操作系统用来标识被应用程序所创建或使用的对象的一个整数(索引数),其本质相当于带有引用计数的智能指针。
当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,可以使用句柄。
例如 door handle 是指门把手,通过门把手可以去控制门,但 door handle 并非 door 本身,只是一个中间媒介。
文件描述符(File Descriptor):
一个用于表述指向文件的引用的抽象化概念。
当程序打开文件需要操作文件时,给所操作的文件编的一个号。
文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。
计算机系统上有三个标准的文件描述符:0 代表标准输入(键盘),1 代表标准输出(显示器),2 代表标准错误(显示器)。
套接字(Socket):
操作系统提供的进程间通信机制,可以通过网络进行通信。
在套接字接口中,以IP地址及端口组成套接字地址(socket address)。
再加上远程的 IP 地址、端口号、通讯协议,形成一个五元组(five-element tuple),作为套接字对(socket pairs)完成网络通信。
输入输出(I/O):
I/O 是 Input 和 Output 的缩写,也就是输入输出。
I/O 设备就是输入输出设备。
软件和系统的 I/O 指忙闲状态,如硬盘 I/O、网络 I/O 等。
布尔(Boolean):
计算机科学中的逻辑数据类型。
布尔只有两个值,一个是真(True),一个是假(False)。
布尔值前可以进行与(AND)、或(OR)、异或(XOR)、非(NOT)等逻辑运算操作。
计算机通过布尔表达式来判断当前程序该怎么执行,不同的执行对应不同的程序运行分支。
数组(Array):
一种常见的基础数据结构,是有序的元素序列。
如果将有限个类型相同的变量的集合命名,那么这个名称为数组名。
链表(Linked List):
一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针。
栈(Stack):
一种数据项按序排列的数据结构,只能在一端(称为栈顶,top)对数据项进行插入和删除。
它具有两个主要的主要操作:进栈(Push)—将元素添加到集合中;退栈(Pop)—删除尚未删除的最近添加的元素。
二叉树(Binary Tree):
一种数据结构,用于以有组织的方式存储数据(例如数字)。
二叉树允许二分搜索以快速查找、添加和删除数据项,并可用于实现动态集和查找表。
哈希表(Hash Table):
也叫散列表,是根据键(Key)而直接进行访问的数据结构。
也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。
这个映射函数叫哈希函数,存放记录的数组叫哈希表。
算法(Algorithm):
通过计算机语言的编程方式为解决某种问题所编写的流程,可以非常高效地解决问题。
比如,找到一个字符串内第一个只出现过一次的字符,在一个字符串中查到一个单词……
它是一系列解决问题的清晰指令,代表着用系统的方法描述解决问题的策略机制,是一种用计算机代码来表现的数学思维。
面向对象编程(Object-Oriented Programming):
一种具有对象(对象指的是类的实例)概念的程序编程范式。
同时也是一种程序开发的抽象方法,包含数据、属性、代码与方法。
它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,对象里的程序可以访问及经常修改对象相关联的数据。
世界上的主流编程语言都支持面向对象编程,比如 C++、Java、C#、Python、PHP、JavaScript……
封装、继承、多态是面对对象的三大特性。
面向过程编程(Procedure-Oriented Programming):
面向过程是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。
可以说面向过程是一种基础的方法。
它考虑的是实际地实现。
一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。
当程序规模不是很大时,面向过程的方法还会体现出一种优势。
因为程序的流程很清楚,按着模块与函数的方法可以很好的组织。
封装(Encapsulation):
在面向对象编程方法中,封装是指一种将抽象性函数接口的实现细节部分包装、隐藏起来的方法。
同时它也是一种防止外界调用端,去访问对象内部实现细节的手段,这个手段是由编程语言本身来提供的。
继承(Inheritance):
如果一个类 F 继承自另一个类 C,我们就把 F 称为 C 的子类。
而把 C 称为 F 的父类,也可以说 C 是 F 的超类。
继承可以使得子类具有父类别的各种属性和方法,而不需要再次编写相同的代码。
多态(Polymorphism):
指相同的定义在面对不同的实例时会有不同的执行行为。
函数式编程(Functional Programming):
一种编程范式,它将程序运算视为函数运算,并且避免使用程序运行状态的改变。
其中,λ 表达式(lambda calculus)为该语言最重要的基础。
而且,λ 表达式的函数可以接受函数当作输入(引数)和输出(传出值)。
递归(Recursion):
在数学与计算机科学中,指在函数的定义中使用函数自身的方法,也就是在运行的过程中调用自己。
最经典的例子:
从前有座山,山里有座庙,庙里有个老和尚和小和尚,老和尚对小和尚说,从前有座山,山里有座庙,庙里有个老和尚和小和尚,老和尚对小和尚说……
这就是递归。
闭包(Closure):
也称函数闭包,是一种在支持头等函数的编程语言中实现词法绑定的技术。
在操作上,闭包是将函数与其环境一起存储的方式。
也就是说,闭包是一个持久作用域,即使代码执行已经离开该语句块,它也保留了局部变量。
支持闭包的语言有 JavaScript, Swift 和 Ruby 。
垃圾回收(Garbage Collection):
一种自动的内存管理机制。
当某个程序占用的一部分内存空间不再被这个程序访问时,这个程序会借助垃圾回收算法向操作系统归还这部分内存空间。
垃圾回收器可以减轻软件工程师的负担,也减少程序中的错误。
垃圾回收最早起源于 LISP 语言,
目前许多语言如 Smalltalk、Java、C# 和 Go 语言都支持垃圾回收器。
MVC模式(Model-View-Controller):
软件工程中的一种软件架构模式,目的是实现一种动态的程序设计。
这种模式把软件系统分为三个基本部分:
[*]·模型(Model):软件工程师编写程序应有的功能(实现算法等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
[*]·视图(View):界面设计人员进行图形界面设计。
[*]·控制器(Controller):负责转发请求,对请求进行处理。
后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。
RAII(Resource Acquisition Is Initialization):
资源获取,即初始化。
它是在一些面向对象语言中的一种惯用法。
RAII 要求资源的有效期与持有资源的对象的生命期严格绑定,即由对象的构造函数完成资源的分配(获取)。
同时由析构函数完成资源的释放。
在这种要求下,只要对象能正确地析构,就不会出现资源泄露问题。
硬编码(Hard Code):
用于描述在代码中写死相应的逻辑或配置的行为。
一旦逻辑或配置被写死,再想做任何修改就得重改源代码,重新编译打包程序,并重新安装或部署程序。
魔数(Magic Number):
指硬编码在代码里的具体数值(如“10”“123”等以数字直接写出的值)。
虽然程序作者写的时候自己能了解数值的意义,但对其他软件工程师而言,甚至作者本人经过一段时间后,会难以了解这个数值的用途。
只能苦笑自嘲:
数值的意义虽然不懂,不过至少程序能够运行,真是神奇。
魔数因此而得名。
(TIPS:点击页面上方的目录可以跳转到其他章节哦^_^)
如果喜欢,别忘了评分{:10_281:} :
https://xxx.ilovefishc.com/forum/202011/20/092334ggd6inlzfisfrdir.png.thumb.jpg
1:基础
编程语言(Programming Language):
常见编程语言种类 TOP20(2021.01 TIOBE榜):
C、Java、Python、C++、C#、Visual Basic、JavaScript、PHP、R、Groovy、Assembly Language、SQL、Swift、Go、Ruby、MATLAB、Perl、Objective-C、Delphi、Scratch...
脚本语言(Scripting Language):
一种为了缩短传统的“编写—编译—链接—运行”(edit-compile-link-run)过程而创建的计算机编程语言,具有简单、易学、易用的特点。
脚本语言通常是解释性的,而不是编译性的,像 Shell、JavaScript、Python、PHP 等都可以被看作脚本语言。
标记语言(Markup Language):
一种在语法上对文本进行标注的计算机文字编码,可以用来结构化数据,格式化文本或进行数据说明。
代表语言有 HTML、XML、Markdown、LaTeX 等。
程序(Program):
软件工程师用开发工具写出来的一组指令的集合
程序在没有执行时以文件的方式保存在存储设备上,执行时需要用编译器或解释器将其编程或解释成可执行的机器指令后,由操作系统进行执行和调度。
正在执行的程序叫进程(参见后文)。
接口(Interface):
一种用来定义程序的协议,通过衔接软件系统中的不同组成部分,实现计算机软件之间的相互通信。
前端/后端(Front-end/Back-end):
前端指的是用户直接能看到的页面,也就是交互界面—可能是 Web 网页,也可能是 iPhone/Android 的手机端程序。
后端指的是运行在云端服务器上的程序,其中包括业务逻辑、流程逻辑、控制逻辑和数据存储,是真正运行逻辑和处理数据的地方。
全栈工程师(Full Stack Engineer):
指掌握多种技能,胜任前端与后端工作,能利用多种技能独立完成产品的人。
全栈工程师比较有争议—对那些技多不压身,学习能力、动手能力强的人来说,他们喜欢小团队,因为可以减少沟通;
但学太多以至于学不精也是一个问题,所以批评者认为全栈工程师并不利于发展技术的深度。
软件框架(Software Framework):
软件框架是一种抽象,它提供了构建和部署应用程序的标准方法,并且是一个通用的、可重用的软件环境;
它提供了大型软件平台的一部分特定功能,以促进软件应用程序、产品和解决方案的开发。
软件框架可能包括支持程序、编译器、代码库、工具集和应用程序接口(API),将所有不同的组件组合在一起,以实现项目或系统的开发。
库(Library):
又叫函数库,用于开发软件的子程序集合。
它类似于一些已经开发的模块,就像积木模块一样,是构建整个软件的一些通用零件仓库。
这些程序模块或零件可以让编程变得更为容易和有效率。
库和可执行文件的区别是,它不是独立的计算机程序,而是向其他程序提供服务的代码。
API(Application Programming Interface):
应用程序接口,它是一种计算接口,用来定义软件之间的交互、可以进行的调用(call)或请求(request)的种类。
以及如何进行调用或发出请求,应使用的数据格式,应遵循的惯例等。
RESTful API:REST(Representational State Transfer)
是一种专门被用于互联网开发的 API,它是基于互联网协议 HTTP 所设计的一种 API。
IDE(Integrated Development Environment):
集成开发环境,一种辅助程序开发人员开发软件的应用程序,提供全面的设施辅助编写源代码文本。
并将其编译打包成可用的程序,有些甚至可以设计图形接口。
IDE 通常至少包括源代码编辑器,自动构建工具和调试器,比如 Eclipse、VS Code 等。
UI(User Interface)/UX(User Experience)
UI 指的是用户界面,也就是计算机软件或系统和用户进行交互的接口。
比如命令行接口、图形界面、鼠标、触摸屏等。
UX 指的是用户使用特定产品、系统或服务时的行为、情绪与态度。
协议(Protocol):
网络协议的简称。
网络协议是通信计算机双方必须共同遵守的一组约定,比如怎么建立连接、怎么互相识别等。
只有遵守这些约定,计算机之间才能相互通信交流。
代表协议有 TCP 协议、HTTP 协议等。
语法糖(Syntactic Sugar):
英国计算机科学家彼得·兰丁(Peter. J. Landin)发明的一个术语。
指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便软件工程师使用。
语法糖可以让程序更简洁,有更高的可读性—就像糖一样,人们很喜欢吃。
云计算(Cloud Computing):
一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备。
当我们说“云”的时候,一般是“在远端”的意思。
也就是说,我把数据存储在远端一个公司那里,当我需要的时候,用终端链接上就可以访问。
批处理(Batch Job):
对一组作业或若干数据进行批量处理的方式。
上下文(Context):
一个任务必不可少的一组数据,主要用于说明当前运行程序的环境和场景。
日志(Log):
记录软件运行中发生的事件,或通信软件中不同用户之间的消息。
日志有助于软件工程师了解系统运行的情况,并为调查或审计提供相应的数据支持。
Cookie:
HTTP 协议中需要保存在用户端的非常小的数据,一般是用户的登录状态、用户的基本信息,或是一个访问令牌。
令牌(Token):
通俗来说就是暗号,包含用于登录会话的安全凭证,并标识用户、用户组、用户特权以及某些情况下的特定应用程序。
通常来说,访问令牌(例如 520 个随机字符或是一个加密字符串)由服务器在验证过用户的身份后生成。
此后用户就可以使用这个令牌进行访问,不需要再进行身证验证。
(TIPS:点击页面上方的目录可以跳转到其他章节哦^_^)
如果喜欢,别忘了评分{:10_281:} :
https://xxx.ilovefishc.com/forum/202011/20/092334ggd6inlzfisfrdir.png.thumb.jpg
2:并发
并发(Concurrency):
又称共行性,指能处理多个同时性活动的能力,并发事件不一定要同一时刻发生。
并行(Parallelism):
指同时发生的两个并发事件,具有并发的含义,但并发不一定并行。
打个比方,并发和并行的区别是“一个人同时吃三个馒头”和“三个人同时吃三个馒头”的区别。
进程(Process):
程序被加载到内存里运行的实例,是系统进行资源分配和调度的一个独立单位,就是程序的一次执行过程。
线程(Thread):
进程中的一部分,是操作系统能够调度的最小单位,一个进程中可以包括多个线程。
协程(Coroutine):
非常类似于线程,但协程是协作式多任务的,而线程是抢占式多任务的。
同步(Synchronous):
在编程中,调用一个程序指令后必须等到这个指令返回后,才能往下执行后续的指令。
这个程序指令可能是在操作一个外部设备,或是正在进行一次网络请求,需要很长的时间才能返回。
于是,整个程序都需要停转—直到这个同步指令返回。
异步(Asynchronous):
与同步相反。
异步指的是不需要等待当前指令返回,就可以继续进行后续指令的执行。
异步与同步各有各的好与不好。
一般来说,同步在编程复杂度的处理上表现好,但在系统性能上表现不好。
异步在系统性能上表现很好,但在程序的控制逻辑上会使复杂度提升。
临界(Critical):
一次仅允许一个进程进入,许多物理设备都是临界资源,如打印机。
此外许多变量、数据都可以被若干进程共享,也属于临界资源。
一些代码在一个时间只能让一个进程进入,这样的代码区域又叫临界区。
互斥(Mutex):
也是间接制约关系,当一个进程进入临界区使用临界资源时,另一个进程必须在后面排队。
锁(Lock):
锁主要是用来同步或是互斥线程的,当一个进程或线程进入一个区域的时候,需要先请求把这个区域锁起来。
如果此时没有人锁住这个区域,那么当前进程进入并把该区锁住不让别的进程进入,完成后则释放锁,也就是“开锁”,以便其他进程进入。
红绿灯就是现实世界中的一种“锁”,其用来控制各个车道对十字路口的共享问题。
死锁(Deadlock):
当两个以上的运算单元都在等待对方停止运行,以获取系统资源,但是没有一方提前退出时,就称为死锁。
活锁(Livelock):
与死锁相似,死锁是行程都在等待对方先释放资源。
活锁则是行程彼此释放资源又同时占用对方释放的资源。
当此情况持续发生时,尽管资源的状态不断改变,但每个行程都无法获取所需资源,使事情没有任何进展。
打个比方,假设两人正好面对面碰上对方:
死锁指的是两人互不相让,都在等对方先让开。
活锁指的是两人互相礼让,却恰巧站到同一侧,再次让开,又站到同一侧,同样的情况不断重复下去导致双方都无法通过。
乐观锁(Optimistic Locking):
一种并发控制的方法。
它假设多用户并发的事务在处理时不会彼此影响,各事务能够在不产生锁的情况下处理各自影响的那部分数据。
悲观锁(Pessimistic Concurrency Control):
一种并发控制的方法。
悲观锁假设别人在拿完数据后会修改数据。
所以,它在别人一开始拿数据的时候就对这个数据加上锁,当全部操作完成后,才把锁释放出来。
悲观锁对于整个周期进行上锁,适合对数据有强一致性要求的情况。
自旋锁(Spin lock):
计算机科学中用于多线程同步的一种锁,线程反复检查锁变量是否可用。
由于线程在这一过程中保持执行,因此是一种忙等待。
一旦获取了自旋锁,线程会一直保持该锁,直至显式释放自旋锁。
(TIPS:点击页面上方的目录可以跳转到其他章节哦^_^)
如果喜欢,别忘了评分{:10_281:} :
https://xxx.ilovefishc.com/forum/202011/20/092334ggd6inlzfisfrdir.png.thumb.jpg
3、数据库
SQL(Structured Query Language):
结构化查询语言,一种特定目的编程语言,用于操作关系数据库管理系统(RDBMS)。
其中包括四种基础语句:Select 查询数据、Insert 插入数据、Update 更新数据、Delete 删除数据。
就是我们熟悉的“增删改查”。
主键(Primary Key):
数据库中的一个概念,比如录入鱼油信息时,有姓名、性别、ID。
以上三个信息可以组成一个数据列,这个数据列里唯一的标识是 ID,那么 ID 就是这个数据列的主键。
所以主键是一种唯一关键,一个数据列只能有一个主键且主键不能为空值。
外键(Foreign Key):
用于建立数据库表与表之间的链接,比如在一个群组中,鱼油的 ID 是主键,鱼油里有版主。
“版主”就是外键,表示某个群组的版主的 ID,它引用了 ID 属性。
事务(Transaction):
访问并可能操作各种数据项的一个数据库操作序列。
这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单元。
一致性(Consistency):
指数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的。
一致性又可以分为强一致性、弱一致性和最终一致性。
强一致性可以理解为在任意时刻,所有节点中的数据是一样的。
同一时间点,你在节点 A 中获取到 key1 的值与在节点 B 中获取到 key1 的值应该都是一样的。
弱一致性包含很多种不同的实现,目前分布式系统中广泛实现的是最终一致性。
最终一致性就是不保证在任意时刻、任意节点上的同一份数据都是相同的。
但是随着时间的迁移,不同节点上的同一份数据总是在向趋同的方向变化。
也可以简单理解为在一段时间后,节点间的数据会最终达到一致状态。
脏读(Dirty Read):
指当一个事务正在访问数据,并且对数据进行了修改。
而这种修改还没有提交到数据库中时,另外一个事务也访问这个数据,然后使用了这个数据。
幻读(Phantom Problem):
一个事务读取两次,得到的记录条数不一致。
也就是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及表中的全部数据行。
同时第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。
那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好像发生了幻觉一样。
例如,一个编辑人员更改作者提交的文档。
但当生产部门将其更改内容合并到该文档的主复本时,发现作者已将未编辑的新材料添加到该文档中。
如果在编辑人员和生产部门完成对原始文档的处理之前,任何人都不能将新材料添加到文档中,则可以避免该问题。
不可重复读(Unrepeatable Read):
一个事务读取同一条记录两次,得到的结果不一致。
它指的是在一个事务内多次读同一数据,在这个事务还没有结束时,另外一个事务也访问同一数据。
那么在第一个事务的两次读数据之间,由于第二个事务的修改,第一个事务两次读到的数据可能是不一样的。
例如一个编辑人员两次读取同一文档,但在两次读取间,作者重写了该文档。
当编辑人员第二次读取文档时,文档已更改,原始读取不可重复。
如果只有在作者全部完成编写后编辑人员才可以读取文档,则可以避免该问题。
(TIPS:点击页面上方的目录可以跳转到其他章节哦^_^)
如果喜欢,别忘了评分{:10_281:} :
https://xxx.ilovefishc.com/forum/202011/20/092334ggd6inlzfisfrdir.png.thumb.jpg
4:错误
异常(Exception):
在编程语言领域,异常描述的是一种数据结构,该数据结构可以存储非正常的相关信息。
核心转储(Core Dump):
指的是操作系统在进程收到某些信号而终止运行时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件。
这种信息往往用于调试。
内存不足(Out Of Memory, OOM):
计算机运行时通常不希望的状态,在这种状态下,计算机无法分配额外的内存供程序或操作系统使用。
内存泄漏(Memory Leak):
由于疏忽或错误造成程序未能释放已经不再使用的内存。
内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后。
由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。
最终会导致内存被耗尽而整个进程被操作强制结束掉。
内存泄漏通常情况下只能由获得程序源代码的软件工程师才能分析出来。
NULL 指针:
空指针,指的是一个已宣告但并未指向一个有效对象的指针。
许多程序利用空指针来表示某些特定条件,例如未知长度数组的结尾或某些无法运行的操作。
空指针错误是一种常见的程序错误。
一旦尝试访问空指针所指向之对象的情况发生,就会出现NullPointerException(空指针异常)。
死循环(Infinit Loop):
又称无限循环,是指程序的控制流程一直在重复运行某一段代码,无法结束的情形。
其原因可能是程序中的循环没有设结束循环条件,或是结束循环的条件不可能成立等。
死机(Down/Crash):
指机器没有响应了,一般来说,要么是机器出现了错误,停止运行了(如 Windows 的蓝屏错误)。
要么是机器的资源耗尽(如 CPU 耗完,文件描述符耗尽等)无法再响应请求。
这种时候,只能关闭电源重新启动来解决问题。
超时(Timeout):
在预定的时间内没有得到对方的响应,被视为超时。
超时意味着你并不知道对方的处理结果是成功还是失败。
所以对于超时,需要向对方查询是否完成,如果没有,则需要重新发出请求。
栈溢出(Stack Overflow):
也称堆栈溢出,指使用过多的存储器时导致调用堆栈产生的溢出,也是缓冲区溢出中的一种。
堆栈溢出的产生是由于过多的函数调用,导致使用的调用堆栈大小超过事先规划的大小,覆盖其他存储器内的资料,一般在递归中产生。
Kill 进程:
通常来说是杀掉一个进程,Kill 命令一般默认发送终止信号,要求进程退出。
僵尸进程:
在类 UNIX 系统中,僵尸进程是指完成执行(通过 exit 系统调用,或运行时发生致命错误或收到终止信号所致)。
但在操作系统的进程表中仍然存在其进程控制块,处于“终止状态”的进程。
(TIPS:点击页面上方的目录可以跳转到其他章节哦^_^)
如果喜欢,别忘了评分{:10_281:} :
https://xxx.ilovefishc.com/forum/202011/20/092334ggd6inlzfisfrdir.png.thumb.jpg
5:系统
CPU:
中央处理器,是计算机的主要设备之一,功能主要是解释计算机指令以及处理计算机软件中的数据。
计算机的可编程性主要是指对中央处理器的编程。
GPU:
图形处理器,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上运行绘图运算工作的微处理器。
总线(Bus):
指计算机组件间规范化的交换数据的方式,即以一种通用的方式为各组件提供数据传送和控制逻辑。
带宽(Bandwidth):
指可用或耗用的信息量比特率,通常以测得的每秒数量表示。
带宽包括网络带宽、数据带宽、数字带宽等。现在我们一般指网络带宽,也就是一秒钟可以传输的字节数。
缓存(Cache):
原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器。
通常它不像系统主存那样使用 DRAM 技术,而使用昂贵但较快速的 SRAM 技术。
虚拟内存(Virtual Memory):
当计算机程序运行需要的空间大于内存容量时,会将内存中暂时不用的数据写回硬盘;
它的存在使计算机能同时运行更多的程序以及执行更多的操作。
脱机(Offline):
在有网络的时候浏览器会把当前网页、图像及相关数据缓存在磁盘内,这样在没有网络的时候也可以访问这些信息。
驱动(Driver):
添加到操作系统中的程序,比如你要让计算机播放音乐,它会先发送指令到声卡驱动程序。
驱动程序将指令翻译成声卡可以识别的命令,声卡就可以播放音乐了。
DNS:
一种把 IP 地址转换成容易记忆的名字的技术,让用户更方便地访问互联网。
例如,www.ilovefishc.com。
CDN:
内容分发网络,是指一种通过互联网互相连接的电脑网络系统。
利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、影片、应用程序及其他文件发送给用户。
来提供高性能、可扩展性及低成本的网络内容。
P2P:
对等式网络,又称点对点技术,是无中心服务器、依靠用户群(peers)交换信息的互联网体系。
它的作用在于减少以往网络传输中的节点,以降低资料遗失的风险。
与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点。
也有服务器的功能,任何一个节点无法直接找到其他节点,必须依靠其用户群进行信息交流。
比如,BT 下载技术就是一种 P2P 技术。
VPN 虚拟专用网络(Virtual Private Network):
一种常用于连接中、大型企业或组织与组织间的私人网络的通信方法。
因为需要通过公网连接,所以需要对链路进行加密。
VPN 一般通过拨号的方式把一台个人设备加入一个公司的私有网络。
(TIPS:点击页面上方的目录可以跳转到其他章节哦^_^)
如果喜欢,别忘了评分{:10_281:} :
https://xxx.ilovefishc.com/forum/202011/20/092334ggd6inlzfisfrdir.png.thumb.jpg
6:工程
迭代(Iteration):
一种敏捷软件开发的方式,倡导用“小步快跑”的方式,把一个复杂的系统分解成一块一块很小的任务。
然后快速地开发这些小任务,最终形成一个大的软件系统。
迭代开发把传统上一次完整的交付,变成了若干次不完整的交付。
这样一来,可以让用户看到整个开发过程,可以及时得到用户的反馈,从而可以让最终的交付物更接近用户的需求。
合并请求(Pull Request, PR):
主要是用于分布式版本管理工具中提交或贡献代码的一种方式。
贡献者请维护者“拉取”修改的软件内容(因此称为拉取请求)。
若此修改内容应该成为正式代码库的一部分,就需要合并拉取请求中提到的软件内容。
重构(Refactoring):
指对软件代码做改动,以增加可读性或者简化结构而不影响输出结果。
软件重构需要借助工具完成,重构工具能够修改代码,同时修改所有引用该代码的地方。
在极限编程的方法学中,重构需要单元测试来支持。
代码评审(Code Review):
一种软件质量保证活动,其中一个或几个人主要通过查看和读取源代码来检查程序。
让代码有更好的质量,并能够找到代码中的缺陷。
编译(Compile):
将某种编程语言写成的源代码(原始语言)转换成另一种编程语言(目标语言)。
编译过程中会进行词法分析、语法分析,以及语法转换。
主要的目的是将便于人编写、阅读、维护的高级计算机语言所写作的源代码程序。
翻译为计算机能解读、运行的低阶机器语言的程序,也就是可执行文件。
调试(Debug):
发现和解决计算机程序、软件或系统中的错误的过程。
调试策略包括交互式调试、控制流分析、单元测试、集成测试、日志文件分析等。
许多编程语言和软件开发工具还提供了有助于调试的程序,称为调试器。
断点(Breakpoint):
程序中为了调试而故意停止或者暂停的地方。
设置断点可以让程序运行到该行程序时停住,借此观察程序到断点位置时,其变量、寄存器、I/O 等相关的变量内容。
有助于深入了解程序运作的机制,发现、排除程序错误的根源。
白盒测试(White-Box Testing):
软件测试的主要方法之一,也称结构测试、逻辑驱动测试或基于程序本身的测试。
测试应用程序的内部结构或运作,而不是测试应用程序的功能。
黑盒测试(Black-Box Testing):
软件测试的主要方法之一。
测试者不了解程序的内部情况,不需具备应用程序的代码、内部结构和编程语言的专门知识。
只知道程序的输入、输出和系统的功能。
这是从用户的角度针对软件界面、功能及外部结构进行测试,而不考虑程序内部逻辑结构。
灰度发布:
又名金丝雀发布,起源是矿井工人发现,金丝雀对瓦斯气体很敏感。
矿工会在下井之前,先放一只金丝雀到井中,如果金丝雀不叫了,就代表瓦斯浓度高。
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。
在其上可以进行 AB 测试,即让一部分用户继续用产品特性 A,一部分用户开始用产品特性 B。
如果用户对 B 没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到 B 上面来。
灰度发布可以保证整体系统的稳定。
跳板机(Jump Server):
也称堡垒机,是一类可作为跳板批量操作远程设备的网络设备,是系统管理员或运维人员常用的操作平台之一。
堡垒机的主要用途是对运维进行安全审计。
它的核心功能是 4A:
[*]身份验证(Authentication)
[*]账号管理(Account)
[*]授权控制 (Authorization)
[*]安全审计(Audit)
简言之,堡垒机是用来控制哪些人可以登录哪些资产(事先防范和事中控制)。
以及录像记录登录资产后做了什么事情(事后溯源)。
高可用(HA):
分布式系统架构设计中必须考虑的因素之一,它通常是指通过设计减少系统不能提供服务的时间。
方法论上,高可用是通过“冗余 +自动故障转移”来实现的。
高可用的系统通常需要承诺服务等级协议(service level agreement, SLA)。
它是在一定开销下为保障服务的性能和可用性,服务提供商与用户间定义的一种双方认可的协定。
对于系统来说,也就是可以做到多少个 9 的可用性。
比如:1 年=365 天=8760 小时,3 个 9,也就是 99.9,相当于 8760×0.1% = 8760×0.001 =8.76 小时。
也就是说系统只有 8.76 个小时不可用。
而 5 个 9,99.999,相当于 8760×0.00001 = 0.0876 小时 = 0.0876×60 =5.26 分钟。
表示全年系统只有 5.26 分钟不可用。
(TIPS:点击页面上方的目录可以跳转到其他章节哦^_^)
如果喜欢,别忘了评分{:10_281:} :
https://xxx.ilovefishc.com/forum/202011/20/092334ggd6inlzfisfrdir.png.thumb.jpg
7、攻击
黑客(Hacker):
真实的黑客主要是指技术高超的软件工程师。
除了精通编程、操作系统的人可以被视作黑客。
硬件设备做创新的工程师通常也被认为是黑客,另外现在精通网络入侵的人也被看作是黑客。
黑客分为白帽子、灰帽子和黑帽子。
白帽子描述的是正面的黑客,他可以识别计算机系统或网络系统中的安全漏洞,但并不会恶意去利用,而是公布其漏洞。
这样系统将可以在被其他人(例如黑帽子)利用之前来修补漏洞。
灰帽子擅长攻击技术,但不轻易造成破坏,他们精通攻击与防御,同时头脑里具有信息安全体系的宏观意识。
黑帽子研究攻击技术非法获取利益,通常有着黑色产业链。
病毒(Virus):
一种可以破坏其他正常程序甚至使其瘫痪的程序。
蠕虫(Worm):
与计算机病毒相似,是一种能够自我复制的计算机程序。
与计算机病毒不同的是,计算机蠕虫不需要附在别的程序内,可能不用用户介入操作也能自我复制或运行。
计算机蠕虫未必会直接破坏被感染的系统,却几乎都对网络有害。
木马(Trojan Horse):
全称特洛伊木马,来源于希腊神话特洛伊战争的特洛伊木马。
在计算机领域中指的是一种后门程序,是黑客为了盗取其他用户的个人信息等数据资料。
甚至是远程控制对方的电子设备而加密制作,然后通过传播或者骗取目标执行的一种程序。
和病毒相似,木马程序有很强的隐秘性,会随着操作系统启动而启动。
肉鸡(Zombie Computer):
也称傀儡机或僵尸主机,是指可以被黑客远程控制的机器。
比如用“灰鸽子”等诱导用户点击,或者电脑被黑客攻破或用户电脑有漏洞被种植了木马。
黑客可以随意操纵它并利用它做任何事情。
肉鸡通常被用作 DDoS 攻击,通常针对公司、企业、学校、组织、政府。
DDoS 攻击:
拒绝服务攻击,亦称洪水攻击,是一种网络攻击手法。
其目的在于使目标电脑的网络或系统资源耗尽,使服务暂时中断或停止,导致其正常用户无法访问。
当黑客使用网络上两个或以上被攻陷的电脑作为“僵尸”向特定的目标发动“拒绝服务”式攻击时,称为分布式拒绝服务攻击。
据统计,2014 年被确认为大规模 DDoS 的攻击已达平均每小时 28 次。
DDoS 发起者一般针对重要服务和知名网站进行攻击。
如银行、信用卡支付网关,甚至根域名服务器等。
防火墙(Firewall):
一种计算机硬件和软件的结合,是一种隔离技术,检测计算机在上网过程中的各项操作记录,确保网络环境安全。
公钥/私匙(Public/Private Key):
公开密钥密码学是密码学的一种算法,它需要两个密钥,一个是公开密钥,另一个是私有密钥。
公钥用作加密,私钥则用作解密。
使用公钥把明文加密后所得的密文,只能用相对应的私钥才能解密并得到原本的明文。
最初用来加密的公钥不能用作解密。
由于加密和解密需要两个不同的密钥,故被称为非对称加密。
不同于加密和解密都使用同一个密钥的对称加密。
公钥可以公开,可任意向外发布。
私钥不可以公开,必须由用户自行严格秘密保管。
签名(Digital Signature):
又称公钥数字签名,是一种功能类似写在纸上的普通签名,但是使用了公钥加密领域的技术,以用于鉴别数字信息的方法。
一套数字签名通常会定义两种互补的运算,一个用于签名,另一个用于验证。
通常我们使用公钥加密,用私钥解密。
而在数字签名中,我们使用私钥加密(相当于生成签名),公钥解密(相当于验证签名)。
证书(Certification):
认证机构用自己的私钥对需要认证的人(或组织机构)的公钥施加数字签名并生成证书。
即证书的本质就是对公钥施加数字签名。
数字证书的一个最主要好处是在认证拥有者身份期间。
拥有者的敏感个人资料(如出生日期、身份证号码等)并不会传输至索取资料者的电脑系统上。
通过这种资料交换模式,拥有者既可证实自己的身份,亦不用过度披露个人资料,对保障电脑服务访问双方皆有好处。
中间人攻击(Man-in-Middle Attack):
在密码学和计算机安全领域中是指攻击者与通信的两端分别创建独立的联系,并交换其所收到的数据。
使通信的两端认为他们正在通过一个私密的连接与对方直接对话。
但事实上整个会话都被攻击者完全控制。
在中间人攻击中,攻击者可以拦截通信双方的通话并插入新的内容。
在许多情况下这是很简单的,例如在一个未加密的 Wi-Fi 无线接入点的接受范围内的中间人攻击者。
可以将自己作为一个中间人插入这个网络。
(TIPS:点击页面上方的目录可以跳转到其他章节哦^_^)
如果喜欢,别忘了评分{:10_281:} :
https://xxx.ilovefishc.com/forum/202011/20/092334ggd6inlzfisfrdir.png.thumb.jpg
8、细碎
极客(Geek):
通常被用于形容对计算机和网络技术有狂热兴趣并投入大量时间钻研的人,俗称发烧友或怪杰。
RFC:
由互联网工程任务组(IETF)发布的一系列备忘录。
文件收集了有关互联网的相关信息,以及 UNIX 和互联网社区的软件文件,以编号排定。
目前 RFC 文件是由国际互联网协会(ISOC)赞助发行。
RFC 中记录了很多与互联网相关技术的发展细节。
切图:
指将设计稿切成便于制作成页面的图片,用于完成 HTML+CSS 布局的静态页面,有利于交互,形成良好的视觉感。
通俗来讲,把一张设计图利用切片工具切成一张张小图。
然后前端开发用 DIV+CSS 完成静态页面书写,完成 CSS 布局。
(TIPS:点击页面上方的目录可以跳转到其他章节哦^_^)
如果喜欢,别忘了评分{:10_281:} :
https://xxx.ilovefishc.com/forum/202011/20/092334ggd6inlzfisfrdir.png.thumb.jpg 感谢鱼C字幕组 感谢鱼C字幕组 感谢鱼C字幕组 感谢鱼C字幕组 活锁那一节是否是误把"线程"写成"行程"?还是本来就是"行程"?
活锁(Livelock):
与死锁相似,死锁是行程都在等待对方先释放资源。
活锁则是行程彼此释放资源又同时占用对方释放的资源。
当此情况持续发生时,尽管资源的状态不断改变,但每个行程都无法获取所需资源,使事情没有任何进展。 感谢鱼C字幕组 感谢鱼C字幕组 感谢鱼C字幕组 感谢鱼C字幕组{:10_298:} 感谢鱼C字幕组 感谢鱼C字幕组 感谢鱼C字幕组 感谢鱼C字幕组 感谢鱼C字幕组 感谢鱼C字幕组 感谢鱼C字幕组 感谢字幕组,不过请问为什么你那个传送门的发音的网页无法发音了?{:5_104:} 感谢鱼C字幕组 感谢鱼C字幕组