this post was submitted on 15 May 2024
163 points (94.5% liked)

Technology

59161 readers
1922 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 9 points 5 months ago* (last edited 5 months ago) (4 children)

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.

[–] [email protected] 12 points 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.

[–] [email protected] 14 points 5 months ago (1 children)

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.

[–] [email protected] 2 points 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.

[–] [email protected] 11 points 5 months ago (1 children)

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).

[–] [email protected] 4 points 5 months ago (1 children)

People believed that they could write better assembly. For speed and size.

Now we know we can't write better C.

Though my teacher in tech school a few years ago ran an entire OS, where everything is written in assembler. What was it?

[–] [email protected] 4 points 5 months ago (1 children)

Maybe Kolibri OS?

Its an amazing project, booting from a single floppy disk into a full graphical OS with multiple tools. And that on PCs with almost no RAM.

I sometimes use it to backup ancient PCs.

[–] [email protected] 3 points 5 months ago

Yeah, sounds like this, thanks!

Makes me wonder why the suckless guys don't hook in there.

[–] [email protected] 7 points 5 months ago (1 children)

Because Ryan wrote it like this 10 years ago and nobody bothered to rewrite it in C.

Back then, I'd guess most developers were relatively fluent in assembly, so if there's only a small change to make, they'd just change the assembly and move on.

[–] [email protected] 1 points 5 months ago (1 children)

Everyone knew assembler back then. I did and I'm no developer today.

[–] [email protected] 1 points 5 months ago

I...don't think that's true. Or the reason why.

Anyone doing, say, OS development, sure.