适配ARM处理器的Linux内核

2019-07-13 06:26发布

按照资料上的习惯说法,标准内核(或称基础内核)就是指主要在http://www.kernel.org/维护和获取的内核,实际上它也有平台属性的。这些linux内核并不总是适用于所有linux支持的体系结构。实际上,这些内核版本很多时候并不是为一些流行的嵌入式linux系统开发的,也很少运行于这些嵌入式linux系统上,这个站点上的内核首先确保的是在Intel X86体系结构上可以正常运行,它是基于X86处理器的内核,如对 linux-2.4.18.tar.bz2的配置make menuconfig时就可以看到,Processor type and features--->中只有386486586/K5/5x86/6x86/6x86MXPentium-ClassicPentium-MMXPentium-Pro/Celeron/Pentium-IIPentium-III/Celeron(Coppermine)Pentium-4K6/K6-II/K6-III Athlon/Duron/K7 Elan CrusoeWinchip-C6 Winchip-2 Winchip-2A/Winchip-3 CyrixIII/C3 选项,而没有类似Samsun 2410等其他芯片的选择。如果需要用在其他特定的处理器平台上就需要对内核进行打补丁,形成不同的嵌入式内核。实际上,不同处理器系统的内核下载站点中提供的也往往是补丁patch而已,故原x86平台上的内核变成了基础内核,也被称为标准内核了。”(引用)也就是说Linux内核从一开始就没有将ARM架构处理器作为首选,Linus偏爱X86架构CPU也是不争事实。“在最近举行的Linaro Connect 会议上,Linus Torvalds 被问道他最喜爱的芯片架构,Linux 之父想都没想就回答说是x86架构而不是ARM架构。Torvalds说,人们太痴迷于指令集和CPU核心,但围绕架构的生态系统更为重要。x86的生态系统远胜于其它架构。x86平台有着统一的硬件、开发和基础设施,许多应用的开发都是在x86机器上进行的。而ARM平台则是一个碎片化的市场,ARM统治了移动市场,但它的碎片化导致了很多支持和设备方面的问题。Torvalds说,他个人对ARM作为一个硬件平台非常失望。大牛一针见血的指出了嵌入式领域的问题——碎片化、没有标准,缺乏基础设施软件难以最大发挥。所以网上正统的经过许多软件工程师调试、改正的、稳定的Linux内核都是基于X86的。那么又没有那么一群人在默默无闻的坚持在ARM处理器架构上努力呢?答案是肯定的,但他们一定很痛苦。ARM架构处理器从ARM公司流出来的方案里就不统一:ARM授权方式主要有三种:架构层级授权、内核层级授权、使用层级授权。还没做出来就已经有三种方案了,等做出来了数量种类差异性就更加不得了了。因此要让维护ARM架构处理器的Linux内核的软件工程师维护全世界的ARM处理器,这是不可能的。好在常用的不多,目前出货量最大的ARM架构通用处理器一般都是三星、TI、NXP等。当然那些特殊的ARM处理器,一般厂商也会提供基础平台,原厂工程师会拿已有的Linux改改改,直到改到能在自家CPU上跑的正常稳定。撇开那一撂原厂,因为我们不是他们的客户。是不是有个第三方在维护一些常见ARM CPU linux内核呢?有的以下是笔者的收集:1、Linus维护的官方版,有一些比较常用的会有比如S3C2440,其实数量也不少。2、https://archlinuxarm.org/,适配树莓派多,其他ARM CPU比较少见比如nVidia Tegra 2。3、www.arm.linux.org.uk,这个英国网站总是打不开ftp服务器。但看名字就知道很正统。一个叫Russell King的英国大牛发起的。“In my spare time, I support the ARM Linux kernel community on the mailinglists, tracking Linus' kernels and providing the "foundation" patches forthe ARM Linux community, which I have been doing since 1994.”感受一下,他说他从1991年一直在跟Linus的正统Linux内核,并给它打补丁以适配ARM CPU。ftp://ftp.armlinux.org.uk/pub/armlinux 但是这个网站打不开啊。4、下一级的供应商,比如广州友善之臂从三星公司拿了平台代码等,自己改进一下又拿出来卖。这也也是有的。
5、欢迎补充……