但现有的这些设备和服务与我们整个社会生产生活的现实需求还存在一定差距。 这个差距就是未来程序员的机会所在。
目前,ARM64架构在物联网行业应用最为广泛,但一下子理解它并不容易。 接下来小易就给大家介绍一下ARM64,了解学习ARM64的难点和痛点。
01
ARM64 无处不在
提到CPU,我们可能会想到Intel和AMD。 这两家生产个人电脑处理器的公司长期以来一直很受欢迎。 他们制造的处理器基于x86架构。
除了Intel和AMD之外,还有一种广泛使用的处理器,那就是ARM64处理器。
你可能对ARM64比较陌生,但事实上,我们每个人都离不开这家公司的产品和技术。 我们使用智能手机、智能家居、智能电视、智能冰箱、现在流行的智能电动车、智能眼镜、AR、VR、万物互联的IoT ARM服务器、以及苹果笔记本电脑最新的M1芯片等。人们平时能看到、摸得到的都内置了ARM64处理器。
可以说,ARM64 处理器无处不在。
因此,无论你是在读大学的学生,还是从事相关工作、已经在职场打拼的朋友,深入学习ARM64都有必要性和紧迫性。
02
学习ARM64的难点和痛点
尽管ARM64在工业界和工业界已经非常流行,但在高校计算机专业的教学中却被边缘化。
目前,国内高校计算机专业大多采用x86、MIPS、RISC-V架构作为教学对象。 例如,几乎没有高校开设《计算机基础》、《计算机组成原理》、《计算机体系结构》、《操作系统》等计算机专业核心课程。 ARM64用于《嵌入式系统》等教学。
然而,当学生出来找工作时,会发现很多招聘公司的产品和项目都是基于ARM64架构的。 到时候你就“傻眼”了!
所以,强烈建议目前在院校学习计算机、学习硬件的同学提前学习一下ARM64架构,这样毕业后职场上手会轻松很多,还能为自己加分他们的简历。
既然ARM64如此重要,为什么在高校却很少教授呢? 因为这很难。 ARM64架构比MIPS和RISC-V复杂得多。 接下来说一下学习ARM64的难点和痛点。
ARM64官方手册很厚
首先,ARM64架构的官方手册有超过10000页的英文文档。 例如,ARMv8.6手册有8000多页,ARMv9手册有11000多页。 这个厚度足以让初学者望而却步。
同时,这些文档都是英文的,阅读起来有点困难。
另外,为了学好ARM64架构,除了官方手册之外,你可能还需要阅读很多其他外设手册,比如特定CPU IP的手册。
例如,如果您使用Raspberry Pi 4B进行实验,则Cortex-A72将在Raspberry Pi 4B上使用,因此您还需要仔细阅读Cortex-A72 IP手册。 再比如中断控制器获取芯片手册、SMMU芯片手册、编译器GCC手册、GCC汇编器手册、GCC链接器手册等。
这些手册加起来可能多达数千页。 因此,要获得完整的套件,您可能需要阅读超过 10,000 页的英文技术文档。 这对于初学者来说实在是太令人沮丧了。 听起来就像“ARM64,从开始到放弃”。
ARM64官方手册只有抽象概念,没有案例。
其次,ARM64架构的官方手册中很多内容的描述非常抽象,没有实际的例子和实验。 例如,在介绍指令机时,没有举例,只是列出了指令的功能、编码格式、参数说明等。
对于初学者来说,这是非常不友好的。 初学者需要示例和一些常见错误的解释。 初学者想看、需要更多的内容,官方手册中是没有的。
ARM64指令集庞大
第三,虽然ARM64架构是精简指令集(RISC)架构,但这并不意味着它的指令集和架构很简单。
事实上,ARM64指令集非常庞大,包括348条基本指令、404条浮点加SIMD多媒体指令、以及最新的SVE和SVE2指令。 ARM64的指令总数可能超过1000条。 这对于初学者来说也是非常困难的。
ARM64涉及的概念非常复杂
第四,ARM64架构涉及很多概念。 除了很多处理器相关的概念,如cache、MMU、TLB、内存屏障等之外,还有一些ARM64架构特有的概念,如PE、PoC、PoU、内部共享、外部共享等。
对于初学者来说,这些概念也很难理解。
ARM64缺少完整中文教程
很多初学者抱怨,中文介绍ARM64指令集和架构的书籍很少,优秀的更是难找。 所以想要学习ARM64就得硬着头皮看这些英文资料,对于初学者来说确实很难。
03
我们应该如何学习ARM64?
计算机科学是一门实践性学科,最好的学习方式就是实践。
ARM64也是一门以实践为导向的课程。 如果只看芯片手册而不做练习,是学不到精髓的。 因此,学习ARM64的时候一定要在电脑上练习,做实验。
可以在开发板上做实验,也可以在免费的QEMU上做实验,在实战中体验和总结。 如果遇到不懂或者不清楚的地方,回去看一下ARM64的官方手册。
向大家推荐一本全新的ARM64中文书籍《ARM64架构编程与实践》。
这本书解决了我之前总结的学习ARM64的难点和痛点。 这是一本系统介绍ARM64指令集和架构的中文书籍。 深入浅出地讲述了ARM64架构中最基本、最核心的知识点。 里面有很多例子,让大家读起来不会觉得枯燥。
问题导向
在每一章的开头,都会向读者提供一系列需要在本章中思考的问题。 读者可以带着这些问题去阅读,在阅读中找到答案,增强学习的乐趣和成就感。
提供100个创新的ARM64实验
本书提供了大量的实验,包括指令集实验、汇编实验、内联汇编实验、中断实验、异常实验、MMU实验、缓存实验、Neon实验、SVE实验、超级系统实验等。
仔细完成这些实验后,你就可以像搭积木一样在 ARM64 上搭建一个小型操作系统了。 你会对ARM64架构有深刻的理解,一定会有很大的成就感。
建议读者基于最近流行的Raspberry Pi 4B开发板进行实验。 Raspberry Pi 4B 采用 ARM v8 架构和 Cotrex-A72 处理器 IP。 如果您没有Raspberry Pi 4B开发板,也可以使用完全免费的QEMU模拟器。
本书提供了一套完整的QEMU开发环境、VMware或VirtualBox镜像,您可以下载并开箱即用。