星期三, 六月 16, 2021

Cpu架构的基础知识x86、ARM、MIPS架构

星期三, 六月 16, 2021 0 Comments

操作系统CPU架构

对于windows家用系统来说,我们无法接触到这些CPU架构,通常选择CPU的时候,接触到的AMD或者Intel 其实两者都是x86结构。偶尔听过ARM windows操作系统,很少听到过这些。本文将详细介绍Linux系统的架构。

常见 CPU 架构

  • x86 架构
  • ARM 架构

对应指令集

x86 复杂指令集(CISC):Complex Instruction Set Computing

arm 精简指令集(RISC):Reduced Instruction Set Computing

指令集只是大的技术路线,x86和Arm都是典型的代表性设计产品。

x86 架构历史发展介绍

386 和 amd64(可统称为 x86 架构)采用复杂指令集。

最初,Intel 发展了自己的 x86 架构,后来 AMD 也取得了 x86 授权,可自行开发 x86 架构。因此AMD和intel 也是我们常见CPU选择,相互兼容。

历史推进

AMD 首先推出了兼容 64 位的 x86 架构(混合 32 位和 64 位的架构),即后来的 x86-64,后来 Intel 也取得了生产授权(Intel 和 AMD 之间的专利交叉较严重),也开发了 x86-64。由于 AMD 先行推出,因此 x86-64 也被称为 amd64。

总结:x86 结构主要有:x86x86-64(amd64)。一个指的是32位,一个指的是64位。

主要产品

这些都是intel和amd生产的。相互之间软件是兼容的。但是32位不能跑64位软件。

Intel 的至强、酷睿、奔腾、赛扬和凌动

AMD 的锐龙、速龙

提出一个考题,如果去Github下载一个windows软件,如何选择?

答案:对于windows是高度兼容的,所以一般.exe结尾的软件都可以跑,但是从一个程序员角度如何解决呢?

首先判断自己系统的类别,打开此电脑,右键选择属性,查看电脑

Cpu架构的基础知识x86、ARM、MIPS架构

可以判断是windows 64位 x64处理器,根据这两个信息。我们可以下载x86/amd64/x86-64标注的exe结尾软件。

考题二:Github下载一个ubunut (linux)上,软件如何选择呢?

答案:首先判断操作系统的信息,x86-64 cpu和ubuntu 发新版本

uname -i
x86_64
uname -a
Linux ubuntu 4.15.0-112-generic #113~16.04.1-Ubuntu SMP Fri Jul 10 04:37:08 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

因此我们要下载的软件就是,x86或者amd64或者x86-64为标识,以可以运行在linux上的软件包,比如:.deb 结尾包名称或者.tar.gz 的压缩包。

Cpu架构的基础知识x86、ARM、MIPS架构

这是一个典型的多平台软件包,支持mac、安卓,linux和windows 平台。

可以看x64提供三个,由于32位系统现在少了,64位一般兼容,所以直接提供64位的三个包。

.deb 就是linux上的一个软件包,支持debian类操作系统,因为ubuntu就是这一类,x64(x86-64简写)同样我们支持,我们可以下载此安装包。

同样的Linux-x64.AppImage 我们也可以下载,一个是linux系统(ubuntu是类linux),x64架构的软件,可以完美的适配我们的系统。

ARM 架构

ARM 多用于移动端,一般在开发和运行选择平台上不会选择它。一般以 ARM 代表的软件可以运行在 ARM 处理器上,即移动端或 Linux ARM 版本。

同样的如图,我们可以看到,arm64位的安卓软件apk。arm7设计架构(用户可以自己查询系统)CPU的apk软件。

这就表示:arm64 .apk 可以安装到所有arm64架构的安卓手机上,arm7.apk 只可以安装到arm7架构的arm cpu上。

arm7可以理解为arm64中,更具具体的一个cpu架构。arm64可以安装到arm7 arm6,只要是arm64的就可以。arm7只能安装7架构上。arm6完全不可以。

MIPS 架构

