Dead Comment
Dead Comment
Dead Comment
Deleted Comment
True, but irrelevant?
> What kinds of programming abstractions produce code that runs well on a microprocessor
.. securely. Yes, this can be done in C-with-proofs (sel4), but the cost is rather high.
To a certain extent microprocessors have co-evolved with C because of the need to run the same code that already exists. And existing systems force new work to be done with C linkage. But the ongoing CVE pressure is never going to go away.
> But the ongoing CVE pressure is never going to go away.
I think there are other ways to deflect or defeat that pressure, but I have no proof or work in that direction, so I really have nothing but admittedly wild ideas.
However, one potentially promising possibility in that direction is the dawn of immutable kernels, but once again, that's just an intuition on my part, and they can likely be eventually defeated, if only by weaknesses in the underlying hardware architecture, even though newer techniques such as timing attacks should be more easily detected because they rely on being massively brute force.
The question, to me, is "Can whittling away at the inherent weaknesses reduce the vulns to a level of practical invulnerability?" I'm not hopeful that that can occur but seeing the amount of work a complete reimplementation would require, it may simply be the best approach to choose from a cost-benefit analysis perspective where having far fewer bugs and vulns is more feasible than guaranteed perfection. And, once again, such perfection would require the hardware architecture be co-developed with the OS and its language to really create a bulletproof system, IMO.
What browser are you using that has any appreciable amount of C in it? They all went C++ ages ago because it has much better abstraction and organization capabilities.
Thank you for the correction, but I consider C++ to be just a set of abstractions built upon C, and, if you think about it, and none of those structures are separate from C, but merely overlaid upon it. I mean it is still just ints, floats, and pointers grouped using fancier abstractions. Yes, they're often nicer and much easier to use than what I had to do to write a GUI on top of extended DOS, but it's all just wrappers around C, IMO.
You wrote several entirely valid paragraphs about how important abstractions are and then put this at the end, when C has been eclipsed by 40+ years of better abstractions.
And there is no OS I'm aware of that will threaten Unix's dominance any time soon.
I'm not against it, but C's being so close to what microprocessors actually do seems to be story of of its success, now that I think about it.
I personally haven't written in C for more than a half-decade, preferring Python, but everything I do in Python could be done in C, with enough scaffolding. In fact, Python is written in C, which makes sense because C++ would introduce too many byproducts to the tightness required of it.
I was programming C using my own object structuring abstractions as C++ was being developed and released. It can be done, and done well (as evidenced by curl), but it just requires more care, which comes down to the abstractions we choose.
So, I would say "eclipsed" is a bit strong a sentiment, especially given our newly favorite programming langauges are running on OSes written in C.
If I had my druthers, I'd like everything to be F# with native compilation (i.e. not running using the .NET JIT), or OCaml with a more C-ish style of variable instantiation and no GC. But the impedance mismatch likely makes F# a poor choice for producing the kinds of precise abstractions needed for an OS, but that's just my opinion. Regardless, the code that runs runs via the microprocessor so the question really is, "What kinds of programming abstractions produce code that runs well on a microprocessor."
I've never thought of this before, thanks for the great question.
My daughter just choose to do her big final school project on hyperbolic geometry, which I suspect was strongly influenced by her irrepressible urge to involve crochet in her exam work somehow.. So crochet inspires kids to do math. True!
Our daughter is not so much into the pure math side but loves to do amigurumi, which is really applied 3D modelling. A craft show she wants to do later in the year doesn't allow the use of other people's models, so she is having to design her own. It's so very impressive, and she gets so much joy from seeing kids really, really want her work, as they do. It's math, modelling, color matching design, and understanding the kinds of threads all rolled up into one, so to speak :-)
Contrary opinion - no they're not, get a hold of yourself.
A lot of people lob ad homs at me and call me names and deny what I say here, but not a single one of you can explain our tragic human situation.
We can engineer fantastic buildings, create astounding works of art, perform the most incredible feats on the soccer pitch, and yet racism, poverty, cruelty, child porn and sexual abuse, oppression, and hatred remains rampant.
From my perspective of compassion, without asking anything from anyone here, I explain our situation to boos and unhelpful naysayers.
I am quite ahold of myself, my family loves me and I am at peace and happy. Yesterday my antics on the soccer pitch made my family laugh until they ached. We are poor but have our sustenance and live within our Creator's love.
As Eugene Parker said, "Well, we'll see who falls flat." The Parker Solar Probe is now orbiting the sun, doing its science, a marvel of engineering. And an evil, hateful bastard put a bullet in the servant of love Dr. Martin Luther King, Jr.'s head 57 years ago, simply because he claimed that Black folks were human beings.
The truth is undefeatable, though we can be killed by the hateful fools of this world. I stand with compassion and truth.