とあるOS [ToAruOS] ~ A Learning Project
Re: とあるOS [ToAruOS] ~ A Learning Project
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.
I'm presenting a "learning group" at work on OS design, think I'm ready?
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.
I'm presenting a "learning group" at work on OS design, think I'm ready?
- 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: とあるOS [ToAruOS] ~ A Learning Project
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
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.
Re: とあるOS [ToAruOS] ~ A Learning Project
Re: とあるOS [ToAruOS] ~ A Learning Project
klange,
First of all: I highly admire your work. Your OS looks really great!
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?
Thank you
First of all: I highly admire your work. Your OS looks really great!
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?
Thank you
Re: とあるOS [ToAruOS] ~ A Learning Project
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.tiger717 wrote:klange,
First of all: I highly admire your work. Your OS looks really great!
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?
Thank you
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.
Re: とあるOS [ToAruOS] ~ A Learning Project
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.
Probably best viewed directly from YouTube at the highest available resolution.
Re: とあるOS [ToAruOS] ~ A Learning Project
Looks awesome as always. What is the next step?
Fudge - Simplicity, clarity and speed.
http://github.com/Jezze/fudge/
http://github.com/Jezze/fudge/
Re: とあるOS [ToAruOS] ~ A Learning Project
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.Jezze wrote:Looks awesome as always. What is the next step?
Re: とあるOS [ToAruOS] ~ A Learning Project
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.
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.
- Brynet-Inc
- Member
- Posts: 2426
- Joined: Tue Oct 17, 2006 9:29 pm
- Libera.chat IRC: brynet
- Location: Canada
- Contact:
Re: とあるOS [ToAruOS] ~ A Learning Project
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?
I'd imagine a raw compressed disk imagine would work just as well, no?
- Kazinsal
- Member
- Posts: 559
- Joined: Wed Jul 13, 2011 7:38 pm
- Libera.chat IRC: Kazinsal
- Location: Vancouver
- Contact:
Re: とあるOS [ToAruOS] ~ A Learning Project
I love it. Very neat stuff, klange!
To each his/her own, though!
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).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?
To each his/her own, though!
Re: とあるOS [ToAruOS] ~ A Learning Project
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".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?
Here is the current spec for VMDK.
- Brynet-Inc
- Member
- Posts: 2426
- Joined: Tue Oct 17, 2006 9:29 pm
- Libera.chat IRC: brynet
- Location: Canada
- Contact:
Re: とあるOS [ToAruOS] ~ A Learning Project
I see, but for whatever reason qemu-img can't convert these extracted images to anything sensible..klange wrote: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".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?
Here is the current spec for VMDK.
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
Re: とあるOS [ToAruOS] ~ A Learning Project
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
http://users.atw.hu/gerigeri/DawnOS/download.html