r/linux • • 3h ago

Development OpenCourant: The community continuation of OpenRadioss

Thumbnail opencourant.org
21 Upvotes

OpenCourant is an open-source finite element solver for crash, impact, and highly nonlinear dynamic simulation — carrying forward the OpenRadioss code base under the GNU AGPL, in the open, where it belongs.

A project of the Rocky Enterprise Software Foundation


r/linux • • 2h ago

Discussion Rusty on Linux, moving from test automation into DevOps. Is a Linux cert (LFCS/RHCSA/Linux+) worth it, or should I just get the hours in?

7 Upvotes

I've been in the industry about 14 years, mostly test automation, and I'm moving toward DevOps/platform engineering. Day to day I work with GitLab CI/CD, Terraform, Helm/Kubernetes deployments, and some AWS. I'm currently leading a migration of a large number of services onto Kubernetes.

The problem is that I work at a .NET/Windows shop, so I've barely touched Linux in years. I took a basic self-check recently (systemctl/journalctl, finding what's on a port, disk usage, apt, file ownership) and did badly. I knew roughly which tool to reach for but not the actual commands.

My employer pays for certs. My current plan is KCNA, then CKA, Terraform Associate, and AWS Solutions Architect Associate. I wasn't planning on a Linux cert, just a refresher course plus using WSL daily and running a homelab.

Questions:

  1. Is LFCS, RHCSA, or Linux+ worth adding for someone aiming at cloud/platform roles, or does CKA cover the "can use Linux" signal well enough?
  2. If one is worth it, which, and would you do it before or after CKA?
  3. For those who came from a Windows-heavy background, what got your Linux skills to stick when your job didn't require it?
  4. How much Linux do you really use in a platform role, compared with what the certs test?

Not looking for reassurance, honest takes welcome.


r/linux • • 1d ago

Hardware Linux 7.4 To Introduce Initial Device Trees For Apple M4, A18 Pro For MacBook Neo

Thumbnail phoronix.com
661 Upvotes

r/linux • • 1d ago

Hardware Intel Ready With A Big Improvement For Battlemage With Linux 7.4

Thumbnail phoronix.com
144 Upvotes

r/linux • • 2h ago

Discussion I built a watchdog for GNOME's file indexer because LocalSearch/Tracker kept freezing my 8 GB laptop

Thumbnail
0 Upvotes

r/linux • • 1d ago

Discussion I'm kinda confused on how will the new EU Age Verification thing work on Linux

105 Upvotes

Isn't it like physically impossible to enforce on Linux due to its open-source nature? Are they just gonna ban Linux? That's never gonna work BCS Linux is essential to many important governmental electronic devices

Are they just gonna send the police to some random school to check their PCs are not using Linux? Governments using Linux are in the grow, how do you even address that problem?

It's just really stupid overall


r/linux • • 16h ago

Software Release [App] Whisp v1.6.0 Universal launch shortcut and Bug fixes

Post image
0 Upvotes

Whisp is a fast, zero-friction "anti-note" scratchpad built natively for GNOME with GTK4 and Libadwaita. It replaces heavy file hierarchies with a spatial, swipeable canvas for quick thoughts, Markdown editing, and temporary scratchpad notes.

New Features

  • Universal Launch Toggle: Global shortcut support to quickly toggle Whisp window visibility (Preferences > Shortcuts), And it is customizable.
  • Note Statistics (::count): Type ::count anywhere in your note to instantly inspect word, character, and line count statistics.
  • Asterisk Lists: Create and format bulleted lists using standard asterisks (*) alongside dash lists.
  • Shortcut Recorder Improvements: Pressing Backspace inside the shortcut recorder now cleanly clears or disables assigned shortcuts.

Fixes & Maintenance

  • List Toggling Refactor: Fixed Ctrl+S list item toggling to prevent multi-checkbox stacking and unintended line deletions.
  • GNOME 51 Runtime: Updated Flatpak runtime to GNOME 51.
  • Slate Mode Polish: Fixed update notification banner layout in Slate Mode.
  • Compose Key Fix: Corrected key press handling for Compose Key combinations.
  • Ubuntu Icon & D-Bus Fixes: Fixed missing application icon issues on Ubuntu desktop sessions.

