When your OS goes crazy - Screenshots
- gravaera
- Member
- Posts: 737
- Joined: Tue Jun 02, 2009 4:35 pm
- Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.
Re: When your OS goes crazy - Screenshots
Maybe you could work next on making sure your OS is independent of any particular bootloader, given a pre-defined stable machine state
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
Re: When your OS goes crazy - Screenshots
Actually, it works with any multiboot-compliant boot loader that has ELF32 support. It's just that writing "GRUB" makes the message easier to understand. And since in a very distant future where sheeps can fly, my OS could become less technical-oriented...
And if you replace the bootstrap part (cf visual explanation of my booting process below), it works with whatever bootloader you want... Only the machine state after execution of the bootstrap kernel matters, and content of BSK is highly bootloader- and platform-dependent and should have been rewritten anyway ^^
And if you replace the bootstrap part (cf visual explanation of my booting process below), it works with whatever bootloader you want... Only the machine state after execution of the bootstrap kernel matters, and content of BSK is highly bootloader- and platform-dependent and should have been rewritten anyway ^^
Re: When your OS goes crazy - Screenshots
From working on video and fonts. The emulator crashed at this point
Valix is an experiment in an interpreted userspace with object-oriented and functional design patterns. Developers needed! Join #valix on irc.freenode.net
- piranha
- Member
- Posts: 1391
- Joined: Thu Dec 21, 2006 7:42 pm
- Location: Unknown. Momentum is pretty certain, however.
- Contact:
Re: When your OS goes crazy - Screenshots
I recently made the kernel do user-mode for all tasks above 1...here is the screen-shot of a typical boot-up now (this didn't happen before...lol), where pagefaults occur everywhere. How fun.
-JL
-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
Re: When your OS goes crazy - Screenshots
I've been working on this for a couple of hours, to learn; currently it just prints text. I wrote my itoa() and vsnprintf() functions kind of hurriedly and the result is that I've created a sexist kernel.
Also, I don't know how many seconds there are in a triangle, but my reboot() function hasn't actually been written yet. Although, I know how to do it (in a nasty way -- using a triple fault through the keyboard controller).
I fixed it:
I can't be asked to deal with the cursor right now, it seems to move of it's own accord. Anyway, I guess that's the 'easy' part out of the way
Also, I don't know how many seconds there are in a triangle, but my reboot() function hasn't actually been written yet. Although, I know how to do it (in a nasty way -- using a triple fault through the keyboard controller).
I fixed it:
I can't be asked to deal with the cursor right now, it seems to move of it's own accord. Anyway, I guess that's the 'easy' part out of the way
Re: When your OS goes crazy - Screenshots
Why do you need to use 'a nasty way'? The wiki page for rebooting gives you a couple of fairly nice methods. The blank-IDT one, in particular, should be pretty nice: 'lidt <zero-limit ptr>; int $n'Synon wrote:my reboot() function hasn't actually been written yet. Although, I know how to do it (in a nasty way -- using a triple fault through the keyboard controller).
Text Mode Cursor should help there. Anyway, the only time you're likely to want to draw a cursor is when you're doing a prompt, so it should be hidden until then anyway.Synon wrote:I can't be asked to deal with the cursor right now, it seems to move of it's own accord.
Edit: This resource looks like it explains how to manipulate the text-mode cursor directly.
Re: When your OS goes crazy - Screenshots
Something went wrong, I'm sure of it. But that error message sounds... well... not very helpful. Does this mean that the error has somehow something to do with triangles ?
Re: When your OS goes crazy - Screenshots
In case you guys wondered what happens when 64-bit code is run in 32-bit compatibility mode...
...add up a triple fault when the end of video memory is reached, and now you know
Last edited by Neolander on Mon Jun 21, 2010 9:48 am, edited 1 time in total.
Re: When your OS goes crazy - Screenshots
Microsoft should put this message at their RSOD(Red Screen Of Death), that was introduced in the Windows 7.Neolander wrote:Something went wrong, I'm sure of it. But that error message sounds... well... not very helpful. Does this mean that the error has somehow something to do with triangles ?
Re: When your OS goes crazy - Screenshots
Afaik, it was introduced in Vista...Nathan wrote:Microsoft should put this message at their RSOD(Red Screen Of Death), that was introduced in the Windows 7.
Re: When your OS goes crazy - Screenshots
I never got a BSOD/RSOD when I was using Windows Vista, I just got it on my Windows 7.
Re: When your OS goes crazy - Screenshots
My best messup isn't captured in a screenshot. It was an instruction trace of over 2 million instructions when I was trying to get thread switching working. And demand-paging. That combination is what made it take so long.
I had implemented threading and a basic round-robin scheduler. I had forgotten (oops #1) to initialize the "next" pointer on one thread. That made it jump to arbitrary data within the valid memory region. That made the demand-pager (which was 100% working first time off) page in a page. It didn't wipe the page though. So, the threading logic reads that thread's descriptor, sees that the "runnable" enum isn't "RUNNABLE" and goes to the next "next" pointer. Which is, again, uninitialized. It kept doing this for some 30 cycles and then by pure chance came upon a page that was empty (bochs debugging ). That made it not runnable but did make the "next" pointer 0 - in effect, making it go to the idle thread.
So it worked, but did make quite a mess of it.
I had implemented threading and a basic round-robin scheduler. I had forgotten (oops #1) to initialize the "next" pointer on one thread. That made it jump to arbitrary data within the valid memory region. That made the demand-pager (which was 100% working first time off) page in a page. It didn't wipe the page though. So, the threading logic reads that thread's descriptor, sees that the "runnable" enum isn't "RUNNABLE" and goes to the next "next" pointer. Which is, again, uninitialized. It kept doing this for some 30 cycles and then by pure chance came upon a page that was empty (bochs debugging ). That made it not runnable but did make the "next" pointer 0 - in effect, making it go to the idle thread.
So it worked, but did make quite a mess of it.
Re: When your OS goes crazy - Screenshots
Yes! My 8086 emulator is working. It's changing mode! Wait what's that, it's slowing down? What's going on?! Oh god what...
http://j-software.dk | JPasKernel - My Object Pascal kernel
Re: When your OS goes crazy - Screenshots
hey guys just started doing P-mode stuff the day before yesterday and here is a screen-shot of my awesome print string function which uses a mean as interrupt that only can print one letter to a location on the screen and change cursor location, that is the extent of my interrupts.
and this is how awesome it works.
obviously i didn't stop printing quick enough
the line drawing, open circle, two of the f's and that roman letter are flashing at the same time as the cursor is underneath the spade symbol, I printed the A before I tryed to print string.
and this is how awesome it works.
obviously i didn't stop printing quick enough
the line drawing, open circle, two of the f's and that roman letter are flashing at the same time as the cursor is underneath the spade symbol, I printed the A before I tryed to print string.
- Bobman801 -