自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 SSL/TLS 双向认证(一) -- SSL/TLS 工作原理

https://blog.csdn.net/yanmantian/article/details/53256765

2022-03-25 17:30:18 369

原创 C程序的编译过程

C是一种编译语言。它的源代码可以用程序员选择的任何编辑器以文本文件的形式编写,然后必须编译成机器代码。C 源文件按照惯例以.c 扩展名命名,我们使用命令“gcc”来编译 C 源文件。(GCC 代表 GNU Compiler Collection,它是由 GNU 项目产生的编译器系统。)编译四步:预处理、编译、汇编、链接。接下来介绍下编译中的这四步分别做了什么。编译四步1.预处理预处理是第一步。预处理器通过以下方式遵守以 # 开头的命令(称为指令):(1) 删除评论(2) 扩展宏(3) 扩展

2022-01-10 11:59:52 2771

原创 详解Linux 和 GNU 系统的关系

每天都在运行的Linux系统其实是?今天广泛使用的 GNU 版本通常被称为“Linux”,而它的许多用户并不知道 它基本上是由GNU 项目开发的 GNU 系统 。Linux内核 和 GNU 系统简介确实有一个 Linux,这些人正在使用它,但它只是他们使用的系统的一部分。Linux 是内核:系统中的程序,它将机器的资源分配给您运行的其他程序。内核是操作系统的重要组成部分,但它本身毫无用处;它只能在完整操作系统的上下文中运行。Linux 通常与 GNU 操作系统结合使用:整个系统基本上是 GNU 加上

2022-01-04 15:20:17 3727

原创 GNU和Linux

官网明确回复了:Linux确实存在,许多人都在使用它,但它仅仅是所用系统的一部分。Linux是内核:它是为你运行的其他程序分配计算机资源的程序。内核是操作系统的基本部分,但是它自己并无用处;它只能在完整的操作系统框架下才能发挥作用。Linux一般和GNU操作系统一起使用:整个系统基本上就是GNU加上Linux,或叫GNU/Linux。所有被叫做“Linux”的发行版实际上是GNU/Linux发行版。我的简单总结-可能有点理解不准确的地方:有个计划叫GNU计划,它的愿景就是开发开源的操作系统-GNU,

2021-12-23 18:05:57 919

原创 为什么需要编码解码

为什么需要编码?当您将数据从您的计算机传输到另一台计算机时,它无法直接传输您看到的数据,例如如果您将“Hello World”从一台计算机发送到另一台计算机,它不能将其传输为“Hello World”,它会将“ Hello World”转换为二进制,可能是这样的"01001000011001010110110001101100011011111001000000101011101101111011100100110110000010"因为电线只能传输二进制数据。或者当您通过电话或互联网通话时,您的

2021-12-22 16:39:32 1142

转载 什么是ping,如何使用?

Ping 是一个终端/外壳命令实用程序,用作验证机器是否可以访问互联网以及是否可以与其他计算机或网络设备通信的简单方法。功能ping 命令的一些功能是:1.测试网络连通性:本地网络、互联网2.排除网络接口卡故障3.测试 DNS 名称解析问题也许,您已经在正常对话中看到了ping,例如,“一旦我完成工作,我就会 ping 您”。在通用语言中,ping 仅表示从计算机发送到另一台计算机的消息。用法ping 命令连接到任何可用的主机,无论是在您的本地网络中还是通过 Internet。该主机可以是另

2021-12-22 12:04:23 5791

原创 什么是SSH

默认配置Windows下有很多SSH工具。在这里我是用的是Putty。如果安装了Git并配置使用Putty的话,就不需要另外在安装Putty了。使用SSH连接服务器的命令如下:ssh IP地址一般来说为了安全性考虑,端口号等一些参数并不会使用默认值。这样的话命令就变成这样:ssh 用户名@IP地址 -p 端口号如果连接成功的话会提示你输入远程服务器的密码。全部成功之后SSH就会显示远程服务器的提示符,这时候就说明连接成功了。SSH 与 TelnetTelnet 是最早的互联网应用协议之一

2021-12-21 18:38:43 1232

原创 telnet 讲解

