Redox OS 0.6.0

A Redox egy Rust-ban írt, Unix-szerű operációs rendszer:

  • Implemented in Rust
  • Microkernel Design
  • Includes optional GUI - Orbital
  • Supports Rust Standard Library
  • MIT Licensed
  • Drivers run in Userspace
  • Includes common Unix commands
  • Custom libc written in Rust (relibc)

Megjelent a Redox OS 0.6.0-s kiadása. Részletek a bejelentésben.

Hozzászólások

... biztos ami biztos, a Mozilla kirakta önálló alapítványba. Sok projekt használja ma már a Rust-ot, kár lenne ha a Mozilla sorsához lenne szorosan kötve.
Egyébként sok érdekes dolgot tud a nyelv. Egy rögtönzött példa: https://play.rust-lang.org/?version=stable&mode=release&edition=2018&gi…
Kész modulok vannak ma már bőven: https://crates.io/ ... keress és az általános témákhoz találsz modult. Aztán mehet a neve a Cargo.toml fájlba, a hozzáfordítást a fordító intézi.

Engem az lepett meg a belinkelt oldalon, hogy a GO nyelv ilyen gyengén teljesít? Nem csak a Rust-hoz képest, bármelyik másik nyelvet nézem, ez alapján, a go a .NET/Java szintjén van.

Mindenhol azt hallani, hogy az milyen gyors, meg a weboldalán is azzal kezdi, hogy "Go is an open source programming language that makes it easy to build simplereliable, and efficient software".

Nem ellenőriztem, hogy helyesek-e a kiírt adatok, de a gyakorlatban nekem nem tűnt ennyire lassúnak (igaz, keveset használom)

Nagy Péter

Kb. 1 hónapja itt a fórumon körbejártuk, hogy a Go-nak egy gyengéje a garbage collector, amely ha intenzív felszabadításokkal lesz ellátva, akkor rendesen sikamikálja a memóriát, megeszi a CPU-t, ezáltal látványosan csökken a feladatra fordítható számítási teljesítmény.
Rust esetén nincs GC, helyette lifetime alapon fordításkor számolja ki hol lesz a felszabadítás, azaz ahogy C esetén kézzel szúrtuk be a free()-t, Rust esetén automatikusan kerül be jó helyre a felszabadítás.

A Go esetén a Simple az igaz, eléggé a C-t próbálták utánozni. A Rust bátran nyúlt újszerű koncepciókhoz, sokkal bonyolultabb nyelv. Reliable kapcsán: C < Go < Rust.

A kontrollálhatóság is érdekes. A Rust két arcot mutat. Alapból az eddigi programozási nyelvek közül a legjobb védőhálót adja.
Azonban ezzel a védőhálóval nem tudnál például bare metal programozást csinálni (pl. oprendszert írni), se C-ben íródott lib felé átjárni. Ezért a védőháló a tényleg indokolt helyeken explicit kikapcsolható (unsafe { ... } kulcsszó).

Eredetileg a C++-ból származik és normális projectekben tartjuk is magunkat ehhez. mallocot, free-t csak wrapper osztályokban használunk, new/delete operátort pedig csak ott, ahol tényleg teljesen megkerülhetetlen. Sok más nyelven is lehet így dolgozni. Innen el tudsz indulni, ha érdekel.

Koszi az infot, nem tudtam hogy ennek neve is van. 

De jól sejtettem, hogy nem váltja ki a gc-t, csak a stacken lévő object-ekhez nem kell finally-t írni.

Amit a gc megvalósít - azaz eszement tömbök, azok másolása, global-ba rakasa, fgv eredményben visszaadasa - arra nem csereszabatos megoldás. (olyan populáris a programozás, hogy a gc annyira kell mint egy generic vagy az any típus) 

RAII only works for resources acquired and released (directly or indirectly) by stack-allocated objects, where there is a well-defined static object lifetime.

Dinamikus linkelést tud már? Mikor legutóbb néztem, még mindent statikusan kellett linkelni, de azóta változhatott a helyzet.

Psszt, elárulom az IP-címemet: 192.168.0.14