服务器

news/发布时间2024/5/18 19:19:49

ARM64、x86基础知识和区别

今天小编就带你深入了解CPU的这两大架构:ARMX86

  • ARM
    ARM64CPU构架的一种,通常用于手机、平板等CPU,目前笔记本电脑也会采用ARM64构架的CPU
  • x86
    x86CPU构架的一种,通常用于笔记本电脑、台式电脑、服务器、超级计算机

作者:物非0人非
链接:https://www.jianshu.com/p/c9bdaa139681
来源:简书

X86、X86_64、amd64、i386、i686指令集区别

x86

intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集。

x84_64/amd64

实际上,x86_64,x64,AMD64基本上是同一个东西。

x86 CPU开始迈向64位的时候,AMD比 Intel 率先制造出了商用的兼容 x86 的CPU,AMD称之为AMD64。

而后 Intel 也开始支持 AMD64 的指令集,换了个名字,叫x86_64,表示是x86 指令集的64扩展。

i386

i386 适用于intel和AMD所有32位的cpu。

intel平台包括8086,80286,80386,80486,奔腾系列(1.2.3.4)、赛扬系列,Pentium D 系列以及centrino P-M,core duo 等.

i686

i686 仍然属于 i386 体系,不过相对于386 CPU的特性作了指令优化。

i686 的软件包能在奔腾二代以上的cpu上执行,但基本不能在此之先的cpu如486上执行。而i386的软件包既可在i386的电脑上执行,也可在后面所有的cpu上执行(但不能发挥cpu的最佳性能)。

Ubuntu

Ubuntu中,每个版本都有一个更为特色的名字,这个名字由一个形容词和一个动物名称组成,并且,形容词和名词的首字母都是一致的。从D版本开始又增加了一个规则,首字母要顺延上个版本,如果当前版本是 D ,下个版本就要以 E 来起头。

Ubuntu历史版本与代号一览:

Ubuntu 发布版本的官方名称是 Ubuntu X.YY ,其中 X 表示年份(减去2000),YY 表示发布的月份。

Ubuntu 没有像其它软件一样有 1.0 版本,是因为其第一个版本是发布于 2004 年。所以Ubuntu的生日是10月20日。

版本

别名(codename)

发布日期

4.10

Warty Warthog(长疣的疣猪)

2004年10月20日

5.04

Hoary Hedgehog(灰白的刺猬)

2005年4月8日

5.10

Breezy Badger(活泼的獾)

2005年10月13日

6.06

Dapper Drake(整洁的公鸭)

2006年6月1日(LTS)

6.10

Edgy Eft(急躁的水蜥)

2006年10月6日

7.04

Feisty Fawn(坏脾气的小鹿)

2007年4月19日

7.10

Gutsy Gibbon(勇敢的长臂猿)

2007年10月18日

8.04

Hardy Heron(耐寒的苍鹭)

2008年4月24日(LTS)

8.10

Intrepid Ibex (勇敢的野山羊)

2008年10月30日

9.04

Jaunty Jackalope(得意洋洋的怀俄明野兔)

2009年4月23日

9.10

Karmic Koala(幸运的考拉)

2009年10月29日

10.04

Lucid Lynx(清醒的猞猁)

2010年4月29日

11.10

Oneiric Ocelot(梦幻的豹猫)

2010年10月13日

11.04

Natty Narwhal(敏捷的独角鲸)

2011年4月28日

12.04

Precise Pangolin(精准的穿山甲)

2012年的4月26日(LTS)

12.10

Quantal Quetzal(量子的绿咬鹃)

2012年的10月20日

13.04

Raring Ringtail(铆足了劲的猫熊)

2013年4月25日

13.10

Saucy Salamander(活泼的蝾螈)

2013年10月17日

14.04

Trusty Tahr (可靠的塔尔羊)

2014年4月18日 (LTS)

14.10

Utopic Unicorn(乌托邦独角兽)

2014年10月23日

15.04

Vivid Vervet (活泼的小猴)

2015年4月

15.10

Wily Werewolf (狡猾的狼人)

2015年10月

16.04

Xenial Xerus (好客的非洲地松鼠)

2016年4月 (LTS)

16.10

Yakkety Yak(牦牛)

2016年10月

17.04

Zesty Zapus(开心的跳鼠)

2017年4月

17.10

Artful Aardvark(机灵的土豚)

2017年10月

18.04

Bionic Beaver(仿生海狸)

2018年4月(LTS)

18.10Cosmic Cuttlefish (宇宙般大小的乌贼)2018年10月
19.04Disco Dingo2019年4月
19.10Eoan Ermine2019年10月
……  

每两年的 4 月份,都会推出一个长期支持版本(LTS),其支持期长达五年,而非 LTS 版本的支持期通常只有半年。