许多人发现检查端口是否打开的挑战过于复杂。但是,最有效的方法之一是使用网络协议 Telnet。Telnet 允许用户测试单个端口并查看它们是否打开。什么是远程登录简而言之,Telnet 是一种为与远程计算机交互而构建的计算机协议。Telnet 实用程序允许用户测试与远程机器的连接并通过使用键盘发出命令。尽管大多数用户选择使用图形界面,但 Telnet 是检查某些端口连接的最简单方法之一。Windows 操作系统中使用要记住的最重要的事情之一是默认情况下在 Window 的设置中禁用 Telnet,

2021-12-21 16:26:00 8233

原创 编译器、运行时和 .NET Framework

你知道计算机是如何将代码转换为可运行程序的吗?那么你需要了解编译器,CLR,IL,.NET Framework。编译器编译器是将用一种编程语言编写的源代码转换为另一种编程语言的程序。“我为什么需要这个?” 你会问,“我以为我们是用 C# 编写的?” 您编写的 C# 代码必须转换为计算机处理器可以理解的内容。当然,处理器是计算机的大脑——执行所有计算的部分。处理器不知道 C#;它只理解机器代码。IL您刚刚完成了 C# 代码的编写。当您运行 C# 编译器时,它会将您的代码作为输入,进行一些处理,然后以中

2021-12-21 14:46:22 907

转载 .NET语言的编译过程:中间语言(IL)和即时编译器(JIT)

.NET语言的编译:高级语言 ----编译----> IL中间语言 ----JIT----->汇编语言.NET语言的编译分为两个阶段.首先高级语言被编译成一种称作IL的中间语言,与高级语言相比,IL更像是机器语言,然而,IL却包含一些抽象概念(比如:类、异常),这也是这种语言被称为中间语言的原因。IL被打包在DLL或EXE文件中,而DLL和EXE在.NET中的主要区别就是:只有EXE可以直接被运行,而二者都可被某个正在执行的进程动态装载(后文详述)。由于机器的CPU只能执行本地汇编语言,而不

2021-12-21 11:21:03 1210

原创 IL中间语言理解

IL :IL是.NET框架中中间语言(Intermediate Language)的缩写。使用.NET框架提供的编译器可以直接将源程序编译为.exe或.dll文件,但此时编译出来的程序代码并不是CPU能直接执行的机器代码,而是一种中间语言IL(Intermediate Language)的代码IL本身逻辑很清楚,主要是把指令的意思搞明白就好办了。记指令只要记住几个规律就好,大致可分为三类:1.直观型Add:将两个值相加并将结果推送到计算堆栈上Sub:从其他值中减去一个值并将结果推送到计算堆栈上Ca

2021-12-20 18:27:48 1306

转载 CDN是什么

Content Delivery Network或Content Ddistribute Network,即内容分发网络基本思路尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。目的解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、

2021-12-17 17:28:15 154

原创 telnet介绍

介绍Telnet 是一个应用程序,用于连接到远程主机的命令行终端界面。网络和系统管理员使用此应用程序来配置和管理服务器、路由器、交换机等网络设备。此应用程序基于面向连接的传输控制协议 (TCP)。默认情况下,telnet 服务器在端口 23 上侦听来自客户端的传入连接。在客户端和服务器之间的 telnet 会话中交换的所有信息都是未加密的,因此,在过去几年中,该应用程序已被 SSH 取代,后者提供相同类型的服务,但已加密,因为它基于安全套接字层 (SSL) 协议。尽管 telnet 已不再用于远程管理目

2021-12-01 17:50:58 2513

原创 curl-客户端(client)的URL工具

介绍curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。curl,全称CommandLine URL 或 CommandLine Uniform Resource Locator,顾名思义,curl命令是在命令行方式下工作,利用URL的语法进行数据的传输或者文件的传输。这个命令行工具现在多用于Unix和Linux操作系统,是一个开源的工具,功能十分强大。该工具支持30多种类型的传输方式,包含多种协议,如FILE,FTP,HTTP,HTTP

2021-12-01 17:25:49 1083

原创 什么是Agent

