When your OS goes crazy - Screenshots

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.
darklink
Posts: 1
Joined: Sat Feb 04, 2017 11:48 am
Libera.chat IRC: darklink

Re: When your OS goes crazy - Screenshots

Post by darklink »

"Maybe I should use linked lists for the PMM stack"

Code: Select all

        if(!isUsed(i))
            continue;
        push(i); //Mark as free
Image
"Well…"
User avatar
Kazinsal
Member
Member
Posts: 559
Joined: Wed Jul 13, 2011 7:38 pm
Libera.chat IRC: Kazinsal
Location: Vancouver
Contact:

Re: When your OS goes crazy - Screenshots

Post by Kazinsal »

I left a scheduler test on to make sure it wouldn't leak any memory over a long period of time by setting up two threads (one to spin idly, the other to instantly invoke KeSyscallYield and give up its time share whenever it received one) and letting it sit. Didn't lose any memory, but I lost a chunk of hard drive space, having accidentally left the scheduler debug statements turned on...

I came back to find a very large serial dump file with this over and over and over and over...

Code: Select all

KeTimePITInterrupt: Invoking KeTaskingSwitch (reason: timer tick).
KeTaskingSwitch: About to switch tasks to thread 2 (process 1).
KeSyscallHandler: System call invoked by thread 2!
KeSyscallHandler: EAX = 0x00000000, EBX = 0x00000000, ECX = 0x00000000
KeSyscallHandler: EDX = 0x00000000, ESI = 0x00000000, EDI = 0x00000000
KeSyscallYield: Yielding thread 2.
KeTaskingSwitch: About to switch tasks to thread 3 (process 1).
KeTimePITInterrupt: Invoking KeTaskingSwitch (reason: timer tick).
KeTaskingSwitch: About to switch tasks to thread 2 (process 1).
KeSyscallHandler: System call invoked by thread 2!

[ ... over a gigabyte of repetitive logs snipped ... ]
Oops. At least my debugging statements don't leak any memory!
User avatar
Octacone
Member
Member
Posts: 1138
Joined: Fri Aug 07, 2015 6:13 am

Re: When your OS goes crazy - Screenshots

Post by Octacone »

Something went wrong... Aka half-broken state machine. :D
Attachments
SomethingWentWrong.png
SomethingWentWrong.png (11.46 KiB) Viewed 7507 times
OS: Basic OS
About: 32 Bit Monolithic Kernel Written in C++ and Assembly, Custom FAT 32 Bootloader
User avatar
CorruptedByCPU
Member
Member
Posts: 79
Joined: Tue Feb 11, 2014 4:59 pm

Re: When your OS goes crazy - Screenshots

Post by CorruptedByCPU »

Without new_line char translated :D

Image
https://blackdev.org/ - system programming, my own 64 bit kernel and software.
User avatar
Sik
Member
Member
Posts: 251
Joined: Wed Aug 17, 2016 4:55 am

Re: When your OS goes crazy - Screenshots

Post by Sik »

Is it me or the blue channel is shifted by 1 pixel? o_o
User avatar
CorruptedByCPU
Member
Member
Posts: 79
Joined: Tue Feb 11, 2014 4:59 pm

Re: When your OS goes crazy - Screenshots

Post by CorruptedByCPU »

Sik wrote:Is it me or the blue channel is shifted by 1 pixel? o_o
You're almost right :)
https://blackdev.org/ - system programming, my own 64 bit kernel and software.
User avatar
osdever
Member
Member
Posts: 492
Joined: Fri Apr 03, 2015 9:41 am
Contact:

Re: When your OS goes crazy - Screenshots

Post by osdever »

Tried to implement double-buffering :D
Attachments
Screenshot_20170210_143906.png
Screenshot_20170210_143906.png (7.11 KiB) Viewed 7410 times
Developing U365.
Source:
only testing: http://gitlab.com/bps-projs/U365/tree/testing

OSDev newbies can copy any code from my repositories, just leave a notice that this code was written by U365 development team, not by you.
User avatar
osdever
Member
Member
Posts: 492
Joined: Fri Apr 03, 2015 9:41 am
Contact:

Re: When your OS goes crazy - Screenshots

Post by osdever »

UPD: recorded a video.

Developing U365.
Source:
only testing: http://gitlab.com/bps-projs/U365/tree/testing

OSDev newbies can copy any code from my repositories, just leave a notice that this code was written by U365 development team, not by you.
User avatar
Octacone
Member
Member
Posts: 1138
Joined: Fri Aug 07, 2015 6:13 am

Re: When your OS goes crazy - Screenshots

Post by Octacone »

osdeverr wrote:Tried to implement double-buffering :D
That is what happens to me every single time I try to implement it. I couldn't fix it for months so I gave up. SSE memory copy is just too tough.

