Redox – A Unix-Like Operating System Written in Rust
121–130 of 215 posts
Re: Redox – A Unix-Like Operating System Written in Rust
#122Earlier quoted context omitted.
Operating systems aren't that big, and if you know your stuff, I'm sure it's not too hard to pull off. Here's an example I borrowed from StackExchange: According to cloc run against 3.13, Linux is about 12 million lines of code. 7 million LOC in drivers/, 2 million LOC in arch/, and only 139 thousand LOC in kernel/. ( http://unix.stackexchange.com/a/223753 ) Edit: Would be nice to have the numbers for the latest Mini…
Btw, if anyone is interested in learning how to write an OS, and interested in Rust, check out https://intermezzos.github.io/ . It's a "learning OS" in Rust, with a companion book. Incomplete, but a good start.
Re: Redox – A Unix-Like Operating System Written in Rust
#123I'm pretty impressed that 37 people are capable of writing an entire OS with a gui in under a year. Looks really cool.
Ours didn't have a GUI. It took us less than a year to write and the team was never larger than 6 people. It's less complicated than it seems at first sight. There are a lot of things about machines that you need to understand, but the technology itself is relatively well-understood and sane practices are encouraged. It blows my mind that less than twenty people can string up something non-trivial with Node.js et co.…
Re: Redox – A Unix-Like Operating System Written in Rust
#124Oh man if we could get hard realtime scheduling in early, large, critical embedded systems like medical would benefit greatly!!!$$$
Doesn't that exist with something like FreeRTOS?
Re: Redox – A Unix-Like Operating System Written in Rust
#125Very nice. It was time to do this. There are three near-term products to develop on this: - A small router (home/small office, not data center) - A DNS server - A BGP server Those are standalone boxes which do specific jobs, they're security-critical, and the existing implementations have all had security problems. We need tougher systems in those areas.
This may be helpful for the DNS server https://github.com/gtadam/rust-dns
http://ironsides.martincarlisle.com/
IRONSIDES uses SPARK to show freedom of exceptions or single-packet DOS. A translation to Rust would probably preserve most of those properties. I also thought a parallel development between Ada2012/SPARK and Rust would be interesting to see if one set of checkers catch something another misses in same piece of software.
Re: Redox – A Unix-Like Operating System Written in Rust
#126Very nice. It was time to do this. There are three near-term products to develop on this: - A small router (home/small office, not data center) - A DNS server - A BGP server Those are standalone boxes which do specific jobs, they're security-critical, and the existing implementations have all had security problems. We need tougher systems in those areas.
I was worried a whole UNIX might be too big a project so I gave him old school recommendations before. Essentially told him to make a split system that lets you run on tiny kernel bare metal, run UNIXy apps with different API, and let them communicate through some IPC mechanism. That way, like security & MILS kernels, people can write security critical components in isolated partitions with checks at interfaces. Alre…
Re: Redox – A Unix-Like Operating System Written in Rust
#127I'm pretty impressed that 37 people are capable of writing an entire OS with a gui in under a year. Looks really cool.
Wirth and a few others went to Xerox to see their personal computer with GUI that Steve Jobs also envied. They were told they couldn't buy it. "So, I built one..." (Wirth) http://www.cfbsoftware.com/modula2/Lilith.pdf Lilith was a custom computer with all kinds of hardware. The mouse eventually inspired Logitech. The software included a safe language (Modula-2), its compiler, an OS (Medos-2), a relational DB, and som…
Re: Redox – A Unix-Like Operating System Written in Rust
#128Very nice. It was time to do this. There are three near-term products to develop on this: - A small router (home/small office, not data center) - A DNS server - A BGP server Those are standalone boxes which do specific jobs, they're security-critical, and the existing implementations have all had security problems. We need tougher systems in those areas.
I was worried a whole UNIX might be too big a project so I gave him old school recommendations before. Essentially told him to make a split system that lets you run on tiny kernel bare metal, run UNIXy apps with different API, and let them communicate through some IPC mechanism. That way, like security & MILS kernels, people can write security critical components in isolated partitions with checks at interfaces. Alre…
Correctness suffers because the UNIX API has all sorts of interactions between different parts. This includes atomicity. It's a bear to get this right with IPC.
Performance suffers because you are unable to effectively share data structures. This too relates to the interactions between different parts of the UNIX API.
Look, there is a reason GNU HURD is slow and suffers from incompatibility. It's a cute thought experiment, dominating academia around 1990, but it's not actually fast or maintainable. Experience has proven this.
Re: Redox – A Unix-Like Operating System Written in Rust
#129Earlier quoted context omitted.
I was worried a whole UNIX might be too big a project so I gave him old school recommendations before. Essentially told him to make a split system that lets you run on tiny kernel bare metal, run UNIXy apps with different API, and let them communicate through some IPC mechanism. That way, like security & MILS kernels, people can write security critical components in isolated partitions with checks at interfaces. Alre…
A web server gets big, complicated, has lots of add-on parts, and has performance constraints. Small routers, DNS servers, and BGP servers are small, closed systems that should Just Work. You want to get them working, lock the code into read-only memory, and forget them.
Re: Redox – A Unix-Like Operating System Written in Rust
#130Earlier quoted context omitted.
As somebody who develops significantly complex in Node.js and considers operating systems to largely be black magic, I'd love to have a chat about this some day, and compare notes :)
Read the MINIX book. It's basically a walk-through (with source code) of entire operating system.
You'd do better to look at xv6. That's like v6 UNIX, minus permissions, plus SMP, running on 64-bit x86. It's very clean and modern C99.