DragonFly BSD 5.2
dragonflybsd.org
dragonflybsd.org
This is a promising move to the contrary.
[1] https://news.ycombinator.com/item?id=16798244
[2] in some loose, but recognizable definition of modern, featuring checksumming, CoW, deduplication, snapshots...
"TrueOS has been using OpenZFS as its exclusive file system for several years, ensuring advanced OpenZFS functionality is heavily tested and 100% production-ready."
Can't be done. It's 2018 and FAT is still apparently the best we can do for universally usable filesystem.
And don't go trying to pin this on Windows not supporting ext or something stupid like that, because an ext filesystem cannot by default be both read and written universally even on systems that have full ext support, because they bake in permissions and the default umask botches this simple use case.
I realize this is sort of tangential to what you're saying, but I think a big problem we have in tech communities is that we focus too much on fancy interesting things and not enough on stuff that gets things done simply.
I really would have thought that the open source community could have tackled this problem, but no one seems interested.
http://duncanlock.net/blog/2013/05/13/using-udf-as-an-improv...
I would think it would really shine, but haven't seen comparisons - or much market uptake.
Wouldn't significant advantages result in lower costs (e.g., fewer CPUs needed because of higher performance per core due to lower OS overhead) and therefore economics would drive greater use? If it hasn't, why not?
As for your last question, I think largely due to the fact that it's just not mainstream yet.
I do think DragonFly is neat and quite interesting, but I suspect it didn't gain as much momentum because the community behind BSD is already small and reluctant to fracture without stronger reasons. It's worth noting that this is not like spinning off a new Linux distro where you're ultimately just repackaging different variations of the same basic OS - DragonFly is effectively an entirely different OS since the kernel is significantly different.
Slightly out of date, but still relevant benchmarks: https://www.phoronix.com/scan.php?page=article&item=freebsd1...
I guess I'm wondering if complex, multi-box, cloud-scale workloads have any advantage on Dragonfly - or if the optimizations for clustering are in such a narrow band of use cases that modern architectures have passed it by just through brute force.
There's an irony here, in that Matt Dillon was an ex-Amiga hacker (IIRC, some of Dragonfly's architectural choices were inspired by the Amiga). Anyway, the Amiga's linear memory, co-processor-driven architecture was ridiculously more elegant than the PC's segmented memory, CPU-bound approach. Didn't matter though, a huge investment in working around the PC's limitations led to its market dominance.
So, if massive technical accommodations for less efficient OS architectures end up marginalizing Dragonfly, it would be a bit of history repeating itself.
And I'm sure the irony wouldn't be lost on Mr. Dillon.
[1] https://www.dragonflybsd.org/docs/supportedhardware/
[2] http://lists.dragonflybsd.org/pipermail/users/2017-September...
All recent Intel GPUs are supported, including Kabylake and Coffeelake.
But their original architectural decisions were done with this goal in mind [1]: "The ultimate goal of the DragonFly project at its inception was to provide native clustering support in the kernel. This type of functionality requires a sophisticated cache management framework for filesystem namespaces, file spaces and VM spaces." It's not difficult to see how HAMMER came to be three to four years later, given their stated design goals.
[0] http://www.onlamp.com/pub/a/bsd/2004/07/08/dragonfly_bsd_int... [1] https://www.dragonflybsd.org/history/
I know MD5 hash collisions are vaguely possible, but I would think they would be extremely unlikely here.
I recently made an argument to add a new one, Streebog, and you can read the discussion at https://bugs.gentoo.org/show_bug.cgi?id=597736
http://www.win.tue.nl/hashclash/SoftIntCodeSign/
A sha256 or sha512 would be more appropriate.
MD5 fails to _collision_. A collision is when you can find two different things with the same hash. But being able to collide the hash is NOT the same as being able to find a second pre-image, which is what you'd need in order to get "phony files that appear to check out" if the person who originally issued the MD5 checksums didn't collaborate with you.
This means that it is possible that someone could download the real image, introduce some rootkit, and then tinker that (for instance, by adding a hidden file with carefuly crafted content) until the resulting md5 is the same as that of the original image. Then hack the server and upload the modified image in place of the original one, and everyone who installs Dragonfly is now their minion.
If you use a stronger hash (which is not harder for anyone than using md5), then this attack vector becomes impossible. So... even if it is a remote possibility, just use the stronger hash because it is just a dominant strategy (it has upsides, yet 0 downsides).
Yes, it is possible that the DragonFly developers could collude to create two ISOs with the same MD5, one good and one malicious. No, it is not possible that random, evil ne'erdowells could replace the ISO with one with the same MD5, unless the DragonFly developers have conspired with them to make that possible.
If you don't trust the DragonFly developers not to collide the MD5s, you probably shouldn't trust them with the code running in your kernel anyway.
Creating two files with the same MD5 is a very different beast from creating a file with the same MD5 as an arbitrary pre-existing file. These third parties would need to have colluded with the DragonFly developers to make what you're proposing possible.
Generate both SHA256 and SHA512 hashes or maybe SHA512 and some other "unrelated" algorithm (if you want to really play it safe), dump them into a checksums.txt (or whatever) file, then PGP/GPG sign that file (with a widely distributed and certified/signed public key, of course) and you can effectively eliminate any chances of a collision whatsoever.
It seems that the benefits of switching would greatly outweigh the costs associated with doing so (unless this would require some major code changes to your processes/pipelines/etc.).
Now, in this particular scenario (a publisher tells us the MD5 of an image, and we can check it to see we got the image) collision isn't so important. We have to trust you anyway, so we may as well trust you to not collide the hash too. But MD5 is no longer even proof against second pre-image attacks, albeit the best known are as yet impractical. This is really bad news.
MD5 has been known to be irrevocably broken since 2004, and had been expected to fall since the mid to late 1990s). DragonFly BSD was only started in 2003. Why use MD5? Imagine if in 2003 you'd decided to build a 16-bit OS, or one that doesn't do TCP/IP, because after all, in the mid-to-late 1990s that might have seemed fine too...