Live data from Hacker News

New Linux port for the Nintendo 64

lore.kernel.org

191–200 of 205 posts

Re: New Linux port for the Nintendo 64

#191
post #186

Earlier quoted context omitted.

>QNX wouldn't run on something with An older QNX ran from a floppy with very few MB. With GUI and a browser with limited JS support. >QNX wouldn't run on something with You could run Linux under a TTY for i386 with 2MB with some swap about 24 years ago.

> An older QNX ran from a floppy with very few MB. With GUI and a browser with limited JS support. It did and it was a very impressive tech demo....but it's not representative of a usable general purpose OS. Chrome or Firefox alone comes in at > 200MB. So there is no way you'd get a browser that would work with the modern web to fit on the 1.4MB floppy. And that's without factoring in fonts, drivers, a kernel and oth…

> I mean we could have this argument about how dozens of ancient / partially POSIX-complient / unstable kernels have had low footprints. But that's not really a credible argument if you can't actually use them in any practical capacity.

There are modern microkernels that are POSIX compliant and have a much lower footprint than linux. That's not the problem. I think the most prominent issue, people points out here is performance. However, it's very obvious to me that the extra abstraction of having a kernel vs having no kernel on an constrained device costs performance, and it's always a trade-off, both solutions can be found and both solutions are valid.

Re: New Linux port for the Nintendo 64

#192

Earlier quoted context omitted.

> However on the N64 you don’t need any of the benefits that a micro kernel offers while you do need to preserve as many clock cycles as you can. So a micro kernel isn’t well suited for that specific domain How come that Nintendo decided to use them (according to reverse engeneering finds)? If they are not suited, then Nintendo should know that right?

I’ve answered this question probably half a dozen times already now.... The N64 doesn’t run any OS. It’s just firmware that invokes a ROM which runs bare metal. The Switch, however, does have an operating system. There is around 20 years difference between the two games consoles. That’s 20 years of Moore’s law. 20 years of consumer expectations of fast processors and fancier graphics. And 20 years of evolution with d…

Ah okay, I somehow thought that Nintendo had used microkernels on other devices too, not just the Switch. The Nintendo Switch is certainly not a constrained device.

Re: New Linux port for the Nintendo 64

#193

Earlier quoted context omitted.

> And it’s rather disingenuous how you keep rocking back and forth between current generation consoles I never did. I never mentioned current generation consoles not even implicitly. I always talked either about the N64 or (gaming) devices that are constrained and cannot run linux.

Except you did: “I think that Nintendo might use Microkernels [in the Switch] according to reverse engeneering finds shows their massive potential for constrained devices.” Maybe you hadn’t grokked that pjmlp was talking about the Switch (Nintendo’s current generation console) rather than the N64? Either way, my other comment[0] also applies: [0] https://news.ycombinator.com/item?id=25559670

Execpt that you entered "[in the Switch]" from your own imagination and it's simply not there in my original comment.

> Nintendo actual devices use microkernel based designs. We are way past the usual FUD against microkernels.

Regarding pjmlp post, yes that's true, it wasn't clear (and still isn't) to me from his post, that he specifically speaks about the Switch when referring to "devices".

Re: New Linux port for the Nintendo 64

#194

Earlier quoted context omitted.

Except you did: “I think that Nintendo might use Microkernels [in the Switch] according to reverse engeneering finds shows their massive potential for constrained devices.” Maybe you hadn’t grokked that pjmlp was talking about the Switch (Nintendo’s current generation console) rather than the N64? Either way, my other comment[0] also applies: [0] https://news.ycombinator.com/item?id=25559670

Execpt that you entered "[in the Switch]" from your own imagination and it's simply not there in my original comment. > Nintendo actual devices use microkernel based designs. We are way past the usual FUD against microkernels. Regarding pjmlp post, yes that's true, it wasn't clear (and still isn't) to me from his post, that he specifically speaks about the Switch when referring to "devices".

> Execpt that you entered "[in the Switch]" from your own imagination and it's simply not there in my original comment.

I know it’s not there in your original comment, that’s why it was inside square brackets. That’s a standard way of including context in a quote that otherwise would lack said context. You would see that in news papers and other publications. This isn’t some weird markup I’ve just invented and it’s definitely not a figment of my imagination because the post you were replying to was about the Switch.

