this post was submitted on 22 Jan 2025
118 points (100.0% liked)

Linux

49183 readers
721 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] john89@lemmy.ca 13 points 1 day ago (3 children)

Fantastic. It's my understanding that SDL is responsible for why we can connect generic controllers to Linux without having to download specific drivers.

[–] refalo@programming.dev 2 points 11 hours ago

In my experience... not really. I would say SDL makes the task of writing controller support code within your own applications easier and higher-level, but in reality it still has not much to do with "drivers" (I assume you mean kernel modules), which the kernel and OS stack already provide multiple unified interfaces for with things like jsdev/evdev/udev/hidapi, regardless of how you access those subsystems (via SDL or otherwise).

[–] addie@feddit.uk 21 points 1 day ago

Kind of. It's the Linux kernel that manages all of the controller drivers and makes them available to userspace, mostly via the evdev interface. SDL is a library for managing graphics, sounds and events in a generic way on multiple platforms and devices. It's overwhelmingly the most common library used for Linux games - Steam used it for all of their Linux-native ports of Source engine games, for instance. But it also presents all gamepad events in a consistent way regardless of their "true source", so generic devices tend to work with every game.

SDL3 mostly clears out all the clutter from the previous versions of SDL. It's a mature library and gamedev has come a long way in that time. Getting rid of all the weird stuff that the API accumulated makes it easier to use and maintain. Plus there were things like managing audio generally, and pen-and-touch gestures mobile phones and tablets, that were quite the head-scratchers before. That's all a bit easier now.

[–] Laser@feddit.org 5 points 1 day ago (1 children)

SDL is kind of the equivalent to DirectX. It provides a standard interface for multimedia applications regardless of underlying mechanisms. Except the 3D acceleration part I think which is handled by OpenGL / Vulkan.

[–] gnuhaut@lemmy.ml 4 points 17 hours ago (1 children)

SDL3 has a new "GPU" API, which is some kind abstraction over Vulkan/DirectX12/Metal. I imagine it hides a bunch of boilerplate as well. With this, I think, one could do a 3D render engine without having to directly use the Vulkan API (or OpenGL, ...). However, the shaders need to be in whatever format the backend expects it seems.

[–] Laser@feddit.org 2 points 17 hours ago

Ah cool, that's interesting.