• TimeSquirrel@kbin.social
    link
    fedilink
    arrow-up
    8
    ·
    edit-2
    5 months ago

    Wonder what the reason was for so much being in raw assembly when C existed. A basic library/API would be one of the first things I’d tackle in an OS. Move on to a higher level as soon as you’re able.

    • davidgro@lemmy.world
      link
      fedilink
      English
      arrow-up
      13
      ·
      5 months ago

      C compilers (at least on personal computers) weren’t great at optimization back then and every kilobyte mattered - the user only got 640 of them, going beyond that required jumping through hoops.
      Similar for MHz, hand optimization was important for performance since there was so little CPU time to go around.

      • space@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        2
        ·
        5 months ago

        And also legacy… If something is already written in assembly and you want to add a feature, you’re not going to completely rewrite it.

    • palordrolap@kbin.social
      link
      fedilink
      arrow-up
      11
      ·
      5 months ago

      Compilers were much less complex back then and didn’t do a great deal of optimisation. Also hardware was slow, so your compiled code, which wasn’t necessarily optimal either before or after the compilation phase, was at least half as fast as you wanted it to be.

      If you wanted speed, you hand-rolled assembly.

    • bandwidthcrisis@lemmy.world
      link
      fedilink
      English
      arrow-up
      10
      ·
      5 months ago

      Not everyone knew C.

      Lack of trust: what was it doing behind the scenes? What’s if it just went and … allocated memory all by itself!!

      Optimization wasn’t so good back then. People believed that they could write better assembly. For speed and size.

      Memory was tight. C would include big libraries even if only one function was needed. If “hello world” was several k in size, that added to the suspicion (even though that was a fixed overhead in practice).