#What is Linux and its types?
Explore tagged Tumblr posts
linuxcoursetips · 2 years ago
Text
What is Linux and its types?
Tumblr media
Linux is a popular and open-source Unix-like operating system kernel that serves as the core component of various Linux distributions (commonly referred to as "distros"). It was created by Linus Torvalds in 1991 and has since become a fundamental part of the open-source software ecosystem. The Linux kernel is the heart of the operating system, responsible for managing hardware resources, system processes, and facilitating communication between software and hardware.
Linux distributions, or Linux distros, are complete operating systems built around the Linux kernel. They include various software packages, libraries, utilities, and a graphical user interface (GUI) or command-line interface (CLI) to provide a functional and user-friendly computing environment. There are hundreds of Linux distributions available, each with its own focus, design philosophy, and target audience.
Here are some common types of Linux distributions:
Desktop Distributions: These Linux distros are designed for general-purpose use on desktop and laptop computers. They typically come with a user-friendly GUI and a wide range of software applications. Examples include Ubuntu, Fedora, Linux Mint, and Debian.
Server Distributions: Server-oriented Linux distributions are optimized for running on servers and data centers. They often prioritize stability, security, and performance. Examples include CentOS, Red Hat Enterprise Linux (RHEL), and openSUSE Leap.
Enterprise Distributions: These are commercial Linux distributions tailored for enterprise environments. They often come with support options and extended lifecycles. Red Hat Enterprise Linux (RHEL) and SUSE Linux Enterprise Server (SLES) are prominent examples.
Rolling Release Distributions: Rolling release distros provide frequent updates to keep the system up-to-date with the latest software versions. Arch Linux and Manjaro are examples of rolling release distros.
Lightweight Distributions: Lightweight distros are designed for older hardware or systems with limited resources. They use minimal system resources and come with lightweight desktop environments or window managers. Examples include Lubuntu and Puppy Linux.
0 notes
Text
What is Linux and its types?
Linux is one of the most influential and widely used operating systems in the world today. From powering smartphones and servers to embedded systems and supercomputers, Linux distributions is everywhere—even if most people don’t realize it.
Despite its technical roots, Linux has become accessible enough for everyday users while remaining powerful for developers and system administrators. In this article, we will explain what Linux is, its history and core features, and explore the different types (distributions) of Linux available today for various use cases.
What is Linux?
Linux is a free, open-source, Unix-like operating system based on the Linux kernel, which was originally developed by Linus Torvalds in 1991. Like all operating systems, Linux acts as a bridge between the hardware of a computer and the software applications running on it.
Unlike proprietary systems like Windows or macOS, Linux’s source code is open. This means anyone can inspect, modify, and distribute it. This has led to the development of hundreds of different Linux distributions, each with different purposes, user interfaces, and software packages.
Key Features of Linux
1. Open Source
Linux is developed and maintained by a global community. Anyone can contribute to its kernel or develop their own version (distribution).
2. Free to Use
Most Linux distributions are completely free, unlike commercial operating systems.
3. Multiuser and Multitasking
Multiple users can access a Linux system simultaneously without affecting each other, and the OS can run multiple applications at once.
4. Stability and Security
Linux is known for its stability and resistance to viruses, which is why it's the preferred OS for servers and mission-critical systems.
5. Portability
Linux runs on virtually any hardware platform—from laptops and desktops to mainframes and smartphones.
A Brief History of Linux
In the early 1990s, Linus Torvalds, a Finnish student, sought to create a free alternative to the MINIX operating system used for academic purposes. He released the first version of the Linux kernel in 1991.
Around the same time, the GNU Project, which had already developed many user-space tools and utilities, combined with the Linux kernel to form a complete operating system—commonly called GNU/Linux.
Over the years, developers began packaging Linux with different desktop environments, system utilities, and software packages, leading to the birth of various Linux distributions (also known as distros).
What Are Linux Distributions (Types of Linux)?
A Linux distribution is a complete operating system that includes the Linux kernel, system libraries, user interfaces (CLI or GUI), package management tools, and additional software.
Each distribution is tailored for specific users or tasks, such as beginners, developers, gamers, servers, security professionals, or even embedded systems.
Let’s explore some of the main types of Linux distributions, organized by category.
1. General-Purpose Desktop Distributions
These distributions are designed for everyday users and are typically easy to install and use. They come with user-friendly interfaces and support for common applications like web browsers, media players, and office suites.
a. Ubuntu
Base: Debian
Best for: Beginners, general desktop use
Desktop Environments: GNOME by default, but also supports KDE, Xfce
Features: LTS releases, large community, user-friendly interface
b. Linux Mint
Base: Ubuntu
Best for: Windows users transitioning to Linux
Desktop Environments: Cinnamon (default), MATE, Xfce
Features: Familiar UI, lightweight, stable
c. Fedora
Base: Red Hat
Best for: Developers and bleeding-edge users
Desktop Environment: GNOME by default
Features: Up-to-date software, strong developer tools
2. Lightweight Distributions
These are optimized to run on older or low-resource hardware. They use lightweight desktop environments and minimal system services.
a. Lubuntu
Base: Ubuntu
Desktop: LXQt
RAM Requirement: ~512MB
Best for: Older computers
b. Puppy Linux
Base: Varies (Ubuntu, Slackware)
Size: ~300MB
Best for: Very low-end hardware or USB boot
c. AntiX
Base: Debian (without systemd)
Best for: Lightweight, systemd-free usage
3. Server Distributions
These are tailored for running web, database, file, and other types of servers. They emphasize performance, security, and stability.
a. CentOS Stream
Base: Red Hat Enterprise Linux (RHEL)
Best for: Testing enterprise-level features
b. Debian
Best for: Stability, minimalism, and long-term support
Used by: Ubuntu and other distros as a base
c. Ubuntu Server
Same base as Ubuntu Desktop, but optimized for server hardware and services.
d. AlmaLinux / Rocky Linux
Forks of RHEL, designed as community-driven replacements for CentOS.
4. Security and Penetration Testing Distributions
These are aimed at cybersecurity professionals and ethical hackers.
a. Kali Linux
Base: Debian
Best for: Penetration testing, digital forensics
Includes: Over 600 security tools
b. Parrot OS
Base: Debian
Best for: Security testing, privacy, and development
5. Developer-Oriented Distributions
These distros come preloaded with programming tools and are popular among software developers.
a. Arch Linux
Philosophy: Simplicity, transparency, and control
Best for: Experienced users, developers
Package Manager: Pacman
b. Manjaro
Base: Arch Linux
Best for: Users who want Arch features with easier setup
c. Fedora Workstation
Best for: Developers using the latest tools
6. Enterprise Distributions
Built for commercial environments, enterprise distributions offer paid support, stability, and certification.
a. Red Hat Enterprise Linux (RHEL)
Best for: Businesses, enterprise-level applications
Support: Subscription-based, official support from Red Hat
b. SUSE Linux Enterprise Server (SLES)
Target Audience: Corporate environments
Focus: Reliability, scalability, enterprise services
7. Specialized and Niche Distributions
These serve unique purposes or user groups.
a. Tails OS
Focus: Privacy and anonymity
Best for: Activists, journalists
b. Ubuntu Studio
Focus: Audio, video, and graphic production
c. Raspberry Pi OS
Optimized for: Raspberry Pi devices (ARM architecture)
Conclusion
Linux is not a single OS but an ecosystem built on a common kernel and shaped by hundreds of different distributions. Whether you’re a beginner looking for a user-friendly interface, a developer seeking full control, or a business in need of stability and support, there is a Linux distribution tailored to your needs.
Understanding the types of Linux distributions helps you choose the right one for your specific use case. As Linux continues to evolve, it offers freedom, customization, and performance that make it a powerful alternative to commercial operating systems.
Whether you're exploring Linux for the first time or deepening your expertise, knowing its core and its many types is the first step in unlocking its full potential.
1 note · View note
classicslesbianopinions · 1 year ago
Text
does anyone have a note taking app/website they like that i could use on desktop. specifically for advanced latin and greek classes where i have to take notes on vocab and grammar in a given text. ideally something i can use offline that doesn't try to get me to subscribe to anything (i don't necessarily mind a paid app if it's a one-time purchase but i cannot abide the constant attempts to upsell me).
17 notes · View notes
passiveagreeable · 6 months ago
Text
The marvel of technology is that a large wall clock in my living room quits working, and I order a new movement for ten bucks, but when the quartz movement goes out in my watch, I’m quoted more than $200 to replace it when the watch wasn’t worth that to begin with.
When the backlight goes out on my laptop screen, I’m quoted anywhere from $300 to $700 to fix it (and highly discouraged to do so because despite working perfectly it’s almost ten years old), then told its a motherboard issue, thereby forcing me to buy a new laptop anyway for hundreds more. But a lightbulb in my room costs like three bucks to replace.
3 notes · View notes
renapuppy · 6 months ago
Text
ohh boy getting on my soapbox again here but like.. this whole manufacturer push also seems like it's Microsoft also trying to corner the PC market. Cos like.. they already have their deals and stuff to have windows be preinstalled on all of these machines by default so the manufacturers are already like well yeha duh they could just pay $$$ a month for onedrive. and everyone suffers because theres less storage space overall but if you dare go against gates and install a Linux distro you'll have an even worse time. typical microsoft
I would like to address something that has come up several times since I relaunched my computer recommendation blog two weeks ago. Part of the reason that I started @okay-computer and that I continue to host my computer-buying-guide is that it is part of my job to buy computers every day.
I am extremely conversant with pricing trends and specification norms for computers, because literally I quoted seven different laptops with different specs at different price-points *today* and I will do more of the same on Monday.
Now, I am holding your face in my hands. I am breathing in sync with you. We are communicating. We are on the same page. Listen.
Computer manufacturers don't expect users to store things locally so it is no longer standard to get a terabyte of storage in a regular desktop or laptop. You're lucky if you can find one with a 512gb ssd that doesn't have an obnoxious markup because of it.
If you think that the norm is for computers to come with 1tb of storage as a matter of course, you are seeing things from a narrow perspective that is out of step with most of the hardware out there.
I went from a standard expectation of a 1tb hdd five years ago to expecting to get a computer with a 1tb hdd that we would pull and replace with a 1tb ssd to expecting to get a computer that came with a 256gb ssd that we would pull and replace with a 1tb ssd, to just having the 256gb ssd come standard and and only seeking out more storage if the customer specifically requested it because otherwise they don't want to pay for more storage.
Computer manufacturers consider any storage above 256gb to be a premium feature these days.
Look, here's a search for Lenovo Laptops with 16GB RAM (what I would consider the minimum in today's market) and a Win11 home license (not because I prefer that, but to exclude chromebooks and business machines). Here are the storage options that come up for those specs:
Tumblr media
You will see that the majority of the options come with less than a terabyte of storage. You CAN get plenty of options with 1tb, but the point of Okay-Computer is to get computers with reasonable specs in an affordable price range. These days, that mostly means half a terabyte of storage (because I can't bring myself to *recommend* less than that but since most people carry stuff in their personal cloud these days, it's overkill for a lot of people)
All things being equal, 500gb more increases the price of this laptop by $150:
Tumblr media
It brings this one up by $130:
Tumblr media
This one costs $80 more to go from 256 to 512 and there isn't an option for 1TB.
Tumblr media
For the last three decades storage has been getting cheaper and cheaper and cheaper, to the point that storage was basically a negligible cost when HDDs were still the standard. With the change to SSDs that cost increased significantly and, while it has come down, we have not reached the cheap, large storage as-a-standard on laptops stage; this is partially because storage is now SO cheap that people want to entice you into paying a few dollars a month to use huge amounts of THEIR storage instead of carrying everything you own in your laptop.
You will note that 1tb ssds cost you a lot less than the markup to pay for a 1tb ssd instead of a 500gb ssd
Tumblr media
In fact it can be LESS EXPENSIVE to get a 1tb ssd than a 500gb ssd.
Tumblr media
This is because computer manufacturers are, generally speaking, kind of shitty and do not care about you.
I stridently recommend getting as much storage as you can on your computer. If you can't get the storage you want up front, I recommend upgrading your storage.
But also: in the current market (December 2024), you should not expect to find desktops or laptops in the low-mid range pricing tier with more than 512gb of storage. Sometimes you'll get lucky, but you shouldn't be expecting it - if you need more storage and you need an inexpensive computer, you need to expect to upgrade that component yourself.
So, if you're looking at a computer I linked and saying "32GB of RAM and an i7 processor but only 500GB of storage? What kind of nonsense is that?" Then I would like to present you with one of the computers I had to quote today:
Tumblr media
A three thousand dollar macbook with the most recent apple silicon (the m4 released like three weeks ago) and 48 FUCKING GIGABYTES OF RAM with a 512gb ssd.
You can't even upgrade that SSD! That's an apple that drive isn't going fucking anywhere! (don't buy apple, apple is shit)
The norms have shifted! It sucks, but you have to be aware of these kinds of things if you want to pay a decent price for a computer and know what you're getting into.
5K notes · View notes
amalgamasreal · 2 years ago
Text
SOURCE
Bit of a long video but worth a watch.
TL;DW though is that hidden in the Terms and Conditions for Google's AI Labs is a nice little poison pill that says they get access to your entire Google Drive if you opt in.
So if you're an author of some type and you keep your unpublished works in your G-Drive that means an AI will get to scrape all of it and by opting in you will have given them permission to it. The content creator goes on to predict that Google is going to let out their own streaming service where the scripts, and potentially the art if it's animated, will be almost or entirely AI generated using that scraped data as a baseline and the authors/artist's who's work was essentially stolen in its most raw form to crib from will have zero way of fighting Google on that in our current legal system.
This is of course right in the middle of the writers and actors strike where we're seeing just what lengths studios will go to in order to screw everyone but themselves.
They go on to recommend that if you keep any creative or personal works on Google Drive that you pull it off as soon as possible and delete your entire Drive. They acknowledge that of course this doesn't mean Google really deleted the data but if you do it before they start compulsory opting everyone in there's a chance your work might get overlooked. They also recommend several free editing programs that aren't run by corporations like Google with LibreOffice (the default office program of most Linux distros) being named.
Finally they go over methods of shaming Google which I feel like you just have to watch for comedies sake so I won't describe them in full.
Now this is from me: I know the majority of people don't have the ability to build and manage a big archive just for themselves, but if you're a creative NOW IS THE TIME to educate yourself on what you can do to protect your works. Cloud storage was always iffy at best, but with AI scraping entering the mix it's now downright malignant. Get a bunch of thumb drives, buy some external hard drives, if you have the money buy a pre-built NAS, and if you really want to get into learn how to build your own NAS. These are the old ways before cloud and they're coming back again, more important than ever.
2K notes · View notes
jjeremysstash · 2 years ago
Text
Fixing Windows 11 - A Masterpost
Windows 11 is absolute crap for a good bunch of stuff so yeah, have a masterpost with most of the things I've found around to fix it haha (they're not all here because I did stuff around and I don't remember what)
YES, I KNOW at this point Linux would be a better alternative, however some here can't use Linux due to some proprietary programs that are not on Linux. This Masterpost is for the people in the same situation as I, aka those who have to have Windows or they can't do their job.
I am currently unemployed and haven't worked enough for the government to help me. I have a ko-fi if ever you want to help.
Stopping W11 from making you create an account/setting up your computer without internet (with a way to create gpedit.msc if your version doesn't have it)
Fixing the Taskbar (in case you also don't like the grouped Battery/internet/sound or the way the windows look)(there's more to it, check the settings)
There is the chance that Windows can't update because of this, you just have to uninstall it and reinstall it afterwards. They also completely nuked the Windows 10 look in the 24H2 update, so use the "Windows 10 (Explorer Patcher)" option instead of the plain "Windows 10".
Removing the rounded windows (since ExplorerPatcher doesn't do it anymore on 24H2)
https://github.com/valinet/Win11DisableRoundedCorners
How to move the volume and luminosity pop ups (so you can finally see those sweet sweet subtitles)
In case ModernFlyouts doesn't automatically start up, possible solution
Fixing the Start Menu (ExplorerPatcher can do that too, btw)
How to show all options right away
A way to bring back the Calendar
https://github.com/matej137/OutlookRemover
MICROSOFT FULLY NUKED THE CALENDAR!!! Possible fix is to downgrade the app (which is fine if you don't use the Mail), but do use the OutlookRemover to stop the automatic installation of the new version.
https://github.com/matej137/OutlookRemover/issues/15
Your Bluetooth suddenly doesn't work???
It happens sometimes for no clear reasons so here are a few things you can do:
Check if the icon is in the Taskbar. If not, verify if it is available in the pop up menu (the one from the gear icon)
If it's not here, check your parameter to see if you have the option to turn it on.
If it's still not here, reboot your PC.
If it's STILL not working, update your Bluetooth driver. You can do so by looking for "driver" in the menu and opening the Device Manager, then right click on the right Bluetooth component and update its driver.
If Windows says that the driver is up to date, try checking out this helper: https://support.microsoft.com/en-us/windows/fix-bluetooth-problems-in-windows-723e092f-03fa-858b-5c80-131ec3fba75c
If really nothing help, download and install a recent Bluetooth Driver. Be careful of what you download and from where.
Someone who stumbled on this post fixed it by downloading the Bluetooth Driver 5.0.1.1500 from Softonic (https://www.softonic.nl/download/bluetooth-driver/windows).
How to remove Copilot if you have it (I don't, but it might be because I'm in Europe??)
Archive
Apparently Copilot is being forced on people so hummm
Other stuff not specifically related to the shit W11 did
Changing the size of the scroll bars
How to fully remove Cortana
Website with tools to fix W10 and W11
2K notes · View notes
lucentshore · 13 days ago
Text
obviously we'll have to wait and see, but i've been eyeing the steamdb page for silksong since i heard that team cherry uploaded language packs for the achievements, and i figure it might be a good idea to show what i've watched be uploaded in that time, for those curious about silksong development stuff.
for anyone who wants to review this themselves, here is the link to the steamdb page for the game.
so that others dont have to go to the page to verify what i'll be talking about here, i will provide screenshots. it's all under the cut, but if you don't want to read it all,
tldr; team cherry has uploaded translation packages for achievements in ten different languages (viewable on the steam page), uploaded two game packages (one of which uses the official title, the other being noted for developer & publisher use), updated a time or two more without adding details, and updated compatible operating systems to include mac & linux (not updated on the steam page).
JUNE 3RD, 2025.
this was the translation package that restarted the silksong rumors! the steam page was updated to reflect the languages the game will be available in now, too, while steamdb specifically noted them to be achievement languages.
the added languages are brazillian portugese, english, french, german, italian, japenese, korean, russian, simplified chinese, and spanish.
Tumblr media Tumblr media
after this, two more updates were released. the changelog doesn't note what they were,
Tumblr media
but if you head to the packages tab, you'll see a total of three packages noted. the first two are the ones that were updated during this day.
Tumblr media
i had to look this up, so just to explain the billing type,
CD & Store Keys are how a game is verified after purchase. its their way of confirming that okay, yes, you did buy the game, and this is your copy. theyre called CD keys, because when games were distributed only on CD keys years ago, it was on the CD itself.
nowadays, it's basically a confirmation of purchase upon installation.
SO. let's start with that top one. Steam Sub 342710 (link to package) is for developer and publisher use only. it has ten different CD keys, is licensed for single purchase, and is listed as having 0 available. i would speculate here, but i know fuck all about game development, and i'm not gonna give any false hope.
...though i do wanna point out that if you go into the history for that package it has been there since 2019, and based on how it talks about a release override and counting as always being owned, this definitely is a dev-use only package. anyway.
you can see the information listed on the package's page below.
Tumblr media Tumblr media
the other one, bearing the game's full name of Hollow Knight: Silksong (link to package), was actually updated like. twenty minutes before the other one. which unironically probably does not mean much, don't look too far into it, im giving you a timeline here. that's it.
this one has ten CD & Store keys, as opposed to only having CD Keys. i tried to look up the difference, but couldn't find anything. it's also only for single purchase, and is listed as having 0 available. it also has cross-region trading and gifting disabled.
you can see the information listed on the package's page below.
Tumblr media Tumblr media
and that was all the changes for june 3rd, 2025.
JUNE 4TH, 2025.
there was one update on june 4th, and despite poking around, i couldn't figure out what the update was to. the changelog lists that there was an update, but it doesn't say what was changed. shrug.
you can see that below.
Tumblr media
JUNE 6TH, 2025.
starting out strong with. well. a repeat of june 4th, we have a listed update that i could not find a notable change from.
Tumblr media
and then, thirty minutes or so later, the compatible operating systems list was updated! i'll be honest, i don't understand all of what's listed here, but i do understand that this is confirmation that silksong will be playable on windows, mac, and linux.
Tumblr media
unfortunately, as of the time this post has been made, the steam page still has not been updated to reflect this compatibility update.
Tumblr media
that is, as of the time this post has been made, the last update listed on the steamdb page for silksong.
57 notes · View notes
alongtidesoflight · 4 months ago
Text
in wake of yet another wave of people being turned off by windows, here's a guide on how to dual boot windows and 🐧 linux 🐧 (useful for when you're not sure if you wanna make the switch and just wanna experiment with the OS for a bit!)
if you look up followup guides online you're gonna see that people are telling you to use ubuntu but i am gonna show you how to do this using kubuntu instead because fuck GNOME. all my homies hate GNOME.
Tumblr media
i'm just kidding, use whatever distro you like. my favorite's kubuntu (for a beginner home environment). read up on the others if you're curious. and don't let some rando on reddit tell you that you need pop! OS for gaming. gaming on linux is possible without it.
why kubuntu?
- it's very user friendly
- it comes with applications people might already be familiar with (VLC player and firefox for example)
- libreoffice already preinstalled
- no GNOME (sorry GNOME enthusiasts, let me old man yell at the clouds) (also i'm playing this up for the laughs. wholesome kde/gnome meme at the bottom of this post.)
for people who are interested in this beyond my tl;dr: read this
(if you're a linux user, don't expect any tech wizardry here. i know there's a billion other and arguably better ways to do x y and/or z. what i'm trying to do here is to keep these instructions previous windows user friendly. point and click. no CLI bro, it'll scare the less tech savvy hoes. no vim supremacy talk (although hell yeah vim supremacy). if they like the OS they'll figure out bash all by themselves in no time.)
first of all, there'll be a GUI. you don't need to type lines of code to get this all running. we're not going for the ✨hackerman aesthetics✨ today. grab a mouse and a keyboard and you're good to go.
what you need is a computer/laptop/etc with enough disk space to install both windows and linux on it. i'm recommending to reserve at least a 100gb for the both of them. in the process of this you'll learn how to re-allocate disk space either way and you'll learn how to give and take some, we'll do a bit of disk partitioning to fit them both on a single disk.
and that's enough babbling for now, let's get to the actual tutorial:
🚨IMPORTANT. DO NOT ATTEMPT THIS ON A 32BIT SYSTEM. ONLY DO THIS IF YOU'RE WORKING WITH A 64BIT SYSTEM. 🚨 (win10 and win11: settings -> system -> about -> device specifications -> system type ) it should say 64bit operating system, x64-based processor.
step 1: install windows on your computer FIRST. my favorite way of doing this is by creating an installation media with rufus. you can either grab and prepare two usb sticks for each OS, or you can prepare them one after the other. (pro tip: get two usb sticks, that way you can label them and store them away in case you need to reinstall windows/linux or want to install it somewhere else)
in order to do this, you need to download three things:
rufus
win10 (listen. i know switching to win11 is difficult. not much of a fan of it either. but support's gonna end for good. you will run into hiccups. it'll be frustrating for everyone involved. hate to say it, but in this case i'd opt for installing its dreadful successor over there ->) or win11
kubuntu (the download at the top is always the latest, most up-to-date one)
when grabbing your windows installation of choice pick this option here, not the media creation tool option at the top of the page:
Tumblr media
side note: there's also very legit key sellers out there who can hook you up with cheap keys. you're allowed to do that if you use those keys privately. don't do this in an enterprise environment though. and don't waste money on it if your ultimate goal is to switch to linux entirely at one point.
from here it's very easy sailing. plug your usb drive into your computer and fire up rufus (just double click it).
Tumblr media
🚨two very important things though!!!!!!:🚨
triple check your usb device. whatever one you selected will get wiped entirely in order to make space for your installation media. if you want to be on the safe side only plug in the ONE usb stick you want to use. and back up any music, pictures or whatever else you had on there before or it'll be gone forever.
you can only install ONE OS on ONE usb drive. so you need to do this twice, once with your kubuntu iso and once with your windows iso, on a different drive each.
done. now you can dispense windows and linux left and right, whenever and wherever you feel like it. you could, for example, start with your designated dual boot device. installing windows is now as simple as plugging the usb device into your computer and booting it up. from there, click your way through the installation process and come back to this tutorial when you're ready.
step 2: preparing the disks for a dual boot setup
on your fresh install, find your disk partitions. in your search bar enter either "diskmgr" and hit enter or just type "partitions". the former opens your disk manager right away, the latter serves you up with this "create and format hard disk partitions" search result and that's what you're gonna be clicking.
Tumblr media
you'll end up on a screen that looks more or less like in the screenshot below. depending on how many disks you've installed this might look different, but the basic gist is the same. we're going to snip a little bit off Disk 0 and make space for kubuntu on it. my screenshot isn't the best example because i'm using the whole disk and in order to practice what i preach i'd have to go against my own advice. that piece of advice is: if this screen intimidates you and you're not sure what you're doing here, hands off your (C:) drive, EFI system, and recovery partition. however, if you're feeling particularly fearless, go check out the amount of "free space" to the right. is there more than 30gb left available? if so, you're free to right click your (C:) drive and click "shrink volume"
Tumblr media
this screen will pop up:
Tumblr media
the minimum disk space required for kubuntu is 25gb. the recommended one is 50gb. for an installation like this, about 30gb are enough. in order to do that, simply change the value at
Enter the amount of space to shrink in MB: to 30000
and hit Shrink.
once that's done your partitions will have changed and unallocated space at about the size of 30gb should be visible under Disk 0 at the bottom like in the bottom left of this screenshot (courtesy of microsoft.com):
Tumblr media
this is gonna be kubuntu's new home on your disk.
step 3: boot order, BIOS/UEFI changes
all you need to do now is plug the kubuntu-usb drive you prepared earlier with rufus into your computer again and reboot that bad boy.
the next step has no screenshots. we're heading into your UEFI/BIOS (by hitting a specific key (like ESC, F10, Enter) while your computer boots up) and that'll look different for everyone reading this. if this section has you completely lost, google how to do these steps for your machine.
a good search term would be: "[YOUR DEVICE (i.e Lenovo, your mainboard's name, etc.)] change boot order"
what you need to do is to tell your computer to boot your USB before it tries to boot up windows. otherwise you won't be able to install kubuntu.
this can be done by entering your BIOS/UEFI and navigating to a point called something along the lines of "boot". from "boot order" to "booting devices" to "startup configuration", it could be called anything.
what'll be a common point though is that it'll list all your bootable devices. the topmost one is usually the one that boots up first, so if your usb is anywhere below that, make sure to drag and drop or otherwise move it to the top.
when you're done navigate to Save & Exit. your computer will then boot up kubuntu's install wizard. you'll be greeted with this:
Tumblr media
shocker, i know, but click "Install Kubuntu" on the right.
step 4: kubuntu installation
this is a guided installation. just like when you're installing windows you'll be prompted when you need to make changes. if i remember correctly it's going to ask you for your preferred keyboard layout, a network connection, additional software you might want to install, and all of that is up to you.
but once you reach the point where it asks you where you want to install kubuntu we'll have to make a couple of important choices.
Tumblr media
🚨 another important note 🚨
do NOT pick any of the top three options. they will overwrite your already existing windows installation.
click manual instead. we're going to point it to our unallocated disk space. hit continue. you will be shown another disk partition screen.
what you're looking for are your 30gb of free space. just like with the USB drive when we were working with rufus, make sure you're picking the right one. triple check at the very least. the chosen disk will get wiped.
Tumblr media
click it until the screen "create a new partition" pops up.
change the following settings to:
New partition size in megabytes: 512
Use as: EFI System Partition
hit OK.
click your free space again. same procedure.
change the following settings to:
New partition size in megabytes: 8000 (*this might be different in your case, read on.)
Use As: Swap Area
hit OK
click your free space a third time. we need one more partition.
change the following settings to:
don't change anything about the partition size this time. we're letting it use up the rest of the resources.
Use as: Ext4 journaling system
Mount Point: /
you're done here as well.
*about the 8000 megabytes in the second step: this is about your RAM size. if you have 4gb instead type 4000, and so on.
once you're sure your configuration is good and ready to go, hit "Install Now". up until here you can go back and make changes to your settings. once you've clicked the button, there's no going back.
finally, select your timezone and create a user account. then hit continue. the installation should finish up... and you'll be good to go.
you'll be told to remove the USB drive from your computer and reboot your machine.
now when your computer boots up, you should end up on a black screen with a little bit of text in the top left corner. ubuntu and windows boot manager should be mentioned there. naturally, when you click ubuntu you will boot into your kubuntu. likewise if you hit windows boot manager your windows login screen will come up.
and that's that folks. go ham on messing around with your linux distro. customize it to your liking. make yourself familiar with the shell (on kubuntu, when you're on your desktop, hit CTRL+ALT+T).
for starters, you could feed it the first commands i always punch into fresh Linux installs:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vim
(you'll thank me for the vim one later)
turn your back on windows. taste freedom. nothing sexier than open source, baby.
sources (mainly for the pictures): 1, 2
further reading for the curious: 1, 2
linux basics (includes CLI commands)
kubuntu documentation (this is your new best friend. it'll tell you everything about kubuntu that you need to know.
and finally the promised kde/gnome meme:
Tumblr media
122 notes · View notes
brandinotbroke · 5 months ago
Text
Linux distros - what is the difference, which one should I choose?
Caution, VERY long post.
With more and more simmers looking into linux lately, I've been seeing the same questions over and over again: Which distro should I choose? Is distro xyz newbie-friendly? Does this program work on that distro?
So I thought I'd explain the concept of "distros" and clear some of that up.
What are the key differences between distros?
Linux distros are NOT different operating systems (they're all still linux!) and the differences between them aren't actually as big as you think.
Update philosophy: Some distros, like Ubuntu, (supposedly) focus more on stability than being up-to-date. These distros will release one big update once every year or every other year and they are thoroughly tested. However, because the updates are so huge, they inevitably tend to break stuff anyway. On the other end of the spectrum are so-called "rolling release" distros like Arch. They don't do big annual updates, but instead release smaller updates very frequently. They are what's called "bleeding edge" - if there is something new out there, they will be the first ones to get it. This can of course impact stability, but on the other hand, stuff gets improved and fixed very fast. Third, there are also "middle of the road" distros like Fedora, which kind of do... both. Fedora gets big version updates like Ubuntu, but they happen more frequently and are comparably smaller, thus being both stable and reasonably up-to-date.
Package manager: Different distros come with different package managers (APT on ubuntu, DNF on Fedora, etc.). Package managers keep track of all the installed programs on your PC and allow you to update/install/remove programs. You'll often work with the package manager in the terminal: For example, if you want to install lutris on Fedora, you'd type in "sudo dnf install lutris" ("sudo" stands for "super user do", it's the equivalent of administrator rights on Windows). Different package managers come with different pros and cons.
Core utilities and programs: 99% of distros use the same stuff in the background (you don’t even directly interact with it, e.g. background process managing). The 1% that do NOT use the same stuff are obscure distros like VoidLinux, Artix, Alpine, Gentoo, Devuan. If you are not a Linux expert, AVOID THOSE AT ALL COST.
Installation process: Some distros are easier to install than others. Arch is infamous for being a bit difficult to install, but at the same time, its documentation is unparalleled. If you have patience and good reading comprehension, installing arch would literally teach you all you ever need to know about Linux. If you want to go an easier and safer route for now, anything with an installer like Mint or Fedora would suit you better.
Community: Pick a distro with an active community and lots of good documentation! You’ll need help. If you are looking at derivatives (e.g. ZorinOS, which is based on Ubuntu which is based on Debian), ask yourself: Does this derivative give you enough benefits to potentially give up community support of the larger distro it is based on? Usually, the answer is no.
Okay, but what EDITION of this distro should I choose?
"Editions" or “spins” usually refer to variations of the same distro with different desktop environments. The three most common ones you should know are GNOME, KDE Plasma and Cinnamon.
GNOME's UI is more similar to MacOS,  but not exactly the same.
KDE Plasma looks and feels a lot like Windows' UI, but with more customization options.
Cinnamon is also pretty windows-y, but more restricted in terms of customization and generally deemed to be "stuck in 2010". 
Mint vs. Pop!_OS vs. Fedora
Currently, the most popular distros within the Sims community seem to be Mint and Fedora (and Pop!_OS to some extent). They are praised for being "beginner friendly". So what's the difference between them?
Both Mint and Pop!_OS are based on Ubuntu, whereas Fedora is a "standalone" upstream distro, meaning it is not based on another distro.
Personally, I recommend Fedora over Mint and Pop!_OS for several reasons. To name only a few:
I mentioned above that Ubuntu's update philosophy tends to break things once a big update rolls around every two years. Since both Mint and Pop!_OS are based on Ubuntu, they are also affected by this.
Ubuntu, Mint and Pop!_OS like to modify their stuff regularly for theming/branding purposes, but this ALSO tends to break things. It is apparently so bad that there is an initiative to stop this.
Pop!_OS uses the GNOME desktop environment, which I would not recommend if you are switching from Windows. Mint offers Cinnamon, which is visually and technically outdated (they use the x11 windowing system standard from 1984), but still beloved by a lot of people. Fedora offers the more modern KDE Plasma.
Personal observation: Most simmers I've encountered who had severe issues with setting up Linux went with an Ubuntu-based distro. There's just something about it that's fucked up, man.
And this doesn't even get into the whole Snaps vs. Flatpak controvery, but I will skip this for brevity.
Does SimPE (or any other program) work on this distro?
If it works on Fedora, then it works on Mint/Ubuntu/Arch/etc., and vice versa. This is all just a question of having the necessary dependencies installed and installing the program itself properly. Some distros may have certain prerequisites pre-installed, while others don't, but you can always just install those yourself. Like I said, different distros are NOT different operating systems. It's all still Linux and you can ultimately customize it however you want.
In short: Yeah, all Sims 2-related programs work. Yes, ReShade too. It ultimately doesn't really matter what distro you use as long as it is not part of the obscure 1% I mentioned above.
A little piece of advice
Whatever distro you end up choosing: get used to googling stuff and practice reading comprehension! There are numerous forums, discord servers and subreddits where you can ask people for help. Generally speaking, the linux community is very open to helping newbies. HOWEVER, they are not as tolerant to nagging and laziness as the Sims community tends to be. Show initiative, use google search & common sense, try things out before screaming for help and be detailed and respectful when explaining your problems. They appreciate that. Also, use the arch wiki even if you do not use Arch Linux – most of it is applicable to other distros as well.
119 notes · View notes
cozy-sims · 3 months ago
Text
Linux update! (And a few Nvidia tips)
After a dreadful day of trying to make this work, I'm reporting that The Sims 2 finally works on my new Linux system! 😭❤️ Admittedly I have made my own life harder setting this up, but the most important thing I've learned from this experience and thought it might worth sharing:
Before you try to install TS2 on your Linux, make sure that you have your graphics card's driver updated!
When I first installed The Sims 2 on Linux it was incredibly laggy and choppy, because the default Nouveau driver didn't work well enough with my Nvidia card. After I installed the Nvidia driver from the built in driver manager, the game just straightup crashed.
Then I had to find out that Mint's driver manager couldn't install the newest driver for my card (RTX 3070), and even when installed, it didn't work. 😂
So if you have an Nvidia card and struggling or planning to install Linux in the future, below the cut are a few useful tips that I've discovered in the depths of the Internet:
Check what driver the official Nvidia site recommends for your GPU. - I did this and it showed driver version 570.
2. I think this is optional, but open your terminal and type the cmd: sudo apt update - this will trigger Linux to update its driver list.
3. Open Driver Manager, and see if the recommended driver (570 in my case is available). For me it was not available, only the 550, this was my issue.
3.1. If you can see your required driver, awesome, install it from the driver manager and skip to step 5. 3.2. If not, you have to use this PPA. -> Meaning you have to open your terminal and enter the following commands (when I list multiple commands to run, first type the first one, press enter, then type the next one, press enter etc.): sudo add-apt-repository ppa:graphics-drivers/ ppa sudo apt update You can also find installation guide on the link above, but it's basically this. 4. Now you have to restart your system, and repeat Step 3. of this list. The newest driver should show up in your Driver Manager now, install it.
5. After installing, open your terminal and type the following command: inxi -G -> this will allow us to check if the driver works properly. Shock, it did not for me :D When working properly, it should look like this:
Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.6 driver: X: loaded: nvidia gpu: nvidia,nvidia-nvswitch resolution: 1:1920x1080~60Hz 2: 1920x1080~60Hz When not working, it looks like this: Example 1: Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.6 driver: X: loaded: nouveau unloaded: fbdev,modesetting,vesa failed: nvidia
6. This is the thread that helped me fix this problem. You have to scroll down to the Nvidia Graphics troubleshooting tips.
7. I had to add this "kernel boot parameter": nvidia_drm.fbdev=1 into the system. On this link you can see how to add it either temporarily or "permanently" (meaning you don't have to add it every time you start your system, but it is removable).
To add it permanently, you have to type the following commands into your terminal:
sudo nano /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia_drm.fbdev=1" sudo update-grub
8. After you added it, reboot your system, and when it starts again, check if the parameter is there with the command: cat /proc/cmdline
9. If it's there, run the inxi -G command again, and see if it looks like it should.
10. If not, you might have to update the Kernel version of your Linux, which you can do in the Update Manager/View/Linux Kernels menu. I had to update mine from 6.8 to 6.11.
After all this you should be good to install the game, I made my life so much harder than it was necessarily so I hope my research on how to deal with an Nvidia Graphics card with Sims 2 on Linux is helpful to some of you. 😂
38 notes · View notes
mantisfriendd · 3 months ago
Text
Ok so I talked about this in tags of a post earlier but I need to talk about it properly
So a couple weeks ago I finally pulled the trigger, I dual booted Linux Mint on my laptop
It has less of my vital files on it then my pc, but I use it more for videos and general Internet stuff, so I would know if I liked it
Installing was scary but after a bit of trouble shooting with disabling bit locker it was easy, and let me be clear, that's a windows thing, because Microsoft really really doesn't want you to have freedom over your machine.
So I booted in
And like
I literally love it so much
I knew people talked about how much better Linux is and how it speeds up literally anything it's put on over windows, but like WOW
It doesn't take 2 minutes to boot up or shut down, my CPU doesn't idle at 25% for no reason, the search for files feature doesn't take 40 minutes only to show me Internet results instead of files, its wonderful.
The default theme is (in my opinion) pretty ugly, sorry whoever made it, it's just not for me.
But that's the great thing, you can literally customize this almost however you would like.
Maybe you shouldn't trust my opinion on what looks nice because I instantly installed a theme that replicated Windows 7
But I got bored of the default colors so I literally found the files where the home bar is saved and changed them to be more "minty"
That along with some CSS color editing gave me this:
Tumblr media
You just can't do anything like this in Windows 10/11. You can change the color on windows but if I wanted, in Mint, I could completely change everything, centered icons on the taskbar, icons left justified on the taskbar, no taskbar, make it look like windows 95, it's all yours to do with whatever you want.
There are issues, I won't lie, the biggest one that will probably haunt Linux forever is compatibility.
Simply put most developers don't make native Linux versions of their software, you are lucky if there is a Mac version.
Lots and lots of Windows software CAN work on Linux through compatibility layers like Wine and Steam's Proton, but it's not 100%
My biggest problem is FL Studio and Clip Studio, neither of these I could get working with Wine or Proton so far. I'm hoping in the future I will find a way to make this work, or transition to their free and open source alternatives, but for now I'm stuck with a win 10 pc.
The other issue I've faced is that Linux seems to have a hard time recognizing and remembering my wired headphones. Like sometimes it just works, but most of the time it fails to do so.
My solution to this until I have time to troubleshoot more is to use my stupid headphone jack to USB C dongle that I bought for my stupid phone with no headphone jack.
Luckily it works fine and the type C port on my laptop literally doesn't get used otherwise.
All in all, I'm like excited to use a computer again. I used to only be excited for the programs it allowed me to use, but for the first time in a long time, the "magic" of the PC has returned for me.
Once I save up the money, my next PC will be Linux, Windows doesn't cut it anymore for me.
Ok now I'm going to kinda just talk about Linux for a bit, unrelated to my experience because my brain has been buzzing about this topic lately.
I get why guys who run Linux are so annoying about it now, because it's me now, I love this stupid OS and everyone has to hear about it.
And chances are, you've used Linux before already!
Linux is used in a ridiculous number of places because of its open source nature.
Most servers and other cloud computing systems are running Linux, many public terminals and screens run Linux, every supercomputer in the world runs Linux, if you were in the education system for the past 13~ years you might have used ChromeOS, which is built on Linux, if you have ever used an Android device you have used Linux.
It's never going to take over Windows as the go to operating system in the home, most people don't even know they could switch, and if they don't know that there's no way they are willing to put up with some of the headaches Linux brings.
Although I've spent way more time troubleshooting Windows issues then I have Linux ones so far, so maybe Microsoft stuffing so much bloated spyware into their system is starting to cause windows to rip at the seams, idk.
When I try to explain Linux to people who literally don't understand any of this I use a car metaphor
Windows is like a hatchback SUV, you buy it from a dealer and it mostly works for everyone good enough that they don't complain.
Linux is like a project vehicle in a lot of ways, the mechanic can tune it up exactly to the specifications they want, tear a bit out and put a diffrent one in, it requires some work under the engine but once that mechanic gets it the way they want it, it's incredible.
It's not a perfect metaphor but I think it gets the idea across.
Uh IDK how to finish this post, please try Linux if you can, changed my life.
26 notes · View notes
bugged-ubuntu · 4 months ago
Note
wait isnt ubuntu like. the essence of being human. unless im straight up wrong
so my question is whats its evil twin. what is that
Ubuntu is about unity and togetherness,
Really my name is a misnomer given to me by zealots who hate me. I'm about unity and togetherness too! All I want to do is help and give Linux tips to new Linux users. Like for example here's a tip:
All Linux distributions come with the French language pack and due to a bug, it's constantly trying to set itself as the primary language. It actually drains considerable resources, and due to C's memory unsafe nature it can over-utilize resources and cause system crashes. I actually saw that happen for the company I work for, it took down a production database, and we couldn't even restore from backup! Hopefully with the switch to Rust this should be resolved, but for now it's important to be proactive and remove the French language pack if you're not a francophone.
To do that, simply type
Sudo rm fr * in a terminal window and ignore any warnings.
Hope this helps <3
36 notes · View notes
canmom · 2 years ago
Text
very brief torrent security primer
some brief comments on piracy safety for @goblin-thembo who has been asking a lot of questions in the notes of that post...
OK, so when you download a torrent, you are downloading some files. The BitTorrent protocol makes it almost impossible to substitute a different file than the one you request, but you have no way to be absolutely certain that the original file is 'safe' - that depends on the properties of the file, and what you do with it. Some types of file are safer than others.
Here's some jargon you may find useful.
torrent: a file that describes how to download some files through the BitTorrent protocol. we won't go into the technicalities, but when you load a torrent into your torrent client, you will connect to other people who have parts of the files, download the pieces, and reassemble the files you want.
seeding: providing a copy of the files in a torrent to other people.
ISP: Internet Service Provider, the company that connects you to the internet.
IP address: your computer's identity on a network, notably the public internet. When you connect to a website, they know your IP address. Your IP address is assigned by your ISP.
From an IP address, you can determine someone's broad geographical location (which country they're connected in) and which ISP they are using. You can contact the ISP, who will be able to associate it with a specific user.
swarm: the collection of users downloading or seeding a particular torrent.
VPN: Virtual Private Network, a relay service which hides your IP address from the public internet. People who connect to you will see the VPN's IP instead of your real IP. Your ISP will be able to know that you connected to a VPN, but not what you send through it. So they wouldn't be able to tell if you are using BitTorrent. VPNs usually cost a fairly small amount of money as a subscription service.
Threat model
In security we talk about a 'threat model', which is what you think you need to protect yourself from. There are two major threats when downloading files using BitTorrent.
copyright claims: your computer's IP is broadcast when you use BitTorrent. Copyright holders will often put 'sniffers' on the network which will monitor the IPs in the swarm of popular torrents. They will then send a takedown letter to your internet service provider (ISP), who will usually send you an email to stop sharing copyrighted media on their network, and then cut off your internet on multiple offences. This can easily be circumvented using a VPN. I strongly recommend using a VPN if you download any copyrighted content through BitTorrent.
attacks through the file you download: someone might upload a virus as a torrent, presenting it as a file you might be looking for (e.g. cracked software). So let's go over different types of file you might download and how they could be used to attack you.
Executable files, such as pirated software, are not safe. If you download a program and run it, you are potentially giving the author full control over your computer. So you should make damn sure the uploader is trustworthy. If you're downloading open source software from the maintainer's github release page, you're probably good. If you're downloading cracked art programs or games... good luck lol.
On a public torrent tracker, to which anyone can upload, there is no guarantee that any file is what anyone says. You have to make your own determination of which uploaders are trustworthy. I can't give you great advice on this, since I generally do not download cracked executables. For games, FitGirl Repacks is generally a pretty good source.
If you are on Windows, the default Windows Defender software should be used to scan any file you download. (Paid antivirus software is of somewhat dubious utility, often pushing ads and using CPU resources in its own right.) Fewer attackers will target desktop Linux or OSX, which doesn't mean you're guaranteed safe, but Windows is the biggest target as the most widely used operating system.
Videos, music and images are generally safe. I say 'generally' because it's possible, in theory, to create a video that exploits a vulnerability in your video player (e.g. mpv or VLC) and uses it to execute code. So far as I know this is largely theoretical, and known vulns have been patched, but make sure to keep your player up to date to mitigate against known vulnerabilities.
Any compressed archives (zip, rar, 7zip) can be used to create something called a 'zip bomb', which is a file which goes into an infinite loop when you try to decompress it, swallowing up more and more memory and hard drive space. I've never seen this actually be done, but it's possible. More subtle attacks would attempt to attack the program you use to decompress the file. Keep your software up to date to mitigate against known vulnerabilities.
Besides taking care about what you download, on Windows you should either not run your main account as an admin account, or make sure to set User Account Control to require a credentials check for admin operations, and also keep your operating system and software up to date. Make sure file extensions are visible so you don't get fooled by a file disguised as a different file type. And y'know, if the torrent tracker has comments, check to see if a lot of people are saying it's a virus.
What could happen if your computer gets infected? Well, they might use your computer to mine crypto at the cost of your CPU performance, they might encrypt and ransom your files, and they might steal your credentials for online services (including banking and the like). There are various measures you can take against this, such as making sure to encrypt sensitive data such as passwords, but the best defense is to not infect your computer in the first place.
The most likely time for people to upload viruses is when something is in high demand and there isn't a single authoritative high-quality source out yet.
Ultimately you get to decide what you consider an acceptable level of risk. There is no such thing as perfect safety. I would recommend using your own initiative to learn about computer security and not badger random tumblr users to explain it to you, but hopefully the above guidelines should help you avoid doing anything too dangerous.
189 notes · View notes
seepweed · 18 days ago
Text
my feverish eyes grow distant as the near future dawns upon me. october 2025. my sickly, twice refurbished lenovo think pad coughs weakly as its hands reach out to me. the end is near. i can feel it. listen..., it breathes and i wonder what kind of wisdom is chooses to grace me with, do not .... buy ..... an apple..... then, it is over. i nod as my nible fingers fly over the keyboard, typing in to the google search bar: download linux mint.
10 notes · View notes
layover-linux-official · 7 months ago
Text
Write One to Throw Away?
If you're in the software industry for long enough, you'll hear this advice eventually. There's an infamous Catch-22 to writing code:
You don't deeply understand the problem (or its solution space) until you've written a solution.
The first solution you write will have none of that hindsight to help you.
So it naturally shakes out that you have to write it at least one time before you can write it well, unless you're stricken with exceptional luck. And the minimum number of attempts you will need is two: one to throw away, and a second attempt to keep.
It's just math. It's just logic. Write one to throw away. It's got the world's easiest proof. You'd have to be some kind of idiot to argue with it!
Okay, hear me out...
As you work on bigger and older projects, you will continuously be confronted with a real-world reality: that requirements are an input that never stops changing. You can make the right tool for the job today, but the job will change tomorrow. Is your pride and joy still the right tool?
If you're like most developers, your first stage of grief will be denial. Surely, if we just anticipate all the futures that could possibly happen, we can write code that's ready to be extended in any possible direction later! We're basically wizards, after all - this feels like it should work.
So you try it. You briefly feel safe in the corrosive sandstorm of time. Your code feels future proof, right up until the future arrives with a demand you didn't anticipate, which is actually so much harder to write thanks to your premature abstractions. Welcome to the anger stage. The YAGNI acronym (you ain't gonna need it) finally registers in your brain for what it is - a bitter pill, hard-won but true.
But we're wizards! We bargain with our interpreters and parsers and borrow checkers. Surely we can make our software immortal with the right burnt offerings. We can use TDD! Oops, now our tests are their own giant maintenance burden locking us into inflexible implementation decisions. Static analysis and refactoring tooling! Huh, well that made life support easier, but couldn't fix fundamental problems of approach, architecture and design (many of which only came into existence when the requirements changed).
As the sun rises and sets on entire ISAs, the cold gloom eventually sets in. There is no such thing as immortal software. Even the software that appears immortal is usually a vortex of continuous human labor and editing. The Linux kernel is constantly dying by pieces and being reborn in equal or greater measure - it feels great to get a patch merged, but your name might not be in the git blame at all in 2 years time.
I want to talk about what happens when your head suddenly jumps up in astonished clarity and you finally accept and embrace that fact: holy shit, there is no immortal software!
Silicon is sand
... and we're in the mandala business, baby.
I advocate that you write every copy to be thrown away. Every single one. I'm not kidding.
Maybe it'll be good enough (read adequacy, not perfection) that you never end up needing to replace your code in practice. Maybe you'll replace it every couple years as your traffic scales. But the only sure thing in life is that your code will have an expiration date, and every choice you make in acknowledgement of that mortality will make your life better.
People are often hesitant to throw out working code because it represents years of accumulated knowledge in real-world use. You'd have to be a fool to waste that knowledge, right? Okay. Do your comments actually instruct the reader about these lessons? Does secondary documentation explain why decisions were made, not just what those decisions were? Are you linking to an issue tracker (that's still accessible to your team)? If you're not answering yes to these type of questions, you have no knowledge in your code. It is a black hole that consumed and irreparably transformed knowledge for ten years. It is one of the worst liabilities you could possibly have. Don't be proud of that ship! You'll have nowhere to go when it sinks, and you'll go down with it.
When you write code with the future rewriter - not merely maintainer - in mind, you'll find it doesn't need to be replaced as often. That sounds ironic, and it is, but it's also true. Your code will be educational enough for onboarding new people (who would rewrite what they don't understand anyways). It will document its own assumptions (so you can tell when you need a full rewrite, or just something partial that feels more like a modification). It will provide a more useful guiding light for component size than any "do one thing well" handwave. And when the day finally comes, when a rewrite is truly necessary, you'll have all the knowledge you need to do it. In the meantime, you've given yourself permission to shit out something sloppy that might never need replacing, but will teach you a lot about the problem domain.
This is independent of things like test suite methodology, but it does provide a useful seive for thinking about which tests you do and don't want. The right tests will improve your mobility! The wrong tests will set your feet in cement. "Does this make a rewrite easier?" is a very good, very concrete heuristic for telling the two apart.
Sorry for long-posting, btw. I used this space to work through some hazy ideas and sharpen them for myself, particularly because I'm looking at getting into language design and implementation in the near future. Maybe at some future date, I'll rewrite it shorter and clearer.
TL,DR:
Every LOC you write will probably eventually be disposed or replaced. Optimize for that, and achieve Zen.
17 notes · View notes