入门级:
启动阶段:
开机:计算机启动时,引导加载器(bootloader)负责加载操作系统内核。
内核初始化:内核初始化阶段负责初始化硬件、创建进程、设置系统参数等。
用户空间初始化:初始化进程(通常是init或者systemd),该进程启动用户空间的各种服务和应用程序。
用户空间运行:
用户空间运行期间,用户和应用程序与操作系统进行交互。
应用程序可以发起系统调用请求来执行操作系统提供的服务,例如文件访问、网络通信等。
应用程序也可以与其他应用程序进行通信,例如进程间通信(IPC)。
系统调用:
当应用程序需要执行特权操作或访问底层硬件资源时,它会发起系统调用请求。
系统调用是应用程序和内核之间的接口,它允许应用程序请求操作系统执行特定的任务,例如打开文件、读写数据、创建进程等。
内核接收到系统调用请求后,会根据请求的参数和权限来执行相应的操作。
内核态和用户态:
Linux操作系统使用了分离的内核态和用户态,用户态是指应用程序运行的环境,内核态是指操作系统内核运行的环境。
用户态的应用程序没有直接访问硬件资源的权限,必须通过系统调用请求内核来执行这些操作。
内核态有更高的权限,可以访问和管理硬件资源,执行操作系统的核心功能。
关闭和终止:
当用户关闭计算机或结束应用程序时,操作系统会清理资源、终止进程,并最终关闭计算机。
tar -vxjf uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2
②编译uboot的命令:
#ARCH=arm表示设置目标为arm架构,相当于make distclean,清除工程
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
#配置uboot,配置文件为mx6ull_14x14_evk_emmc_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig
#V=1用于设置编译过程中的信息输出级别,相当于make -j12,即使用12核来编译uboot
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12
##########################################################################
#每次编译uboot都需要输入一长串命令
#为了简单起见,建立一个shell脚本文件,将这些命令写到shell脚本里
#执行shell脚本即可完成编译工作
#新建mx6ull_evk_emmc.sh脚本文件
##########################################################################
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12
##########################################################################
#通过命令“./mx6ull_evk_emmc.sh”编译uboot
③创建一个Shell脚本文件,编写下列代码,然后进行可执行权限设置并执行。
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12
chmod 777 mx6ull_tek_emmc.sh
./mx6ull_tek_emmc.sh