Links


r/linux • • 6h ago

Discussion Hot take: we actually don't need that much compute power

0 Upvotes

Ive been using this machine for a long time now, and it has worked really well for me. As you can see, its kind of old and has pretty weak specs

Yet, for everything Ive used it for it has worked flawlessly. I usually use my computer for basic stuff and daily tasks, and sometimes even gaming. I only really play mc and some indie games

Sure, these are the perfect specs for me. But what Im trying to convey is that you dont actually have to buy the latest hardware or have a decent GPU if you dont need one. We gotta stop wasting our money on things we dont actually need

Sure, you can buy some stuff just for fun, or because you enjoy messing around with it. But seeing these things as an obligation or a necessity is pointless

I will probably stick with low-end hardware forever and only upgrade when I actually need something better. I actually spent more money on my keyboard and mouse because I know they affect my overall experience and are genuinely important to me


r/linux • • 6h ago

Development I built a FOSS CLI that turns a network failure into a portable support snapshot

Post image
0 Upvotes

One thing I've always disliked about troubleshooting networking on Linux is how quickly it turns into:

"Can you run ip addr?"

"Now ip route."

"What does resolvectl say?"

"Try dig."

"Can you curl the endpoint?"

"Does TLS work?"

"Are you behind a proxy?"

...followed by a giant pile of terminal output collected at different times.

So I've been building an open-source tool called Network Doctor (netdoc).

GitHub: https://github.com/heymaikol/network-doctor

The idea isn't to replace tools like ip, dig, curl, mtr, Wireshark, or OpenSSL. Those are far more powerful at their individual jobs.

What I wanted was something that sits one level above them and answers:

What part of the connection appears to be failing, what evidence supports that, and what should I investigate next?

One feature I've become particularly fond of is the support snapshot.

Network Doctor can collect the diagnostic state from a failing machine into a portable .ndoc snapshot. That means the evidence can be inspected later instead of trying to reconstruct what the network looked like after the problem has disappeared.

The checks cover things like:

  • interfaces and routing
  • DNS and public-DNS comparison
  • TCP reachability
  • TLS
  • HTTP
  • proxy behavior
  • path MTU

The snapshot format is also designed around a privacy boundary so diagnostic information can be shared without blindly dumping everything about the machine.

I've been testing this against actual failure conditions rather than only mocks.

For example, in a virtual Linux/OpenWrt lab I've deliberately reproduced:

  • split DNS
  • proxy-only Internet access
  • path-MTU black holes
  • broken routes
  • DNS failures
  • situations where encrypted DNS transports disagree

I'm also experimenting with two-sided diagnosis, where Network Doctor runs at both ends of a connection and compares what each side sees. A failure can look completely different depending on which side you're standing on.

A big goal of the project is to make a support conversation more like:

"Here's the snapshot from when it was broken."

instead of:

"It's working again now, but I swear it wasn't ten minutes ago."

It's written in Go and supports Linux, macOS, and Windows, although Linux has also been useful as the environment for the more involved simulation and network-namespace testing.

For transparency, I've used AI coding agents extensively while developing the project. They've contributed implementation code, tests, documentation, and review work. I set the requirements and architecture, decide what gets accepted, and run the resulting code through real, simulated, race, fuzz, and integration testing.

I'd be interested in feedback from Linux users who regularly end up debugging networking:

What information do you usually wish someone had captured while the problem was still happening?


r/linux • • 8h ago

Software Release FreeLinX base 1.3.1 Release

Post image
0 Upvotes

FreeLinX base 1.3.1 Release

FreeLinX base 1.3.1 is now available. FreeLinX is an independent Linux distribution—not based on Debian, Alpine, or any other distro—built with zero GNU software.

The system stack includes the Linux 6.18 LTS kernel, musl 1.2.5 libc, LLVM toolchain (clang, LLD, compiler-rt, libc++), NetBSD userland, runit init, mdevd, mksh, netbsd-curses, doas, and Limine boot loader (BIOS and UEFI). Compliance with the "No GNU" policy is verified automatically via check-nognu.

The base edition provides a minimal console environment consuming about 60 MB of RAM post-boot (~60.87 MiB as captured in the fastfetch output). The ~300 MB hybrid ISO runs as a live environment via squashfs with a RAM overlay, and xsetup installs the system to GPT disks with no initramfs.

