Hypothetically speaking, what do you think of WSF i.e. Windows Subsystem for FreeBSD? Any justification or possibility? Something similar to WSL 2, with full kernel, man -S 2 compatibility and BSD toolchain (not GPL licensed) especially Clang.
P.S. There are two types of questions: questions and dumb questions. [...]
 
I am not much of a fan of compatibility layers in general and try to avoid using them whenever humanly possible. For example i will probably never use FreeBSDs linux compatibility. If there is no possibility of recompiling the application i'd rather run it in a VM or just don't run it all. The only thing where i use something like this now and then is closed source Windows games which i run on Wine as i feel this is non serious enough to justify not investing the effort of setting up a VM.
 
Hypothetically speaking, what do you think of WSF i.e. Windows Subsystem for FreeBSD? Any justification or possibility? Something similar to WSL 2, with full kernel, man -S 2 compatibility and BSD toolchain (not GPL licensed) especially Clang.

Does it run CUDA or Docker? Why would Windows users want that?
 
I am not much of a fan of compatibility layers in general and try to avoid using them whenever humanly possible. For example i will probably never use FreeBSDs linux compatibility. If there is no possibility of recompiling the application i'd rather run it in a VM or just don't run it all.

This is not a productive attitude. There are all kinds of compatibility layers, from the Linux emulation to linuxkpi, to a glibc-compatible dynamic linker for ELF binaries, to POSIX. You can't avoid all of them.
 
There are all kind of compatibility layers, from Linux emulation to linuxkpi, to glibc-compatible dynamic linker for ELF binaries, to POSIX. You can't avoid them all.

That's true. I was mainly referring to running Linux binaries but i have to admit linuxkpi is something i don't like much either. Concerning POSIX; I woudn't call it a compatibility layer. It's about following a standard specification not trying to imitate the internal interfaces of some foreign system.
 
  • Like
Reactions: a6h
Concerning POSIX; I woudn't call it a compatibility layer. It's about following a standard specification not trying to imitate the internal interfaces of some foreign system.

It's the same problem in practice: multiple implementations with subtly different behavior.
 
Does it run CUDA or Docker? Why would Windows users want that?
I use WSL for one things: file management in a POSIX way. Starting from WSL 2, I'm also using it for fasm/linux (it wasn't possible in WSL 1: 32b code on 64 machine)
CUDA and Docker work on WSL, but I'm not familiar with them.
 
For something similar to WSL2 it is very possible. That is not too much more than a Hyper-V Linux VM image and some clever passthrough. Interestingly graphics passthrough would have been much earlier if the Ubuntu community hadn't been in the middle of Wayland / Mir breakage when it was originally released.

For the original WSL (which I personally found much more interesting), then I don't think that would be possible without compliance from Microsoft. Just like Services For Unix (Microsoft Interix) before it, it does need some amount of access to the underlying system.

