What are Hobby OS better at ?
Re: What are Hobby OS better at ?
I'd say it has to do with some less well defined principles. You essentially have a lot of freedom as a programmer, generally that includes freedom from business pressures, software politics and to a degree implementation standards if you so desire it. I also think you can make a more agile system by designing it around current architectures and components. It always perplexes me a bit that people argue about something not being portable between a cellphone a server farm, why not focus on the right tool for the job? I think the desktop is a good target, but honestly I don't see the desktop moving away as quickly as it was before. I can't really think of many ground breaking innovations that have been added to windows or various desktop environments lately, most of it has been visual fluff, support for newer hardware, or removal and rewriting of old legacy subsystems.
Likewise I think the platform has essentially been becoming a lot more open, and will likely become even more so when EFI takes off. I think the hardest part is what other people have brought up, the transition from an hobby OS to a serious attempt to gain a user base and more importantly outside developer support. Most OS projects simply don't get that far and when they do they might make decisions that are unpopular or involve legal disputes (this is why I'm never going to risk putting my project under the GPL personally). I think there's also a bit of a stigma with a lot of projects being "just another unix clone". There's a lot of pressure to just use what's available out there, but doing so tends to remove a lot of the what makes the OS interesting to anyone who isn't working on the kernel itself. There's really no easy guide about how to do this and I don't think it would be fixed with any kind of unified specification either. It's kind of where the art of it all meets the functionality. I will add that responsive feedback and a consistent and well documented API probably wouldn't hurt though.
Likewise I think the platform has essentially been becoming a lot more open, and will likely become even more so when EFI takes off. I think the hardest part is what other people have brought up, the transition from an hobby OS to a serious attempt to gain a user base and more importantly outside developer support. Most OS projects simply don't get that far and when they do they might make decisions that are unpopular or involve legal disputes (this is why I'm never going to risk putting my project under the GPL personally). I think there's also a bit of a stigma with a lot of projects being "just another unix clone". There's a lot of pressure to just use what's available out there, but doing so tends to remove a lot of the what makes the OS interesting to anyone who isn't working on the kernel itself. There's really no easy guide about how to do this and I don't think it would be fixed with any kind of unified specification either. It's kind of where the art of it all meets the functionality. I will add that responsive feedback and a consistent and well documented API probably wouldn't hurt though.
Reserved for OEM use.
Re: What are Hobby OS better at ?
Well, the reason I got into the hobby OS topic was because I disliked all existent operating systems(only tried Linux and Windows, though ) and I thought they were *ALL* poorly designed.
So, I thought "why not try to make something better and maybe learn something new on the way"? Hobby OS are better than existent ones because you learn more about Hobby OSes making a hobby OS than you do looking at existent ones.
So, I thought "why not try to make something better and maybe learn something new on the way"? Hobby OS are better than existent ones because you learn more about Hobby OSes making a hobby OS than you do looking at existent ones.
Then that makes it two of us.One thing I'm disappointed about is that theres no good off the shelf microkernel that I could find; There's L4 derivatives like L4ka::Pistachio, but theres absolutely no documentation - I don't know how to write my own root servers.
- AndrewAPrice
- Member
- Posts: 2300
- Joined: Mon Jun 05, 2006 11:00 pm
- Location: USA (and Australia)
Re: What are Hobby OS better at ?
There's now three of us..One thing I'm disappointed about is that theres no good off the shelf microkernel that I could find; There's L4 derivatives like L4ka::Pistachio, but theres absolutely no documentation - I don't know how to write my own root servers.
While there isn't anything wrong with it, I don't find much appealing about a Unix clone that is able to run Bash, GCC, and perhaps X when I could just run Linux or *BSD itself. It doesn't feel as if I'm experiencing something new as I would when I try out Syllable, MenuetOS, DexOS, or SolarOS.
I think if you want your OS to stand out you need to target a particular niche market. OS's that stand out to me are DexOS (for the console-like OS - I applaud Dex for his vision) and MenuetOS (while not unique user-wise I find it a technical feat). Each had a clear objective they built around. I recommend that you write an objective statement for any project you work on about what the project is going to do and who it is for. The shorter and simpler your statement is, the better. Also, referring back to your statement in the future when you're brain-storming for what to implement in the next version can keep you on track as well as keep you motivated.
While it's not my dream to create the next mainstream OS, I think that everyone here would like recognition for their work, even if it is confined within a small niche within the OSDev community and those you target, and something to aspire to for future OS dev'ers.
As for my own OS, I've been inspired somewhat by DexOS's vision in that it is single purpose and fast, but the way I will go about it is completely different as I will focus on kernel-level JIT'ing safe .Net code in order to provide protection yet not require expensive context switching. My goal is to provide an extremely fast yet safe single-tasking environment (although multi-tasking at the core for servers and drivers, only one application will be visible).
Last edited by AndrewAPrice on Sat Nov 28, 2009 7:27 pm, edited 1 time in total.
My OS is Perception.
- Owen
- Member
- Posts: 1700
- Joined: Fri Jun 13, 2008 3:21 pm
- Location: Cambridge, United Kingdom
- Contact:
Re: What are Hobby OS better at ?
A reusable micro-kernel may be a good area for a community project, as it shouldn't be too hard to reach a point of consensus on how to build one (Unlike a community OS project, where everyone has their own opinion on how to build the OS, things are much simpler for a micro-kernel).
Either that or try and decipher how L4 works; something I've tried to do and given up at - the absolute lack of documentation means I have absolutely no clue where to start.
Either that or try and decipher how L4 works; something I've tried to do and given up at - the absolute lack of documentation means I have absolutely no clue where to start.
- Combuster
- Member
- Posts: 9301
- Joined: Wed Oct 18, 2006 3:45 am
- Libera.chat IRC: [com]buster
- Location: On the balcony, where I can actually keep 1½m distance
- Contact:
Re: What are Hobby OS better at ?
If its undocumented, why don't you take on the challenge to duke it out and write the documentation yourself? It can even be fun to do (yes that's an undocumented 3d card, yes I can run my own code on its gpu, and now everybody else can too )
-
- Member
- Posts: 25
- Joined: Fri Dec 04, 2009 10:08 am
Re: What are Hobby OS better at ?
Well a couple of reasons one might program an OS that would be reasonable (other than just to know how everything works).
1. Lower resource load. Face it Windows and Linux and all are resource hogs if your computer only has a couple of tasks it needs to perform (say an OS just for web browsing).
2. Proof of concept. "If I designed it this way would it be better or worse?"
1. Lower resource load. Face it Windows and Linux and all are resource hogs if your computer only has a couple of tasks it needs to perform (say an OS just for web browsing).
2. Proof of concept. "If I designed it this way would it be better or worse?"
- AndrewAPrice
- Member
- Posts: 2300
- Joined: Mon Jun 05, 2006 11:00 pm
- Location: USA (and Australia)
Re: What are Hobby OS better at ?
Hobby OS's allow us to implement our dream system.
My goal is to write an operating system where programs are able to achieve maximum performance (hence I'm modelling it after a video-game OS). The reason I admire Dex and his OS is because it has a similar goal but the way we're going about it is completely different. In his OS you are given full access to the hardware and memory and do whatever you like, and there is no point recreating his OS otherwise I could just ask to join his team. Instead in my OS, we differ because I also admire the microkernel architecture, my OS will be multitasking (to the extent the Xbox 360 is - you can have background tasks) and I wish to allow applications to communicate through drivers rather than directly to the hardware (so applications are portable across a wide variety of hardware configurations and not recreate the problem DOS games had where every game had to support every piece of hardware).
As a result of selecting the microkernel architecture and sticking to my goal of maximum performance, I'm developing an IPC implementation so that a calling a function in another thread (that thread could be in another program) is not much less efficient than calling a local function, removing any need for ring changes or system calls. To do this safely (the microkernel goal) I'm taking the route of JITing 'safe' bytecode so I can ensure it doesn't access memory or call functions it shouldn't(I chose .Net because of the large number of languages you can develop in). My project differs from SharpOS and Cosmos since I my goal isn't to write a 100% .Net OS (my kernel and the JIT compiler are written in C++), as my choice of using .Net is limited to the user applications (including drivers and servers).
As a result of my decision to use safe bytecode I will be able to run any application or server (drivers excluded) on any platform I have ported the kernel to, including as a guest program on another operating system. This means I can debug the portable kernel code (such as the JIT compiler) as if were a native Windows application, and I can also test out my servers and applications without requiring a VM. Drivers as well as non-portable parts of my kernel are unfortunately excluded.
My goal is to write an operating system where programs are able to achieve maximum performance (hence I'm modelling it after a video-game OS). The reason I admire Dex and his OS is because it has a similar goal but the way we're going about it is completely different. In his OS you are given full access to the hardware and memory and do whatever you like, and there is no point recreating his OS otherwise I could just ask to join his team. Instead in my OS, we differ because I also admire the microkernel architecture, my OS will be multitasking (to the extent the Xbox 360 is - you can have background tasks) and I wish to allow applications to communicate through drivers rather than directly to the hardware (so applications are portable across a wide variety of hardware configurations and not recreate the problem DOS games had where every game had to support every piece of hardware).
As a result of selecting the microkernel architecture and sticking to my goal of maximum performance, I'm developing an IPC implementation so that a calling a function in another thread (that thread could be in another program) is not much less efficient than calling a local function, removing any need for ring changes or system calls. To do this safely (the microkernel goal) I'm taking the route of JITing 'safe' bytecode so I can ensure it doesn't access memory or call functions it shouldn't(I chose .Net because of the large number of languages you can develop in). My project differs from SharpOS and Cosmos since I my goal isn't to write a 100% .Net OS (my kernel and the JIT compiler are written in C++), as my choice of using .Net is limited to the user applications (including drivers and servers).
As a result of my decision to use safe bytecode I will be able to run any application or server (drivers excluded) on any platform I have ported the kernel to, including as a guest program on another operating system. This means I can debug the portable kernel code (such as the JIT compiler) as if were a native Windows application, and I can also test out my servers and applications without requiring a VM. Drivers as well as non-portable parts of my kernel are unfortunately excluded.
My OS is Perception.
Re: What are Hobby OS better at ?
@MessiahAndrw, My OS maybe closer to your idea of a game sys than you think, as times have changed since i started DexOS, if i where to start such a project today, it would be much more like your design.
But there has been work, to put right some of these design faults.
1. Eg: there's a built in driver inteface, that mean programs have the same interface whether you have type A or type B sound card etc, the driver justs hooks, into the same functions calls, replacing the default ones
2. On top of this, we have team members working on "AOS"
See here: http://dex.7.forumer.com/viewtopic.php? ... t=bytecode
and here: http://dex-os.wikidot.com/dev:cpads
Good luck with you OS, it sounds cool.
But there has been work, to put right some of these design faults.
1. Eg: there's a built in driver inteface, that mean programs have the same interface whether you have type A or type B sound card etc, the driver justs hooks, into the same functions calls, replacing the default ones
2. On top of this, we have team members working on "AOS"
See here: http://dex.7.forumer.com/viewtopic.php? ... t=bytecode
and here: http://dex-os.wikidot.com/dev:cpads
Good luck with you OS, it sounds cool.
Re: What are Hobby OS better at ?
I think hobby OSes are somethings which are fully configurable. You can do whatever in your OS You have to see flaws in existing operating systems and implant the solutions in your hobby OS. This is how a hobby OS will become specialized in. A few basic examples are better GUI, customization, modular, terminal I/O. If you could build something unique that cannot be implemented in existing operating systems without a huge change in their internal structure, then your hobby OS will be definitely successful. Metro apps and multiple desktops has made Win10 better than Win8/8.1.
Few examples are - Software-based execution of programs with type-xafety and a same address space (like Singularity), better IPC which is interpreted. You could update object-information in the kernel-space itself using some kernel-scripting and no need for context-switching or message passing. It's something you could think of.
Few examples are - Software-based execution of programs with type-xafety and a same address space (like Singularity), better IPC which is interpreted. You could update object-information in the kernel-space itself using some kernel-scripting and no need for context-switching or message passing. It's something you could think of.
Re: What are Hobby OS better at ?
If we're talking about successful OSs like Linux/Windows, they're big and complicated. A hobby OS could excel at the opposite. Being simple, lightweight, understandable by a single person.
Re: What are Hobby OS better at ?
They are better at this:
I have a spare 15 years old computer that can't run any modern OS (modern Windows/mac OS/Ubuntu), but can run mine.
I have a spare 15 years old computer that can't run any modern OS (modern Windows/mac OS/Ubuntu), but can run mine.
OS: Basic OS
About: 32 Bit Monolithic Kernel Written in C++ and Assembly, Custom FAT 32 Bootloader
About: 32 Bit Monolithic Kernel Written in C++ and Assembly, Custom FAT 32 Bootloader