Our great sponsors
jnode | biscuit | |
---|---|---|
2 | 12 | |
317 | 2,406 | |
-0.9% | 1.5% | |
0.0 | 0.0 | |
over 2 years ago | over 1 year ago | |
Java | Go | |
- | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
jnode
-
Dynamic, JIT-compiled language for systems programming?
Source code here: https://github.com/jnode/jnode
-
Rust: A Critical Retrospective
Go has been used to implement OS kernel code,
but it's an interesting piece of software.
Agreed. And I didn't mean to imply that it's impossible to use Go that way, but I think it's fair to say that it's less common and perhaps even less desirable to do that.
OTOH, people have written (at least parts of) Operating Systems in Java[1] even, so never say never...
[1]: https://github.com/jnode/jnode
biscuit
-
Biscuit 3.0
No, it isn't the third release of a POSIX like OS research written in Go,
https://github.com/mit-pdos/biscuit
-
If I know neither Go or Rust, which do I choose to learn first/only?
But there are other brave people exists like biscuit or gopher-os who can do it :)))
-
Pre-Overengineering
That's something I found in doing a bit of a dive on why ripgrep is so fast at doing a very specific kind of string search workload (Gallant / burntsushi / author of ripgrep is an actual wizard and contributes to Rust's regex engines, for reference). I wrote tiny proof of concepts in a variety of languages, all in my same style -- and sometimes my Go variants were as fast as the equivalent Rust/C (even in release / -O3/2 (every once in a blue moon, O3 makes no diff or is a slight regression in some exec paths)). I eventually found something about benchmarks in a related area, leading to this: https://benhoyt.com/writings/count-words/#performance-results-and-learnings. Somebody on the Go sub even linked me to the Biscuit OS: https://pdos.csail.mit.edu/papers/biscuit.pdf, which, tidbit, has Jon Gjengset (Crust of Rust legend) in the contribs list (https://github.com/mit-pdos/biscuit).
-
What is a "CPU Biscuit"?
https://github.com/mit-pdos/biscuit maybe this
-
Rust: A Critical Retrospective
Go has been used to implement OS kernel code, e.g. in the Biscuit OS from MIT: https://github.com/mit-pdos/biscuit
Of course, the garbage collector did not exactly make it easier - but it's an interesting piece of software.
- Can Go be used for kernel development?
- GOLang in embedded systems
-
GOLang in embedded systems (1 physical threads)
https://github.com/mit-pdos/biscuit says 5% slowdown over C. Garbage collection is going to require some more RAM, generally <=2x though.
- Biscuit operating system written in Go
- The difference between Go and Rust
What are some alternatives?
rust - Empowering everyone to build reliable and efficient software.
Cosmos - Cosmos is an operating system "construction kit". Build your own OS using managed languages such as C#, VB.NET, and more!
trycmd - Snapshot testing for a herd of CLI tests
regex-automata - A low level regular expression library that uses deterministic finite automata.
heapless - Heapless, `static` friendly data structures
TinyGo - Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
KEEP - Kotlin Evolution and Enhancement Process
Harbol - Harbol is a collection of data structures and miscellaneous libraries, similar in nature to C++'s Boost, STL, and GNOME's GLib; it is meant to be a smaller and more lightweight collection of data structures, code systems, and convenience software.
gopher-os - A proof of concept OS kernel written in Go
clap-rs - A full featured, fast Command Line Argument Parser for Rust