とあるOS [ToAruOS] ~ A Learning Project

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
klange
Member
Member
Posts: 679
Joined: Wed Mar 30, 2011 12:31 am
Libera.chat IRC: klange
Discord: klange

Re: とあるOS [ToAruOS] ~ A Learning Project

Post by klange »

I completely forgot about this thread, but hello again. I've been busy with work lately, but I've still had some free time to work on things.

There's not all that much new visibly, but I have been working on porting libraries.

I completely rewrote my compositor to support alpha transparency on windows, spent quite of bit of time making things more efficient there. I also ported Cairo and am considering porting my blitting over to pixman (Cairo's pixel-pushing library) to take advantage of SSE and the likes. I've also been working on getting a few extra kernel features up, spent a few sleepless nights getting everything running on real hardware. I wrote an editor out of boredom a few weeks ago, and I've now ported MuPDF to make a PDF viewer.

Image

I'm presenting a "learning group" at work on OS design, think I'm ready?
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: とあるOS [ToAruOS] ~ A Learning Project

Post by gravaera »

Yo:

Yes, quite possibly you are, and this could be a very good move for your career -- being able to say that you pioneered such an initiative would look very, very good on your resume when applying for a development job later on :O

--Good luck,
gravaera
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
klange
Member
Member
Posts: 679
Joined: Wed Mar 30, 2011 12:31 am
Libera.chat IRC: klange
Discord: klange

Re: とあるOS [ToAruOS] ~ A Learning Project

Post by klange »

I've got some new graphics library routines to blur graphics surfaces and render text shadows.

The soft shadow makes icon labels much more readable against bright backgrounds:

Image
tiger717
Posts: 10
Joined: Mon Oct 29, 2012 1:22 pm

Re: とあるOS [ToAruOS] ~ A Learning Project

Post by tiger717 »

klange,

First of all: I highly admire your work. Your OS looks really great! :D
Three questions:
1. What language is ToAru?
2. Do you hardcode the version number, or do you have some kind of Build Version Auto Increment in your makefile?
3. When compiling and running とあるOS, qemu says "multiboot knows vbe. we don't." Apparently qemu doesn't like the resoltion. How do you run it? Have you got some magically patched qemu? :P

Thank you
klange
Member
Member
Posts: 679
Joined: Wed Mar 30, 2011 12:31 am
Libera.chat IRC: klange
Discord: klange

Re: とあるOS [ToAruOS] ~ A Learning Project

Post by klange »

tiger717 wrote:klange,

First of all: I highly admire your work. Your OS looks really great! :D
Three questions:
1. What language is ToAru?
2. Do you hardcode the version number, or do you have some kind of Build Version Auto Increment in your makefile?
3. When compiling and running とあるOS, qemu says "multiboot knows vbe. we don't." Apparently qemu doesn't like the resoltion. How do you run it? Have you got some magically patched qemu? :P

Thank you
1. Japanese (とある means "a certain...", it's a bit of a play on generic names like "yet another") or if you mean code, it's all C.
2. There is a file `version.c` that contains version information and uses compiler constants to include time information. The version numbers there are manually bumped.
3. That's a warning about QEMU not supplying VBE information to the hosted OS when a multiboot kernel image specifies graphical mode - it is unrelated to how the graphics drivers work under QEMU. If you are seeing a black screen, you failed to build a userspace (usually because your toolchain is broken or didn't build). Run the `build.sh` script to build everything and check thoroughly for errors when building to the cross-compile toolkit. The kernel builds with a native copy of clang (or gcc, maybe, I honestly haven't checked in quite some time), but the userspace applications require a toolchain with a custom build of GCC.
klange
Member
Member
Posts: 679
Joined: Wed Mar 30, 2011 12:31 am
Libera.chat IRC: klange
Discord: klange

Re: とあるOS [ToAruOS] ~ A Learning Project

Post by klange »

It's been a while since I've updated this thread, so here's a video:



Probably best viewed directly from YouTube at the highest available resolution.
User avatar
Jezze
Member
Member
Posts: 395
Joined: Thu Jul 26, 2007 1:53 am
Libera.chat IRC: jfu
Contact:

Re: とあるOS [ToAruOS] ~ A Learning Project

Post by Jezze »

Looks awesome as always. What is the next step?
Fudge - Simplicity, clarity and speed.
http://github.com/Jezze/fudge/
klange
Member
Member
Posts: 679
Joined: Wed Mar 30, 2011 12:31 am
Libera.chat IRC: klange
Discord: klange

Re: とあるOS [ToAruOS] ~ A Learning Project

Post by klange »

Jezze wrote:Looks awesome as always. What is the next step?
I've spent so long focusing on appearance, I've not put nearly enough work into important features in the kernel, or writing device drivers... My TODO list is many pages long.
klange
Member
Member
Posts: 679
Joined: Wed Mar 30, 2011 12:31 am
Libera.chat IRC: klange
Discord: klange

Re: とあるOS [ToAruOS] ~ A Learning Project

Post by klange »

Hello anyone who happens to read this,

I'd like to announce the release of a VirtualBox virtual appliance.

This appliance was built from my current development environment and includes a full installation with the Cairo-backed compositor, muPDF viewer, and a stand-alone copy of the Lua interpreter.

The root user has a password `root`. There is a less-privileged account 'local', as well (password is 'local'). Windows can be moved by holding Alt and then clicking and dragging, and can be resized by doing the same with the middle button. The terminal is the best place to start, as you can launch all the other applications from it. The shell is simplistic, but provides variables, general quoting, and tab completion for command names. Most graphical applications can be exited by striking `q` (draw being one exception, use the X button in the upper right corner). `a` and `s` switch pages on the PDF viewer. The RPG Demo linked on the desktop is controlled with w/a/s/d (and exited with q). A terminal window can be closed by entering the 'exit' command.

Alternative boot modes are provided in the GRUB menu, including terminal-only mode and VGA terminal mode (all three boot modes use the same terminal running in different modes).

Please note that the OVA has VT-x/AMD-V enabled. If you don't have virtualization capabilities on your CPU, you can turn this off, but expect things to be slow due to the nature of the windowing environment's rendering path.
User avatar
dozniak
Member
Member
Posts: 723
Joined: Thu Jul 12, 2012 7:29 am
Location: Tallinn, Estonia

Re: とあるOS [ToAruOS] ~ A Learning Project

Post by dozniak »

Yay!
Learn to read.
User avatar
Brynet-Inc
Member
Member
Posts: 2426
Joined: Tue Oct 17, 2006 9:29 pm
Libera.chat IRC: brynet
Location: Canada
Contact:

Re: とあるOS [ToAruOS] ~ A Learning Project

Post by Brynet-Inc »

Apparently these "virtual appliances" are just tarballs, they contain a disk image in some proprietary format (vmdk) along with some XML configuration metadata.

I'd imagine a raw compressed disk imagine would work just as well, no? :-)
Image
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
User avatar
Kazinsal
Member
Member
Posts: 559
Joined: Wed Jul 13, 2011 7:38 pm
Libera.chat IRC: Kazinsal
Location: Vancouver
Contact:

Re: とあるOS [ToAruOS] ~ A Learning Project

Post by Kazinsal »

I love it. Very neat stuff, klange!
Brynet-Inc wrote:Apparently these "virtual appliances" are just tarballs, they contain a disk image in some proprietary format (vmdk) along with some XML configuration metadata.

I'd imagine a raw compressed disk imagine would work just as well, no? :-)
Sure, but VirtualBox recognizes an OVA right out of the box and set it up. Great for those of us who groan every time we have to manually fuddle with settings to get a downloaded VM running. Generally they're also optimized for the guest OS specifically (though under a specific VM platform).

To each his/her own, though!
klange
Member
Member
Posts: 679
Joined: Wed Mar 30, 2011 12:31 am
Libera.chat IRC: klange
Discord: klange

Re: とあるOS [ToAruOS] ~ A Learning Project

Post by klange »

Brynet-Inc wrote:Apparently these "virtual appliances" are just tarballs, they contain a disk image in some proprietary format (vmdk) along with some XML configuration metadata.

I'd imagine a raw compressed disk imagine would work just as well, no? :-)
VMDK isn't proprietary; it was when it was developed at VMWare, but the specification was opened a long time ago and qemu has supported it for quite some time. I made an OVA because it allowed me to specify optimal settings and easily provide support for a variety of host platforms since VirtualBox is open source and available on Linux/Solaris/OS X/Windows. It's also much easier to say "download this and open it in VirtualBox" than "download this and open it in QEMU with these dozen options but only use this one on Linux, and if you're on a Mac you need to set this keyboard layout".

Here is the current spec for VMDK.
User avatar
Brynet-Inc
Member
Member
Posts: 2426
Joined: Tue Oct 17, 2006 9:29 pm
Libera.chat IRC: brynet
Location: Canada
Contact:

Re: とあるOS [ToAruOS] ~ A Learning Project

Post by Brynet-Inc »

klange wrote:
Brynet-Inc wrote:Apparently these "virtual appliances" are just tarballs, they contain a disk image in some proprietary format (vmdk) along with some XML configuration metadata.

I'd imagine a raw compressed disk imagine would work just as well, no? :-)
VMDK isn't proprietary; it was when it was developed at VMWare, but the specification was opened a long time ago and qemu has supported it for quite some time. I made an OVA because it allowed me to specify optimal settings and easily provide support for a variety of host platforms since VirtualBox is open source and available on Linux/Solaris/OS X/Windows. It's also much easier to say "download this and open it in VirtualBox" than "download this and open it in QEMU with these dozen options but only use this one on Linux, and if you're on a Mac you need to set this keyboard layout".

Here is the current spec for VMDK.
I see, but for whatever reason qemu-img can't convert these extracted images to anything sensible..

While VirtualBox does support Linux/Windows/OS X, it doesn't run on every OS.. as it requires a kernel module. OpenBSD developers discovered it was occasionally mangling registers between context switches.

InnoTek/Sun/Oracle refused to fix it. Their workaround? Enable VT-x/AMD-V.

http://marc.info/?l=openbsd-misc&m=120492689515501&w=2
Image
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
User avatar
Geri
Member
Member
Posts: 442
Joined: Sun Jul 14, 2013 6:01 pm

Re: とあるOS [ToAruOS] ~ A Learning Project

Post by Geri »

i love your work. the os looks very good. does it support smp?
Operating system for SUBLEQ cpu architecture:
http://users.atw.hu/gerigeri/DawnOS/download.html
Post Reply