Can I create my OS based on FreeBSD

Can I create my OS based on FreeBSD

  • Yes

    Votes: 15 57.7%
  • No

    Votes: 11 42.3%

  • Total voters
    26
If I ever did that I would make the logo a harp seal; after the Beastie is freed it turns out to be a cute fluffy seal who lives in the Arctic.


freebsd_logo.jpg

{from how2drawanimals.com}
* I wasn't planning on doing this, but I hope someone does, I think it's a good idea.
 
Basically, what's everyone saying?

I kinda love the project idea, but I need to know whether I'm getting "Yes, you can do it," or "To hell with that idea"

What exactly makes it impossible to develop operating systems nowadays with our advanced technology and knowledge of systems? I mean, they seem more advanced than in the 1970s and 1980s. So why is it impossible all of a sudden after 2010?
 
What exactly makes it impossible to develop operating systems nowadays with our advanced technology and knowledge of systems? I mean, they seem more advanced than in the 1970s and 1980s. So why is it impossible all of a sudden after 2010?

The drivers and other software components for all the hardware you need.
 
Basically, what's everyone saying?

I kinda love the project idea, but I need to know whether I'm getting "Yes, you can do it," or "To hell with that idea"

What exactly makes it impossible to develop operating systems nowadays with our advanced technology and knowledge of systems? I mean, they seem more advanced than in the 1970s and 1980s. So why is it impossible all of a sudden after 2010?
A 5-year old thread receiving some necroposting... 😏 Oh well.

It does take time and effort. Even Linux started out simple - because it was an incredibly smart guy at University of Helsinki doing it (yep, same guy who invented Git!)

An OS is a plenty complicated puzzle. Code versions for different components have to match. And that list of components is pretty long, too. And you gotta make sure all the components play well with each other. And you gotta have hardware that is powerful enough to compile stuff over and over again.

You also have to have to be able to set up shop correctly, and line up the toolchain so that you can just pop out an ISO that you can install. It's an endless rabbit hole. You gotta be able to reconsider your decisions every step of the way.

And then that toolchain requires maintenance, too. Vast majority of people who try to roll their own Linux distro or a BSD version - even if they succeed in putting something together from up-to-date components at some point, and it somehow works OK at that point in time, there's still a ton of maintenance needed. No one-dev show has been able to keep up with the required maintenance for more than a year or two. And that maintenance includes security-related patches, bugfixes, and whatnot. For an OS to work awesome, you can't be "Jack of all trades, master of none".

There was a famous example of someone who actually tried to pull it off - the TempleOS guy. He actually had something going for a few years, it worked much better than what can be expected from a one-dev show, but it didn't last.

With that said, it can be a fun hobby to try and pull together something on your own hardware - just keep in mind, the Internet is already littered with abandoned projects like that. I would not want to use a disposable OS that somebody slopped together without much consideration for QA. Harsh words, but that is reality. Even on a toy device, I'd rather have decent quality firmware that I can rely on.

I remember really liking CyanogenMod. When I discovered it, it was aready a well-developed OS, well-supported on many devices, and the toolchain was obviously well-organized. These days, it's called LineageOS, and it's a fork of Cyanogen - someone liked Cyanogen enough to put in the effort it takes to continue the project. Many have tried to replicate the success of Cyanogen/Lineage, but the best anyone could hope for is a model-specific phone ROM of dubious quality. I'd know, I tried them. And even then, most of those ROMS are for older phones that are no longer on the market, and the projects are effectively abandoned. Even if you can download a ROM and find instructions on how to install it, you'd usually see comments indicating that the ROM is no longer in development.

Even big and popular Open Source projects have a difficult time sustaining themselves. Apache Foundation's Subversion is being edged out by Git, Xorg is running out of money to host their own development infrastructure, and there's more stories like that.

There's lots more reasons and examples why developing an OS ain't easy. I consider myself lucky that I was able to find out about FreeBSD and make good use of it. Yeah, it's largely a DIY, and it has its drawbacks, but I can live with that, because the benefits I derive make it worthwhile for me.