Package management is handled by xpkg, featuring 428 signed packages (Ed25519 signatures, sha256 checks, atomic upgrades with rollback) including Xorg, Openbox, dwm, Firefox, mpv, and ffmpeg. Base system upgrades use flxupgrade, which preserves user settings and /home.

The distribution builds from source on any x86_64 Linux host without root via sh build-base.sh. Licensed under BSD-2-Clause.

Support & Infrastructure: Donations via Buy Me a Coffee or crypto help cover domain and package manager infrastructure costs.

Testing has been conducted in QEMU/KVM. Real hardware testers are wanted; please note that Secure Boot must be disabled. Please submit feedback and hardware test reports.


r/linux • • 1d ago

Software Release My cross-platform infinite whiteboard project (Scribble)

5 Upvotes

I've just recently implemented polyline functionality for the Line and Arrow tool and also added a new Diamond Tool. Next I'm gonna try and see if I can fix the weird drawing tablet issue by updating the Avalonia version

https://github.com/TruePadawan/Scribble

Scribble - showing polyline and node features along with Diamonds

r/linux • • 17h ago

Software Release Update of the TuxExec

0 Upvotes

Source (open):

this is the TuxExec v0.02 source , just the simple c_cpp_helper update

#include <stdio.h>

#include <unistd.h>

#include <sys/types.h>

#include <sys/wait.h>

#include <stdlib.h>

#include <string.h>

void input_cmd(char *buf, size_t size)

{

printf("TuxExec: ");

if (fgets(buf, size, stdin) != NULL) {

buf[strcspn(buf, "\n")] = '\0';

}

}

void wslinstubuntu(void)

{

system("wsl --install -d Ubuntu");

printf("window fuckass using wsl btw =)) ");

}

void inst(void)

{

char pkgmn[256];

printf("Linux pkgmn = ? (pacman ,apt , dnf): ");

fgets(pkgmn, sizeof(pkgmn), stdin);

pkgmn[strcspn(pkgmn, "\n")] = '\0';

if (strcmp(pkgmn, "apt") == 0) {

while(1) {

char apt[512];

printf("pkg install: ");

fgets(apt, sizeof(apt), stdin);

apt[strcspn(apt, "\n")] = '\0';

pid_t pid = fork();

if (pid < 0) {

perror("pid failed");

}

else if (pid == 0) {

char *args[] = {"sudo", "apt", "install", apt, NULL};

execvp(args[0], args);

perror("failed execvp");

exit(1);

}

else {

wait(NULL);

}

}

}

else if (strcmp(pkgmn, "dnf") == 0) {

while(1) {

char dnf[512];

printf("pkg install: ");

fgets(dnf, sizeof(dnf), stdin);

dnf[strcspn(dnf, "\n")] = '\0';

pid_t pid = fork();

if (pid < 0) {

perror("failed pid");

}

else if (pid == 0) {

char *args[] = {"sudo", "dnf", "install", dnf, NULL};

execvp(args[0], args);

perror("failed execvp");

exit(1);

}

else {

wait(NULL);

}

}

}

else if (strcmp(pkgmn, "pacman") == 0) {

char pacman[512];

printf("pkg install: ");

fgets(pacman, sizeof(pacman), stdin);

pacman[strcspn(pacman, "\n")] = '\0';

pid_t pid = fork();

if (pid < 0) {

perror(" failed pid");

}

else if (pid == 0) {

char *args[] = {"sudo", "pacman", "-S", pacman, NULL};

execvp(args[0], args);

perror("failed execvp");

exit(1);

}

else {

wait(NULL);

}

}

}

void c_cpp_helper(void)

{

int choice;

do {

system("clear");

printf("C vs C++ QUICK HELPER & COMPARISON\n\n");

printf("1.Learn about if-else in C vs C++\n");

printf("2.Compare I/O (printf/scanf vs cin/cout)\n");

printf("3.C99 stdbool.h vs C++ Native Bool\n");

printf("4.Memory Management (malloc/free vs new/delete)\n");

printf("5.Back / Exit\n\n");

printf("Enter your choice: ");

if (scanf("%d", &choice) != 1) {

while (getchar() != '\n');

continue;

}

system("clear");

switch (choice) {

case 1:

printf("IF-ELSE IN C VS C++\n\n");

printf("In C:\n");

printf(" Uses integer values to evaluate conditions.\n");

printf(" 0 means FALSE, any NON-ZERO value means TRUE.\n");

printf(" Example: if (1) { /* Always runs */ }\n\n");

printf("In C++:\n");

printf(" Has native 'bool' type with 'true' and 'false'.\n");

printf(" Conditions like if (expr) still implicitly convert numbers to bool.\n");

break;

case 2:

printf("PRINTF/SCANF (C) VS CIN/COUT (C++)\n\n");

printf("C (printf / scanf):\n");

printf(" Pure functions inside <stdio.h>.\n");

printf(" Requires explicit format specifiers: %%d, %%s, %%f, %%p.\n");

printf(" Minimal memory footprint, perfect for lightweight CLI tools.\n\n");

printf("C++ (cin / cout):\n");

printf(" Stream objects inside <iostream>.\n");

printf(" Automatically detects data types via operator overloading (<<, >>).\n");

printf(" Convenient, but increases binary size.\n");

break;

case 3:

printf("BOOLEAN TYPES\n\n");

printf("In C:\n");

printf(" C89/C90 has no native bool type.\n");

printf(" Since C99, you must include <stdbool.h> to use 'bool', 'true', 'false'.\n\n");

printf("In C++:\n");

printf(" 'bool', 'true', and 'false' are built-in keywords.\n");

break;

case 4:

printf("MEMORY MANAGEMENT\n\n");

printf("In C:\n");

printf(" Uses malloc(), calloc(), realloc() for Heap allocation.\n");

printf(" Manual memory cleanup required using free() to prevent leaks.\n\n");

printf("In C++:\n");

printf(" Uses 'new' and 'delete' (or 'delete[]').\n");

printf(" Supports RAII and Smart Pointers (unique_ptr, shared_ptr) for safety.\n");

break;

case 0:

printf("Exiting C/C++ Helper.\n");

break;

default:

printf("Invalid choice!\n");

break;

}

if (choice != 0) {

printf("\n[Press Enter to continue...]");

while (getchar() != '\n');

getchar();

}

} while (choice != 0);

}

void rm(void)

{

char rm_file[80];

printf("file want to remove ? ");

fgets(rm_file, sizeof(rm_file), stdin);

rm_file[strcspn(rm_file, "\n")] = '\0';

char sure[10];

printf("Sure ? Y/n : ");

fgets(sure, sizeof(sure), stdin);

sure[strcspn(sure, "\n")] = '\0';

if (strcmp(sure, "y") == 0 || strcmp(sure, "Y") == 0) {

pid_t pid = fork();

if (pid == 0) {

char *args[] = {"sudo", "rm", rm_file, NULL};

execvp(args[0], args);

perror("failed execvp");

exit(1);

}

else {

wait(NULL);

}

} else {

return;

}

}

void systeminfo(void)

{

pid_t pid = fork();

if (pid == 0) {

char *args[] = {"sh", "-c", "ls && lsblk && ls /", NULL};

execvp(args[0], args);

perror("failed execvp");

exit(0);

}

else {

wait(NULL);

}

}

void rep(void)

{

while(1) {

char rep_cmd[50];

printf(" what do you want?\n"

"<how to see info of system linux>\n"

"<how to get remove file in this system>\n"

"<how to get install pkg>\n"

"c_cpp_helper\n"

"<how to install wsl in this system \\\\ powershell>: ");

fgets(rep_cmd, sizeof(rep_cmd), stdin);

rep_cmd[strcspn(rep_cmd, "\n")] = '\0';

if (strcmp(rep_cmd, "how to see info of system linux") == 0) {

printf("in your terminal , getting command ls, lsblk, ls /, whoami, in this system, you command the systeminfo\n");

} else if (strcmp(rep_cmd, "how to get remove file in this system") == 0) {

printf(" in your terminal, getting command rm and your file path wanted to remove, in this system you command rm and write the path file\n");

} else if (strcmp(rep_cmd, "how to get install pkg") == 0) {

printf("sudo and your pkg and your pkg , in this system, just command inst and select pkgmanager, select pkg\n");

} else if (strcmp(rep_cmd, "how to install wsl in this system \\ powershell") == 0) {

printf(" you really use window bruhhh haha, just command wsl --install Ubuntu or in this system, just command wslinstubuntu\n");

} else if (strcmp(rep_cmd, "c_cpp_helper") == 0) {

printf("command the c_cpp_helper for the c and c++ helper");

} else {

exit(0);

}

}

}

