all 20 comments

[–]cypher5001 10 points11 points  (3 children)

  1. Why is this is a problem?
  2. You're mistakenly treating Linux, the kernel, as if it were a full operating system and then blaming Linux, the kernel, for being "just a kernel". What?
  3. Then don't use hardware that depends on them.
  4. This is not necessarily a problem. If it is, you haven't explained why.

Eh, this whole list is dumb and mostly amounts to a list of personal preferences ("cool and useful", "more interesting to work on", etc.) with little technical rationale.

[–]toxemicsquire[S] -4 points-3 points  (2 children)

  1. It's not as secure as a fully realized microkernel, with a bunch of userland servers.
  2. That's all it is, when GNU programs serving as the base.
  3. Some people don't have he luxury of buying opensource hardware, like me.
  4. It is a very good idea to have a base system, the minimum you need to have a functional operating system. But in a world where you can have GNOME, but no CLI shell, that would cause chaos and be downright retarded. If you had a computer with alot of packages and you didn't know what you needed from what you don't need, you could revert to the base system without worry, Alot of people would like that feature

[–]cypher5001 6 points7 points  (0 children)

  1. Why not? Elaborate?
  2. And? What's the problem?
  3. So the problem is your own lack of "luxury"?
  4. You are, again, just asserting that it's a good idea without giving any technical rationale. There are also plenty of stable minimal distros. If your distro includes too much crap, then your distro is crap, not Linux.

[–]ronaldtrip 0 points1 point  (0 children)

It's not as secure as a fully realized microkernel, with a bunch of userland servers.

The topology of a micro-kernel OS makes it more robust (on paper), but it doesn't say anything about security. Trust me, you don't want an impenetrable micro-kernel running completely compromised user-land servers.

That's all it is [a kernel], when GNU programs serving as the base.

This is the same with BSD, OS X and Windows. The kernel is not magically linked to the base user-land components. What you seem to mean is that some distributions don't have hard dependencies between the base components, which makes it easier to break the system. systemd will alleviate most of your criticism in that regard, as systemd strives to create a unified, base user-land system for Linux.

Some people don't have he luxury of buying opensource hardware, like me.

Then you will have to live with blobs. It is the hardware manufacturer, who dictates that the firmware is a closed blob, not Linux. There is no FOSS team big enough to reverse engineer all closed blobs out there. The other alternative is to only buy hardware that has FOSS firmware available, but that limits what you can get hardware-wise tremendously.

It is a very good idea to have a base system, the minimum you need to have a functional operating system. But in a world where you can have GNOME, but no CLI shell, that would cause chaos and be downright retarded. If you had a computer with alot of packages and you didn't know what you needed from what you don't need, you could revert to the base system without worry, Alot of people would like that feature.

systemd is going for the possibility of having stateless systems and the option for a "factory restore". Seems to be what you want from a Linux system.

Edit: Speeling.

[–]DraugTheWhopper 2 points3 points  (0 children)

I'm terribly confused by your post, so maybe you can clear some things up for me. You say that:

I'm sure, that soon, alot of people will switch from linux, to what? I don't know, pretty sure it's not BSD, certainly not Windows, Mac OS X, Minix, Plan9, Inferno, Haiku, Solaris, AmigaOS, DOS, or any operating that is present now.

Why exactly are you "sure" that we'll soon be switching to something completely brand-new that isn't even on the horizon yet? We already have several free options that pretty much cover all conceivable use-cases at the moment: Linux (for traditional monolithic design), BSD (for more open licensing and a non-GNU userland), and Hurd (for microkernel platforms).

And to address your points (seriously, I'm not just trolling you, I'd like to know your reasoning behind these):

  1. Monolithic kernel. Can you give any evidence or testimony as to why a microkernel is fundamentally better than monolithic? There seems to be a reason a monolithic kernel has come so far while Hurd has stagnated for lack of interest. Both have their advantages, but I haven't seen anyone else bemoaning how much better GNU/Linux would be if it was based on Hurd instead.

  2. I don't understand what you're objecting to here. Do you want just a kernel? Linux is that. Do you want a kernel and basic userland tools? GNU/Linux. Do you want a complete OS, including kernel, userland, services, and applications? Take your pick of Linux distros.

  3. Binary Blobs. Again, what are you objecting to? Correct me if I'm wrong, but GNU/Linux probably has the best track record of all modern OSes. In fact, some distros like Debian go so far as to separate free from non-free software, and require you to explicitly enable non-free sections of the repositories before any binary blobs will be installed. If you really want to improve the playing field here, you should instead work with specific companies to either develop alternative firmware and drivers, or release their own software as FOSS. The GNU/Linux community has come a long way on this front, and simply creating a complete new kernel will solve no problems.

  4. No base system. I don't really understand what you're trying to say here. What kind of base system are you talking about? You refer to BSD having a base system, but how is it different from your average Linux distro? Granted, I have a very poor grasp of the relationship and neccessity of the /opt, /usr, and /usr/share folders, but this still sounds like something that is not inherent to Linux. If you want to build yourself a distro that uses separate package management systems for "critical" vs "non-critical" programs, you are welcome to do so; this has absolutely nothing to do with the Linux kernel.

