OSDev.org

The Place to Start for Operating System Developers
It is currently Fri Jan 19, 2018 8:56 am

All times are UTC - 6 hours




Post new topic Reply to topic  [ 12 posts ] 
Author Message
 Post subject: Aprom project, USB era (ver. 150826)
PostPosted: Wed Aug 26, 2015 1:43 pm 
Offline
Member
Member
User avatar

Joined: Fri Aug 21, 2009 5:54 am
Posts: 176
Location: Moscow, Russia
Previous thread: 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".
Image

CPUID in terminal emulator:
Image

OpenGL:
Image

X Commander:
Image


Top
 Profile  
 
 Post subject: Re: Aprom project, USB era (ver. 150826)
PostPosted: Wed Sep 02, 2015 12:29 pm 
Offline
Member
Member
User avatar

Joined: Fri Aug 21, 2009 5:54 am
Posts: 176
Location: Moscow, Russia
Hm. No one?
Or is everything working perfectly? :)


Top
 Profile  
 
 Post subject: Re: Aprom project, USB era (ver. 150826)
PostPosted: Wed Sep 02, 2015 3:17 pm 
Offline
Member
Member

Joined: Mon Mar 25, 2013 7:01 pm
Posts: 1216
I meant to try this, but recent events have gotten in the way. Hopefully I will find the time soon. I have a few USB devices that will be interesting to test.

By the way, what are the minimum hardware requirements? I'd like to know ahead of time if I should expect things to fail on certain hardware.


Top
 Profile  
 
 Post subject: Re: Aprom project, USB era (ver. 150826)
PostPosted: Wed Sep 02, 2015 5:06 pm 
Offline
Member
Member
User avatar

Joined: Fri Aug 21, 2009 5:54 am
Posts: 176
Location: Moscow, Russia
Pretty low, i would think.
I had it working on everything old i have - Via C3, 533Mhz, 64Mb RAM and Celeron 366Mhz, 32Mb RAM.
I think the lower limit is somewhere around 8-16Mb RAM, and a CPU with FPU and CPUID in it.
A GUI+desktop takes 24Mb RAM, simpler GUI - 18Mb.
Don't have an easy way to check it in console mode.


Top
 Profile  
 
 Post subject: Re: Aprom project, USB era (ver. 150826)
PostPosted: Thu Sep 03, 2015 4:03 am 
Offline
Member
Member

Joined: Mon Mar 25, 2013 7:01 pm
Posts: 1216
Does the desktop have any keyboard shortcuts to make navigation possible without a mouse? The mouse didn't work at all, so I ended up using runlevel 2 instead of 3.

Image

I don't think mm[11] is being displayed correctly. Hopefully it's just a display issue! (Speaking of display issues, that mouse pointer keeps flickering.)

Image

PCI looks okay. USB, maybe not so much. I didn't see anything happen when I plugged in the mouse and keyboard.

Image

The keyboard still works, though. Did you forget the BIOS handoff?


Top
 Profile  
 
 Post subject: Re: Aprom project, USB era (ver. 150826)
PostPosted: Thu Sep 03, 2015 9:52 am 
Offline
Member
Member
User avatar

Joined: Fri Aug 21, 2009 5:54 am
Posts: 176
Location: Moscow, Russia
Octocontrabass wrote:
Does the desktop have any keyboard shortcuts to make navigation possible without a mouse? The mouse didn't work at all, so I ended up using runlevel 2 instead of 3.

Caps lock switches windows, and that's about it...
X commander is keyboard-only.
In terminal, SHift+pgup and -dwn scroll.

Octocontrabass wrote:
I don't think mm[11] is being displayed correctly. Hopefully it's just a display issue! (Speaking of display issues, that mouse pointer keeps flickering.)

Weird. How much RAM is in there? 2Gb, or more?

Octocontrabass wrote:
PCI looks okay. USB, maybe not so much. I didn't see anything happen when I plugged in the mouse and keyboard.
The keyboard still works, though. Did you forget the BIOS handoff?
I don't see a UHCI in there, so it's a matter of a lack of a controller it can understand.
More precisely, i think it's a problem with parsing PCI-PCI bridges.
Lacking USB, it uses the standard PS/2 driver for keyboard.


Top
 Profile  
 
 Post subject: Re: Aprom project, USB era (ver. 150826)
PostPosted: Thu Sep 03, 2015 1:27 pm 
Offline
Member
Member

Joined: Mon Mar 25, 2013 7:01 pm
Posts: 1216
Artlav wrote:
Weird. How much RAM is in there? 2Gb, or more?

64GB.


Top
 Profile  
 
 Post subject: Re: Aprom project, USB era (ver. 150826)
PostPosted: Thu Sep 03, 2015 2:56 pm 
Offline
Member
Member
User avatar

Joined: Thu Dec 21, 2006 7:42 pm
Posts: 1391
Location: Unknown. Momentum is pretty certain, however.
I ran it first with qemu-system-x86_64 -fda a.img, and I ran into: http://i.imgur.com/cod8TCB.png.
Running it with -enable-kvm got it to start up with runlevel 1, but there seems to be a bug in the input handling of the shell: http://i.imgur.com/DOMbdyA.png
Finally, I tried to start the GUI runlevels, and got https://gist.github.com/dbittman/773c8bd15ce3ba5b3df6 for runlevel 2 and a black screen for runlevel 3.