int main(void) {

char user_input[256];

while(1) {

input_cmd(user_input, sizeof(user_input));

if (strcmp(user_input, "wslinstubuntu") == 0) {

wslinstubuntu();

} else if (strcmp(user_input, "inst") == 0) {

inst();

} else if (strcmp(user_input, "rm") == 0) {

rm();

} else if (strcmp(user_input, "systeminfo") == 0) {

systeminfo();

} else if (strcmp(user_input, "c_cpp_helper") == 0) {

c_cpp_helper();

} else if (strcmp(user_input, "rep") == 0) {

rep();

} else if (strcmp(user_input, "exit") == 0) {

break;

} else {

printf("not found ***\n");

}

}

return 0;

}
this is the TuxExec v0.02 source , just the simple c_cpp_helper update

#include <stdio.h>

#include <unistd.h>

#include <sys/types.h>

#include <sys/wait.h>

#include <stdlib.h>

#include <string.h>

void input_cmd(char *buf, size_t size)

{

printf("TuxExec: ");

if (fgets(buf, size, stdin) != NULL) {

buf[strcspn(buf, "\n")] = '\0';

}

}

void wslinstubuntu(void)

{

system("wsl --install -d Ubuntu");

printf("window fuckass using wsl btw =)) ");

}

void inst(void)

{

char pkgmn[256];

printf("Linux pkgmn = ? (pacman ,apt , dnf): ");

fgets(pkgmn, sizeof(pkgmn), stdin);

pkgmn[strcspn(pkgmn, "\n")] = '\0';

if (strcmp(pkgmn, "apt") == 0) {

while(1) {

char apt[512];

printf("pkg install: ");

fgets(apt, sizeof(apt), stdin);

apt[strcspn(apt, "\n")] = '\0';

pid_t pid = fork();

if (pid < 0) {

perror("pid failed");

}

else if (pid == 0) {

char *args[] = {"sudo", "apt", "install", apt, NULL};

execvp(args[0], args);

perror("failed execvp");

exit(1);

}

else {

wait(NULL);

}

}

}

else if (strcmp(pkgmn, "dnf") == 0) {

while(1) {

char dnf[512];

printf("pkg install: ");

fgets(dnf, sizeof(dnf), stdin);

dnf[strcspn(dnf, "\n")] = '\0';

pid_t pid = fork();

if (pid < 0) {

perror("failed pid");

}

else if (pid == 0) {

char *args[] = {"sudo", "dnf", "install", dnf, NULL};

execvp(args[0], args);

perror("failed execvp");

exit(1);

}

else {

wait(NULL);

}

}

}

else if (strcmp(pkgmn, "pacman") == 0) {

char pacman[512];

printf("pkg install: ");

fgets(pacman, sizeof(pacman), stdin);

pacman[strcspn(pacman, "\n")] = '\0';

pid_t pid = fork();

if (pid < 0) {

perror(" failed pid");

}

else if (pid == 0) {

char *args[] = {"sudo", "pacman", "-S", pacman, NULL};

execvp(args[0], args);

perror("failed execvp");

exit(1);

}

else {

wait(NULL);

}

}

}

void c_cpp_helper(void)