一方面,Agent技术为解决新的分布应用问题提供了有效途径;另一方面,Agent技术为全面准确地研究分布计算系统的特点提供了合理的概念模型。在分布计算领域,人们通常把在分布式系统中持续自主发挥作用的、具有以下特征的活着的计算实体称为Agent。1.自主性Agent具有属于其自身的计算资源和局部于自身的行为控制机制,能够在没有外界直接操纵的情况下,根据其内部状态和感知到的环境信息,决定和控制自身的行为。例如,SNMP中的agent就是独立运行在被管理单元上的自主进程。2.交互性Agent能够与其他A

2021-12-01 10:50:43 5283

转载 什么是DLL

概括在描述什么是 DLL 时,本文介绍了动态链接方法、DLL 依赖项、DLL 入口点、导出 DLL 函数和 DLL 故障排除工具。对于 Windows 操作系统,操作系统的大部分功能都是由 DLL 提供的。此外,当您在这些 Windows 操作系统之一上运行程序时,程序的大部分功能可能由 DLL 提供。例如,某些程序可能包含许多不同的模块,而程序的每个模块都包含并分布在 DLL 中。DLL 的使用有助于促进代码模块化、代码重用、高效内存使用和减少磁盘空间。因此,操作系统和程序加载速度更快,运行速度更快

2021-07-21 11:51:44 2466

原创 用csc.exe和记事本写一个C#应用程序

csc.exe是C#的命令行编译器(CSharpCompiler),可以编译C#源程序成可执行程序。它与Visual Studio等IDE(Integrated Development Environment,集成开发环境)的区别是,csc.exe只是将用C#语言编写的源程序文件编译成.exe、.dll等文件,它只是一个编译器,而IDE提供丰富的调试、运行功能,提供很多view视图以及解决方案管理器等文件组织功能。csc.exe包含在.NET Framework SDK(Software Developm

2021-07-14 16:43:41 939

原创 Unity jam build system发展史

自2010年以来,我们使用称为JamPlus的基于Jam的构建系统来构建Unity。1.Jam构建系统概述1.1 JAM.EXE有一个构建引擎(build engine),即jam.exe。它知道如何解析描述构建的 *.jam 文件,找到哪些内容需要更新以构建某些内容,并在可能的情况下并行执行这些构建命令。1.2 JAMPLUS“JamPlus”是在此之上编写的一堆规则,结合了 Jam 和 Lua 语言。 这些是辅助工具,例如“查找 C++ 编译器”,描述 C/C++ 程序的基本结构等。JamP

2021-07-09 15:26:26 1517

原创 Unity Mono和IL2CPP的区别

*目录Unity是如何实现跨平台的?Mono介绍IL2CPP介绍Mono与IL2CPP的区别*一、Unity是如何实现跨平台的?跨平台:一次编译,不需要任何代码修改,应用程序就可以运行在任意在平台上跑,即代码不依赖于操作系统,也不依赖硬件环境。Unity是如何实现跨平台的?这就得提到Unity脚本后处理(Scripting Backend)的两种方式Mono和IL2CPP。让我们来搞清楚这2个的区别。二、Mono介绍Mono是一个由Xamarin公司所主持的自由开放源码项目。Mon

2021-07-08 16:51:03 2374 4

原创 golang map 判断key是否存在

