Aprom project, USB era (ver. 150826)
Posted: Wed Aug 26, 2015 1:43 pm
Previous thread: http://forum.osdev.org/viewtopic.php?f=2&t=22667
Aprom is a weird modular 32bit OS. Tightly bound, roughly microkernel design.
Been in development every now and then over the past two decades.
The topic of today's release is USB.
You can get the images here: http://orbides.org/ape/aprom_150826.zip (3.2 Mb)
Running options:
I'm most interested in how it does on real HW, with USB devices.
You can either find a floppy image (a.img) in the package, or use the content of "img" directory with a multiboot bootloader like GRUB.
There are also scripts for running it in Bochs and Qemu.
If you want to just take a look at it and you run Windows, you can run kernel_vm.exe, which is a colinux/wine-like user mode kernel.
For folks on Windows, there is also rbuild.bat.
It builds arosroot.img, the ram disk filesystem image, from the files in "root" directory.
This lets you tweak options and so on.
Most interesting one - in /cfg/gui.cfg, first line defines the graphics mode it would be looking for. Only 16bit are supported.
Inside:
Most interesting runlevel is 3.
If the GUI does not work, you can go into text mode - runlevel 1.
Most programs quit on esc or enter.
Text editor is kind of broken, and there is no compiler in this package, so it does not do much anyway.
USB:
USB might take time to initialize, and might take a key press/click to kick-start.
Plugging in and removing devices should just work, transparently.
Only keyboards and mice are supported, but other devices will have their info polled.
In the runlevel 4 you can see detailed USB info dump, with message content.
In other runlevels, you can see the same with ulogw command, but with less details.
Try plugging in various devices.
For some reason half of them fail to respond, i'm interested which are, and whether the rest work.
Tips
-The tasks are switched by the rectangles in the upper-left corner.
-If the mouse doesn't work, Caps Lock toggles them one by one.
-If all windows are closed, click in upper-right corner.
-There is no current directory, all paths are absolute
-Language is changed by Win key
Etc
From terminal, you can have a bit of fun with "msgtool" command.
It's a debug tool that can send messages to endpoints (list of them is "msginfo"). First parameter is the destination, second is the message.
Anything ending on .version would return a version string.
If you call exec.simple with a full file name (msgtool exec.simple /bin/ps", then that file will get ran.
Sending messages somewhere else can result in anyhting from nothing to something random or something crashing, depending on how good the error handlers are.
Which can also be FUN.
The whole thing is fairly stable, and i ran pretty complex applications in it.
If you want some games or a pascal compiler, i can upload them.
There is also a support for CDROM and floppy, but it's not compiled in in this build.
All in all, have fun (assuming it would work)!
Screenshots
Runlevel 3's "Desktop".
CPUID in terminal emulator:
OpenGL:
X Commander:
Aprom is a weird modular 32bit OS. Tightly bound, roughly microkernel design.
Been in development every now and then over the past two decades.
The topic of today's release is USB.
You can get the images here: http://orbides.org/ape/aprom_150826.zip (3.2 Mb)
Running options:
I'm most interested in how it does on real HW, with USB devices.
You can either find a floppy image (a.img) in the package, or use the content of "img" directory with a multiboot bootloader like GRUB.
There are also scripts for running it in Bochs and Qemu.
If you want to just take a look at it and you run Windows, you can run kernel_vm.exe, which is a colinux/wine-like user mode kernel.
For folks on Windows, there is also rbuild.bat.
It builds arosroot.img, the ram disk filesystem image, from the files in "root" directory.
This lets you tweak options and so on.
Most interesting one - in /cfg/gui.cfg, first line defines the graphics mode it would be looking for. Only 16bit are supported.
Inside:
Most interesting runlevel is 3.
If the GUI does not work, you can go into text mode - runlevel 1.
Most programs quit on esc or enter.
Text editor is kind of broken, and there is no compiler in this package, so it does not do much anyway.
USB:
USB might take time to initialize, and might take a key press/click to kick-start.
Plugging in and removing devices should just work, transparently.
Only keyboards and mice are supported, but other devices will have their info polled.
In the runlevel 4 you can see detailed USB info dump, with message content.
In other runlevels, you can see the same with ulogw command, but with less details.
Try plugging in various devices.
For some reason half of them fail to respond, i'm interested which are, and whether the rest work.
Tips
-The tasks are switched by the rectangles in the upper-left corner.
-If the mouse doesn't work, Caps Lock toggles them one by one.
-If all windows are closed, click in upper-right corner.
-There is no current directory, all paths are absolute
-Language is changed by Win key
Etc
From terminal, you can have a bit of fun with "msgtool" command.
It's a debug tool that can send messages to endpoints (list of them is "msginfo"). First parameter is the destination, second is the message.
Anything ending on .version would return a version string.
If you call exec.simple with a full file name (msgtool exec.simple /bin/ps", then that file will get ran.
Sending messages somewhere else can result in anyhting from nothing to something random or something crashing, depending on how good the error handlers are.
Which can also be FUN.
The whole thing is fairly stable, and i ran pretty complex applications in it.
If you want some games or a pascal compiler, i can upload them.
There is also a support for CDROM and floppy, but it's not compiled in in this build.
All in all, have fun (assuming it would work)!
Screenshots
Runlevel 3's "Desktop".
CPUID in terminal emulator:
OpenGL:
X Commander: