SeL4 is verified on RISC-V
microkerneldude.wordpress.com
microkerneldude.wordpress.com
https://www.smh.com.au/national/australia-risks-brain-drain-...
https://www.csiro.au/en/News/News-releases/2020/seL4-develop...
Money has to come into open source from somewhere and in the end it has to be via taxes or commercial interests.
Maybe BitCoin will save us? Haha. No.
Making money from open source is somewhere between the Hollywood aspiring actress and the fool's gold level of wishful thinking.
For instance, let's say that I have this very clever idea that would improve on the good old-fashioned shovel. I could try to monetize this idea, but probably wouldn't have much success. Now, if I could figure out how to apply the idea to a grader or bulldozer or boring machine, I might have more success.
My best chance might be if I happen to already own an equipment manufacturer. But to create a new manufacturing company just to produce my new-fangled backhoe is a daunting task. And it turns out my one idea isn't enough. My backhoe needs hydraulics, power, tires, and a bunch of other stuff.
Most people wouldn't expect to be able to quit their day job to focus on a new shovel idea. But they somehow think that people should line up to fund a new web framework. Or a novel NoSQL approach.
It's hard to monetize any idea. This is not limited to OSS.
And, really, people can still have a business selling cookies. But open source is unique in providing projects with many users, including commercial entities, that still leave the author in abject poverty.
I dunno what the alternative is, other than political activism, pushing parties to support progressive tax policies, and educating our peers and family members. It's not only research on the line here.
I think there are a lot of things we can do:
1. Promote free software, peer-to-peer networking, cryptocurrencies, and privacy software like Tor. Don't forget, governments burn libraries. Free hardware like RISC-V will become extremely important once we have matter compilers.
2. Lobby against patent, copyright, trade secret, noncompete enforceability, and other legislation that make the contents of employees' minds the property of their employers and legally impose censorship. We don't need to eliminate these entirely, but the more we can reduce their scope, the better off we are. California's pioneering legislation in this area was probably a significant factor in the 1980s move of the computer world's center of gravity from Boston to Silicon Valley; China's nonenforcement was probably a significant factor in its 2000s move from California to China.
3. Remind people that the freedom to tinker is a human-rights issue, a government transparency and accountability issue, a consumer-protection issue. We need all the allies we can get.
4. Reduce people's dependency on employers and employment for what they need to survive, through programs like public libraries, public healthcare, retirement, public education, universal basic income, churches, widespread solar panel deployment, squatters' rights and easier adverse possession, homesteading, soup kitchens, the Rainbow Gathering, ashrams, food banks, police reform, volunteer mental health counseling, decent public housing like Britain's 1960s council housing, BeWelcome, Hospitality Club, and open borders. Our current society already produces so much that scarcity of basic goods need not imperil anybody's survival. (There are of course cases on the margin like funding Gilead's development of new drugs, and perhaps synthesizing some drugs that are especially difficult, but that's no reason for people to die on the streets of homelessness-induced hypothermia.)
5. Organize programs like GSoC, Patreon, and Kickstarter that can raise funds to the people working on public goods such as free software. Alex Tabarrok's "dominant assurance contracts" might provide an incentive structure for this that improves on Kickstarter's incentive structure.
6. Organize into collectives such as monasteries, Google, or universities — organizations like these, imperfect though they are, have often been very effective at protecting their members from the societal pressures of the "life-and-death contest of startups and the private sector", not to mention law enforcement, with constructs such as academic freedom, tenure, "Googliness", and 20% time. Today's Google, like today's universities, are unfortunately not as strong as it once was — hierarchical command relationships make them vulnerable to political takeovers. But a university is fundamentally a faculty senate organized around a library, and Google was at one time fundamentally a group of hackers organized around a search engine. Such things can be destroyed, but they can also be created. They can survive by receiving donations, as some monasteries do; by providing services to outside entities, as universities often have; or by earning rent from an endowment, as state land-grant universities and other monasteries do.
The housing issue is particularly bad because, in many places, legally housing a person costs hundreds of thousands of dollars, more than an average employee can earn in many years. I wrote a bit in https://news.ycombinator.com/item?id=23264786 about the underlying economics of the situation.
Could you share what you see here?
You need to be free as a person for free software to be meaningful. Imagine gnu operate in china and run Software in campus (eg https://www.gnu.org/education/teaching-my-mit-classes-with-o...). Imagine ...
https://snowdrift.coop/ https://github.com/fossjobs/fossjobs/wiki/resources
Is there a significant number of people that can live of this? When I look at monthly income of larger projects on OpenCollective or developers on Patreon, they are doing very well if they make several hundreds of dollars per month. Not something anyone can live off in a western country.
Research into developing jet engines is a pretty stable income stream in the US that has persisted for decades. Taxes can fund what you want, you just need to create the political will for governments to value it and fund it.
This is why I favor creating systems that, with user-provided specs, automate proofs, analyses, and testing. The specs should be easy for non-math types to understand. Any failure is fixed or becomes a runtime check with logging. We might get more adoption of something like that than the masses contributing to an Isabelle/HOL or whatever project.
re: CSIRO and WiFi, there is some controversy around that: https://en.wikipedia.org/wiki/CSIRO#802.11_patent
That said, I recall concluding CSIRO were unfairly treated in the patent pool issue, despite the title of the linked article.
RISC-V has some nice work and support but that software/firmware/optimized OS ecosystem does not develop itself overnight. And x86 and ARM are still propitiatory ISAs but also have mature software/firmware/OS(Optimized) ecosystems.
Now just because the Power9/Power ISA is opened up does not mean that IBM’s specific hardware implementation that executes that now Open ISA is open, and ditto for any other MIPS ISA or RISC-V ISA running on others’ custom hardware implementations. Folks it’s the underlying hardware implementation that gets the real work done and an ISA is nothing more than a execution template that can have any specific custom hardware implementation being more efficient or less efficient depending on that in-hardware implementation that’s engineered to execute the ISA.
----------
[1] https://www.nextplatform.com/2019/08/20/big-blue-open-source...
* this article acknowledes that while open-source hardware requires an open-source ISA, this requirement is not sufficient
* this article mentions open-source hardware that implements the open-source RISC-V ISA, and the type of applications and research that this hardware is used for (e.g. eliminating Spectre-like timing attacks). It also mentions how such research is pretty much impossible to publish for non-open-source hardware using non-open-source ISAs.
Yes, That's the main point IMHO. It's firstly about making research easier and decoupled from some companies, allowing you to then push given companies to adopt research. It also slightly increases the chances for more competition on the CPU marked by making entry easier for new companies. Lastly it's useful for countries which want to become less dependent on the US.
The idea that somehow an open source ISA will lead to open source hardware which will replace well established hardware is a bit to optimistic in my opinion. But it can do a lot good even without it.
But, but, but ... has the specification been proved to be bug-free?
As in does the specification meet eg a set of security constraints?
Remember that we have had two major flaws in the formally verified tls1.3 so far because the spec was not complete.
In particular, they formalized notions of confidentiality, integrity, and availability, and proved the specification (hence the source code, hence the binary) satisfies these notions.
Now you can ask whether these notions were formalized correctly. But that's still a LOT better than asking it for binary/source/specification.
The implementation, including the code emitted by gcc, implements this specification, and is guaranteed to be free of buffer overflows, pointer errors, memory leaks, arithmetic overflows, and undefined behavior.
Nothing can be known with absolute certainty. But a specification is much smaller than an implementation and misunderstandings of specifications are much less common than bugs in code. Don't let perfect be the enemy of good.
In practice, bugs can creep in at various stages of a formal development process, but they're much less common that with non-formal software development methodologies, as you say.
See page 46 of this case study (giant PDF warning): https://www.adacore.com/uploads/downloads/Tokeneer_Report.pd...
I disagree. Knowing the limits of what is possible is important, so that we don't waste our time looking for the impossible.
Can the human brain in principle be simulated by a (deterministic) algorithm? Seems to me the answer is obviously yes, as we are 'merely' extremely complex machines whose operation is governed by deterministic physical laws. If you agree, you are forced to agree that we are bound by Rice's theorem.
Whether it's ever likely to be a practical problem, is another matter.
edit: We already know there are mathematically interesting numbers so enormous they cannot be represented in our universe, let alone computed by humans or our machines. That's not really the kind of practical limit we're interested in, but it still shows a limit of a sort. TREE(3) for instance.
I'm afraid I don't know what you're saying here.
> I don't see that as a convincing argument that there are important or useful programs that we cannot comprehend
I don't see that there's any way to contest it. The only way to deny that we are bound by Rice's theorem, is to deny that the human mind is algorithmic. This presumably requires the denial of determinism, which is fairly absurd.
If you're not following my argument, I'd be happy to rephrase it.
> an argument that we should look for stricter models that still admit all the programs we care about (probably based on some form of typed lambda calculus).
That offers no escape. We're still bound by Rice's theorem. Perhaps it will never be a practical issue, but the fact remains.
I'm not following what it is that you think Rice's theorem tells us.
Rice's theorem says that nontrivial properties of Turing machine programs are undecidable, i.e. for a given property, there will be Turing-machine programs for which we can't tell whether they have that property or not.
That doesn't tell us anything about what is possible for programs, or put any limits on programs that we do understand. It just says that in the Turing machine model there must exist programs that we don't understand. Fine. Who cares?
then:
> has the specification been proved to be bug-free?
Yes for SeL4, but no for a bunch of other systems advertised as "having been proven to be correct". Which often sadly only means "implemented as specified" but not "implemented as specified and proven to have the right properties".
[1] https://dl.acm.org/doi/pdf/10.1145/1159842.1159850
[2] https://www.sigops.org/s/conferences/sosp/2009/papers/klein-...
However, does anyone have experience with obtaining RISC-V server hardware on a commercially useful scale, i.e. more than 1pcs? Back when ARM servers where all the rage, there were lots of announcements, but almost never products one could order. Is RISC-V any better in that regard?
Of course in "a few datacenters full of"-like quantities there was just no chance of getting anything. And of course, for making our own hardware (you can get ARM chips, just not full systems) we don't have the expertise, size and will.
I'd note that ARM servers are finally becoming competitive in specific use-cases. The AWS Graviton2 CPU is useful for many apps.
Still it's a SeL4 OS if you want it to be one.
The closest to a real desktop OS would be Sculpt, which is based on Genode, which in turn can run on top of several different flavors of L4 (plus a few non-L4 kernels). Sculpt however is still closer to a fancy hypervisor than a full OS. It can run several unix-like command line tools and has a Qt based GUI, but you will run VMs in it to get any useful work done.
[Digging]
https://github.com/littlekernel/lk/wiki/Introduction:
> LK is the Android bootloader and is also used in Android Trusted Execution Environment - "Trusty TEE" Operating System.
> Newer Android phones have some chance of LK running all the time alongside Linux.
TIL!