MIPS 架构。MIPS 是一种学术派 CPU,授权门槛极低,因此许多厂商都在制造 MIPS 或 MIPS 衍生架构。我们通常接触到的 MIPS 架构 CPU 主要用于嵌入式领域,比如路由器。目前最活跃的 MIPS 是中国的龙芯,其 LoongISA 架构实际上是 MIPS 的扩展。

root@OpenWrt:~# uname -a
Linux OpenWrt 5.15.167 #0 SMP Mon Sep 23 12:34:46 2024 mips GNU/Linux

这是一个典型的路由器破解后,可以看到mip架构,发新版本OpenWrt 的Linux 发行版。

Windows 7 和 Windows 10 系统版本详细对比

星期三, 六月 16, 2021 0 Comments

 
一张ai生成的具有linux文件列表图片

Windows 系统版本

在安装操作系统时,我们该如何选择各个版本呢?

Windows 7

Windows 7 Starter(初级版)

这个版本的 Win7 系统功能最为简约,不支持 64 位、桌面背景更换有限、没有 Aero 特效功能、没有移动中心和 Windows 媒体中心。它只能通过 OEM 计算机预装或系统集成预装的方式激活,并且对计算机硬件有限制。

Windows 7 Home Basic(家庭普通版)

这个版本的 Win7 系统经过简化,一般家庭使用的版本属于这类,价格较为便宜。它具备大部分功能,如移动中心、多显示器支持、部分 Aero 特效等,但仍不支持远程桌面、Tablet 支持和 Windows 媒体中心,中国、巴西、印度是使用这个版本最多的国家。

Windows 7 Home Premium(家庭高级版)

这个版本是普通版的升级版本,为家庭用户提供更多需求,包含普通版本所不具备的远程桌面、Tablet 支持和 Windows 媒体中心等功能。还拥有多点触控功能、手写识别、建立家庭网络组等,但不支持多语言功能。

Windows 7 Professional(专业版)

这个版本面向微软爱好者、小型企业用户的日常办公需求,支持演示模式、增强的网络功能、加密文件系统、远程桌面、64 位支持内存、网络备份、活动目录和域支持、Windows XP 模式、位置感知打印等。

Windows 7 Enterprise(企业版)

这个版本是专业版的高级版本,满足大型企业的需求,支持多语言包、企业数据共享、数据管理、分支缓存、UNIX 应用支持、信息数据安全防护、BitLocker 驱动器加密等。

Windows 7 Ultimate(旗舰版)

这个版本拥有 Win7 的所有功能,与企业版相近,但在具体服务和授权方式上有所改变,软件爱好者和高端用户常使用这个版本。

总结

Windows 7 的各个版本仅在功能上有所差异,针对不同用户提供不同功能。

在这六个版本中,Windows 7 家庭高级版和 Windows 7 专业版是两个主力版本。前者面向家庭用户,后者面向商业用户。此外,32 位版本和 64 位版本在外观或功能上没有区别,但 64 位版本支持高达 16GB(最高至 192GB)内存,而 32 位版本只支持最大 4GB 内存。

Windows 10

Win10 共划分为 7 个版本

Windows 10 家庭版

家庭版是目前大多数安装 Win10 的用户所使用的系统版本。因其兼容性强,适用于大部分台式机和平板电脑。系统内含 Win10 应用商店、Edge 浏览器、Cortana 语音助手、平板模式等。主要面向消费者和个人电脑用户,适合个人或家庭使用。

Windows 10 企业版

Win10 企业版功能较其他版本更丰富。其中包含 Windows To Go 功能,这是其他版本所不具备的。用户可在 U 盘中创建一个 Windows 8.1 系统,并在目标电脑上运行,而不会影响目标电脑上的系统。增添了针对设备、身份、应用和敏感企业信息的现代安全威胁的高级功能。主要在专业版基础上增加了专门为大中型企业需求开发的功能,适合企业用户使用。

Windows 10 专业版

这是许多电脑爱好者钟爱的版本。除了包含在家庭版中的应用外,还增加了安全和办公类功能。使用户能够管理设备和应用,保护敏感的企业数据。支持远程和移动办公,利用云计算技术。还有 Windows Update for Business 等。专业版也面向个人电脑用户,相比家庭版略微更强大,并且适用于大屏平板电脑、笔记本电脑、PC 平板二合一设备等桌面设备。

