Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is HN, I'm sure people would appreciate hearing the details. Like how does this integrate with OpenBSD's existing audio/graphics stacks, do you plan to upstream your work? With it being OpenBSD, are there security implications?


Well, he did say he wants to turn that into a product, so I understand he won't release details as they are a form of trade secret for his idea.


I just released the "big picture". I am sure that the OpenBSD kernel devs can redo what I did ten times quicker (in terms of development time) and a million times better (in terms of clean integration with the kernel and security) if they want to. They know all of the details of the kernel :-)

That said yes, I would like to be able to turn this into a product.


I'm interested in this; though i struggle to understand how you could turn something like this into a product.

There's a lot of logistics in selling this type of thing. Also the BSD license isn't exactly easy to sell something alongside of.

Have you considered open-sourcing and doing the ol' "if you like my work, buy me a coffee"

I know it's extremely communist of me, but I just can't imagine you not stepping on a lot of toes (both legally and otherwise) because of the spirit that OpenBSD was written in.


> BSD license isn't exactly easy to sell something alongside of

Why's that? There's no reason you cant have a closed-source commercial fork of BSD code. The Playstation 4 OS is a fork of FreeBSD: https://en.wikipedia.org/wiki/PlayStation_4_system_software


I haven't thought this through I have to admit.

I thought that the BSD license was friendly to this kind of stuff.

If I step on people's toes I would ask for forgiveness and try to give them something back, which I think is just the right thing to do.

For example, I read that OpenBSD developers were sad that most of the contributions they got was from individuals more than from companies, when they actually help companies a lot.

Maybe this could be a way to change that situation?

At the end of the day I want to be happy with myself. I don't want to make enemies. Possibly, I would love to keep working on this for a living as I enjoy it more than everything else I did in the past.

This is not a product yet. If it's going to be, it's going to be a very long and hard way before that happens. Why is everyone so concerned about money at this stage?

Personally, I thought that this was a cool thing that some people would like. Maybe I could make a simple living out of it.

Most people comments seem to me like they are assuming that this is going to be a huge success that could make money and are worried that the other devs would be left out with nothing.

Isn't this a bit of a prejudice? And isn't it premature to assume it's going to be a success?


Regarding the "open source, if you like it buy me a coffee" thing, I am not against that. By saying "I'd like to turn this into a product", I don't rule that out. I already mentioned that in another comment.

To me at this stage it's more about making a living out of something I love doing rather than becoming the next big tycoon.


You would get something like a cup of coffee per month. The ecosystem is not really ripe for donation-sustained open source development. GitHub Sponsors feature works a bit better than one time donations. I also like the idea of feature/bug bounties, but I don't know how well they work in practice.

I think the best model if you want to both share the code and make money is to offer commercial version with newest features, and open source a version that's a bit behind. As you publish a new version, you open-source the previous commercial version. This is more of a "source available" model because it actively discourages any community code contributions.

It is still not clear to me how to receive money as founder and maintainer on actual open source project, without resentments from contributors that don't get paid. Doesn't seem fair and has potential to turn into big drama.


This makes a lot of sense. Thank you :-)

Those are complicated matters.

I just have no idea how to do this properly at the moment. I am just hearing people's opinions for now and I'll try and do something that people are generally happy with. On the other hand, it's also true that one cannot please everyone.

To me it's like: "I have done something that I think is cool, let's see what people think about it".

I mentioned that I wanted to do a product out of this and people got emotional, as if it was granted that it's going to be a huge success.

I really wish it was that easy. I think that this is not realistic. It would take a lot of work from a lot of people who need to be paid because they need to pay their own bills to make this into a success. And it still could fail.

I regret having mentioned that I may want to turn this into a product, because it put too much focus on that rather than on the tech that I have developed.


What it does at the moment is a bit hacky, in that it does not integrate with the existing graphics stack in the way people could think.

I haven't written a driver for the pi graphics card or for HDMI audio. What I do with graphics is to save the existing state before beginning the game, do whatever I want during the game and restoring the state when it ends. With audio I am not doing it that cleanly as I believe that OpenBSD does not currently even touch HDMI audio registers.

As for the reduction of stuttering, when the game begins I stop 3 of the four cores, assign them entirely to the game ( also with new interrupt vector tables both in EL0 and EL1 ) and when the game exits give them back to OpenBSD. That way, while the game is running without interruption, the single core that is left to OpenBSD is free to run admin tasks. Since the game has a process that can be scheduled by that single core, the game can do networking or file I/O using OpenBSD, because the different cores have the same entries in the user space MMU tables and so they share memory and can talk to each other. OpenBSD cannot interrupt the game, it can only kill it if needed.

Regarding upstreaming my work the answer is "Probably not. But if the world wants it open sourced I am not against it and could think about doing a fork (Say we call it OpenBSD4Games). Or I could just give some help with the raspberry pi drivers."

The reason for that is that I am doing quite some stuff that am pretty sure the OpenBSD devs would not be happy to put in. OpenBSD is strongly focused on security. I am pretty sure they would not want to have some code in there that hijacks 3 cores out of 4 and gives them to a user process. Another example: I have been told that giving several contiguous memory pages to a user task is something that should not be done in OpenBSD. I understand why but then I give a game quite a few contiguous memory pages that the hardware will use for the frame buffer and so has to be contiguous.

Also, this is prototype code. It works for me, it still needs a ton of work and might not even be 100% correct. I cannot possibly understand all of the little details in the kernel in 2 months.

I am proud of this achievement though and would love to be able to turn this into a real product that many people enjoy.

Regarding the "home computer" part, I thought about game devs. When doing a game, it's not only the game code that is important. The tools are very important as well. So I built GNUstep ( on OpenBSD it does not currently work on arm64 ) so that it's super easy to build tools for game development in Objective-C.

Also I thought about playing around and experimenting, and I am planning a GUI app with GNUstep that integrates a C/C++ interpreter called cling, which is developed by CERN for their physics simulations if I am not wrong. With that, a game developer will be able to experiment with code and tweak it in a way that is similar to what Xcode playgrounds does with swift on the Mac.


By the way, here is a video demonstration of all this. It's not very polished and VSYNC does not work, but it works pretty much how I describe here.

https://youtu.be/KhRnGbVhejk




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: