# What is wrong with linux ?



## Alain De Vos (May 17, 2021)

This is an opinionated post and on purpose.
Everything on my PC is compiled from source, including kernel, kernel-modules, applications.
Trying the same thing on linux, i tried gentoo, it did not work, there was always a conflict. Meaning here I put option X there I must put option Y and you never get it right. So in some sense freebsd is doing something right what gentoo is doing wrong. But what is it ?


----------



## Geezer (May 17, 2021)

I had a go at linux more than twenty years ago when the only choice around was redhat. It had a graphical desktop included but still felt much like unix. One of the graphical applications was for setting options for and compiling the kernel. It had source code. I could quite easily compile a kernel, but...

... it was not the kernel that was originally installed. I could not find which set of configuration would lead to the basic kernel. It was not documented. 

So much for open source. It was open, except those bits that they did not want you to know.


----------



## tingo (May 17, 2021)

You should edit the title of this post. Your question is about Gentoo; the title should reflect that. Linux is soo much more than just a single distro.

Back to your question: I haven't tried Gentoo, but I have tried many other distros. Like FreeBSD, a Linux distro requires a certain level of familiarity (call it acquired knowledge on the subject if you will), in order to succeed with more complex tasks, such as compiling from source after changing stuff. 

Is it inherently wrong to require someone to acquire knowledge on a subject in order to perform a complex task? I don't think so - this is how our world works, and how we develop as a species.

Sometime in the future, we will be able to speak to our robotic transport and tell it where we want to go, without needing to understand how it gets us there. But - this doesn't mean that nobody understands that. Somewhere there is a technician (rather a task force of technicians) who understand this system, and all parts of it.


----------



## SirDice (May 17, 2021)

The FreeBSD base OS has always been meant to be built from source. Heck, that was the only way to update the OS before freebsd-update(8) came around (somewhere around 8.0 I believe it was). As for the third party applications, the ports tree existed for a reason, packages were somewhat of an afterthought with the old package tools. Again, somewhere around 8 or 9 this shifted to pkg(8) or PKGNG as it was known back then. 

This whole "being able to build everything from source" was always an integral part of how FreeBSD operated. Most Linux distributions however are built around installing packages from the start and being able, as a user, to build them from source is an afterthought, some distributions do give you the tools to do it but most don't.


----------



## Menelkir (May 17, 2021)

Alain De Vos said:


> Trying the same thing on linux, i tried gentoo, it did not work, there was always a conflict. Meaning here I put option X there I must put option Y and you never get it right. So in some sense freebsd is doing something right what gentoo is doing wrong. But what is it ?


What you want is gentoo working as freebsd, and doesn't work like that. Can I use apt-get in freebsd? No? Yeah, something like that.
You've asked by gentoo and it have some similarities on how freebsd work but, of course, in different ways. For example, freebsd uses a dialog to show you the options when you're about to compile a port, while gentoo call this USE flags and you should set in /etc/portage/package.use/whatever. Pretty much the same, but a different thing to be learned. It's the user choice to use and learn what they want and/or if it's the right tool for the job.


----------



## SirDice (May 17, 2021)

Maybe you should give Linux From Scratch a go.


----------



## Alain De Vos (May 17, 2021)

Once a year, I do a make config for a linux kernel.
It gives me options. So many options I'm away for two hours.
Some linux distro's have a freebsd feeling, notably void-linux and alpine-linux


----------



## Menelkir (May 17, 2021)

Alain De Vos said:


> Once a year, I do a make config for a linux kernel.
> It gives me options. So many options I'm away for two hours.


Then why you don't just stick to the defaults and modify only the bits you really want? You'll have the same issue if you want to explore freebsd kernel, and in the end you'll probably sticking to the defaults here too.


----------



## Crivens (May 17, 2021)

Linux has (can have) a /dev/config, which contains the config of the currently running kernel.


----------



## astyle (May 17, 2021)

Kernel compilation is one of those things where you don't want to do some half-assed messing around. If you just want a recompiled kernel on your hardware, then sticking to defaults (that you're provided with at the start) is a good idea. If you want to make adjustments, be prepared to spend a LOT of time and to take a LOT of good notes on exactly what you did. That way, if you mess up, you can go back and fix it. But for that kind of learning -  Unless you have a Threadripper or a recent Xeon with at least 8 cores - it takes up too much time just compiling. And you gotta have the patience to figure out the options, verify that they don't conflict, and gotta finish the job, don't just drop it halfway and complain into the Internet that 'Linux Kernel Compilation Isn't Working'. BTW, even Linus Torvalds himself uses a Threadripper.


----------



## Menelkir (May 17, 2021)

Crivens said:


> Linux has (can have) a /dev/config, which contains the config of the currently running kernel.


/proc/config.gz.


----------



## vermaden (May 17, 2021)

Alain De Vos said:


> What is wrong with Linux?


Lots.

Linux (and earlier Windows) sucked too much in too many areas that were pissing me off.

Some details here:








						My FreeBSD Story
					

As Roman Zolotarev asked if I would write an entry for his Tell Your BSD Story page I could not refuse. That page was available at the URL but seems that Roman abandoned the bsdjobs.com domain unfo…




					vermaden.wordpress.com
				




Some info why FreeBSD and not other systems (and lots about why Linux sucks) here:








						Quare FreeBSD?
					

I really wanted to make this article short … but I failed miserably. At least I tried to organize it well so one may get back to it after ‘some’ reading because its not a short le…




					vermaden.wordpress.com
				




My other reasons why Linux sucks:

__ https://twitter.com/i/web/status/1393329071506010115_View: https://twitter.com/vermaden/status/1393329071506010115_


__ https://twitter.com/i/web/status/1393329355774889990_View: https://twitter.com/vermaden/status/1393329355774889990_


