Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Piranha, the clone_directory and clone_table functions really shouldn't have changed at all. I'm looking at a diff now between multitasking.tar.gz and user_mode.tar.gz...
There's a temporary line which i forgot to remove: in initialise_paging(), the while() loop, it has placement_address+0x1000 commented out and 0x400000 put in instead. Remove that, and see what happens?
PS: More specifically - *how* does it pagefault? what's the address of the pagefault? the mode bits?
I haven't tested it or even looked through the code, but I must say thank you. Your tutorials are always amazing, and I look forward to reading the accompining html pages...
What is your tutorial plan of action after user-land & syscalls?
Thanks and keep it up,
Rich
Mouse Pad - Coming in the distant future... Kernel: Indigo Kernel - v0.0.1
Thanks to JamesM and BrokenThorn for there tutorials!
White-spirit wrote:Combuster, please read what I write
Your point? You didn't explain why the standard cygwin gcc doesn't work.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
I haven't looked at this (yet), and this is somewhat O/T, but I'd just like to say thanks for your tutorial, JamesM. I have it bookmarked and it's a great resource for those people who, like me, are just starting out and haven't a clue
astrocrep wrote:I haven't tested it or even looked through the code, but I must say thank you. Your tutorials are always amazing, and I look forward to reading the accompining html pages...
What is your tutorial plan of action after user-land & syscalls?
Thanks and keep it up,
Rich
Hi, and thanks!
The plan of action is (loosely):
- user mode and syscalls (done)
- loading executables (ELF)
- kernel modules
- porting an app, and this will be the end. Possibly nasm and dash, at least some kind of shell
White-spirit wrote:Combuster, please read what I write
Your point? You didn't explain why the standard cygwin gcc doesn't work.
It's because Windows adds calls to malloc & co to test the memory, so you have to remove them .
Also, GCC must output an elf object, so you need a cross compiler
It's because Windows adds calls to malloc & co to test the memory
Yeh wha?!?! *boggles* - why on earth would (a) a memory test need to occur when an application is started and (b) malloc() be used to test it?! Are you sure you didn't just pull that out of your derriere? (also note that __alloca != malloc by any stretch of the imagination)
Oh, and your commands to compile my kernel tutorial create a binary object linked at 0x1000 instead of an ELF object linked at 0x100000, so it's pretty misleading.
DISCLAIMER: I don't know much about cygwin (first paragraph).
Cheers,
I meant alloca sorry ( it's probably because i'm recoding malloc for my OS at this moment so ... ) , and this _alloca is incorporated by the compiler ( only Windows as I see ) for conducting tests of memory allocation on the status of the stack, it is possible to specify not to incorporate this test with the keyword -mno-stack-arg-probe .
astrocrep wrote:I haven't tested it or even looked through the code, but I must say thank you. Your tutorials are always amazing, and I look forward to reading the accompining html pages...
What is your tutorial plan of action after user-land & syscalls?
Thanks and keep it up,
Rich
Hi, and thanks!
The plan of action is (loosely):
- user mode and syscalls (done)
- loading executables (ELF)
- kernel modules
- porting an app, and this will be the end. Possibly nasm and dash, at least some kind of shell
Cheers,
James
Wow... sounds very exciting... I look forward to more to come!
-Rich
Mouse Pad - Coming in the distant future... Kernel: Indigo Kernel - v0.0.1
Thanks to JamesM and BrokenThorn for there tutorials!
zaleschiemilgabriel wrote:I took a look at the code, and I must say, I like the way you put everything just at the right spot, and made everything in separate source files.
JamesM wrote:and this will be the end
That's funny.
Thanks,
Gabriel
Hi,
Thanks! although I don't get what's funny... Damn! It seems my infallible British sense of humour has let me down!