4 ms·
People love to talk all sorts of trash on this kind of stack but it's really quite solid for what it does. If anyone was ever curious what a sizeable codebase i
by jamal-kumar 5y ago
People love to talk all sorts of trash on this kind of stack but it's really quite solid for what it does. If anyone was ever curious what a sizeable codebase in this kind of code would even look like, check out the source code for undeadly.org [1]. Yeah these people may be crazy but they're also OpenBSD developers and we really love to see what we can get away with using nothing other than what's available in the base distribution. I think a lot of what you see being written for production ends up being very similar to this kind of approach, maybe just utilizing rust or golang as the web application backend language if that's what is the more comfortable thing. Nothing but the base system and a single binary, not relying on an entire interpreter stack, sure can be smooth.
There's other examples of this kind of approach, too, writing straight C Common Gateway Interface web applications in public-facing production use - What comes to mind is the version control system web frontend that the people who write wireguard use, cgit [2] - If it's really so crazy then how come the openbsd and wireguard people - presumably better hackers than you - are just out there doing it?
Other places you see C web application interfaces include in embedded devices (SCADA, etc) and even the web interfaces for routers, which unfortunately ARE crazy because check out all the security problems! Good thing people at our favorite good old research operating system have done the whole pledge(2)[3] syscall to try and mitigate things when those applications go awry - understanding this part of the whole stack is probably key to seeing how any of it makes any sense at all in 2022. It sure would be nicer if those programs just crashed instead of opening up wider holes. Maybe we can hope these mitigations and a higher code quality for limited-resource device constraints all become more widespread.
[1] http://undeadly.org/src/ http://undeadly.org/src/
[2] https://git.zx2c4.com/cgit/ https://git.zx2c4.com/cgit/
[3] https://learnbchs.org/pledge.html https://learnbchs.org/pledge.html
- zephyr9 5y agoThe Dunning-Kruger effect is stronger in people who spend a lot of time alone, e.g. programmers, which we will now see unfold below.
- alexshendi 5y agoI propose an amendment to Godwin's Law to include "Dunning-Kruger" , "Dunning-Kruger-effect" and "Dunning-Kruger effect".
- zephyr9 5y agoomg it's like I'm Nostradamus!
- visireyi 5y agowe really love to see what we can get away with using nothing other than what's available in the base distribution pkg_add sqlite3 Can't get away.
- mrweasel 5y agoI believe Sqlite was in base when BCHS was first presented. That and you can just grap the big single c file version of sqlite, no need for a package.
- jamal-kumar 5y agoOK to be honest let me amend that, because you make a valid if not snarky point! We like seeing what we can get away with using what's available in the base distribution and a few well-chosen, well-audited packages
- petee 5y ago#include <db.h> Berkeley DB with a header date of 1994 :) In base, and of course it still works. Sqlite was removed from base, again, in 6.1 (2019) --https://www.openbsd.org/faq/upgrade61.html https://www.openbsd.org/faq/upgrade61.html with this BSDCAN '18 pdf briefly explaining the issues (unmaintainable) -- https://www.openbsd.org/papers/bsdcan18-mandoc.pdf https://www.openbsd.org/papers/bsdcan18-mandoc.pdf
- deleted 5y ago[deleted]
- foxfluff 5y ago> If it's really so crazy then how come the openbsd and wireguard people - presumably better hackers than you - are just out there doing it? Probably precisely because they're better? I can see why people who are struggling with malloc and off-by-ones (https://news.ycombinator.com/item?id=29990985 https://news.ycombinator.com/item?id=29990985) would think it's crazy.