OPERATING SYSTEM #09

User Mode

  1. Code, data, and stack all have their own page frames. For the time being, allotting one page frame for the stack and enough page frames to fit the program’s code is sufficient.
  2. The binary from the GRUB module has to be copied to the page frames used for the programs code.
  3. To map the above page frames into memory, you’ll require a page directory and page tables. Because the code and data should be mapped in at 0x00000000 and increasing, and the stack should start just below the kernel, at 0xBFFFFFFB, and increase towards lower addresses, at least two page tables are required. To allow PL3 access, the U/S flag must be set.
[esp + 16]  ss      ; the stack segment selector we want for user mode
[esp + 12] esp ; the user mode stack pointer
[esp + 8] eflags ; the control flags we want to use in user mode
[esp + 4] cs ; the code segment selector
[esp + 0] eip ; the instruction pointer of user mode code to execute
USER_MODE_CODE_SEGMENT_SELECTOR equ 0x18
USER_MODE_DATA_SEGMENT_SELECTOR equ 0x20
mov cs, USER_MODE_CODE_SEGMENT_SELECTOR | 0x3
mov ss, USER_MODE_DATA_SEGMENT_SELECTOR | 0x3
OUTPUT_FORMAT("binary")    /* output flat binary */    SECTIONS
{
. = 0; /* relocate to address 0 */
.text ALIGN(4):
{
start.o(.text)
*(.text)
}
.data ALIGN(4):
{
*(.data)
}
.rodata ALIGN(4):
{
*(.rodata*)
}
}

--

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

‘Pakistan An Arsonist Disguised as Fire-fighter’ Says Indian Diplomat at UN in Response to Imran…

How to Mix Chainsaw Gas and Oil

How to Mix Chainsaw Gas and Oil

Hello world

Développé Arnold

Great opportunity to those who needs to be rich fame talents wisdom wealth power knowledge and…

Thank you so much for including me in this list!

Hmmm — shall Tanki aPoo’ go flying inA his Super Cape

Move after snippet and add line numbers

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Sureshkumar kajanthan

Sureshkumar kajanthan

More from Medium

Memory Champion

Expanding the capabilities of dApp creators and blockchain ecosystems

MIT Scientists Create ‘Twist’, A New Programming Language For Quantum Computing…

Coping With Stress on Mars and Venus