Please ask any questions or make any comments you have about Redox!
EDIT: I am going to sleep soon. I will be up in 8 hours, 7 A.M. Mountain Time.
Please ask any questions or make any comments you have about Redox!
EDIT: I am going to sleep soon. I will be up in 8 hours, 7 A.M. Mountain Time.
1. Could you say your opinion about future of Rust. Will it become mainstream?
2. Pros/cons between Rust and C for system programming?
3. I heard many times that implementation of standart data structures like RBTree, Graphs without recursion traversal in Rust it's very difficult and painful tasks with unsafe hack code. So if i am Rust beginner i should avoid learn this language through implementations my own data structures(BST, AVL, LL, ...)?
*sorry for my English. It is not my native language.
1. I can definitely see its future in drivers, filesystems, codecs (areas where both performance and correctness is required).
2.
+ Rust has fantastic error handling. No null pointers. Mandatory error checking, but with very light syntax.
+ Dependencies and modularization in Rust are soooo much easier than in C.
+ You never have to write `free()` again.
+ Thread-safety can be guaranteed at compile time.
- Significant learning curve. You need to "get" Rust's ownership approach before you even manage to compile a non-trivial program.
- It's still "new", so it may be hard to convince people to use it. C is 45 years old, so it seems like a safe bet (it has flaws, but the flaws are well-known).
3. What Rust calls "unsafe" is what all of C is, so it's never worse than C. The idea is that you carefully implement these structures using raw ("unsafe") pointers, and wrap them in a safe Rust API. This way you need get it right once, and rest of the code doesn't have to worry about breaking things.
I'm not entirely certain that's true. I wrote a useful (to me) cli script and only have the vaguest understanding of how the ownership model works. I think for text processing sorts of tasks, it's not too difficult to use.
The ownership model isn't too bad for strings, but those are easily the most simple way to start using the ownership model. At least for me, getting into the more advanced ownership stuff is a whole different beast entirely.
The only way to change this at the moment is to edit `/etc/passwd`, where they are stored after being encrypted using argon2.
Nitpick: s/encrypted/hashed/
I then rewrote it in 64-bit assembler, for fun.
After learning about Rust, I immediately went to work on Redox. The bootloader and framebuffer initialization code were lifted from the old toy OS's.