> Regarding pjmlp post, yes that's true, it wasn't clear (and still isn't) to me from his post, that he specifically speaks about the Switch when referring to "devices".

You’re right, it wasn’t explicit. My apologies there.

Re: New Linux port for the Nintendo 64

#195

Earlier quoted context omitted.

I’ve answered this question probably half a dozen times already now.... The N64 doesn’t run any OS. It’s just firmware that invokes a ROM which runs bare metal. The Switch, however, does have an operating system. There is around 20 years difference between the two games consoles. That’s 20 years of Moore’s law. 20 years of consumer expectations of fast processors and fancier graphics. And 20 years of evolution with d…

Ah okay, I somehow thought that Nintendo had used microkernels on other devices too, not just the Switch. The Nintendo Switch is certainly not a constrained device.

It’s theoretically possible they may have done on other devices too. It’s believed the Switch system software is derived from the DS system software. I’ve not seen any breakdowns on what kernels are running in the DS nor on the Wii family of devices either. But there still orders of magnitude more powerful than the N64 too.

I don’t think there’s much to be gained in speculation about proprietary operating systems running on newer hardware though.

Re: New Linux port for the Nintendo 64

#196

Earlier quoted context omitted.

> An older QNX ran from a floppy with very few MB. With GUI and a browser with limited JS support. It did and it was a very impressive tech demo....but it's not representative of a usable general purpose OS. Chrome or Firefox alone comes in at > 200MB. So there is no way you'd get a browser that would work with the modern web to fit on the 1.4MB floppy. And that's without factoring in fonts, drivers, a kernel and oth…

> I mean we could have this argument about how dozens of ancient / partially POSIX-complient / unstable kernels have had low footprints. But that's not really a credible argument if you can't actually use them in any practical capacity. There are modern microkernels that are POSIX compliant and have a much lower footprint than linux. That's not the problem. I think the most prominent issue, people points out here is…

> There are modern microkernels that are POSIX compliant and have a much lower footprint than linux.

There are... but they're not > I think the most prominent issue, people points out here is performance.

That's literally what I said at the start of the conversation!

> However, it's very obvious to me that the extra abstraction of having a kernel vs having no kernel on an constrained device costs performance, and it's always a trade-off, both solutions can be found and both solutions are valid.

Show me a device with the same specs as the N64 which runs an OS and I'll agree with you that both solutions are valid. The issue isn't just memory, it's your CPU clock speed. It's the instructions supported by the CPU. It's also the domain of the device.

Running an OS on the N64 would never have made sense. I guess, in some small way, you could argue the firmware is an OS in the say way that a PC BIOS could. But anything more than that is superfluous both in terms of resources used and any benefits it might bring. But again, if it's a case of "both solutions are valid" then do please list some advantages an resident OS would have bought. I've explained my argument against it.

Let's take a look at what was happening on PCs around the time of the N64's release. Most new games were still targeting MS-DOS and largely interfaced with hardware directly. In a way, DOS was little more than a bootstrap: it didn't offer up any process management, the only memory management it did was provide an address space for the running DOS application, it didn't offer any user space APIs for hardware interfaces -- that was all done directly. And most of the code was either assembly or C (and the C was really just higher level assembly).

Fast forward 4 years and developers are using OpenGL, DirectX and Glide (3DFX's graphics libraries which, if I recall correctly, was somewhat based on OpenGL) in languages like C and C++ but instead of writing prettier ASM they're writing code based around game logic (ie abstracting the problem around a human relatable objects rather than hardware schematics). It was a real paradigm shift in game development. Not to mention consoles shifting from ROM cartridges to CD posed a few new challenges: 1) you no longer have your software exist as part of the machines hardware 2) you now have made piracy a software problem (since CD-ROMs are a standard bit of kit in most computers) rather than a hardware one (copying game carts required dedicated hardware that wasn't always cheap). Thankfully by that time computer hardware had doubled a few times (Moore's Law) so it was becoming practical to introduce new abstractions into the stack.

