How to build your own BSD distribution?

In all my years with corporate contracts, I never used (or knew) that Enterprise Windows could be compiled without the junk.
Nobody but Microsoft compiles Windows, I'm sure you meant "installed" here. But anyway, look up "Windows NT answer file" or "unattend.txt", this has been possible for as long as I can remember (in the distant past I was a Windows admin, we're talking Windows NT 3.51/4.0 days).
 
In all my years with corporate contracts, I never used (or knew) that Enterprise Windows could be compiled without the junk.
The OS images were built in-house by the company team, so I had zero contact with doing this.
There is a Windows tool (WinPE, I believe) that can be used to create a base image that can be installed. It's a bare image, with very little junk to enable/disable. No, it's not 'compilation' in the sense of using a compiler like GCC/LLVM, it's more like a graphical 'wizard'. But yeah, it's used to create bootable installer images. That tool is actually publicly available if you know where to look.

In fact, this is how you build a Windows-based 'rescue disk'. Microsoft tries to bullshit you with Enterprise licenses and whatnot, but makes WinPE editions available no problem. It's just a matter of being able and willing to do a bit of research and experimenting. WinPE is meant for a USB stick. Once you get a handle on it, you'll discover that FreeBSD is not that different, it can be used for exact same purposes.

Yeah, you get a CLI in FreeBSD. Windows also provides command-line tools in its rescue disks, and there are documentation pages for those tools available online - if you know where to look.
 
Nobody but Microsoft compiles Windows.
That has always been my understanding since Day One.

My response was to the statement about Enterprise.

Windows has always offered selective feature installation. Internet Explorer and others are embedded in the kernel and cannot be fully removed due to shared DLLs in the message chain.

My appreciation for FBSD is compiling with only the components you need.
 
microsoft gives you source if you really want. does this mean you can't compile it?

i was surprised ms does this but apparently if you have ton of money they do. you can't probably do anything with it and they would know who to sue

or maybe they just share part of src

anyway, at least fbsd you always have this option. you could make distribution too if you want. there are several

and anyone with more serious installs probably has one too
 
microsoft gives you source if you really want. does this mean you can't compile it?
Not really. That was a misunderstanding somewhere.

MS does share specs for implementations of various components, and there are textbooks that explain those specs. Those textbooks are required for Computer Science curricula in lots of universities around the globe.

It's not the same as selling copies of source code. The OS does provide APIs and syscalls that you can call from your own programs, too. Exposing APIs and providing specs is NOT the same as sharing actual source code.
 
Windows has always offered selective feature installation. Internet Explorer and others are embedded in the kernel and cannot be fully removed due to shared DLLs in the message chain.
Windows Features and Windows Kernel Components are very different things.

Internet Explorer is part of the Win32 ecosystem, documented to be an omnipresent component for 30 years now, it can handle quite a bit of stuff people want to do but don't want to reinvent the wheel in order to do so, and consequently there's a lot of Windows software around that invokes IE functionality via Win32's IUnknown API (or COM), and some of this software might be required to be able to handle a regular user login or to even the "boot" to the point that a login prompt could be shown. I.e. there are Userspace Applications in Windows that rely on Windows' ability to create an Internet Explorer (component) instance by querying it's guaranteed-to-be-present enumerator, don't have fallback paths in case Windows returns an error to that request, and are critical.

We have this stuff in FreeBSD, too. E.g. we hard rely on /bin/sh, we don't check for presense nor do we check for /bin/sh having the correct version but instead just rely on it to be there and in a compatible version. Delete /bin/sh and FreeBSD will abort the startup sequence and drop you into single user mode / rescue mode, but it will boot nevertheless. Just as Windows will do, and drop you into rescue mode, if you delete Internet Explorer.

Despite FreeBSD hard-depending on sh or something bug-level-compatible to it, we don't put it into the kernel, because it just simply doesn't belong there. Why would Microsoft put I.E. into the kernel, and how could users possibly delete I.E. to find out Windows can no longer regularily boot up if it was there?
 
they did


where's misunderstanding here? yes it has limits. yes it's restricted. no, it's not impossible

we talked about availability of windows source code and other microsoft codes in general
Thanks for the link, it reminded me. I was seeing info out on the Internet that Microsoft is really unwilling to share its source code, but now I can see that this secondhand info was incomplete. And when that incomplete info was repeated so many times, I fell for the trap of not realizing that it's incomplete, and started believing that there's nothing more to the story. Another case of systematic blind spot that was carefully developed.
 
