Solved can we say that FreeBSD adopts newest technology?

Well, I know FreeBSD developers are trying integrate OpenZFS into FreeBSD. So we can say FreeBSD adopts new technologies.
But there are old ones like the shells in the base system are only sh, csh, and tcsh. I know FreeBSD can't adopt fish and bash because of GPL license. However, zsh and ksh maybe can be adopted to FreeBSD. My question is, that is there any special reason that the developers don't integrate zsh or ksh into FreeBSD? Also, why FreeBSD don't have graphic shell by default?(I have been searching the whole main community to find out how to get used to CLI)
 
What would be the benefit of zsh or ksh? If someone wants it, they can install it. If someone else wants bash or any other random shell of their chosing, they can install that too. The base system is a base, fully functional, but customizations that depend on taste should be left to people to install. Another advantage of having sh in the base is that it is POSIX compliant, so if someone wants to build and use a system based on POSIX, this makes it easier to not by mistake use features that are not defined by POSIX.

Yes, zsh and ksh are newer than sh. Newer doesn't always mean better. Many of the newer features are more comfortable, but they are also different from each other and incompatible.

What do you mean by "graphic shell"? A complete GUI desktop environment, like Gnome, KDE, Motif, and many others? There are many choices, and none are the obvious default. If you want one, feel free to install it. A significant fraction of *BSD machines are used as servers, so they don't need a GUI, so it should not be part of base.

By the way, just to be clear: I have nothing against newer shells. Matter-of-fact, I'm using bash on all my machines (including Linux and MacOS) now, but I'm thinking to switching to zsh. But my personal opinion doesn't mean that the base OS needs to support my taste.
 
I'd assume it's also down to "the developers" having their own interests and goals and desires and non-development interests.

Open source means you can contribute your time and your dollars and get involved. If you can't code feature X (that you think FreeBSD should have or needs) maybe you can find and fund a developer to code feature X for you?

Just remember that other people (usually not the ones doing the work!) think that "the developers" should be working on feature Y or feature Z or feature P, Q and R. And don't want the developers working on feature X.

There are limited resources (especially compared to Linux) so personally I want "the developers" working on server-side technology and I don't use the desktop or any fancy shells, so I (could) think they should focus on what I want. BUT seeing as I don't actually donate any of my time or do any of the development myself, I leave it up to them to decide what they do with their time. I do try and donate some dollars but not enough to warrant anyone changing what they do or work on.

But I think ralphbsz has answered your more specific questions - much of what you seem to be asking for is in ports, so why bloat base with things that a fraction of users might want?
 
  1. man sh | wc -l => 1729 lines.
  2. Three files: ~/.profile, ~/.shrc and /etc/profile.
  3. Close to the IEEE std 1003.1 ("POSIX.1").
  4. Interactive/scripts CLI/UI for OS.
  5. History, control operators, redirection operators, comment, pipeline, forking, job-control, single quotes, dollar-single quotes, double quotes, backslash, symbolic-link traversals, aliases, redirections, here-document, path search, background, short-circuit, exit status, flow-control, functions, variables, positional parameters, special parameters, special variables, word expansions, tilde expansion, parameter expansion, arithmetic expansion, pathname expansion, command substitution, shell patterns, built-in commands and command line editing.
  6. Need more? => You need c(7)/clang(1).
 
Well, I know FreeBSD developers are trying integrate OpenZFS into FreeBSD. So we can say FreeBSD adopts new technologies.
Please note that FreeBSD had ZFS long before anyone else but Sun Microsystems who created it. OpenZFS is only a merger of all the current constituents into one organization to develop the open source version of that. It is others who only more recently integrated openZFS and ZFS into their systems.
 
Also, why FreeBSD don't have graphic shell by default?(I have been searching the whole main community to find out how to get used to CLI)

Same reason why Arch Linux, Alpine Linux, Gentoo, Windows Server and a large number of other operating systems don't.

If you want one, you can install it.

I know FreeBSD can't adopt fish and bash because of GPL license.

FreeBSD has adopted these ages ago since the GPL is a fairly permissive license. You can find them in ports and packages. i.e

pkg install bash
 
  • Like
Reactions: a6h
A little off-topic

Same reason why Arch Linux, Alpine Linux, Gentoo, Windows Server and a large number of other operating systems don't.
You're right. A case in point (windows): Windows server core is all about PowerShell => CLI
PS. Maybe I'm wrong, but regarding how to use PowerShell, local or remote, I consider it as CLI.
 
You're right. A case in point (windows)

I was kinda cheating with that because it does install a GUI... just completely crippled in the form of a single command prompt window and nothing else XD

It is kinda surprising that Microsoft would make Windows Server "core" the default. I would never have thought that would happen. Now you are a minority opting to select the (Desktop Experience) during the installer.

 
Installing Windows Server without desktop environment (core) reduces attack surface (of course it's true for every other system too). In core, for the most part you have two things: PowerShell and sconfig.
 
why FreeBSD don't have graphic shell by default?
Text is far more flexible than any graphical interface. Far simpler and easier to modify, too. If you want a graphical interface, that means you need graphics. A video card and drivers, etc. Things that won't work when you login to a server or remote machine (though you can make that work). And, to some extent, someone to design the graphic output. All of this makes a base system larger on top of that. (How many times do we get questions here on how to make FreeBSD smaller?)
 
Installing Windows Server without desktop environment (core) reduces attack surface

Absolutely. I am just surprised Microsoft got the memo. Or the kind of "Windows Sysadmin" would accept it. These guys don't always manage to arrive at the correct answers XD
 
  • Like
Reactions: a6h
Back
Top