国产 RISC-V 处理器“香山”已成功运行 Linux

22号下午关于香山的报告,因为Zoom直播出现了技术故障,导致大家未能听到完整的报告,稍有些遗憾。考虑了一下,这里就把报告PPT直接贴出来,再加上我们在香山开发过程中的一些考虑和想法,跟大家分享。

%title插图%num

这个报告主要回答四个问题:

  • 一、为什么要做香山?
  • 二、香山什么水平?
  • 三、香山怎么做的?
  • 四、香山未来如何发展?

%title插图%num

一、为什么要做香山?

2010年RISC-V诞生,迄今已有11年。如今,在RISC-V国际基金会网站上登记的各类商业或开源的RISC-V处理器核就有上百个(如下链接),为什么还要做一个开源的高性能RISC-V核?

RISC-V Exchange: Cores & SoCs – RISC-V International

对于这个问题,我们和很多业界企业交流过,也做了很多调研与分析,这都让我们判断认为业界需要一个开源的高性能RISC-V核。另一方面,我们也在思考一个问题——为什么CPU领域还没有一个像Linux那样的开源主线?1991年开源的Linux诞生,到今天正好30年。如今,Linux不仅被工业界广泛应用,也成为学术界开展操作系统研究的创新平台。

RISC-V是开放开源的指令集,允许全世界任何人免费实现一个RISC-V处理器,可以是商用,也可以开源,这是和公司私有的X86/ARM指令集相比*大的区别之一。但是,十年过去了,到现在还未能形成一个像Linux那样的开源主线。Berkeley的BOOM目标是一个高性能开源RISC-V核,但是BOOM代码仓库相对不开放,官方建议其他人实现任何功能都要事先和他们沟通,以确保不要与他们的计划产生冲突。根据GitHub官方的统计页面显示,从2014年1月至今,为BOOM提交过超过100行代码修改的仅有8人。由此可见,一定程度上因为BOOM严格的外部贡献政策,开源社区对BOOM的参与度并不高。

所以,团队的唐丹博士和我一直认为要建立一个像Linux那样的开源RISC-V核主线,既能被工业界广泛应用,又能支持学术界试验创新想法。*关键的是,一定要让它像Linux那样至少存活30年!

于是,“香山”诞生了。

%title插图%num

我们做了一年多的准备工作——申请经费,启动“一生一芯”计划培养人才,建立团队,寻找合作伙伴……这期间得到了太多太多人的支持和帮助:计算所孙凝晖院士帮我们多处找经费,国科大全力支持“一生一芯”计划,鹏城实验室支持我们建立起后端物理设计团队,多位计算所老所友毅然决定参与开源主线等等,就不一一列举了。

终于,香山正式启动了——2020年6月11日,香山在GitHub上建立了代码仓库。

短短的的一年时间里,25位同学和老师参与了香山的开发。821次主分支代码合并,3296次代码提交(commit),5万余行代码,400多个文档,记录了香山的成长过程。我们的理念是代码开源、流程开放、文档公开。这期间,有企业直接参与开发,也有企业表达参与意向,都因为认同开源理念,愿意一起来共建开源的香山。这些来自工业界的积*反馈,给予我们*大的鼓舞和信心,让我们更坚定地去践行“科研重工业模式”。

“科研重工业模式”,是 2020年1月我为《中国计算机学会通讯(CCCF)》写了一篇卷首语《伯克利科研模式的启发》中提出的:

袁岚峰:CCCF卷首语 :伯克利科研模式的启发 | 包云岗

回顾伯克利的科研历程,可以发现他们在过去几十年研制了大量的原型系统,不仅推动了技术进步甚至颠覆产业,也培养了一代代杰出人才(其中多位获得图灵*):1950年代CALDIC系统(Doug Englebart),1960年代Project Genie系统(Butler Lampson与Chuck Thacker),1970年代BSD Unix操作系统与INGRES数据库系统(Michael Stonebraker),1980年代RISC处理器(David Patterson),1990年代RAID存储系统与NOW机群系统……如果用一句话来总结伯克利的科研模式,那就是——热衷于研制真正能改变现状的原型系统,哪怕需要大量工程投入。国重主任孙凝晖院士称之为“科研重工业模式”。

“科研重工业模式”,我们不想纸上谈兵,我们要用行动去实践。

%title插图%num

%title插图%num

二、香山什么水平?

香山是一款开源RISC-V处理器核,它的架构代号以湖命名。*版架构代号是“雁栖湖”,这是带有浓重国科大情节的同学们起的名字,因为他们研一都在怀柔雁栖湖待了一年。“雁栖湖”RTL代码于2021年4月完成,计划于7月基于TSMC 28nm工艺流片,目前频率为1.3GHz。

第二版架构代号是“南湖”,这是向建党100周年致敬。“南湖”计划在今年年底流片,将采用中芯国际14nm工艺,目标频率是2GHz。

%title插图%num

香山选择什么开源许可证?这个问题纠结了我们好一阵子。后来,我们专门向北京大学周明辉教授请教,小伙伴们制定了4种开源许可证方案。在反复对比权衡后,*终选择了如下表格中的方案①——木兰宽松版许可证(MulanPSLv2)。在此,特别感谢北大周明辉老师的专业指导!

%title插图%num

开源许可证方案对比(徐易难整理)“雁栖湖”架构是一个11级流水、6发射、4个访存部件的乱序处理器核。在发射宽度上已经可以和一些ARM高端处理器核相当,但还未进行充分优化,因此实际性能还有不小的差距。我们希望未来通过持续迭代优化(“南湖”–>”X湖”–>”Y湖”–>……),性能达到ARM A76的水平。

%title插图%num

我们基于GitHub CI构建了一套流程化的自动回归测试框架,并在过去大半年不断增加测试负载,从cputest,risc-tests到Linux,到SPECCPU workload。这套自动回归测试框架在保障和验证芯片的正确性。

%title插图%num

每个大项目总会有一些激动人心的时刻,这段30秒的小视频记录了香山在FPGA上启动Linux/Debian的时刻,略带喜感。

