What does your OS look like? (Screen Shots..)

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.
User avatar
gravaera
Member
Member
Posts: 737
Joined: Tue Jun 02, 2009 4:35 pm
Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.

Re: What does your OS look like? (Screen Shots..)

Post by gravaera »

@Bluemoon: Looks very nice :O

--Congrats
gravaera
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
Nable
Member
Member
Posts: 453
Joined: Tue Nov 08, 2011 11:35 am

Re: What does your OS look like? (Screen Shots..)

Post by Nable »

to bluemoon
> bga
looks like you've wanted to say "VGA".
ATXcs1372
Member
Member
Posts: 30
Joined: Wed Jun 01, 2011 7:14 pm

Re: What does your OS look like? (Screen Shots..)

Post by ATXcs1372 »

Nable wrote:to bluemoon
> bga
looks like you've wanted to say "VGA".
No, he means the Bochs Graphics Adapter
User avatar
bluemoon
Member
Member
Posts: 1761
Joined: Wed Dec 01, 2010 3:41 am
Location: Hong Kong

Re: What does your OS look like? (Screen Shots..)

Post by bluemoon »

no it's bga, bochs display driver.
User avatar
AndrewAPrice
Member
Member
Posts: 2298
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: What does your OS look like? (Screen Shots..)

Post by AndrewAPrice »

Great work Bluemoon!

It's interesting to see what other people's operating systems look like. I'm particularly interested in non-WIMP GUIs (single- and multi-tasking).
My OS is Perception.
User avatar
Kazinsal
Member
Member
Posts: 559
Joined: Wed Jul 13, 2011 7:38 pm
Libera.chat IRC: Kazinsal
Location: Vancouver
Contact:

Re: What does your OS look like? (Screen Shots..)

Post by Kazinsal »

Image

Not a whole lot to look at. It does a couple neat things (test.uvx is a program I use as a sandbox for testing things outside of the kernel -- current version of it detects C&T and Cirrus Logic cards and dumps information on them, Cirrus only dumps numbers), though. At some point I'm going to release version 0.2. Hopefully.

EDIT: I'll ninja in a screenshot of Bochs when I finish the Cirrus detection.
User avatar
bluemoon
Member
Member
Posts: 1761
Joined: Wed Dec 01, 2010 3:41 am
Location: Hong Kong

Re: What does your OS look like? (Screen Shots..)

Post by bluemoon »

Finally I can compile simple C program and run on my OS. Although I have previously done this on 32-bit OS, 64-bit introduces some surprise to me :P It's not something straight-forward. It also take some tweaks for using syscall since it will not do stack-switch(and rsp remains in user-space), which has caused trouble for sleep() and exit() call, but they are resolved now.
Attachments
Bluemoon OS (64-bit)
Bluemoon OS (64-bit)
klange
Member
Member
Posts: 679
Joined: Wed Mar 30, 2011 12:31 am
Libera.chat IRC: klange
Discord: klange

Re: What does your OS look like? (Screen Shots..)

Post by klange »

Image

Successfully natively linked a binary. My standard C runtime and an ELF object file with main() { return 42; }, mashed together to create a working binary!