__ https://twitter.com/i/web/status/1393329507281555456_View: https://twitter.com/vermaden/status/1393329507281555456_


__ https://twitter.com/i/web/status/1393329673405444096_View: https://twitter.com/vermaden/status/1393329673405444096_


__ https://twitter.com/i/web/status/1393329983167373313_View: https://twitter.com/vermaden/status/1393329983167373313_

https://twitter.com/vermaden/status/1393330051689717764
https://twitter.com/vermaden/status/1393330142974513152
https://twitter.com/vermaden/status/1393330437297250304
https://twitter.com/vermaden/status/1393330537083949059
https://twitter.com/vermaden/status/1393330602582151168
https://twitter.com/vermaden/status/1393330836175474688
https://twitter.com/vermaden/status/1393330892765110274


----------



## astyle (May 17, 2021)

I've been reading Distrowatch, and there, I saw quite a few Linux distros now support ZFS... On that account, FreeBSD beat Linux to the punch by about a couple years. But booting different kernels - that ability has been with Linux for a while. /boot/kernel1, /boot/kernel2, etc.  It did take messing with the bootloader by hand every time. Not impossible, but there were a LOT of details that needed to get lined up correctly - I never had the time or patience to do that.


----------



## Alain De Vos (May 17, 2021)

I have alpine-linux-on-zfs and void-linux-on-zfs on root. The installation was fairly very simple and straithforward.
The boot ison ext4/grub, but thats only for loading the kernel.
Grub is really a powerfull loader and I use it to chainload the freebsd loader on zfs.


----------



## Jose (May 17, 2021)

Vermaden you missed one from your Valuable News posts. Listen to Linus himself 'splainin' why Linux sucks. Short version: glibc is stable like warm Jell-O.




_View: https://www.youtube.com/watch?v=Pzl1B7nB9Kc_


And there's more than one libc to choose from on Linux now. See Musl and Busybox.

I dream sometimes of how good Steam OS could've been if Valve had based it on Freebsd instead of Linux.


----------



## vermaden (May 17, 2021)

Jose said:


> Vermaden you missed one from your Valuable News posts. Listen to Linus himself 'splainin' why Linux sucks. Short version: glibc is stable like warm Jell-O.


Yes, that is good reference too.


----------



## Jose (May 17, 2021)

Alain De Vos said:


> I have alpine-linux-on-zfs and void-linux-on-zfs on root. The installation was fairly very simple and straithforward.
> The boot ison ext4/grub, but thats only for loading the kernel.
> Grub is really a powerfull loader and I use it to chainload the freebsd loader on zfs.


Alpine uses the Musl C library. Most linuxses  use Glibc. It's fine as long as you stick to the US locale:





						musl libc - Functional differences from glibc
					






					wiki.musl-libc.org
				




Yes, this has bitten us at work.


----------



## kpedersen (May 17, 2021)

Jose said:


> I dream sometimes of how good Steam OS could've been if Valve had based it on Freebsd instead of Linux.


True but just think of the kinds of users that would attract to flood these forums with invalid demands. It would be painful to see!

As for packaging on Linux, it is unfortunate that we now need to wait for messes like Snap, flatpack, docker, etc to fizzle out again before we can attempt to actually solve the problem :/


----------



## Aeterna (May 17, 2021)

I don't recall having problems with building custom kernels on linux, FreeBSD or OpenBSD in last 10 - 15yrs. 
Always considered OS wars as something specific for users that need to let go off steam or novices. 
Compilation times:
even in VM it takes 7min/10min depending on OS.
That is on old laptop with i7-4710MQ with 32GB of RAM (VM gets 13GB of RAM).


----------



## Beastie7 (May 17, 2021)

kpedersen said:


> True but just think of the kinds of users that would attract to flood these forums with invalid demands. It would be painful to see!
> 
> As for packaging on Linux, it is unfortunate that we now need to wait for messes like Snap, flatpack, docker, etc to fizzle out again before we can attempt to actually solve the problem :/



I mean, is there a reason for Linux to even exist anymore besides being a driver dumpster? You want good free Unix? Join team Beastie.

Or did people just want free windows?


----------



## drhowarddrfine (May 18, 2021)

Beastie7 said:


> Or did people just want free windows?


Most people who come here and ask the most irritating questions or make the most insulting posts are wanting just that.


----------



## PMc (May 18, 2021)

Alain De Vos said:


> This is an opinionated post and on purpose.
> Everything on my PC is compiled from source, including kernel, kernel-modules, applications.
> Trying the same thing on linux, i tried gentoo, it did not work, there was always a conflict. Meaning here I put option X there I must put option Y and you never get it right. So in some sense freebsd is doing something right what gentoo is doing wrong. But what is it ?


This was always the case. Linux as an OS is not and never was a homogenous build. And this is alright for most people as they just want a running OS installed from binaries. (I was told there are some linux distros that can compile as a whole, but I never tried.) There is nothing done wrong with either, it is just a difference in the development process: when the development itself does not happen within a consistent OS landscape, it is a lot of work to put it correctly together afterwards.


----------



## Jose (May 18, 2021)

Alain De Vos said:


> Once a year, I do a make config for a linux kernel.
> It gives me options. So many options I'm away for two hours.
> Some linux distro's have a freebsd feeling, notably void-linux and alpine-linux


`make oldconfig` made all the difference for me. Gentoo's Portage was originally inspired by the Freebsd Ports Collection, BTW.


----------



## bobmc (May 18, 2021)

I started with Slackware Linux when it was a box of CDs.  I had to recompile the kernel for my old mechanical mouse to work. Linux has shown steady improvement ever since so it  is a superior system, in my view. On the other hand, there is Windows10 which thinks I am thief. It truncated my user name to "Rober" without warning so I am stuck with it.

The only thing about Linux, I suppose, is too many me-too distros.


----------



## gpw928 (May 18, 2021)

Alain De Vos said:


> So in some sense freebsd is doing something right what gentoo is doing wrong. But what is it ?


Right or wrong is a subjective assessment.

I have worked in many places where being without a support contract from a "credible" major industry player was simply not an option.  No senior manager with an ambition to maintain their employment (let alone their career) would consider anything else.

Learning to humbly accept the adulation when things go well, and to re-point the finger of blame (sometimes at the external support contractor) when things go wrong, is an essential lesson in how a professional manager advances their position.

I can also say that not being able to compile the kernel, or even run a desktop, has never been a major issue at places where I did Linux support.  And the ugly nuances around /sys and /proc (let alone systemd) were simply not relevant.  They are technical issues, and not relevant to the overall management goals.

What was relevant was a support contract with Redhat (now IBM), so there was always somebody external to lean on for assistance, and a supply of developers and software suppliers familiar with that turf.


----------



## Alain De Vos (May 18, 2021)

PMc said:


> This was always the case. Linux as an OS is not and never was a homogenous build. And this is alright for most people as they just want a running OS installed from binaries. (I was told there are some linux distros that can compile as a whole, but I never tried.) There is nothing done wrong with either, it is just a difference in the development process: when the development itself does not happen within a consistent OS landscape, it is a lot of work to put it correctly together afterwards.


You used the words "development process". There is something in the process.


----------



## SirDice (May 18, 2021)

Alain De Vos said:


> You used the words "development process". There is something in the process.


The Linux kernel is developed completely separately from the "userland". Each distribution seems to have it's own "userland", some use the GNU landscape, some use other implementations. With FreeBSD the kernel and "userland" (or "world" as we call it) are developed in unison.


----------



## Alain De Vos (May 18, 2021)

cc -v gives,                                                                                                                  
FreeBSD clang version 11.0.1 (git@github.com:llvm/llvm-project.git llvmorg-11.0.1-0-g43ff75f2c3fe)
I think it's the preferred compiler for and kernel ,kernelmodules and userland at this time. Userland and kernel are tight together by the compiler version ?


----------



## usakhncit (May 18, 2021)

Alain De Vos said:


> This is an opinionated post and on purpose.
> Everything on my PC is compiled from source, including kernel, kernel-modules, applications.
> Trying the same thing on linux, i tried gentoo, it did not work, there was always a conflict. Meaning here I put option X there I must put option Y and you never get it right. So in some sense freebsd is doing something right what gentoo is doing wrong. But what is it ?


I LOVE LINUX, BUT...
The problem is not only with Gentoo, but with the Linux Distributions world. Some of these problems include:
1. In order to create easiness, some distros started ignoring POSIX.
2. The directory structure is getting so diverse that almost every distro is now following its own structure of directories.
3. As a result of this directory structure it is difficult (for newcomers) to find the similar directory/file on another distro.
4. Not only the location of directory/file is different, but also their names are different on different distros.
5. Not only their names are different, but also some of their structure is different (for instance, /etc/suders file).
6. Package manager is another domain of discussion. If after working for few years on one distro, you switch then you have to learn it from the scratch. There is no consistency among packages and package managers among Linux distros.
7. Some times, if you search the "exact same package name" on other distro, you may not find it, because the distro/developer decided to have different name.
8. Many software that come by default in linux (especially GUI based) do not follow Unix/Linux philosophy (Do one thing and do it well).
9. Systemd brought automation, but it has complicated the things.
10. Now distro enable (by default) many services which are not needed by the user.
11. Some distro (for instance, ubuntu) for the sake of easiness enable so much crap (services) that it makes the system slower and slower.

These are few things which get worse overtime. I complain about these things because I LOVE LINUX, and I want it to be more compatible with original Unix/Linux philosophy.


----------



## SirDice (May 18, 2021)

Alain De Vos said:


> Userland and kernel are tight together by the compiler version ?


No, that has nothing to do with it (it does but is not that important). It's more that a userland command like ifconfig(8) can actually use the features of drivers like em(4) or urtw(4). On FreeBSD ifconfig(8) is developed along side the kernel devices, so if a (network) interface (em(4), urtw(4), bridge(4), vlan(4)) requires certain configuration options then ifconfig(8) is modified accordingly.

On Linux for example you need to use different tools for ethernet interfaces (ifconfig(8)), wireless interfaces (iwconfig(8)), bridges (bridge), etc. They're all network interfaces, why would you need different tools to manage them? Because they're all developed separately from whatever kernel development is doing.


----------



## Hakaba (May 18, 2021)

There is  a place in internet where a topic with a title like " What is wrong with XXX ?" (And XXX is not the main subject of the place) could finish with very valuable responses (for my knowledge).
Thanks here


----------



## kpedersen (May 18, 2021)

SirDice said:


> Because they're all developed separately from whatever kernel development is doing.


And god forbid they ever need to interact with one another. Then big "systems" are made. Systems that are far more vast than the actual important components themselves.


----------



## Crivens (May 18, 2021)

kpedersen said:


> And god forbid they ever need to interact with one another. Then big "systems" are made. Systems that are far more vast than the actual important components themselves.


Yep. Insert XKCD about standards here.

Linus has ranted about the userland chaos often enough. Blaming him by association is not fair. What would BSD look like if he had joined it? Maybe better, or he and Mat or Theo would have had a 'serious argument'. I think it is better this way.


----------



## Alain De Vos (May 18, 2021)

As advocate of the devil.
When you define an interface of syscalls.
Can't you develop userland and kernel totally different when they both agree on the syscalls ?


----------



