首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux内核编程_linux内核是什么

内核——操作系统的内在核心 设备驱动程序 启动引导程序 命令行shell 其他种类的用户界面—-操作系统的外在表象 基本的文件管理工具和系统工具 Linux内核的组成 Linux内核源代码目录结构是什么...内存管理的主要作用是什么? 控制多个进程安全地共享主内存区域。当CPU提供内存管理单元(MMU)时,Linux 内存管理完成为每个进程进行虚拟内存到物理内存的转换。 进程的地址空间时怎样划分的?...只能通过系统调用和硬件中断完成 Linux内核的编译及加载 内核的配置系统由哪既部分组成? Makefile:分布在Linux 内核源代码中的Makefile,定义Linux 内核的编译规则。...MODULES 在X86 PC上从上电/复位到运行Linux 用户空间,进入与Linux 相关代码之前,会经历哪些阶段?...Linux下的C 编程 Linux中宏定义、变量名、函数名命名习惯是什么

18.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux的inode是什么

    最近在做运维指标的梳理工作,其中一个就是Linux系统中的inode,这就想到了之前维护的某套系统,逻辑是将主机的报文,存储到本地文件,客户通过FTP下载这些文件,实现报文转发。...Linux中的inode作用到底是什么? 这篇文章介绍的很清晰,学习一下。...https://www.cnblogs.com/llife/p/11470668.html 操作系统的文件数据除了实际内容之外,通常含有非常多的属性,例如Linux操作系统的文件权限与文件属性。...而文件名存放在目录当中,但Linux系统内部不使用文件名,而是使用inode号码识别文件。对于系统来说文件名只是inode号码便于识别的别称。...一般情况下,每个inode号码对应一个文件名,但是Linux允许多个文件名指向同一个inode号码。

    5.9K11

    Linux 内核 内存管理】引导内存分配器 bootmem ② ( bootmem_data 结构体源码分析 | bootmem_data 与内存节点 pglist_data 的关联 )

    文章目录 一、bootmem_data 结构体源码分析 1、node_min_pfn 成员 2、node_low_pfn 成员 3、node_bootmem_map 成员 4、last_end_off...成员 5、hint_idx成员 二、引导内存分配器 bootmem_data 与 内存节点 pglist_data 的关联 在上一篇博客 【Linux 内核 内存管理】引导内存分配器 bootmem...① ( 引导内存分配器 bootmem 工作机制 | 引导内存分配器 bootmem 的描述 bootmem_data 结构体 ) 引入了 " 引导内存分配器 bootmem " 其作用是在 Linux...; struct list_head list; } bootmem_data_t; 源码路径 : linux-4.12\include\linux\bootmem.h#33 一、bootmem_data...node_min_pfn; 2、node_low_pfn 成员 node_low_pfn 成员表示 结束的物理页 编号 ; unsigned long node_low_pfn; 3、node_bootmem_map

    92610

    Linux基础(目录是什么鬼)

    linux下,一个目录下放了很多文件,还有其他的子目录,但是目录的大小却总是只有4096字节。这是怎么回事呢?来听听北理工林思佳同学的分享。 先来看看这个目录: /usr ?...所以,linux的目录并没有存放文件本身。这是linux跟windows不同之处。 Linux的目录只是代表一个路径,存放的只是目录项。目录项由文件名和i-node number组成。...由此可以推出,inode和文件数据并不是在同一片地方的,这和linux的文件系统有关系。linux是先有路径,再有分区的,这个路径就像是一棵倒挂的树,由 / 根目录开始。...所以典型的linux分区如下: ? 也就可以推出在同一个分区内使用mv命令移动文件的时候,不管文件有多大,基本都是瞬间完成,因为只是目录项的改变而已,对于文件数据的位置并没有变化。

    4.5K30

    Linux-3.14.12内存管理笔记【建立内核页表(1)】

    前面已经分析过了Intel的内存映射和linux的基本使用情况,已知head_32.S仅是建立临时页表,内核还是要建立内核页表,做到全面映射的。...(MAXMEM) 其中PFN_DOWN(x)的定义为: (file:/include/linux/pfn.h) #define PFN_DOWN(x) ((x) >> PAGE_SHIFT...Linux是一个支持多硬件平台的操作系统,各种硬件芯片的分页并非固定的2级(页全局目录和页表),仅仅Intel处理器而言,就存在3级的情况(页全局目录、页中间目录和页表),而到了64位系统的时候就成了4...所以Linux为了保持良好的兼容性和移植性,系统设计成了以下的4级分页模型,根据平台环境和配置的情况,通过将页上级目录和页中间目录的索引位设置为0,从而隐藏了页三级目录和页中间目录的存在。...由此管中窥豹,看到了Linux内存分页映射模型的存在和相关设计,暂且也就先了解这么多。 分析宏是一件很乏味的事情,不过以小见大却是一件很有意思的事情。

    1.9K41

    一文掌握 Linux 内存管理

    Linux 内存管理是一个很复杂的“工程”,它不仅仅是对物理内存的管理,也涉及到虚拟内存管理、内存交换和内存回收等 物理内存的探测 Linux 内核通过 detect_memory()函数实现对物理内存的探测...在段描述符表准备完成之后会通过汇编跳转到保护模式 事实上,在上面这个过程中,linux 并没有明显地去区分每个段,所以这里并没有很好地起到保护作用,linux 最终使用的还是内存分页管理(开启页式映射可以参考...到这里,可以大致知道linux 虚拟内存的构造: linux 内存分页 linux 内核主要是通过内存分页来管理内存的,这里先介绍两个重要的变量:max_pfn 和 max_low_pfn。...Middle Directory) 页表(Page Table) 对于没有启动 PAE(物理地址扩展)的 32 位系统,Linux 虽然也采用四级分页模型,但本质上只用到了两级分页,Linux 通过将...在 linux 内核直接映射区里内核逻辑地址与物理页的转换关系如下: #define pfn_to_virt(pfn) __va(pfn_to_phys(pfn)) #define virt_to_pfn

    2.1K31

    Linux内核虚拟内存管理之匿名映射缺页异常分析

    作者简介 韩传华,就职于南京大鱼半导体有限公司,主要从事linux相关系统软件开发工作,负责Soc芯片BringUp及系统软件开发,乐于分享喜欢学习,喜欢专研Linux内核源代码。...注:本文使用linux-5.0内核源代码。文章分为以下几节内容: 1.匿名映射缺页异常的触发情况 2.0页是什么?为什么使用0页?...二,0页是什么?为什么使用0页? 这里为什么会说到0页呢?什么是0页呢?是地址为0的页吗?答案是:系统初始化过程中分配了一页的内存,这段内存全部被填充0。...我们主要研究这个语句:pfn_pte用来将页帧号和页表属性拼接为页表项值: arch/arm64/include/asm/pgtable.h: 77 #define pfn_pte(pfn,prot)...那么我们想知道的时候是什么时候0页被设置为了只读属性的(也就是页表项何时被设置为只读)? 我们带着这个问题去在内核代码中寻找答案。

    2.9K32

    Linux-3.14.12内存管理笔记【构建内存管理框架(1)】

    由于NUMA存储结构的引入,这就需要相应的管理机制来支持, linux 2.4版本就已经开始对其支持了。...于是当前分析的3.14.12版本,linux的物理内存管理机制将物理内存划分为三个层次来管理,依次是:Node(存储节点)、Zone(管理区)和Page(页面)。 ?...linux内核的设计就是腾出32个页全局目录项,256的1/8。那么32个页全局目录项对应多大的内存空间?算一下可以知道是128M,也就是说直接映射的内存空间是896M。...= highend_pfn = max_pfn; if (max_pfn > max_low_pfn) highstart_pfn = max_low_pfn; printk...这里sparse memory涉及到linux的一个内存模型概念。linux内核有三种内存模型:Flat memory、Discontiguous memory和Sparse memory。

    87020
    领券