视频链接:香山在FPGA上启动Linux/Debian

(https://www.zhihu.com/zvideo/1390842319982120960)

%title插图%num

三、香山怎么做的?

香山开发初期速度非常快:6月11日建立代码仓库,7月6日乱序流水线便已完成,能正确运行CoreMark,不到一个月时间;9月12日,Linux正确启动10月22日,Debian正确启动。

接下来便是大半年的结构优化、性能调优、时序优化工作,香山架构几乎相当于重构了一遍。一个典型的例子,香山的*版分支预测器(BPU)参考了BOOM的BPU,但后端评估频率只能达到800MHz(TSMC 28nm)。于是负责BPU设计的勾凌睿在几位老师的指导下,不断优化BPU结构,*终将频率提升到了1.4GHz。

这期间,小伙伴们纷纷自己动手,开发了各种各样的优化和调试工具,大大地加速了优化和验证环节。这让我真心佩服这批90后——他们真是充满了创造力,从工作到生活,而主要驱动力之一就是“省(tou)时(lan)”。比如宁可自己写个程序自动点外卖,也懒得打开手机看菜单点。

%title插图%num

香山的开发至少有两个重要的决策,*个便是选择敏捷设计语言Chisel。很多人质疑Chisel,排斥Chisel,但是我们在充分评估后,还是决定使用Chisel。

我们团队是在2016年开始使用Chisel,一开始组里也充满质疑。2018年,我们设计了两组定量的对比实验,找了2位同学用Chisel、1位工程师用Verilog分别设计一个L2 Cache模块。通过一系列量化对比,得出了如下三个结论:

  1. Chisel开发效率远高于Verilog;
  2. 实现相同的功能,Chisel代码量仅为Verilog的1/5(因此香山的5万行Chisel代码相当于25万行Verilog代码);
  3. Chisel的开发质量不比Verilog差。

后来将实验结果发表在2019年1月的《计算机研究与发展》。*近去华为交流,才知道这些对比结果也推动了华为内部组建了Chisel开发团队,如今华为也是Chisel的支持者。

2020年,我们又基于Chisel完成了一款8核标签化RISC-V处理器的流片,这是基于Rocket处理器核进行了标签化体系结构改造,采用TSMC 28nm工艺流片。虽然因为时间紧张,并没有进行细致的后端优化,但芯片返回后也还能正常运行在1.2GHz。这是一颗有一定复杂度的8核SoC芯片,但Chisel能应对。所以,我们相信Chisel可用来开发复杂芯片。

%title插图%num

在开发香山的过程中,我们团队积累了丰富Chisel开发经验。小伙伴们(徐易难、王凯帆、蔺嘉炜、余子濠、金越)准备了6个报告,将会在6月25日的CCC Workshop上和大家分享。

%title插图%num

另一个重要决策就是高度重视构建支持敏捷设计的流程与工具。

%title插图%num

我们在开发香山的过程中,一直在强调流程、平台、基础设施的重要性。我更多是扮演了啦啦队队长的角色,而小伙伴们则真正将理念落实到了具体行动。

%title插图%num

为了更好地支持Chisel开发与调试,为了更快地捕捉、复现和定位bug,为了更准确地评估优化技术的性能收益,小伙伴们开发十余种各具特色的工具。这些工具支撑起了一套处理器芯片敏捷开发的流程。当然,这套流程还比较初级,尚不系统化。我们也期待更多的开源开发者加入,一起完善这套敏捷设计流程。

%title插图%num

下面举几个工具的例子。NEMU是由余子濠在南大本科时便开始开发的一款教学模拟器。在计算所读博期间,他凭借一人之力一直在持续改进和优化NEMU,使NEMU成为一个效率接近QEMU的高性能解释器——启动Debian甚至比QEMU还要快18.2%(9.87s vs. 12.07s)。

更重要的是NEMU是指令解释器,可以针对每一条指令进行动态分析;相比而言,QEMU的翻译粒度是基本块,无法跟踪每一条指令。事实上,NEMU的这种指令解释器机制,成为了香山开发中正确性验证框架Difftest的基础。(余子濠将会在6月23日下午介绍NEMU)

%title插图%num

Cache是处理器中非常核心的模块,尤其是要支持一致性协议的Cache更为复杂。为此,小伙伴们开发了一套专门验证支持TileLink一致性协议的Cache模块测试框架Agent Faker,发现了好几个Cache模块的bug。(张传奇将会在6月25日上午介绍这个工作)

%title插图%num

Difftest是一个基于NEMU的指令集在线差分验证框架。它的一端是模拟器,提供处理器执行的黄金标准;另一端是运行RTL的仿真器,在仿真过程中会将指令数、中断、MMIO、微结构状态等信息发送给NEMU进行比对,从而判断RTL实现的正确性。

Difftest*早是由余子濠实现,后来王凯帆进行优化,其中一个*重要的改进就是SMP-Difftest,支持多核SMP的全系统仿真,并且支持Cache一致性、内存一致性等需要软硬件协同的问题。(王凯帆将会在6月24日下午介绍Difftest)

%title插图%num

如何快速捕捉、复现、定位bug是调试过程中非常关键的步骤,很多时间都是消耗在这个阶段。小伙伴们提出了一种创新的轻量级仿真快照技术——把整个仿真程序看成是一个进程,利用fork机制创建子进程。然后父进程继续执行,子进程暂停。当父进程出错时,则可以恢复到子进程进行调试。LightSSS这个机制和Verilator仿真器自带的Savable机制相比,单次快照时间缩短了近7000倍!(余子濠将会在6月23日下午介绍LightSSS)

%title插图%num

很多人质疑Chisel不方便调试。小伙伴们则充分利用了Chisel的可以自定义Firrtl Transform的特点,设计了一套新型的硬件敏捷调试栈,可将基于波形的调试转换为基于事件的调试。我们设计了一套工具,可以直接将高层语义新型从波形中提取出来,并进行可视化。为此,还专门设计了一个Xiang语言。(蔺嘉炜将在6月23日下午介绍该工作)

%title插图%num

处理器性能优化环节*关键是要快速准确地评估优化技术带来的性能收益。如果评估过程需要几天时间,那将会严重影响迭代优化效率。小伙伴们设计了一个敏捷性能评估框架BetaPoint,它利用了三个机制——Sampling机制、Generic Full System Checkpoint机制和Functional Warmup机制,实现了可以在10个小时内估算出处理器的SPEC分数。(周耀阳将会在6月23日傍晚介绍BetaPoint)

%title插图%num

整个香山开发团队将在这次峰会上和大家分享22个技术报告。这些报告都是清一色的90后,很多都是95后:勾凌睿、胡博涵、金越、李昕、刘志刚、蔺嘉炜、王华强、王诲喆、王凯帆、徐易难、余子濠、张传奇、张发旺、张林隽、张紫飞、张梓悦、周耀阳、周意可、邹江瑞;此外还有多位参与香山开发的同学这次并没有投稿。这些小伙伴们在香山的开发过程中做出了不可替代的贡献。

%title插图%num

%title插图%num

四、香山未来如何发展?

目前香山正在进行下一代架构“南湖”的开发,目标是今年年底流片,基于中芯国际的14nm工艺频率达到2GHz,SPECCPU分值达到10分/GHz。这是一个很有挑战的目标,需要对架构进行大幅度的优化改进。

前几天,小伙伴们专门去了一趟嘉兴南湖,研讨香山未来的发展。除了技术,我们再一次聚焦到流程与平台。此前构建的敏捷设计流程与平台支撑了20多人的开发团队,这远远不够。现在我们需要考虑的是该如何构建一套开源、开放、规范的开放流程,能支撑2000人的开源社区一起开发。

支持成千上万人一起开发开源软件,这已经有成功的经验。但是如何支持数千人一起开发开源处理器,目前还没有可以参考的案例,只能靠我们自己摸索。也期待各界专家给我们更多的指导和建议。

%title插图%num

我们有一个愿望——希望“香山”能存活30年;我们有一个约定——30年后再一起聚聚,到时再看看香山会变成什么样。但是,要实现这个愿望,还有很多很多问题和挑战需要去解决。

真诚地期待有更多伙伴加入香山的开发队伍!

%title插图%num

香山是在中科院计算所、鹏城实验室的支持下,通过中国开放指令生态(RISC-V)联盟联合业界企业一起开发一款开源高性能RISC-V处理器核,也得到了北京智源人工智能研究院的支持。在此,要特别感谢北京微核芯公司的资深专家给予香山的开发强力的支持,他们非常认同开源理念,也是*家与香山联合开发的企业。很高兴“南湖”架构的开发有了更多的合作伙伴,感谢对香山的支持。

欢迎联系我们一起加入香山开源社区!

%title插图%num

%title插图%num

%title插图%num

  1. ☞新iPhone有望首次加入屏下指纹解锁;小米 11推送“降温”补丁;McAfee杀毒软件创始人死于巴塞罗那监狱中|*客头条☞华为、百度、小米踏上造车新征程,软件如何吞噬汽车?
  2. ☞iOS 又出重大Bug!一秒搞崩 iPhone 的网络连接功能

终于找到了在虚拟机下体积不超过 2G 的桌面 Linux 系统!同时有几个小问题

antiX linux,之前一直没尝试它是因为它的名字让我以为这个系统是没有桌面的….这两天用它的 net.iso 在虚拟机下面安装好一个将就能用的 xfce4 桌面,包含 vbox-guest-x11 在内体积只有 1.5G !这可是一个以 debian stable 为基础的、正常的 linux 桌面系统!比 alpine 、puppy 、slax 那些邪魔歪道好太多了!

不过太简陋的桌面就自然有一些小问题,先来两个:

1,普通用户登陆进桌面,无法关机和重启,shutdown 、suspend 、switch user 这三个按钮都是灰的,还需要安装哪些软件包后者设置哪些地方好让这三个按钮起作用?

2,虚拟机和主机之间共享剪切板是 OK 的,但是共享文件夹有问题,设置了主机的 /tmp 共享进虚拟机挂载为 /ttmp,普通用户登陆后可以在文件系统里面看到 /ttmp 文件夹,但是无法访问,“permission denied”,如果以 root 登陆的话可以进入这个 /ttmp,但是看不到任何文件,主机的 /tmp 里面可是很多临时文件和文件夹的,一个都看不到也太奇怪了吧?请问这是哪里的问题?
桌面 ttmp 文件 Linux11 条回复 • 2021-06-26 15:07:50 +08:00
hefish 1
hefish 7 小时 49 分钟前
arch 也超过 2G 了吗?确实没注意这个容量问题。
avastms 2
avastms 7 小时 4 分钟前 via Android
以前那些 live cd 哪个超过 700m 了
podel 3
podel 6 小时 46 分钟前
难道不是应该不要界面直接终端操作么?这样更小
oott123 4
oott123 6 小时 26 分钟前 via Android
我应该能回答 2:/tmp 目录比较特殊,有 sticky bit 权限在,虚拟化软件可能并非使用 root 启动进程,因而看不到文件也是正常的。
totoro625 5
totoro625 6 小时 25 分钟前
纯终端操作的 Debian 莫名其妙用掉了 3.65G
两台 VPS 分别用掉了 4.6G ; 5.4G
都是安装了 docker/frp/clash
终归就是莫名其妙的体积就上去了
mxalbert1996 6
mxalbert1996 4 小时 13 分钟前 via Android
@totoro625 试试 docker system prune
felixcode 7
felixcode 3 小时 57 分钟前 via Android
debian *小化安装,再装个 xfce 应该大不到哪去,2G 以内很正常
snoopyhai 8
snoopyhai 3 小时 54 分钟前
lubuntu 印象中这个也不大把?
kerro1990 9
kerro1990 3 小时 51 分钟前
Linux mint
hgjian 10
hgjian 1 小时 8 分钟前 via Android
Lubuntu 欢迎你

way2create 11
way2create 6 分钟前
既然虚拟机了 我都是*小化安装 桌面版占用太大了

linux–exec命令

shell的内建命令exec将并不启动新的shell,而是用要被执行命令替换当前的shell进程,并且将老进程的环境清理掉,而且exec命令后的其它命令将不再执行。

因此,如果你在一个shell里面,执行exec ls那么,当列出了当前目录后,这个shell就自己退出了,因为这个shell进程已被替换为仅仅执行ls命令的一个进程,执行结束自然也就退出了。为了避免这个影响我们的使用,一般将exec命令放到一个shell脚本里面,用主脚本调用这个脚本,调用点处可以用bash a.sh,(a.sh就是存放该命令的脚本),这样会为a.sh建立一个sub shell去执行,当执行到exec后,该子脚本进程就被替换成了相应的exec的命令。
source命令或者”.”,不会为脚本新建shell,而只是将脚本包含的命令在当前shell执行。
不过,要注意一个例外,当exec命令来对文件描述符操作的时候,就不会替换shell,而且操作完成后,还会继续执行接下来的命令。
exec 3<&0:这个命令就是将操作符3也指向标准输入。
别处,这个命令还可以作为find命令的一个选项,如下所示:
(1)在当前目录下(包含子目录),查找所有txt文件并找出含有字符串”bin”的行
find ./ -name “*.txt” -exec grep “bin” {}
(2)在当前目录下(包含子目录),删除所有txt文件
find ./ -name “*.txt” -exec rm {}

原来 Linux 内核贡献第二是这么来的

原来 Linux 内核贡献第二是这么来的
27 labulaka521 · labulaka521 · 4 小时 38 分钟前 · 9803 次点击
%title插图%num

Linux 内核 贡献 原来139 条回复 • 2021-06-21 16:46:18 +08:00
1 2
2
❮ ❯
ohwind 101
ohwind 1 小时 47 分钟前 ❤️ 2
@Iserlohn44 这贴下面的不都在讨论这个事?贡献无用代码增加工作量不能嘲讽两句吗?我觉得这种不道德的行为应该被谴责。
Samuelcc 102
Samuelcc 1 小时 46 分钟前 via Android ❤️ 1
@hwdef 你一直让我回答你的问题,我如实回答,没有任何说我“高大上”的意思。是的,大部分开发者没有给 linux 这样的核心项目提交过代码,你就咬定这一点就可以随便喷人了是吗?
另外我发 issue 是有具体的解决方案的,不是只提出问题让开发者去解决。另外这也是开源社区的一部分,我也没有看到哪个大型项目维护者辱骂提出 issue 的人,称他们恶心。你又是在那个位置和立场在这里怒骂呢?
另外我一直觉得你阅读是不是有障碍,邮件中并不是说这类 pr 是违反规则的,而是说华为这种大型公司不应该一直以提大量这种没有技术含量的 pr 来刷 kpi 。你好像一直没理解,令人遗憾。
wuqingdzx 103
wuqingdzx 1 小时 43 分钟前 ❤️ 1
有一说一. 这人及类似行为确实问题很大, 可耻.

但我觉得吧, 上升到公司层面的话, 在注水比例不明确之前, 不至于这么高潮吧?
washbrain 104
washbrain 1 小时 43 分钟前
看了下知乎,有一种可能是华为内部在做代码质量优化,作者可能是修改了公司内部的 linux 版本然后同步到上游?当然提交的方式不太正确
感觉还是有受公司政策影响的
Iserlohn44 105
Iserlohn44 1 小时 40 分钟前
@ohwind 你是不是理解不了什么叫「就事论事」?还有你仿佛只会二分的逻辑,实在让人无语。
ladypxy 106
ladypxy 1 小时 38 分钟前
有一说一,这种明显就是刷 KPI 的。
像我在某血汗工厂,公司会看你写了多少 CR 。然后大家就就故意一个 CR 修复一个 typo…虽然明明是一个 CR 搞定的事
hwdef 107
hwdef 1 小时 34 分钟前
@Samuelcc

我觉得你先开喷的,你觉得我先开喷的,

我们对于“喷”的定义不同,没必要讨论了。
atwoodSoInterest 108
atwoodSoInterest 1 小时 31 分钟前
子贡赎牛,老典故了。利益不是罪恶,合理利用利益来导向世界才是正解。

其实题上这种拍桌而起的都是内心干净的人,但是这种干净却又和世界无序脏乱冲突,变成了清厉。
我能理解这种人,因为我也深陷其中,至今仍在挣扎。
但是为社会为国为世界,不是他们这种偏执的人能胜任的,需要更有容量更有眼界的人。
ohwind 109
ohwind 1 小时 28 分钟前 ❤️ 8
@Iserlohn44
>就事论事,读音是 jiù shì lùn shì,汉语成语,依据事情本身的情况来作评论或判断。现又指仅从事物的表面现象孤立、静止、片面地议
以及究竟是谁只会二分?
一,华为是否做了这件事?做了。
二,这种行为是道德的吗?不道德。
三,针对这种行为可以谴责嘲讽吗?不道德的行为我认为嘲讽几句无关紧要。
请问是谁没有就事论事?
yukiww233 110
yukiww233 1 小时 27 分钟前
之前的 commit 还挺正常的啊…
2021 之后就几乎全是 fix error return code, Remove redundant, fix spelling 和 reformat , 分布还很均匀, 是 kpi 要求没跑了

shuAS 111
shuAS 1 小时 21 分钟前 ❤️ 1
刚一打开帖子看评论,我还以为进到品葱了呢?
idealhs 112
idealhs 1 小时 20 分钟前
@atwoodSoInterest 赎人受牛。
你想表达的是,华为的 KPI 导向有问题是吗。
lakehylia 113
lakehylia 1 小时 19 分钟前
想起了新的 HR 以代码量来评价工作量,于是就有了各种斗法
GalaDOS 114
GalaDOS 1 小时 14 分钟前
already broken reputation 很刺眼呀
Iserlohn44 115
Iserlohn44 1 小时 12 分钟前
@ohwind 原来在你看来无意义的嘲讽,而不是针对事情本身发出有建设性的评论也是就事论事。那确实不用聊了。
其次,你居然真能问出「究竟是谁只会二分」?不会看看自己的发言 – 「只许夸了是吧」?
nicevar 116
nicevar 1 小时 10 分钟前 ❤️ 4
总有些人逮住华为一丁点东西就能嘲讽整个华为甚至上升到民族和国家,脑袋被驴踢过一样,这个地方很多人黑华为已经没有下限了。
phh 117
phh 1 小时 4 分钟前 ❤️ 24
说黑华为没有下限的,那是因为你们吹华为没有底线让人家反感了,遭到反噬了,什么东西都要吹嘘上升到民族高度,先有华为后有天的话都敢说。
ohwind 118
ohwind 1 小时 1 分钟前
@Iserlohn44 对这件事建设性的评论就是这种行为十分无耻以及十分可恶,不然要怎么评论?说他干的好?讨论它的合理性?
对基本是非没有自己的判断,见不得别人对自己维护的产品的批评,这和娱乐圈玩的那一套有何区别?
或者你认为把别人的批评说成“高潮了”是富有建设性的?
dustinth 119
dustinth 57 分钟前
比较好奇这个帖子里面有没有华为的. 哈哈.
做错事就认, 没有做错事, 没有刷 KPI, 理直气壮的就怼回去好了.
turi 120
turi 56 分钟前
提到华为,一帮人就想到国家。

厉害了
sunocean 121
sunocean 55 分钟前 ❤️ 10
@nicevar 华为跟国家和民族有什么关系?你这帖子是想表达什么呢?一个公司做错事了,大众批评他就叫黑吗?一般认为,有事实有依据的事儿叫批评指正,无端臆造才叫黑。你无端把一个没有道德底线的公司和一个国家和民族捆绑在一起,我们有理由怀疑你脑袋被驴踢了,在黑这个国家,黑这个民族。
baiyi 122
baiyi 55 分钟前
华为用这种方式刷成贡献第二也是真的丢人,这样刷 KPI,公司有问题,人也有问题
ohwind 123
ohwind 54 分钟前
@Iserlohn44 请您正面回答我的问题。
1,“有些人真的高潮了,终于找到了喷点了哈哈”这句话是否是在就事论事,是否是在提出”建设性的评论”?
2,对于这种不道德的行为楼下的嘲讽和批评是否是理所应当的?
3,对于[1]的不友好发言我反驳”只允许夸了是吧”是否是在就他的评论”就事论事”?
ugly 124
ugly 48 分钟前
我真的很烦说讲不买华为不爱国思想的人,这事本来就是一群爱国的人在网上表示自己支持中国支持国产,被一群不在乎爱不爱国的人放大成恶心,嘲讽。
Iserlohn44 125
Iserlohn44 47 分钟前
@ohwind 你看,指出你发言的问题就给说成了「对基本是非没有自己的判断」。稍微说句不好听的,你也太把自己当回事了。
twor2 126
twor2 43 分钟前
@ohwind 我知道哪里别扭了,逻辑错在哪里了
因为是华为的错(或者华为某些人),但你嘲讽的不是华为
yigecaiji 127
yigecaiji 41 分钟前
明明我们在嘲讽华为,怎么有人直接上升到民族和国家了
yunshansimon 128
yunshansimon 38 分钟前
华为干得好,什么道德之类的,都是西方国家制定的标准,作为强大如华为者,作为中国的代表,就是要打破西方制定的道德标准和底线,坚持填充垃圾,就是不改。看到华为这么流氓,我们中国人民就放心了!希望广大爱国程序员也学习华为,为华为的项目多多贡献垃圾!为建设伟大华为贡献自己的力量!
ohwind 129
ohwind 36 分钟前 ❤️ 1
@Iserlohn44 一边要求别人「就事论事」,一边回避我的提问,一边对我进行攻击。想必双重标准不外如是吧?我想孰是孰非已有结论,我们两个的讨论就此终止,我也不愿意与你浪费电力。
ioriwong 130
ioriwong 33 分钟前
无耻则无敌
polo3584 131
polo3584 29 分钟前
本来说的是 leizheng 这个开发者,然后就上升到了华为,然后上升到了国家和民族,真有意思。
libook 132
libook 27 分钟前
开源社区也是一个项目团队。

从项目管理的角度上来说,几乎所有问题都可以通过约定规则、流程来解决,所以有问题应该讨论一下:
1. 问题是否实际存在?
2. 影响范围如何?
3. 可以约定什么样的规则、流程来解决和避免这个问题?

华为员工有目的不纯的动机,邮件发送者也有“言外之意”的嫌疑(毕竟邮件里只有无证据的指控,而缺乏建设性)。

如果后续邮件没有人出来按照一个项目问题的正常解决流程来协调解决的话,那么项目管理本身可能是这个社区目前*大的问题。
zchlwj 133
zchlwj 27 分钟前 ❤️ 1
@phh 先有华为后有天的话 我在你这里*次看到
Iserlohn44 134
Iserlohn44 26 分钟前
@ohwind 不好意思,并非回避问题,而是没有看到你的第二条回复。我的上一条回复是针对你的 118 号评论。
针对你的问题:
1. 当然不是;
2. 无意义的嘲讽不应当,有道理的批评当然是应当的;
3. 并不是。用无逻辑去回应无逻辑,不代表你就是对的。

我发现你似乎把指出你的发言问题等价成了认为华为这件事做的对,甚至延伸到了「对基本是非没有自己的判断」,你不觉得太自以为是了吗?
tt67wq 135
tt67wq 22 分钟前
国内公司做开源的态度都有点问题,为了 KPI 一哄而上,KPI 有了就不维护了
miniwade514 136
miniwade514 21 分钟前
建议送进本站的精华版块(水深火热)
manzhiyong 137
manzhiyong 12 分钟前
这个作者真是丑陋,辱骂未开源提供贡献的人。
fanlis 138
fanlis 10 分钟前 ❤️ 1
进来看到前几排,以为进入 4V 社区
喷华为可以,随便喷,不要扯着你的破脸阴阳怪气中国,搁谁看不出来?
nmecury 139
nmecury 3 分钟前
@hwdef 我是某大型项目的使用者,用的时候发现了隐蔽的严重 bug,又不会修,只好提了个 issue,被打了 high-priority 的 tag,然后在大版本更新里被修复了。能不能请您说说我怎么恶心了?啥时候开源社区出了您这么一号大人物?

16 岁高中生成功将 Linux 移植到 iPhone,并贴出详细指南

如果你的旧 iPhone 已经无法支持你日常使用了,你会怎么处理这部 iPhone 呢?卖掉还是留起来收藏呢?近日,国外一名 16 岁的小开发者在 YouTube 上发布了一则视频,展示了自己是如何将 Linux 移植到一部无法使用的 iPhone 7。

2020 年 3 月,Corellium 提出了 Project Sandcastle,通过使用 checkra1n 越狱程序在 iPhone 上成功运行 Android,激发了开发者对那些旧型号的 iPhone 进行“改造”的热情。此后,很多开发者尝试对自己的旧设备进行“改造”,试图将 Linux 发行版移植到那些旧型号的 iPhone 上,为这些本该“吃灰”的设备延长寿命。

近日,国外一名 16 岁的小开发者 Daniel Rodriguez 成功地将 Linux Ubuntu 20.04 移植到了 iPhone 上。

图片

图片来源于 xda-developers

据 Daniel 介绍,他使用的 iPhone 7 是他外婆的,这部设备已经完全无法访问 NVMe NAND,这意味着这部设备已经无法再运行 iOS 系统,就是大家常说的“变砖”,不过这部 iPhone 7 的硬件设备没有任何故障和损坏,于是 Daniel 拿来了这部手机,准备将它改造一番。

Daniel 参考并使用了 checkra1n,linux-sandcastle,projectsandcastle 等开源项目,同时自己编写了网桥设置 script/udev 规则来实现这一复杂的工作。*终成功地在这部 iPhone7 上运行了 Ubuntu 20.04。

Daniel 还在 Reddit 上分享了一份十分详细的指南,说明自己是如何成功制造出这部「iPhone 7 Ubuntu Edition」,有经验的开发者甚至可以直接按照该教程进行操作。而对于没有经验的用户,过程就会相对繁琐了不少,因为需要开发者事先手动编译内核并使用 checkra1n 访问 pongoOS 引导前执行环境。有兴趣的小伙伴可以移步 Reddit:

SUCCESS: iPhone 7 with dead NAND netbooting unmodified Ubuntu 20.04 arm64 over usb gadget ethernet
byu/newhacker1746 inlinux

Daniel 表示,他自己在家里搭建了一组服务器,用于运行自己的俱乐部网站和游戏服务器。现在,他把改造后的 iPhone 7 当作一台服务器用来分担他的服务器的负载。而 iPhone 7 的 A10 芯片也发挥出了超乎 Daniel 想象的性能。

尝试将 Ubuntu 移植到 iPhone 7 上并不奇怪,因为该 Ubuntu 系统对于 Linux 内核并不陌生。此前的 postmarketOS 项目就是将 Linux 引入 iPhone 7 和 iPhone 7 Plus。虽然在 iPhone 上安装像 Ubuntu 这样的 GNU / Linux 发行版不会给用户带来与 iOS 相同的使用体验,但将旧设备改造并成功运行 Linux 无疑是一件很酷的事情。

他将改造成功的经历和指南发布到 Reddit 上后,迅速引发了广大开发者和用户的关注,很多用户称他为「天才」,不过 Daniel 却很谦虚,他表示,“这些都应该归功于 Corellium、checkra1n 项目的开发人员、Linus Torvalds 以及 Linux 内核的所有贡献者、Ubuntu 和 Debian 维护者等等。他们是为这个项目制作所有作品的真正英雄,而我只是恰好在 iPhone 上组装了这些前辈们留下的拼图。”

为什么服务器大多使用Linux?

1.开放性 开放性是指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可方便地实现互连。

2.多用户 多用户是指系统资源可以被不同用户各自拥有使用,即每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。Linux和Unix都具有多用户的特性。

3.多任务 多任务是现代计算机的*主要的一个特点。它是指计算机同时执行多个程序,而且各个程序的运行互相独立。Linux系统调度每一个进程,平等地访问微处理器。由于CPU的处理速度非常快,其结果是,启动的应用程序看起来好像在并行运行。事实上,从处理器执行一个应用程序中的一组指令到Linux调度微处理器再次运行这个程序之间只有很短的时间延迟,用户是感觉不出来的。

4.良好的用户界面 Linux向用户提供了两种界面:用户界面和系统调用。Linux的传统用户界面是基于文本的命令行界面,即shell,它既可以联机使用,又可存在文件上脱机使用。shell有很强的程序设计能力,用户可方便地用它编制程序,从而为用户扩充系统功能提供了更高级的手段。可编程Shell是指将多条命令组合在一起,形成一个 Shell程序,这个程序可以单独运行,也可以与其他程序同时运行。 系统调用给用户提供编程时使用的界面。用户可以在编程时直接使用系统提供的系统调用命令。系统通过这个界面为用户程序提供低级、高效率的服务。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。

5.设备独立性 设备独立性是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。 具有设备独立性的操作系统,通过把每一个外围设备看作一个独立文件来简化增加新设备的工作。当需要增加新设备时、系统管理员就在内核中增加必要的连接。这种连接(也称作设备驱动程序)保证每次调用设备提供服务时,内核以相同的方式来处理它们。当新的及更好的外设被开发并交付给用户时,操作允许在这些设备连接到内核后,就能不受限制地立即访问它们。设备独立性的关键在于内核的适应能力。其他操作系统只允许一定数量或一定种类的外部设备连接。而设备独立性的操作系统能够容纳任意种类及任意数量的设备,因为每一个设备都是通过其与内核的专用连接独立进行访问。 Linux是具有设备独立性的操作系统,它的内核具有高度适应能力,随着更多的程序员加入Linux编程,会有更多硬件设备加入到各种Linux内核和发行版本中。另外,由于用户可以免费得到Linux的内核源代码,因此,用户可以修改内核源代码,以便适应新增加的外部设备。

6.提供了丰富的网络功能 完善的内置网络是Linux的一大特点。Linux在通信和网络功能方面优于其他操作系统。其他操作系统不包含如此紧密地和内核结合在一起的连接网络的能力,也没有内置这些联网特性的灵活性。而Linux为用户提供了完善的、强大的网络功能。 支持Internet是其网络功能之一。Linux免费提供了大量支持Internet的软件,Internet是在Unix领域中建立并繁荣起来的,在这方面使用Linux是相当方便的,用户能用Linux与世界上的其他人通过Internet网络进行通信。 文件传输是其网络功能之二。用户能通过一些Linux命令完成内部信息或文件的传输。 远程访问是其网络功能之三。Linux不仅允许进行文件和程序的传输,它还为系统管理员和技术人员提供了访问其他系统的窗口。通过这种远程访问的功能,一位技术人员能够有效地为多个系统服务,即使那些系统位于相距很远的地方。

7.可靠的系统安全 Linux采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。

8.良好的可移植性 可移植性是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。 Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。可移植性为运行Linux的不同计算机平台与其他任何机器进行准确而有效的通信提供了手段,不需要另外增加特殊的和昂贵的通信接口。

为什么要使用linux

1.省心
如果你经常重装系统(对于那些经常捣鼓系统或是有软件洁癖的人),或是偶尔需要来那么一两次。那么你肯定就能体会到在windows下配置环境的麻烦事儿。

以Java为例:
在windows下:
首先我们得先弄一个JDK安装包,确保没有选错,等待下载完成,然后准确地从文件中找到他。
然后开始安装,配置路径(如果你有文件整理的习惯)和环境变量,等待安装完成。
*后因为环境变量的原因我们得注销一下验证结果。
至此Over,但如果其中出了什么问题,恐怕我们还得再倒腾一会儿。
在linux下:
首先连上网络
其次在命令行下输入sudo apt-get update && sudo apt-get install openjdk-7-jdk,键入口令,开始安装。
等待进度条,然后Over。
重复几次之后,我们就会发现使用apt-get进行安装真是屡试不爽。除此之外还有很多东西都可以用它来完成:g++,scrapy,GIMP,jdk,ruby等等。敲两行命令就搞定。而在windows下这都需要一个又一个的软件来补充。

2.便利
提到便利,主要针对的是刚刚装完系统时的情况。此时linux(笔者使用的是Ubuntu)下很多东西都会便利许多。

如果你使用C语言,python进行开发,那么在不依靠IDE的情况下那么就已经可以开工了,因为这些都是系统自带的。
如果你需要处理办公文件,那么系统自带的Libre Office已经基本可以满足需求。
浏览器也无需担心,FireFox还是很不错的。
*实在的一点是,系统是免费的。
这些便利的地方也往往是windows下普遍的短处。

首先开发环境需要自行搭建,系统是不带任何工具的,这都得自己动手,丰衣足食。
使用Office需要单独安装,这需要一定的时间。
IE应该也不是大家普遍常用的吧,装一个浏览器,这又是一个活儿。
*关键的一点,上面的许多工具都不是免费的午餐。除了在工具上我们可以使用替代的产品外,windows这个系统本身,我们是跑不掉的。激活就是一个麻烦事儿。花钱还是花时间破解,二选其一吧。
3.安全
安全问题*早也是在windows上流行起来的,windows在系统方面做得很完整,不过在安全问题上确实不怎么把关。windows平台下一个软件的执行,可以直接更改注册表,启动项,文件关联,文件系统,开关机等等。而windows平台本身却并不为此提供多少安全方面的保障(这与windows平台的主要适用人群有关)。所以,这部分缺陷不得不留给各大厂商的杀毒软件来弥补。于是各种杀毒软件大行其道。这对系统本身来说就像是一种讽刺。

Linux下相对来说要安全很多,首先因为他是开源的,里里外外一清二楚,众目睽睽之下,群众的眼睛是雪亮的。大的漏洞往往少很多。
其二,干什么事儿都得验证一下。软件安装卸载,系统更改,文件权限设置,开关机等等,都得先报上口令,看看是不是本人操作。这些东西看起来挺麻烦,不过也确实为系统提供了很好的保障。至少针对与linux的杀毒工具还是比较少的。

缺陷
事物往往都有正有反,linux也未能例外。

首先图形界面并非尽善尽美,界面很炫酷(Ubuntu Unity),bug也不少。笔者使用时就时常报错。
没有配置同步的功能。如果你之前改过系统,那么重装之后可能还得接着该。或者是自己手动导入备份。这一点就没有微软账户那么方便了。
软件不支持。因为没有钱赚,所以很多windows下的软件很多都没有linux版本,或者有也很难用(没有维护)。不过大都与开发无关,影响不大。

学嵌入式为什么要学Linux?

首先,ARM只是一个32位处理器,可以像51单片机一样用汇编直接操作它的寄存器、RAM、ROM等内部资源,当然也可以用C语言!那么如果只是把ARM当做单片机来用,那就有点大材小用了,那也就没必要学什么linux了。

事实上,ARM是通常都是用来做比较复杂的系统的,而且一般都是多任务系统的,当任务比较多,程序比较大的时候,只用汇编和C可怕难以胜任,所以我们应该给ARM配一个操作系统,用来管理这些任务,那么对于ARM,我们可以作使用哪些操作系统呢?Windows XP行吗?当然不行,太大了,不适合做嵌入式,微软倒是推出了专门针对嵌入式系统开发的WinCE,可是这可不是免费的,而且不提供源码的,给你就像一个黑夹子,对于一般的嵌入式学习,就不太合适了?那么什么样的操作系统才能用于做嵌入式呢?嵌入式操作系统通常有Vxworks,WinCE,uC/OS,Linux/ucLinux等。而uC/OS、Linux因为其免费,而且开源,深受学习者和小公司的欢迎。

uC/OS操作系统内核很小,特别适合初学,而且它是占先式内核,是一个实时的操作系统,特别适合实时性要求较高的场合,其内核很小当然其功能当然也就没有linux强大,而且uC/OS的图形用户界面(GUI)还是刚有雏形,没有linux的GUI好,而它的GUI是收费的。这样的话只是linux是*好了,但是linux本身不是实时的操作系统,不适合实时性高的场合,于是ucLinux产生了,ucLinux是一个实时操作系统(RTOS),因此学习ARM+ucLinux的人较多。

所以,如果只搞uc/OS+ARM,那就可以不学linux了,如果想学习ARM+ucLinux,要在ARM上移植linux,那么移植后,这个装有linux的ARM处理器,当然只能运行linux环境下编译出来的应用程序(这里还有一个交叉编译的概念需要正确理解),所以理所当然要学linux。通常小红帽Red Hat Linux 使用比较广泛,那么不能在Windows下开发ARM+ucLinux吗?其实倒是可以在Windows使用虚拟机软件VMware装一个linux。

 

嵌入式 Linux *主要的工作是让目标板能启动 Linux 系统,启动 Linux 系统的核心工作就是启动 Linux 内核,启动 Linux 内核的核心工作就是让这个 Linux 内核能支持你这个设备,Linux 内核能支持你这个设备的前提就是 Linux 内核经过你的改进后确实能启动,你改进内核的前提就是你会 Linux 内核。 你要是学嵌入式 WinCE ,你同样要学 WinCE ,和学 Linux 内核的主要学习内容一样。当然针对性不同。

嵌入式系统、linux和嵌入式linux的区别

这几个东西比较容易混淆

嵌入式系统:

IEEE(国际电气和电子工程师协会)对嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”。原文为:Devices Used to Control,Monitor or Assist the Operation of Equipment,Machinery or Plants)。

嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑。

国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的;所以经常称为“固件”。

linux:

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。Linux是一个*的操作系统,世界上运算*快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。

Linux以它的高效性和灵活性著称,Linux模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。

嵌入式linux:  

嵌入式Linux系统就是利用Linux其自身的许多特点,把它应用到嵌入式系统里。随着微处理器的产生,价格低廉、结构小巧的CPU和外设连接提供了稳定可靠的硬件架构,那么限制嵌入式系统发展的瓶颈就突出表现在了软件方面。尽管从八十年代末开始,陆续出现了一些嵌入式操作系统,比较著名的有Vxwork、pSOS、Neculeus和Windows CE。但这些专用操作系统都是商业化产品,其高昂的价格使许多低端产品的小公司望而却步;而且,源代码封闭性也大大限制了开发者的积*性。另外,结合国内实情,当前国家对自主操作系统的大力支持,也为源码开放的LINUX的推广提供的广阔的发展前景。还有,对上层应用开发者而言,嵌入式系统需要的是一套高度简练、界面友善、质量可靠、应用广泛、易开发、多任务,并且价格低廉的操作系统。在不久的将来,从冰箱到收音机都会内置处理器。因为Linux的开放性,许多人认为Linux非常适合多数Internet设备。他们认为Linux可以支持不同的设备,支持不同的配置。 

