# How to create a FreeBSD distro?



## hack3rcon (Jul 1, 2020)

Hello,
Excuse me, I don't know here is a right place to ask this question or not.
I want to know, any document exist for create a FreeBSD Distro? Something like "Linux From Scratch".

Thank you.


----------



## SirDice (Jul 1, 2020)

hack3rcon said:


> I want to know, any document exist for create a FreeBSD Distro?


"Distro" is the wrong word for it. You can build your own releases from scratch. Read  release(7) and the scripts in /usr/src/release.


----------



## Mjölnir (Jul 1, 2020)

If your intend is some very small or embedded system, there's also nanobsd(8) and picobsd(8).  Maybe somewhat outdated, but still very instructive.


----------



## Sevendogsbsd (Jul 1, 2020)

OP: keep in mind that FreeBSD is nothing like Linux. FreeBSD base OS is designed and built by a single team of individuals, not kludged together with software from 100 different projects. The end user applications (ports and packages) come from outside the FreeBSD project, but they are not part of the operating system base.


----------



## hack3rcon (Jul 1, 2020)

Thank you for all answers.
I want to create a BSD for myself that have some specific programs.
Any video that teach it?


----------



## hack3rcon (Jul 1, 2020)

Embedded system? Something like network devices?
The embedded can installing on a PC or need special hardware?


----------



## SirDice (Jul 1, 2020)

hack3rcon said:


> I want to create a BSD for myself that have some specific programs.


Then you don't need a custom release. You may want to have a look at customizing bsdinstall(8) instead. Remember FreeBSD is, unlike Linux, a _complete_ OS. What you are referring to are third party applications, those are available as ports (and by extension packages).  They are NOT part of the FreeBSD OS. Strictly speaking they're not part of the Linux "OS" either. I put quotes around Linux "OS" because it doesn't exist. Linux is a kernel and folks from RedHat, Debian, Canonical, etc  add an assortment of tools and libraries from various different sources to that kernel to create something that acts like an OS.  



hack3rcon said:


> Embedded system? Something like network devices?


For  example. Or something like a Raspberry Pi. Or various other devices (mostly SBC type boards). 



hack3rcon said:


> The embedded can installing on a PC or need special hardware?


Embedded devices are specific hardware implementations. Depending on the device you may or may not be able to emulate or simulate that on a regular PC.


----------



## Sevendogsbsd (Jul 1, 2020)

To elaborate on SirDice's excellent post: FreeBSD separates the base OS from the third party software (xorg, firefox, etc). The base OS gets installed and configured first. After this is complete, you can use packages (binary, compiled applications) or ports (code you compile yourself) to install third party applications like xorg, window managers, desktop environments, etc. 

Some organizations put out complete installations that do this all for you, if you are a desktop user: GhostBSD, FuryBSD, etc.


----------



## Mjölnir (Jul 1, 2020)

you can also edit make.conf(5), src.conf(5) and /etc/src-env.conf and install your flavour of FreeBSD to some DESTDIR, e.g. an SD card to plug into your SoC.  RTFM build(7), and the above mentioned _picoBSD_ & _nanoBSD_.  FreeBSD's build infrastructure, despite all it's flaws and obstacles, is an excellent base to do that.  Very straightforward.
If you just want to install your personal PC, go with the standard bsdinstall.  There's some old branch-off in /usr/share/examples/pc-sysinstall, you may want to have a look how to automate some install tasks.
We need to know more specifically what you want to achieve to give any better hints.


----------



## Phishfry (Jul 1, 2020)

If your target device uses a UEFI bios than NanoBSD is lacking.
For EFI you can use Poudriere Image for making custom image files including packages.





						Poudriere image [BSD Router Project]
					






					bsdrp.net


----------



## Sevendogsbsd (Jul 1, 2020)

Since the OS install literally takes 7-10 minutes, it is almost easier just to do the OS install and then have a list of packages you feed to `pkg` or a list of ports to feed to poudriere, synth etc. Just my opinion though - I like the separation of OS and software so was never interested in anything that did it all for me since it was so easy to do anyway...

My .02


----------



## garry (Jul 1, 2020)

hack3rcon said:


> I want to know, any document exist for create a FreeBSD Distro? Something like "Linux From Scratch"


*From Scratch!  *Easy.  Grab the actual BSD source code that FreeBSD, NetBSD, OpenBSD all started from.  Get it compiling and then booting and then add additional software packages by building from source code the Linux From Scratch way.  There is a lot of useful support documentation, the kind of info provided in the LFS book, at that website.

LFS starts with a modern Linux kernel.  If you want to start from a modern BSD kernel then do as mentioned elsewhere, read the FreeBSD docs on building the system from source code (e.g. makeworld).  Do so.  Now you have a dilemma -- the FreeBSD system, unlike the Linux system, already includes a great make-based package manager and makefiles for building 30,000 packages.  You can ignore that and build everything in your home directory from manually downloaded tarballs, as is done for LFS.

LFS is an exercise in learning to build packages manually (without a package manager).  It would a great exercise to go through some of the FreeBSD packages that way and learn to write a makefile (a port) for each one.  Then you would know how to build FreeBSD from source and extend it by contributing to the ports collection.  See The FreeBSD Porter's Handbook.

As for a video guide -- you can get the idea by watching the OpenBSD Porting Workshop.  In fact doing the entire BSD from Scratch exercise might be a little easier in OpenBSD.

