OSDev.org

The Place to Start for Operating System Developers
It is currently Mon Feb 17, 2020 1:57 pm

All times are UTC - 6 hours




Post new topic Reply to topic  [ 6 posts ] 
Author Message
 Post subject: vmwOS - an operating system for the Raspberry Pi
PostPosted: Tue Jan 14, 2020 4:12 pm 
Offline

Joined: Tue Jan 14, 2020 10:21 am
Posts: 3
Hello,

I thought I'd announce my project here. I've been working on it for a while.

http://www.deater.net/weave/vmwprod/vmwos/

It is vmwOS (my initials) which runs on the Raspberry Pi. Most models 1A/1B/2B/3B etc. There is code to run on the pi4 but that's not merged yet.

The OS is a very simple UNIX-like OS. It's written in C and you cross-compile from Linux. It has minimal multi-core support. It doesn't support the MMU/Virtual-memory but it does set up the caches and provides kernel/user memory protections.

Userspace programs are mostly Linux-syscall compatible, but are in the bFLT format. I have a custom minimal C-library "vlibc" that the userspace executables link against.

Work is ongoing to support all of the hardware on the Pi. It does support serial port, PWM audio, HDMI framebuffer (including ANSI-compatible console), temperature, random number generator. No USB support, so no keyboard (it does support hooking a PS/2 keyboard to GPIO lines).

Work continues to get a more impressive userspace. I've almost got a full text editor going, sorting out some last bugs with that.

Also, the OS was the basis of the "Pi on Fire" demoscene demo that won 2nd place at Demosplash 2019.

Anyway not sure if anyone would be interested in all this, but thought I'd post in just in case.


Top
 Profile  
 
 Post subject: Re: vmwOS - an operating system for the Raspberry Pi
PostPosted: Wed Jan 15, 2020 6:22 am 
Offline
Member
Member
User avatar

Joined: Thu Oct 13, 2016 4:55 pm
Posts: 501
Hi,

Welcome to the forum! It is always a pleasure to meet someone developing a hobby OS for non-x86.

Your project looks great! Your site looks like from the 80's a bit if you don't mind me saying that (this is not necessarily a bad thing! Simple, full of info, no JS bloat).

About the missing USB support, you might want to take a look at CSUD (MIT license). Minimal dependencies (basically malloc), and it has an USB keyboard driver. Or the more advanced uspi (built on the former, GPL'd), which has a network driver too.

Cheers,
bzt


Top
 Profile  
 
 Post subject: Re: vmwOS - an operating system for the Raspberry Pi
PostPosted: Thu Jan 16, 2020 10:40 am 
Offline
User avatar

Joined: Sun Dec 29, 2019 10:59 pm
Posts: 17
deater wrote:
I thought I'd announce my project here. I've been working on it for a while.
http://www.deater.net/weave/vmwprod/vmwos/
It is vmwOS (my initials) which runs on the Raspberry Pi. Most models 1A/1B/2B/3B etc. There is code to run on the pi4 but that's not merged yet.
The OS is a very simple UNIX-like OS. It's written in C and you cross-compile from Linux. It has minimal multi-core support. It doesn't support the MMU/Virtual-memory but it does set up the caches and provides kernel/user memory protections.


Excellent to see your work on ARM. Where do you plan on going from here? Virtual memory? RISC-V? More filesystems?


Top
 Profile  
 
 Post subject: Re: vmwOS - an operating system for the Raspberry Pi
PostPosted: Fri Jan 17, 2020 9:09 am 
Offline

Joined: Tue Jan 14, 2020 10:21 am
Posts: 3
bzt wrote:
Your project looks great! Your site looks like from the 80's a bit if you don't mind me saying that (this is not necessarily a bad thing! Simple, full of info, no JS bloat).


I'd like to say it's a certain design aesthetic, but really I've been coding my webpages with raw HTML in a text editor for nearly 25 years now and have never gotten around to learning anything fancier.

bzt wrote:
About the missing USB support, you might want to take a look at CSUD (MIT license). Minimal dependencies (basically malloc), and it has an USB keyboard driver. Or the more advanced uspi (built on the former, GPL'd), which has a network driver too.


Thanks for the pointers, I was aware such things existed but hadn't really taken the time to look at it. For now I've been fine using a serial port to run things, but it might be nice at some point to use a machine standalone and while I do have the PS/2 keyboard to GPIO adapter it's fairly resource-intense to more or less bitbang the PS/2 protocol.


Top
 Profile  
 
 Post subject: Re: vmwOS - an operating system for the Raspberry Pi
PostPosted: Fri Jan 17, 2020 9:17 am 
Offline

Joined: Tue Jan 14, 2020 10:21 am
Posts: 3
nyc wrote:
Excellent to see your work on ARM. Where do you plan on going from here? Virtual memory? RISC-V? More filesystems?


I have a student working on doing some memory systems research (poking around the caches/VM/DRAM) although to be really interesting some of that work would involve poking around in the firmware.

My personal goal right now is to figure out enough of the GPU to get some 3D graphics going, the Pi family actually has a relatively powerful GPU on board. There are people who have figured out enough to get triangles/shaders going while talking directly to the GPU from inside of Linux and I wanted to see if I could do that from vmwOS.

To make development easier though I am working on getting a text editor, writeable filesystem, and file transfer going so I can work on the GPU stuff w/o having to constantly swap SD cards. Editor is finally working. I was looking into Zmodem to transfer files over the serial connection and didn't realize what a licensing mess that was. GNU lrzsz is available but the code is the most horrific I've seen in years. Much more likely I can get zmtx/zmrx going but that has some licensing issues and hasn't been updated since the 90s.


Top
 Profile  
 
 Post subject: Re: vmwOS - an operating system for the Raspberry Pi
PostPosted: Fri Jan 17, 2020 10:45 am 
Offline
Member
Member
User avatar

Joined: Thu Oct 13, 2016 4:55 pm
Posts: 501
deater wrote:
My personal goal right now is to figure out enough of the GPU to get some 3D graphics going
On that note, https://github.com/LdB-ECM/Raspberry-Pi/tree/master/GLES2_Rotate
deater wrote:
...file transfer going so I can work on the GPU stuff w/o having to constantly swap SD cards. Editor is finally working. I was looking into Zmodem to transfer files over the serial connection and didn't realize what a licensing mess that was.
Yep, I run into that issue as well. There's an already working FOSS solution though: raspbootin (for AArch32) and my rewrite that also supports chainloading, raspbootin64 (for AArch64). On the PC side they both use the same, pretty simple utility raspbootcom to send the kernel. If you have troubles compiling it with latest compilers under Linux (I had), see my rewrite of the sender, or you could try the Java kernel sender.
The protocol is extremely simple:
Code:
"\003\003\003" (RPi to PC, ready to accept)
N, four bytes LE (PC to RPi, size of kernel)
"OK" or "SE" (RPi to PC, okay or size error)
N bytes (PC to RPi, the image)
but if you want, you can replace this easily by some BBS modem protocol if you'd like and use minicom on the Linux side (GPL'd and supports multiple file sender protocols).

The rpi-boot source could be useful too, it uses a slightly modified version of the protocol above (with checksums), and it includes a sender that can be compiled with Win32 natively. I would not recommend to use rpi-boot as a tool though, because it's a bit bloated imho, but it's perfect to learn from its source.

Cheers,
bzt


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

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 2 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