我们看linux kernel中virtio驱动相关代码,会发现有很多相关文件。首先有virtio.c这种文件,其次还有virtio_pci.c,virtio_scsi.c等这些文……
无论写什么嵌入式软件,我们都应该首先对硬件有所了解,这样更有助于我们写出高效精简的程序代码。本次活动我们使用的硬件平台是有悠龙公司提供的uTenux\AT91SAM3S4C开发套件……
1. 进程栈
进程栈是属于用户态栈,和进程虚拟地址空间 (Virtual Address Space) 密切相关。那我们先了解下什么是虚拟地址空间……
1、ARM的异常
异常在嵌入式开发中是很常见的事件,它也是非常重要的事件。简单来说,异常就是一种会打断程序正常执行的事件。异常通常又称为“中断”。
异常的种类大致可分为如下……
在Linux当中,物理内存的划分之前已经写过一篇了,今天来讲讲内存的具体分配
首先,内存被分成一个一个的节点,每个节点由不同的区域组成,当在区域内部需要使用物理内存的时候,就是……
一、Linux内核模块基本原理
Linux 内核模块(LKM)是一些在启动的操作系统内核需要时可以载入内核执行的代码块,不需要时由操作系统卸载。它们扩展了操作系统内核功能却不需……
Linux 5.10支持新的AMD安全存储加密(SME)功能,作为安全加密虚拟化(SEV)的一部分。 这次引入的新功能是硬件支持,可提高缓存一致性。 它是由Oracle工程师开发……
在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实像多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问,尤其是在多处理器系统上,更需要一些同步机……
一、前言
其实两年前,本站已经有了一篇关于进程标识的文档,不过非常的简陋,而且代码是来自2.6内核。随着linux container、pid namespace等概念的引入,……
1. 前言
从我们的直观感受来说,DMA并不是一个复杂的东西,要做的事情也很单纯直白。因此Linux kernel对它的抽象和实现,也应该简洁、易懂才是。不过现实却不甚乐观(个……