Ideal Operating System Project

When I resumed university this year after the summer break, I've found that most of my work on a computer has been through Windows (MATLAB, Solidworks, Altera Quartus, even Microsoft Word). I really want to do everything on Linux.

I'm trying to implement a Linux operating system with these capabilities/properties:

  • Build packages from source rather than binary;

  • Everything open source;

  • Refined, custom-built kernel with modules for my system only;

  • Wayland and no desktop environment;

  • Dynamic window manager (tiling and stacking) with transparency;

  • Virtualise Windows applications with graphics passthrough (as if I am gaming or using CAD programs natively);

  • Input mathematical equations and symbols in word processing documents (exactly like the Windows Mathematics Add-On, but perhaps a LibreOffice equivalent).

I believe Gentoo would be ideal for most of this setup (building from source, open source can be achieved using any distro, kernel can be manually configured).

However I do not know enough about Wayland, window managers, virtualisation or the mathematics input capability to fully incorporate these ideas.

Does anyone know any packages, tutorials or articles I should research to fulfil this project?

I have never been able to locate a decent Wayland/Weston or KVM/QEMU guide and I'm still trying to find a decent window manager. The i3 WM is one I'm considering at the moment but I'm keen to see your suggestions.

Wayland is a graphical display server, Weston is a compositor. The applications that haven't been ported yet, still run in XWayland, which is X11 basically.

Non-DE WM's don't use Wayland, they run on X11.

The only DE built from the ground up on Wayland, is Hawaii Desktop from the Maui Project, which is an Italian initiative. It's far from finished though, they are but a small team, but it certainly looks promising.

Gentoo is the most technical of linux distros. If you've always used Windows, you REALLY WANT to start out with another distro than Gentoo. The number of problems to solve along the way that you don't even know are problems because you've never used a real operating system before, will be so many, you'll go crazy.

Start out with a nice well-documented easy to use distro with a helpful community, like Manjaro (based on Arch), or OpenSuSE, or Mageia, or even Xubuntu, then move up the linux ladder towards Gentoo. Just take it easy, you can't expect to just switch to Gentoo without any previous advanced knowledge.

I've been using Gentoo with KDE for some time. In fact this was an installation guide I wrote for the forums a while ago:

https://teksyndicate.com/forum/linux/how-install-gentoo-linux/172377

I didn't realise Wayland isn't involved with non-DE WMs. I actually wouldn't mind still using a DE, but I want it to be the bare minimum, I find kde-base full of features I don't really use. Do you think more DEs built for Wayland will be developed over the next few years? I've never had a problem with X but Wayland seems to be the way forward.

Another project I am considering when I have more free time is to look into the LFS project and try to build something from its documentation. But for now I just want a minimalist OS and kernel, Windows functionality, a minimalist GUI and word processing functionality so I can write out engineering projects with mathematics symbols like on Microsoft's Word.

I'm sorry, I erroneously presumed that you didn't have any linux experience when you said you wanted to switch from windows.

Wayland support is a bit of an issue with non-DE WM's, and that means that applications that could use it, won't, which is a bit of a bummer. If you're using KDE though, you can probably appreciate the wayland functionality that has been added with the new version. My favourite Wayland DE project is Hawaii, I think it's on the right track, combining the simplicity and efficiency of something like XFCE with the graphics power of more straightforward wayland coding, but as I said, it's not finished yet, and pretty limited.

For mathematics projects and scientific word processing, forget MS-Word, seriously! Linux has LaTex, which is the industry standard for scientific document processing. You should really use that, it's far more advanced than MS-Word, even with extra software for scientific stuff. I've actually written scientific/mathematical extensions for different commercial word processors a long time ago when I was 12-13 years old, so I know what the problems are, and LaTex more than caters to all the needs of scientific/mathematical publications. It's simply unequalled, and I use it quite frequently as standard word processor for other things also.

A minimalist OS is something that you make, not something that you install. That's my opinion anyway. I still compile mu own kernels from time to time, because sometimes, I need a kernel cocktail that just isn't available out of the box from any distro. You don't have to use LFS to get all the benefit, in fact, my favourite distro to compile my own kernel into is Gentoo, although yesterday, I compiled kernel 3.14 from git in Arch, which is a very close second. Linus Torvalds has asked the community to build 3.14 asap because there were so many commits that it needs as much testing as possible, and we all obey the penguin in Linux right... but seriously, it works great on my test machine.

It's all about your config when you make, you have to check the right boxes. It's not that hard, you just have to make a note of what you really need in terms of functionality and firmwares.

There are several patchsets that I normally use when compiling a kernel:

- I normally start with a vanilla kernel from Linus Torvalds' git. I usually don't get my kernel from kernel.org. Something tells me that I'm better off cloning Torvalds' git...

- sometimes I use the brain fuck scheduler, especially on desktop/laptop machines;

- I always use grsec and pax on servers, never on desktops. Grsec is always a couple of kernel version behind, but not much. Iirc they're at 3.10 now;

- I don't normally use the Gentoo kernel as it comes, but I use a vanilla kernel and then patch it with linux-ice, which provides the same optimization as Gentoo normally does, plus it provides TuxOnIce support for energy efficient machines that can use it;