That said, Microsoft is fairly receptive to FreeBSD. Their Hyper-V guest additions is fairly good and the very first version of their .NET Java clone (codenamed Rotar) was released in 2002 for Windows XP and FreeBSD (4-5 if I recall) (https://docs.microsoft.com/en-us/archive/msdn-magazine/authors/jason_whittington)

However, Microsoft is trying to capture the popularity of Linux and trap them under their limiting thumb. I don't think Linux was chosen due to technical merit. The main advantage with Linux (driver support) cannot really be capitalized on Windows either because it still uses the NT kernel underneath. So they will probably be focusing their EEE efforts on Linux for the time being (thankfully).
 
For one thing (some educational purposes) I think FreeBSD/fasm convention is more intuitive than Linux/fasm one. For example:

WSL 2: pizza.s
Code:
format elf executable
entry PROC

segment readable executable
PROC:

mov eax,0x4
mov ebx,0x1
mov ecx,msg
mov edx,len
int 0x80
xor ebx,ebx
xor eax,eax
inc eax
int 0x80

segment readable writeable
msg db "pizza", 0x0a
len=$-msg

$ vi pizza.s && fasm pizza.s pizza && chmod u+x pizza && ./pizza

Code:
flat assembler  version 1.73.22  (16384 kilobytes memory)
3 passes, 151 bytes.
pizza


FreeBSD: pizza.s
Code:
format elf executable
entry PROC

segment readable executable
PROC:

push len
push msg
push 0x01
mov  eax,0x4
push 0x0
int  0x80
xor  eax, eax
int  0x80

segment readable writeable
msg db "pizza", 0x0a
len=$-msg

$ vi pizza.s && fasm pizza.s pizza && brandelf -t FreeBSD pizza && chmod u+x pizza && ./pizza
Code:
flat assembler  version 1.73.24  (16384 kilobytes memory)
3 passes, 144 bytes.
pizza
 
I just want to mention that portability is a reasonable measure for code & design quality. Thus, if an application is not portable to run natively under FreeBSD, I'm not interested since it's quality is very likely below my requirements.
 
WSL is pursuing Windows users to try Linux. Enabling one feature, installing one store app and they're good to go. No need for VM, dual-boot, etc. There's lots of talk about FreeBSD on cloud, container, IoT, etc. They are fantastic, but If the windows users have the same opportunity to test FreeBSD on the Windows, It's going to attract lots of people, especially those who know nothing about FreeBSD. I think it's going to attract a lot of attention to FreeBSD in Windows environment. More effective than github, cloud and IoT.
 
WSL is pursuing Windows users to try Linux. Enabling one feature, installing one store app and they're good to go. No need for VM, dual-boot, etc. There's lots of talk about FreeBSD on cloud, container, IoT, etc. They are fantastic, but If the windows users have the same opportunity to test FreeBSD on the Windows, It's going to attract lots of people, especially those who know nothing about FreeBSD. I think it's going to attract a lot of attention to FreeBSD in Windows environment. More effective than github, cloud and IoT.
It would attract Windows & Linux users much more if we/FreeBSD would come up with a colaborative effort to provide a FreeBSD Community Edition with an easy to use, AI-guided, graphical installer for consumer hardware. That's my vision. I would contribute to the sub-project Kommunity Edition (KDE) and/or Qommunity Edition (LXQt), naturally. To have "distros" (ghost/nomad/midnight/fury), like the reddit folk calls it, did & will not solve the issue that FreeBSD is geared towards server & misses to match the demands of desktop use-case out-of-the-box, while with some tweaks & quirks it makes up a great base for a desktop. The reason the "distros" fail to build up a reasonable userbase is simply the lack of manpower; FreeBSD on the desktop is a niche, while in the server world it's standing & reputation is quite good.
 
It would attract Windows & Linux users much more if we/FreeBSD would come up with a colaborative effort to provide a FreeBSD Community Edition [...]
I agree with you.
The reason the "distros" fail to build up a reasonable userbase is simply the lack of manpower
Developing a usable distribution with a nice GUI-based installation is very hard and time consuming. It need a lot of manpower and taking to account countless factors. That's why even in Linux system, it's very hard to find any popular non-Debian/Arch based distros, with a sane and practical GUI-based installation process. OpenSUSE is an exception. Distro-hoppers always try new distro, hoping to find something new, but at the end, they all end up with one of the debian/arch based distros. For the most part, due to (1) broken installation and/or (2) malfunction desktop environment.
 
Hey, Arch doesn't have an installer at all, never mind a GUI for it. At the end of the day, people use their desktops to run applications, and Arch alone (no, I don't include derivatives there) is more popular for desktop usage than all *BSDs combined.
 
Arch doesn't an installer at all
Arch definitely has its minions. I have it installed on a vm, for testing purposes, because it's very easy on RAM and CPU (Linux-wise). Other than that, Arch had a hard time to recognize my Intel WiFi link 1000 BGN. FreeBSD was fine with my card, just one line in the rc.conf.
Back to the WSL: if we have a WSL-like FreeBSD on windows, we don't have to be worry about GUI. All we need classic FreeBSD/CLI. Doing X/GUI on WSL is possible, but nobody does that. A lot of windows developers are SSH/ing to WSL from the visual Studio or VSCode, to compile/cross-compile their codes in Linux or using Linux toolchain/utility for many other things. FreeBSD can provide all of that functionality, exactly like Linux.
 
WSL 2 uses a leightweight virtual machine solution through a highly optimized subset of HyperV. To justify such an expensive (in terms of manpower) development, FreeBSD would need a 100 times larger userbase. Neither you nor me, and neither both together, are going to do that...
 
  • Like
Reactions: a6h
It would attract Windows & Linux users much more if we/FreeBSD would come up with a colaborative effort to provide a FreeBSD Community Edition with an easy to use, AI-guided, graphical installer for consumer hardware. That's my vision. I would contribute to the sub-project Kommunity Edition (KDE) and/or Qommunity Edition (LXQt), naturally. To have "distros" (ghost/nomad/midnight/fury), like the reddit folk calls it, did & will not solve the issue that FreeBSD is geared towards server & misses to match the demands of desktop use-case out-of-the-box, while with some tweaks & quirks it makes up a great base for a desktop. The reason the "distros" fail to build up a reasonable userbase is simply the lack of manpower; FreeBSD on the desktop is a niche, while in the server world it's standing & reputation is quite good.

