Is it just / ?
I kid. But really, besides “its all a file”, if you take away the gui, is the only difference the syntax ? How libraries interact? How disks are mounted ?
If we stripped all ms’s junk out and made windows open source, would we still prefer linux?
When you get to a very basic level, is one of them more efficiently coded?
is the only difference the syntax ? How libraries interact? How disks are mounted ?
Ah, yes.
You know, the things you just mentioned ARE the basic differences. As long as both work on the same architecture, and none reinvent the wheel, everything is the same.
And as long as you don’t reinvent the computer and make a new assembly and binary, a kernel and libraries will be the most effective ways to work.
Its like saying „what is the difference between python and c++ anyway? If we just strip away everything differentiating the 2, we just get a programming lang.
And yes, I would prefer Linux, for the same reason a python Dev prefers python and a C++ Dev prefers C++: because I’m Used to the syntax and the quirks of Linux. I don’t want to jump back to the ungodly CLI of cmd, powershell and everything else. I have learned the ins and outs of Linux, and that’s how its gonna stay.
You rather should ask what separates Windows from all the Unix-likes. Windows is the weird one, not Linux.
This got me thinking, are there any other non-Unix-based OS’s left? Really, for any hardware more sophisticated than say, an ESP? At all?
I honestly can’t think of one.
OpenVMS is still semi-maintained. It’s DEC’s old operating system that Windows NT draws some inspiration from because Microsoft hired a bunch of ex-DEC engineers.
There’s also 9front, a fork of Bell Labs’ Plan9.
Wegmans’ checkout uses Toshiba 4690 OS, which I think is vaguely descended from CP/M.
I think IBM still maintains their i operating system, which used to be called OS/400.
Network equipment like enterprise routers and switches tend to run weird unique things, Cisco equipment runs IOS and Adtran equipment runs AOS.
TempleOS?
It’s no longer maintained, right? So wouldn’t count.
It’s already been made perfect once. What updates would you make it divinely inspired code?
The OS bundled with TI-84 Plus CE Python Edition graphing calculators is a wacky one. It runs primarily on an eZ80 core for backwards-compatibility with earlier graphing calculators while also handling an ARM core for Python functions. Parts of the assembly code can be traced back to the TI-82 calculator ROM from 1993.
Most people wouldn’t think a calculator would ever need a security solution, but it even verifies application signatures so students are less likely to load cheating utilities on them.
Haiku comes to mind
Haiku is pretty unix-like, I wouldn’t count it
FreeBSD?
FreeBSD is closer to Unix than Linux is
Fair enough, never took a real look at it.
FreeBSD is actually a “real unix”, in the sense that it is derived from the original source. Wikipedia has this nice ancestry tree: https://upload.wikimedia.org/wikipedia/commons/7/77/Unix_history-simple.svg
Up until 95, Windows was mostly a desktop environment for DOS. From 95 to ME, Windows was an OS that used DOS as its bootloader and compatibility layer. Not sure how to put it, but it was simplistic and fundamentally different from Linux.
The thing with NT-based Windows (including modern editions) is that the underlying system is joined at the hip with the GUI. Whereas Linux with your choice of coreutils is a perfectly capable OS without the GUI, many features of Windows are only accessible through the GUI.
Given enough time and resources, pretty much anything exclusive to Windows could be ported to Linux and vice versa. A lot of the difference just comes down to history and the ensuing conventions, workflows, and file hierarchies.
Even if we stripped out all the cruft and spaghetti code from Windows, there would be lots of nasty idiosyncrasies in its design, informed by its OS/2 and VMS (see Dave Cutler) heritage, profit maximization, revolving door of devs and interns, and years of bending over backwards to accommodate legacy programs.
From my basic understanding: Windows has a microkernel hybrid style architecture. It’s kind of like microservices. Instead of all resources being shared within a system process, You get a lot of tiny services all making calls to each other and the main kernel.
This introduces a lot of overhead because variables need to be sent and requested between processes. And they don’t simply share them in the same memory.
Linux on the other hand has most services under one monolithic kernel and they can all access the same memory. So there is no need for all of that intercommunication between services.
At least that’s my basic understanding and if I’m wrong (which I probably am), then somebody on the internet will now correct me.
The entire difference is the kernel. There’s a reason why Apple moved to BSD forever ago for their OS. Somebody did it better than they would have been able to from scratch. Everything above that level on up to the DE matters less as far as stability and performance goes for desktop users.
At a super basic level, MacOS, Linux, and Windows all use different kernels.
From a very basic viewpoint. The kernel is basically the piece of software that gives each piece of hardware their instructions.
At the absolute most basic level, assuming equal hardware, all the kernels are working with same set of instructions(store this value in this register, move to this location in the stack, read this value, etc) but they issue those instructions in different orders to achieve very different results.
The NT kernel that windows uses does basically everything in a different way than the Linux kernel. To the point that their only real similarities are that they speak the same language to the bare metal hardware.
Literally everything.
Okay not everything, I’m sure they share some basic libraries like openssl. But the core OS is apples and oranges.
I started in IT as a windows guy in a unix heavy lab. I aliased windows command line things to output a message to use the linux version of the command so that I would learn it. so if I typed dir I would get a message that said use ls.
Average Linux command naming: yoink
Average Windows PowerShell command naming: Do-QuickPleaseRunProgramDeleteCache -Now -Force -NoFail
I think its easier and shorter to say what is the same between the two than different, but some things that are different:
- Filesystem (ex. Linux treats everything as a file, more flexibility in organization, more compatibility for differing systems, etc)
- Security Model (NTFS vs UNIX, selinux, ACLs, etc)
- File Execution (File extensions don’t really matter in Linux - based on file permission not extension, ELF vs PE, etc)
- Kernel (Monolithic vs Hybrid kernel systems - Windows hands off to HAL vs the Linux kernel doing core functions)
- System Calls (Windows use Win32/NT APIs, Linux uses POSIX-compliant)
Performance is dependent on use case, but in general:
- Linux uses fewer system resources
- Linux has faster boot time
- Linux has better CPU/disk throughput
- Windows has better gaming driver support
- Linux has higher stability/control (hence why its the defacto server OS)
If we stripped all ms’s junk out and made windows open source, would we still prefer linux?
In what context? For gaming maybe, but that’s one single use. There is more to computers than video games, at least for the majority of Linux users. I wouldn’t trust Windows on any server I run.
Note: Gaming performance is purely based on money spent. There’s no fundamental reason windows would have better gaming performance, it’s just that there is more money being paid to engineers and vendors to support DirectX and related tooling.
Then there’s the self-fulfilling aspect that, windows has the largest marketshare, so devs are going to spend the most money targeting it, so that they can get the most money in return, which means more people will use it, which leads to the high marketshare.
The ONLY reason Linux use is seeing the few percent blip in gaming is because Valve has dumped truckloads of cash into making it viable.
PlayStation proves gaming is just fine on Unix.