There’s an ffmpeg command to do it.
There’s an ffmpeg command to do it.
Here’s the how video. Still only mildly interesting lol.
Zram itself doesn’t compress data in the backing device. The data written to the backing device is stored unmodified by Zram. Zram’s function is to compress data within its allocated RAM space. Once that space is full, any incoming data, compressed or uncompressed, overflows to the backing device unmodified by Zram.
If the data is overflowing from Zram into the backing device because the Zram block is full, that doesn’t necessarily mean that data is uncompressible. It simply means that there’s no place to put it even if it was compressible. The truly incompressible data ideally should be stored in the RAM that’s not allocated to the Zram block device, unless that RAM space is also already taken, then that data would go to the backing device. The scenario I’m thinking of is a lot more specific. Ofc, Zram would prioritize truly incompressable & idle data first when pushing into the backing device, keyword there is "idle"
, which supports the idea that the data isn’t necessarily uncompressible.
Already compressed media, for example, can’t really be compressed. In fact, if you try, you might just find it actually ends up bigger than the original.
There’s no case where this would happen, the data being pushed to the backing device is always unmodified by Zram, regardless if it’s compressible or not. Also, already compressed media would not necessarily be seen as incompressible by Zram. Zram can still compress already compressed data to some extent, depending on the type of compression used and the compressibility of the original data. For example, if the original data was compressed using a simple algorithm like LZMA, Zram might be able to achieve better compression using a more advanced algorithm like LZ4.
However, the benefit of compressing already compressed data with Zram is usually minimal as you’ve already said.
This is the primary purpose of CONFIG_ZRAM_MULTI_COMP
to handle cases where the primary algorithm is unable to efficiently compress certain data.
Also, Btrfs uses a built-in pre-compression heuristics algorithm to analyze each file and determine if compression is beneficial. Comparatively, Zram has no such mechanism so it attempts compression regardless.
Tbh, deep down the rabbit hole is an understatement. here’s a more detailed documentation of Zram.
Edits : Wording improvement’s and added supporting sources.
Zram offers way more flexibility and versatility compared to ImDisk.
Zram can be used for swap space or as a general-purpose RAM disk. Unlike a traditional RAM drive, Zram can compress data using a nice hand full of algorithms, notably Zstd; allowing it to store more information within the same RAM capacity leading to faster I/O and efficient memory usage with minimal CPU usage; & LZO-RLE; offering the fastest compression and decompression speeds leading to faster data swapping between compressed and uncompressed states, potentially improving overall system performance. Also, ImDisk afaik only offers NTFS compression for RAM drives which is… well… pretty damn slow for this particular use comparatively.
Additionally, Zram persistence can be configured with writeback devices. ImDisk typically doesn’t offer persistence.
ramdrive.sys isn’t even worth talking about, it never had any kind of compression let alone anything else I mentioned previously.
Zram is very different. What Windows has is closer to Zswap.
That’s not that same. That’s closer to Zswap. “Enable-MMAgent -MemoryCompression” enables compressing inactive memory pages in RAM. Zram is 1 or more compressed block devices in RAM that can store a much larger variety of data.
But does it have Zram? 😏
Hell yeah!! So many needed fixes that have been bugging me for a while are finally fixed!!
Agreed.
Why should we have the same standard for two fundamentally different languages with distinct design philosophies and features?
Even if the C coding standard was used, it fundamentally will not make Rust more legible to C-only kernel devs. Imposing the C coding standard on Rust would be fundamentally counterproductive, as it would undermine Rust’s safety and productivity features. Rust’s coding guidelines align with its design principles, promoting idiomatic Rust code that leverages language features like ownership, borrowing, and lifetimes.
This ensures that Rust code in the kernel is safe, concurrent, and maintainable, while adhering to the language’s best practices.
While the C coding standard served its purpose well for the procedural C language, it is ill-suited for a modern language like Rust, which has different priorities and language constructs. Having separate coding standards allows each language to shine in its respective domain within the kernel, leveraging their strengths while adhering to their respective design philosophies. Having separate coding standards for C and Rust within the kernel codebase is the sensible approach.
In any case, it’s the temporary file directory so it should be fine to delete them manually.
Just make sure that podman isn’t running while you’re deleting them, assuming it is podman.
This error is caused by a compatibility issue between Wine’s RandR (X11 display extension) implementation and the NVIDIA proprietary drivers.
a. Install winetricks and run winetricks orm=backbuffer glsl=disable
This will configure Wine to use a different rendering method that is compatible with the NVIDIA drivers.
&/Or
b. Use a tool like Q4Wine to configure the Wine prefix and set the “UseRandR” option to “N” This will disable Wine’s use of the RandR extension and use a fallback method instead.
That should fix it.
What’s the WINE error message you get with the proprietary driver?
Font rendering is complex and depends on several settings and features lining up perfectly. Anti-aliasing, DPI, fractional scaling, hinting, and subpixel rendering are all important factors that contribute to the quality and appearance of text on a digital display.
On KDE plasma the fractional scaling also plays a role in text rendering. Then there’s also the “Legacy Application Scaling” for X11 apps on the Wayland session.
Check your install paths when you uninstall them. Do the files from the packages still exist?
1. Monopolistic business practices to crush competition (Netscape, Java, web browsers, etc.).
2. Illegal bundling of Internet Explorer with Windows to eliminate browser rivals.
3. Keeping useful Windows APIs secret from third-party developers to disadvantage competitors.
4. Embracing proprietary software and vendor lock-in tactics to prevent users from switching.
5. “Embrace, Extend, Extinguish” strategy against open source software.
6. Privacy violations through excessive data collection, user tracking, and sharing data with third parties.
7. Complicity in enabling government surveillance and spying on user data (PRISM scandal).
8. Deliberately making hardware/software incompatible with open source alternatives.
9. Anti-competitive acquisitions to eliminate rivals or control key technologies (GitHub, LinkedIn, etc.).
10. Unethical contracts providing military technology like HoloLens for warfare applications.
11. Failing to address workplace issues like sexual harassment at acquired companies.
12. Forced automatic Windows updates that override user control and cause system issues.
13. Maintaining monopolistic dominance in productivity software and operating systems.
14. Vague and toothless AI ethics principles while pursuing lucrative military AI contracts.
15. Continued excessive privacy violations and treating users as products with Windows.
16. Restrictive proprietary licensing that stifles open source adoption.
This isn’t even anywhere near everything.