My version of qemu is 2.3.0, and I'm on linux.

_________________
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io


Top
 Profile  
 
 Post subject: Re: Aprom project, USB era (ver. 150826)
PostPosted: Fri Sep 04, 2015 7:54 am 
Offline
Member
Member
User avatar

Joined: Wed Jun 17, 2015 9:40 am
Posts: 430
Location: Athens, Greece
Hi,

Octocontrabass wrote:
Artlav wrote:
Weird. How much RAM is in there? 2Gb, or more?

64GB.

If I recall correctly you had a computer with only 64 MB of RAM. Are you sure you didn't mistake the unit? Also, I have not heard of any ordinary computers having that much memory.

Regards,
glauxosdever

_________________
Before implementing any piece of software, make sure you have designed it to be extendable. Backporting new features into old code is not always easy.


Last edited by glauxosdever on Fri Sep 30, 2016 9:32 am, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: Aprom project, USB era (ver. 150826)
PostPosted: Fri Sep 04, 2015 8:11 am 
Offline
Member
Member

Joined: Mon Mar 25, 2013 7:01 pm
Posts: 1216
glauxosdever wrote:
If I recall correctly you had a computer with only 64 MB of RAM. Are you sure you didn't mistake the unit?

Rest assured, it would be very difficult to confuse the two.

glauxosdever wrote:
Also, I have not heard of any ordinary computers having that much memory.

It's not an ordinary computer.


Top
 Profile  
 
 Post subject: Re: Aprom project, USB era (ver. 150826)
PostPosted: Mon Sep 07, 2015 11:12 am 
Offline
Member
Member

Joined: Mon Mar 25, 2013 7:01 pm
Posts: 1216
I only got around to running one test over the weekend. I was hoping I would have time for more, but I guess this will have to do for now.

The test machine is a crusty old Gateway laptop. USB is actually functional on this machine, but that turns out to be a bad thing: now that the keyboard is properly detected as a USB device, it simply doesn't work. The touchpad doesn't work eiuther, so I can't use anything other than runlevel 4.

All logs are prefixed with timestamps and "UHCI", so it's safe to assume this machine has a UHCI controller.

A USB keyboard: (plugged in when it boots)
Code:
UHCI device 0, IO=$1020
Ports=2
Port 0/1, status on enable=CON EN D- LS
Adding (ls=1), settling delay...
Device processed.
Device 1
USBsp=0110
MaxPacketSize0=8
Vid:Pid=413C:2003
Manufacturer(1)=
Product(2)=
NumConfigs=1
  cfg[0].max_power=35
  cfg[0].num_interfaces=1
   if[0].class=0:0:0 (CL_0:Unk_scl:Unk_pr)
   if[0].num_endpoints=0
UHCI Status: $02
Device 1 removed.


A USB chip programmer:
Code:
Device inserted...
Port 0/1, status on enable=CON EN D+
Adding (ls=0), settling delay...
Device processed.
Device 1
USBsp=0200
MaxPacketSize0=8
Vid:Pid=04D8:E11C
Manufacturer(1)=www.autoelectric.com
Product(2)=MiniPro TL-866 Programmer
NumConfigs=1
  cfg[0].max_power=50
  cfg[0].num_interfaces=1
   if[0].class=0:0:0 (CL_0:Unk_scl:Unk_pr)
   if[0].num_endpoints=2
    ep[0]=1:$02:64:1
    ep[1]=129:$02:64:1
Device 1 removed.


Three flash drives, a webcam, and a monitor: (all reported the same messages)
Code:
Device inserted...
Port 0/1, status on enable=CON EN D+
Adding (ls=0), settling delay...
Failed to address device
Device won't proces.
UHCI Status: $02
Device 1 removed.


A microphone:
Code:
Device inserted...
Port 0/1, status on enable=CON EN D+
Adding (ls=0), settling delay...


It looks like the microphone causes some problems, because it stops printing messages at that point.


Top
 Profile  
 
 Post subject: Re: Aprom project, USB era (ver. 150826)
PostPosted: Thu Dec 14, 2017 7:32 am 
Offline

Joined: Mon Dec 11, 2017 2:10 pm
Posts: 4
Artlav wrote:
Aprom is a weird modular 32bit OS. Tightly bound, roughly microkernel design.
Been in development every now and then over the past two decades
Good day, Artlav! Currently I am updating the OSDev Projects wiki page.
Please tell, your Aprom OS - is it open source? Or closed source?

Unfortunately I was unable to find the source code of Aprom OS,
so (for now) I am listing Aprom OS as "Proprietary :(" at the OSDev Projects wiki page,
but - if you could show me where is a source code (or maybe upload it somewhere, e.g. github)
then I could post a link to it and write to OSDev wiki that your Aprom OS is open source


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 12 posts ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: Yahoo [Bot] and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group