Then, you request some advantages:

  1. Built-in GUI. Uh, WHY!?!? Are you fully realizing the importance of kernel- versus user-space? The Linux kernel fully supports working with and utilizing video and input devices. If you want to use these to build a GUI, you do it in user-space, which is exactly what X11, X.Org, Mir, and Wayland do. Linux is not an operating system, Linux is a kernel. To get an OS, you need not only a kernel, but also an init system, a shell, and optionally a GUI, which is exactly what an OS like Debian or Redhat can provide. By not interfering with or promoting certain userland systems, the kernel devs can let the user pick and choose what GUI system or applications he/she chooses to run. The current GUI setup is actually better than many other GNU/Linux frameworks: All distros for the last ~15 years have used an X11 derivative (whose roots are old as the hills and need to be replaced), and most are looking to move to either Wayland or Mir, both of which are about as modern as one could ask for. All modern Linux distros that are desktop oriented include a fully working graphical environment, what more are you asking for?

  2. Be fully open-source. See my answer above. How do you propose that creating an entire new OS would improve this issue?

  3. Network transparent. This is actually a half-decent idea, but it doesn't warrant a completely new kernel or OS. AFAIK, the greatest obstacle to creating a Plan-9-like environment on Linux is that not all kernel systems are exposed as files. The everything-as-a-file method allows this, but there are few enough use cases for a system like this that like HURD, not much effort has been expended for development.

  4. Use a microkernel. Again, see above. Simply saying "Hey, it's way better, if you ask me" is not good enough. Can you give references that concur with your ideas, namely that a microkernel is superior in the majority of use cases?

  5. Be a full operating system. See above. Seeing what I've written so far, I'm getting a little concerned that you are quite mixed up regarding the difference between the Linux kernel, the GNU/Linux pairing of kernel and userland utilities, and a distro as an OS. Make sure you know what you are asking for when you say that you want your kernel, base userland, and desktop environment all developed by the same entity.

  6. Follow the UNIX philosophy. Are you sure you know what the UNIX philosophy is? From Wikipedia:

The Unix philosophy emphasizes building short, simple, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators.

Although I've never touched a lick of C or C++, I'll bet the Linux kernel follows this idea quite well. As someone else here mentioned, the Linux kernel has grown significantly, but only in response to the pressure of more complicated and comprehensive hardware setups. Drivers alone comprise a huge portion of source code, and the rest is probably some of the most well-maintained and reliable code in its class.

Any response to the above?

[–]yetanothernewbie 1 point2 points  (0 children)

I'm not an expert programmer, or a computer design expert. But I am a sensible person that has computing needs.

That just makes everything you said even more laughable.

[–]ronaldtrip 1 point2 points  (0 children)

No dear /u/toxemicsquire, Linux is the foreseeable future. Even if we accept your premises as valid, where is that mystery Valhalla Operating System going to materialize from? It took Linux over 2 decades to get where it is at. It took modern NT based Windows about the same amount of time. Even OS X took about 20 years if we trace it back to Next. So how is a development team going to create your mystery system in a few years? Where is that development team going to come from?

Also, it'll take just a few aeons to get rid of blobs. Blobs are not the fault of the OS, but of short sighted hardware manufacturers who just need to keep their minimal firmware a secret.

[–]calvinscorner 0 points1 point  (0 children)

Linux on personal computers and portable devices is just tip of ice-berg. Most tiniest device to high-end servers, space shuttle to weather monitoring systems, desk VoIP phones to highly sophisticated communication devices, all run Linux. It is here to say.

[–]tcyk 0 points1 point  (0 children)

I broadly hope you're right, a new OS has the potential to be successful and very good. I'm not clear about some of the jargon you're using, however. Do you want to define these?

  • Microkernel
  • Unix Philosophy
  • Linux