Windows 10 移动版

主要面向移动设备,例如手机。可使用 Continuum 功能。包含 Win10 家庭版的 Edge 浏览器和全新触摸版的 Office。

Windows 10 教育版

基于企业版开发,专门满足学校教职员工、管理人员、教师和学生的需求。这是 Windows 首次推出的教育版。专为大型学术机构设计。具备企业版中防范设备、身份、应用和敏感企业信息的先进安全功能。通过面向教育机构的批量许可计划提供给客户。

Windows 10 移动企业版

面向大规模企业用户推出的移动版。适用于需要管理大量 Win10 移动设备的企业。增加了新的安全管理选项。除了具备企业版功能外,还允许用户控制系统更新过程。

Win10 物联网核心版

定位于小型、低成本设备,专注物联网。主要用于零售终端、手持终端和工业机器人,将运行Windows 10企业版和Windows 10移动企业版。

总结

不同用户身份,选择对应的版本即可。各个版本之间,是功能递进的方式,其中,教育版是最全面的一个版本,基于企业版开发。一般我们教育版的即可;


星期二, 六月 15, 2021

深度解读Apache License 2.0及其使用方法

星期二, 六月 15, 2021 0 Comments

一张ai生成具有多个文件的文件夹图片
开源授权内容详解

LICENSE 许可证,使用什么许可证,表示你遵循这个许可证授权方式。

什么是License

许可证混乱就始于你不知道License到底是什么,到底有什么含义。当你对你的产品使用License时,并不意味着你放弃了任何权利,你依然对其拥有原著作权。License只是授予他们于特定权利来使用你的产品。

License只是把你的作品释放到公有领域,或者给各个拷贝赋予权限。也意味着你放弃了版权收入,别人也没有义务把你列为原作者或贡献者。

开放源代码许可协议更容易为他人作出贡献,而不必寻求特别的许可。它也可以保护你作为原创者的权利,至少确认了你的贡献。它还可以保证你的工作不为别人所剽窃。

使用Apache License 2.0 许可证

在项目中放入LICENSE文件,一般Github 仓库建立的时候,会直接选择这个证书。

本项目使用 Apache License 2.0 (opens new window)协议,请严格遵照协议内容

具体的作用

1)如果你修改了代码,需要在被修改的文件中说明。

2)在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。

3)如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

4)Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售

5)你可以修改包名或类名,但还请保留文件中的版权和作者信息。

用一句话概括Apache License就是,你可以用这代码,但是如果开源你必须保留我写的声明;你可以改我的代码,但是如果开源你必须写清楚你改了哪些;你可以加新的协议要求,但不能与我所公布的协议要求产生冲突;你用这代码干什么我不管,但是你不能让我承担任何责任。

各种开源协议的不同之处对比

开源协议.png

根据授权方式和使用方式特性,进行划分源代码,添加对应的协议即可。

中文翻译网站:https://qastack.cn/software/19649/copyright-notices-disclaimers-in-source-files

通常会在源文件中放置版权声明和法律免责声明,有时甚至在开源项目的每个源文件中都有完整的许可协议。

一般也会在每个源文件中放置协议说明。如下!

Copyright [yyyy] [name of copyright owner]

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

具体的使用方式

详细解释各个协议内容和如何使用,参考:https://opensource.org/licenses

image-20210614233534831

image-20210614233550800

Copyright [yyyy] [name of copyright owner]

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

这是Apache License 2.0 用法。将代码文字以注释的形式,张贴复制到每个代码文件中即可。

如何使用Apache License 2.0 许可证

1)建立项目的 使用使用git 添加LICENSE 许可证。

2)在每个源代码的添加上以上格式。

参考

[1] https://bbs.huaweicloud.com/forum/thread-68115-1-1.html

[2] www.ruanyifeng.com/blog/2017/10/open-source-license-tutorial.html

[3] https://softwareengineering.stackexchange.com/questions/19649/copyright-notices-disclaimers-in-source-files

[4] https://softwareengineering.stackexchange.com/questions/125836/do-you-have-to-include-a-license-notice-with-every-source-file