- 博客(5)
- 收藏
- 关注
原创 Linux内核——ioremap映射函数
(Memory Manage Unit),即内存管理单元。其主要功能为:1.完成虚拟空间到物理空间的映射2.内存保护,设置存储器的访问权限对于有MMU的处理器,Linux内核启动时会初始化MMU,设置内存映射,设置好以后处理器访问的都是虚拟地址,而访问不到物理地址。在Linux内核中,有许多与硬件相关的操作需要使用到物理内存地址。然而,在内核态中,直接访问物理内存是非常危险的,容易导致系统崩溃。因此,为了安全地访问物理内存,Linux内核提供了ioremap函数。如何解决这个问题呢?需要用到地址映射。
2024-04-01 21:19:20
2277
原创 Linux系统调用之文件IO--内部机制
计算机系统的各种硬件资源是有限的,在多任务操作系统上操作时,同时运行的多个进程都需要访问这些资源,为了更好的管理这些资源进程,将这些进程交给了操作系统来管理,所以用户空间访问内核空间的唯一方式就是通过操作系统,操作系统提供。当应用程序进行系统调用的时候,进程运行状态会发生变化,进程会从运行态变为内核态,当调用完成后,则从内核态变为运行态。在linux中系统调用是用户空间访问内核的唯一手段,除异常和陷入外,他们是内核唯一的合法入口。系统调用是操作系统相关的,因此一般没有跨操作系统的可移植性。
2024-03-02 21:32:27
351
原创 Linux系统调用IO--read函数详解
函数从给定的文件描述符指定的文件中,读取 count个字节的数据,存放至 buf中。size_t:无符号整型 unsigned int。返回 -1:文件读取失败,设置 errno 指出失败原因。void* buf:缓冲区,一般是一个数组,用于存放读取的内容。ssize_t:有符号整型 int。返回 >0:本次所成功读取的字节数。size_t count:一次要读取的最大字节数。返回 0:文件读取结束。int fd:指定要读写的文件描述符。
2024-03-01 22:42:39
743
1
原创 Linux系统调用IO--open函数详解
mode参数表示设置文件访问权限的初始值,和用户掩码umask有关,比如0644(三位八进制分别表示三种权限)表示-rw-r–r–,也可以用S_IRUSR、S_IWUSR等宏定义按位或起来表示,详见open(2)的Man Page。O_NONBLOCK //如果路径名指向 FIFO/块文件/字符文件,则把文件的打开和后继 I/O设置为非阻塞模式(nonblocking mode)。O_EXCL //表示如果要创建的文件已存在,则出错,同时返回 -1,并且修改 errno 的值。
2024-03-01 21:19:44
1164
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人