Announcement
Collapse
No announcement yet.
Redox: A Rust-Written, Microkernel Open-Source OS
Collapse
X
-
Originally posted by pal666 View Postservo isn't written yet and will not be written for years. otherwise you pretty much nailed definition of toy language
i came to opposite conclusion
Comment
-
Originally posted by duby229 View PostThe real truth is when your CPU is running at !00% full load, the vast majority of what it's doing is waiting on latency. Perhaps a backside cache would be useful for addresses already generated, but front side cache would hurt latency badly.
Comment
-
Originally posted by pal666 View Postok, name few serious projects in rust
Also, PLEASE learn to read. i specifically mentioned future tense. That is coming from someone with disabled brainA curated list of Rust code and resources. Contribute to rust-unofficial/awesome-rust development by creating an account on GitHub.
Also, the full crates.io website filled with tons of crates. I see stuff on a daily basis and libraries for almost anything you want. Servo is a perfect example of a large Rust project.
Also, how is C++ safer in the future tense? C++ is inherently not nearly as safe as Rust due to the different type systems.
Can C++ statically check the safety of function objects to ensure no race conditions or use after frees happen? Rust can, and at the same time it statically inlines it by default. Rust has so many features far beyond C++. Name me one thing C++ does better over rust and ill debate about it, but the community knows its faults and is always looking to improve the language, while C++ is stuck perpetually as it is.Last edited by vadix; 21 March 2016, 12:22 PM.
Comment
-
Really strange thing. Microkernel to get crappy performance? ZFS to make it even worse, turning into a resource hog? MIT license to ensure corporations would not contribute back? Exotic language & kernel design to ensure there're no contributors? Hmm, failure isn't opttion, It seems it going to be hardcoded default value instead.
- Likes 1
Comment
-
Originally posted by vadix View PostA curated list of Rust code and resources. Contribute to rust-unofficial/awesome-rust development by creating an account on GitHub.
Also, the full crates.io website filled with tons of crates. I see stuff on a daily basis and libraries for almost anything you want. Servo is a perfect example of a large Rust project.
Also, how is C++ safer in the future tense? C++ is inherently not nearly as safe as Rust due to the different type systems.
Can C++ statically check the safety of function objects to ensure no race conditions or use after frees happen? Rust can, and at the same time it statically inlines it by default. Rust has so many features far beyond C++. Name me one thing C++ does better over rust and ill debate about it, but the community knows its faults and is always looking to improve the language, while C++ is stuck perpetually as it is.
http://www.cppcon.org—Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/isocpp/CppCoreGuidelines/blob...
No idea how it compares to rust though.
Comment
-
Originally posted by log0 View Post
There is work on adding type, bounds and lifetime checking to c++, which is quite nice.
Comment
-
SystemCrasher: The so called "borrow checker" in Rust runs during compilation — you are forbidden from compiling most kinds of memory bugs. I think you will have to add Rust to your list of “unique in this regard” languages regarding performance.Last edited by andreano; 21 March 2016, 03:40 PM.
- Likes 1
Comment
-
Originally posted by CrystalGamma View Post
IIRC not kernel ⇔ userspace but userspace A ⇔ userspace B is the problem. In a mode switch (kernel ⇔ user) there are no TLB flushes, which are expensive, but when you remap the address space (context switch), there are. And with the ring-based security model of the x86 MMU, there is basically no way around giving every process its own address space to ensure isolation.
Originally posted by duby229 View Post
Yeah, but address generation behind cache would be horribly slow. I know cache seems fast, but really it's just a compromise.Most time you need to have addresses readily available, and most times that's not true. Logically speaking putting the AGU behind a caching system would at minimum add that caching systems latency to address generation.
The real truth is when your CPU is running at !00% full load, the vast majority of what it's doing is waiting on latency. Perhaps a backside cache would be useful for addresses already generated, but front side cache would hurt latency badly.
Comment
-
Originally posted by Zoxc View PostActually there is a way around that, but not for arbitrary x86 code. My microkernel project (WIP: https://github.com/AveryOS/avery) uses software-fault isolation on processes ensuring that they are isolated. The processes all run in a single address space in kernel mode. This software-fault isolation also happens to prevent control-flow hijacking attacks, but it does have a overhead compared to regular x86 code.
What do you mean by address generation? A key benefit of having caches indexed by virtual memory (like the Mill, but unlike x86) is that you don't have to look up the physical address in the TLB before going to the caches.
I'm assuming duby229 means address translation by what they posted.
Comment
Comment