Linux做嵌入式的优势,首先,Linux是开放源代码的,不存在黑箱技术,遍布全球的众多Linux爱好者又是Linux开发者的强大技术支持;其次,Linux的内核小、效率高,内核的更新速度很快;第三,Linux是免费的OS,在价格上*具竞争力。 

Linux还有着嵌入式操作系统所需要的很多特色,突出的就是Linux适应于多种CPU和多种硬件平台,是一个跨平台的系统。到目前为止,它可以支持二三十种CPU。而且性能稳定,裁剪性很好,开发和使用都很容易。很多CPU包括家电业芯片,都开始做Linux的平台移植工作。移植的速度远远超过Java的开发环境。也就是说,如果今天用Linux环境开发产品,那么将来换CPU就不会遇到困扰。同时,Linux内核的结构在网络方面是非常完整的,Linux对网络中*常用的TCP/IP协议有*完备的支持。提供了包括十兆、百兆、千兆的以太网络,以及无线网络,Toker ring(令牌环网)、光纤甚至卫星的支持。所以Linux很适于做信息家电的开发。 

还有使用Linux为的是来开发无线连接产品的开发者越来越多。Linux在快速增长的无线连接应用主场中有一个非常重要的优势,就是有足够快的开发速度。这是因为LInux有很多工具,并且Linux为众多程序员所熟悉。因此,我们要在嵌入式系统中使用Linux操作系统。 

