Finally i’m gonna be able to contribute!

You are viewing a single thread.
View all comments
78 points

Good thing that this isn’t actually possible…

permalink
report
reply
4 points

I did use a crypto mining OS that was Linux but with lots of scripts that were written in… PHP! I never thought I’d see it.

permalink
report
parent
reply
5 points

Theoretically if you found a way to compile PHP, you probably could though, right?

permalink
report
parent
reply
6 points

I mean, I’m a bit out of my water there, both in terms of the featureset of PHP and what’s actually needed for a kernel, but I’m still gonna go with no.

For one, PHP uses reference counting + garbage collection for memory management. That’s normally done by the language runtime, which you won’t have when running baremetal.

Maybe you could implement a kernel, which does as few allocations as possible (generally a good idea for a kernel, but no idea, if it’s possible with PHP), and then basically just let it memory leak until everything crashes.
Then again, the kernel is responsible for making processes crash when they have a memory leak. Presumably, our PHP kernel would just start overwriting data from running processes and eventually overwrite itself in memory(?). Either way, it would be horrendous.

Maybe you could also try to implement some basic reference counting into your own PHP code, so that your own code keeps track of how often you’ve used an object in your own code. Certainly doesn’t sound like fun, though.

Well, and secondly, I imagine, you’d also still need an extension of the language, to be able to address actual memory locations and do various operations with them.

I know from Rust, that they’ve got specific functions in the stdlib for that, see for example: https://doc.rust-lang.org/stable/std/ptr/index.html#functions
Presumably, PHP does not have such functions, because its users aren’t normally concerned with that.

permalink
report
parent
reply
2 points

Right – I’m not saying you could build a compiler then just go to town. You would still have to build all the tools, using PHP, to interact with hardware, the way other languages do. A horrible idea, lol, but interesting, sort of. Since at its core as long as you can execute logic and read/write to memory, you could do it, I think

permalink
report
parent
reply
94 points

Don’t tempt fate. There are already two kernels written in javascript

permalink
report
parent
reply
17 points

How? You’d need to compile it down to machine code somehow, for the processor to have any clue how to run it. And you’d need some custom library with custom compile instructions, to be able to control memory allocations, memory addresses etc…

I did a quick search and found two operating systems written in JS, both of which cop out when it comes to the kernel. Did you maybe mix it up with those?

permalink
report
parent
reply
3 points

Maybe I did, I haven’t looked any of them carefully

permalink
report
parent
reply
13 points
*

There’s almost always at least a little ASM sprinkled into any kernel, so that’s not a big deal.

OTOH, there is the factor of “you know how Chrome takes up 2GB per tab? What if that was a whole OS?”

permalink
report
parent
reply
58 points

Why would God allow this to happen?

permalink
report
parent
reply
43 points

To punish us for the sin that is inventing JavaScript.

permalink
report
parent
reply
6 points

God is dead

permalink
report
parent
reply
28 points

Why do you think God stays in heaven, in fear of what He created?

permalink
report
parent
reply

Programmer Humor

!programmer_humor@programming.dev

Create post

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

  • Keep content in english
  • No advertisements
  • Posts must be related to programming or programmer topics

Community stats

  • 7.3K

    Monthly active users

  • 761

    Posts

  • 12K

    Comments