vagrant

你可以查看已经安装在电脑上的镜像列表,执行命令:

vagrant box list
vagrant box add ubuntu/trusty64 ~/downloads/virtualbox.boxvagrant box add https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/current/bionic-server-cloudimg-amd64-vagrant.box --name ubuntu18

ubuntu/trusty64 是我给要安装的镜像起的名字,这个名字可以随便定义。后面的 ~/downloads/virtualbox.box 是镜像文件在本地电脑上的具体位置,你要根据自己的实际情况去修改这个镜像文件的路径。

vagrant init ubuntu/trusty64

启动以后你会得到一个 Ubuntu 操作系统的虚拟机。 会有一个vagrant配置文件执行命令目录下面。

  • 打开C:\Users\Administrator\Vagrantfile文件
config.vm.box = "base" 修改为
config.vm.box = "ubuntu18"

配置虚拟机网络

本地VirtualBox 网络地址 192.168.56.1,则修改虚拟机IP地址为同一个网段下,比如192.168.56.10

2.配置虚拟机IP地址

打开Vagrant 配置文件 C:\Users\Administrator\Vagrantfile

# config.vm.network "private_network", ip: "192.168.33.10"
修改为
config.vm.network "private_network", ip: "192.168.56.10"

3.重新加载虚拟机

vagrant reload

4.连接虚拟机

vagrant ssh

5.配置密码登录

  • 配置密码登录vagrant
Vagrant ssh进入系统之后
sudo su
编辑 sshd_config
vi /etc/ssh/sshd_config
PasswordAuthentication no 改为 PasswordAuthentication yes 
PermitRootLogin prohibit-password改为PermitRootLogin yes
重启服务
service sshd restart

账号:root

密码:vagrant

改密码 passwd

暂停(suspend):通过调用 vagrant suspend 命令可以暂停虚拟机,此时会保存虚拟机当前运行状态并停止运行。当准备好再次工作时,运行 vagrant up 命令即可从上次暂停的状态恢复。这个方法的最大优点就是快,只要 5 到 10 秒就可以停止并开始工作。缺点是虚拟机仍占用磁盘空间,并且需要消耗更大的磁盘空间来保存虚拟机的 RAM 状态。

停止(halt):通过调用 vagrant halt 命令可以优雅关闭虚拟机操作系统并断电。需要再次启动的时候,运行 vagrant up 命令即可。这个方法的好处是会干净地关闭你的机器,保存磁盘的内容,并让它再次干净地启动。缺点是冷启动需要较长时间,且虚拟机仍占用磁盘空间。

销毁(destroy):通过调用 vagrant destroy 销毁虚拟机,这将从宿主机中删除虚拟机的所有痕迹。它会停止虚拟机,关闭它并删除其所有硬盘资源。当你准备好再次工作时,运行 vagrant up 命令即可。这样做的好处是,宿主机上不会留下残余物。虚拟机消耗的磁盘空间和 RAM 将被回收,并且主机保持清洁。缺点是,由于需要重新导入虚拟机并重新配置,因此需要更多时间。

Debian与Ubuntu到底有什么不同,应该如何选择?

Debian与Ubuntu到底有什么不同,应该如何选择?

镜像下载、域名解析、时间同步请点击 阿里云开源镜像站

在CentOS转向CentOS Stream之后,这意味着它将变得不可靠。

但是幸好,仍然有非常优秀的Linux发行版本在等我们。其中比较有知名度的是Ubuntu以及Debian。

我们经常听到的一句话是:

Ubuntu is based on Deibian

那它们究竟有什么区别,如果让你来选择,你要如何选择?

这篇文章中,我将简单的说明一下Ubuntu与Debian究竟有什么不同,它们两者究竟是个什么关系,也许能有助于你做出更好的选择。

1. Ubuntu是基于Debian而构建的

Linux发行版本虽然众多,但是真正属于 原始构建的Linux版本可不多,只有少数几个,而大多数大家熟悉的或使用比较多的诸如CentOS,还有Ubuntu这一类属于 再构建版本,简单来说就是这些版本是基于 原始构建版本的基础之上再次修改及构建而来。

属于原始构建版本的真不多,我知道的只有以下几个:

  • Redhat,使用的是Yum/rpm包管理
  • Debian,使用的是Apt/deb包管理
  • Arch Linux,pacman包管理

而在服务器,用的最多的两个发行版本,一个CentOS,是基于Redhat构建而来。而另一个Ubuntu则就是基于Debian构建而来的。

所以,某种程度上可以说:

Debian是Ubuntu的老爸

这就决定了Ubuntu和Debian大多数情况下可能非常一致,但又有一些不同。

