• moseschrute@lemmy.world
      link
      fedilink
      arrow-up
      3
      arrow-down
      1
      ·
      edit-2
      4 months ago
      • The lowest level is transistors, which are electronic switches that have an on and off state. In other words, they are binary and can represent 0 and 1
      • Those get combined into gates of two inputs. An “and” gate outputs 1 if both its inputs are 1. An “or” gate outputs 1 if either of its inputs are 1. And Xor gate outputs 1 if and only if one of its inputs is 1.
      • A bunch of other complicated shit happens
      • Boom assembly. Don’t try and read or write it, because it will make you wanna quit computers
      • C comes into play. Designed to unfuck, assembly so you can actually write readable code. Just don’t forget to release your memory
      • More complicated shit. Something about kernels and GNU. Userland vs kernel land? Idk
        • ARM might be different since it can run process outside of userland and kernel I think? Something about secure compute/marketing BS
      • Inside of user land, we have the web browser. This is there the cool shit happens.
      • The browser runs JavaScript, CSS and HTML. JavaScript is a single threaded, but nonblocking language with an even loop and microtask queue.
      • Inside of the browser we run React. React is a framework where UI is a function of state and the data flows in one direction. It can also be used to slam your CPU.
      • Now that we’re into high level languages, it would only be fun if it looped back around to the beginning. So we invoke some C code that has been compiled to web assembly. Mmmm how efficient

      Edit: I tried to do this all off the top of my head. After writing this, I think I meant user space vs kernel space. Idk if user land is a word

      • Valmond@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        4 months ago

        Nice 👍🏽!

        Machin code comes to mind, and “more” high level languages like C++, template metaprogramming and other horror stories 💀

        And CD players!

        Cheers 😋

        • moseschrute@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          4 months ago

          My impression of C++ is that’s it’s actually C++++++++ as in, how many more decades of features can we cram into this language before it explodes

          What’s a CD player /s

          Fun fact about a random CD player. The USB-A external CD player Apple sold after removing the internal CD player kinda abused the USB standard. I believe it needed more current than was allowed by USB, so Apple found some way to make this specific device draw more power than the USB standard supported at the time. Today, I believe USB-C includes a handshake that negotiates power requirements, but at the time, USB-A didn’t support this.

          Tbh, I don’t really know where assembly ends and machine code starts. But do know that assembly is tied to your specific architecture

          • Valmond@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            4 months ago

            You’re not wrong about C++ 😋

            Machine code is just the numbers, assembler is mnemonics and stuff and needs an “interpreter” to turn it into useful machine code (a C++ compiler also spits out machine code BTW).

            Spot on about USB standards, no idea if apple did what you saulid though, wouldn’t doubt it!