Threads for misnor

  1. 3

    Wikipedia has the tentative release date as July 31st - I’m excited to try it out. I made sure to mark it on my calendar to check up on when the time comes in case i miss the news :)

    1. 2

      Because I’m a sucker for these things, I’ve already upgraded my servers, after checking the known bugs. No problems so far!

      1. 2

        Last 3 major versions had 4-5 months between freeze and release, so I wouldn’t hold your breath.

        1. 1

          Thanks for letting me know, helps me temper expectations!

      1. 2

        OS Dev seems to have such a huge barrier to entry (obviously? I’ve been through the OS Dev wiki a few times and it hasn’t stuck).

        Much respect to anyone that gets something even slightly off the ground for themselves.

        1. 13

          I didn’t do it all by myself! Much, much credit goes to https://github.com/repnop/, who I talked with nearly daily on the Unofficial Rust Discord server and who helped me figure out several bugs and taught me a ton of general background info about RISC-V. This is also my third or fourth serious attempt to write an OS of some kind or another, and I’ve gotten a little further each time. Plus the Rust crate ecosystem makes life a lot easier as well, since there’s a surprising number of low-level crates such as fdt and goblin for doing things like parsing data structures you’re going to need to parse anyway. And as I say way at the bottom of the readme, targeting RISC-V and the qemu virt machine architecture is also kinda easy mode since it’s quite minimalist but is also close enough to real machines to be satisfying. x86 would involve a lot more tedious “get everything perfect or the machine triple faults”, and ARM would drive me slightly crazy trying to understand what combination of instruction set + extensions + peripherals + whatever else I should be using today and finding the correct docs for all of them.

          You just find a good collection of giants and start a-climbing.

          1. 2

            find a good collection of giants and start a-climbing.

            I love this, thanks.

        1. 4

          I feel what’s more valuable than the new environment variable proposal is learning all the ways to turn off telemetry in all the tools the author mentioned.

          1. 7

            If all of those variables are known, why not make a shim that will toggle them all based on the new environment variables?

            1. 2

              This is a great idea. Like the community-sourced /etc/hosts directories, adblock lists, and the like, it has an actual chance of remaining “in play” as long as there are folks who care about the topic.

            2. 2

              I believe figuring out if what you’re using is going to include telemetry and how to turn it off your self is the most sustainable way to move forward.

              I’ve gotten “used to” Microsoft’s .NET Telemetry so I know to add the flag before I even download it. When you first install .NET Core it will spit out how to opt out, but i’m assuming this is after they’ve already phoned home to say someone has installed.

            1. 6

              Seems like a good idea. Call it a lack of imagination, but I don’t why any of the tech companies listed would bother implementing it.

              1. 6

                I don’t see why any tech company would want to implement this. The entire point of opt-out telemetry is to get the widest possible catch of information. Microsoft has already indicated they won’t expand to adopt this. Unfortunetly the fragmented opt out procedure is a feature, not a bug (to everyone but the privacy conscious).

              1. 13

                Even if you perform all file open and write I/O on a single thread and use a background thread pool only for calling CloseHandle(), you can see a >3x speedup in time to write files.

                Yikes!

                1. 6

                  The CloseHandle() one was the biggest surprise for me, hunting down and finding Windows Defender / AV as the culprit must of been quite the pursuit. Interesting that the work around can end up being faster than Linux!

                  1. 7

                    There’s also another issue there, which is an exclusive lock is used as part of CloseHandle() that’s acquired shared when writing data to disk. This means that even without a virus scanner, it’s possible to open a file, write to the cache (at memory speed), then close the handle and the close will wait for that data to get written to disk. It’s a race condition based on when the system decides to write the cache, but it’s not that unlikely when running a build that writes a lot of data into the cache.

                    Edit: That said, the solution of processing CloseHandle() in the background has big caveats. A lot of work in CloseHandle is required to be synchronous, to do things like deleting the file if needed, releasing sharing modes to allow future opens, releasing byte range locks, indicate to other services that the file has changed, etc. Doing this asynchronously may or may not be acceptable - if the app is never going to try to open another handle to the file and is not deleting it, it doesn’t matter, but it’s not safe to generically defer this work without risking introducing sharing violations.

                    Edit #2: As far as hunting it down, xperf is … well, I can’t say xperf is great, but it can capture a lot of data. A flame graph in wpa takes a while to render, but it highlights things like APIs that take more time than you expect very easily. The harder part of performance work is wait chain analysis where something is waiting for something that’s waiting for something (etc) with all kinds of different synchronization primitives and you want to know why it’s not moving.

                    1. 4

                      While I didn’t realize it at the time, the cause for this was/is Windows Defender.

                      These are my favorite, where you know that something is a problem, but never get to figure out why. And then you find the why some months later, and go “oh holy shit!”

                      1. -1

                        hunting down and finding Windows Defender / AV as the culprit must of been quite the pursuit

                        Do you mean must have been?

                    1. 4

                      If it warms up a bit, going outside for as long as possible.

                      Failing that I am planning to take a dive into Godot as I’ve realized “raw” rendering really isn’t up my alley at all.