So, no, it's not "all of a sudden". OS development faced very different challenges in 1970s and 1980s than in 2010s. Lack of access to tools and infrastructure was an issue in 1970s and 80s. Also, back then, there was not a lot of material to learn from. mrmtsenga , you might benefit from watching a few documentaries about what UNIX development was like back then. With the Open Source movement (which was created because one MIT dev got pissed at a colleague), the challenges of OS development are pretty different than in '70s/80s, but they are challenges nonetheless.
 
What exactly makes it impossible to develop operating systems nowadays with our advanced technology and knowledge of systems? I mean, they seem more advanced than in the 1970s and 1980s. So why is it impossible all of a sudden after 2010?
Who says it is impossible? You can develop new OS but you will need time.
 
Basically, what's everyone saying?

I kinda love the project idea, but I need to know whether I'm getting "Yes, you can do it," or "To hell with that idea"

What exactly makes it impossible to develop operating systems nowadays with our advanced technology and knowledge of systems? I mean, they seem more advanced than in the 1970s and 1980s. So why is it impossible all of a sudden after 2010?
When you look at Ahmed's post here you'll see that "creating my OS" was a bit misleading title.

Can you do your custom OS from scratch? Depends on what you'll consider a functioning OS. Certainly handful of people did to a certain degree. There are far better forums for that though: osdev.org. People share their achievemnts there too, you get an idea.
 
When you look at Ahmed's post here you'll see that "creating my OS" was a bit misleading title.

Can you do your custom OS from scratch? Depends on what you'll consider a functioning OS. Certainly handful of people did to a certain degree. There are far better forums for that though: osdev.org. People share their achievemnts there too, you get an idea.
Thanks, _martin I'll check it out
 
A 5-year old thread receiving some necroposting... 😏 Oh well.

It does take time and effort. Even Linux started out simple - because it was an incredibly smart guy at University of Helsinki doing it (yep, same guy who invented Git!)

An OS is a plenty complicated puzzle. Code versions for different components have to match. And that list of components is pretty long, too. And you gotta make sure all the components play well with each other. And you gotta have hardware that is powerful enough to compile stuff over and over again.

You also have to have to be able to set up shop correctly, and line up the toolchain so that you can just pop out an ISO that you can install. It's an endless rabbit hole. You gotta be able to reconsider your decisions every step of the way.

And then that toolchain requires maintenance, too. Vast majority of people who try to roll their own Linux distro or a BSD version - even if they succeed in putting something together from up-to-date components at some point, and it somehow works OK at that point in time, there's still a ton of maintenance needed. No one-dev show has been able to keep up with the required maintenance for more than a year or two. And that maintenance includes security-related patches, bugfixes, and whatnot. For an OS to work awesome, you can't be "Jack of all trades, master of none".

There was a famous example of someone who actually tried to pull it off - the TempleOS guy. He actually had something going for a few years, it worked much better than what can be expected from a one-dev show, but it didn't last.

With that said, it can be a fun hobby to try and pull together something on your own hardware - just keep in mind, the Internet is already littered with abandoned projects like that. I would not want to use a disposable OS that somebody slopped together without much consideration for QA. Harsh words, but that is reality. Even on a toy device, I'd rather have decent quality firmware that I can rely on.

I remember really liking CyanogenMod. When I discovered it, it was aready a well-developed OS, well-supported on many devices, and the toolchain was obviously well-organized. These days, it's called LineageOS, and it's a fork of Cyanogen - someone liked Cyanogen enough to put in the effort it takes to continue the project. Many have tried to replicate the success of Cyanogen/Lineage, but the best anyone could hope for is a model-specific phone ROM of dubious quality. I'd know, I tried them. And even then, most of those ROMS are for older phones that are no longer on the market, and the projects are effectively abandoned. Even if you can download a ROM and find instructions on how to install it, you'd usually see comments indicating that the ROM is no longer in development.

Even big and popular Open Source projects have a difficult time sustaining themselves. Apache Foundation's Subversion is being edged out by Git, Xorg is running out of money to host their own development infrastructure, and there's more stories like that.

There's lots more reasons and examples why developing an OS ain't easy. I consider myself lucky that I was able to find out about FreeBSD and make good use of it. Yeah, it's largely a DIY, and it has its drawbacks, but I can live with that, because the benefits I derive make it worthwhile for me.