- A good combines patch set cocktail is linux-pf, the pf patch is a combination of TuxOnIce, Gentoo patches, and the brain fuck scheduler, plus some other stuff, like some experimental filesystem support and things. I usually go for individual patches though, it's been a long time since I used the pf patch set;

- A fast allround kernel, not the fastest, but a good balance between speed and functionality, is the ZEN project kernel.

An unpatched/vanilla kernel can be manually configured, it only takes like 2 minutes, and it's not that hard to do. Because I really like to always run the latest and greatest kernels on desktops, I usually configure it myself when making. The whole process of making a kernel based on the vanilla git clone, takes about 20 minutes on a fast machine, about 45-60 minutes on a power saving laptop. It takes less time than to compile Firefox with all trimmings in Gentoo.

Once you make your own kernel, you'll immediately see the enhanced speed of the system. It's just the way it is, and it really makes a difference. If you're on Gentoo, and you emerge all of your apps instead of installing the binaries from the repos, you can get quite a substantial performance gain. It's not for everyone though, there are a lot of kernel updates, and not many people care enough to compile their kernel every time Linus has a new kernel on his git. But for me personally, it's worth it. But then I'm crazy, I usually compile from source even in Arch or Mageia, I just like the snappiness of a system on which everything is compiled locally just the way I want it...

Can you link a guide to compiling a kernel for your personal hardware, I am trying to build a sort of cloud based OS similar to chrome, I use arch currently or is there a kernel that works well already? I would like speed and good battery from the kernel just imaging a chromebook on amd hardware xD 

@A5H

I find kde-base full of features I don't really use.

Long time Gentoo user here - Strange, I thought all the ricers were over at archlinux.org these days? You know, where Gentoo was 10 years ago... When Ebuilds used to be the current archey-farchey .sh-Pkgbuilds.

Thank you for posting a Gentoo install guide in the Teklinux forum. I hope that it will bring new blood to the community. Unfortunately, Gentoo usually gets over-looked by many linux users, mainly because of its technical nature and the general lack of understanding of what Gentoo "is" amongst the linux community.

I did notice that there are a couple of things you obviously forgot to add in your guides' abstract though;

First rule of gentoo RTFM.

Second rule of gentoo - install Gentoo.

Not sure what your Gentoo experience is but just briefly;

If you're setting up global use flags such as the example of Use Flags in your "Install Gentoo" guide, you're going to have a bad time, and pull in a lot of unecessary packages when you base compile, especially when you throw a DE/WM profile selection into the mix.

Portage will usually pull in requirements/dependencies for most packages with a few exceptions, but it's totally acceptable to use a basic profile as default to build upon. This will of course decrease you inital base compile quite substantially.

You could then start building from overlays/git as Zoltan mentioned above. This way you'll have a lean-machine with the most up to date dev/cycles/patchset available. There are plenty of overlays with everything you could ever need out there.

Keep in mind, it is best practice to customise packages independently for individual package use rather than using global use flags. This is important and necessary to track package breakage and have control over patchset/rebuilds. Global use flags are fine for a quick setup or when you don't plan on updating the system frequently.

Always prepare a default kernel to fall back on for when something goes wrong. Also, the majority of non-dev Gentoo documentation out there is for beginners and or outdated, so any experimental toys are going to need a lot of tweaking.

Hi thirdmortal,

  • When I saw Brennan Riddell post an installation guide on Arch Linux for beginners on the forums I thought I would share how I installed Gentoo the first time.
  • I must confess that when I wrote the guide, it was basically paraphrasing my install notes the first time I got everything working stable. I had no idea of the implications of USE flags, my kernel knowledge was extremely elementary and I was literally blindly following guides to get things to work.
  • I am still an absolute Linux beginner so thank you for explaining the USE flags in more detail. It's exciting to learn the intricacies of Linux operating systems, but quite a large journey to appreciate things like the compilation process and how it works.
  • Building packages from overlays seems to be the next concept I need to get my head around to achieve a truly refined operating system. And your point about customising packages independently rather than relying on global USE flags is something I have never considered.
  • Out of curiosity, what DE/WM do you use in your Gentoo setup? And which experimental toys do you recommend researching?

My Gentoo box is my work and play everyday machine, so I prefer a full desktop environment and run KDE.

As far as toys go, there are many, and this might help you find something you're interested in.  

linky

Do you game through a virtual machine to play Windows games or just play Linux games? That list of overlays will be useful, thanks.

I just play linux games via Steam etc.

Achieved the kernel (striped to bare minimum, but enough functionality for projects like virtualisation endeavours and weird network configurations), open source (nothing propriety in my system so far I think) and compiled packages (no binaries used so far) objectives.

Now I'm just researching appropriate programs for virtualisation (probably qemu), word processing (probably LibreOffice) as well as components of the desktop like window manager (awesome at the moment), file manager (thunar at the moment), display manager (SliM at the moment).

For now I'm using XFCE4 as a DE but might switch to nothing later. I'm going to wait for more Wayland support before going down that avenue if I choose to keep a DE.