I might also be interested in contributing to something like this. I've been playing with the idea of releasing my setup for quite a bit of time now and from the feeling i got over the last weeks FreeBSD could be a solid base. My setup is probably not exactly the right choice to attract desktop users but maybe a generic system to install preconfigured versions of FreeBSD could be developed. I've already looked into the installer. It's so simple and tidy it's a dream for customization. I also figure it wouldn't be to hard to replicate it graphically if that's a base requirement to be desktop friendly (i personally prefer textmode installers - less work and it's not like you are looking at it every day anyways).

As for custom distributions: I've given up on that thought a long time ago. It's a plain losing situation in most cases. A fully autonomous distribution is a ton of work and you lose most existing support. Unless you really want to radically change a system it's a bad choice for everyone involved (you and your users).
 
Similar to nomadBSD ?

I don't know as i haven't tried it. Does it use some more or less generic system or is the installer using a single hardcoded preconfiguration? Generic as in you throw a bunch of files somewhere the installer can find them and you get another preconfiguration option? At least that's kinda what i had in mind when i wrote the post.

"Bunch of files" could look something like this:
  • Some config describing the setup
  • A list of packages/ports to install with relevant options
  • A set of config files to copy
  • Likely some kind of optional post install script to do things that are hard to / don't make sense to apply in a more generic manner
  • Maybe hook scripts for the various install stages
  • Some ability to link to 3rd party ports (like the 3rd party repositories for pkg) if using binary packages is not desired
I guess having an option to point the installer at a custom tarball containing all of the above to support private "templates" would also be pretty neat.
 
I don't know as i haven't tried it.
And you didn't even care to try it to check it yourself but wrote a lengthy post asked other to check it for you! It's not time consuming. Download the NomadBSD image and dd it on a spare USB stick and you can start testing it. But you didn't... you prefer continue talking instead...

 
The real question to ask is: Who's going to do this Windows Subsystem For FreeBSD? The OP, aren't you? Talking is cheap. I will wait to see it on the Windows Store.
 
And you didn't even care to try it to check it yourself but wrote a lengthy post asked other to check it for you! It's not time consuming. Download the NomadBSD image and dd it on a spare USB stick and you can start testing it. But you didn't... you prefer continue talking instead...


Sorry, i rather spend my time writing code. He sounded like he knew it so given i've explained what i was thinking about he probably now has an answer to his question. Is there anything more to it?

Trying things i'll 99% not use further is pretty low on my list so unless there is a reason for me to believe there is something exceptional to be seen i'll probably not do it and usually things aren't exceptional. I don't mean that in a bad way either. It's just how things are and my own stuff usually isn't much an exception also.

If there is a reason to try it i am all ears but otherwise, sorry, i can't be bothered. Just as i can't be bothered to install some random Debian remix just to realize: Well, it's like Debian...

The real question to ask is: Who's going to do this Windows Subsystem For FreeBSD? The OP, aren't you? Talking is cheap. I will wait to see it on the Windows Store.

Says the guy making threads about porting some Hypervisor just because of... options... Are you serious? To be honest i don't think so.
 
  • Like
Reactions: a6h
Who's going to do this Windows Subsystem For FreeBSD? The OP, aren't you? Talking is cheap.
I think ekvz addressed your concerns beautifully, thus no further comment is needed on my end. Thanks ekvz .

Onward.

Believe it or not, there are many people, who have never heard of Linux, let alone having it on their computers. That makes sense, machine is working, why bother? Ask any kids, Linux or Windows, I bet they'll pick marshmallow. But after WSL, people are curious: what is this Linux things on windows. I'm not joking. I know people who are running Mint on their laptops; because of that. They have no idea, what's going on underneath of their computer. Frankly, who cares!

There's a concept, floating around here and there, that superior specifications wins. That's completely rubbish. Linus and Stallman character was essential for spread of Linux on desktop computers. Now, we have WSL, and it's doing the same job, i.e. Linux adoption on Windows platform. The sad thing is that in this particular case, it could be done with FreeBSD. WSL users are not concern about NVidia driver, smooth GUI installation or running android studio on it. They are using it as a dev/toolchain and FreeBSD can give them everything they want, even more.
 
Now, we have WSL, and it's doing the same job, i.e. Linux adoption on Windows platform.

That's a bit backwards. WSL is not about promoting Linux, WSL is intended to bring Linux-first applications to Windows with the aim to keep developers using Microsoft's OS. This thing is pretty similar to our Linuxulator in goals.

The sad thing is that in this particular case, it could be done with FreeBSD.

Definitely not.
 
Back
Top