## Crivens (May 18, 2021)

Yes.
But then the hackers come in and each has his own narcistic NIH burst on the system.
I'm happy that on *BSD the front line is at the app level so these folks have little chances to piss in my cereals, so to speak.


----------



## Menelkir (May 18, 2021)

usakhncit said:


> 2. The directory structure is getting so diverse that almost every distro is now following its own structure of directories.


This is a special point that really gets me, this new crap with directories makes me nervous. Who the hell would like /bin and /sbin elsewhere? The answer I heard a couple times: "All the directories should be available to the user". Oh cool, so you just break FHS because you don't know how to set a PATH variable?!


----------



## SirDice (May 18, 2021)

Alain De Vos said:


> When you define an interface of syscalls.
> Can't you develop userland and kernel totally different when they both agree on the syscalls ?


Sure, if there's one party to deal with then this would be relatively simple. But the Linux userland is scattered all over the place. So it's not one party, there are multiple ones. And one party may not like what the other party is doing. If they agreed on a certain direction there wouldn't have been a reason to split off in the first place.


----------



## wolffnx (May 18, 2021)

first of all, the virus that everyone knows, sys#@$# , and beyond that Linux is taking the idea from microsoft
"something is happenin but you cant see it or debug it, everything is fine..just wait"
and day after day is more dificult make things at admin level, like debug,solve problems

now I am keeping a couple of Linux hosts, Debian is unrecognizable in some ways but my later years as a fan wort it now
Ubuntu is a joke in terms of a efficient ,simple and fast system,and people use it for servers!

another example, I have one FreeBSD box with 20GB of ram, and I am migrating virtual machines from one centos with
KVM on it, the Centos box has 120GB of ram and you CANT run `ls`  without hanging the OS
and make everything sloooower, including the VMs of course
when the OS is making his magic behind our backs...
today I migrate 8 of 15 virtual machines and my FreeBSD runs smoother, I/O , Network,etc
everything is controlled and monitored,and most important KISS

beyond my personal opinions Linux has a bad future, until the machines comes with 200GB of ram and a intel corei20
to patch up the bad performance (more power=less bad performance you see)


----------



## usakhncit (May 18, 2021)

In Linux world, most of the times when you ask a query, you will get following immediate response:


> What is your distro, version and kernel version?


Can't I get a solution of my issue by simply stating that "I am using Linux"??? That's the irony of the "New Linux World"


----------



## usakhncit (May 18, 2021)

wolffnx said:


> and I am migrating virtual machines from one centos with
> KVM on it


I have sympathy for what CentOS guys did with you... I have never seen a company changing EOL in the middle of a lifecycle. Pure cruelty.


----------



## wolffnx (May 18, 2021)

usakhncit said:


> I have sympathy for what CentOS guys did with you... I have never seen a company changing EOL in the middle of a lifecycle. Pure cruelty.



