3 ms·
Welp, meant to reply, then completely forgot... > OpenBSD dropped 32-bit sparc support. And 32-bit Intel CPU support only? MirOS isn't interested in supporting
by i336_ 10y ago
Welp, meant to reply, then completely forgot...
> OpenBSD dropped 32-bit sparc support. And 32-bit Intel CPU support only? MirOS isn't interested in supporting any modern hardware. So yeah, why bother with SMP...
This sort of thing confuses me a lot. I see it like a total waste of effort to go to the lengths of maintaining a UNIX (BSD) variant (kernel and everything) if your work isn't going to have a real-world use... I mean locking yourself into x86_32 and SPARC is basically a death knell, nobody will consider the software as a serious product.
> OpenBSD's hardware support back then wasn't bad. It's just that you'd definitely want to check that what you were buying was supported before you bought it rather than just assume everything's going to work.
Ah, like Linux was at one point. Makes total sense.
> The OpenSSH fork was based off the last BSD licensed release of SSH.
Ah, makes sense.
> SSH authors decided to adopt a more restrictive license. Within 5 years 90% of internet facing SSH servers were running OpenSSH.
Heh. Like the egcc war thing...
> The deal with OpenBSD is that it's great if you do the same things as their developers. If not then you're out of luck.
Sounds like Google :P ("nah, don't think anybody's using Reader or Wave"...)
> Apparently they like building networks and closing the lids of their laptops.
And now I'm imagining half-second clips of those two things happening one after the other, in an infinite loop...
> Regarding different operating systems SMP support and your question of interrupt handling, you should consult OS architecture books.
OH, so THAT's why people design OSes... I finally get it. To properly make sense of hardware, and also understand the practical issues of multitasking and such. Thanks, I've always been torn about starting a toy OS project, I finally see the rationale behind it now, will definitely be poking the subject at some point (probably for multiple architectures, too!).
> In a nutshell for SMP:
> (...)
> Linux, FreeBSD, Windows, and Solaris for example, have all solved this problem much better than OpenBSD has for a long time. OpenBSD has only begun to address this quite recently.
Hah. I see. (Where might I read about the work they're doing?)
> In a nutshell for interrupt handling: Say you're routing frames between several Ethernet interfaces. Nevermind a proper firewall which would be much worse, you're just bridging like a switch.
When a frame comes in on a port you get an interrupt and context switch into the kernel. Then you have to read at least the destination address into main memory so you can compare it to your MAC table and know how to handle it. Then you need to copy the whole frame to the appropriate outputs. This is very slow compared to the CAM table lookup that dedicated switch hardware uses. Even though a general purpose CPU can do some really impressive things, if you add enough network interfaces and a high enough packet rate to a PC it won't keep up.
That's... not really an easy problem to solve, I get it now.
Thanks for the explanations!
- Canada 10y agoBest place to follow OpenBSD happenings is on their mailing lists and on undeadly.org. Building a toy OS or porting an existing one to a new CPU is a big accomplishment in my opinion. If you can do it you'll know a heck of a lot more about OS building than I do!
- i336_ 10y agoDuly noted, thanks. Hardware has long been a mystery to me, but it never really clicked (the epiphany never really happened) that the direction to go in to solve that mystery was to mess around with writing a toy OS. I get that now (and finally understand the raft of almost-useless toy OSes out there). Thankfully, I have an idea of the simple UI environment I'd want to build on top (I've actually been noncomittally noodling a few ideas for some time), and would very likely be able to nicely make do with cooperating multitasking, etc - so it shouldn't be too hard. Which is nice. Some of my ideas involve working with a number of different architectures, too (ARM, 68k, etc), so I'd finally be learning asm for several different chipsets, as well. Stares at atrophied discipline muscles ...Eventually. As an aside, I have a possible startpoint that may be interesting: a GSoC project got Lua running under SYSLINUX a couple years ago. One of the examples showed how to call VBE to set the graphics mode, and plot pixels. SYSLINUX does UEFI now. If a Lua-callable EFI graphics library became available... ooooo. Literally all CPUs are so fast at 2D, you could write whole UXes on top of that. (Maybe add AC97 too, and finally put the MOD/WAV player in gfxboot out of its misery.)