{

int choice;

do {

system("clear");

printf("C vs C++ QUICK HELPER & COMPARISON\n\n");

printf("1.Learn about if-else in C vs C++\n");

printf("2.Compare I/O (printf/scanf vs cin/cout)\n");

printf("3.C99 stdbool.h vs C++ Native Bool\n");

printf("4.Memory Management (malloc/free vs new/delete)\n");

printf("5.Back / Exit\n\n");

printf("Enter your choice: ");

if (scanf("%d", &choice) != 1) {

while (getchar() != '\n');

continue;

}

system("clear");

switch (choice) {

case 1:

printf("IF-ELSE IN C VS C++\n\n");

printf("In C:\n");

printf(" Uses integer values to evaluate conditions.\n");

printf(" 0 means FALSE, any NON-ZERO value means TRUE.\n");

printf(" Example: if (1) { /* Always runs */ }\n\n");

printf("In C++:\n");

printf(" Has native 'bool' type with 'true' and 'false'.\n");

printf(" Conditions like if (expr) still implicitly convert numbers to bool.\n");

break;

case 2:

printf("PRINTF/SCANF (C) VS CIN/COUT (C++)\n\n");

printf("C (printf / scanf):\n");

printf(" Pure functions inside <stdio.h>.\n");

printf(" Requires explicit format specifiers: %%d, %%s, %%f, %%p.\n");

printf(" Minimal memory footprint, perfect for lightweight CLI tools.\n\n");

printf("C++ (cin / cout):\n");

printf(" Stream objects inside <iostream>.\n");

printf(" Automatically detects data types via operator overloading (<<, >>).\n");

printf(" Convenient, but increases binary size.\n");

break;

case 3:

printf("BOOLEAN TYPES\n\n");

printf("In C:\n");

printf(" C89/C90 has no native bool type.\n");

printf(" Since C99, you must include <stdbool.h> to use 'bool', 'true', 'false'.\n\n");

printf("In C++:\n");

printf(" 'bool', 'true', and 'false' are built-in keywords.\n");

break;

case 4:

printf("MEMORY MANAGEMENT\n\n");

printf("In C:\n");

printf(" Uses malloc(), calloc(), realloc() for Heap allocation.\n");

printf(" Manual memory cleanup required using free() to prevent leaks.\n\n");

printf("In C++:\n");

printf(" Uses 'new' and 'delete' (or 'delete[]').\n");

printf(" Supports RAII and Smart Pointers (unique_ptr, shared_ptr) for safety.\n");

break;

case 0:

printf("Exiting C/C++ Helper.\n");

break;

default:

printf("Invalid choice!\n");

break;

}

if (choice != 0) {

printf("\n[Press Enter to continue...]");

while (getchar() != '\n');

getchar();

}

} while (choice != 0);

}

void rm(void)

{

char rm_file[80];

printf("file want to remove ? ");

fgets(rm_file, sizeof(rm_file), stdin);

rm_file[strcspn(rm_file, "\n")] = '\0';

char sure[10];

printf("Sure ? Y/n : ");

fgets(sure, sizeof(sure), stdin);

sure[strcspn(sure, "\n")] = '\0';

if (strcmp(sure, "y") == 0 || strcmp(sure, "Y") == 0) {

pid_t pid = fork();

if (pid == 0) {

char *args[] = {"sudo", "rm", rm_file, NULL};

execvp(args[0], args);

perror("failed execvp");

exit(1);

}

else {

wait(NULL);

}

} else {

return;

}

}

void systeminfo(void)

{

pid_t pid = fork();

if (pid == 0) {

char *args[] = {"sh", "-c", "ls && lsblk && ls /", NULL};

execvp(args[0], args);

perror("failed execvp");

exit(0);

}

else {

wait(NULL);

}

}

void rep(void)