It would seem that my write support is... a bit broken. I had to create a padding file to write to, because my block allocator is borked (or I'm writing out of bounds of allocated blocks). The linking process was rather ugly as well, the large blob of text at the top being userspace debug output from my hacked up `ld`; I think my C library's memory allocator is broken as well (despite three years of testing...)
User avatar
turdus
Member
Member
Posts: 496
Joined: Tue Feb 08, 2011 1:58 pm

Re: What does your OS look like? (Screen Shots..)

Post by turdus »

Well, I do not have GUI yet as many of you guys. But I think I've made out what's possible from text mode.
Hope you like it.
windowed desktop
windowed desktop
The upper status bar is not ready yet, only the clock works.
The two icons on the bottom are applications (not working yet) and very low load indicator.
You can resize and move windows, you can change focus, and you also have a pixel granularity pointer.

There's still much left to do, but I hope it will be beta release ready soon. In the meantime, here are behind-the-stage screenshots:
details of text user interface server
details of text user interface server
memory usage
memory usage
gerryg400
Member
Member
Posts: 1801
Joined: Thu Mar 25, 2010 11:26 pm
Location: Melbourne, Australia

Re: What does your OS look like? (Screen Shots..)

Post by gerryg400 »

Looks good turdus. Do you have a website ?
If a trainstation is where trains stop, what is a workstation ?
User avatar
bubach
Member
Member
Posts: 1223
Joined: Sat Oct 23, 2004 11:00 pm
Location: Sweden
Contact:

Re: What does your OS look like? (Screen Shots..)

Post by bubach »

Wow, thats awesome for text mode! =D>
The amount of time you must have put in just to get "transparent" windows, and redoing the font to get "graphic" details out of it, and the palette manipulations. Just pure kick-@$$! :D

Have you thought about mode 12h for some more details? should be less complex than VESA but give you more options than pure text mode. Anyway, great work.
"Simplicity is the ultimate sophistication."
http://bos.asmhackers.net/ - GitHub
User avatar
turdus
Member
Member
Posts: 496
Joined: Tue Feb 08, 2011 1:58 pm

Re: What does your OS look like? (Screen Shots..)

Post by turdus »

gerryg400 wrote:Looks good turdus. Do you have a website ?
Yes, but it's not public ready.
The documentation is not up-to-date and inconsistent, and the downloadable images are broken now (I'm in the middle of rewriting the quick-and-dirty fs server implementation, that affects almost everything.)

@bubach: thanks. I'm not planning to use any other vga mode, because I have a working VESA LFB support. You can choose video mode at boot shell, but no server is listening to handle requests yet.

It was not hard to create the "transparent" windows (little bit magic on attribs), but I had to rewrite to use double buffering for speed, that was time consuming.
User avatar
turdus
Member
Member
Posts: 496
Joined: Tue Feb 08, 2011 1:58 pm

Re: What does your OS look like? (Screen Shots..)

Post by turdus »

OK guys. I've cleared the source a little bit and build an image to play with. Only an FS stub, and shell just blindly echoes keys back. But user interface works at least.
This build was compiled for:
- x86_64
- IOAPIC, LAPIC, RTC
- syscall instruction interface
- core debugger included

Here's my bochs 2.5.1 rc:
bochsrc.txt
(1.8 KiB) Downloaded 87 times
You should update the path of disk image in it to whatever location you download this file:
87.229.7.84/os3d.base.x86_64-latest.dsk
Note that all zeroes at the end were chopped off to save network, so bochs may complain about CHS geometry, don't care.
This image can be dd-ed to any usb storage. It has a Hybrid GPT scheme.

Testing standup
You can enter boot shell by pressing and holding Control during POST. There type:

Code: Select all

BOOT-SH> HELP
If you want to test the VESA LFB driver, type:

Code: Select all

BOOT-SH> VIDEO
BOOT-SH> SET GUI 1
BOOT-SH> CONTINUE
Note that HWDIAG is just a stub for now.

Testing EFI Loader
First you have to convert dd image to vdi:

Code: Select all

VBoxManage convertfromraw image.dsk image.vdi
Next start VirtualBox and enable EFI on System settings window. Note that this is experimental, loader only says hello, waits for a key press and returns to EFI menu.
I've noticed that VirtualBox is not able to run my OS when loaded by BIOS. On 32 bit windows host it restarts the entire machine, under Mac and Linux the vm goes to guru meditation due to misaligned stack (IRQ handler pops 32 bit value from a 64 bit stack). But it's good for testing the EFI support.

Testing user interface
I've compiled in debug output for key events. You can see the name of the key pressed along with flags. Pointer also works, although it's events are not forwarded to the application.
Normal keys are translated to ansi escape sequences and echoed back to server. A few useful shortcuts:
Alt+Enter: switch fullscreen/window mode
Alt+arrows: move window
Ctrl+arrows: resize window
Alt+T: open new terminal window
Ctrl+Tab: switch to next window
Ctrl+Alt+Del: stop self conscious AI in taking over the world
Ctrl+Alt+Esc: invoke built-in debugger
The debugger has many shortcuts of it's own, press F1 for help. In advance:
help.png
If you want to peek on other available keys, invoke debugger, press F4, go to /etc/kbd/en_us.
You can switch address space by selecting a task from F8 or F9, and pressing TAB. Afterwards, viewer and disassembler will operate on new thread.

Also note that this version is not recommended for testing on real hardware, although I regularly run tests, I haven't tested this version. It's not a stable version either, random crashes could happen, but all should be captured by debugger.
User avatar
AndrewAPrice
Member
Member
Posts: 2298
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: What does your OS look like? (Screen Shots..)

Post by AndrewAPrice »

bubach wrote:Wow, thats awesome for text mode! =D>
The amount of time you must have put in just to get "transparent" windows, and redoing the font to get "graphic" details out of it, and the palette manipulations. Just pure kick-@$$! :D
I've always wondered if you could modify the font during the horizontal refresh, and effectively get per pixel control over the screen in text mode.

Anyway, great work turdus!
My OS is Perception.
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: What does your OS look like? (Screen Shots..)

Post by Combuster »

I've always wondered if you could modify the font during the horizontal refresh, and effectively get per pixel control over the screen in text mode.
Well, you'd end up wasting most of your CPU time keeping in sync with the VGA. Plus that colours still fix themselves in character blocks so you'd need to take care of that as well. On an ISA device that means needing >50% of the bus bandwidth for the bitbanging alone, and then there's the port I/O needed.

Closest sensible solution I can think of is to switch the font bank 8 times per frame. It's still going to be a pain though.
"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 ]
Post Reply