DragonOS/.vscode/settings.json
LoGin 40fe15e095
新的内存管理模块 (#303)
  实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。

  内存管理模块主要由以下类型的组件组成:

- **硬件抽象层(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>
2023-07-22 16:27:02 +08:00

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"
]
}