*EDIT*:  it's difficult to answer the OP because "Linux From Scratch" Distro is an oxymoron.  A "distro" is a complete pre-configured o.s. that can be easily distributed to others, e.g. on an iso.  A "Linux From Scratch" system is a one-off system of manually compiled software that can not be shared with anyone else.  If you want to pre-configure FreeBSD with some packages and a nice user configuration (wallpaper, etc.) then you should look at how NomadBSD is built. You could build your own "FreeBSD distro" on NomadBSD.


----------



## Sevendogsbsd (Jul 1, 2020)

The ports collection has nothing whatsoever to do with FreeBSD base itself. You can certainly build FreeBSD from sources (never done it, pointless to me) but then installing packages or ports is AFTER this and has zero to do with it. There are excellent tools available to build ports (poudriere, synth, portmaster) and I would certainly not build them in my user's /home but whatever floats your boat as they say...

Following Linux procedures or advice is not relevant in the case of FreeBSD because of the way it is structured.


----------



## ralphbsz (Jul 2, 2020)

garry said:


> *EDIT*:  it's difficult to answer the OP because "Linux From Scratch" Distro is an oxymoron.


That's exactly the point. Clearly, hack3rcon (the OP) does not know the correct language to ask their question in a FreeBSD-specific way. I'm not even sure that I can parse it for Linux. There is a Linux distro that is called "Linux from scratch" ... it's sort of a meta-distro, which gives you a set of tools to create your own pre-packaged distro, but I'm not sure that I even understand how it works.

The big question that the OP has not answered is what their real goal here is. Are they trying to set up *ONE* machine, with exactly the packages (they call them "programs") they want? For that single-machine install, are they OK with precompiled binary install, or are they trying to build either the base system or the kernel with specific options for that one machine? Or are they trying to create an installation kit (base + a set of packages, the thing that Linux people often call a "distro") which can then be installed on many computers, perhaps in an automated way ? Using precompiled parts, or compiled with specific options? Depending on what the OP really wants, the answers will be forthcoming; many of the answers are sketched out above already.

The communication problem is that we in FreeBSD land express things in terms of base (which can be installed, and afterwards recompiled if one wants to, and the recompiled version distributed to other machines) and packages (which can be binary installed or compiled). FreeBSD does really not have a concept of "distro".

And if the OP explains what they really want to accomplish, my answer might actually be to not think of it in terms of base and packages, but in terms of configuration tools. I have a slight hunch that what the OP really wants is a way to get the same setup on many machines, with configuration files set up near-identically. On FreeBSD, one does not accomplish that with a distro, there are other ways.


----------



## gnath (Jul 2, 2020)

hack3rcon said:


> I want to create a BSD for myself that have some specific programs


SirDice has explained regarding FreeBSD as OS and subsequent adding some specific programs from repository or from other source after required modifications. Why you want to redo the process like "Linux from  scratch"?
You can modify/add on a fresh FreeBSD install as per your requirement recompile and use.


----------



## drhowarddrfine (Jul 2, 2020)

ralphbsz said:


> FreeBSD does really not have a concept of "distro".


Try explaining that to any Linux user or even most visitors to the reddit FreeBSD sub. They refuse to learn or understand which says a lot about such people.


----------



## Mjölnir (Jul 2, 2020)

Come on... That's a little bit unfair, isn't it?  When you're used to the Linux-world's terms and how things are done, it takes a while to understand the BSD universe.  But I know what you mean and yes, there's some truth in it.  Maybe that's an issue of the _generation X & Y_.
EDIT: & Z. Huh, time flies and I realized that I'm Gen X myself...


----------



## hack3rcon (Jul 2, 2020)

Thank you so much for great advice and I'm sorry if I couldn't explain my goal.
I want to create something like FuryBSD.
I'm thankful if someone tell me step by step. For example, 1- download...2- download... 3- read...


----------



## drhowarddrfine (Jul 3, 2020)

mjollnir said:


> Come on... That's a little bit unfair, isn't it?


Not at all. I rarely go there anymore because of it. Some time back, I had a back-and-forth with half a dozen people in /r/FreeBSD who insisted that FreeBSD is a distro because it has distribution in its name. Same arguments in /r/linux. 80% of the people there are insane or kids under 18-years old who think that running Ubuntu makes them a programmer and computer expert.

And I'm being nice.


----------



## Mjölnir (Jul 3, 2020)

hack3rcon said:


> Thank you so much for great advice and I'm sorry if I couldn't explain my goal.
> I want to create something like FuryBSD.
> I'm thankful if someone tell me step by step. For example, 1- download...2- download... 3- read...


Well, if you just want to experiment a little bit, ok.  If you plan to do that for the benefit of others, too, beware: PC-BSD/TrueOS was maintained by a very small team.  My greatest respect for what they achieved with so little manpower.  PC-BSD is gone.  DesktopBSD is gone.  FuryBSD seems to be a one-man-show...
Have a look into the sources of these and GhostBSD, NomadBSD, rusBSD,... dd:BSD (duckduckgo) and you'll find a list of BSD distros.  Look into /usr/share/examples/pc-sysinstall.  Search FreeBSD ports for post-install scripts -- there are many.
The biggest problem compared to Linux is that FreeBSD's package manager does not allow _automagic_ system configuration on  port installation.  There's good reason to leave it that way.  My guess is that most BSD users are developers of some kind -- from low-level OS to web programming/design -- with very distinctive needs.  These people more or less know what they need and like to install & configure their system themselves.


----------



## SirDice (Jul 3, 2020)

hack3rcon said:


> I want to create something like FuryBSD.
> I'm thankful if someone tell me step by step. For example, 1- download...2- download... 3- read...