joys of search engines. you find what you search. unsure what i used but i did know ms has this program

which is funnily why you don't blindly tell people to google, they will not find it
 
I work in the Windows world.
Sifting through a train wreck is an apt description.
Especially so for Win10 and Win11.
Very few developers truly understand the word "uninstall" because they leave countless droppings behind.

I admire greatly FBSD for its inherent cleanliness.
There is a whole world of useful work that can be done without the burden of a GUI and its attendant problems.
Being able to build FBSD from scratch with only the desired tools is a huge bonus, IMO.
No only build a custom kernel
 
So, you want to make a FreeBSD derivative more like the original FreeBSD? 🤣

If that's the case, what's the point of the derivative?

It's probably easier to (just do a bit of customizing on the original) than to (take a derivative and roll back everything you don't want (leaving what you need))... 😂
No I just want to compile a custom kernel like I used to do with linux in the past.
I ask this because here there are some good system engineers.
And at this time, derivative Bsd are not like freebsd.
all I want it's a new kernel . Just for fun and see if it's faster.
My other soft are not involve in this .
thanks
 
Thank You it's a nice idea to build a custom nanoBSD too.
I'm back to system programming . I was in java dev.
So there is a lot to do.
But I'm lucky to have some free time.
And have some fun.
Best regards !
 
And at this time, derivative Bsd are not like freebsd.
If the derivative is based on FreeBSD, it shouldn't be that hard to use FreeBSD's official documentation for the re-compilation steps.

Most of the derivatives are just minor changes and some automation of setup chores. Or do you have a weird architecture? (like aarch64, mk86, and the like). And most of the time, the derivatives do refer back to the docs of the original stuff.

If you want to be 'not like FreeBSD', you'd have to do some pretty drastic changes, like ripping out the useland utilities that are included by default and replacing them with GNU stuff, for example. Or include some new ethernet drivers. Or, rip out the BSD init, and replace it with an implementation that functions more like systemd. Yeah, it would have to be that drastic.

Reasons for recompiling the kernel are the same in both Linux and BSD camps.
 
If the derivative is based on FreeBSD, it shouldn't be that hard to use FreeBSD's official documentation for the re-compilation steps.

Most of the derivatives are just minor changes and some automation of setup chores. Or do you have a weird architecture? (like aarch64, mk86, and the like). And most of the time, the derivatives do refer back to the docs of the original stuff.

If you want to be 'not like FreeBSD', you'd have to do some pretty drastic changes, like ripping out the useland utilities that are included by default and replacing them with GNU stuff, for example. Or include some new ethernet drivers. Or, rip out the BSD init, and replace it with an implementation that functions more like systemd. Yeah, it would have to be that drastic.

Reasons for recompiling the kernel are the same in both Linux and BSD camps.
Yes I know that derivative are like a child of FreeBSD. FreeBSD is the base where that come from.
I find a solution . I can download some modules from the kernel. Like that I will be able to see the change.
For educational purpose it can be fine.
 
all I want it's a new kernel . Just for fun and see if it's faster.

You might be able to get some speed if you tune the CPU arch and flags however I'm not up to date on that part.

What derived distributions do is a custom OS build + configuration + their provisioning (packages, etc.) of the FreeBSD OS.

I know of exactly one operating system that spawned off FreeBSD and that's Dragonfly. Everything else that ever existed (that I know of) is just a custom FreeBSD installation.

It is not a trivial task to create a different OS based on FreeBSD if one does not intend to drop huge parts of FreeBSD ecosystem. It isn't like deriving Ubuntu from Debian, it would be like deriving an OS kernel from base Linux but still wanting to run GNU userland. You aren't even able to rename the "FreeBSD" or "Linux" string without breaking swaths of build systems around it.
 
FWIW, tonite I successfully did a Win11 unattended install which prevents the installation of bloatware. This is far cleaner than removing bloat from an installed system.

ESXi 6.7/U2 is the host. The UI also bypasses the TPM and other hardware checks that prevent install on all except very recent hardware.

This UI procedure works flawlessly and creates a system image much leaner and smaller than factory.

TurboTax announced today they won’t launch on anything other than Win11.

This is not as good as a lean FBSD compile from scratch, but might be useful to members here who use TurboTax or Quickbooks. It makes Win11 viable again on ordinary hardware.
 
Back
Top