与CentOS只是把Redhat的品牌信息去掉相比,Ubuntu在Debian的基础上做了许多的变更,比如Snap软件管理这个就是Ubuntu搞的,Deibain上默认是没有Snap的。

2. Debian由社区负责,而Ubuntu由商业公司负责

Debian是一个完全由社区负责的Linux版本,他们是自由软件的忠实信徒,背后没有商业公司的相关利益与推动。而Ubuntu背后则是canonical商业公司,商业公司毕竟是以赢利为目标。

所以,一个显而易见的事实是:

在营销方面,Ubuntu是好于Debian的,这也可能是现在为什么Ubuntu更让大家熟知的原因所在吧。

这一点上,在它们针对软件源的态度上也不一样。Debian默认的源中的软件全是free software,而Ubuntu则不在意这个,自由,开源或免费的商业软件在Ubuntu的源中都有。

当然,Debian也包括了no free软件源,但你必须手动修改软件源才能达到这一目标。

3. 版本分类不同

Debian是分为三种版本, stable(稳定版),test(测试版本),以及 unstable(不稳定版)

比如Debian当前的稳定版本是Debian 11,而当前的测试版本是Debian Bookworm(也就是未来的下一个稳定版),Debian的稳定版本支持期为2年,社区延长支持一年总共三年。

而Ubuntu则不是这样分类,Ubuntu区分为LTS版及非LTS版本,LTS版本两年更新一个版本,维护期五年。而非LTS版本则是6个月更新一个版本,支持为9个月。

比如Ubuntu 18.04 LTS,Ubuntu 20.04 LTS就是长期支持版,而Ubuntu 20.10就是非长期支持版。

4. 更新机制不同

Debian有滚动发行和标准发行两种机制,而Ubuntu则是标准发行机制。Debian Stable和Ubuntu一样是标准发行机制,而Ubuntu Test则是滚动发行。

什么区别?

滚动版本发行,是指会经常性的推送更新,通过更新来达到更新补丁及更新到下一个新版本,并不需要重新安装新版本。而标准版本发行就是当一个新的版本发布后,通常需要以重新安装的方式来取代旧的发行版本。

比如,如果你安装的是Debian Test,你就不需要关心新版本,只需要每天持续更新就可以了,永远保持最新。

而如果是你Ubuntu 18.04 LTS版本,当Ubuntu 20.04 LTS发布后,虽然也能升级到新版本,但通常这种操作风险过高,一般用做服务器不会这么干。

滚动发行版本可能更多的对桌面Linux更适合。

5. 稳定性

虽然在国内Debian系可能没有Redhat系多,很多人会说Redhat系更稳定。事实上这是没有依据的。

Debian与Ubutun都是非常稳定的发行版本,在全球范围内使用都比较多。在全球公有云市场,占比最高的Linux服务器发行版本是Ubuntu。

如果拿Deiban与Ubuntu来比,Debian在稳定性方面更甚一筹。相对而言,Ubuntu在稳定性方面稍逊一些。

Debian之所以更稳定的原因在于,它默认使用的软件的版本通常是经过验证的稳定的旧版本,而非比较新的版本。Ubuntu则软件相对新一点,新的当然是没有经过时间检验的,在稳定性自然比不上。

这背后可能有一个你意想不到的事实就是:

Ubuntu是基于Debian unstable而构建的,Debian unstable版本的软件通常更新,所以没有stable版本稳定。

那Ubuntu没有Deibian稳定也是自然的了。

6. 桌面系统

Linux虽然主要是应用在服务器,但它在桌面领域也还是有一点存在感的,那就Linux桌面操作系统来说,Ubuntu就是绝对的王者了。

Ubuntu无论是在桌面系统的易用性,对各种硬件的驱动支持等方面,都比Debian优秀。

对于Linux桌面选择来说,Ubuntu对新手非常友好,而Debian这样的可能需要有点水平才能用的比较好。

如何选择?

不知道这些信息对你的选择是否有帮助。你想知道我是如何选择的吗?

首先,我已经完全放弃了CentOS,因为它转变成了CentOS Stream,可能不稳定,所以不适合做服务器了。当然,

虽然Redhat系还有Oracle等其它选择。而且国内由于历史原因使用CentOS更多,所以像前段时间华为开源的OpenEuler欧拉开源系统也是Redhat系。但在了解了Debian的历史之后,我个人还是更喜欢Debian系。

那对于Debian与Ubuntu这两者来说,Ubuntu更流行,Debian则更稳定。

所以,我的选择是:

  • 对于服务器系统的选择,那就是Debian了
  • 而对于Linux桌面操作系统,则以Ubuntu及类似Linux Mint基于Ubuntu发行的版本为主了

非对称加密?

https://www.zhihu.com/question/33645891/answer/57512229
https://zhuanlan.zhihu.com/p/436455172