I suggest you start using FreeBSD first. You clearly have no idea how things work. That's not meant to be insulting but you need to understand how FreeBSD itself works before you can even begin to think of creating  your own derivative. Don't try to run before you've learned to walk.


----------



## hack3rcon (Jul 3, 2020)

mjollnir said:


> Well, if you just want to experiment a little bit, ok.  If you plan to do that for the benefit of others, too, beware: PC-BSD/TrueOS was maintained by a very small team.  My greatest respect for what they achieved with so little manpower.  PC-BSD is gone.  DesktopBSD is gone.  FuryBSD seems to be a one-man-show...
> Have a look into the sources of these and GhostBSD, NomadBSD, rusBSD,... dd:BSD (duckduckgo) and you'll find a list of BSD distros.  Look into /usr/share/examples/pc-sysinstall.  Search FreeBSD ports for post-install scripts -- there are many.
> The biggest problem compared to Linux is that FreeBSD's package manager does not allow _automagic_ system configuration on  port installation.  There's good reason to leave it that way.  My guess is that most BSD users are developers of some kind -- from low-level OS to web programming/design -- with very distinctive needs.  These people more or less know what they need and like to install & configure their system themselves.


For Desktop, the FuryBSD and GhostBSD are best?


----------



## Mjölnir (Jul 3, 2020)

GhostBSD is GNOME, if you want that, it might be ok for you. They are mature (exist for years/decades?).  I can not comment because I use KDE.  FuryBSD is a _one-man-show_... bypasses the FBSD installer, junk left over from the live media in the fresh installation,... Maybe in a year FuryBSD is much better.  For the time beeing, I can not recommend it.  Better get a bloody nose early by getting FBSD up & running yourself, than to rely on others pre-configuration while what you're actually doing is to help them finding their bugs


----------



## Sevendogsbsd (Jul 3, 2020)

GhostBSD is Mate’, not Gnome. I would personally recommend learning FreeBSD. It is not hard and is lean and easy to manage.


----------



## ralphbsz (Jul 3, 2020)

hack3rcon said:


> I want to create something like FuryBSD.



Sorry, but that statement is still not sufficient.

Are you (a) trying to install ONE machine, with something like FuryBSD, or (b) create an installation system similar to FuryBSD (in function) and then distribute it to many machines, perhaps the public?

And: If you want something like FuryBSD, why don't you just install FuryBSD? What does "like" mean in this context? What differences from FuryBSD are you after?

Here is my answer to you: If it is (a), you want to install one machine, then either just install FuryBSD if you want that. If you don't want FuryBSD but instead you want a FreeBSD installation with a GUI, then install FreeBSD, then install the GUI of your choice. On the other hand, if it is (b) you are after, you want to create a new installation system, then that's outside my skill base, and I have no advice on how to do it.



> I'm thankful if someone tell me step by step. For example, 1- download...2- download... 3- read...


I am happy to answer that question. It is very easy. Read the FreeBSD handbook. It is trivial to find, just a web search for "FreeBSD handbook". When reading it, there are some chapters you can skip, but it will be obvious which ones, because the beginning of each chapter or section explains what its purpose is.

After reading the handbook, installing FreeBSD will be easy. I would actually advice to mix reading, installing and testing. For example, read everything up to the installing section, then grab a computer, and install a text-based (command line) setup, and start using it for a little bit. Once you have experience with that, continue reading about X windows and GUI, and then reinstall. And so on.


----------



## Mjölnir (Jul 3, 2020)

See? My knowledge on these GNOME/gtk things is way below average...


----------



## Sevendogsbsd (Jul 3, 2020)

You weren't technically wrong: Mate` is a fork of Gnome 2.x The horrific marraige between some dev at Gnome and systemd has brought about the Gnome 3.x disaster, which I do not use at all. For that matter, I only use a window manager on FreeBSD - chiefly Fluxbox. I have been a GTK guy since the late 90's. Doesn't matter though - Plasma is a very capable and easy to use desktop, albeit I have never used it on FreeBSD. There is just something about the simplicity of FreeBSD and when I try to add a desktop environment or login manager, it feels wrong. That's just me though...


----------



## Mjölnir (Jul 3, 2020)