The N64 exists in the former era and the operating system methodologies you're discussing exist in the latter era. Even the constrained devices you're alluding to are largely latter era tech because their CPUs are clocked at orders of magnitude more than the N64 and thus you don't need to justify every instruction (it's not just about memory usage) but in many cases an OS for an embedded device might just be written as one binary blob and then flashed to ROM, effectively then running like firmware.

It's sometimes hard to get a grasp on the old-world way of software development if it's not something you grew up with. But I'd suggest maybe look at programming some games for the Atari 2600 or Nintendo Gameboy. That will give you a feel for what I'm describing here.

Re: New Linux port for the Nintendo 64

#197

Earlier quoted context omitted.

Except you did: “I think that Nintendo might use Microkernels [in the Switch] according to reverse engeneering finds shows their massive potential for constrained devices.” Maybe you hadn’t grokked that pjmlp was talking about the Switch (Nintendo’s current generation console) rather than the N64? Either way, my other comment[0] also applies: [0] https://news.ycombinator.com/item?id=25559670

Execpt that you entered "[in the Switch]" from your own imagination and it's simply not there in my original comment. > Nintendo actual devices use microkernel based designs. We are way past the usual FUD against microkernels. Regarding pjmlp post, yes that's true, it wasn't clear (and still isn't) to me from his post, that he specifically speaks about the Switch when referring to "devices".

[deleted]

Re: New Linux port for the Nintendo 64

#198

Earlier quoted context omitted.

> I mean we could have this argument about how dozens of ancient / partially POSIX-complient / unstable kernels have had low footprints. But that's not really a credible argument if you can't actually use them in any practical capacity. There are modern microkernels that are POSIX compliant and have a much lower footprint than linux. That's not the problem. I think the most prominent issue, people points out here is…

> There are modern microkernels that are POSIX compliant and have a much lower footprint than linux. There are... but they're not > I think the most prominent issue, people points out here is performance. That's literally what I said at the start of the conversation! > However, it's very obvious to me that the extra abstraction of having a kernel vs having no kernel on an constrained device costs performance, and it'…

>It's sometimes hard to get a grasp on the old-world way of software development if it's not something you grew up with.

I lived through that, the first PC I used had DOS with 5'25" floppies.

On 3DFX, it was a mini-GL in firmware, low level. Glide somehow looked better than the later games with DirectX, up to Directx7 when games looked a bit less "blocky".

>For example Linux 24 years ago didn't have a package manager

Late 90's Linux is very different from mid 90's. Slackware in 1999 was good enough, and later with the 2.4 kernel it was on par on w2k, even Nvidia drivers worked.

And I could run even some games with early Wine versions.

Re: New Linux port for the Nintendo 64

#199

Earlier quoted context omitted.

Execpt that you entered "[in the Switch]" from your own imagination and it's simply not there in my original comment. > Nintendo actual devices use microkernel based designs. We are way past the usual FUD against microkernels. Regarding pjmlp post, yes that's true, it wasn't clear (and still isn't) to me from his post, that he specifically speaks about the Switch when referring to "devices".

> Execpt that you entered "[in the Switch]" from your own imagination and it's simply not there in my original comment. I know it’s not there in your original comment, that’s why it was inside square brackets. That’s a standard way of including context in a quote that otherwise would lack said context. You would see that in news papers and other publications. This isn’t some weird markup I’ve just invented and it’s d…

> I know it’s not there in your original comment [and I'm sorry that I have abused the square brackets in such a way, that it changes the meaning] ... My apologies there.

[No problem.]

Re: New Linux port for the Nintendo 64

#200

Earlier quoted context omitted.

> Execpt that you entered "[in the Switch]" from your own imagination and it's simply not there in my original comment. I know it’s not there in your original comment, that’s why it was inside square brackets. That’s a standard way of including context in a quote that otherwise would lack said context. You would see that in news papers and other publications. This isn’t some weird markup I’ve just invented and it’s d…

> I know it’s not there in your original comment [and I'm sorry that I have abused the square brackets in such a way, that it changes the meaning] ... My apologies there. [No problem.]

I wasn’t changing the meaning though. You were replying to a post about Switch. It’s not my fault you can’t grasp enough of this stuff to hold an intellectual discussion.
Post reply on HN