@@ -7,6 +7,8 @@ This page covers questions/answers for newcomers and end-users.
...
@@ -7,6 +7,8 @@ This page covers questions/answers for newcomers and end-users.
-[What is Redox?](#what-is-redox)
-[What is Redox?](#what-is-redox)
-[What does Redox mean?](#what-does-redox-mean)
-[What does Redox mean?](#what-does-redox-mean)
-[What features does Redox have?](#what-features-does-redox-have)
-[What features does Redox have?](#what-features-does-redox-have)
-[Microkernel benefits](#microkernel-benefits)
-[Rust benefits](#rust-benefits)
-[What is the purpose of Redox?](#what-is-the-purpose-of-redox)
-[What is the purpose of Redox?](#what-is-the-purpose-of-redox)
-[What I can do with Redox?](#what-i-can-do-with-redox)
-[What I can do with Redox?](#what-i-can-do-with-redox)
-[What is a Unix-like OS?](#what-is-a-unix-like-os)
-[What is a Unix-like OS?](#what-is-a-unix-like-os)
...
@@ -74,6 +76,10 @@ Most of the system components run in userspace, simplifying testing/debugging.
...
@@ -74,6 +76,10 @@ Most of the system components run in userspace, simplifying testing/debugging.
### Rust benefits
### Rust benefits
#### Less likely to have bugs
The restrictive syntax and compiler suggestions reduce the probability of bugs a lot.
#### No need for C/C++ exploit mitigations
#### No need for C/C++ exploit mitigations
The microkernel design written in Rust protects against C/C++ memory defects.
The microkernel design written in Rust protects against C/C++ memory defects.
...
@@ -86,7 +92,13 @@ As the kernel is small, it uses less memory to do its work and the limited kerne
...
@@ -86,7 +92,13 @@ As the kernel is small, it uses less memory to do its work and the limited kerne
Rust's safe and fast language design, combined with the small kernel code size, helps ensure a reliable, performant and easy to maintain core.
Rust's safe and fast language design, combined with the small kernel code size, helps ensure a reliable, performant and easy to maintain core.
#### Rust-written drivers
#### Thread-safety
The C/C++ support for thread-safety is quite fragile, and it is very easy to write a program that looks safe to run across multiple threads, but which introduces subtle bugs or security holes. If one thread accesses a piece of state at the same time that another thread is changing it, the whole program can exhibit some truly confusing and bizarre bugs.
But in Rust this kind of bug is easy to avoid, the same type system that keeps us from writing memory unsafety prevents us from writing dangerous concurrent access patterns
#### Rust-written Drivers
Drivers written in Rust are likely to have fewer bugs and therefore are more secure.
Drivers written in Rust are likely to have fewer bugs and therefore are more secure.
@@ -7,6 +7,8 @@ Essa página contém perguntas/respostas para iniciantes e usuários comuns.
...
@@ -7,6 +7,8 @@ Essa página contém perguntas/respostas para iniciantes e usuários comuns.
-[O que é o Redox?](#o-que-%C3%A9-o-redox)
-[O que é o Redox?](#o-que-%C3%A9-o-redox)
-[O que Redox significa?](#o-que-redox-significa)
-[O que Redox significa?](#o-que-redox-significa)
-[Quais funções o Redox possui?](#quais-fun%C3%A7%C3%B5es-o-redox-possui)
-[Quais funções o Redox possui?](#quais-fun%C3%A7%C3%B5es-o-redox-possui)
-[Benefícios do Microkernel](#benefícios-do-microkernel)
-[Benefícios da Rust](#benefícios-da-rust)
-[Qual o propósito do Redox?](#qual-o-prop%C3%B3sito-do-redox)
-[Qual o propósito do Redox?](#qual-o-prop%C3%B3sito-do-redox)
-[O que posso fazer com o Redox?](#o-que-posso-fazer-com-o-redox)
-[O que posso fazer com o Redox?](#o-que-posso-fazer-com-o-redox)
-[O que é um sistema Unix-like?](#o-que-%C3%A9-um-sistema-unix-like)
-[O que é um sistema Unix-like?](#o-que-%C3%A9-um-sistema-unix-like)
...
@@ -68,6 +70,10 @@ O kernel é pequeno e muda muito pouco (correção de bugs), portanto você não
...
@@ -68,6 +70,10 @@ O kernel é pequeno e muda muito pouco (correção de bugs), portanto você não
### Benefícios da Rust
### Benefícios da Rust
#### Menos suscetível a bugs
A síntaxe restritiva e as sugestões do compilador reduz muito a probabilidade de bugs.
#### Sem necessidade para mitigações de exploit das linguagens C e C++
#### Sem necessidade para mitigações de exploit das linguagens C e C++
O design de um microkernel escrito em Rust protege contra as falhas de memória das linguagens C e C++, isolando o sistema do kernel a superfície de ataque é muito limitada.
O design de um microkernel escrito em Rust protege contra as falhas de memória das linguagens C e C++, isolando o sistema do kernel a superfície de ataque é muito limitada.
...
@@ -84,6 +90,14 @@ Como o kernel é pequeno, ele usa menos memória para fazer suas funções e o c
...
@@ -84,6 +90,14 @@ Como o kernel é pequeno, ele usa menos memória para fazer suas funções e o c
O design seguro e veloz da linguagem Rust, combinado com a pequena quantidade de código no kernel, ajudam a garantir um núcleo fácil, confiável e veloz de manter.
O design seguro e veloz da linguagem Rust, combinado com a pequena quantidade de código no kernel, ajudam a garantir um núcleo fácil, confiável e veloz de manter.
#### Segurança no Thread
O suporte para segurança de thread nas linguagens de programmação C/C++ é frágil e muito fácil de escrever um programa que parece seguro para executar em vários threads, mas introduz bugs útis e buracos de segurança.
Se um thread acessa um pedaço do estado ao mesmo tempo que outro thread está modificando, o programa todo pode exibir bugs confusos e bizarros.
Mas na Rust esse tipo de bug é fácil de evitar, o mesmo sistema de escrita que nos previne de escrever de forma insegura também nos previne de escrever padrões perigosos de acesso simultâneo.
#### Drivers escritos em Rust
#### Drivers escritos em Rust
Drivers escritos em Rust possuem incentivos para ter menos bugs e portanto melhor segurança.
Drivers escritos em Rust possuem incentivos para ter menos bugs e portanto melhor segurança.