Well, yes.  KDE suffers from _featuritis_ somehow.  It's great, but e.g. I can't get Kontact (KDE's _Personal Information Management_ suite=mail, notes, contacts book, tasks & calendar, journal/log book, news) to show it's common INBOX correctly for my four INBOXes... that's not important, but nasty.  KMail is great, Kontact and all it's componets are great, but the configs are splattered around at various places... s/o called that _ClickyBunty_.  The principle of _simplicity_ is not the highest ranked throughout KDE developers...


----------



## garry (Jul 3, 2020)

hack3rcon said:


> Thank you so much for great advice and I'm sorry if I couldn't explain my goal.
> I want to create something like FuryBSD.
> I'm thankful if someone tell me step by step.


Thanks for your patience.  Any steps of actually building something on your own are good steps, and I understand that you're asking "what the heck is the first step?" 

*First a simple answer* (I thought my previous reply was simple, although the first paragraph was sarcasm 
1. Download and install what is probably the most well-developed and simplest of the ready-to-go FreeBSD desktop systems, https://nomadbsd.org/
2. It installs to and can run off a USB stick.  You don't have to touch your hard drive yet.  You can use it off the USB just like any bare-metal install -- add packages, change configs in /etc, whatever.
3. When you're comfortable with nomadbsd and have done some preliminary customization install your nomadbsd system to a fast hard drive / ssd so that your further experiments will have plenty of drive space and run faster.  You install nomadbsd from any running nomadbsd.   Start Openbox menu -> _System_ -> _NomadBSD Installer_ and follow the instructions.
4. Download the source code for the nomadbsd live iso build system.
5. Follow the instructions in the file build.hlp to build a new live iso.  You now know how to make your own FreeBSD derivative.
6. Make some changes in which packages get installed, change some configs, add your own wallpapers, etc.  Build your own iso and test it.

*The longer answer*:
I've built a couple of Linux From Scratch systems.  LFS exists to document the tedious process of building a basic linux operating system from the pile of source tarballs for the base system.  This is a challenge in linux, but not in bsd, because every part of linux is developed separately and released as a source package separately for the kernel, the C library, the compiler, the linker/loader, the core utilities, the shell.  You need all of these pieces at once to build even one package of application software.  And of course to even build the first piece you have to have a compiler running somewhere so it is assumed that you have some kind of operating system already running on your hardware with an appropriate compiler and then you start build your new LFS system in a chroot.  The LFS book explains nicely what this bootstrap problem is and one way to work around it to get a complete system built at last from the big pile of independently developed source tarballs (at least a thousand such tarballs for a minimal base linux o.s.).

This is one part of the overall problem of bootstrapping a system.  Unix got started by hand translating some assembly code into hexadecimal and getting that code into the computer via mechanical switches on the front panel of the machine, that got the machine into a state where more hexadecimal could be loaded via tape, which eventually got it able to translate B code, and so and so on for the next 50 years.  I have twice brought up an operating system (that I had to write) on new, bare hardware and did a similar process of writing some assembler code, storing the resulting hexadecimal code directly into the boot ROM, and getting it to bring up my small virtual machine (Forth) that was then capable of translating more assembly code out of ROM, which eventually had enough functionality to compile higher-level code, which eventually loaded the network drivers, scsi driver, serial drivers, graphic drivers, machine control process, and on and on.

Once we have a complete running system we have holy grail, the answer to all computing problems, because you can build any kind of computer system if you have any kind of computer system to start from.  Only a genius with a long life could build a system starting from logic gates and wires.  The _make_ any computer system, a Linux distro or BSD variant or embedded system for the Starship Enterprise, you must _start_ with a computer system.  So you first decide *what system to start with*, and then *how to transform it *into what you want.

So the next, *less simple answer*:
1. Download and install the most portable unix operating system, NetBSD.
2. Read the cross-building instructions at Crosscompiling with build.sh
3. Practice cross-building from x86 to x86, making small changes in the features of your system, until confidant in your process.  Test each image you make to make sure it runs ok.
4. Now cross-build from x86 to some other architecture, say ARM or RISCV, and using everything you've learned get that image loaded onto and running an ARM development board -- now you know how to evolve a system onto new hardware.

Good journey.  Pick something from our suggestions,  do it, enjoy.


----------



## hack3rcon (Jul 4, 2020)

mjollnir said:


> GhostBSD is GNOME, if you want that, it might be ok for you. They are mature (exist for years/decades?).  I can not comment because I use KDE.  FuryBSD is a _one-man-show_... bypasses the FBSD installer, junk left over from the live media in the fresh installation,... Maybe in a year FuryBSD is much better.  For the time beeing, I can not recommend it.  Better get a bloody nose early by getting FBSD up & running yourself, than to rely on others pre-configuration while what you're actually doing is to help them finding their bugs


one-man-show == performed by one person only.
No developer team?


----------



## Mjölnir (Jul 4, 2020)

This is solely my personal _impression_, i.e. a _guess_ based on some very limited experience & observations.  Go there and ask yourself!  Beeing a _one-man-show_ does not mean it's going to fail, though.  This guy has some background assembled from his participation at PC-BSD/TrueOS.  It's just that at this early stage there are some essential issues, basically done wrong IMHO.  I'd be happy if some day I can install BSD on my mother's tablet -- she's over 70.  A _grandmasBSD_.  But it's a long route leading there...


----------



## TheUser (Jul 26, 2020)

garry said:


> Thanks for your patience.  Any steps of actually building something on your own are good steps, and I understand that you're asking "what the heck is the first step?"
> 
> *First a simple answer* (I thought my previous reply was simple, although the first paragraph was sarcasm
> 1. Download and install what is probably the most well-developed and simplest of the ready-to-go FreeBSD desktop systems, https://nomadbsd.org/
> ...



The best answer. 
Sometimes trying to obtain a good solution is "complicated" but you got it. I was finding this before, until a guy created NomadBSD with iso creation method and now, i can create my own ISO ready to use and install, with my own configs, with custom dot files, window managers, and programs pre-installed, in a pure FreeBSD base with basic Desktop settings ready to use.  Thanks.


----------



## Jose (Jul 26, 2020)

Sevendogsbsd said:


> ...There is just something about the simplicity of FreeBSD and when I try to add a desktop environment or login manager, it feels wrong. That's just me though...


I get the same feeling. I call it "Linux desktop PTSD". I've looked at trying to test Shkhln excellent work on Steam for Freebsd, and my PTSD kicks in. I'm so happy running `xinit` on a text console to bring up Openbox. I don't want to ruin that experience.


----------



## Mjölnir (Jul 27, 2020)

I had to "_dd: PTSD"_ in my browser... and it reminded me there used to be small utilities on GNOME/Mate & KDE to prevent RSI.  `make -C /usr/ports search key=RSI | egrep '^(Port|Info):' | less` search for _RSI_, `pkg install rsibreak`. There are more such utilities when you search for the term _key=break_ and maybe _key=pause_ or _mouse_.  Thx for the indirect reminder!


----------



## rebQQtz (Aug 8, 2020)

First of all: I LOVE FREEBSD   (having been an happy user since 4.1 ...)
Now, please let me "steal" this thread for asking what may seem a trivial question
but i think that it's somehow related to the argument of this thread.

I know that there are many ways (nano*, pico*, etc ...) to skin this cat but i would ask for some guru
(plenty of those people here  ...) if there is a "quick and dirty" way to:

Install FreeBSD (just plain command line os, no desktop ...)
Install your preferred tools, bells & whistles ...
Move the whole thing "as is" to a CD or better to an USB key ...

My humble konwledge of FreeBSD suggests ... "dd" or "dump/restore"
but i remember to have been very frustrated when trying this one, some years ago ...
(8.* releases)

Nowadays ( being "jailed" most of the time because of what you know ... )
 i am trying to increase my intelligence (of al least my knowledge) please help  ...

Kind best regards, all the best ...
Paolo


----------



## teo (Aug 15, 2020)

SirDice said:


> Remember FreeBSD is, unlike Linux, a complete OS. What you are referring to are third party applications, those are available as ports (and by extension packages). They are NOT part of the FreeBSD OS.


If they are not part of the FreeBSD  system ,  then why are they available on FreeBSD and other BSD platforms?  The operating system not only consists of the kernel but also the BSD Init tool and third party software to form a complete graphical environment system with desktop and also packages such as web apache for server.

Although Linux doesn't have its own Init tool, GNU/Hurd can be called a base system plus the third-party software that makes up a complete system.


----------



## Sevendogsbsd (Aug 15, 2020)

For me, not worth the effort. It takes me literally 7 minutes to do the install. After that, just updates and whatever packages I need, done. I save all the configs I need to my NAS and copy them over.
Might be useful for some people but for me it’s so simple I just do it manually.


----------



## Jose (Aug 15, 2020)

teo said:


> If they are not part of the FreeBSD  system ,  then why are they available on FreeBSD and other BSD platforms?


Because hundreds (thousands?) of volunteers have spent tens of thousands of hours porting them to Freebsd for many years.



teo said:


> The operating system not only consists of the kernel but also the BSD Init tool...


Looks like Freebsd init comes from Berkeley.


----------



## teo (Aug 15, 2020)

Jose said:


> Because hundreds (thousands?) of volunteers have spent tens of thousands of hours porting them to Freebsd for many years.



That does not mean that it is not a part and available for FreeBSD, because a complete system consists of the kernel, plus the Init tool, plus third party software if available or compatible. 



> Looks like Freebsd init comes from Berkeley.


Also the Apple operating system has been  opportunist from the best of FreeBSD to become closed code for the benefit of apple  if I am not mistaken.


----------



## ralphbsz (Aug 15, 2020)

teo said:


> That does not mean that it is not a part and available for FreeBSD, because a complete system consists of the kernel, plus the Init tool, plus third party software if available or compatible.


What a system consists of depends on the user. For some people, in embedded applications, a "system" is just a microkernel, which is typically linked against the application, and hard installed. Both BSD and Linux are used in many areas where only the kernel runs. For many servers, you really need just the base system, and a very small number of extra packages. For desktop, one tends to need lots.

Please remember: A very large fraction of all computers are NOT user-facing machines. Even of the ones that run full general-purpose operating systems (such as Windows, Linux, MacOS, Android, iOS, ... and BSD), the majority are not in people's hands or in people's laps, but in data centers.



> Also the Apple operating system has been  opportunist from the best of FreeBSD to become closed code for the benefit of apple  if I am not mistaken.


So? Is that a problem? BSD is so good that some people decided to use it. I think that's wonderful.


----------



## teo (Aug 15, 2020)

ralphbsz said:


> For many servers, you really need just the base system, and a very small number of extra packages.



Even if it is a half package, it is already part of the operating system even if it is on the server. 



> So? Is that a problem? BSD is so good that some people decided to use it. I think that's wonderful.


That is why I would like FreeBSD to be extended to the graphical desktop by default so that everyone can use BSD for free, and not as closed source Apple.


----------



## drhowarddrfine (Aug 16, 2020)

teo said:


> That is why I would like FreeBSD to be extended to the graphical desktop by default so that everyone can use BSD for free, and not as closed source Apple.


You can already do that, though not by default, so I don't understand what point you are trying to make. Many, MANY people install FreeBSD without a desktop and which desktop would you install by default? That would be forcing choice on users and I don't think we want to do that.


----------



## kpedersen (Aug 16, 2020)

teo said:


> That is why I would like FreeBSD to be extended to the graphical desktop by default so that everyone can use BSD for free, and not as closed source Apple.



Try approaching it this way:

I would like macOS to be extended to a command line environment by default so that sysadmins can use macOS for a cost, and not as open-source as BSD.

Apple would tell me to sod off right? This is not the direction they want. Likewise the same is true with FreeBSD. A consumer operating system is not one of the goals.


----------



## Mjölnir (Aug 16, 2020)

kpedersen said:


> [...] Likewise the same is true with FreeBSD. A consumer operating system is not one of the goals.


And IMHO that's the main reason why Linux is so widespread while FreeBSD is a niche product.  If it were only about technical reasons, FreeBSD should be at least on par with Linux.  E.g.: IIRC, the company TP-LINK bite their ass when they had to release the propietary changes they made to Linux on one of their WLAN-routers to the public (initiated by guys from OpenWRT).  Had they take more care about these license issues, they would have choosen FreeBSD instead.  But they didn't, because their engineers were Linux users.  Spread the word:

FreeBSD on the desktop, easy to use for ordinary users -- while keeping full CLI access for advanced wizzards -- is the key to gain more market share, and thus more contributors.


----------



## kpedersen (Aug 16, 2020)

mjollnir said:


> they would have choosen FreeBSD instead.  But they didn't, because their engineers were Linux users.



I doubt the PS3 and PS4 developers at Sony were FreeBSD users but that certainly didn't stop (a modified) FreeBSD become one of the most widely deployed consumer platforms in the world 



mjollnir said:


> FreeBSD on the desktop, easy to use for ordinary users -- while keeping full CLI access for advanced wizzards -- is the key to gain more market share, and thus more contributors.



It is impossible. GUI tools can simply never hope to interact correctly with powerful CLI tools. Crippling the CLI tools is not an option.

You can even see this conflict happening in Linux. https://bugzilla.redhat.com/show_bug.cgi?id=1650342

RedHat (who invented systemd) is not actually using many parts of it for their own distro. They don't even officially provide systemd-networkd, instead opting for the GUI centric NetworkManager (and crippled nmcli tool).

We don't want FreeBSD to be a mess basically. And yes, FreeBSD is a niche OS because most users don't need a decent OS. They are fine with Windows and macOS. Just like Chlamydia is not a niche disease but that doesn't make it good .

And besides...

Anyone who is unable to just type `pkg install xfce` is not an ordinary user... they shouldn't be near a computer.


----------



## drhowarddrfine (Aug 16, 2020)

mjollnir said:


> And IMHO that's the main reason why Linux is so widespread while FreeBSD is a niche product.


Widespread among common users. Of course, common users are often programmers and sysadmins or, eventually, become such things but, still, a large portion of Linux usage today is still among people who are just users only and not a target consumer of BSD.


----------



## ralphbsz (Aug 16, 2020)

kpedersen said:


> I would like macOS to be extended to a command line environment by default so that sysadmins can use macOS for a cost, and not as open-source as BSD.
> 
> Apple would tell me to sod off right?


A Mac can perfectly well be used from the command line. Most of the graphical system administration actions have CLI equivalents. However, that's not the "natural" way to administer a Mac.

Matter-of-fact, Apples sells a server version of MacOS, intended for headless machines, and designed around remote GUI for management. It allows setting up a large number of Macs nearly identically, centralized change management, and setting up user accounts (profiles) on specific machines. The typical machine that one runs this on is either the Mac Mini for small servers, or the Mac Pro for large ones. Not all that uncommon for a small enterprise-scale deployment as a centralized set of servers.


----------



## teo (Aug 16, 2020)

drhowarddrfine said:


> You can already do that, though not by default, so I don't understand what point you are trying to make. Many, MANY people install FreeBSD without a desktop and which desktop would you install by default? That would be forcing choice on users and I don't think we want to do that.



I think that the FreeBSD installer should have two options, one for CLI (For professionals and advanced users) that the system would end up in terminal and then choose what it wants, and another for (GUI) for nobs and non-nobs users that don't have so much time to manually set up the system and install it from scratch by choosing the graphical option with desktop to choose either Xfce or Mate and why not if there was a lightweight window manager like JWM for the  low-resource computers.



			
				kpedersen said:
			
		

> Try approaching it this way:
> 
> I would like macOS to be extended to a command line environment by default so that sysadmins can use macOS for a cost, and not as open-source as BSD.
> 
> Apple would tell me to sod off right? This is not the direction they want. Likewise the same is true with FreeBSD. A consumer operating system is not one of the goals.



This is not the  of  interes for  Apple or his employees because they will spoil the party of keeping their giant fortune in the hands of a few, while those who have supplied the best of their code are about to disappear


----------



## kpedersen (Aug 16, 2020)

ralphbsz said:


> Matter-of-fact, Apples sells a server version of MacOS, intended for headless machines, and designed around remote GUI for management.



I got to experience this whilst configuring a build server. The VNC did support multiple sessions (which was actually fairly unexpected) but the whole thing was a mess. I don't think it was even possible to accept security keychain things via the cli, so every so often when the build server stalled for a while, we would have to VNC in and press a stupid "accept" button.

This summarizes it well:





						Accessing keychain from Terminal? - Apple Community
					






					discussions.apple.com
				




The solution being to use some UI automation script to simulate clicking of a button is... frankly absurd. We deserve better than that XD
macOS chroot support is also completely broken. It was not fit for purpose.

And people want to turn FreeBSD into this joke of a system?



teo said:


> while those who have supplied the best of their code are about to disappear



Agreed. macOS used bash as the default shell, vim as the editor and screen as the multiplexer. All from Linux which is indeed on life support.



teo said:


> Xfce or Mate and why not if there was a lightweight window manager like JWM




```
# pkg install mate
# pkg install xfce
# pkg install jwm
```

Done. Now stop faffing and get on with your life XD


----------



## Beastie7 (Aug 16, 2020)

An option in the FreeBSD installer to setup DRM/Mesa/X.org, then allow you to choose and install your DE or WM of choice would nice. ie. A separate step asking “would like to install a desktop?”, then follow up with options for a full DE meta-port or a simple WM. I really don’t want to remember and re-do every little step and command involved to setup a basic desktop. 

Just give the user a way to get the infrastructure installed easily; then once our DE/WM is installed we’ll choose our own apps, codecs, etc.


----------



## drhowarddrfine (Aug 16, 2020)

teo said:


> for nobs and non-nobs users that don't have so much time to manually set up the system and install it from scratch by choosing the graphical option


`pkg install <your favorite desktop here>`
How much extra time does that take? And it installs the one you want, not the one someone else says you want that you then have to uninstall when you decide that.
It's also a step FreeBSD devs don't have to maintain.


----------



## a6h (Aug 16, 2020)

New distro announcement: Intel 1366x768 for Eric
_New release note: eliminating the annoying noise, known as beep._
Subscribe, comment, push the like button and become a patron.


```
#!/bin/sh
printf '\nkern.vty=vt\n'>> /boot/loader.conf
printf '\nkern.vt.fb.default_mode="1366x768"\n'>> /boot/loader.conf
printf '\nkld_list="/boot/modules/i915kms.ko"\n'>> /etc/rc.conf
printf '\nkern.evdev.rcpt_mask=6\n'>> /etc/sysctl.conf
printf '\nkern.vt.enable_bell=0\n'>> /etc/sysctl.conf
printf 'exec i3\n'>> /usr/home/eric/.xinitrc
pw groupmod video -m eric
freebsd-update fetch install
pkg install graphics/drm-kmod x11/xorg x11-wm/i3 x11/i3lock x11/i3status x11/dmenu x11-drivers/xf86-video-intel x11/terminator
printf "happy distroing"
```


----------



## teo (Aug 16, 2020)

kpedersen said:


> I doubt the PS3 and PS4 developers at Sony were FreeBSD users but that certainly didn't stop (a modified) FreeBSD become one of the most widely deployed consumer platforms in the world
> 
> 
> 
> ...




You can even see this conflict happening in Linux. https://bugzilla.redhat.com/show_bug.cgi?id=1650342

RedHat (who invented systemd) is not actually using many parts of it for their own distro. They don't even officially provide systemd-networkd, instead opting for the GUI centric NetworkManager (and crippled nmcli tool).

We don't want FreeBSD to be a mess basically. And yes, FreeBSD is a niche OS because most users don't need a decent OS. They are fine with Windows and macOS. Just like Chlamydia is not a niche disease but that doesn't make it good .

And besides...

Anyone who is unable to just type `pkg install xfce` is not an ordinary user... they shouldn't be near a computer.
[/QUOTE]


----------



## Jose (Aug 16, 2020)

ralphbsz said:


> Matter-of-fact, Apples sells a server version of MacOS, intended for headless machines...


This ceased to be a separate version of Macos some time ago, and is now just a bunch of utilities:








						macOS Server - Wikipedia
					






					en.wikipedia.org
				




It gets more and more crippled with every release.


----------



## Phishfry (Aug 16, 2020)

teo said:


> They don't even officially provide systemd-networkd, instead opting for the GUI centric NetworkManager (and crippled nmcli tool).


That is because in my opinion nmcli is superior. What exactly do you find crippled?
nmcli and its companion mmcliu (modemmanager cli) are two great tools. nmcli is the foundation for the GUI NetworkManager.
The fact that these tools do not require systemd is wonderful.
I wish we had such powerful options.
Have you ever configured a cellular modem on FreeBSD. PPP is the only protocol we support.
We are many years behind in this realm.


----------



## teo (Aug 16, 2020)

kpedersen said:


> It is impossible. GUI tools can simply never hope to interact correctly with powerful CLI tools. Crippling the CLI tools is not an option.



I remember booting the Live Image of Debian and Arch Linux visualized the option to install the system in CLI or GUI, the same happened in its beginnings with GhostBSD.



> RedHat (who invented systemd) is not actually using many parts of it for their own distro. They don't even officially provide systemd-networkd, instead opting for the GUI centric NetworkManager (and crippled nmcli tool).



RetHad not invented the systemd, systemd was invented by Lennart Poettering a few years ago.




> We don't want FreeBSD to be a mess basically.



Even Apple's closed source system is not a disaster because they have some of FreeBSD's code.



> And yes, FreeBSD is a niche OS because most users don't need a decent OS. They are fine with Windows and macOS. Just like Chlamydia is not a niche disease but that doesn't make it good



Most of you call a small number of users who benefit from Marketing with their servers? Most nobs and non-nobs users want to use FreeBSD for day-to-day desktop, as many users around the world do not have the economic capacity to acquire MacOS, many users want to run away from the Trojan horse (Windows) and many Linux users are not happy with systemd.


----------



## Deleted member 63539 (Aug 16, 2020)

Creating a FreeBSD distro is very hard. I used to try to replace the FreeBSD's Ports system with Ravenports, pkgng with ravensw and soonly failed because of ldconfig issues. Everything is very closely integrated so you can't choose the needed building blocks and just build a distro like with Linux. Creating a Linux distro is very easy, even for people that don't have much knowledge. A regular user, if he want, is totally possible to build a Linux distro. But if you want to create a FreeBSD distro, you should have the knowledge as Matthew Dillon (DragonflyBSD founder).

p/s: This is when you want to create real distro. If you just want something like FuryBSD, then, it's not that difficult. Something like GhostBSD is more difficult to create, but they used the technology from TrueOS, so they have the TrueOS guys did the heavy lifting job for them.


----------



## Deleted member 63539 (Aug 16, 2020)

NetworkManager on Linux is awesome. It's one of the thing I missed most when I left Linux to FreeBSD. I don't know why you bash it too much. Only because it's from Linux?


----------



## a6h (Aug 16, 2020)

gh_origin said:


> NetworkManager on


net-mgmt/networkmgr and net-mgmt/wifimgr


----------



## kpedersen (Aug 16, 2020)

teo said:


> RetHad not invented the systemd, systemd was invented by Lennart Poettering a few years ago.



Lennart Poettering has worked for Red Hat since at least 2008



gh_origin said:


> NetworkManager on Linux is awesome. It's one of the thing I missed most when I left Linux to FreeBSD. I don't know why you bash it too much.


Because it is GUI centric and crippled. I thought I made that clear? I even wrote those specific words.



Phishfry said:


> That is because in my opinion nmcli is superior. What exactly do you find crippled?


The config files for it do not have a stable API (i.e you can't just copy them to another version and guarantee it works. This is a fairly large problem for robustness.
It also requires communication via wpa_supplicant via dbus. This is flimsy and again cannot be automated well. nmtui is lacking 99% of features from nmcli. nmcli is lacking many features compared to the raw tools (even the weak ones found in Linux after it lost ifconifg).



Phishfry said:


> Have you ever configured a cellular modem on FreeBSD. PPP is the only protocol we support.
> We are many years behind in this realm.



If we had NetworkManager in ports. I am going to assume because FreeBSD only supports PPP you still couldn't configure a cellular modem with it? So what does it offer you exactly?


----------



## Phishfry (Aug 17, 2020)

mmcli offers the ability to switch between cellular carriers easily. It also outputs gps and has facilities for switching USB compositions as well as firmware flashing.
There are different protocols used by different modems from QMI to MBIM and PPP is very dated.
Not to say PPP does not work but fewer and fewer new modems support it.
So in essence we are missing a cellular modem structure and using PPP facilities from the old dialup modem days.





						Ubuntu Manpage:         mmcli - Control and monitor the ModemManager
					






					manpages.ubuntu.com


----------



## drhowarddrfine (Aug 17, 2020)

gh_origin said:


> Everything is very closely integrated so you can't choose the needed building blocks and just build a distro like with Linux.


Well....duh....of course! It's what makes FreeBSD great! And what makes Linux so screwed up!


----------



## mark_j (Aug 17, 2020)

gh_origin said:


> Creating a FreeBSD distro is very hard. I used to try to replace the FreeBSD's Ports system with Ravenports, pkgng with ravensw and soonly failed because of ldconfig issues. Everything is very closely integrated so you can't choose the needed building blocks and just build a distro like with Linux. Creating a Linux distro is very easy, even for people that don't have much knowledge. A regular user, if he want, is totally possible to build a Linux distro. But if you want to create a FreeBSD distro, you should have the knowledge as Matthew Dillon (DragonflyBSD founder).
> 
> p/s: This is when you want to create real distro. If you just want something like FuryBSD, then, it's not that difficult. Something like GhostBSD is more difficult to create, but they used the technology from TrueOS, so they have the TrueOS guys did the heavy lifting job for them.


At the risk of perpetuating this Linux is great, FreeBSD is crap nonsense, let me just say this:

FreeBSD is an entire OS, not a kernel like Linux. That's why it's integrated. Linux == Kernel, FreeBSD == Operating System.

Now, can this thread end?


----------



## mark_j (Aug 17, 2020)

Phishfry said:


> mmcli offers the ability to switch between cellular carriers easily. It also outputs gps and has facilities for switching USB compositions as well as firmware flashing.
> There are different protocols used by different modems from QMI to MBIM and PPP is very dated.
> Not to say PPP does not work but fewer and fewer new modems support it.
> So in essence we are missing a cellular modem structure and using PPP facilities from the old dialup modem days.
> ...


I suggest you hop over to arch mailing list and inform them of the lack of modem tools. While you're at it ask them if they intend to code for the Intel XMM7360. Eg: https://netbsd.gw.com/cgi-bin/man-cgi?wwanc+4+NetBSD-current


----------



## Deleted member 63539 (Aug 17, 2020)

mark_j said:


> At the risk of perpetuating this Linux is great, FreeBSD is crap nonsense, let me just say this:
> 
> FreeBSD is an entire OS, not a kernel like Linux. That's why it's integrated. Linux == Kernel, FreeBSD == Operating System.
> 
> Now, can this thread end?


I don't know why you just presumed me to be a troll under many accounts name since the fact is I only have this one. If it's not so, why you ask me to end this thread since I'm not even own (or started) it and don't have even a single relationship with the OP? I present my information as fact, but don't impose any opinion on it other than another fact derived from this fact: it's very difficult to create FreeBSD distro. You should ask the Mods to close the thread, not quoting me and said nonsense.


----------



## mark_j (Aug 17, 2020)

gh_origin said:


> I don't know why you just presumed me to be a troll under many accounts name since the fact is I only have this one. If it's not so, why you ask me to end this thread since I'm not even own (or started) it and don't have even a single relationship with the OP? I present my information as fact, but don't impose any opinion on it other than another fact derived from this fact: it's very difficult to create FreeBSD distro. You should ask the Mods to close the thread, not quoting me and said nonsense.



I never stated any such thing. I stated to you, quite correctly, that FreeBSD cannot be a distribution as it's a FULL OPERATING SYSTEM.
I never called you a troll.
I give up!


----------



## SirDice (Aug 17, 2020)

This thread has run its course. Thread closed. 

gh_origin You either take FreeBSD as-is, warts and all, or you can leave 









						Why is FreeBSD not (more) like ....
					

As of today, FreeBSD Forums staff will actively close down (and eventually remove) topics that serve no other purpose than to complain that "FreeBSD is not (like) Linux" (or Windows, or MacOS, or any other operating system), or that "FreeBSD does not use systemd", or that "FreeBSD has no default...




					forums.freebsd.org


----------

