How about a federated link aggregator?
Didn’t know Lemmy was written in Rust.
Edit: yep, it is https://github.com/LemmyNet/lemmy
Yoo it uses AGPL v3 too. That’s pretty cool. Love to see it
With a comment section?
It can be definitely done. I think it shouldn’t be too hard to optimize for scale, should it?
just add more ram
Lets just not think about it!
It’s probably only ever gonna be used by like, what, a hundred people at most at any given time?
Well, that escalated rather quickly.
So I watched a few guides and did all that… what now? Would you think a shopping list app is doable for my knowledge after this? It looks really hard compared to NorgurOS… :(
For people who don’t know, there is already a fully Rust OS: https://www.redox-os.org/
Microkernel too which is pretty cool.
IIRC the filesystem was literally just a text file.
I have heard about Redox. What’s the difference between a microkernel and a kernel? Does redox use the linux kernel? Or has the guy written that in rust too?
Well, think microkernels as the bare minimum. They give you just enough to write your own OS on top of that: only the bare essentials run in kernel space, whilst everything else runs in user space and has to communicate with the kernel. Compare this to a monolithic kernel, like the Linux kernel: here, the whole operating system is run in kernel space, which means that data doesn’t need to be moved between user and kernel space: this makes the OS faster, but at the cost of modularity. Redox doesn’t use the Linux kernel, it uses its own microkernel written in Rust.
Edit: A good example would be driver. In a microkernel, these run separately from the kernel and interact with it when needed. In a monolithic kernel, these drivers would be included in the kernel itself. They both have their pros and cons: if you’re interested, feel free to look it up.
Does that mean on a microkernel you’d essentially have double the amount of code execution for a driver (i.e. driver makes a call to the kernel, kernel verifies and then executes rather than the driver just executing the call) meaning double the latency? Seems like it would cause a lot of problems.
Nowhere near double, the kernel can be extremely sparse on it’s side, but there is a small latency hit
thanks for the explanation! I was thought it had something to do with linux since the lead dev works for System76.
No problem! Actually, System76 is currently working on rewriting the COSMIC desktop in Rust (or really, just writing a new DE in Rust). It’s a pretty ambitious project that should hopefully get released some time this year. I wouldn’t be surprised if the lead redox dev was working on it too: low-level Rust knowledge is exactly what they need.
Yeah, I am waiting for a new blog post from them of that.
lots and lots more IPC. So lots and lots of context switches. So worse performance
Very small projects 😂 after mastering it try building whooping to-do app in rust!
This actually wrong way to do it, here the pro way:
1.Start writing a game/app/engine/os.
2.Write dozen utility packages for it.
3.Write high-level packages for #2
4.Write a “light-weight” version of #3 when disgusted with bloat of #3.
5.repeat #2 with more modern rust code.
you have been looking at my private github repos and are clearly a witch
I’m in this picture and I don’t like it. Also, you forgot:
1.5 Get completely wrapped around the axle by writing tooling to support said game engine art assets.
Don’t forget to upload them all to crates.io. Add them to the list of useless crates that no one will ever use.
Small science projects:
-
Baking soda and vinegar volcano
-
Moon landing
-
Splitting the atom
I love how simple and small scale splitting an atom sounds. Then you get to doing it…
Splitting individual atoms isn’t that difficult, you just need a neutron supply and some material (paraffin wax works) to slow them down and it will eventually happen at least with uranium. Doing it reliably and efficiently is a much harder problem.
-
It’s just the natural progression of things
I mean you’re not wrong, but it kind of skips a lot of in-between steps.
Let me on the Linux kernel irq I can redo the whole thing!
It’s a matter of perspective. If the game is Tic-Tac-Toe and the system a basic RISC SOC with open firmware this might be a fun project :P
to be fair , making a simple os is a fun side project , though I would recommend going with a toy VM rather than actual hardware
To be fair, a simple operating system project is not that hard to implement.
Point in case: Ben Eater recently uploaded a video where his “BIOS” consists of two I/O functions and compiles into less than 250 bytes. Double that if you count his port of WOZMON. We can argue later if that constitutes an operating system - I mean, it’s not POSIX compliant but it does operate.
https://www.youtube.com/watch?v=0q6Ujn_zNH8
Edit: watch that space. The venerable MS BASIC is on the way after this.