Old picture of mine:
Image
OS: Basic OS
About: 32 Bit Monolithic Kernel Written in C++ and Assembly, Custom FAT 32 Bootloader
User avatar
MajickTek
Member
Member
Posts: 101
Joined: Sat Dec 17, 2016 6:58 am
Libera.chat IRC: MajickTek
Location: The Internet
Contact:

Re: When your OS goes crazy - Screenshots

Post by MajickTek »

octacone wrote:
osdeverr wrote:Tried to implement double-buffering :D
That is what happens to me every single time I try to implement it. I couldn't fix it for months so I gave up. SSE memory copy is just too tough.

Old picture of mine:
Image
It looks quite cool though. Double mouse support anyone?
Everyone should know how to program a computer, because it teaches you how to think! -Steve Jobs

Code: Select all

while ( ! ( succeed = try() ) ); 
User avatar
SpyderTL
Member
Member
Posts: 1074
Joined: Sun Sep 19, 2010 10:05 pm

Re: When your OS goes crazy - Screenshots

Post by SpyderTL »

osdeverr wrote:UPD: recorded a video.
What is ironic is that you would probably have a pretty hard time writing code to do that, if you were doing it on purpose.

You guys should start with simple REPD copying until everything is stable, and then swap it out with a faster method after it has been tested.

Step 1: make it work.
Step 2: make it fast.
Step 3: make it bulletproof.
Project: OZone
Source: GitHub
Current Task: LIB/OBJ file support
"The more they overthink the plumbing, the easier it is to stop up the drain." - Montgomery Scott
User avatar
Octacone
Member
Member
Posts: 1138
Joined: Fri Aug 07, 2015 6:13 am

Re: When your OS goes crazy - Screenshots

Post by Octacone »

MajickTek wrote:
octacone wrote:
osdeverr wrote:Tried to implement double-buffering :D
That is what happens to me every single time I try to implement it. I couldn't fix it for months so I gave up. SSE memory copy is just too tough.

Old picture of mine:
[imgsnip]http://forum.osdev.org/download/file.php?id=3349&mode=view[/img]
It looks quite cool though. Double mouse support anyone?
Yeah it does look cool but not functional. It looks like that I am better at creating mosaics than coding. :P
Dual mouse support would be epic, just image that! Endless possibilities.
OS: Basic OS
About: 32 Bit Monolithic Kernel Written in C++ and Assembly, Custom FAT 32 Bootloader
Korona
Member
Member
Posts: 1000
Joined: Thu May 17, 2007 1:27 pm
Contact:

Re: When your OS goes crazy - Screenshots

Post by Korona »

Image

I'm currently writing a native graphics mode setting driver (for the Intel G45 chipset) for my OS. This is what happens when you set a bad pixel clock :D. This imgur album (click me) has another funny fail and a picture of the working driver.
managarm: Microkernel-based OS capable of running a Wayland desktop (Discord: https://discord.gg/7WB6Ur3). My OS-dev projects: [mlibc: Portable C library for managarm, qword, Linux, Sigma, ...] [LAI: AML interpreter] [xbstrap: Build system for OS distributions].
User avatar
Octacone
Member
Member
Posts: 1138
Joined: Fri Aug 07, 2015 6:13 am

Re: When your OS goes crazy - Screenshots

Post by Octacone »

Korona wrote:Image

I'm currently writing a native graphics mode setting driver (for the Intel G45 chipset) for my OS. This is what happens when you set a bad pixel clock :D. This imgur album (click me) has another funny fail and a picture of the working driver.
That is actually impressive! Btw what do you mean by native graphics driver? Setting a bad pixel clock? What is your method, VESA or VGA?
OS: Basic OS
About: 32 Bit Monolithic Kernel Written in C++ and Assembly, Custom FAT 32 Bootloader
Korona
Member
Member
Posts: 1000
Joined: Thu May 17, 2007 1:27 pm
Contact:

Re: When your OS goes crazy - Screenshots

Post by Korona »

octacone wrote:That is actually impressive! Btw what do you mean by native graphics driver? Setting a bad pixel clock? What is your method, VESA or VGA?
I'm using neither VESA nor VGA. I manipulate the native registers of the graphics card (i.e. I set a pixel clock, display timings, program the framebuffer address and enable graphics output). The driver can set any mode (e.g. 1920x1080@32bpp) that is supported by the card and the monitor. I do not have to use the BIOS or any third party functionality. However keep in mind that the driver is tied to Intel G45 and similar chipsets.

It is easy to extend this to hardware double/triple/whatever buffering on VSYNC, hardware mouse cursors, hardware overlays (i.e. displaying a second framebuffer inside a window) and multiple monitors. My code does not support acceleration (BLTing or shaders) yet though.
managarm: Microkernel-based OS capable of running a Wayland desktop (Discord: https://discord.gg/7WB6Ur3). My OS-dev projects: [mlibc: Portable C library for managarm, qword, Linux, Sigma, ...] [LAI: AML interpreter] [xbstrap: Build system for OS distributions].
Post Reply