- 博客(575)
- 资源 (1)
- 收藏
- 关注
原创 <Linux内核学习>文件系统
环境:Linux 0.11 / Linux 3.4.2参考书籍:Linux内核完全剖析基于0.11内核-赵炯。
2023-02-10 20:56:52 1063 1
原创 IMX6ULL-uboot启动内核流程分析(3)
在上一节中学习到uboot开始执行_main函数,_main函数定义在/arch/arm/lib/crt0.S中,_main函数代码比较长,代码中主要是调用了以下函数:① board_init_f_alloc_reserve② board_init_f_init_reserve③ board_init_f④ relocate_code⑤ relocate_vectors⑦ board_init_r函数代码如下:该函数有一个参数,通过寄存器r0(0x0091FF00)传入,该函数的作用是为早期的malloc函
2023-01-30 23:20:11 622
原创 IMX6ULL-uboot启动内核流程分析(1)
由上面信息可知, _start 符号和__image_copy_start被链接在最前面的地址 0x87800000 ,它是U-Boot的入口。总而言之,u-boot.lds脚本文件告诉链接器linker如何布局代码段、数据段、bss段等,已经配置了u-boot自拷贝(从flash到RAM的copy)的内容。u-boot.map 是 uboot 的映射文件,可以从此文件看到某个文件或者函数链接到了哪个地址。在uboot在编译完成后会在原始链接脚本的基础下在根目录下生成uboot.lds文件。
2023-01-29 21:46:36 506
原创 <Linux内核学习>系统的进程管理
JIFFIES是一个系统的时钟滴答,对于Linux 0.11内核,一个系统时钟滴答为10ms。JIFFIES的产生是来源于一个10ms的定时器中断定义在(文件中).align 2//JIFFIES 是一个系统的时钟滴答 一个系统滴答是10ms,每隔10ms会引发一个定时器中断//就是这个push %fspushl %eaxincl _jiffies //自加自身pushl %eax//以上是在中断时对现场进行保存在中断程序中首先①每10毫秒将变量_jiffies自增1。
2023-01-17 22:37:04 471
原创 解决ubuntu虚拟机安装QT没有图标启动麻烦问题
添加一个软路由 名字叫做qtt,别添加在当前目录下,因为当前目录没有添加环境变量,这里我是把软路由添加在/usr/bin下。添加完后在任何路径执行qtt即可打开。我的路径在/opt/Qt5.12.9/Tools/QtCreator/bin。找到qtcreator的路径,添加一个软链接,我安装的5.12.9版本。
2023-01-13 12:11:22 1706
原创 <Linux内核学习>内核中断体系结构
环境:Linux 0.11 / Linux 3.4.2参考书籍:Linux内核完全剖析基于0.11内核-赵炯。
2023-01-11 19:32:44 1131
原创 <Linux内核学习>操作系统结构与功能流程
Linux 0.11采用的是单内核模式,因此内核中所有的程序几乎都有紧密的联系,它们之间的依赖和调用关系非常密切。进程调度模块、内存管理模块、文件系统模块、进程通信模块、网络接口模块。① 内存管理模块和文件系统模块->虚拟内存的缓存和回收机制。(操作系统的服务层根据具体的参数值调用特定的系统调用)。4.功能实现后从内核态退出返回用户态继续执行后面的指令。3. 应用操作系统的底层函数,进行相应的功能实现。(所有模块都和进程调度模块有依赖关系)),使CPU从用户态切换到内核态)。操作系统内核的结构模式分为。
2023-01-10 17:24:44 275
原创 嵌入式ARM移植sqlite3
平台: 处理器:I.MX6ULL 内核:linux-4.1.15。进入安装目录,拷贝库文件。④sqlite3测试。
2023-01-07 12:49:32 1015
原创 嵌入式ARM移植boa服务器
将ubuntu下/etc/mime.types拷贝到开发板根文件系统的/etc下。②将boa源码目录下的boa.conf拷贝到根文件系统/etc/boa目录下,平台: 处理器:I.MX6ULL 内核:linux-4.1.15。在开发板根目录下创建/etc/boa文件夹。先下载boa服务器源码,执行以下命令。① src/compat.h文件。③修改配置文件boa.conf。② src/log.c文件。③src/boa.c文件。4.进入src目录编译。5.Boa服务器配置。6.boa服务器测试。
2023-01-06 22:10:04 702
原创 ARM处理器中断处理机制
处理器在正常执行程序的过程中可能会遇到一些不正常的事件发生,这时处理器就要将当前的程序暂停下来去处理这个异常的事件,当异常事件处理完成之后再返回被异常打断的点继续执行程序。不同的处理器对异常的处理机制在宏观上是相同的,但是在具体的实现机制上有所不同:比如处理器在遇到异常后会产生的动作、如何能跳转到异常处理程序、处理完异常后又是如何返回原程序等等,这些细节的实现称为。
2022-11-05 12:11:06 2667
原创 Linux文件锁的使用
文件是一种共享资源,多个进程对同一文件进行操作的时候,必然涉及到竞争状态,因此引入了文件锁实现对共享资源的访问进行保护的机制,通过对文件上锁, 来避免访问共享资源产生竞争状态。
2022-11-01 20:09:02 3984
原创 刷题时经常面临的向上和向下取整
如果求m + n的平均数向上取整即 a = m + n b = 2;如果求m + n的平均数,即a = m + n, b = 2。
2022-08-22 15:17:39 462
原创 构建Buildroot根文件系统(I.MX6ULL)
构建的根文件系统只有一些常用的命令和文件。不仅集成了 busybox,而且还集成了各种常见的第三方库和软件。
2022-08-04 16:45:24 1572
转载 Linux内核与根文件系统的关系详解
根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所挂载(mount)的第一个文件系统,内核代码的映像文件保存在根文件系统中,系统引导启动程序会在根文件系统挂载之后从中把一些初始化脚本(如rcS,inittab)和服务加载到内存中去运行。Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。.....
2022-08-03 20:17:11 1896 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人