Hi there! I’m a new user here, and came here to get some help with something I have begun building: An operating system.
I know it could take years to make this, but I want some help and am dedicated. I’m programming this operating system in Python and Visual basic. I’m using Visual Studio 2019, the latest version I could find, and it’s possible to start developing stuff with people on there, so here is my question: Is anyone willing to help me make this operating system?
My idea is for it to have a GUI but the inner workings of the OS itself are command based. I have lots of vivid visions for what this OS will be like, but before I get really deep into developing, I need some pointers.
I can give more details to anyone wanting to help.
Also, I am open to constructive critisisim.
The core of an operating system is kernel, device drivers, memory management, and hardware interaction. These tasks are better suited for languages like C, C++, or Assembly IMHO.
To be honest this is not my area of expertise. But I have never heard of an OS written in an interpreted language. Starting an app engine from BIOS to run an interpreted language sounds to me a bit odd. But as a sub system or similar it may work.
Others may have different opinions
I should have added “mostly” python and VB.
According to my limited knowledge of operating systems, there are 2 layers. The computer layer (the hard part) and the human layer (what-you-see).
The human layer could then be done in basically any language or mix of languages. If I remember correct, Steve Jobs created a “Finder” upon an UNIX flavor. Which means that all the hard parts of the OS was rock solid and done. Later his “Finder” more or less become the current macOS Ventura…
So my suggestion is to go the same path as Steve Jobs
Not to pile on but take what sibertius says.
Take a look at the source code for Windows or Linux - they’re all open source. There’s a reason they’re written in C and/or C++. Those languages are intended to work directly with the machines by low level languages.
Interpreted languages are an additional layer on top of native and are intended to be device agnostic. I’ve never heard of an interpreted language used in such a manner, but nothing surprises me.
Are you talking vb.net or classic vb? Classic vb is no longer supported, and vb.net will no longer be improved (Microsoft is laying all their eggs in the c# basket)
That’s interesting to know, just when I was thinking that it might be a good idea to improve my vb.net skills. I struggle enough with that, without having to start again with c#
Here’s an article for anyone interested in vb.net going stagnant. Still supported but it’s not in .net core or the newest iterations
^ Thanks for that, no need to give up on it any time soon by the sound of it. I probably don’t use 99% of the features it has, so it probably won’t affect me too much. Any time I think of doing something as a native Windows application (which isn’t that often, to be honest) I think about using C#, but then I think I’m just doing it for the sake of using something different and I go back to the “simpler” VB.
Back to the original question, I once wrote a terminal emulator in a compiled BASIC language, as we needed some functionality that the built-in emulator wouldn’t provide. Despite that being a pretty well-optimised compiler, it was far too slow and I had to rewrite the whole thing in C just to get acceptable performance. Performance is one of the reasons that operating systems are written in low-level languages.
Also don’t underestimate how much work you need to do on stuff like device drivers just to keep your OS working. An operating system I have used for decades is now largely installed as a VMWare guest because of the continual change in hardware platform and the code changes required to support them.