{

while(1) {

char rep_cmd[50];

printf(" what do you want?\n"

"<how to see info of system linux>\n"

"<how to get remove file in this system>\n"

"<how to get install pkg>\n"

"c_cpp_helper\n"

"<how to install wsl in this system \\\\ powershell>: ");

fgets(rep_cmd, sizeof(rep_cmd), stdin);

rep_cmd[strcspn(rep_cmd, "\n")] = '\0';

if (strcmp(rep_cmd, "how to see info of system linux") == 0) {

printf("in your terminal , getting command ls, lsblk, ls /, whoami, in this system, you command the systeminfo\n");

} else if (strcmp(rep_cmd, "how to get remove file in this system") == 0) {

printf(" in your terminal, getting command rm and your file path
wanted to remove, in this system you command rm and write the path
file\n");

} else if (strcmp(rep_cmd, "how to get install pkg") == 0) {

printf("sudo and your pkg and your pkg , in this system, just command inst and select pkgmanager, select pkg\n");

} else if (strcmp(rep_cmd, "how to install wsl in this system \\ powershell") == 0) {

printf(" you really use window bruhhh haha, just command wsl
--install Ubuntu or in this system, just command wslinstubuntu\n");

} else if (strcmp(rep_cmd, "c_cpp_helper") == 0) {
printf("command the c_cpp_helper for the c and c++ helper");
} else {

exit(0);

}

}

}

int main(void) {

char user_input[256];

while(1) {

input_cmd(user_input, sizeof(user_input));

if (strcmp(user_input, "wslinstubuntu") == 0) {

wslinstubuntu();

} else if (strcmp(user_input, "inst") == 0) {

inst();

} else if (strcmp(user_input, "rm") == 0) {

rm();

} else if (strcmp(user_input, "systeminfo") == 0) {

systeminfo();

} else if (strcmp(user_input, "c_cpp_helper") == 0) {
c_cpp_helper();
} else if (strcmp(user_input, "rep") == 0) {

rep();

} else if (strcmp(user_input, "exit") == 0) {

break;

} else {

printf("not found ***\n");

}

}

return 0;

}


r/linux • • 9h ago

Security I hate GNU/Linux fragmentation.

0 Upvotes

As the title says.

I’m not talking about the many families, but of the many, many unnecessary derivatives.

I’ve been a distro-hopper when I started to use Linux and I thought that it was all about complete control over the OS and complete freedom to customise whatever you like. But I was just a child.

Growing up, I just understood that the OS you use is a tool. A tool that you use to work and handle sensitive data, that should be well built and reliable. But most importantly safe.

A product that has the average end user as a target should be stable and safe. These should be the first things the developers have in mind and not the last. Sincerely if you aren’t able to ship a product that is secure by default and your target is the one said above, you shouldn’t.

Personally, in the end, the distro I recommend to most users is Fedora. But that’s my take, what’s yours?

(Had to repost ‘cause of email verification, talking about security, LOL)


r/linux • • 2d ago

Event Ubuntu's Next Rust Effort May See OpenPGP Replaced By Sequoia PGP

Thumbnail phoronix.com
259 Upvotes

r/linux • • 2d ago

Development "Terminal Intent" accepted as a Freedesktop draft specification

Thumbnail mastodon.social
113 Upvotes

r/linux • • 2d ago

Distro News AMD Ryzen AI Developer Platform OS updated with ROCm 10.0, Linux 7.2

Thumbnail phoronix.com
43 Upvotes

r/linux • • 3d ago

Popular Application Siemens ends open-source Radioss Project (OpenRadioss) and deletes GitHub repository

Thumbnail phoronix.com
1.0k Upvotes

r/linux • • 3d ago

Desktop Environment / WM News System 76's COSMIC Desktop Environment will no longer accept LLM-generated content in PRs

Thumbnail reddit.com
684 Upvotes

r/linux • • 2d ago

Kernel Security in the LLM age by Greg Kroah-Hartman

Thumbnail kernel-recipes.org
90 Upvotes

Talk from recent Kernel Recipes about bug reports and fixes.

Interesting view on how bots report things, also interesting breakdown of certain "79 issues" which really were not that many in reality.


r/linux • • 2d ago

Software Release Titan Control: a Linux app for the Titan Army P275MV PLUS monitor (HDR, local dimming, PIP, LED and more over DDC/CI)

Post image
25 Upvotes

Titan Army only ships a Windows tool for the P275MV PLUS, so I reverse-engineered the monitor's DDC/CI protocol and wrote a Linux app (Rust, GTK4/libadwaita) that does the same from your desktop. It is free and open source (MIT).

What it controls

  • All 15 picture modes with their Custom settings (brightness, contrast, gamma, color temperature and RGB, hue/saturation, Color Enhance, Shadow Balance, Night Vision, Dynamic OD, local dimming, Halo, DyDs)
  • HDR (and it switches system HDR on KDE Plasma along with it), Adaptive-Sync, game overlays (crosshair, stopwatch, magnifier, HawkEye)
  • Inputs, PIP/PBP, USB hub, volume, LED lighting, OSD settings
  • Tray menu with favorite modes and settings, and it follows changes you make with the monitor's buttons

Extras

  • The protocol notes and every VCP code I found are documented in the repo, with small Python tools (getter, setter, table reader)
  • The repo also has both official firmware packages with an English translation of the update guide

Install: deb, rpm, AppImage and tar.gz on the Releases page.

Please note: it is alpha software, it writes settings to your monitor, and you use it at your own risk. I tested it only on one monitor (P275MV PLUS), so I'd love feedback from owners of the regular version. The code was written with the help of an LLM, which the README says openly.

Repo: https://github.com/mkarenko/titan-control
Support: https://buymeacoffee.com/mkarenko


r/linux • • 3d ago

Historical Why did Docker take off, but Nspawn didn't?

260 Upvotes

Topic title. Docker is so ubiquitous these days in the public dev space that it's almost unreal to me. It seems like a good 70% of FOSS requires it - and with it all the loquaciousness of YAML and Docker compose. I use it, because I have to.

But whatever happened to the humble systemd-nspawn container? It gives you roughly comparable size to most Docker containers, is (IMO) a heck of a lot easier to configure and run, is portable across systemd systems everywhere, and has been a native part of the Linux ecosystem for over a decade. Was it just Kubernetes coming out the gate swinging that caused Docker to take over the world? I still prefer nspawn, and use "full stack" containers for deployments of things like edge ingress nodes because its fast, simple, intuitive, and hard to screw up.


r/linux • • 4d ago

Discussion How come every Linux site uses Anubis (the anime girl stopping crawlers) instead of something like Cloudflare?

Post image
2.9k Upvotes

Before discovering the Linux rabbit hole I've only seen Cloudflare, hCaptcha and Google's reCaptcha, but it seems like every Linux website uses Anubis... I'm thinking of it being the only open-source option or it being the most effective/modern approach.


r/linux • • 3d ago

Historical Interview with Liam Quin (2017, GIMP Contributor and Artist)

Thumbnail gimp.org
41 Upvotes

r/linux • • 3d ago

Security Encrypted Arch Linux on SATA-to-USB: A Practical Field Guide for Resisting Drive Seizure, Forensic Analysis, and State Coercion

Thumbnail theanarchistlibrary.org
103 Upvotes

r/linux • • 3d ago

Software Release arxy – minimal Arch subsystem to run glibc binaries (incl. Steam) on musl distros, at native speed

7 Upvotes

Hi everyone. I want to show you a project that honestly I'm pretty embarrassed to share, because it's the first time I share something with the general public. Sorry if I sound nervous. I just think it could be useful to someone, so here it is.

I collaborate on Neko Void, specifically on the part that makes images for musl, for the musl C library. And we all know how this goes: stuff made for glibc doesn't work on musl, you have to rebuild it. And proprietary software is hard to build because the source is not free. So most of those apps just don't work. Steam doesn't work by default either, and that's what makes a lot of users run away from musl distros.

There are alternatives. AppImage bundles glibc inside, but when you have a lot of AppImages you end up duplicating deps everywhere and it gets heavy. I also tried Nix as a separate subsystem, but it's extremely heavy even if it runs natively.

My goal was to make those apps run as fast and light as possible, with as little space as possible, without duplicating deps like Flatpak does. So I made arxy, it's a way too basic and simple project: an Arch rootfs that gets mounted so you can install whatever you want on it. Optimized to weigh as little as possible (~130MB tarball), but complete enough that most Arch packages work on any distro. Best part, it keeps AUR access (-bin only).

How it works is pretty simple: it mounts the image with bwrap, and if that's not available it falls back to a basic chroot + ld-linux. It shares /home, /tmp, GPU and kernel, so it runs native. Commands are simple: arxy install <pkg>, arxy update, arxy run <bin>. Since it uses real pacman, deps are shared, no duplication. It creates .desktop launchers normally.

It's one of the first projects I've worked on and I've put a lot of time into it. I'm no expert, so any feedback is welcome and I really invite anyone to collaborate. I tested it on Alpine, Chimera and Void, glibc and musl. I'd love reports from other distros, especially Gentoo musl and weird setups.

Repo, it's GPL-3.0: https://github.com/SrDicov/arxy

I'm the author, happy to answer technical questions here. What do you use for the glibc-on-musl gap?