通信双方各自准备一对公钥和私钥。

梳理出一次信息传输的非对称加、解密过程:

1、消息接收方准备好公钥和私钥

2、私钥接收方自己留存、公钥发布给消息发送方

3、消息发送方使用接收方公钥对消息进行加密

4、消息接收方用自己的私钥对消息解密

公钥只能用做数据加密。公钥加密的数据,只能用对应的私钥才能解密。这是非对称加密的核心概念

首先,每个用户都有两把钥匙,一把公钥一把私钥。公钥是对外发布的,所有人都看的到所有人的公钥,私钥是自己保存,每个人都只知道自己的私钥而不知道别人的。

用该用户的公钥加密后只能该用户的私钥才能解密。这种情况下,公钥是用来加密信息的,确保只有特定的人(用谁的公钥就是谁)才能解密该信息。

下面我拿A银行和小明来举例子吧。

假设这2者之间是用不对称的加密算法来保证信息传输的安全性(不被第三人知道信息的含义及篡改信息)。大致流程如下:

首先小明发了一条信息给A银行“我要存500元”。这条信息小明会根据A银行的对外发布的公钥把这条信息加密了,加密之后,变成“XXXXXXX”发给A银行。中间被第三者截获,由于没有A银行的私钥无法解密,不能知道信息的含义,也无法按正确的方式篡改。所以拿这条加密信息是没办法的。最后被A银行接受,A银行用自己的私钥去解密这条信息,解密成功,读取内容,执行操作。然后得知消息是小明发来的,便去拿小明的公钥,把“操作成功(或失败)”这条信息用小明的公钥加密,发给小明。同理最后小明用自己的私钥解开,得知知乎发来的信息内容。其他人截获因为没有小明的私钥所以也没有用。

还有第二种情况,公钥是用来解密信息的,确保让别人知道这条信息是真的由我发布的,是完整正确的。接收者由此可知这条信息确实来自于拥有私钥的某人,这被称作数字签名,公钥的形式就是数字证书。怎么理解呢?

继续拿小明和银行A举例子。银行A发布了一个银行客户端的补丁供所有用户更新,那为了确保人家下载的是正确完整的客户端,银行A会为这个程序打上一个数字签名(就是用银行A的私钥对这个程序加密然后发布),你需要在你的电脑里装上银行A的数字证书(就是银行对外发布的公钥),然后下载好这个程序,数字证书会去解密这个程序的数字签名,解密成功,补丁得以使用。同时你能知道这个补丁确实是来自这个银行A,是由他发布的,而不是其他人发布的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/60007148.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

组件功能

可视化 —— watch

米联客MLK-CM04-9EG-15EG AMD MPSOC核心模块硬件手册

1 整体概述 MLK-04-9EG/15EG-1156核心模块是米联客电子Zynq UltraScale+系列开发平台的全新高端产品。其核心模块集成电源管理:0.85V核心电源,最大输出48A。用户基于核心模块设计功能底板(提供功能底板设计方案)。降低项目功能底板设计难度和生产成本,加速项目开发。其应用…

五个月,秒杀,38个大的篇章,126+篇文章、视频、小册,150+源码分支,完美收官!

大家好,我是冰河~~ 经过四个多月的坚持,《Seckill秒杀系统》终于接近尾声了,也感谢大家这四个多月以来的坚持和陪伴,也相信大家在《Seckill秒杀系统》专栏中,学到了不少知识和技术。接下来,我们就一起对《Seckill秒杀系统》专栏做个总结。 一、总体概述 在《Seckill秒杀系…

基于 ActionFilters 的限流库DotNetRateLimiter使用

前言 在构建API项目时,有时出于安全考虑,防止访问用户恶意攻击,希望限制此用户ip地址的请求次数,减轻拒绝服务攻击可能性,也称作限流。接下来,我们就来学习开源库DotNetRateLimiter 如何轻松实现限流。 项目使用配置 安装Nuget包 在新建立的WebAPI项目中,通过Nuget包管理…

ES 2023新特性速解

ES 2023新特性速解 一、新增数组方法 操作数组的方法 Array.prototype.toSorted(compareFn) //返回一个新数组,其中元素按升序排序,而不改变原始数组。 Array.prototype.toReversed() //返回一个新数组,该数组的元素顺序被反转,但不改变原始数组。 Array.prototype.toSpli…

【译】通过自动反编译和外部源提升调试

Visual Studio 支持外部源代码调试和反编译已经有一段时间了。然而,随着 Visual Studio 17.7的发布,调试器有了一个重大的飞跃,它为 .NET 库引入了自动反编译功能,使得 Visual Studio 中的外部代码调试变得更加流畅和轻松。它集成了反编译器,可以实时反编译外部代码,并根…