Tomasz CEDRO tomek at
Mon Jul 12 10:57:24 UTC 2021

I will share back my previous response with some update - having
standard bare base OS allows you to do directly exactly what you want
with one environment setup script then perform your work, you need no
GUI for that, just script `pkg install gcc-arm-embedded cmake` then
build your application. Imagine how small and fast this approach is
compared to installing fully featured GUI OS, downloading packages,
etc, but you need to know how to do it - usually it is very similar
across other platforms because you are using the same build tools
among them, if you really want top portability I would consider using
Python + VirtualEnv packages verification - you can run it on top of
bare BSD install over the local/remote shell :-)

Sorry I forgot about BSD portables, but did not use them a lot myself:

We all know your pain - in this day by day more complex and less
coherent computer world - "well it was supposed to work out of the
box", then after some months you start sending patches :-) :-)

Take care :-)

On Sat, Jul 10, 2021 at 10:52 PM Tomasz CEDRO <tomek at> wrote:
> Hey David :-)
> Please give a try to MidnightBSD - this may be something you need if
> you do not want to waste your time to learn new OS. I fully understand
> your approach. You want to focus on your solution, not the rest of the
> world :-)
> Sorry if you feel offended by "may not be for you", that was not my
> point, I apologize. The point is that BSD are in fact raw operating
> systems, its not Ubuntu, its more "fire and forget" but you need to
> make its configuration from scratch, this really takes times and
> learning curve. FreeBSD is in fact base for a product - server,
> desktop, embedded - so you cannot make such wide application universal
> for everyone. Instead you get strong base with lots of Ports to
> install to make your life easier. You start at standardized base OS
> that you can extend with that you want. Look at macOS, PlayStation,
> Netflix based on FreeBSD. You may consider it more "industrial grade"
> rather than user friendly easy to use. On the other hand you can
> configure it with only several text files and one script. But you need
> to create that script on your own that is not a trivial thing :-)
> There are thousands of Open-Source software running on FreeBSD. All
> are what you describe in your project.  These are called FreeBSD
> Ports. I have created several of these from scratch myself (i.e. port
> for OpenOCD), and I update some of them when necessary. Each Port
> (located in /usr/ports) is a set of Makefile scripts that allow
> download, build, install and upgrade automation for a given program
> (and its dependencies from other ports). You can then just `cd
> /usr/ports/misc/mc; make install` to build it from sources, or `pkg
> install mc` to download and install binary package. You can also
> upgrade all packages with just `pkg update; pkg upgrade`. As simple as
> that.
> It is nice of you that you want to provide your software to BSD
> platforms, thank you, however you may want to create a GitLab / GitHub
> repository in the first place, show what you  have created, and when
> someone feels this is interesting, they may create a Port for your
> application. This is the standard process.
> People that use BSD are very sensitive to freedom of choice (thus BSD
> license allows you to do whatever you want with the software even
> close source it and sell on your own). Maybe you should give them that
> freedom by presenting your software in the first place, and then let
> them decide if they want to port it to FreeBSD. You cannot demand that
> OS will bend to your expectations. We are old-school computer geeks,
> mostly highly experienced developers that can modify kernel or its
> drivers when necessary, we do not expect others to make that work for
> us. Most of us don't care about what is trendy at the moment, we like
> conservatism of the BSD line, we care about our own projects, products
> and services, and how to make them in best possible way. This is why
> we get a minimal common starting point (called FreeBSD Base System)
> and adapt it to our needs and expectations. We do not want anything
> "extra" except what we want. This is really important from a long term
> maintenance standpoint of your product :-)
> I am sure that if you want to create a new software that runs on
> FreeBSD you may want to create a Port in the first place to simplify
> your own build process. This port can even fetch sources directly from
> the git repository!
> If you want to get familiar with how things work in FreeBSD I would
> recommend to start with FreeBSD Handbook. Please note that this was
> also the first kind of documentation for the OS (starting in early
> 1990's) that contained all information about how things work in a form
> of a book. This Handbook is also coherent with the releases of the OS.
> If you look at Linux until now there is no such Handbook, just lots of
> scratches of information spread around the net and mostly outdated.
> Have a great weekend and good luck with your project :-)
> On Sat, Jul 10, 2021 at 10:11 PM David Raver <david.raver at> wrote:
> >
> > Like you say: it may not be the best OS for me.
> >
> > Well, I didn't think it was the best OS for me even before you sent me your mail, but thanks for pointing that out so plainly.
> > I just meant to provide some tools to people for whom it is, in fact, the best OS. I guess you'll not be getting them now. Your loss.
> >
> > The tools I mention are not meant to be something so fundamental that, in order to make them work on BSD, would require all the knowledge you mention or allude to.
> > Let me repeat: 1. with as little of ifdefs as possible, and 2. should compile, link and run on as many operating systems as possible.
> > In my book that means that I don't have to deal with the low level stuff like kernels (or their versions) or even hardware/architectures.
> > Using functions/methods from standardised libraries and building (compiling, linking and whatnot) on/for them resolves almost all my problems.
> > That, among other things, means that, if I'm being a bit picturesque, I don't have to read the whole four books of War and Peace (plus the epilogue) merely to find out that it's about Russia.
> > Nope, a few pages should be enough. If/when I'm going to feel the need to know more, I'll read the whole thing.
> >
> > Next: maybe I need "more time to understand how things work here?" Yup, that's what I've been telling you in the first place.
> > But! I'm not willing to invest into that when I know in advance that I'll not be using 99% of them. Ever!
> >
> > And lastly, thanks for the midnight tip. ;-)
> >
> > D.
> >
> > On Sat, Jul 10, 2021 at 9:05 PM Tomasz CEDRO <tomek at> wrote:
> >>
> >> BSD are general purpose (server, desktop, embedded) system for
> >> advanced and aware users. Default installation won't do anything for
> >> you except default base installation, nor the OS won't do anything
> >> until you command it to do something. After FreeBSD install you only
> >> get standardized base OS that you can then customize and adapt. But
> >> when you do its rock solid. This is the strongest part of BSD. If you
> >> don't like that philosophy probably it may not be the best OS for you,
> >> or it's not the time yet. Sorry that you feel disappointed. It
> >> requires some skills, knowledge, and persistence to learn new things.
> >> Probably the error was on your side (it always is in my case I
> >> shamefully admit). I have several workstations upgraded from 9.0
> >> release upwards with no problem for many many years. I write this
> >> email from a machine that started at FreeBSD 10 and went up through
> >> all minor releases up to 13.0. But it is you who is responsible for OS
> >> management, understanding how things work, so they work as you want.
> >> FreeBSD is "raw" OS, some people love it for that, some people prefer
> >> Linux with easy "click and do it for me" approach, some people work
> >> with Open-Source on Windows.
> >>
> >> Linux can do something for you but then it's not always what you want
> >> and things will break for sure after several updates. See kernal api
> >> changes with every minor release. See UX/UI changes enforced on most
> >> popular distros (i.e. Ubuntu). Also beware of kernel/libc/glibc impact
> >> on all system components, or even worse
> >> quick-and-dirty-bleeding-edge-hacks that only works in one particular
> >> case on particular version of Linux. Not to mention Windows or MacOS
> >> because they are closed source so you cannot customize the OS itself.
> >> BSD is the best environment to test software quality, so the idea to
> >> test software portability on *BSD in the first place (there are
> >> various flavors like OpenBSD, NetBSD, and FreeBSD derivatives like
> >> MidnightBSD, DragonFlyBSD, etc) is the best idea you can have. Good
> >> approach. I also work like this not only with various computer
> >> software components but also embedded toolchains for firmware
> >> development on various CPU/MCU architectures (i.e. Zephyr RTOS, ARM
> >> MBED, FreeRTOS, Arduino, etc).
> >>
> >> In software world things break occasionally. Show me a commercial OS
> >> that has no problems. Maybe you need more time to understand how
> >> things work here? :-)
> >>
> >> If you simply want to test compilation on FreeBSD based OS that has
> >> already the Xorg in default install and provides live media that "just
> >> boots what you need" try MidnightBSD :-)
> >>
> >>
> >>
> >> I hope that you will eventually come back to FreeBSD (or its
> >> derivative) one day.. and then you will know why :-)
> >>
> >> Take care! :-)
> >>
> >> --
> >> CeDeROM, SQ7MHZ,
> --


More information about the freebsd-questions mailing list