Live data from Hacker News

Tetris-OS: An operating system that only plays Tetris

github.com

61–70 of 126 posts

Re: Tetris-OS: An operating system that only plays Tetris

#61
post #30
post #27

Earlier quoted context omitted.

Yes, props to the developer for what they've done, but I am perversely disappointed that this isn't actually a complete OS - process scheduler, file system, TCP/IP stack, multiple user support, all the rest - that only runs Tetris.

I used a few operating systems that were considered "complete," in their time, without a TCP/IP stack or multiple user support. Come to think of it, I don't think they had process schedulers either

Well, if you are into exokernels, they wouldn't have a TCP/IP stack either.

(You'd have them in userland. Whether you count that as part of the OS or not, is a different question.)

Re: Tetris-OS: An operating system that only plays Tetris

#62
post #51

Earlier quoted context omitted.

IDK. Plenty of "operating systems" are linked as a single binary with the application, in the embedded world and historically. This takes it a bit further but I doubt you think the dividing line is "OS and application are maintained as a separate project" which is about the only distinction. I do see where you're coming from, though. Personally I would've described it as "bootable Tetris".

Even in embedded systems, there's still usually a distinct boundary between the OS kernel and the "application", and a well-defined API between the two.

There's an OS alright, it's just not a -general purpose- OS but a very small, statically embedded, specialised one.

Re: Tetris-OS: An operating system that only plays Tetris

#63
post #51

Earlier quoted context omitted.

IDK. Plenty of "operating systems" are linked as a single binary with the application, in the embedded world and historically. This takes it a bit further but I doubt you think the dividing line is "OS and application are maintained as a separate project" which is about the only distinction. I do see where you're coming from, though. Personally I would've described it as "bootable Tetris".

Even in embedded systems, there's still usually a distinct boundary between the OS kernel and the "application", and a well-defined API between the two.

Compare https://en.wikipedia.org/wiki/Unikernel

Re: Tetris-OS: An operating system that only plays Tetris

#64

Earlier quoted context omitted.

I don't think it is essential that there be a clear boundary between an OS and programs. For example, you can have a Smalltalk-based OS, written in Smalltalk. The OS components are simply Smalltalk classes and methods. Your programs/utilities/applications would also be Smalltalk classes and methods. There needn't be any clear boundary between the classes/methods that belong to the OS and those that belong to programs…

I like to define an OS as something that can execute arbitrary binaries. So if your hypothetical Smalltalk OS has a defined executable format that non-Smalltalk programs can compile to, I’d call it an OS. Note that this also makes for example the uppermost part of the JVM an OS by my definition. I’d argue it’s not a completely incorrect characterization.

I think that definition is a bit too broad and too narrow to be useful.

For too narrow: you might have a security focused OS that includes everything like a TCP/IP stack etc, but perhaps doesn't allow arbitrary binaries by construction. (Eg it might only allow binaries that come with a proof of innocence, or some other restriction that's harsh enough to lose the 'arbitrary' rating.)

For too broad: https://en.wikipedia.org/wiki/Weird_machine would make almost any software that was written sloppily enough into an OS.

Re: Tetris-OS: An operating system that only plays Tetris

#65

Earlier quoted context omitted.

I don't think it is essential that there be a clear boundary between an OS and programs. For example, you can have a Smalltalk-based OS, written in Smalltalk. The OS components are simply Smalltalk classes and methods. Your programs/utilities/applications would also be Smalltalk classes and methods. There needn't be any clear boundary between the classes/methods that belong to the OS and those that belong to programs…

I like to define an OS as something that can execute arbitrary binaries. So if your hypothetical Smalltalk OS has a defined executable format that non-Smalltalk programs can compile to, I’d call it an OS. Note that this also makes for example the uppermost part of the JVM an OS by my definition. I’d argue it’s not a completely incorrect characterization.

I don't agree that something has to be capable of running "arbitrary binaries" to count as an operating system. If I have a Smalltalk-based OS which is capable of running arbitrary Smalltalk code, but doesn't have any support for running non-Smalltalk binaries (native code or programs written in languages other than Smalltalk), I'd still consider it to be an operating system.

Re: Tetris-OS: An operating system that only plays Tetris

#66
post #7
post #3

TetrOS would be a better name.

“Tetris” clones often seem to get aggressively shut down on copyright grounds too, so this might be more robust.

The name is a trademark, usually not calling it "Tetris" makes you measurably safer.

The tetrominos themselves are not protected but the shapes+colours are protected in some way (as original art), as is the official set of gameplay rules, the argument being that the overall combination of these is the "Tetris IP"... although the enforceability of that more often seem to hinge into "I don't have the money to fight an army of lawyers to prove that a gameplay idea isn't protected in yet another jurisdiction".

https://arstechnica.com/gaming/2012/06/defining-tetris-how-c...

Re: Tetris-OS: An operating system that only plays Tetris

#67

Earlier quoted context omitted.

In my retirement, watching programming streams has been a guilty pleasure (drives my SO crazy), and this is one of my favorite channels. I especially loved their other video on making Minecraft from scratch* * - https://www.youtube.com/watch?v=4O0_-1NaWnY

Replying to watch later!

You could also press on the timestamp of the message, which will present you with an option to add it to the list of your favorites, which you'll be able to access from your profile.

Re: Tetris-OS: An operating system that only plays Tetris

#68

If Tetris (with an infinite board) is Turing complete, then how about building an OS from Tetris? (It seems for certain problems it is NP-complete!) https://liacs.leidenuniv.nl/~kosterswa/tetris/tot.pdf

Turing completeness refers to a language, while NP-completeness refers to an optimization problem.

So for it to be turing complete you first need to define a language based on tetris. For NP-completeness, it might just be solving the game.

Re: Tetris-OS: An operating system that only plays Tetris

#69

Earlier quoted context omitted.

I like to define an OS as something that can execute arbitrary binaries. So if your hypothetical Smalltalk OS has a defined executable format that non-Smalltalk programs can compile to, I’d call it an OS. Note that this also makes for example the uppermost part of the JVM an OS by my definition. I’d argue it’s not a completely incorrect characterization.

I don't agree that something has to be capable of running "arbitrary binaries" to count as an operating system. If I have a Smalltalk-based OS which is capable of running arbitrary Smalltalk code, but doesn't have any support for running non-Smalltalk binaries (native code or programs written in languages other than Smalltalk), I'd still consider it to be an operating system.

[deleted]

Re: Tetris-OS: An operating system that only plays Tetris

#70
post #19

This is cool, but I think it's misleading to call it an operating system. It's Tetris that runs without an operating system, which is to say, on bare metal, old school. Writing programs that run on bare metal is a cool and worthwhile thing to do, but calling any such program an "operating system" is confusing. This probably sounds like I'm picking a nit, but I think it matters for the sake of newbies just starting to…

I agree, but "operating system" is very poorly defined. Name a feature of an operating system and you can find one that doesn't support it. Just about the only definition that seems to hold is that it runs without an operating system.
Post reply on HN