- 博客(9)
- 收藏
- 关注
原创 嵌入式工程师—每日一问Day9
浮点运算通过应用程序实现,Linux 中的浮点运算是利用数学库函数实现的,库函数能够被应用程序链接后调用,不能被内核链接调用。这些运算是在应用程序中运行的,然后再把结果反馈给系统。Linux 内核如果一定要进行浮点运算,需要在建立内核时选上 math-emu,使用软件模拟计算浮点运算,据说这样做的代价有两个:用户在安装驱动时需要重建内核,可能会影响到其他的应用程序,使得这些应用程序在做浮点运算的时候也使用 math-emu,大大的降低了效率。
2023-11-05 21:33:22
40
1
原创 嵌入式工程师—每日一问Day8
在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
2023-11-02 22:18:41
27
原创 嵌入式工程师—每日一问Day7
Linux系统启动过程文件权限类型 启动过程 主机加电自检,加载 BIOS 硬件信息。 读取 MBR 的引导文件(GRUB、LILO)。 引导 Linux 内核。 运行第一个进程 init (进程号永远为 1 )。 进入相应的运行级别。 运行终端,输入用户名和密码。 文件权限类型 Read–读取文件。 Write–可以写入文件或修改目录的文件。 Execute–影响用户执行文件或查看目录文件的能力
2023-10-30 21:59:24
28
1
原创 嵌入式工程师—每日一问Day6
虚拟文件系统: (Virtual File System,简称VFS)是Linux内核的子系统之一,它为用户程序提供文件和文件系统操作的统一接口,屏蔽不同文件系统的差异和操作细节。进程调度的频率很高,一般几十毫秒一次。4)copy_to_user()、copy_from_user(),是在驱动程序中调用接口,实现用户空间与内核空间的数据拷贝操作,应用于实时性要求不高的项目中。在代码中调用接口,实现内核空间与用户空间的地址映射,在实时性要求很高的项目中为首选,省去拷贝数据的时间等资源,但缺点是不好控制;
2023-10-29 21:07:31
33
1
原创 嵌入式工程师—每日一问Day5
程序的局部变量在栈内分配存储空间,如果该变量在函数中多次被调用,每次变量在栈上的位置也不一定相同。局部变量也可以在堆上动态分配,但是记得使用完这个堆空间后要释放之。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。在程序整个运行期间都不释放,但是对于其他函数无法访问。全局变量在静态存储区,程序开始执行时给全局变量分配存储区,程序执行完毕释放。在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。
2023-10-28 21:46:06
33
原创 嵌入式工程师—每日一问Day4
多数 CPU 都有两种模式,即用户态和内核态,通常由程序状态字(PSW) 寄存器中的一个位来控制这两种模式的切换(通过 TRAP 指令实现切换)。这两种状态其实对应着应用程序访问资源的权限:在用户态只能访问受限的资源,如虚拟内存,全局变量等,而要访问内核等资源需要通过系统调用等方式陷入到内核中;内核态可以访问操作系统的所有资源,包括内存、I/O 等资源。系统调用是在一个进程中,由用户态切换到内核态,在内核中执行任务,或者申请操作系统的资源。进程三种状态:运行态,就绪态,阻塞态。阻塞态:暂时无法运行。
2023-10-26 21:45:21
40
原创 嵌入式工程师—每日一问Day3
内存溢出(out of memory): 是指程序在申请内存时,没有足够的内存空间供其使用,或者是动态开辟的空间,使用之后没有释放。
2023-10-25 22:32:27
42
原创 嵌入式工程师—每日一问Day2
父进程为子进程创造者,父进程可以生成多个子进程;子进程只有一个父进程;进程上文是指进程由用户态切换到内核态,需要保存用户态时cpu寄存器中的值,进程状态以及堆栈上的内容,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行。进程下文是指切换到内核态后执行的程序,即进程运行在内核空间的部分。中断上文,硬件通过中断触发信号,导致内核调用中断处理程序,进入内核空间。这个过程中,硬件的一些变量和参数也要传递给内核,内核通过这些参数进行中断处理。
2023-10-23 21:59:52
37
1
原创 嵌入式工程师—每日一问Day1
进程是程序在一个数据集合上的运行过程,不要包含正在运行的程序实体,还包括程序所占用的系统资源,包括CPU、内存等。一个进程可以拥有多个线程,线程间可以共享进程的资源,但是线程有自己的寄存器和栈,从而保证其相对独立性。进程就是程序的一次执行过程,程序是静态的,其作为系统中的一种资源,永远存在。而进程是动态的,可以动态的产生,变化和消亡的,拥有自己的生命周期。进程是资源(包括内存、打开的文件等)分配的基本单位,线程是 CPU 调度的—基本单位;
2023-10-21 22:24:55
36
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人