none
Kernel Heap RRS feed

  • Question

  • Is there any concept or implementation of kernel heap. I don't think so Windows has heap concept in Kernel address space of a process. Am i correct?

    Heap memory reference also can generate page fault, is that right?

    Is there any global heap present where all application and system can share?

    • Edited by Boomi.s Sunday, May 24, 2015 7:27 AM
    Sunday, May 24, 2015 6:51 AM

Answers

  • Windows has a single kernel address space for all processes, the various memory allocations such as ExAllocatePool are kernel addresses so are shared between all processes.

    Heap memory is normally paged memory, but the underlying mechanisms do not require paged memory.

    If by a global heap you mean one that can be accessed from user space of all processes, the answer is no.


    Don Burn Windows Driver Consulting Website: http://www.windrvr.com

    Sunday, May 24, 2015 11:39 AM
  • in the end, a heap is just a data structure and algorithm for efficiently handing out chunks of virtual memory. The pool implementation in windows is a diff structure and algorithm that achieves a similar goal

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    • Marked as answer by Boomi.s Sunday, May 24, 2015 6:15 PM
    Sunday, May 24, 2015 3:06 PM

All replies

  • Windows has a single kernel address space for all processes, the various memory allocations such as ExAllocatePool are kernel addresses so are shared between all processes.

    Heap memory is normally paged memory, but the underlying mechanisms do not require paged memory.

    If by a global heap you mean one that can be accessed from user space of all processes, the answer is no.


    Don Burn Windows Driver Consulting Website: http://www.windrvr.com

    Sunday, May 24, 2015 11:39 AM
  • in the end, a heap is just a data structure and algorithm for efficiently handing out chunks of virtual memory. The pool implementation in windows is a diff structure and algorithm that achieves a similar goal

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    • Marked as answer by Boomi.s Sunday, May 24, 2015 6:15 PM
    Sunday, May 24, 2015 3:06 PM
  • What is the difference between Software Stack and Hardware Stack, when the Hardware Stack is used?

    When a simple program executes, it uses which stack?

    • Edited by Boomi.s Sunday, May 24, 2015 8:21 PM
    Sunday, May 24, 2015 8:19 PM
  • Well I don't normally hear software stack with kernel programming, but the closest would be the driver stack, i.e. where the set of drivers that create a device (i.e. the function driver, bus driver and possibly filter drivers).  A hardware stack is the CPU concept that holds the local variables for functions.


    Don Burn Windows Driver Consulting Website: http://www.windrvr.com

    Sunday, May 24, 2015 8:32 PM