If you want lightness, or need the Linux kernel for something, Alpine Linux is a tiny and solid project.
No systemd to be found (not even an option on BSDs; Alpine Linux is OpenRC).
Systemd: let's break and change how everything works. You need to relearn everything.
OpenBSD: things work largely the way they've worked for decades. Even as parts of the system are rewritten, the user experience remains very much like it was before, and often the old way of configuring and using things works exactly as before even if the underlying tools have seen a complete rewrite.
> Systemd: let's break and change how everything works. You need to relearn everything.
> OpenBSD: things work largely the way they've worked for decades. Even as parts of the system are rewritten, the user experience remains very much like it was before, and often the old way of configuring and using things works exactly as before even if the underlying tools have seen a complete rewrite.
You're arguing a different point. *BSD's focus on 'experience stability' is completely tangential to the fact that it's a curated series of different utilities, tools and programs designed to work together. Much like systemd.
Hilariously, this is premise is entirely wrong.
> ... one umbrella project developing all parts of the OS, often depending on each other.
Systemd is not the OS. Full stop.
Certainly seems to want to become it.
> Certainly seems to want to become it.
touché
Then take KDE as example (an umbrella project with many separate, independent projects below it, all of which are separate binaries, but many work better when used together, or depend on another). Or Gnome. Or any other such umbrella project.
> > Hilariously, this is premise is entirely wrong.
Note that you originally asserted:
one umbrella project developing all parts of the OS
And I responded with what I feel confident is a statement of fact: Systemd is not the OS.
> Then take KDE as example (an umbrella project with many separate, independent projects below it, all of which are separate binaries, but many work better when used together, or depend on another). Or Gnome. Or any other such umbrella project.The examples you provide are umbrella projects, no doubt, but none are Operating Systems. Neither is systemd.
While the term "OpenBSD" can be used in the context of a distribution (common), OS (common), and the tools used to initialize same (uncommon), systemd only qualifies for the latter.
Do you mean the project, or the unit system? I'd argue an init system is very much a key part of the operating system, as important as the kernel. You can't really do much without one.
If you mean the project, then you've missed the point.
I tried netbsd a couple times but I’ve never gotten it to compile.
There is e.g. Elementary OS (also an Ubuntu derivative) with another lightweight GUI.
I personally run Void Linux (which lives happily without both systemd and sysvinit) with Xfce.
But it is slow. The overlay barely works well on a new mid-range system. A cheap laptop that is as old as Gnome3 has no chance of running Gnome3 in a satisfying way. Even if you ignore the overlay and install dmenu (which a noob isn't going to know about) it is slower than not only other wm's for Linux, but Windows and OSX. It's not a good way to get new people interested in Linux.
I think not if we look at Ubuntu, Red Hat, etc. But maybe small ones like Alpine Linux?
This brings up a good question: What good free and open source operating system is out there that would be persuasive for a college student or someone who wants to learn an operating system as opposed to merely using it?
That statement seems inconsistent with itself. It's the default, you can change it.
What is this college student studying?
If it's something technical then yes, 100%, you need exposure to multiple different systems, and sticking to your MS enclave is going to seriously limit your abilities.
Despite SystemD Linux is better than ever as a coding OS and as a desktop OS. It works great on a huge range of hardware and it provides frictionless access to tools to code in more languages than you can shake a stick at.
If Gnome is too heavy or restrictive for you (and I haven't gone near it since 3 launched) then try a different DE like Xfce. There's a selling point right there - switch DEs at the drop of a hat.
On Linux, you just open up a text editor, write some C/Python, then pop open a terminal and directly invoke gcc/python. There's typically nothing that needs to be installed - and if something's missing, it's just an 'apt install' away. As a beginner you can see how everything fits together since there's no IDE in the way. And if you want to dig deeper into how things work, everything is documented in the man pages.
On Windows, you need to go online, find the right downloads, then install various developer utilities just to get to a working build environment. From there everything is typically done from the IDE - which means setting up projects and dealing with more abstraction.
I'm firmly of the belief that IDEs are a great tool, but aren't something that should be introduced until after students have a firm grasp of the underlying fundamentals.
Me too. Professionally, I develop for a number of operating systems, including Linux and Windows. I much prefer developing on a Linux system over the others, in part because it's easier to get going (most of what you need is installed with the OS), and in part because it's more flexible.
Or get the IT to install the respective C compiler.
Plus just because there is a C compiler, it doesn't mean IT has made it available to common mortals, or allowed exec on $HOME for the clever dudes that try to sneak in one.
Why would having better IDE support make for a better learning environment? It masks what is going on, and complicates it (for the benefit of people doing much more complicated things). But if you're bashing out helloworld.py you've just made it hard to disambiguate what the file is doing, what the runtime, and what the IDE.
Linux/CLI: Learn an obtuse (beginners, remember) command line text editor, save the file, run another text command to run it, remember the error as you go back in. Fight with apt to get things to work, pray there are no dependency conflicts/errors, learn sudo, go find an IRC channel to help with a package not working with some obscure error about "but it depends on .. which is not installed, try (command that won't fix anything)"
First one sounds much easier for a beginner to me. Making programmers learn on linux is like making student drivers start on manual tractor trailers.
They didn't say it wasn't easier, just that they'd learn less. A better platform to learn on doesn't result in you learning less.
This is even true among "professional" developers, they think somethings impossible just because it can't be done inside visual studio because they don't know how all the parts fit together, all they can do is hit F5.
> Linux/CLI: Learn an obtuse (beginners, remember) command line text editor, save the file, run another text command to run it, remember the error as you go back in. Fight with apt to get things to work, pray there are no dependency conflicts/errors, learn sudo, go find an IRC channel to help with a package not working with some obscure error about "but it depends on .. which is not installed, try (command that won't fix anything)"
Aside from the command line text editor you have deal with almost similar issues with VS, different but similar. You can end up in DLL hell from nuget, you can fight with click once deploys, you can find useless "answers" on MSDN, etc.
Can't say VS has ever given me problems outside very complex large projects that are out of scope here while the Linux part is based on experience.
You seriously underestimate the amount of work people have to do to get started in an IDE.
Really though, thinking on it the best environment for a total beginner is probably one of those web-based things like codeacademy.
Let's agree to disagree.
As an example I write papers using latex.
On Windows I have to:
- Figure out that I need miktex.
- Find its website and download the installer and install it.
- Find an "IDE" like TeXniccenter.
- Find its website, download it and install it. - Configure it.
- I have buttons to click, great. I click on them and pray that it works. What if it doesn't? Error messages are buried somewhere and problems are horribly difficult to fix (e.g. utf8 problems or missing perl).
- I need to convert some graphics from one type to the other. Can Windows do that? What do I need to install? Photoshop?
On linux:
- Open the software center/appstore/whatever.
- Search "latex".
- Click on all the stuff I like. Done.
- Everything works out of the box and does not need fiddling.
The second one is much, much easier for a beginner.
Don’t get me wrong, IDEs can be great, but they come and go or change significantly over a decade and the knowledge you build with it won’t work once you SSH into a headless server.
Why not both?
Benefit one was destroyed by Gnome3 (and, for a while, Unity) being the default in the beginner's distros. Benefit two was destroyed by SystemD wrapping its tentacles around more and more things, and making a modern distro an obtuse, ugly system to learn from, or to work with.
Is there any persuasive reason for a college student today to try desktop Linux? Is there a good pitch anymore?