this post was submitted on 12 Jul 2024
342 points (93.0% liked)

Technology

58303 readers
6 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] 66 points 4 months ago (4 children)

smells like linus thinks there is going to be an ever increasing tech debt, and honestly, i think i agree with him on that one.

RISCV is likely going to eventually overstep it's role in someplaces, and bits and pieces of it will become archaic over time.

The gap between hardware and software level abstraction is huge, and that's really hard to fill properly. You just need a strict design criteria to get around that one.

I'm personally excited to see where RISCV goes, but maybe what we truly need is a universal software level architecture that can be used on various different CPU architectures providing maximum flexibility.

[–] [email protected] 40 points 4 months ago (3 children)

but maybe what we truly need is a universal software level architecture that can be used on various different CPU architectures providing maximum flexibility.

I think that's called Java.

[–] [email protected] 13 points 4 months ago
[–] ICastFist 2 points 4 months ago (1 children)

Then again, if you don't have the JVM/JRE, Java won't work, so first you need to write it in another language and in such a way that it works across a bunch of different ARM and x86 processors.

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

I don't know, if your platform doesn't have a jre... Is it really a platform?

[–] ICastFist 2 points 4 months ago

Dunno, would you consider the Xbox or Playstation platforms?

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

but but, minecraft in java bad and stinky??

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

But Java is the good version of Minecraft...

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

unfortunately, you're aren't wrong.

[–] arality 15 points 4 months ago (1 children)

software level architecture that can be used on various different CPU architectures providing maximum flexibility.

I've only done a little bare metal programming, but I really don't see how this is possible. Everything I've used is so vastly different, I think it would be impossible to create something like that, and have it work well.

[–] [email protected] 2 points 4 months ago* (last edited 4 months ago) (1 children)

theoretically you could do it by defining an architecture operations standard, and then adhering to that somewhat when designing a CPU. While providing hardware flexibility as you could simply, not implement certain features, or implement certain other features. Might be an interesting idea.

That or something that would require minimal "instruction translation" between different architectures.

It's like x86. except if most of the features were optional.

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

It sounds like you're just reinventing either the JVM (runtime instruction translation), compilers (LLVM IR), or something in between (JIT interpreters).

The problem is that it's a hard problem to solve generally without expensive tradeoffs:

  • interpreter like JVM - will always have performance overhead and can't easily target arch-specific optimizations like SIMD
  • compiler - need a separate binary per arch, or have large binaries that can do multiple
  • JIT - runtime cost to compiling optimizations

Each is fine and has a use case, but I really don't think we need a hardware agnostic layer, we just need languages that help alleviate issues with different architectures. For example, Rust's ownership model may help prevent bugs that out of order execution may expose. It could also allow programmers to specify more strict limits on types (e.g. non-zero numbers, for example), which could aid arch-specific optimizations).

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

yeah pretty much. The JVM but marginally less skill issued lol.

[–] [email protected] 7 points 4 months ago

universal software level architecture that can be used on various different CPU

Oh we already have dozens of those haha

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

overstep its* role in some places

[–] [email protected] 2 points 4 months ago

username checks out