Linux的大小适合嵌入式操作系统──Linux固有的模块性,适应性和可配置性,使得这很容易做到。另外,Linux源码的实用性和成千上万的程序员热切其望它用于无数的嵌入式应用软件中,导致很多嵌入式Linux的出现,包括:Embedix,ETLinux,LEM,Linux Router Project,LOAF,uCLinux,muLinux,ThinLinux,FirePlug,Linux和PizzaBox Linux。

ARM LINUX与普通LINUX区别

相对于ARM linux,我们说的普通linux指的是X86 linux,他们都是linux系统,但是由于ARM和X86是不同的CPU架构,他们的指令集不同,所以软件编译环境不同,软件代码一般不能互用,一般需要进行兼容性移植。
X86是经典的CISC指令集,指令集复杂,功能多,串行执行,但是也意味着执行效率低下,但性价比突出,所以称为民用终端的主流处理器内置指令集。Intel和AMD的家用处理器都是X86指令集。以X86为代表的CISC,理论并发线程1-2条。
ARM是Advanced RISC Machine 的缩写。它的指令集比RISC还要精简。通常使用ARM架构处理器的机型,多为嵌入式或者便携机。主频通常不高,现在高通公司的ARM架构处理器有1.0GHz的,已经算相当高了。另外,ARM 7沿用冯·诺依曼结构;而从ARM 9以后,就都采用了哈佛结构。ARM的并发线程,理论上有4条左右,处理效率较X86高不少。