社区
Linux_Kernel
帖子详情
关于cpu_gdt_table[GDT_ENTRIES]的问题
orclc
2005-08-03 03:23:15
我在程序了作了如下声明:
extern struct desc_struct cpu_gdt_table[GDT_ENTRIES];
编译时出错,错误信息为:
array type has incomplete element type
这是为什么啊?
...全文
162
回复
打赏
收藏
关于cpu_gdt_table[GDT_ENTRIES]的问题
我在程序了作了如下声明: extern struct desc_struct cpu_gdt_table[GDT_ENTRIES]; 编译时出错,错误信息为: array type has incomplete element type 这是为什么啊?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pwndbg 的
gdt
命令:在 GDB 中解码 x86-64 全局描述符表(
GDT
)条目
`
gdt
` 是 pwndbg 提供的一个面向内存类别(Memory)的调试命令,用于在 GDB / LLDB 会话中读取并解码 x86-64 架构的全局描述符表(Global Descriptor
Table
,
GDT
)条目。它从一个
GDT
R 基地址开始,按 8 字节一个描述符逐条解析出基址、段界限、访问权限字节与标志位,并以红绿双色直观标注每个位字段的语义状态。阅读本文后,你将掌握 `
gdt
`
操作系统内核空间初始化全解析:从实模式到多核启动
操作系统内核初始化是计算机启动过程中最关键的环节,它构建了所有应用程序运行的底层环境。内核空间在最高特权级Ring 0执行,直接控制硬件资源。现代操作系统采用分阶段初始化策略,包括早期初始化、核心子系统初始化和后期初始化。在x86架构中,这个过程涉及从实模式到保护模式的转换、内存管理单元激活、中断控制器配置等关键技术。通过ACPI表解析和SMP启动流程,内核能够有效管理多核处理器资源。理解内核初始化原理对系统调优、嵌入式开发及故障诊断都具有重要价值,特别是在启动时间优化和硬件兼容性调试等场景中。
linux内核体系结构007:建造 Linux 城:魔法门与无限帝国 —— 深度解剖内存管理
如果说之前的“进程”章节是在讲一座城市的“居民”(进程),那么这一章,就是关于这座城市的**“土地规划”和“房产分配”**。它解释了为什么我们的程序可以轻松使用远超物理内存的大空间,也解释了当
CPU
访问一个内存地址时,背后究竟发生了什么复杂的“地址空间跳跃”。我会用最通俗的语言,帮你完全“吃透”书中的这三页。不仅会剖析物理内存布局,还会解开“逻辑地址→线性地址→物理地址”这条关键的转换链条,并为广大读者提供一个。
第03章 引导启动程序(3):386的觉醒——head.s与32位保护模式大门(代码解析)
本文分析了Linux 0.11内核中的head.s汇编代码,这是32位启动阶段的核心程序。代码主要完成了以下关键任务: 初始化IDT和
GDT
,为保护模式建立中断和内存管理基础; 检测数学协处理器并设置CR0寄存器; 验证A20地址线是否真正开启; 建立页目录和页表,启用386的分页机制; 通过精巧的栈操作实现从汇编到C语言main()函数的跳转。 这段237行的代码标志着从16位实模式到32位保护模式的关键过渡,为后续内核运行奠定了基础。代码采用AT&T语法以便与GCC工具链兼容,体现了早期Linux内核与
Linux early_idt_handler早期中断处理与ignore_int
在内核进入start_kernel、setup_arch和trap_init完成完整的IDT初始化之后,early_idt_handler和ignore_INT会被替换为完整的中断处理系统。该机制的实现位于arch/x86/kernel/head64.c和arch/x86/kernel/head_64.S中,是内核最早建立的中断处理设施。early_idt_handler的建立发生在startup_64入口之后,内核进入x86_64_start_kernel之前。// 查找异常修复表,尝试修复可恢复异常。
Linux_Kernel
4,469
社区成员
17,458
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章