when come up RedHat (correct me if I'm wrong, if RedHat has nothing to do with CentOS)
I remember print the entire manual of RedHat 9 , I was amazing, learning,using it..etc
but today I can compare every Linux distro, is almost the same thing

PS: I wish had the skills for make a kernel and a userland to bring Linux what is was


----------



## SirDice (May 18, 2021)

usakhncit said:


> In Linux world


In the FreeBSD world (and other BSDs too) we only need to know the version. That's all that's needed to know what it supports.


----------



## zirias@ (May 18, 2021)

Replying to the topic:

Nothing is wrong with Linux. It's an alternative "unix-like" kernel developed independently and works pretty well. Of course, you will find some details "wrong", like everywhere.

Nothing is inherently "wrong" with GNU either, except for the fact that the GNU OS will probably stay unfinished forever (with only Linux "completing" it).

Well, you could say licensing is "wrong" for both, but that's a political discussion 

What IMHO _is_ wrong is how operating systems are built out of these loose pieces. In this old "cathedral vs. bazaar" picture, the bazaar isn't necessarily superior. There's no central forum for discussing and reviewing changes concerning both kernel and userland. There's not even a definition of how a "base system" looks like. Distributions get to define that, and they are responsible for collecting the bits and pieces to create a working system. Distributions that are used widely also get some informal decision power. That's how things like "systemd" happen. Well, just my opinion, I'll keep it that short 

*edit:* If there's also something _great_ about Linux, it's the sheer amount of drivers available, either included in the tree or provided by 3rd parties. Just as one tiny example, back when I had cable TV, I owned some OEM model of a DVB-C PCI card (found on ebay) that was only produced for some settop boxes. No Windows drivers were available. And guess what, it worked just fine with the PCI DVB drivers included with Linux


----------



## usakhncit (May 18, 2021)

SirDice said:


> In the FreeBSD world (and other BSDs too) we only need to know the version. That's all that's needed to know what it supports.


I like the fact in BSD World that they don't change things just for the sake of change. Which creates a great coherence and backward compatibility. Many times a single tutorial is applicable over many FreeBSD versions


----------



## SirDice (May 18, 2021)

usakhncit said:


> I like the fact in BSD World that they don't change things just for the sake of change.


When I first started it was with FreeBSD 3.0, you configured the network and services using `ifconfig_<int>` and `<service>_enable` in /etc/rc.conf. Now with FreeBSD 13.0, 20+ years later, I still configure my machines exactly the same way. Many things have changed in those 20 years, a lot of things also stayed _exactly_ the same.


----------



## kpedersen (May 18, 2021)

SirDice said:


> I still configure my machines exactly the same way. Many things have changed in those 20 years, a lot of things also stayed _exactly_ the same.


This is IMO a really important feature of an OS. Less time retraining, more time actually solving problems.

Perhaps the biggest changes I recall were the requirement to add a wlandev. I.e I couldn't use ath0 anymore but had to create a wlan0 interface from ath0. Still not entirely sure the purpose of that.

And then of course the newer pkgng system. Although to be fair, the way I use it is actually fairly identical.


----------



## usakhncit (May 18, 2021)

SirDice said:


> When I first started it was with FreeBSD 3.0, you configured the network and services using `ifconfig_<int>` and `<service>_enable` in /etc/rc.conf. Now with FreeBSD 13.0, 20+ years later, I still configure my machines exactly the same way. Many things have changed in those 20 years, a lot of things also stayed _exactly_ the same.


That's ideal. /etc/rc.conf is so insanely simple that (coming from SystemD) I struggled in the beginning  
I wish FreeBSD got two things:
1. More driver support
2. More application support
Personally, I am locked with Linux just because my organization has deployed certain applications like MS Teams, Skype, One Drive etc :-(
My research supervisor is using a (books) library application in MS Windows, so I cannot kickout my Windows workstation :-(
Usually, it's people who force you to use a certain OS and application.


----------



## SirDice (May 18, 2021)

kpedersen said:


> Perhaps the biggest changes I recall were the requirement to add a wlandev. I.e I couldn't use ath0 anymore but had to create a wlan0 interface from ath0. Still not entirely sure the purpose of that.


I believe that was done so you can configure multiple concurrent WLANs on a single physical interface, something that wasn't possible with `ifconfig_<int>` alone. Useful if you run multiple APs on the interface.


----------



## zirias@ (May 18, 2021)

I didn't follow FreeBSD for that long, I only started using it back when 10.x was the latest RELEASE (and I directly decided to go with 11-CURRENT instead cause I needed the DRM drivers to use it on my desktop as well [blatantly ignoring all warnings on this forum]).

But then, I was amazed to see that FreeBSD offered for example an OSS-compatible (/dev/dsp) interface for sound with exactly these problem solved that were deemed unsolvable in Linux, which lead to the weird design of ALSA (and later to the monstrosity called pulseaudio).

So yes, agree with SirDice, usakhncit and others: this change "just for the sake of it" is a problem in the Linux ecosystem.


----------



## astyle (May 18, 2021)

gpw928 said:


> What was relevant was a support contract with Redhat (now IBM), so there was always somebody external to lean on for assistance, and a supply of developers and software suppliers familiar with that turf.


Yeah, Red Hat is now another piece of commercial software under IBM's control. Sure, as a company (with actual employees doing active, full-time software development, and expecting to be paid for that), that was a logical move. FreeBSD Foundation does have a few full-time employees, but nonetheless, it's actually tiny compared to Red Hat in terms of ability to pay the devs market price. Against this backdrop, it's pretty amazing that FreeBSD survived as long as it did, and even manages to give Linux a run for its money in terms of having a solid, enduring design that is still flexible.


----------



## SirDice (May 18, 2021)

usakhncit said:


> More driver support


We'd need a bit of help from various hardware manufactures too. Yeah, I'm looking at you Broadcom. 


usakhncit said:


> More application support


Anyone can help with that. Find some software you like or pick an orphaned port and get hacking


----------



## usakhncit (May 18, 2021)

SirDice said:


> Anyone can help with that. Find some software you like or pick an orphaned port and get hacking


I was thinking the exact thing  There is a software "Zekr" (we use in our research) which is present in AUR (Arch User Repository). I will try to port it to FreeBSD, but the question is: Can I port it without having proper programming knowledge? I know about shell scripting, but not familiar much with C, Java etc programming. Maybe I have to look into Porter's Handbook for my answer.


----------



## usakhncit (May 18, 2021)

SirDice said:


> We'd need a bit of help from various hardware manufactures too. Yeah, I'm looking at you Broadcom.


This reminded me of Linus Torvalds showing middle finger to Nvidia


----------



## SirDice (May 18, 2021)

usakhncit said:


> Can I port it without having proper programming knowledge?


Sure. I maintain emulators/fs-uae but I'm not much of a programmer. I can read documentation though, and I know how to build things following the instructions. I do have _some_ C/C++ knowledge, so I do know how to patch the code if necessary. But sometimes I do run into some weird compiler error but then the community is helpful enough to provide pointers that allows me to solve the problem.


----------



## zirias@ (May 18, 2021)

SirDice said:


> Find some software you like or pick an orphaned port and get hacking


In theory. And yes, very often, this works well, thankfully 

But I wouldn't touch an electron app, for example. Back when the port of electron itself was still WIP, I found it on github and actually helped a little. That's where I got my opinion that electron is a major PITA and should be banned  And then, there's a constantly growing number of projects providing their software in the form of some docker stuff (scripts to create a container? whatever…)

I really hope all these ill-advised ideas vanish again soon. A lot of other "latest shit" stuff did. At least, I don't think this is something that's "wrong with Linux". The fact that these things happen on systems using a Linux kernel isn't exactly Linux' fault.


----------



## rigoletto@ (May 18, 2021)

Alain De Vos said:


> Trying the same thing on linux, i tried gentoo, it did not work, there was always a conflict. Meaning here I put option X there I must put option Y and you never get it right. So in some sense freebsd is doing something right what gentoo is doing wrong. But what is it ?



I've not used Gentoo in the last (about) 5 years but let me guess, you tried to install the system while doing all customization you wanted at the same time?

This is not a good idea if you don't have a working custom setup already. Install all the basics (of the profile) you need with the defaults, then modify it and go on.


----------



## usakhncit (May 18, 2021)

SirDice said:


> Sure. I maintain emulators/fs-uae but I'm not much of a programmer. I can read documentation though, and I know how to build things following the instructions. I do have _some_ C/C++ knowledge, so I do know how to patch the code if necessary. But sometimes I do run into some weird compiler error but then the community is helpful enough to provide pointers that allows me to solve the problem.


Thanks. I will definitely give it a try. What do you suggest to a beginner porter (like me), to start from Porters Handbook? or some other resource?


----------



## SirDice (May 18, 2021)

Zirias said:


> But I wouldn't touch an electron app, for example. Back when the port of electron itself was still WIP, I found it on github and actually helped a little. That's where I got my opinion that electron is a major PITA and should be banned  And then, there's a constantly growing number of projects providing their software in the form of some docker stuff (scripts to create a container? whatever…)


It just needs someone that's masochistic enough to grind their teeth on it. Speaking of masochistic, I don't know if you've ever create a MS-DOS/Windows batch file? Now that's some seriously convoluted scripting. Been there, done that, never doing that again. But I've seen people do amazing things with it.


----------



## zirias@ (May 18, 2021)

usakhncit said:


> What do you suggest to a beginner porter (like me), to start from Porters Handbook? or some other resource?


Start there, it has everything important covered. But, if you _don't_ find something you need, have a look in the Mk and Mk/Uses subdirectories of the ports tree. A lot of stuff is documented there in comments.


----------



## zirias@ (May 18, 2021)

SirDice said:


> Speaking of masochistic, I don't know if you've ever create a MS-DOS/Windows batch file? Now that's some seriously convoluted scripting.


Done that, of course. Also done: A little "C standard library" (incomplete, but with curses support) targeting MS-DOS in realmode. And some little tools in C using nothing but the naked win32 API for their GUI. It's horror, but entertaining  Sorry for the off-topic 

(edit: porting an electron app unfortunately isn't entertaining at all, so, yep, thanks for the masochists doing this stuff, hehe)


----------



## astyle (May 18, 2021)

SirDice said:


> It just needs someone that's masochistic enough to grind their teeth on it. Speaking of masochistic, I don't know if you've ever create a MS-DOS/Windows batch file? Now that's some seriously convoluted scripting. Been there, done that, never doing that again. But I've seen people do amazing things with it.


.bat files are often used to automate a truckload of clicking around. These days, Powershell is supposed to be a modern replacement. My problem with Powershell is not even so much the command syntax or the programming structure, but rather the permissions  - if I run it under the wrong 'system account', it doesn't matter if I have admin access on the machine - the script will fail anyway. I like the idea of scripting, but Linux and BSD's do it better than Windows, sorry. Beyond that - it doesn't matter THAT much if you use bash or basic sh.


----------



## zirias@ (May 18, 2021)

astyle said:


> Powershell is supposed to be a modern replacement.


Although this might be off-topic as well (more addressing "what is wrong with Windows?"), I just _have_ to comment on that:

IMHO, Powershell isn't "bad". But it was developed in a time when MS still suffered _hard_ from the NIH-syndrome. Otherwise, Powershell would have been an extension of a POSIX shell (like many good shells are). Instead, it's completely incompatible. Maybe the "object-oriented" nature of Powershell is a good idea, I'm not really sure about it. But for using it, you're forced to learn yet another completely different shell. Hm!


----------



## SirDice (May 18, 2021)

astyle said:


> if I run it under the wrong 'system account', it doesn't matter if I have admin access on the machine - the script will fail anyway.


That's RBAC and/or MAC. You can run into the same problems if you enable SELinux on Linux or MAC on FreeBSD. Security is both a boon and a bane.


----------



## Jose (May 18, 2021)

SirDice said:


> ...It's more that a userland command like ifconfig(8) can actually use the features of drivers...


Gawd, you're so old-fashioned! Don you know that ifconfig is known to behave inadequately in modern network environments? All the cool kids are using the "modern" ip tools.


SirDice said:


> ...Speaking of masochistic, I don't know if you've ever create a MS-DOS/Windows batch file? Now that's some seriously convoluted scripting. Been there, done that, never doing that again. But I've seen people do amazing things with it.


I worked at a place where our build tool was a massive batch file that would pop off an argument, process it, and then invoke itself again with the shortened arg list. It was not easy to follow.


----------



## Tieks (May 18, 2021)

astyle said:
			
		

> Red Hat is now another piece of commercial software under IBM's control



Which will make the support contracts with RH even more expensive. And if you ask people working with it how often they actually use that support, hardly ever. In most cases they find the solution to their problems on Stackoverflow in a matter of minutes, so why call RH? For many CIO's availability of support is one thing, fear for their collection of MS-Powerpoints and MS-spreadsheets is another.


----------



## Alain De Vos (May 18, 2021)

I don't see anything wrong with commercial support contracts.
Everybody must make a living, including RH programmers.


----------



## Crivens (May 18, 2021)

Jose said:


> I worked at a place where our build tool was a massive batch file that would pop off an argument, process it, and then invoke itself again with the shortened arg list. It was not easy to follow.


Arkham Asylum. I know that place.


----------



## astyle (May 18, 2021)

Jose said:


> I worked at a place where our build tool was a massive batch file that would pop off an argument, process it, and then invoke itself again with the shortened arg list. It was not easy to follow


Jose : Are you familiar with concept of _recursion_ ? Sometimes, realizing that kind of thing makes a program easy to follow. As an example, GNU is a recusive acronym that can be expanded infinitely. or the FreeBSD ports tree compilation can be thought of as a _directed graph_, which makes backtracking and correcting mistakes on `make config` easier.


Alain De Vos said:


> I don't see anything wrong with commercial support contracts.
> Everybody must make a living, including RH programmers.


I agree... it's just that not everybody can easily afford a support contract with IBM. Most of the time, it's really minimal tasks that take 5 minutes to solve with a simple Google query or about an hour to hunt down someone with root permissions.


----------



## Crivens (May 18, 2021)

astyle what Jose described was a loop done by recursion. That happens when LISP hackers are old enough to target job security.


----------



## Alain De Vos (May 18, 2021)

Reading lisp is a certain form of brain gymnastics, but car & cdr are really powerfull.
/bin/sh that everybody loves has also shift.
I find it ugly.


----------



## kpedersen (May 18, 2021)

Well, y'know what they say.



			
				Richard Stallman said:
			
		

> The most powerful programming language is Lisp.


----------



## Menelkir (May 18, 2021)

Crivens said:


> Arkham Asylum. I know that place.


So I guess Arkham still runs Novell these days.


----------



## Jose (May 19, 2021)

Crivens said:


> astyle what Jose described was a loop done by recursion. That happens when LISP hackers are old enough to target job security.


I think the Windows batch language of the day didn't have looping constructs.

I believe most if not all recursive algorithms have an iterative solution that is usually more efficient on real computer hardware because of the overhead of having to keep all the stack frames for the recursive calls. This has led to the invention of "proper tail recursion" which I still struggle to comprehend.

I've never liked the functional stuff. I figured I'm not smart enough to get it. I found out recently that I'm in good company:








						Discovering Dennis Ritchie’s Lost Dissertation - CHM
					

Until recently, across a half-century perhaps fewer than a dozen people had ever had the opportunity to read Dennis Ritchie’s dissertation—the intellectual and biographical fork-in-the-road separating an academic career in computer science from the one at Bell Labs leading to C and Unix. Why?




					computerhistory.org
				




No, I'm not saying that I'm as smart as Dennis Ritchie.


----------



## mark_j (May 19, 2021)

Alain De Vos said:


> I don't see anything wrong with commercial support contracts.
> Everybody must make a living, including RH programmers.


That's true, but as Tieks points out they are mainly a waste.
My experience with them is they're there to cover the proverbial behinds of management so that should the defecation hit the oscillation they have someone to blame.


----------



## astyle (May 19, 2021)

Jose said:


> I think the Windows batch language of the day didn't have looping constructs.
> 
> I believe most if not all recursive algorithms have an iterative solution that is usually more efficient on real computer hardware because of the overhead of having to keep all the stack frames for the recursive calls. This has led to the invention of "proper tail recursion" which I still struggle to comprehend.
> 
> ...


When I was in college back at turn of the century, one of my Computer Science textbooks mentioned that recursion was simply an easier way to abstractly keep track of actual program execution on hardware. Compiler design was easier when program syntax was recursive.


----------



## Crivens (May 19, 2021)

astyle Syntax is still recursive, otherwise you had a limited amount of programms to be written. Proof is left as homework.

Functional programming has it's merits since it forces programs into a state that a machine can reason about. I have yet to see a LISP compiler with a -fstrict-aliasing switch...
Also it helps with garbage collection.


----------



## Deleted member 30996 (May 19, 2021)

The only thing I see "wrong" with Linux is they force what 3rd party apps on me someone else thinks I need for my desktop. That and it's boring to me.

I'm perfectly comfortable with apt-get and can set up the programs I want and need, but it's not UNIX and can't trace roots back to it. 

That was the main reason for me switching to a FreeBSD 5.x based OS and then on to FreeBSD 7 proper. Because it can and went on to learn and use OpenBSD and SysV, though I prefer FreeBSD as a desktop OS. Linux would have limited me in that regard had I stayed with it.

When I start a build and compile 3rd party programs from ports I already know what I'm going to get when I hit the desktop every time. A rock-solid general purpose Fluxbox desktop with only the programs I choose that meet my needs for that purpose that will be easy to maintain and run long after the EOL cycle a year or so later.

That without one System crash expected or experienced in the time I've used FreeBSD. The most usr friendly desktop oriented OS I have ever taught myself to use, and I taught myself to use them all.


----------



## zirias@ (May 19, 2021)

Jose said:


> I believe most if not all recursive algorithms have an iterative solution


"Most" is relative, might be true if you're talking about things actually used in practice.

A famous example for why "all" is not true is the Ackermann function. If you implement it without explicit recursion, it's fake because you instead implement your own stack 



Jose said:


> I've never liked the functional stuff.


There are good reasons for a functional approach sometimes. Immutability of any data helps with a few things, like ease of testing and bug hunting, better possibilities for static code analysis, inherent thread-safety, etc; partial application and higher order functions give you simple and flexible alternatives to OOP patterns…
OTOH, side effects are very cumbersome to do in a functional way, so you probably won't use such an approach in pieces of code doing I/O.


----------



## a6h (May 19, 2021)

SirDice said:


> Speaking of masochistic, I don't know if you've ever create a MS-DOS/Windows batch file? Now that's some seriously convoluted scripting.


Writing installation menu with some ASCII art for DOS <= 6.22 but not >= DOS7.0/9x/NT was fun, but that was end of it. The problem was, if you wanted to go further beyond some point, there was a wall and you were always banging your head against that wall! PowerShell doesn't have that wall, but let's face it, Microsoft is bad with shell/scripting. That's why they have VB6!



Alain De Vos said:


> Some linux distro's have a freebsd feeling, notably void-linux and alpine-linux


>> If by that you're trying to find somthing minimal and still useable:
Sometimes I have to run GNU/Linux in VMS -- no bare-metal. I couldn't find somethings more minimal than Artix-base/runit.

>> But if it's all about compiling base (kernel and userland):

I run GENERIC on nearly all my machines -- both VMS and bare-metal, and I use pkg(8) to install program. I rarely go through compilation process -- both base and ports.
There's nothing wrong with running GENERIC and using binary packages in BSD world. At least it's true for both FreeBSD and OpenBSD.

 Exceptions:
1. Bad default options.
2. I want to strip out stuff to fit it on some embed project.


----------



## bobmc (May 20, 2021)

Jose said:


> This has led to the invention of "proper tail recursion" which I still struggle to comprehend.


Tail recursion is intrinsic to Lisp and Scheme. But I find all these ")))))))" in Lispy code results in syntatic overload.  Then there Lisp macros which extend the language with new features that support your project.  More strange syntax.


----------



## Jose (May 20, 2021)

I struggle with the syntax too. I hate the parenthesis overload.


----------



## zirias@ (May 20, 2021)

Of course, _functional programming_ ≠ _Lisp_ 

Yes, this syntax is a mess


----------



## Crivens (May 20, 2021)

Lots of Irritating Silly Parentensis?


----------



## Alain De Vos (May 29, 2021)

What's wrong with freebsd.
The config of local_unbound is in /var . Why ? What's wrong with /etc or /usr/local/etc.
All that scripting in an old shell sh without type verification. Error-prone. Doing shift to manage parameters. Lisp car & cdr are newer.
Forget an " in rc.conf sourced 1000 times.
You get an old mailserver sendmail for free.
Long boot-times to detect usb.
Wifi for the happy few.


----------



## Vull (May 29, 2021)

Linux doesn't help one practice one's speed-reading skills during the boot process. Not at all. They're so shy! That whole long boot process, with nothing interesting to read.

So, one wonders, what might they be up to, during all that time? Why aren't they telling me about the problems they're having, if any, while they're setting up my hardwares? 'Cause I'd like to know.

I feel like it's my responsibility to know who the problem hardwares are, what their names are, and even what the nicknames are, that they're using around this computer neighborhood. But those Linux people won't tell me anything. They won't even talk to me.


----------



## mark_j (May 29, 2021)

debguy said:


> [...]
> 
> * they did and still are trying to be King.  RH now wants $350/mo for use, and also demands to run "a license manager" to have rights to steal any work any file you make  (although, any cloud enabled app like MS development or Wolfram Cloud is likely to ... misdirect your files to the company - if your files are worth anything)


I had to check this, but that's the cheapest server licence, and not only that, laughably it has the following features:

```
Does not include Red Hat customer support.
Does not include Red Hat Enterprise Linux Atomic Host.
Can only be deployed on physical systems.
Cannot be stacked with other subscriptions.
Is not intended for production environments.
```

So you can pay $350 to purchase a FREE OS and support it yourself. Simply hilarious.

The old adage comes to mind: "A fool and his money are soon parted."


----------



## Jose (May 30, 2021)

Alain De Vos said:


> What's wrong with freebsd.
> The config of local_unbound is in /var . Why ? What's wrong with /etc or /usr/local/etc.
> All that scripting in an old shell sh without type verification. Error-prone. Doing shift to manage parameters. Lisp car & cdr are newer.
> Forget an " in rc.conf sourced 1000 times.
> ...


Wild guess here, but it's probably because Unbound is meant to be run in a chroot. That practice started with BIND in the '90s when the fastest and easiest way to crack a Unix-like box was through the DNS server.


----------



## garry (May 30, 2021)

Alain De Vos said:


> This is an opinionated post and on purpose.
> Everything on my PC is compiled from source, including kernel, kernel-modules, applications.
> Trying the same thing on linux, i tried gentoo, it did not work, there was always a conflict. Meaning here I put option X there I must put option Y and you never get it right. So in some sense freebsd is doing something right what gentoo is doing wrong. But what is it ?


I build all of my operating system and applications from source on both FreeBSD and on Gentoo Linux.  As Alain noted, there are far more failures trying to build software on Gentoo.  It can be quite frustrating.  I think I know why...

We have better unity of vision here in FreeBSD and appropriate humility/cooperation.  In FreeBSD there is one version of each package in ports at a time.  The FreeBSD project's build servers build all of those packages continuously with default (the commonly needed) options.  If a package fails to build the maintainer gets a notice and typically fixes it within a day or two.  The typical FreeBSD user wants a stable server or desktop system that is pretty-much just like the systems of the other FreeBSD users.  There's not a lot of "ego" involved in choosing how to assemble a system.  Assembling the system is treated as an engineering job.  I love using the quarterly ports branch for increased stability.  The support being given to Quarterly Ports is excellent with important fixes being merged from head as needed.  It is good engineering.

In Gentoo there are multiple, sometime numerous, versions of _each_ package in portage at a time. There are many versions of the linux kernel and each user configures his kernel differently. There is no Gentoo build server to provide continuous integration testing because no two users can agree on a supported version of the kernel and of each package and a common set of default options. The users agree only that "Gentoo is all about choice!" If a package fails to build for a user the user can file a bug report but since no two Gentoo systems are identical the bug may not be reproduced by others and may not get resolved for a long time. The typical Gentoo user wants his unique system and, in my observation, is finding a lot of ego-satisfaction in finding his own choices to be superior and other's to be bloated or to include components that the user dislikes and judges, some hate gtk3, some hate Qt, some hate systemd, etc. When I build my Gentoo system from sources I do so for the "unstable" amd64 architecture and with an incredibly wise set of USE flags to avoid bloat and attain perfect usability. I like my Gentoo system. I like my stripped-down KDE Plasma there. And I refuse to run systemd the million-line abomination. When I build Gentoo my ego gets out and I'm tempted to be judgemental. It's a miracle that Gentoo works at all and it is a lot of fun.

I treat my time playing with Gentoo as a hobby.  I play around with the choices and smile at the outcome.  Then I boot into FreeBSD with KDE Plasma and enjoy _using_ my computer.

It's the egotistical attitude that afflicts Linux generally.  Linux, some say, is all about individual choice.  FreeBSD is more about group decision and teamwork.


----------