定义,赋值mappackage mainimport "fmt"func main() { var countryCapitalMap map[string]string /*创建集合 */ countryCapitalMap = make(map[string]string) /* map插入key - value对,各个国家对应的首都 */ countryCapitalMap [ "France" ] = "巴黎" countryCapitalMap

2021-07-07 16:02:49 2289

转载 Prel简介

Perl 简介Perl,一种功能丰富的计算机程序语言,运行在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发。Perl 语言的应用范围很广,除CGI以外,Perl被用于图形编程、系统管理、网络编程、金融、生物以及其他领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。什么是 Perl?Perl是由Larry Wall设计的,并由他不断更新和维护的编程语言。Perl具有高级语言(如C)的强大能力和灵活性。事实上,你将看到,它的许多特性是从C语言中借用来的。

2021-07-07 14:32:13 1088

原创 Tundra,一个构建系统

Tundra 是一种高性能代码构建系统,旨在为非常大的软件项目提供尽可能最佳的增量构建时间。Tundra 是便携式的,可用于macOSLinuxFreeBSDWindows(XP 或更高版本 - 二进制版本需要 Vista/64 或更高版本 - 使用MinGW 从源代码构建 XP 支持。)移植到类 UNIX 平台将非常容易,移植到其他平台需要在一些明确定义的地方做一些工作。有关更详细的使用信息,请参阅 doc/manual.asciidoc。有一个可能有用的配套 Visual Stud

2021-07-07 11:28:10 444

原创 bee工具

bee 工具是一个为了协助快速开发 beego 项目而创建的项目,通过 bee 您可以很容易的进行 beego 项目的创建、热编译、开发、测试、和部署。bee 工具的安装您可以通过如下的方式安装 bee 工具:go get github.com/beego/bee安装完之后,bee 可执行文件默认存放在 $GOPATH/bin 里面,所以您需要把 $GOPATH/bin 添加到您的环境变量中,才可以进行下一步。如何添加环境变量,请自行搜索 如果你本机设置了 GOBIN,那么上面的命令就会安装到

2021-07-07 11:09:39 476

原创 VC++6.0中Compile和Build的区别

“compile"是“编译”的意思,“build”是“链接”的意思。compile 的作用是对你的代码进行语法检查,将你的文本程序语言转化成计算机可以运行的“01010…”形式的二进制文件。build 的作用是将你在程序中调用到的类库融合到你的程序中,比如你用到了printf()函数,那么内部实现该函数的类库代码就会添加到你的程序中。compile过程生成“.obj”文件或”.o"文件,这个和编译器有关,vc++中是“.obj”文件。build过程生成“.exe”文件。这个可以直接运行理论上来说应

2021-07-06 18:50:27 1943

原创 golang删除slice中某些符合条件的元素

假设我们的切片有0和1,我们要删除所有的0,此处有三种方法:方法一func DeleteSlice(a []int) []int{ for i := 0; i < len(a); i++ { if a[i] == 0 { a = append(a[:i], a[i+1:]...) i-- } } return a}解释:这里利用常见的方法对slice中的元素进行删除,注意删除时,后面的元素前移,i应该后移一位。方法二func DeleteSlice1(a []i

2021-07-06 17:56:46 1561

转载 如何写makefile文件(3)

Makefile 总述———————一、Makefile里有什么?Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写Makefile,这是由make所支持的。3、变量的定义。在Makefile中我们要定义一系列的变量,变量一般都是

2021-07-05 14:27:20 163

转载 如何写makefile文件(2)

三、make是如何工作的在默认的方式下,也就是我们只输入make命令。那么,1、make会在当前目录下找名字叫“Makefile”或“makefile”的文件。2、如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“edit”这个文件,并把这个文件作为最终的目标文件。3、如果edit文件不存在,或是edit所依赖的后面的 .o 文件的文件修改时间要比edit这个文件新,那么,他就会执行后面所定义的命令来生成edit这个文件。4、如果edit所依赖的.o文件也存在,那么

2021-07-05 11:46:41 128 1

原创 ini文件

INI文件是一种无固定标准格式的配置文件。它以简单的文字与简单的结构组成,常常使用在Windows操作系统上,许多程序也会采用INI文件做为配置文件。定义.ini 文件是Initialization File的缩写,用来初始化文件组成.ini 文件由节点、键、值组成节[section]键值key=val注释注解使用分号表示(;)。在分号后面的文字,直到该行结尾都全部为注解。 ; comment text一个简单的.ini文件如下:[owner]name=John Doeo

2021-06-16 17:57:28 2495

原创 Beare token介绍

Beare token

2021-06-16 17:15:19 4017

转载 Go 语言Map(集合)

Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的。定义 Map可以使用内建函数 make 也可以使用 map 关键字来定义 Map:/* 声明变量,默认 map 是 nil */var map_variable_name map[key_data_type]value_da

2021-06-15 15:49:10 154

转载 使用 make() 函数来创建切片(slice)

Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go 中提供了一种灵活,功能强悍的内置类型切片(“动态数组”),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。使用 make() 函数来创建切片:var slice1 []type = make([]type, len)也可以简写为slice1 := make([]type, len)也可以指定容量,其中 capacity 为可选参数。make([]T, length, capacity)这里 l

2021-06-15 15:19:52 1920 1

原创 关于postman的post,get用法

1.postresp = curlJson(‘POST’, ut.test_uri, ‘/v1/ttt/api/login’, headers={‘Content-Type’: ‘application/json’}, data={‘grant_type’: ‘PASSWORD’,‘username’: email,‘password’: password}, raiseOnError=False)assert resp is not None可以看到这是一个post函数,我们只能看到这个

2021-06-09 18:15:13 537

原创 pgAdmin是PostgreSQL的管理工具

PostgreSQL 是世界上最先进的开源关系数据库。PostgreSQL 管理的管理工具是pgAdmin。

2021-06-01 17:43:18 587

转载 简单介绍 Oauth2.0 原理

有两家互联网企业 A 和 B,其中 B 是一家提供相片云存储的公司。用户可以把相片上传到 B 网站上长期保存,然后可以在不同的设备上查看。某一天,A 和 B 谈成了一项合作:希望用户在使用 A 的客户端时,也可以观看他在 B 的相片。这个技术上要怎么实现呢?选项一:由 B 提供一个接口:GET /photos?account=参数:account : B 账号返回:指定账号下的所有相片有了这个接口,A 的客户端只需在界面上显示一个输入框,让用户输入他的 B 账号,然后调用这个接口来获取相片就可

2021-06-01 15:33:03 694

转载 Access Token是做什么的

我们在访问很多大公司的开放 api 的时候,都会发现这些 api 要求传递一个 access token 参数。这个参数是什么呢?需要去哪里获取这个 access token 呢?access token 是在 Oauth2.0 协议中,客户端访问资源服务器时需要带上的令牌(其实就是一段全局唯一的随机字符串)。拥有这个令牌代表着得到用户的授权。令牌里面包含哪些信息呢?答案是:哪个用户 在什么时候 授权给哪个app 去做什么事情当然这些信息是不能直接从 access token 看出来的,而是存在

2021-06-01 14:44:22 7220

转载 计算机术语hook的理解

Hooks就像一些外来的钩子,在源代码之间钩取(窃听)一些信息,当它捕捉到自己感兴趣的事发生,就拦截下来,让自己的代码执行一下,处理一下这个信息,然后再放出去继续之前的进程。这样就可以在不用改变源代码的情况下,做一些别的事情,比方说监控、分析和一些恶意的事。...

2021-05-31 17:41:35 2368 1

转载 如何写makefile文件(1)

一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中。makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是——“自动化编译”。一旦写好,只需要一个make命令,整个工程完全自动编译,极大地提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具。一般来说,大多数的IDE都有这个

2021-05-31 17:34:59 158 1

原创 云服务器ECS

云服务器ECS(Elastic Compute Service)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。ECS镜像提供了创建ECS实例所需的信息。创建ECS实例时,必须选择镜像。镜像文件相当于副本文件,该副本文件

2021-05-27 15:19:41 120

原创 RAM,ROM,内存还有硬盘的区别

内存,RAM,ROM,CACHE内存在电脑中起着举足轻重的作用。内存一般采用半导体存储单元,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)。只不过因为RAM是其中最重要的存储器。 通常所说的内存即指电脑系统中的RAM。RAM要求每时每刻都不断地供电,否则数据会丢失。RAMRAM(发音同 ram),是指随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常

2021-05-26 18:08:00 2254

转载 Kubernetes和Docker

定义上的区别官方定义1:Docker是一个开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行的Linux机器上,也可实现虚拟化。官方定义2:k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。与传统技术的区别一、从虚拟化角度:图1图1是Docker容器与传统虚拟化方式的不同之处,传统的虚拟技术,在将物理硬件虚拟成多套硬件后,需要再每套硬件上都部署一个操作系统,接着在这些操作系统上运行相应的应用程序。而Docker容器内的应用

2021-05-26 11:29:17 153

空空如也

空空如也

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

TA关注的人

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