mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-08 18:26:48 +00:00
  实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。   内存管理模块主要由以下类型的组件组成: - **硬件抽象层(MemoryManagementArch)** - 提供对具体处理器架构的抽象,使得内存管理模块可以在不同的处理器架构上运行 - **页面映射器(PageMapper)**- 提供对虚拟地址和物理地址的映射,以及页表的创建、填写、销毁、权限管理等操作。分为两种类型:内核页表映射器(KernelMapper)和用户页表映射器(位于具体的用户地址空间结构中) - **页面刷新器(PageFlusher)** - 提供对页表的刷新操作(整表刷新、单页刷新、跨核心刷新) - **页帧分配器(FrameAllocator)** - 提供对页帧的分配、释放、管理等操作。具体来说,包括BumpAllocator、BuddyAllocator - **小对象分配器** - 提供对小内存对象的分配、释放、管理等操作。指的是内核里面的SlabAllocator (SlabAllocator的实现目前还没有完成) - **MMIO空间管理器** - 提供对MMIO地址空间的分配、管理操作。(目前这个模块待进一步重构) - **用户地址空间管理机制** - 提供对用户地址空间的管理。 - VMA机制 - 提供对用户地址空间的管理,包括VMA的创建、销毁、权限管理等操作 - 用户映射管理 - 与VMA机制共同作用,管理用户地址空间的映射 - **系统调用层** - 提供对用户空间的内存管理系统调用,包括mmap、munmap、mprotect、mremap等 - **C接口兼容层** - 提供对原有的C代码的接口,是的C代码能够正常运行。 除上面的新增内容以外,其它的更改内容: - 新增二进制加载器,以及elf的解析器 - 解决由于local_irq_save、local_irq_restore函数的汇编不规范导致影响栈行为的bug。 - 解决local_irq_save未关中断的错误。 - 修复sys_gettimeofday对timezone参数的处理的bug --------- Co-authored-by: kong <kongweichao@dragonos.org>