So, no, it's not "all of a sudden". OS development faced very different challenges in 1970s and 1980s than in 2010s. Lack of access to tools and infrastructure was an issue in 1970s and 80s. Also, back then, there was not a lot of material to learn from. mrmtsenga , you might benefit from watching a few documentaries about what UNIX development was like back then. With the Open Source movement (which was created because one MIT dev got pissed at a colleague), the challenges of OS development are pretty different than in '70s/80s, but they are challenges nonetheless.
Okay, so I'm seeing a problem of lone developers trying to be the next Bill & Allen, forgetting that Microsoft was already born when Windows appeared.

I also think the Open Source movement made OS dev a nightmare, because it's literally the father of the Movement and the GNU license. Although it makes software dev easier nowadays, but it has crippled OS dev since almost all kernel are under the GNU license (imagine if macOS and Windows were Open Source)

Thanks a lot for the clarity, astyle — this isn't the only platform I've been on, Reddit and Quora have tons of No sayers, so I wasn't sure as to the verdict. I'll also check osdev.org, they seem to have great resources too 🙏
 
Unfortunately as the field became bloated with all these motivated brite young computer scientists who believed the IOT hype about starting the next google, they had to find a creative outlet and a path to make a name for themselves, so we now start seeing way too many "solutions in search of a problem". We don't NEED another OS. We need better standards and more ethical constraints in the ones that do exist...Yeah Android, I'm talking about you!
 
Why do you want to create a system that no one will use anyway except you and possibly your friends. How much time can you devote to maintaining and running such a project? Fixing bugs etc.? It's a waste of your time and energy. Join a community and create something useful.You're starting to play in the world of Linux. Thousands of distributions, usually differing in wallpaper and appearance and not contributing anything valuable. Distributions that no one uses... People usually and usually use the main distributions where there are the most focused people and the greatest support. And such "unnoticeable" distributions quickly die. No one uses them and the creator quickly closes such a project. You'd better start doing something for the FreeBSD community.
 
I will give you an idea. Instead of creating your OS, try to create new GUI for Unix. Get X11 and create X12.
 
Why do you want to create a system that no one will use anyway except you and possibly your friends. How much time can you devote to maintaining and running such a project? Fixing bugs etc.? It's a waste of your time and energy. Join a community and create something useful.You're starting to play in the world of Linux. Thousands of distributions, usually differing in wallpaper and appearance and not contributing anything valuable. Distributions that no one uses... People usually and usually use the main distributions where there are the most focused people and the greatest support. And such "unnoticeable" distributions quickly die. No one uses them and the creator quickly closes such a project. You'd better start doing something for the FreeBSD community.
I made comments like that on distrowatch about 10 years ago, when there was an explosion of Ubuntu-based distros, and RedHat/Fedora was just beginning to embark on their journey to upend every sensible understanding of any develoment model. The reaction I received was "No, it's great that there's so many distros to try!". Too many cooks spoil the broth.

[sarcasm]Maybe I should try to to get X11, and create X13? ;) [/sarcasm]
 
I know that this is almost a 10-year-old thread, but it seems that we have fresh activity here.

Many of the major topics have already been discussed here. I just want to add a couple of my own thoughts. Many people on this forum, in a sense, already have their own OS - they’ve built it from the source code, incorporating the necessary applications, creating custom configurations, and, in some cases, even modifying the code. An entire operating system is huge and contains many critical components that must be tested over a long period. Therefore, building a completely new OS might not be the most practical approach these days.

However, configuring a GUI and modifying the boot loader are not too challenging tasks. The real question is: what is the deeper purpose or motivation behind creating such an independent branch of FreeBSD?
 
When I was in college, many OS development textbooks came with source code of a toy OS. In my case, it was Nachos - a Java-based implementation of OS components. It was a very bare-bones implementation, and implementing missing components - that's what the textbook was supposed to teach. Tanenbaum's Minix was just another option for a teaching tool.

The goal of those textbooks - it's only to teach how the code manages the metal. Those textbooks won't teach about realities of maintenance of software repos or updating the kernel sources.