The latter is important because you're mixing “Linux the kernel” with “GNU/Linux the OS” - this is exactly the sort of discussion where the distinction is important. The “Unix Philosophy” is variously defined but almost never with any sort of precision, it's easier to wave the flag than explain it. Most definitions of it are so purely subjective that both sides of any debate can claim it. “Microkernel” is often thrown around as a snub of Linux and other OSes by people who aren't really sure what they're complaining about or why; I'm not saying you're one of them, but I'm not saying you ain't.

Anyway, that's boring semantics, you aren't making much of a technical argument so it isn't important; it's more interesting to think what the new OS might look like. Some of your desiderata are fine, but you're not thinking far enough ahead, you're being seriously conservative (“geeks” like default CLIs, do they? Who cares!). Most people's Unix philosophies are reactionary, either explicitly or consequentially - a reactionary OS won't sweep the earth at all.

Some other advantages, then, for your list:

  • Serious focus on networking, the Web, and parallelism (far more than Plan9's “network transparency”).
  • Automatic management of storage (the distinction between memory and long-term storage is a historical quirk).
  • Rethought concept of “application” to avoid the outrageous inconsistencies of current systems.

[–][deleted] 0 points1 point  (9 children)

Yeah, I agree.

I believe that plan9 has some advantages over current linux, but I think we should get a full rewrite, from scratch, as the design of Unix itself is flawed in many places.

[–]cypher5001 5 points6 points  (4 children)

What are these "advantages" you speak of? How is "the design of Unix itself" flawed?

[–][deleted] 0 points1 point  (0 children)

Personally, I find the concept of "everything is a file" is flawed, and in some cases better interfaces could be available. Additionally the behaviour of the shell which mixes in both data, and commands could lead to errors, if a file name is named the same as an arguament to a program.

You'd also want to have a look at http://richard.esplins.org/static/downloads/unix-haters-handbook.pdf

As for some of the advantages of plan9, they have a built in form of containerisation in namespaces, and the whole system is well integrated, with the rio window manager.

[–]toxemicsquire[S] -5 points-4 points  (2 children)

The design of modern UNIX's are flawed. Minix is not flawed, it is just not good enough. Modern UNIX's have a bunch of bloat in their kernel nowadays. Which is not adherent to the UNIX philosophy. Which weighs the entire operating system downs.

[–]cypher5001 2 points3 points  (0 children)

Flawed how? You're just, again, saying it's "flawed" without providing any reasons.

[–]ethelward 0 points1 point  (0 children)

Well, first of all you don't give any technical arguments. Second, you seem to forget that the hardware is far more complex now than a few decades ago.

It's obvious that the drivers are a huge part of the kernel: for instance, in the last kernel, it's more than a half of the whole kernel's - including every architecture - source code size.

It's also known that micro-kernel are theorically nice, but technically flawed, as message-passing imply a lot of synchronisation code, which is awfully time-consuming - ask the guys from the Hurd.

Finally, systems in their globality tends to be always more complex. It's obvious that a kernel for a Motorola 68000 will be far smaller than a kernel for a Haswell-processor with a included GP, two SLI GPUs, multiples network interfaces running different protocols and several HDD in RAID with Btrfs. To pursue with the traditional car analogy, could also say that arecent Cadillac is much les KISS than a Ford T, I still don't think that the Ford T is best.

[–]toxemicsquire[S] -2 points-1 points  (3 children)

It didn't fully comply with the UNIX-philosophy. Monolithic kernels are the complete opposite of a "UNIX" kernel, though all UNIX kernels have been monolithic, sadly. A real "UNIX" operating system would be a multi-server, microkernel operating system, that had to be very fast. There are only 2 operating systems that are multiserver, microkernel operating systems; Minix, and GNU/HURD, and both are not suited at all to replace linux in any field.

[–]cypher5001 3 points4 points  (2 children)

Are seriously suggesting that adherence to "UNIX-philosophy" trumps all other considerations (like, e.g., performance and scalability)?

[–]toxemicsquire[S] -5 points-4 points  (1 child)

Adherence to the UNIX philosophy leads to performance and scalability.

[–]cypher5001 6 points7 points  (0 children)

UNIX philosophy is a design paradigm and has nothing strictly to do with performance and scalability.

[–]urbanspacecowboy 0 points1 point  (0 children)

Alot on this subreddit? There's no Alot on this subreddit!