基于arm的linux
‘壹’ 安卓智能手机的基于ARM架构的处理器,为什么能够支持基于linux内核的操作系统
Android是基于Linux内核的操作系统。
提到Linux内核的时候,应该把它从概念上和“Linux操作系统”分割看来,内核只包括最基本的抽象,内存模型、进程调度、中断处理等等。而操作系统是一个更广的概念,不光包括内核,还包括了设备驱动、应用程序框架以及一些关键的能够让这个操作系统能为人所用的软件。所以Ubuntu, Fedora等等这些桌面发行版可以看做是包装了Linux内核的、不同的Linux操作系统。
Android 开发之初fork了Linux kernel,在其基础上进行了以下改进:
1. 添加新的的设备驱动
2. 重写了c lib(Bionic)
3. 实现了基于Java的应用程序框架
4. 对内核的小修改
大部分的修改都是在内核之上的,也就是说android内核和其他桌面Linux内核是非常接近的(在Linux kernel 3.3 之后,Android分支的内核代码开始merge回原Linux内核repo),内核所完成的抽象,如内存模型、进程调度等,是一致的。
Android不是Linux
看到这个标题大家可能会有些迷惑,前面不是一直说Android是基于Linux内核的吗,怎么现在又不是Linux了?迷惑也是正常的,请先看下面几个要点,然后我们将对每一个要点进行分析,看完后你就会觉得Android不是Linux了。
1.它没有本地窗口系统
什么是本地窗口系统呢?本地窗口系统是指GNU/Linux上的X窗口系统,或者Mac OX X的Quartz等。不同的操作系统的窗口系统可能不一样,Android并没有使用(也不需要使用)Linux的X窗口系统,这是Android不是Linux的一个基本原因。
2.它没有glibc支持
由于Android最初用于一些便携的移动设备上,所以,可能出于效率等方面的考虑,Android并没有采用glibc作为C库,而是Google自己开发了一套Bionic Libc来代替glibc。
3.它并不包括一整套标准的Linux使用程序
Android并没有完全照搬Liunx系统的内核,除了修正部分Liunx的Bug之外,还增加了不少内容,比如:它基于ARM构架增加的Gold-Fish平台,以及yaffs2 FLASH文件系统等。
4.Android专有的驱动程序
除了上面这些不同点之外,Android还对Linux设备驱动进行了增强。
上面这些要点足以说明Android不是Linux。本书的主要内容将围绕Android的这些特有的部分展开,我们的讲解会尽量通俗易懂,但还是建议大家先复习一下Linux内核的基本知识。在具体学习之前,我们还是先来总体浏览一下Android对Linux内核进行了哪些改动,在移植时就需要对这些改动加以调整。
‘贰’ arm的操作系统是什么
ARM的操作系统是嵌入式Linux。
ARM是一种广泛应用于嵌入式系统的处理器架构,其操作系统通常取决于具体的应用场景和设备需求。在众多操作系统中,嵌入式Linux因其开源、灵活和稳定性强的特点,成为ARM处理器上最常用的操作系统之一。
嵌入式Linux是一种为嵌入式系统量身定制的Linux操作系统。它具备丰富的软件资源和强大的开发社区支持,能够运行在多种硬件平台上,包括基于ARM架构的设备。嵌入式Linux系统可以根据硬件资源、性能需求和实时性要求进行定制和优化,广泛应用于各种领域,如智能手机、平板电脑、路由器、工业控制、医疗设备、汽车电子等。
在ARM设备上,嵌入式Linux不仅能够提供稳定的系统服务,还能支持多种应用程序的运行和开发。其强大的多任务处理能力和丰富的API接口,使得开发者可以便捷地实现各种复杂的功能和应用。此外,由于Linux系统的开源特性,开发者还可以根据需要对系统进行定制和扩展,以满足特定应用场景的需求。
总之,嵌入式Linux是ARM处理器上的一种主要操作系统,它为基于ARM的设备提供了稳定、可靠的系统支持,并推动了各种应用场景的开发和创新。
‘叁’ 如何安装arm-linux-gcc
1、首先以root用户登入2、复制arm-linux-gcc-4.3.2.tgz到根目录下tmp文件夹里
3、解压命令tar xvzf arm-linux-gcc-4.3.2 -C /
注意以上命令必须要有-C而且是大写,后边有个空格也要注意。
4、配置下编译环境路径 在控制台下输入 gedit /root/.bashrc 等一会出来文本编辑器后在文件最后(最后一行)加上下面代码。
export PATH=/usr/local/arm/4.3.2/bin:$PATH
保存关闭后,注销当前用户,用root账号重新登录系统(使刚刚添加的环境变量生效)。
此时可以在控制台输入: arm-linux-gcc -v 如果安装成功将会输出 arm-linux-gcc的版本号。
若想让它在非超级用户下使用那。首先,以非超级用户登入。
1、 输入命令:vi ~/.bashrc编辑.bashrc文件,在文件末尾加入如上面的内容
export PATH=/usr/local/arm/4.3.2/bin:$PATH
2、输入命令:gedit /etc/profile
在文件的末尾加上:PATH=/usr/local/arm/4.3.2/bin:$PATH
保存对profile的修改后,执行source /etc/profile就OK了,好了通样先注销当前用户再登录后进入控制台执行arm-linux-gcc -v 看看能否执行成功就可以了。
‘肆’ 如何使用ARM+Cortex-A9的移植一个Linux操作系统,作为服务器
要在ARM Cortex-A9上移植Linux操作系统并将其用作服务器,需要执行以下步骤:
选择适当的Linux发行版:首先,需要选择适合ARM Cortex-A9的Linux发行版。一些流行的ARM Linux发行版包括Ubuntu、Debian、Fedora、OpenSUSE等。您可以从官方网站下载适合您的ARM Cortex-A9的版本。
下载交叉编译工具链:由于ARM Cortex-A9是基于ARM架构的,因此需要使用交叉编译工具链来编译Linux内核和应用程序。您可以从ARM官方网站下载适合您的交叉编译工具链。
编译内核:使用交叉编译工具链编译Linux内核。您可以从Linux内核官方网站下载最新版本的内核源代码,并使用交叉编译工具链进行编译。编译完成后亩尘,将内核镜像文件复制到ARM Cortex-A9的启动设备中。
配置文件系统:在ARM Cortex-A9上运行Linux操作系绝耐敏统需要一个文件系统。您可以使用BusyBox等工具来创建一个最小的文件系统。将文件系统复制到并枝ARM Cortex-A9的启动设备中。
启动Linux操作系统:将启动设备插入ARM Cortex-A9,并将其连接到计算机。使用串口或SSH等工具连接到ARM Cortex-A9,并启动Linux操作系统。如果一切正常,您应该能够登录到Linux系统并使用它作为服务器。
配置服务器:根据您的需求配置Linux服务器。您可以安装Web服务器、数据库服务器、FTP服务器等,以满足您的需求。
‘伍’ Linux内核配置解析 - 概述(基于ARM64架构)
在探索Linux内核配置的道路上,初学者可能会感到困惑与挑战。Linux内核拥有多种进入方式,包括从设备驱动入手,研究源代码目录结构,关注内核启动过程,或直接从主要功能模块开始。然而,本文旨在以内核配置项作为切入点,提供对整个Linux内核的全面理解。
内核配置项繁多,这在进行移植时尤其明显,如面对“menuconfig”界面时,初次接触者可能会感到畏惧(请参考图片1)。配置项本质上用于功能设置和开关,它们能够直观反映出软件的功能划分。以Linux内核为例,Kconfig呈现的树状结构在功能组织上比目录结构更为清晰。
本文所使用的Linux内核版本为“X Project”下的“Linux 4.6-rc5”。接下来的系列文章将深入分析配置项,从整体上了解内核。
Linux内核配置项主要通过Kconfig语言组织,以架构为单位。以ARM64为例,其Kconfig入口位于“arch/arm64/Kconfig”。执行“make ARCH=arm64 menuconfig”命令后,用户可进入配置界面(请参考图片1)。
配置界面初期看起来较为简洁,但深入二级菜单时,内容变得丰富复杂。分析配置项时,可以结合Kconfig文件、跟随菜单项指引、利用强大的搜索引擎,必要时查阅源代码。本文将仅介绍Kconfig的一级菜单,作为后续深入分析的基础。
接下来,我们将通过分析“arch/arm64/Kconfig”文件,对menuconfig的一级菜单进行简要解读,旨在从实例出发理解Kconfig语言的语法和内核配置项的整体结构。这将为后续深入研究奠定基础。
‘陆’ 关于ARM的Linux系统的编程搭建
哈哈哈. eclipse是什么? IDE怎么用这个呢? 你是刚学的?