What's a Distro Anyways? A quick look into Linux distributions - Linux

Hello World ,​ I am most definitely not the best person to be writing this but somebody's gotta.This will be my best attempt to create and maintain an ongoing description of different Linux Distributions, starting with the most popular and branching out from there. If you're new to Linux, or are interested in using it, practically the first thing you are expected to do is choose a Distro (shorthand for distribution) of GNU/Linux to use. Well if that's where you're at, or are looking to find out more about Linux distributions in general, I'm here to break down the pieces and start a tour of distros so you can find what beckons to you. This part can get a lot of people caught up thinking there's a right/wrong answer, really though, the joy of Linux is making it your own and once you know what you're doing, the make and breaks of a distribution will mostly be their software manager and it's repositories (database of applications). Unless otherwise noted, be aware that practically all distros are designed w/ daily use in mind and will likely come with or be easy to install a basic suite of software to meet those needs.
Spoiler: More About
Most beginner guides and resources for Linux are around Ubuntu and if you want things to be easy, just go download that and be gone, but what I've learned, and hope to share in these posts, is that Ubuntu isn't perfect for everyone, and much of the support for Ubuntu also works on other distros, maybe with a few different keywords. The out of the box experience of other distros may be more or less to your taste, and exploring what you do or don't like by jumping distributions is known as distro hopping. This thread may both be a resource for hopping as well as finding the single right distro for you right now.
I am not an authority on Linux nor would I consider myself an "expert," this isn't a complete guide to distibutions either. Anyone with more experience or knowledge than I is free to correct me or add info and I'll do my best to acknowledge and update. I'll also do my best to refrain from speaking too much on things I don't know about, and will denote when I'm unsure. Also stars will be placed like *Distro Names* to deote I know about but do not have firsthand experience with them. I'm writing this post as I have a slightly above average knowledge and understanding on the world of Linux and would like to share what I can for those just starting their journey, as well as take this experience to expand my own knowledge base. If you want more info on each and every distro, check out something like distrowatch.
1. A Dirty Introduction to Linux ​ For those regular to the XDA forum, a good point of comparison for a Linux distro would be the custom ROM scene for Android, where we have the OEM stuff like OxygenOS, OneUI, but then we see the custom scene starting from AOSP, and derivative Lineage, AOKP, and more complex derivatives like crDroid and Dirty Unicorns (RIP ). But there is a distinct difference in practice between custom Android ROMs and Linux distros, which is binary (application) compatibility. Just because an application was written/compiled for one version of Linux doesn't mean it won't be compatible with others, but generally speaking, that is not the expectation with pre-compiled apps for Linux. All the major distributions simplify getting the right version of the app through the package manager, the Linux equivalent of the Play Store or F-Droid, unlike Android though, everything is typically free .
For one reason or another, you may find an application is not available, or maybe it's outdated/doesn't work. The good news is because most Linux software is open source, you can just compile the source code within your distribution to make it run. Whereas with Android, there is platform uniformity through unified app stores like the Play Store, Linux is a bit more fragmented, but not in a way that has to affect your usability. It is in part due to the variety in Linux distributions that we find them to be more secure than their closed source conterparts, malware written for Ubuntu for example would have to be re-written to work on or sometimes be completely ineffective against say Fedora- or Arch-based distros.
Spoiler: Overview
If you're interested in just seeing what some of the distros have to offer, jump to part 2, but this is where I'd like to break down the different pieces to a GNU/Linux system so you will have a better understanding what's actually going on between distributions hopefully. Unlike a platform like Windows where different functions in the system are all tied to one another in ways we can expect only Microsoft devs to truly understand, and Android where the majority of the what you the user interacts with is designed by Google while using proprietary drivers pre-baked into your handset, Linux can be (and often IS) built piece-by-piece. I'm sure there is better language to describe the difference in philosophy but the words escape me. But from here, we'll be breaking down the bigger pieces distributions will customize and include to make the full experiences we expect from them. Keep in mind this is my best to give an overview of these different parts, but is by no means all that can be said. Every section and subsection following here until part 2 is a deep enough topic to make it's own post, or several posts on, describing the pros and cons, gives and takes of each component choice, and the actual user experience some of these components provide are best experienced firsthand. Just know these are where you find many of the similarities and differences between distros.
1.1 Fixed vs Rolling​ If there's one difference between two distros you should be keenly aware of, it's gotta be distinguishing distributions by their release patterns. Many distros release on a fixed cycle. They'll push out individual and important updates on a regular basis, but will wait for major releases to make large changes. That's where we see things like new features and user interfaces updated on these, when they have a new version release. Compare that to a rolling distro where each component of the system is updated as soon as an update is ready, meaning you may have a major version change to a component months before someone on a fixed distro, but you may get a major change that changes your workflow with little to no warning when running system updates. They both have their gives and takes, but basic rule of thumb is Fixed distros for reliability, Rolling distros for cutting edge features. Standard individual apps, like Firefox, or LibreOffice will update on regular cycles with fixed distros still, maybe not as immediately as a rolling distro usually though, we're mainly talking about OS level updates being either fixed or immediate.
1.2 The Kernel (GNU, and the Bootloader too )​ The heart and soul of Linux, the Kernel itself. Developed by Linus Torvalds, the Linux kernel is essential to the OS, and is what provides the most basic functionality of the computer past the BIOS and bootloader. You may have noticed people (including myself0 using Linux and GNU/Linux interchangeably, there's a very quotable meme here to summarize what this means:
Spoiler: CopyPasta
I'd just like to interject for moment. What you're referring to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.
Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called Linux, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project.
There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called Linux distributions are really distributions of GNU/Linux!
Put briefly, the Linux kernel handles many system level functions, while user commands and most other basic system level functions are built into what's known as the GNU corelibs and shell utilities, open source projects initially developed separately but are now essential to using a Linux system on a PC. And this right here is what makes desktop Linux (GNU/Linux) different from Android, which is only Linux based and uses many fewer GNU tools. The GNU Project itself is massive (and we'll touch on more applications later) it, includes the essentials for not only GNU/Linux but for any operating system trying to get off the ground. Sure, you can develop your own functions, but if they achieve the same thing as a GNU tool, why not use the tested and trusted libraries/programs that already exist?
Leading us to the most essential GNU tool when starting up your PC, essential to getting an OS up and running, the Bootloader. Android users who root or do any customization will already know a little what this is, but like most things for Linux, is typically GNU and open-source on a PC. There are non-GNU alternatives, but the most common Linux bootloader is GRUB (the GNU GRand Unified Bootloader). So why am I mentioning this? Well coming from any recent Windows PC, the only part of a bootloader you've seen would be maybe a Windows icon or your motherboards OEM icon as Windows is getting ready, on older PCs, you might have gotten a couple lines of text after your BIOS completed post (first part of turning on a PC, sometimes adjustments need to be made to BIOS for new OS and bootloaders to install), but nothing like GRUB. Sure, you can have it only flash on the screen but upon turning on, you need something that tells the computer where an operating system is and loading the initial programs that will allow it to start running and take the reigns from there. GRUB is compatible with practically all operating systems and will be essential if you intend to dual-boot with Windows still installed or if you have multiple distros on your machine. It loads the Kernel, required drivers, and initial system services needed to make everything else work, and once past the bootloader, with a standard distro, you'll be put into userland, where you can sign in, start programs, , do your computing things. There's very little difference between versions of GRUB besides visual, though there are ways you can customize it.
The Kernel which the bootloader loads is where we see the first main thing that vaaries between the distros, as there are different optimizations, behaviors, or even drivers within the kernel itself that need the distribution writers to configure for the best experience possible. For the most part though, even though the Kernel including with a distro is tuned for it, most Linux kernels can be used across distros, or the one's included in a distro are based off of forks of the Kernel for specific things.
Common non-distribution specific versions/forks are:​ - Linux Stable (All the standard kernel stuffs, with maybe a couple tweaks applied by the distribution, typically loading modules [extra instructions needed for different use cases])
- Linux LTS (Long Term Support, may be missing newer edge features but will get essential updates for years to come, may be missing some security patches, but more stable, and less attack vectors afaik)
- Linux Hardened (making changes that may slow down or otherwise negatively impact performance, but overall make the system less susceptible to attacks)
- Linux Zen (focused on making the user experience the best possible with improvements to memory management and resource management as a whole)
Exactly which kernel options will be available to you out of the box will depend on your distribution, but most will install a standard or LTS kernel and then give official options in settings, with unofficial options able to be installed by other means, often the package manager.
1.3 Free vs NonFree Drivers (Not related to money)​ This section can be summarized with this: Do you have a Nvidia GPU you need/want to use? Do you intend to watch copy-protected media? Then you need proprietary drivers, written and maintained by organizations that don't support the open source agenda but know their products must work with open source software due to it's prevalence in certain industries and product types. At least for the Nvidia driver, there is an open source alternative, but do not expect it to do anything besides the barest of basics when it comes to visual effects and performance. AMD and Intel both have open source drivers that are on par with their closed source Windows counterparts to my understanding.
1.4 The Package Manager (and Daemons incl. systemd )​ This is one of the more critical aspects of different distributions, how you get your applications, and how they are managed. Any component to a Linux system, whether it be a the settings menu or Firefox, is considered a package, and the package that handles other packages on a system level is the package manager. While many package managers exist, there tend to be the primary ones for a distribution base like Ubuntu/Debian has DPKG, Fedora has RPM, and Arch has Pacman. Some more universal package manager formats exist, like Snap, but they aren't ideal as they may lack the system integration expected of repository hosted packages.
A background application is typically denoted as a service, though in Linux a service specifically interacts to requests from other programs and the user, while a daemon typically handles only system level functions, which includes monitoring hardware and keeping services alive. The initialization of these daemons is done through the init system loaded at boot after the kernel. The most commonly used init system is systemd right now, but used to be sysv. The exact functions of these systems are too complex for me to go more in detail here, and would require I learn more than I already do, but what I can say is that systemd does much more than what sysv did and in doing so, has many more problems including reliability and security issues that other init systems do not have, though is used for the same reasons that it has problems: it's complex but handles a lot of functions you'd need more daemons, services, and packages to achieve otherwise.
1.5 The Desktop Environment (Including the Display Servers and Window Managers)​ Now we're in the territory of aesthetics and software suites, this is where we'll find both the most and least change between distributions,, at least from a beginner's perspective. Once you have a booted computer, you're typically greeted by a login screen, but even this is a variable your distribution chooses for you by default. Once your system initializes, it needs to communicate graphical information to you but that's not part of Linux or the GNU corelibs. Remember, when this stuff was developed originally, computers were more text than graphics, so a service was developed to display graphics, the Xorg server, evolving into modern X11, was the primary backbone of graphical UIs until a modern replacement known as Wayland began development. It's a server because it handles services, though is itself a type of service. Both have ongoing development though Wayland fixes many problems a 30+ year old program is bound to contain for compatibility. In creating a new standard though, Wayland has split development of the other key ingredient to a real graphical user interface. That said, as a user, typically it won't matter which you choose, but may find some oddities between the two in terms of display scaling and some display features working better in one or the other. I'd say though stick w/ what the distro recommends unless you have a specific issue, just trying to cover the differences.
Moving on, I said before Xorg (or Wayland) is the initial service so your computer knows hot to draw graphics, but it's a type of service known as a server waiting for other services to interact, so then loads a fully fleshed out library (either GTK or QT) to determine styling and such. Once the display server and library are designated and loaded comes the Display Manager, or in other words, login screen. From there one more major piece, the window manager, determines how you can actually manipulate the stylized applications. Other UI services will also be loaded such as system bars, docks, and universal menus. The combination of these things into more complete software suites is what's known as a desktop environment (or DE). All those details are picked out for you when you download a distribution, which will have a default flavor (the primary Desktop Environment they develop for and expect you to use) and flavors w/ other desktop environments that another internal team may maintain to assure compatibility and consistency between updates and versions. There's a lot of Desktop Environments and Window Managers, but they all do the same types of things and have some commonality between them between their QT or GTK origins and their reliance on Xorg or Wayland.
Some common desktop environments and window managers include:​ GNOME - (Premier GTK environment, many forks and derivatives exist, but is good for both touch and traditional mouse/keyboard, but doesn't function like most people expect at first. It can be used similarly to Windows or Mac, but isn't designed to and is best learned correctly before applying too many customization, otherwise why not pick a better fit?)
KDE - (Arguably the most advanced in terms of overall features and customizability, at least of complete DEs. Functions similarly to Windows, w/ some Mac like configuration options. More extensible than GNOME, but also less stable in my experience)
OpenBox - (A completely customizable window manager many other window managers are based on. Does not include all components of a DE, instead giving the bare basics for handling many windows, and leaving the DE experience down to additional packages and/or customization of OpenBox itself)
i3 Window Manager - (A favorite Tiling Window Manager. Always want to lock sections of your screens for specific apps, it may take time to get acquainted but this is for you)
1.6 Gaming (and Windows App Compatibility)​ Despite what many distributions claim, or how this information gets presented, you can expect nearly all distros to have similar compatibility save for the pre-configured programs to help with this. This is due to the same core component(s) across the board for this, Wine and Proton. These are compatibility layers, made to provide the necessary instructions to run binary applications with Windows specific instructions and using Linux/Unix/GNU functions instead. This is done by interpreting the DLLs or Dynamically Linked Libraries which are different app to app and may need different settings to work correctly. Using Wine (or gaming focused Proton), most programs will run without too much hassle but where distributions differ are in their included tools to simplify this such as WineTricks or PlayOnLinux.If you need Windows apps on the daily, and if those apps are reliant on peak performance as much as possible, Linux may not be right for that, not right now at least. But if you're willing to troubleshoot and compromise, you'll find that almost everything can be run in Linux with some tweaking. The worse case would be to look into Virtual Machines, or sandboxxed operating systems created, and with the right configuration and additional features, can be used in ways that make the apps run almost natively, though you are running Windows to maintain it so is only feasible on powerful enough computers, and will hamper battery life if used on a laptop in most scenarios. With this said, I don't recommend "gaming" distros of Linux unless there is something particularly special about gaming on it (there are a couple, but none meant for daily use). If a good distro has a seperate gaming version, I'll try to mention it, but keep in mind, most of the time you'll be installing bloat and you just need PlayOnLinux and WineTricks to get what you want out of it.
2. The Classics​ When getting into Linux, you'll likely find a few very commonly recommended or mentioned distributions, and nearly all other distros are based on these, or based off of the same base in Ubuntu's case. If you're new to Linux, you don't have to use these, but start here so the rest of the distro descriptions make sense.
Spoiler
2.1 Ubuntu​
Spoiler
The tried, the true, you can't go wrong when going with Ubuntu. But what makes Ubuntu so ubiquitous in the Linux community? From their regular long-term support distributions and wide range of utilities included with it, Ubuntu is the go-to fixed distribution for anyone looking for ease of use in Linux. They offer both an LTS version for users not wishing for regular upgrades, with every other version being a standard release, updated for a little while, but phased out much more quickly for each new release. The default flavor of Ubuntu has for some time now come with the GNOME Desktop Environment, pretty much the standard for Linux desktops. Due to it's size and corporate backing, you'll find prorgrams are easier to find, download, and sometimes even use on Ubuntu. This has the downside of including many more nonfree proprietary pieces of software, as well as less care put in to user privacy. That said though, more things work out of the box, and you'll find it comes with a simple to use graphical package manager which allows you to find and install applications with ease though. If you're still afraid of touching a computer terminal, Ubuntu is a safe choice as you transition away from propietary computing.
As will be the case with many of these distributions, Ubuntu isn't entirely responsible for it's non-GNU/Linux pieces, particularly, it used the Deb package format through installed through DKPG (the Debian Package Manager) usually using APT (Advanced Package Tool). Or in simpler terms, it's based on another Linux distro, Debian Linux. We'll give some more info on that later, but what that means here is that Ubuntu is built on top of what's come before, and has integrated what has come after for a feature-rich experience w/ consistent theming. In addition to the Debian package base though, there are also Snaps which are sandboxed applications that can be updated directly without the need of Ubuntu pushing out an update, but are not popular among many of the users. My understanding is that this is due to it being sandboxed, thus may behave different or not fit in as thematically as apps maintained by the official repositories.
On top of it being a well-themed, reliable OS, it comes in both user and server oriented releases w/ many official and unofficial flavors existing including:
Kubuntu - Ubuntu w/ KDE, or the K Desktop Environment. More Windows like, but also more customizable than the default GNOME
Ubuntu Mate - Created when GNOMEwent from version 2.x to 3.x, Mate (pronounced mah-tay, like Yerba Mate) is a more traditional desktop that can look and feel like Windows or Mac, but is a continuation of what GNOME 2.x was, a good looking, performant desktop environment
Xubuntu - Ubuntu using Xfce, a well rounded, simple desktop manager that's always felt like a bit of Windows XP and 7 combined to me, leaning more on the XP side. Primarily used as a stable desktop environment that uses minimal resources while including the features expected, like window snapping, animated window resizing, and a navigation bar.
Ubuntu Budgie - Using the Budgie DE, this is often considered to be closer to a Mac-like experience, but besides the central dock, has a lot going for it distinctly un-Apple like. The programs menu and widgets it includes makes this DE feel like it's own thing
Plenty more flavors exist but these felt like the most critical to mention. As we'll get to later, many distinct Ubuntu-based distros exist too, but just because it is based on Ubuntu doesn't make it a flavor of Ubuntu, which I hope to illustrate when comparing to Linux Mint later on.
Examples of
App install
Code:
sudo dnf install xxx
App Update
Code:
sudo apt update
System Update
Code:
sudo apt dist-upgrade
2.2 RHEL/Fedora​
Spoiler
Doing business w/ Linux? Well then this is probably the Linux distro most recommended for this. Red Hat Enterprise Linux (RHEL) is a commercial Linux distro aimed at the business market currently maintained by IBM. For those reasons, you'll find it's likely easier to get business oriented software on here as companies have come to trust Red Hat to make some of the most stable and secure software you can get out of the box with few compromises. Fedora is the open source free version of RHEL maintained by the community. You'll find more features and user centric programs with Fedora, but are binary compatible, or programs will work across the board. That said, even though RHEL is sold for real money, these distros are much stricter in regards to what's included being open-source and you won't be getting perfect hardware support out of the box if you have something like a Nvidia GPU or software needing proprietary drivers, and is probably the least recommended distro here for gaming on Linux. There's less customizations done than say Ubuntu as well, but you may find it more performant and reliable than Ubuntu partly due to this. These distros are released on a fixed cycle as well but unlike Ubuntu, there isn't a long-term support version, instead, to stay up-to-date, you must be willing to upgrade every 9 months or so. For this reason, Ubuntu server is much more popular for server situations.
Inside of RHEL/Fedora, you'll find the RPM package format with the DNF package manager to install. This is a package format incompatible with Ubuntu, Arch, and other distros not based off the same source code, but the visual package manager will appear quite similar between it and Ubuntu. If you're willing to download Fedora instead of Ubuntu, I'd hope you are a little more inclined to use the Terminal for package management as you'll find it's a lot easier to type a couple words than open a program, type, search, read description, click multiple times before finishing an install. One other interesting thing to note that's different between Ubuntu and most other distributions is that Fedora uses BTRFS by default for it's file system. This is in regards to how it stores and manages files, on Windows, everything is exFAT or NTFS usually, but in Linux, you'll find the most common is called ext4. Consensus seems to be that BTRFS is the best of these options, but ext4's limitations haven't been met and has been stable for longer, so we will not see BTRFS as the default all too often.
Examples of
App install
Code:
sudo apt install xxx
App Update
Code:
sudo dnf upgrade
System Update (multi-step via command line)
Code:
sudo dnf upgrade --refresh
##restart PC, REQUIRED STEP BEFORE ALL UPDATES##
Code:
sudo dnf system-upgrade download --releasever=xx ##WHERE xx IS THE VERSION NUMBER##
sudo dnf system-upgrade reboot
Similar to Ubuntu, there are flavors here, maintained directly by the main dev team instead of individual devs though, known as Fedora Spins. Similar to Ubuntu, you'll find both a KDE and Xfce spin, as well as many others. And like Ubuntu, there exists distros based on Fedora but distinctly different, though due to it's relative simplicity in presenting itself, there are far less of these. Because both Ubuntu and Fedora have a lot of money backing them, they are some of the best distributions for anyone new to Linux, but maybe you're not wanting some corporate entity in charge of maintaining your software. Maybe you're more inspired by the community co-creation aspect, or want to have more control over the fine details of how your PC works. If so then read on.
2.3 Arch​
Spoiler
Got that DIY attitude with the time and patience to learn new skills? Well Arch might be right for you. It's not building Linux from the ground up (we'll get there) but it has usually required you (the user) to not only configure your hard drive and manually copy files and such, though there are automated tools to help, and as of recently, now includes one of these. It sticks to the principles of KISS (Keep It Simple Stupid), which is to say it has all the simplest necessities out of the box, unfortunately not the simplest to install. You get a terminal interface, a rolling linux system, some networking tools, and that's about it. If you want a GUI, you have to install the GUI, if the default config of the GUI doesn't work for you, you have to customize the GUI. While this may sound daunting, it's not as bad as you think, partly due to my favorite package manager here, PACMAN! As will be the case with basically all the package managers here, it will help you get all the dependencies required to install and run an applications correctly.
On top of having this standard package manager, Arch users have another goldmine of applications you don't get any where else, the AUR, or Arch User Repository. While AUR apps are not installable the same way through pacman as other apps, you'll find many apps here that otherwise claim to only work on Ubuntu or Fedora, as well as many gits for programs that wouldn't make it into standard repositories. The up to this is you can almost always get something working on Arch with little trouble, the downside to this is that the AUR needs to be maintained, and sometimes you may find an out-of-date AUR listing and not realize you'd be better off cloning and compiling the git yourself. Or in the worst case, they may be pre-compiled or need PGP keys that the maintainer has not maintained, making it uninstallable. Luckily, it's really only apps that aren't necessary where this happens, but it's still frustrating nonetheless.
Because of it's barebones nature but wide compatibility, you can use Arch however you please, but you have to know the different pieces to make it work how you want. For example, do you want it to be a file server? Well, if you know what apps would make it a non-graphical file server, you can do that. Want it to be a network logger? Download the right applications again, and let it do it's thing. Because there's so little extra, you are less likely than on most other Linux platforms to run into performance issues, and can have servers with extraordinarlily long runtimes. But you can also bring it all down a lot more easily if you don't know what you're doing and either have incompatible packages or configuring them in ways that crash your PC, so user beware.
Examples of
App install
Code:
sudo pacman -S xxx
Package Update (since this is a rolling release, this will update both user and system apps)
Code:
sudo pacman -Syu
Package Search
Code:
pacman -Q "xxx"
An AUR helper (not recommended by devs, though used by many, including most Arch based distros including these
Code:
sudo pacman -S yay
##Once installed##
yay "xxx"
##enter your sudo password to proceed)
2.4 * Gentoo (More info in Section 6) *​
Spoiler
While Arch Linux is about keeping it simple while making you do a bit of the work, Gentoo is a distribution with an even more hardcore DIY philosophy having you make many more conscious decesions about your Linux. A big theme in the Gentoo community is building and compiling one's own software, this is not a beginner's OS by any means, and a solid, working knowledge of Linux and terminal navigation will be required. Due to this, details will be discussed much later on.
2.4.1 ChromeOS/ChromiumOS​ ChromeOS and ChromiumOS are linux distributions based off Gentoo designed for simplicity with the Chrome (or Chromium) browser taking center stage. If you're interested in Linux though, you'd be looking at ways to remove ChromeOS from your machine, not add it typically.
3. Debian-based? Debian based ​So none of the above caught your attention? Maybe you want the compatibility of Ubuntu but don't want as much proprietary software, or are not comfortable with a large company like Canonical creating and maintaining Ubuntu as they please. Well as stated earlier, Ubuntu is derived from Debian, which provides the base for packages and binary applications to run, meaning anything else based on Debian should have similar compatibility.
Spoiler
3.1 Debian (Buster)​
Spoiler
Starting off strong is the og, Debian itself. Currently on Debian 10, codenamed Buster, it is fast and reliable, with a focus on LTS (long-term support) rather than bringing cutting edge features. Similar to Ubuntu, it is easy to use proprietary drivers as needed, and is also released on a fixed model. That said, we haven't seen a major release in years, but many new features do eventually get added through incremental updates and you can use Debian Testing if you'd like to get some of the newer features you might find in something like Ubuntu or Mint
3.2 Linux Mint ​
Spoiler
Based off Ubuntu (which is Debian-based, so is Debian-based in a sense), Mint is a popular choice amongst people distrusting of Canonical but wanting a stable OS with intercompatibility basically guaranteed. The default Desktop Environemnt is one of the devs own creation, being a modified version of GNOME 3.x known as Cinnamon. It has a glassy almost Win7 look to it, but has evolved it's own design language as it's matured. That said, Mint is a little more privacy focused, and do a good job maintaining their repository to avoid the use of the oft-maligned SNAP package format Ubuntu pushes.
While the DE Cinammon is GNOME based, it offers greater customizability than GNOME while taking less resources. It has many of the same elements as GNOME but presented in a way that desktop users will feel more at home such as the navigation bar at the bottom and the start menu being much closer to Windows than GNOME 3.x it's based off of.
3.2 Deepin (I'd urge you to look at alternatives, maybe ok if you live in China but still better alternatives)​
Spoiler
You may find Deepin in your search for a Debian or Ubuntu OS that looks nicer, and by all means, Deepin is a beatiful system, originally based off Ubuntu and KDE, they moved to a Debian base and have developed their OS to so it's not just some souped up KDE on here, but it's own Desktop Environment. It has it's own dock, settings menu, terminal, text editor, etc. with KWin being the only part of the DE distinctly KDE. But even then, that's more in a technical sense than a usability sense as Deepin looks more like a Mac than anything we've discussed so far. That said, Deepin isn't completely open source though and was created and is most used in China. Due to the CCP, many are skeptical of this distro, though the main dealbreaker comes down to the repos being Chinese based so downloads are slow and unreliable.
The good news and why Deepin get's its own listing here is that it's DE is so striking, it's been brought to the other Linux distros including Ubuntu and Arch so you can get all the eye-candy with your favorite distro and none of the potential spying.
3.3 Raspberry Pi OS (NOT YOUR ONLY OPTION)​
Spoiler
Based on Debian, this is the official OS that the Raspberry Pi team maintains and recommends. If you have a Pi 3 or 4, feel free to use this, but a none GUI OS will probably be better for performance and storage space. Basically Debian with some Pi tools built in
3.4 SteamOS (DEAD)​
Spoiler
Valve's (1st) attempt at making a Linux OS for their licensed Steam Machines. SteamOS was available to download and install on other systems and was based on Debian as well, with Steam Big Picture taking control of the interface. It is not well maintained now and is not recommended, even with it's Steam integration. A new SteamOS could come up but the same thing could be achieved with any of these distributions w/ Steam installed.
3.5 * Kali Linux *​
Spoiler
Many know this as the hacker's Linux. It is based on Debian and comes with tools designed for penetration testing as well as a lot of other cybersecuirty software. More could be said, but if that's what you're into, I don't think you need me to tell you more, do your own research how to use this OS, it is not recommended for new users.
3.6 * PopOS! * ​
Spoiler
An Ubuntu derivative gaining a lot of traction lately, PopOS! is created by System76, the largest Linux specific computer company targeted at individul consumers. It is another user-friendly OS to operate and install, but unlike Ubuntu, doesn't want your data, and is more privacy centric. In addition though, there are performance centric features pre-configured here like having the Vulkan GPU drivers installed out of the box, but not much you can't do w/ Ubuntu as well, though they claim to have many other under the hood improvements. User satisfaction w/ PopOS! seems to be higher from my experience. Same can be said of Linux Mint though.
4. Pacman? Waka-Waka​So a fixed release cycle isn't right for you. Maybe you want all the cutting edge features Linux can offer and you want it now. Or maybe you want the endless user repositories of the AUR without the trouble of setting it up from scratch. If that sounds like you but Arch is still a bit above your head to setup and maintain, well then an Arch-based distro might be for you
Spoiler
4.1 Manjaro​
Spoiler
Based on Arch, but is much more like Ubuntu in terms of set goals and presentation. This is a highly recommended distro if you want the customizability of Arch, but aren't quite confident enough to format your own harddisks and initialize your bootloader/EFI partition.
4.2 Garuda KDE Dr460nized​
Spoiler
Like Manjaro, but a greater emphasis on aesthetics and performance. Uses the Linux Zen Kernel and BTRFS for optimal performance. These features do not reflect well in vitual machines, as compared to running on real hardware. While I don't specify flavors too often, this is their customized KDE flavor that is potentially on it's way to being it's own DE. While it combines many open source programs not exclusive to this styling, it's custom configuration of the Latte Dock makes it look extremely Mac like, while it's custom KDE Sweet theme put's it in a style category that's hard to match out of the box with these other distros. And one of the best parts is it's ability to pre-configure and add apps from the repo of our next distro
4.3 BlackArch​
Spoiler
Work in Progress, check back later
5. Grab Your Hats ​Stability and reliability is the cornerstone of the workstation orriented distributions based off the same base as RHEL and Fedora.
Spoiler
5.1 CentOS​
Spoiler
Work in Progress, check back later
5.2 openSUSE ​
Spoiler
Work in Progress, check back later
5.3 * Rocky Linux *​
Spoiler
This was created by one of the people behind CentOS, and my understanding is this will replace CentOS when that stops receiving updates (which is in the near future unfortunately)
6. I Don't Need You, I'll Do It Myself​If you don't want anybody telling you what you can or can't do with your computer and you're not afraid of getting your hands dirty, check these projects out.
Spoiler
6.1 * Gentoo *​
Spoiler
Work in Progress, check back later
6.2 * Linux from Scratch *​ A true DIY Linux project, requiring you to download, configure, and compile source code to build a Linux system from the ground up. Beyond just compiling a git, or choosing some of the package options, Linux from Scratch will guide you from beginning to end making your own one of a kind distro, though with enough uniformity as to be a proper guide and having compatibility with the greater Linux ecosystem.
7. Wait... This Isn't What I Signed Up For​OS Projects that are open source, potentially POSIX compliant, but aren't Linux. This is by no means complete and be aware many other interesting OS projects exist not listed here
Spoiler
7.1 * OpenBSD *​
Spoiler
Not Linux, but still like-Unix, openBSD is the continuation of BSD, a unix derivative. It is POSIX compliant and has runs GNU corelibs as well, but has a kernel all it's own. If you're looking for something different but still getting decent support, look into openBSD.
7.2 Haiku​
Spoiler
An open-source OS meant to be reminicent of BeOS, an OS developed through the 90s and was ahead of it's time. I'm unsure of the capabilities of a system like this in 2021 even if it were fully compatible on hardware, but an interesting project nonetheless. And if there are more practical applications of Haiku or BeOS, please tell me.
7.3 ReactOS​
Spoiler
Meant to be binary compatible with Windows, it's a clean room project designed to reverse engineer Windows. Still has a long way to go before being a usable OS for daily use, but is able to run on real hardware and run many applications up to the XP-era of Windows
Final Note:
I'm new to this type of writing and as said a few times, this is a work in progress, so feedback is appreciated. That said, I know this post is a little barebones for now, I intend to flesh it out with pictures, a list of typical unique (or distinct) packages each distro contains, and more. Also be aware I may not be able to update daily as I'd like to, but will do my best to have this fleshed out completely within a couple weeks.

Suggestion: add MX Linux (Debian-based) and openSUSE (Tumbleweed and Leap)

Good post @thats_the_guy, this will surely be helpful to Linux newbies (if there are any...)

thats_the_guy said:
Hello World ,​ I am most definitely not the best person to be writing this but somebody's gotta.This will be my best attempt to create and maintain an ongoing description of different Linux Distributions, starting with the most popular and branching out from there. If you're new to Linux, or are interested in using it, practically the first thing you are expected to do is choose a Distro (shorthand for distribution) of GNU/Linux to use. Well if that's where you're at, or are looking to find out more about Linux distributions in general, I'm here to break down the pieces and start a tour of distros so you can find what beckons to you. This part can get a lot of people caught up thinking there's a right/wrong answer, really though, the joy of Linux is making it your own and once you know what you're doing, the make and breaks of a distribution will mostly be their software manager and it's repositories (database of applications). Unless otherwise noted, be aware that practically all distros are designed w/ daily use in mind and will likely come with or be easy to install a basic suite of software to meet those needs.
Click to expand...
Click to collapse
Outstanding post!!!

Superb Post Bro !!
This help me alot to understand more of this "Realm"!
I think, you should add more explanations regardling of Apps inCompatibilites on several Distros----how & why ? or create a section about that.
Thanks!

can you make a list of distros that arent ubuntu based... All I see is some flavour of ubuntu kubuntu, lubuntu etc.

Dhairy said:
can you make a list of distros that arent ubuntu based... All I see is some flavour of ubuntu kubuntu, lubuntu etc.
Click to expand...
Click to collapse
He did touch on that a little bit but I'll list then for you
Debian based:
Debian
Ubuntu (and it's derivatives kubuntu, Lubuntu, etc.)
Mint
Pop!_os
MX Linux
Elementary
Zorin
RHEL based:
RHEL
fedora
CentOS
Arch based:
Arch
Manjaro
EndeavourOS
Then you've got independent ones that are close to the ones that are mentioned above like
OpenSUSE
Slackware
Alpine
Gentoo
A good place to see distributions and more specific information about them is https://distrowatch.com/
Hopefully that helps

This:
thats_the_guy said:
a lot of people caught up thinking there's a right/wrong answer, really though, the joy of Linux is making it your own
Click to expand...
Click to collapse
Exactly!
Try, break*, tinker, start again! Just do it!
* but do make backups!

SigmundDroid said:
Try, break*, tinker, start again! Just do it!
Click to expand...
Click to collapse
This is the way.

I use debian sid as my daily driver

Good post. I have used several dristo in the last few years and the only one I haven't tried is Fedora. Actually I run MX Linux, it's a compromise but it's good for me and it's good for my family.

Now i use Debian 11 bullseye btw

iamshubh69 said:
Debian 11 bullseye
Click to expand...
Click to collapse
What desktop do you use primarily?

SigmundDroid said:
What desktop do you use primarily?
Click to expand...
Click to collapse
You mean specs of my desktop or anything else?

iamshubh69 said:
You mean specs of my desktop or anything else?
Click to expand...
Click to collapse
Pretty sure he means Desktop Environment, like XFCE, etc

HipKat said:
Pretty sure he means Desktop Environment, like XFCE, etc
Click to expand...
Click to collapse
Then i use kde plasma

Yes, thanks for pointing it out @HipKat
Me, too
I just wonder what will be in 2023 with KDE and Debian 12 when no maintainer is found for QT6...
https://www.phoronix.com/scan.php?page=news_item&px=Debian-Needs-Qt6-Maintainers
...but then Plasma 6 doesn't seem a pressing mattter yet:
https://community.kde.org/Schedules/Plasma_6

SigmundDroid said:
Yes, thanks for pointing it out @HipKat
Me, too
I just wonder what will be in 2023 with KDE and Debian 12 when no maintainer is found for QT6...
https://www.phoronix.com/scan.php?page=news_item&px=Debian-Needs-Qt6-Maintainers
...but then Plasma 6 doesn't seem a pressing mattter yet:
https://community.kde.org/Schedules/Plasma_6
Click to expand...
Click to collapse
Lmao

iamshubh69 said:
Lmao
Click to expand...
Click to collapse
Better don't laugh your ass off so quickly... Srsly, am I overlooking something here? Wouldn't that pose a problem?
Eh, but you're probably right, why should we worry about the tomorrow-worries of other people Besides, unlike windows or mac, we can switch to anything and/or use things together...

SigmundDroid said:
Better don't laugh your ass off so quickly... Srsly, am I overlooking something here? Wouldn't that pose a problem?
Eh, but you're probably right, why should we worry about the tomorrow-worries of other people Besides, unlike windows or mac, we can switch to anything and/or use things together...
Click to expand...
Click to collapse
I've used XFCE for so long but I loved KDE-Plasma when I used it, too

Related

[Q] Advice for my project

So i'll be going to pick up my pi from ups tomorrow, and thought i would get somew advice from those wiser then myself.
The main function for my pi will be as a media player, from my external hdd. But i also want it to act as a server for the drive, allowing streaming and file transfers through my lan for both android devices and win vista/7 computers. In addition i would like it to serve as a network bridge for my xbox(i'm too cheap to spring for a wifi reciever) via ethernet. Also some light web broswing/youtubeing.
My big question is: Which OS would be best for these purposes, and what programs/packages would i need. Would i be better off with openelec or raspbmc. Or raspian with xbmc? This is somewhat new territory for me, and i'm anxious to learn. I would love to hear everyone's thoughts on what would work best
As you want to do different tasks I would recommend the standard Debian to you, because it's designed for general tasks. Special distributions like raspmbc are designed for one thing they are good at (my humble point of view )
I would install android on this device, of course with a costum rom spezial for the device... I hope some developers would do it Then I want buy me a Raspberry Pi too
Yeah if you wanted to have the option of downloading applications other than xbmc, like browser, games, etc. then i would suggest installing a Debian based system such as Raspian.
If you want a more automatic install and you are new to linux then use either Debian or Debian-based "Raspian"
Personally i like Arch Linux OS because it is the lightest distro out and most customizable, meaning you choose everything you want to install no bloatware unless you choose to add it. From A to Z you know whats installed. Great documentation out there as far as the fully manual install process.
@akakai, I couldn't disagree more. If you know what you are doing, you can do the same with Debian. I do it myself when I set up servers or desktops.
mihaum said:
@akakai, I couldn't disagree more. If you know what you are doing, you can do the same with Debian. I do it myself when I set up servers or desktops.
Click to expand...
Click to collapse
i didnt say you couldnt do it, but im saying Arch Linux if you have ever used it. Starts you out in a terminal with no gui whatsoever. the only way it comes... yeah in Debian you can do the same thing, but there is a GUI option.
Dont disagree on a non issue. Generally Debian is known for being preconfigured where as Arch linux is not preconfigured for you at all, unless you get a derivative of it.
Dont want to start anything, but add to the post by stating facts or how you can help the guy asking for advice not putting down what i have said that is actually accurate info.
For what 4Gb SD cards cost these days, get two or three and load them up with various distros and try them all out to your heart's content.
If you make a hash of something, reload the image and start again.
Eventually, when you have got it to do what you want, put it on to a bigger, more expensive card, if you need that amount of storage.
All images are for 2Gb SD cards. The Debian release has an option on initial boot up to expand the root partition to the available size of the disk. With Arch you will have to roll your sleeves up, and do it yourself first with Gparted Live or something similar.
Good luck!
Update: The Rasbian build now requires a 4Gb card minimum.
Advice for medium length project.
I am thinking about creating a cluster for scientific high performance computing, but I know close to zero on this hardware. where to begin? Start with creating a PC and expand from there? Any advice would be helpful for a multiyear project.

WP8 Malware?

I was just reading an article concerning malware on Windows Phone 8
Google News Search "Windows Phone 8 Malware"
From the article
"A 16-year-old security researcher from India plans to present a malware application for Windows Phone 8 at the upcoming MalCon security conference in New Delhi, India, on Nov. 24.
According to a brief description of the presentation on the MalCon website, it will show approaches and techniques for infecting Windows Phone 8 devices and will demonstrate how the prototype malware can steal contacts, upload pictures, access text messages and more."
Will this affect WP8 sales...it certainly doesn;t look good for this to happen so close to the launch...will we need to install AV software on our phones now too?
"Stealing contacts" is not that hard to do, since your app can read the contacts (you don't need any hacking to do that).
But reading + sending them to your server will make the marketplace instantly reject the app. So i doubt there's a problem.
I also don't see how you can infect a windows phone, given that .Net and Secure Boot make it almost invulnerable to everything.
rob243 said:
I was just reading an article concerning malware on Windows Phone 8
Google News Search "Windows Phone 8 Malware"
From the article
"A 16-year-old security researcher from India plans to present a malware application for Windows Phone 8 at the upcoming MalCon security conference in New Delhi, India, on Nov. 24.
According to a brief description of the presentation on the MalCon website, it will show approaches and techniques for infecting Windows Phone 8 devices and will demonstrate how the prototype malware can steal contacts, upload pictures, access text messages and more."
Will this affect WP8 sales...it certainly doesn;t look good for this to happen so close to the launch...will we need to install AV software on our phones now too?
Click to expand...
Click to collapse
Unless you unlock the device and install that software by yourself, i don't believe it ever gonna pass marketplace check before it get online.
Well I am interested to see how its done, apparently the guy will present the proof of concept on the 24th
There are ways to get past checks run in the Marketplace ingestion. This has been previously demonstrated with PoC malware on iOS, which has similar protections. Don't assume it's impossible, especially if native code use is permitted.
Please note that there is a difference between native and unmanaged code, don't mix them up.
Native code has always run on Windows Phone. Both C++ and C# produce native code. The first is un-managed, whereas the second is managed.
Visual C++, the one we use in Windows Phone is, just like C#, a managed native language. It achieves almost the same performance as the standard C++,due to the more optimized compiler. It is possible to run standard C++ on Windows Phone, but it is very difficult to do so because the marketplace knows which compiler you used to make your app (if visual studio is not there, no no). The marketplace also knows which API you use (no Windows Phone API for C++, again a big NO for the submission).
Now, the difference between native and non-native code...
Native code always ends up as 1 and 0. The very code you write in C# will, at some point, end up as 1s and 0s. Same goes for C++(managed or not). The difference between C# and C++ is that the compiler inserts some failsafes into the code (lots of ifs) to check for exceptions. This does not happen in C++.
So the path for C# is like this:
C# code -> MSIL->Native code which is run on your devices (compilation is either done at install time, or in the clouds).
the C++ code we use in Windows Phone has basically the same path! However, the more mature compiler and the "no-failsafe policy unless instructed to" that all C++ variations enforce make the code faster while less safer.
A non-native language will never, ever get the code a developer writes compiled to 1s and 0s.
Such an example are web programming languages, and Java.
For Java, the process is like this
Java code -> various stages of compilation>byte code -> JVM interprets bytecode and then sends 1s and 0s to the CPU to execute-> CPU sends 1s and 0s results back to JVM which displays the results.
As such, Java is somewhat safer than C#, but also a lot slower.
The advantage of using an interpreted language is that you know the hardware capabilities of the device beforehand, and optimizations can be made on the spot.
Microsoft, however, took the middle road with C#. They gave it all the advantages of an intepreted language (due to the MSIL step, the .Net always knows how hardware it runs on, so the MSIL will always target all the hardware capabilities for your CPU, GPU and RAM), while also running on native code, which makes it very fast. They also decided to push in the same failsafe checks Java inserts in its code. This resulted in a slightly slower code when compared to C++.
As a developer, I think the reason for dropping XNA development by Microsoft wasn't its speed. C# could easily run games, and the thousand XNA games we have on the marketplace bear testimony to that. They brought C++ on board because porting apps from one platform to another would be easier this way, especially for apps coming from android or iOS).
Anyway, having said that, the C++ we use on phones does not have the capabilities to access the hardware or the system the same way it has on desktop. It doesn't have more power than C# already did. It is just used there for other reasons. I don't think it will pose any threat to security. Desktop evolved in a different way. Microsoft learned the lesson of system protection a long time ago. They won't repeat the same mistakes now. It wouldn't surprise me if they actually had some sort of AV software built in, just to be sure.
There are so many factual errors in the above post I don't even know where to begin...
"Native" in this sense refers to apps written in a language which gets built ("compiled" although that technically involves compiling, assembling, and linking) directly into machine code ("0s and 1s" is a silly way to describe it, since *everything* on a computer, from programs to plain text files to MSIL or Java bytecode are all binary). Machine code means a binary sequence that the processor can directly execute. This is also referred to as native code, i.e. code which executes on the processor without needing an intermediary layer.
Although technically "native" and "unmanaged" mean different things, the difference is not what you think it is, and it's not very relevant to this discussion. It's entirely possible to have a native managed language ("D" was supposed to be such a thing; I'm not sure to what degree managed C++ qualifies) and to have intermediate-compiled unmanaged languages (you could, for example, distribute unmanaged programs compiled to LLVM bytecode; some systems might actually be doing so). However, MS themselves typically use "native" to mean "not managed", as evidenced by things like debugger modes.
These days, almost everything gets JIT (Just In Time) compiled to machine code even if the build tool didn't produce native machine code itself. This applies to .NET code (gets built as MSIL), Java (gets built to Java bytecode or Dalvik bytecode if on Android), JavaScript (doesn't go through a build process at all, but modern browsers JIT compile it to native before execution nonetheless), and many other languages. Interpreting is slow and requires a lot of memory overhead as well (you have to run the interpreter in parallel with the program actually being executed).
Although it is possible to invoke managed code from native code (only a little messy) and vice-versa (very common, see P/Invoke or COM interop for .NET, or JNI for Java), this should not be confused with them being the same thing. Yes, by the time they reach the CPU instruction decoder they're the same, but the process of loading the program, and the "runtime" environment that it interacts with, are very different indeed. Managed code uses a memory manager (hence the name), which takes care of things like defragmenting and freeing memory (via the garbage collector). This fundamentally violates a number of assumptions common to unmanaged code, such as that the address of data in memory will never change on its own, and that once allocated, a block of memory on the heap remains reserved until manually freed.
Another important difference is that managed languages must use abstractions of function pointers (for example, .NET delegates). In native languages it is possible (though generally unwise) to specify an absolute address (0x040C7F06 or some such) as a function pointer, and call that "function" (which results in the processor attempting to execute instructions starting from that memory address). In practice, this kind of thing is almost never done in PC software; it's bug-prone, completely un-portable, incompatible with security features like ASLR, very difficult to debug (this is the kind of thing that malware might use to make reverse engineering it harder), and there's typically no reason at all to do so.
However, the fact that it's *possible* is a Big Freaking Deal for somebody looking to work around a runtime security check. Consider this: Sliverlight on WP7 doesn't allow arbitrary LoadLibrary (or Assembly.Load, or similar) calls. The APIs available to your app are the ones included in its DLLs, and the ones in the Silverlight for WP7 runtime libraries. Even though the desired functions exist on the OS, and are even linked into program memory, you can't call them because there's no way to get a delegate for them. Now, compare this to native code, where you can literally just scan the code section of your app's memory until you find the entry point for the function you want, then treat that address as a function pointer and jump right into it.
Now, to be fair, I haven't actually written any official WP8 C++ yet. However, I can tell you that the trick mentioned above works just fine in Windows Runtime C++ on both Win8 and Windows RT, which are also supposed to lack APIs like LoadLibrary, and I therefore suspect it will work fine on WP8. Some experimentation is due, in any case.
GoodDayToDie said:
There are so many factual errors in the above post I don't even know where to begin...
"Native" in this sense refers to apps written in a language which gets built ("compiled" although that technically involves compiling, assembling, and linking) directly into machine code ("0s and 1s" is a silly way to describe it, since *everything* on a computer, from programs to plain text files to MSIL or Java bytecode are all binary). Machine code means a binary sequence that the processor can directly execute. This is also referred to as native code, i.e. code which executes on the processor without needing an intermediary layer.
Although technically "native" and "unmanaged" mean different things, the difference is not what you think it is, and it's not very relevant to this discussion. It's entirely possible to have a native managed language ("D" was supposed to be such a thing; I'm not sure to what degree managed C++ qualifies) and to have intermediate-compiled unmanaged languages (you could, for example, distribute unmanaged programs compiled to LLVM bytecode; some systems might actually be doing so). However, MS themselves typically use "native" to mean "not managed", as evidenced by things like debugger modes.
These days, almost everything gets JIT (Just In Time) compiled to machine code even if the build tool didn't produce native machine code itself. This applies to .NET code (gets built as MSIL), Java (gets built to Java bytecode or Dalvik bytecode if on Android), JavaScript (doesn't go through a build process at all, but modern browsers JIT compile it to native before execution nonetheless), and many other languages. Interpreting is slow and requires a lot of memory overhead as well (you have to run the interpreter in parallel with the program actually being executed).
Although it is possible to invoke managed code from native code (only a little messy) and vice-versa (very common, see P/Invoke or COM interop for .NET, or JNI for Java), this should not be confused with them being the same thing. Yes, by the time they reach the CPU instruction decoder they're the same, but the process of loading the program, and the "runtime" environment that it interacts with, are very different indeed. Managed code uses a memory manager (hence the name), which takes care of things like defragmenting and freeing memory (via the garbage collector). This fundamentally violates a number of assumptions common to unmanaged code, such as that the address of data in memory will never change on its own, and that once allocated, a block of memory on the heap remains reserved until manually freed.
Another important difference is that managed languages must use abstractions of function pointers (for example, .NET delegates). In native languages it is possible (though generally unwise) to specify an absolute address (0x040C7F06 or some such) as a function pointer, and call that "function" (which results in the processor attempting to execute instructions starting from that memory address). In practice, this kind of thing is almost never done in PC software; it's bug-prone, completely un-portable, incompatible with security features like ASLR, very difficult to debug (this is the kind of thing that malware might use to make reverse engineering it harder), and there's typically no reason at all to do so.
However, the fact that it's *possible* is a Big Freaking Deal for somebody looking to work around a runtime security check. Consider this: Sliverlight on WP7 doesn't allow arbitrary LoadLibrary (or Assembly.Load, or similar) calls. The APIs available to your app are the ones included in its DLLs, and the ones in the Silverlight for WP7 runtime libraries. Even though the desired functions exist on the OS, and are even linked into program memory, you can't call them because there's no way to get a delegate for them. Now, compare this to native code, where you can literally just scan the code section of your app's memory until you find the entry point for the function you want, then treat that address as a function pointer and jump right into it.
Now, to be fair, I haven't actually written any official WP8 C++ yet. However, I can tell you that the trick mentioned above works just fine in Windows Runtime C++ on both Win8 and Windows RT, which are also supposed to lack APIs like LoadLibrary, and I therefore suspect it will work fine on WP8. Some experimentation is due, in any case.
Click to expand...
Click to collapse
Well, I was just trying to get a "basic picture" of the thing, but thanks for going into much more details.
As I said, the C++ we use in Windows Phone, just like C# on Windows Phone, functions in a different way compared to Desktop or Tablet version(hell, with C# on desktop you can easily do the memory scan thing and find stuff in the OS, not only in your app, but that is generally not needed, since C# on desktop has a much boarder and less limited API) . Unlike the former two, you can't interact outside your application, because your application is sandboxed. Even if you did find the pointer to a system protected function, you wouldn't be able to do squat with it(the system protects itself). Which is why I said C++ can't do things C# already couldn't. In theory, yes you can do what you said, in fact, i expect it to be possible on rooted rooms, but for the average joe...well...it very unlikely to happen, unless he does something stupid.
As for the JIT story, well, yes, Java does use JIT. However, it does so because it doesn't know before hand on what hardware it will run. The same happens with C# and .Net on desktop, and this is due to hardware variations. Right now, for windows phone, the "JIT" occurs directly in the clouds, or at install time, as all Windows Phones (8) use snapdragon chips.
I didn't say there were no differences between the code C# and C++ create at run time. The abstraction layers inserted by the compiler fall under the "failsafes inserted in code that slow things down", which C++ doesn't have. Also the more mature compiler (C++has like 40 years of xp, C# barely made 10, and only 3 on Windows Phone), the "true native" (happy now?) code it generates (which is very close to assembler language) makes C++ faster than C#, but not fast enough nor safe enough to phase out C# entirely.
In fact, if we still have this board 10 years from now, we might C# eventually take down C++.
We should avoid getting into a technical talk in this thread. As you can see, there are non-developers coming by, and an answer such as yours will completely and utterly confuse them. What I attempted to provide was a very basic image they could understand, like JVM sending 1s and 0s to CPU is the same as JIT.
Let's wait and see what we will be presented with. Currently the only thing a WP8 Managed App can't do that was mentioned was reading the SMS-Storage. Everything else is part of the official APIs. It might be that similarily to several WP7 hacks OEM drivers are being used to gain access.
The only thing that would really worry me was if he was able to provide a way to install his Malware bypassing the Marketplace. It might be interesting though for the Jailbreak community, given that any jailbreak bascially means exploiting a security vulnerability to elevate the rights of the current process to allow for those unlocks.

How I, a hardcore Windows user, switched to Linux!

Switching to Linux after many years of using Windows can be a daunting task, but nowadays, it’s easier than ever. I just finished up four years of a computer science degree, for most of which I would switch between Windows and Linux. Windows was primarily my gaming operating system (as anti-cheat clients for games like Counter-Strike require Windows), but for anything else, Ubuntu was my go-to operating system. Prior to starting my degree, I was almost completely a die-hard Windows user (admittedly with experience in Linux server administration) and I would scoff at the thought of having Linux installed on my main machine.
However, it quickly became apparent that Linux in recent years is a whole lot easier than it once was, and the suite of applications you can install has grown dramatically. Gone are the days of needing to compile your own applications, for example, as there are now countless application repositories that you can access. If you think about it, even ChromeOS is a Linux derivative, which has more than enough software support for many people.
My personal Linux experience has basically always been with Ubuntu, but it has clearly improved across the board with package managers coming bundled with many of the popular distributions. Being a hardcore Windows user, I knew my way around a computer and the little that I did need to use the command line for I felt comfortable in using. Pretty much all your favorite applications are on Linux, and the ones that aren’t often have viable alternatives.
For the purposes of this article, I am going to be documenting my switch from Windows to Ubuntu. Ubuntu is a Debian-based Linux distribution and uses the Synaptic package manager, which is a GUI for the Advanced Package Tool, or APT. It also has built-in Snap support. The beauty of using Linux is the terminal, and in particular, how much control it hands over to the user.
Note: forcing yourself to get used to Linux isn’t something that you need to do, and it will come naturally over time. If you’re like me, you’ve used Windows machines all your life, and it won’t be easy to immediately transition over. Your computer is your computer, and making sure you can still do everything that you need to do is paramount.
Linux package managers​The biggest learning curve when switching from Windows to Linux will be learning how to use package manager. In most cases, the various Linux package managers all act and feel the same, and switching from one to another is easy once you’ve learned how to use one of them.
With Ubuntu, you can use the Synaptic package manager, or you can do what I do and make use of APT via the terminal. Applications can be downloaded and installed online as you would on a Windows machine in most cases, and the ones that require a bit more work often have instructions on how to use the terminal to install them.
Personally, I switched to just using the terminal and the apt-get command for nearly all cases.
Build your own​If you’re the kind of person to want to have complete control over their operating system (which likely explains why you’re considering switching from Windows), Arch Linux is an operating system that you basically will need to end up building yourself. It’s a pretty lengthy install process, but a great way to get to grips with Linux and how the terminal works, while also ensuring you setup and install everything that you need and nothing more. Depending on the device you’re using, it’s possible you may need to engage in a lengthy setup anyway in some way or another.
For me, installing Ubuntu on the Huawei MateBook 14 2020 required building the latest version of the Linux kernel in order to ensure complete compatibility, as Ubuntu at the time did not support the Ryzen 4xxx series of chipsets. Your mileage will vary on this front, as it’s entirely possible that your machine will work right out of the box with Ubuntu, once all drivers are set up.
Install Arch Linux
Software that I use​The biggest sign that Linux has come a long way is that pretty much every common application that you would use is now present on the platform. I play a lot of games, I listen to a lot of music, and I do some development. These are the three core necessities I had when switching, and nearly all of them have been met.
Gaming​
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Gaming on Linux is by far the most underdeveloped facet of the ecosystem, and it’s a mixture of developer choices and a history of poor graphics drivers that have left Linux in the current situation that it’s in. NVIDIA refused to contribute open-source drivers, and AMD had an open-source Radeon driver that was not as good as the proprietary alternative dubbed Catalyst. The only open-source NVIDIA alternative was Nouveau, which was developed unofficially by reverse engineering official NVIDIA drivers. These issues were exacerbated by developers not even building games for Linux, though that has changed more in recent years with the advent of the Steam PC (which runs Linux) and a growing number of Linux users on Steam.
There are a lot of AAA titles that don’t work on Linux, and likely won’t ever. All hope is not lost though, as a combination of Proton and Steam Play makes most Windows-only games at least compatible with Linux, even if they may not work perfectly. Proton is a fork of WINE, a compatibility layer for Windows applications to run on Linux, and it has a number of optimizations primarily focused on gaming to ensure compatibility across operating systems.
While an argument can be made that Proton’s existence encourages developers to not bother with implementing proper Linux support, it’s better than the alternative of games not being playable at all. Ultimately, gaming is no longer next to impossible on Linux machines, which puts it far ahead of where it once was. The biggest issue for me switching entirely has been that a lot of anti-cheat software does not run on Linux, and the two anti-cheat clients that I use for Counter-Strike are Windows-only. Aside from that, there’s no gaming incompatibility stopping me from using Linux all of the time.
Many die-hard Linux users will say not to support WIndows-only games, as that will force developers to release games on Linux. While that’s technically true, only roughly 1% of gamers on Steam are using Linux. Is the number growing? Yes. Is it still low? Also yes. The truth is that there isn’t enough interest for developers to want to care about Linux if it’s not easy for them to do so, and rather than alienating people from the Linux community just because they want to play Windows games, we should be welcoming them with open arms and showing them how to get around what may be the one deterrent they face.
If you’re going to ask someone to switch to an operating system that they don’t know and need to learn, and they need to no longer play their favorite games, that’s a pretty tall order for a lot of people.
Download Steam
Development​If anything, development on Linux is easier than on Windows. I use virtualization software in the form of Docker and VirtualBox, both of which are much easier to set up and use on Linux. Docker itself can be finicky to use, whereas the terminal in Ubuntu makes managing and switching between my containers a breeze. The environment variables are also much quicker to manage (in my opinion), meaning that it is easier to set up file paths for SDKs and commonly used project management tools like Maven.
I personally use IntelliJ as my IDE for Java, and PyCharm as my IDE for Python. Setting up LaTeX for document creation and editing was also much easier than on Windows, particularly when attempting to install all of the LaTeX packages that I use for my document templates. LaTeX is a collection of independent tools, and the LaTeX distribution that I use is TeX Live.
Download Docker
Download VirtualBox
Download IntelliJ
Download PyCharm
Download LaTeX
Photo editing​Sadly, Adobe hasn’t released any of its tools officially on Linux. There are two ways to get the likes of Photoshop working on Linux - WINE and PlayOnLinux, or VirtualBox. As already mentioned, virtualization technologies work well on Linux, and it shouldn’t be a problem to get working. However, it’s likely that performance will suffer if running it in a full-fledged Windows VM, particularly if your computer isn’t powerful. If you don’t need all of the advanced features of Photoshop, then you can switch to using GIMP for photo editing, as it does a lot of what Photoshop does.
Download GIMP
Video editing software​Most major video editors aren’t on Linux, and therefore, it’s likely you’re going to need to learn to use a new video editing software. I use MAGIX Vegas 16 for my video editing, and others might not use Adobe Premiere. If you don’t mind learning a new video editor, then the powerful DaVinci Resolve might be exactly what you need to transition over to Linux. What’s more, DaVinci Resolve is free, so you can try it out without needing to break the bank. Like anything, there’s a learning curve, but I found that having had experience with many different editors, I was able to pick it up fairly quickly.
Download DaVinci Resolve
Awesome right up!! I've gone 50/50 Windows-Linux but my distro of choice after trying many, many is Manjaro. It's very easy on computer resources and looks beautiful.
I'm hoping to do a full build of Arch this summer
Arch will be a walk in the park for you after learning Manjaro. You'll find that it's also more stable than Manjaro.
I switched to Linux a year and a half ago and haven't looked back since. Why you ask, well because I got fed up with windoze spyware. Same reason why I use a custom ROM without google trash apps though I kinda miss google maps but hey you can't have it all.
chomsky55 said:
I switched to Linux a year and a half ago and haven't looked back since. Why you ask, well because I got fed up with windoze spyware. Same reason why I use a custom ROM without google trash apps though I kinda miss google maps but hey you can't have it all.
Click to expand...
Click to collapse
XPx64 was Window's zenith with W7 being it's last good OS. I run W7 and have a XPx64 machine.
Zero faith in W11, the fail runs strong in MS.
So sick of big sister wannabes.
I helped my brother install Linux Mint MATE in his 8 year old laptop (dual-boot) and it was 5 to 10 times faster than Win10 and since then I have never even thought about using Windows 10.
#Linux4Life
Much emphasis has been placed on open-source, and I think each person approaching the use of Linux on their PC should consider unpacking this angle because there's lots to think about here. For instance, open-source doesn't necessarily mean free, and neither does it mean best in practice. Nvidia may have refused to release open-source drivers for their GPUs, but they're also spent the last year and a half working with Valve and a number of large hardware manufacturers to make their tech accessible as well as viable for gaming in Linux. Without these two companies providing this support, and the updates they continue to provide, this latest push, the most advancement made towards Linux becoming a viable platform for gaming, would not exist. And their software remains proprietary still. So does the open-source philosophy really provide much draw for non-Linux users to take the plunge?
On the note of users coming from other operating systems, I think it's perfectly reasonable to consider anybody in this group the same as drivers who don't know anything about the mechanical workings of an automobile yet still manage to use them for their intended purpose. Learning to service a vehicle yourself in order to perform maintenance or repairs is to develop a technical skill that many if not most people will never do. For most, the computer is a technical tool fit to facilitate achieving an objective. They don't fancy taking on the role of the mechanic any more than they see themselves becoming a veterinarian to provide care for Fido or Spot. Until Linux's user-experience can be as guided and polished as the simpler alternatives, it will remain the technical user's OS, primarily used by enthusiasts and programmers/developers.
sammiev said:
Arch will be a walk in the park for you after learning Manjaro. You'll find that it's also more stable than Manjaro.
Click to expand...
Click to collapse
I appreciate that. Hopefully before summer ends, I can get started on it
Clamtacos said:
Until Linux's user-experience can be as guided and polished as the simpler alternatives, it will remain the technical user's OS, primarily used by enthusiasts and programmers/developers.
Click to expand...
Click to collapse
This is the number one reason why I use Linux in the first place. I stopped compiling ROMS with the HTC-Evo - which was the first time I set up a Linux build. The first computer I ever bought was a Win 95 Machine (I actually had an old DOS machine with Win 3.1 on it for a short time) and from the beginning, I jumped right into being "the Mechanic"
I JUST started with Ubuntu the other day. I am finding getting connected to my NAS devices takes a LOT of time. Wondering what I need to change/do to make it as fast as Windowz. Just a 2X click and I'm there.
I also can't seem to find a setting for how I want to have my desktop. I don't want a wallpaper just a solid color background.
I'm 70 and it's like starting all over again with a PC. I KNOW my way around Windowz, after all been on it since 1988 and MS DOS before that. So I'm somewhat savvy but this is a whole new world.
flhthemi said:
I JUST started with Ubuntu the other day. I am finding getting connected to my NAS devices takes a LOT of time. Wondering what I need to change/do to make it as fast as Windowz. Just a 2X click and I'm there.
I also can't seem to find a setting for how I want to have my desktop. I don't want a wallpaper just a solid color background.
I'm 70 and it's like starting all over again with a PC. I KNOW my way around Windowz, after all been on it since 1988 and MS DOS before that. So I'm somewhat savvy but this is a whole new world.
Click to expand...
Click to collapse
First, which Distro are you using and second, Google/Bing/Duck are your best friends. On almost any Distro there are packages you can install that will allow you to tweak your settings, download other wallpapers, fonts, etc. That;'s one of the best parts of Linux - it's customizable to anyway YOU want
Over the years I've kept looking at using Linux instead of Windows. But every time I go back to Windows for the following reasons:
I find the Linux system management arcane. I don't want to be a systems manager. I want something as "easy" as Windows' Control Panel/Settings
I use Microsoft Office products and OpenOffice is, for me, not a suitable alternative, especially not for Excel
I use iTunes for my music
I've tried Wine but found it clunky and slow.
I really like the scripting Linux has (I use lots of shell scripts to get certain tasks done) so I use Windows Subsystem for Linux. But that's a far cry from a full-fledge PC.
Clamtacos said:
Much emphasis has been placed on open-source, and I think each person approaching the use of Linux on their PC should consider unpacking this angle because there's lots to think about here. For instance, open-source doesn't necessarily mean free, and neither does it mean best in practice. Nvidia may have refused to release open-source drivers for their GPUs, but they're also spent the last year and a half working with Valve and a number of large hardware manufacturers to make their tech accessible as well as viable for gaming in Linux. Without these two companies providing this support, and the updates they continue to provide, this latest push, the most advancement made towards Linux becoming a viable platform for gaming, would not exist. And their software remains proprietary still. So does the open-source philosophy really provide much draw for non-Linux users to take the plunge?
On the note of users coming from other operating systems, I think it's perfectly reasonable to consider anybody in this group the same as drivers who don't know anything about the mechanical workings of an automobile yet still manage to use them for their intended purpose. Learning to service a vehicle yourself in order to perform maintenance or repairs is to develop a technical skill that many if not most people will never do. For most, the computer is a technical tool fit to facilitate achieving an objective. They don't fancy taking on the role of the mechanic any more than they see themselves becoming a veterinarian to provide care for Fido or Spot. Until Linux's user-experience can be as guided and polished as the simpler alternatives, it will remain the technical user's OS, primarily used by enthusiasts and programmers/developers.
Click to expand...
Click to collapse
Yeah, I Agree with U.
Non-Commercial licenses have its own limitation too.
But, commercial and non-commercial licenses have given us "a color" in our life!
HipKat said:
First, which Distro are you using and second, Google/Bing/Duck are your best friends. On almost any Distro there are packages you can install that will allow you to tweak your settings, download other wallpapers, fonts, etc. That;'s one of the best parts of Linux - it's customizable to anyway YOU want
Click to expand...
Click to collapse
I WAS using 20.04 but got so frustrated I had to give up. I couldn't figure out how to add a folder to the desktop and then put shortcuts in it. Made a folder but I couldn't put anything into it. Then I played some STEREO 2CH videos and only the left side would be audible. Sound settings are so minimal....using the slider for L/R balance did nothing to change it. I guess I'm just too dang stupid to figure it out.
I'm not bad mouthing it, believe me. It's just not the right distro for me, I guess.
flhthemi said:
I WAS using 20.04 but got so frustrated I had to give up. I couldn't figure out how to add a folder to the desktop and then put shortcuts in it. Made a folder but I couldn't put anything into it. Then I played some STEREO 2CH videos and only the left side would be audible. Sound settings are so minimal....using the slider for L/R balance did nothing to change it. I guess I'm just too dang stupid to figure it out.
I'm not bad mouthing it, believe me. It's just not the right distro for me, I guess.
Click to expand...
Click to collapse
Hey i get it too. But, I can say, depending on where you are at with updates, 20.04 has been getting many updates over past few weeks.
i can say gamers and audio files are folks that use a program for the needs. should look at snaps for a Real Hi-Fi player. (Some browsers and some players are just not good enough)
Hang in there... from what I have been reading, the next Ubuntu LTS seems to be rather nice, right from the start. Just need the right software for what you want to do
I JUST started with Ubuntu the other day. I am finding getting connected to my NAS devices takes a LOT of time. Wondering what I need to change/do to make it as fast as Windowz. Just a 2X click and I'm there.
Click to expand...
Click to collapse
I use Ubuntu from time to time. For mounting nas shares I use a script file with mount points which I execute after boot. Example line for the script below. Make sure you create mount points first (for example /media/Tv-shows)
sudo mount -t cifs //192.168.1.123/data/TV-Shows -o uid=1000,username=admin,password=password,rw,nounix,iocharset=utf8 /media/Tv-Shows
I'm sure there is more (maybe easier) ways but this is how I do it
I guess I'm just spoiled. I don't feel I should have to do a script to access my NAS. They showed up but were not accessible in Mint or in Ubuntu. I installed Zorin? and access to them and could make book marks. Somehow, I still felt limited. So I just threw in the towel and went back to Windowz. Too old to give a dang and too set in my ways I guess. Thanks for the info and the help but it's just not gonna be an OS for me.
I just dual boot so I can have the best of both worlds. Thanks for sharing.
sammiev said:
Arch will be a walk in the park for you after learning Manjaro. You'll find that it's also more stable than Manjaro.
Click to expand...
Click to collapse
Um no
Arch is obviously more stable then manjaro, but it definitely won't be a walk in the park (especially the installation) after using an OS with pre-included apps
I'd suggest using Arch after mastering the Debian based distros (like ubuntu or mint) or experiment with manjaro in a vm (better in my opinion)
NullCode said:
Um no
Arch is obviously more stable then manjaro, but it definitely won't be a walk in the park (especially the installation) after using an OS with pre-included apps
I'd suggest using Arch after mastering the Debian based distros (like ubuntu or mint) or experiment with manjaro in a vm (better in my opinion)
Click to expand...
Click to collapse
I'm long past Ubuntu and Mint and I've watched a few walk-throughs for building Arch from code. It'll be a project but one worth taking on

A noob-friendly guide to Linux!

Switching over to Linux can be daunting, but pretty much everyone will run into the same problems at some point or another. That’s why we created this handy guide that you can reference for the most common problems and fixes!
What is Linux, exactly?​“Linux” as we know it is actually comprised of different things, and technically referring to “Linux” means specifically referring to the Linux kernel. When we say “Linux”, we are actually referring to a wider family of operating systems that all have one thing in common - the Linux kernel.
The Linux kernel is underlying each and every Linux distribution, but many will conflate “Linux” to include other aspects too, such as the shell and the ability to launch applications. It’s not a distinction that hugely matters to anyone but the computer geeks, but it’s worth noting that “Linux” isn’t actually the operating system, but people often are referring to an operating system when they say Linux.
What are Linux distributions? What are the most popular “distros”?​Linux distributions are collections of software that are all based around the Linux kernel. Distributions are commonly split into three major families (though there are more) - Debian, SUSE, and Fedora. From these three families, there are derivatives that exist in each. For example, Ubuntu is a derivative of Debian, but Linux Mint also started as a derivative of Ubuntu. Therefore, Mint is Debian-based, but it has features and software from Ubuntu that doesn’t exist in pure Debian.
If it sounds complicated, that’s because it kind of is. Thankfully, the complexity doesn’t hugely matter. Linux distributions have a lot of overlap, and while derivatives of each other exist, many of them spin-off and become their own thing over time. Mint being a derivative of Ubuntu isn’t really something that matters anymore, as it has become so unique that it no longer gets a huge amount of its identity from the base that it started from.
While most people would likely say to try out different distributions to see what you like best, you can look up reviews on YouTube or online of different distributions to get a feel for which you’d like best. Here are some of the most popular distributions that you can look up! There are many more out there too, so be sure to lookup more of them if none of these suit you.
Ubuntu
Mint
openSUSE
Manjaro
Red Hat Linux
CentOS Stream
Who created Linux?​The creator of Linux is Linus Torvalds, though it has been maintained and developed by many talented developers over the years. In fact, in recent years, more and more companies have stepped up to contributing large swathes of code to the kernel, likely due to self-interest as Linux is used in practically everything in some way or another.
What can I do with the Linux source code?​The Linux kernel source code is licensed under GNU GPL, meaning that any changes you make to the source code should be published. With this license, you can freely copy, change, or distribute the source code, and this is why smartphone manufacturers are obliged to release kernel source code with every release.
How much does Linux cost?​Linux is a free operating system, and while a developer can charge for their operating system, most don’t. Some survive off of voluntary contributions and the sale of additional resources. For example, Red Hat Linux sells additional software packages that have documentation and web support for 60 days, with the lowest package costing $30. These organizations also often offer enterprise packages, which usually cost significantly more. As well, when downloading Ubuntu, you can choose to make a voluntary donation and choose where exactly your money goes. These are just a couple of examples, and there are so many different Linux distributions that many of them likely have their own monetization ideas.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
What can I use Linux on?​Pretty much any device can run some form of Linux, though it depends how “open” that device is to doing so. Famously, the Nintendo DS could even run Linux with the use of a flashcard, though it couldn’t officially do so without breaking Nintendo’s copy protection. In most cases, all there needs to be is some way to run your own code on a device, and it should, in theory, be possible to run Linux on it. This is obviously also dependent on the distribution used. The United States government even used a cluster of PlayStation 3s running Linux to build a supercomputer.
Will I be able to use X application if I switch from Windows?​Nearly all applications have a well-made Linux equivalent, but for the few that don’t, you can use Wine and PlayOnLinux to execute most (not all) Windows applications natively on Linux. Wine is not an emulator (and that’s what Wine used to be an acronym for!), but rather a compatibility layer that translates calls as they are made in an application. Wine is the basis for Proton, a compatibility layer developed by Valve that makes many AAA titles playable on Linux. Games like GTA V and Cyberpunk 2077 are perfectly playable on Linux distributions with the use of Proton.
X is broken or does not work correctly​As in all cases, the best thing to do on a Linux machine if something isn’t working is to ensure that all of your drivers are up to date. Googling whatever peripheral or device it is and “Linux” as a suffix will likely yield useful results, particularly if the device you are trying to use can be problematic. In rarer cases, you may need to build and install your own Linux kernel instead, if the chipset in your device is the issue.
Great post, Adam. Linux is just superior to Windows 10 in every way, whether it's customization or performance, Linux is just the best, no doubt in that, period.
Thank you for getting the conversation started on this.
I'll be the first to add a "but" ... Sorry. ( ^.^ ;
Red Hat Linux, or rather RHEL nowadays ( the E is for enterprise ) is a commercial distribution targeted to the corporate world mainly. Companies, in short. I wouldn't recommend anyone starting with Linux to check that one out to begin with.
You should probably mention Fedora instead. ( From which RHEL eventually comes anyway. ) Fedora offers plenty of ready-to-use variants with live usb downloads, perfect for any beginner who wants things to "just work", or simply test and play around, even in a more similar / traditional graphic environment ( more like Windows ) than other Linux graphic desktops, say using Cinnamon for instance rather than KDE or Gnome.
Arch base and Debian SID OS has been great to me over the years.
Used and tested likely all Linux OS but been active for years on the following.
Archlinux
ArchLabs
Debian Sid
SupremeKing5810 said:
Great post, Adam. Linux is just superior to Windows 10 in every way, whether it's customization or performance, Linux is just the best, no doubt in that, period.
Click to expand...
Click to collapse
Pretty sure hardcore gamers will not agree, but it's getting closer every day
Great post !!
Under " Will I be able to use X application if I switch from Windows? ", You could add Running windows in a virtual box environment on Linux as another alternative.
Superb Bro !
I wanna add one thing:
What can I do Linux For?
--For recovery activities on non-bootable devices
--For Forensics purposes
--For Data Migration
--For a Daily Basis OS (work, hobby, gaming, entertainment, study, hacking, researching..)
--Another "For" that U could imagine it !
Nice one, but sometimes a little bit inconsistent.
On the section "Distributions": Fedora and Suse are both based on rpm package format (Red Hat). Later on you mention Manjaro, which is based on Arch, which you didn't mention in the first place.
I am tired of Windows and really considering to go with Linux.
What distro would you recommend for someone with no Dev knowledge?
orb_selektor said:
I am tired of Windows and really considering to go with Linux.
What distro would you recommend for someone with no Dev knowledge?
Click to expand...
Click to collapse
Linuxmint
I do not use it myself, but for a beginner it is superb.
What the Linux Mint developers have pulled off is nothing short of astounding
Jack Wallen's eyes have finally been opened to how truly impressive Linux Mint is. Read on to find out why he believes the developers have perfected the desktop operating system.
www.techrepublic.com
Download the iso file and write to a USB (8Gb) stick following the instructions. Then boot your computer from the USB stick and have a play without touching your Windows install.
orb_selektor said:
I am tired of Windows and really considering to go with Linux.
What distro would you recommend for someone with no Dev knowledge?
Click to expand...
Click to collapse
Bro, i would suggest you several distros:
-Zorin OS 16
-Elementary OS 6.0
-Linux mint
-UE (ultimate edition) distro
edit:
To folks like me there are 3 primary reasons Linux is my operating system of choice, since 2001, creating devices notwithstanding....
1 - stays the hell out of my way - at all times, my hands are not tied
2 - no financial obligations, no ridiculous subscriptions, nobody owns my machine but me
3 - produced and maintained by the world, not some company
4 - privacy, in tact
5- security, an ongoing process made simple and workable because Linux
6 - everything is a file
Back in the day I wrote a debian tutorial site that gained a lot of popularity. Of course, my aim was to help Windows users leave that pile behind and get with Linux, but, alas, it was far more popular with the Linux crowd. Poke around, it may be of some value even today, which, brings me to yet another terrific reason for using Linux - just about everything on my old site is applicable today, it still works, though it's from the 00 - 10 decade.
EDIT: Actually, my swith to Linux was in the late '90's for the express purpose of running a web server. There was no way I was using IIs or Windows for such a purpose. I was hooked immediately.
I want to talk about one very cool aspect of using Linux: aliases. An aliases is a handy command that stands in for another, longer or messy one, maybe a thing you do a lot and don't want to write a script for.
So, as an example, I have a handy alias for using my favorite package manager to - clean, purge, and or fix the apps on my system. A few years ago this command was more necessary than it is now, but, I still use it.
Have a look -
alias cpf='sudo aptitude clean && sudo aptitude purge ~c && sudo aptitude -f install'
If you look at that line you can easily see what's going on. The command I want to run is: sudo aptitude clean && sudo aptitude purge ~c && sudo aptitude -f install
Well, that's a lot to type. Pffft. Instead of typing all that noise I now only have to type: cpf
EDIT: aliases are run in the terminal. Seems obvious, I know, but, just to avoid confusion.
If you're running Linux right now and you are hearing about aliases for the first time - happy birthday!! You're gonna love this. In your ~/ (which the machine reads as /uname/home/) you will find a file called: .bash_aliases. If it's not there, for whatever reason, just make it. In a terminal just do: nano .bash_aliases.txt, enter. Now, you're in the file, add your stuff. When you're finished, to save and close do: ctrl+x, y, enter.
Here are a few of the aliases I use on my machine, in no particular order or grouping:
alias clients='sudo nmap -sn 192.168.1.0/24'
alias ns='sudo netstat -alnp --protocol=inet'
alias wpupdate='~/development/update.sh' - this is handy. it uses wp-cli and points to a little script I wrote to make updating/upgrading wordpress sites better. to use it - in a terminal I type - wpupdate, and then it asks me for the subdirectory, I type that in and bam all updates occur.
If you are using wp-cli locally, be sure to add this to your aliases file:
alias wp='sudo -u www-data wp'
alias cdv='cd /var/www/html && ls -la'
alias lamp='sudo systemctl start apache2 php7.4-fpm mysql'
alias aphp='sudo systemctl restart apache2 php7.4-fpm'
alias lampkill='sudo systemctl stop apache2 php7.4-fpm mysql'
alias pikill='sudo systemctl stop pihole-FTL'
alias ftl='sudo systemctl restart pihole-FTL'
alias mysql='sudo mysql -u root -p'
alias ownit='sudo chown -R www-data:www-data'
alias findbig='find . -type f -exec ls -s {} \; | sort -n -r | head -5'
alias cleancache='sudo /sbin/sysctl vm.drop_caches=3'
alias nap='sudo /usr/sbin/pm-suspend'
alias again='sudo shutdown -r now'
alias off='sudo shutdown -h now'
alias pscpu='ps auxf | sort -nr -k 3'
alias sources='sudo nano /etc/apt/sources.list'
alias makepwd='head -c 12 /dev/urandom | openssl enc -base64'
alias pwgen='pwgen -ys 24 1'
I have loads more broken down by function in the file. Aliases are awesome. Your desktop, or window manager (I use openbox) can do similar, and/or supplement. Openbox, can, anyway. In openbox you have a couple files, one is rc.xml. rc.xml is the file that controls keybinding, keyboard shortcuts. Love it. I hit win+m for my email. You know, this isn't anything new, this functionality has been around for decades.
orb_selektor said:
I am tired of Windows and really considering to go with Linux.
What distro would you recommend for someone with no Dev knowledge?
Click to expand...
Click to collapse
You need no dev knowledge or skills to run Linux. None at all. If you want, however, oh, the places you'll go....
People in this thread have asked for advice on which Linux distribution to use, and rightly so as the ecosystem is vast. I'm not going to recommend any because it's problematic. I want you to run and like Linux, because it's awesome. What I don't want is to confuse you. Now, LinuxMint and Ubuntu and so many others are fine Linux distributions, certainly. However, they are built upon another in all cases. I don't have to tell you about more moving parts or layers, do I? Personally I have run into trouble will all manner of distros (yes, even Ubuntu) built upon another, because they were built on another and for implementations, scripting, all that - to make their ideas work. In 20 years with Debian it's always been: flawless. But, I didn't just recommend Debian. (Shhh - USE DEBIAN!!!)
If you want to try Linux then try one of the base distributions the others are built on for a trouble-free operational lifetime. There are major differences in the main base Linux distributions, but, you don't have to worry about any of it, mostly it's just package management - LSB be damned!! I don't know if you can still get Red Hat - I think it's just fedora, or centos, but, this is one of the base distributions. Fedora is a bit beta, and you use centos for your server.
If you're a masochist, roll up Gentoo. You da man!
THere is Arch Linux, Debian, Slackware (the oldest), and, OpenSuse. Maybe Mandriva, is that what it's called now?

Viruses

I just want to say that it has always bothered me that people say Windows is attacked more because it's more popular.
What a load of horse****.
Windows is attacked more because it's easier for viruses to actually run. A windows machine is infected far more readily than Linux - it's pretty bleeping hard for a virus to run in Linux. In fact, until fairly recently - there was only 1 virus for Linux and that was proof of concept.
As far as I understand it, there are a few viruses (a virus, actually) that exist that will run in Linux these days. I have never run an anti-virus on my Linux system and I never will. Waste of system resources, unnecessary. There is actually an antivus for Linux - I think it's called clam. You would ONLY install and use it if windows machines were on your lan.
Viruses aren't as big a problem as they once were - but windows machines were/are targets because windows makes it easy not because windows is popular. Po;ular helps, but, Linux runs everything except your desktop - it's pretty popular.
I would agree only that clam/clamTK is basically just an email scanning tool (it only scans for windows viruses) and you would only need to really worry about messing with it on servers that are shipping things to and from windows and not just on your LAN (like an email server)
Linux does have viruses but not like windows they take the form of rootkits which I would recommend any Linux user run rootkit scanners every once and a while to make sure your system is clean. You can also use SELinux if you're really worried about things. Fedora has that enabled by default.
I totally agree with you though that it is pretty hard to get viruses on a Linux box that effect that Linux box or other network devices. Linux is used everywhere; servers, IOT devices, embedded systems, routers, everywhere. It's the most popular OS for everything but desktops where windows has most of that market share
Inideed, and, thanks for clarifying Clam. In fact, you just reminded me to run rkhunter.
The point is always: you need some sort of interaction if you want your malware to be run. And if you got an interaction with a Linux desktop user, you can try to make them run e.g. a shell bomb instead of a virus. Having some 2% of market share the Linux desktop user is simply not attractive. Otherwise there would be much more sophisticated shell bomb designs, exploiting e.g. zerodays to pull some nifty data.
But on Android you usually can't do that, because on stock ROMs the shell is pretty useless. Plus most of the interesting data is in the cloud anyway, so it's easier to put your malware into an app or attack the server.
A seemingly full list of past linux malware may be found here (Wikipedia, "Linux Malware" article).
AFAIK, a well patched system should be secure.
bronkish said:
I just want to say that it has always bothered me that people say Windows is attacked more because it's more popular.
What a load of horse****.
Windows is attacked more because it's easier for viruses to actually run. A windows machine is infected far more readily than Linux - it's pretty bleeping hard for a virus to run in Linux. In fact, until fairly recently - there was only 1 virus for Linux and that was proof of concept.
As far as I understand it, there are a few viruses (a virus, actually) that exist that will run in Linux these days. I have never run an anti-virus on my Linux system and I never will. Waste of system resources, unnecessary. There is actually an antivus for Linux - I think it's called clam. You would ONLY install and use it if windows machines were on your lan.
Viruses aren't as big a problem as they once were - but windows machines were/are targets because windows makes it easy not because windows is popular. Po;ular helps, but, Linux runs everything except your desktop - it's pretty popular.
Click to expand...
Click to collapse
bro, could u give me the url/resources of that linux virus ?
"...here was only 1 virus for Linux and that was proof of concept.."
Well, as I referred above, I think he is mistaken.
Anyway, a frequently updated Linux workstation, not configured to be publicly accessible from the Internet, should be very secure.
I’m sure I never have gotten a virus but there’s a possibility that I did in 2015 when I first began using Linux after that windows 10 dumpster fire. Basically on Ubuntu 14.04 lts I installed a deb package thinking it was a conky widget and after a few minutes of wondering why my widget wasn’t there I realized my personal files in my home folder were all of a sudden deleting themselves. I removed the package just kept having these issues and didn’t go away until I reinstalled the os. It did ask for root access on reboot and only typed it in once but kept having some weird system daemon ask for my password on reboot when it didn’t do that before. Reinstalling of course fixed the issue but lost files and important files from it. Not lying either as I just started out on Linux and was a noob, and mainly used the gui until 2016-17 for installing packages on it and navigating the system. My fault as I should have done more research, but never had something like that happened again thankfully. Still using Linux to this day but still duel boot windows and Debian testing. Hopefully things get better in gaming performance which is almost there and can completely switch. Glad this new pc software and hardware section was added. Also used to work at a place called wireless solutions in Mid West City Oklahoma and found this website useful through out the few months I works there, this job I had as a High School student was repairing smartphones mainly iOS and android based devices. Glad to see this forum site continue to grow, it has been a while since I have been on here so not sure when the computing section was added. Also I just created an account recently as when I had this job mainly just went on here as a guest without an account.
I will say Linux seems to usually get a bit better fps and generally better performance over all, on my new hp pavilion eh1070wm laptop. I’m getting off topic so getting off for now as of typing, have a wonderful night if your in CST.

Categories

Resources