site banner

Friday Fun Thread for January 31, 2025

Be advised: this thread is not for serious in-depth discussion of weighty topics (we have a link for that), this thread is not for anything Culture War related. This thread is for Fun. You got jokes? Share 'em. You got silly questions? Ask 'em.

2
Jump in the discussion.

No email address required.

Windows for work, and Linux for pleasure.

Funny, for me it is the opposite. I use Linux for work, (plus for some pleasure like posting here, some light gaming) and Win for pleasure (gaming only).

Second, I saw a lot of posts about how Linux eventually corrupts NTFS drives if you try to use them for anything other than simple data storage.

Personally, I would not use NTFS outside of windows much. Storage is cheap enough that getting a separate partition or even disk per OS seems preferable. In any case, you want some backup strategy. Some people will use a NTFS partition to share data between the operating systems (as linux support for ntfs is better than windows support for ext).

With regard to rust (which I have yet to learn), my understanding is that it is that the aim of the language is to provide an environment which can be as safe as Java with no runtime overhead over C, with a particular focus on thread safety. This means that you have to bother a lot annotating the lifetime of a reference in places where C/C++ would just be 'whatever, enjoy your nasal demons if you get it wrong and do a use-after-free'.

Of course, not every piece of code which is safe can be proven to a compiler to be safe. Rice's theorem and all that. Or it might be that you need to call some C function or do I/O using a device mapped to memory. Thus unsafe.

I think that from the mindset of an auditor looking for security vulnerabilities, there is still a giant difference between C and rust. In C, every line is potentially dangerous, and you need to spread your attention wide. By contrast, unsafe blocks stick out. Now, it might be that the author decided to put everything in unsafe blocks or equivalently have a function to write to arbitrary memory addresses which he calls in a zillion places, but then you can just report that that code is generally unsafe. If there are just a few unsafe blocks, you can think long and hard about when these blocks are entered, why they might be correct and so on.