Just writing self-hosting code is no small feat. Even the RedoxOS team had to take a few years before they had anyhing running on bare metal.

If someone wants to learn how an OS is written - there's plenty of textbooks that teach that. Just pick one up, do the exercises, and keep at it until you finish the book and successfully complete the exercises.

But writing your own from scratch? Nothing stops you from spending your time and effort, just don't count on having users other than yourself and maybe a friend or two. The thinking "Linus did it, so why can't I?" is incredibly misguided and flawed, for many reasons. And maybe there's kind of a reason why so many distro projects get abandoned, hmm? 😏
 
When I was in college, many OS development textbooks came with source code of a toy OS. In my case, it was Nachos - a Java-based implementation of OS components. It was a very bare-bones implementation, and implementing missing components - that's what the textbook was supposed to teach. Tanenbaum's Minix was just another option for a teaching tool.

The goal of those textbooks - it's only to teach how the code manages the metal. Those textbooks won't teach about realities of maintenance of software repos or updating the kernel sources.

How did they manage the metal in Java?

How did they anchor the GC if they don't have virtual memory yet?
 
How did they manage the metal in Java?
The actual Java code did NOT manage metal. It was merely a Java program that ran exactly the same as a helloword.class - in its own JVM instance.

It was an implementation of a representation of how metal is supposed to be managed.

Garbage collection was anchored to the JVM instance.

Implementation of Memory/RAM management - that was one of the exercises in the book. Write a module to manage memory/RAM, stick it into the codebase provided by the book, compile the whole thing, see if it crashes.
 
I wish I could find it online but searches turn up empty: Dr Dobbs Journal "Porting BSD to the 386"...and from there it was history. ;)
Do you use Google? or are there reasons you don't?

I found this:
https://www.386bsd.org/releases
https://archive.org/details/dr_dobbs_journal

You can probably find torrents of the stuff, too. This was about 60 seconds worth of effort for me.
 
Do you use Google? or are there reasons you don't?

I found this:
https://www.386bsd.org/releases
https://archive.org/details/dr_dobbs_journal

You can probably find torrents of the stuff, too. This was about 60 seconds worth of effort for me.
Neither...my google search didn't pull up those responses...

"porting BSD to the 386 Dr Dobbs journal"
The responses were rather anorexic.
 
Neither...my google search didn't pull up those responses...

"porting BSD to the 386 Dr Dobbs journal"
The responses were rather anorexic.
Now that's just flabbergasting... When I tried to google the exact string "porting BSD to the 386 Dr Dobbs journal", I got the hits I mentioned earlier. Are you using an onion router, or what????

The Wikipedia entry about Dr. Dobbs Journal is pretty informative: https://en.wikipedia.org/wiki/Dr._Dobb's_Journal
Dr. Dobbs' Journal is still online, but it stopped being active back in 2014: https://www.drdobbs.com/architecture-and-design/farewell-dr-dobbs/240169421

Those results, I found with Google... as well as the very fact that Dr. Dobbs is mentioned in the ACM Digital Library: https://dl.acm.org/doi/10.5555/95328.95330

Well, sometimes one person cannot find something on Google no matter how much they struggle, but another one can find the same thing on Google with ease.

I've had that happen to me a few times. I have a relative on the other side of this planet, they needed to buy a washing machine to do laundry. And could not find it in town, a major European metropolis. Well, Biden messed up the global economy with sanctions, so my relative thought that thanks to that, new washing machines are just not available for sale in the country, period. And I sit on West Coast US, halfway between Seattle and San Francisco. And guess what, I found a washing machine in that country. Brand-new appliance, imported from China, sold through the country's chain of domestic goods stores (comparable to Home Depot in US). Now my relative can do laundry properly at home. Point of this story being, it's not that unusual that one person can find something on Google that someone else cannot.
 
I did manage to find the article on the internet archive site once you responded...When the article was recently published I was just starting out as a brite eyed computer geek who coudl code an unbeatable tic-tac-toe game, but little experience with operating systems. Going back and rereading the article yesterday was quite nostalgic now that I'm so intimately familiar with low level programming and designing OSs.
 
Back
Top