187 lines
4.6 KiB
JSON
187 lines
4.6 KiB
JSON
{
|
|
"files.associations": {
|
|
"stdlib.h": "c",
|
|
"stdbool.h": "c",
|
|
"printk.h": "c",
|
|
"stdarg.h": "c",
|
|
"font.h": "c",
|
|
"trap.h": "c",
|
|
"gate.h": "c",
|
|
"process.h": "c",
|
|
"cpu.h": "c",
|
|
"mm.h": "c",
|
|
"glib.h": "c",
|
|
"asm.h": "c",
|
|
"memory.h": "c",
|
|
"irq.h": "c",
|
|
"multiboot2.h": "c",
|
|
"kprint.h": "c",
|
|
"8259a.h": "c",
|
|
"ptrace.h": "c",
|
|
"mouse.h": "c",
|
|
"keyboard.h": "c",
|
|
"apic.h": "c",
|
|
"ps2_keyboard.h": "c",
|
|
"algorithm": "c",
|
|
"array": "c",
|
|
"atomic": "c",
|
|
"*.tcc": "c",
|
|
"bitset": "c",
|
|
"cassert": "c",
|
|
"cctype": "c",
|
|
"cerrno": "c",
|
|
"cfloat": "c",
|
|
"chrono": "c",
|
|
"climits": "c",
|
|
"clocale": "c",
|
|
"cmath": "c",
|
|
"codecvt": "c",
|
|
"condition_variable": "c",
|
|
"cstdarg": "c",
|
|
"cstddef": "c",
|
|
"cstdint": "c",
|
|
"cstdio": "c",
|
|
"cstdlib": "c",
|
|
"cstring": "c",
|
|
"ctime": "c",
|
|
"cwchar": "c",
|
|
"cwctype": "c",
|
|
"deque": "c",
|
|
"exception": "c",
|
|
"forward_list": "c",
|
|
"functional": "c",
|
|
"iterator": "c",
|
|
"list": "c",
|
|
"map": "c",
|
|
"memory": "c",
|
|
"memory_resource": "c",
|
|
"numeric": "c",
|
|
"optional": "c",
|
|
"random": "c",
|
|
"ratio": "c",
|
|
"set": "c",
|
|
"string": "c",
|
|
"string_view": "c",
|
|
"system_error": "c",
|
|
"tuple": "c",
|
|
"type_traits": "c",
|
|
"unordered_map": "c",
|
|
"utility": "c",
|
|
"vector": "c",
|
|
"fstream": "c",
|
|
"initializer_list": "c",
|
|
"ios": "c",
|
|
"iosfwd": "c",
|
|
"istream": "c",
|
|
"limits": "c",
|
|
"locale": "c",
|
|
"mutex": "c",
|
|
"new": "c",
|
|
"ostream": "c",
|
|
"queue": "c",
|
|
"sstream": "c",
|
|
"stdexcept": "c",
|
|
"streambuf": "c",
|
|
"thread": "c",
|
|
"cinttypes": "c",
|
|
"cstdbool": "c",
|
|
"typeinfo": "c",
|
|
"x86_64_ipi.h": "c",
|
|
"unistd.h": "c",
|
|
"syscall_num.h": "c",
|
|
"stdint.h": "c",
|
|
"syscall.h": "c",
|
|
"fcntl.h": "c",
|
|
"types.h": "c",
|
|
"string.h": "c",
|
|
"math.h": "c",
|
|
"ipi.h": "c",
|
|
"arch.h": "c",
|
|
"elf.h": "c",
|
|
"stdio.h": "c",
|
|
"wait_queue.h": "c",
|
|
"stddef.h": "c",
|
|
"spinlock.h": "c",
|
|
"stat.h": "c",
|
|
"video.h": "c",
|
|
"libm.h": "c",
|
|
"ahci.h": "c",
|
|
"slab.h": "c",
|
|
"boot_info.h": "c",
|
|
"pci.h": "c",
|
|
"time.h": "c",
|
|
"ia64_msi.h": "c",
|
|
"errno.h": "c",
|
|
"bug.h": "c",
|
|
"apic_timer.h": "c",
|
|
"sched.h": "c",
|
|
"preempt.h": "c",
|
|
"softirq.h": "c",
|
|
"screen_manager.h": "c",
|
|
"textui.h": "c",
|
|
"atomic.h": "c",
|
|
"uart.h": "c",
|
|
"fat_ent.h": "c",
|
|
"semaphore.h": "c",
|
|
"mm-types.h": "c",
|
|
"vfs.h": "c",
|
|
"current.h": "c",
|
|
"proc-types.h": "c",
|
|
"traceback.h": "c",
|
|
"bitcount.h": "c",
|
|
"limits.h": "c",
|
|
"block.h": "c",
|
|
"blk_types.h": "c",
|
|
"mutex.h": "c",
|
|
"mount.h": "c",
|
|
"internal.h": "c",
|
|
"devfs.h": "c",
|
|
"devfs-types.h": "c",
|
|
"chardev.h": "c",
|
|
"rootfs.h": "c",
|
|
"tty.h": "c",
|
|
"idr.h": "c",
|
|
"ktest_utils.h": "c",
|
|
"kthread.h": "c",
|
|
"lockref.h": "c",
|
|
"compiler_attributes.h": "c",
|
|
"timer.h": "c",
|
|
"hid.h": "c",
|
|
"proc.h": "c",
|
|
"compiler.h": "c",
|
|
"hpet.h": "c",
|
|
"numa.h": "c",
|
|
"procfs.h": "c",
|
|
"err.h": "c",
|
|
"rtc.h": "c",
|
|
"list.h": "c",
|
|
"completion.h": "c",
|
|
"fat32.h": "c",
|
|
"irqflags.h": "c",
|
|
"dirent.h": "c",
|
|
"cmd_help.h": "c",
|
|
"wait.h": "c",
|
|
"__libc__.h": "c",
|
|
"ctype.h": "c",
|
|
"signal.h": "c",
|
|
"mmio.h": "c",
|
|
"stdint-gcc.h": "c",
|
|
"acpi.h": "c",
|
|
"assert.h": "c",
|
|
"sys_version.h": "c",
|
|
"cmd.h": "c",
|
|
"user_namespace.h": "c",
|
|
"sleep.h": "c",
|
|
"net.h": "c",
|
|
"lz4.h": "c",
|
|
"cmd_test.h": "c",
|
|
"cmpxchg.h": "c"
|
|
},
|
|
"C_Cpp.errorSquiggles": "enabled",
|
|
"esbonio.sphinx.confDir": "",
|
|
"rust-analyzer.cargo.target": "x86_64-unknown-none",
|
|
"rust-analyzer.checkOnSave.allTargets": false,
|
|
"rust-analyzer.linkedProjects": [
|
|
"./kernel/Cargo.toml"
|
|
]
|
|
} |