What sort of devs would your OS attract? :)
What sort of devs would your OS attract? :)
I try KolibriOS every few years. It's worked well and looked good since the first time I tried it, which may have been in 2005, but after all these years, it still doesn't have copy/paste in important programs such as the shell. It made me think, perhaps it doesn't have copy/paste because devs who use it were repelled by the lack of it.
Then I thought about Plan 9 and its fork, 9front. They're used via a window system; the console is nearly useless, but after more than 2 decades of open-source development they have hardly any real GUI programs or toolkits. Many of its users and devs think the world of its text-oriented but not console-based userspace, while developers who would spend time on developing GUIs for it seem to be almost entirely absent. Besides the UI, Plan 9 users are often very happy with how easy it is to network and to use remote machines' facilities. It's no surprise that it has attracted other network projects, whether personal or research.
So, what sort of developers would your OS attract?
Then I thought about Plan 9 and its fork, 9front. They're used via a window system; the console is nearly useless, but after more than 2 decades of open-source development they have hardly any real GUI programs or toolkits. Many of its users and devs think the world of its text-oriented but not console-based userspace, while developers who would spend time on developing GUIs for it seem to be almost entirely absent. Besides the UI, Plan 9 users are often very happy with how easy it is to network and to use remote machines' facilities. It's no surprise that it has attracted other network projects, whether personal or research.
So, what sort of developers would your OS attract?
Kaph — a modular OS intended to be easy and fun to administer and code for.
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
-
- Member
- Posts: 426
- Joined: Tue Apr 03, 2018 2:44 am
Re: What sort of devs would your OS attract? :)
LOL, adventurous ones.eekee wrote:I try KolibriOS every few years. It's worked well and looked good since the first time I tried it, which may have been in 2005, but after all these years, it still doesn't have copy/paste in important programs such as the shell. It made me think, perhaps it doesn't have copy/paste because devs who use it were repelled by the lack of it.
Then I thought about Plan 9 and its fork, 9front. They're used via a window system; the console is nearly useless, but after more than 2 decades of open-source development they have hardly any real GUI programs or toolkits. Many of its users and devs think the world of its text-oriented but not console-based userspace, while developers who would spend time on developing GUIs for it seem to be almost entirely absent. Besides the UI, Plan 9 users are often very happy with how easy it is to network and to use remote machines' facilities. It's no surprise that it has attracted other network projects, whether personal or research.
So, what sort of developers would your OS attract?
My OS provides little to most users. I imaging like a lot of projects on these pages, it is a personal play thing only.
That said, I've had a bit of an injection of impetus recently, as I've started sharing the C toolkit that I use in my kernel with user space.
The main things this toolkit provides my kernel is:
- Simple, generic map container interface, backed by a number of implementations for different scenarios.
- A mark/sweep garbage collection library for automatic memory management. The intention is to avoid memory errors relating to dangling references, or memory leaks causing memory failures after prolonged use.
- Typed exception handling, so most of my code doesn't deal with error checking scenarios inline, and instead defers error handling to a smaller number well defined points. Such a point is the system call dispatcher, which catches exceptions from system calls, and converts them into errno return codes for the system call back to user space.
- COM like interfaces, with interface queries so objects can provide multiple interfaces.
This makes my C code a bit Java like.
All of these are generally useful, and are not things provided by the pitiful C standard library, so I'm breaking them out into a separate user level project. First use will be the tools I'm using for my kernel development, for example, tools that generate code for repetitive and formulaic tasks, such as code for dealing with external data structures (such as file system superblocks/inodes etc.)
I can see this library being generally useful outside of kernel development.
Re: What sort of devs would your OS attract? :)
Nice topic!eekee wrote:I try KolibriOS every few years. It's worked well and looked good since the first time I tried it, which may have been in 2005, but after all these years, it still doesn't have copy/paste in important programs such as the shell. It made me think, perhaps it doesn't have copy/paste because devs who use it were repelled by the lack of it.
Then I thought about Plan 9 and its fork, 9front. They're used via a window system; the console is nearly useless, but after more than 2 decades of open-source development they have hardly any real GUI programs or toolkits. Many of its users and devs think the world of its text-oriented but not console-based userspace, while developers who would spend time on developing GUIs for it seem to be almost entirely absent. Besides the UI, Plan 9 users are often very happy with how easy it is to network and to use remote machines' facilities. It's no surprise that it has attracted other network projects, whether personal or research.
So, what sort of developers would your OS attract?
My OS should attract devs interested in learning/practicing kernel development while implementing some sort of simplified / stripped-down & ultra-deterministic alternative to Embedded Linux for the small scale. In essence, people attracted to:
[*] UNIX-like operating systems
[*] minimalistic software that does the job well (but supporting fewer use-cases)
[*] software that favors the small-scale instead of the large scale (N small)
[*] deterministic software that doesn't make guesses and guarantees strict ordering and success or early failure, even when it is less efficient to so (for the average case)
[*] software projects that do plenty of automation testing
[*] software that loves being compatible with pre-existing 3rd party software when possible
Should like my project.
EDIT: removed extra text irrelevant to the topic.
Tilck, a Tiny Linux-Compatible Kernel: https://github.com/vvaltchev/tilck
Re: What sort of devs would your OS attract? :)
Ones with a vivid imagination, who can imagine a working OS...
Re: What sort of devs would your OS attract? :)
Sorry for the late reply. It's been so long, I've had time to finally start on my own OS!
My OS, Kaph, will attract people interested in "plain English programming" with the Osmosian Order's compiler, modularity, simplicity, and how we can simplify by finding unconventional abstractions. It probably won't be good for people who want a Unix-like system. But! The future tense is very relevant; there's a lot of design work to do and abstractions to find.
I'd like Kaph to be good for people who would like to program but can't deal with the current state of the art -- massive feature sets, alphabetically-ordered documentation, syntax popups, and other things. I know it's impossible to cater to every person's issues. Retrocomputing and fringe Unix developments (like suckless below) are good for many of those people. I'm hitting a somewhat different spot with plain English code.
@thewrongchristian:
Haha! Yeah, I think most of us on the forums would have to say "adventurous users." Exceptions would be rdos, maybe managarm, and that's all I can think of from currently active forumites. ToaruOS might count, but klange doesn't want it used seriously.
I like your toolkit. Is "COM" Microsoft's Common Object Model? I might look into that for modularity purposes.
@ vvaltchev:
Thanks! Several of your points remind me of suckless.org, especially these:
Kaph is going to have much worse compatibility than Plan 9. I'll have to really focus on ease of development, but that was pretty-much the goal anyway.
My OS, Kaph, will attract people interested in "plain English programming" with the Osmosian Order's compiler, modularity, simplicity, and how we can simplify by finding unconventional abstractions. It probably won't be good for people who want a Unix-like system. But! The future tense is very relevant; there's a lot of design work to do and abstractions to find.
I'd like Kaph to be good for people who would like to program but can't deal with the current state of the art -- massive feature sets, alphabetically-ordered documentation, syntax popups, and other things. I know it's impossible to cater to every person's issues. Retrocomputing and fringe Unix developments (like suckless below) are good for many of those people. I'm hitting a somewhat different spot with plain English code.
@thewrongchristian:
Haha! Yeah, I think most of us on the forums would have to say "adventurous users." Exceptions would be rdos, maybe managarm, and that's all I can think of from currently active forumites. ToaruOS might count, but klange doesn't want it used seriously.
I like your toolkit. Is "COM" Microsoft's Common Object Model? I might look into that for modularity purposes.
@ vvaltchev:
Thanks! Several of your points remind me of suckless.org, especially these:
On the other hand, I don't think they do much if any automation testing. Their goals are much less clearly defined.vvaltchev wrote:[*] UNIX-like operating systems
[*] minimalistic software that does the job well (but supporting fewer use-cases)
[*] software that favors the small-scale instead of the large scale (N small)
[*] deterministic software that doesn't make guesses and guarantees strict ordering and success or early failure, even when it is less efficient to so (for the average case)
This, together with simplicity, always reminds me that the authors of Plan 9 used to say 90% of the code is for interfacing with externally-imposed standards! But you do you. Plan 9 has the problem that, even with such a large percentage of the OS catering to widely accepted standards, it's still hard to port many programs. The suckless community have known since the late 00s that they could simplify further by switching to Plan 9, but they've chosen to continue developing for POSIX instead.vvaltchev wrote:[*] software that loves being compatible with pre-existing 3rd party software when possible
Kaph is going to have much worse compatibility than Plan 9. I'll have to really focus on ease of development, but that was pretty-much the goal anyway.
Kaph — a modular OS intended to be easy and fun to administer and code for.
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
-
- Member
- Posts: 426
- Joined: Tue Apr 03, 2018 2:44 am
Re: What sort of devs would your OS attract? :)
Yes.eekee wrote: @thewrongchristian:
Haha! Yeah, I think most of us on the forums would have to say "adventurous users." Exceptions would be rdos, maybe managarm, and that's all I can think of from currently active forumites. ToaruOS might count, but klange doesn't want it used seriously.
I like your toolkit. Is "COM" Microsoft's Common Object Model? I might look into that for modularity purposes.
I use COM in C++ in my day job, and while I generally dislike Windows programming, COM is actually quite nice, being very similar to Java interfaces.
My use is probably more like Java interfaces, as I don't do any reference counting (not necessary with mark/sweep GC). I do have an explicit interface query method, that each object uses to switch between interfaces.
It's nice being able to work with generic device_t objects in my device manager, for example, then probe each device.
On probe of a USB BBB device, the USB BBB device driver will emit a new block device instance into the device tree, which itself would be picked up by device drivers listening for new block devices. Such a device driver might be a DOS partition driver, which will probe the block device, looking for a partition table, and enumerate any contained partitions into new block devices for those partitions. These block devices will further be probed to look for filesystems etc.
But the device manager itself just works with the device interface, probing new devices as they're added.
If you're interested, I may look at splitting this library out, or at least make it a standalone build target.
Re: What sort of devs would your OS attract? :)
I'm not much concerned about that issue. My future plans is only to have it as my own platform so I can code various projects without needing to learn Windows or Linux. My company also has a few 1,000s of installations using my OS that will need to be maintained for many years. So, I plan to involve in that too. I will not involve in new Linux solutions though, as I have no desire to code for Linux or Android.
Re: What sort of devs would your OS attract? :)
The dev...il.eekee wrote:So, what sort of developers would your OS attract?
Writing a bootloader in under 15 minutes: https://www.youtube.com/watch?v=0E0FKjvTA0M
Re: What sort of devs would your OS attract? :)
Interesting! That's certainly the sort of model I'd like.thewrongchristian wrote:Yes.eekee wrote: @thewrongchristian:
Haha! Yeah, I think most of us on the forums would have to say "adventurous users." Exceptions would be rdos, maybe managarm, and that's all I can think of from currently active forumites. ToaruOS might count, but klange doesn't want it used seriously.
I like your toolkit. Is "COM" Microsoft's Common Object Model? I might look into that for modularity purposes.
I use COM in C++ in my day job, and while I generally dislike Windows programming, COM is actually quite nice, being very similar to Java interfaces.
My use is probably more like Java interfaces, as I don't do any reference counting (not necessary with mark/sweep GC). I do have an explicit interface query method, that each object uses to switch between interfaces.
It's nice being able to work with generic device_t objects in my device manager, for example, then probe each device.
On probe of a USB BBB device, the USB BBB device driver will emit a new block device instance into the device tree, which itself would be picked up by device drivers listening for new block devices. Such a device driver might be a DOS partition driver, which will probe the block device, looking for a partition table, and enumerate any contained partitions into new block devices for those partitions. These block devices will further be probed to look for filesystems etc.
But the device manager itself just works with the device interface, probing new devices as they're added.
Thanks, but I'm not using C++ or even C. I could dynamically link it, but I want to write my own memory management.thewrongchristian wrote:If you're interested, I may look at splitting this library out, or at least make it a standalone build target.
I didn't think you would be. I'd love to have a business like yours, but I don't think my health would really allow me to be professional. (I still have hope that might change.) I've known several programmers with similar businesses; 1 person or a small team providing solutions with an OS or language they understand top to bottom. They're all around retirement age; you give me hope this business model can still work.rdos wrote:I'm not much concerned about that issue. My future plans is only to have it as my own platform so I can code various projects without needing to learn Windows or Linux. My company also has a few 1,000s of installations using my OS that will need to be maintained for many years. So, I plan to involve in that too. I will not involve in new Linux solutions though, as I have no desire to code for Linux or Android.
It's not that bad, is it? You might have to fix up your coding style; no more writing bootloaders in 15 minutes.BigBuda wrote:The dev...il.eekee wrote:So, what sort of developers would your OS attract?
Kaph — a modular OS intended to be easy and fun to administer and code for.
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
Re: What sort of devs would your OS attract? :)
Oh, no, he might just want his place running more smoothly. In any case, I'm curious to hear your feedback on my coding style.eekee wrote:It's not that bad, is it? You might have to fix up your coding style; no more writing bootloaders in 15 minutes.
Writing a bootloader in under 15 minutes: https://www.youtube.com/watch?v=0E0FKjvTA0M
Re: What sort of devs would your OS attract? :)
I was just trying to find something to make the joke work. Kind-of work. I don't actually remember your coding style, so it can't be memorably-bad, at least.BigBuda wrote:In any case, I'm curious to hear your feedback on my coding style.
Kaph — a modular OS intended to be easy and fun to administer and code for.
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
Re: What sort of devs would your OS attract? :)
You managed to somehow scare me there for a bit, because I kinda need to have a good coding style, as defensive programming and good programming practices are some of the things I'm paid to teacheekee wrote:I was just trying to find something to make the joke work. Kind-of work. I don't actually remember your coding style, so it can't be memorably-bad, at least.
Writing a bootloader in under 15 minutes: https://www.youtube.com/watch?v=0E0FKjvTA0M
Re: What sort of devs would your OS attract? :)
Oh sorry!BigBuda wrote:You managed to somehow scare me there for a bit, because I kinda need to have a good coding style, as defensive programming and good programming practices are some of the things I'm paid to teacheekee wrote:I was just trying to find something to make the joke work. Kind-of work. I don't actually remember your coding style, so it can't be memorably-bad, at least.
Kaph — a modular OS intended to be easy and fun to administer and code for.
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
Re: What sort of devs would your OS attract? :)
In Scotland, you can have your haggis and eat it too.BigBuda wrote:You managed to somehow scare me there for a bit, because I kinda need to have a good coding style, as defensive programming and good programming practices are some of the things I'm paid to teacheekee wrote:I was just trying to find something to make the joke work. Kind-of work. I don't actually remember your coding style, so it can't be memorably-bad, at least.
Re: What sort of devs would your OS attract? :)
First you have to catch your haggis. Nippy wee beasties.