
- 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.
- A hozzászóláshoz be kell jelentkezni
- 1327 megtekintés
Hozzászólások
Remélem túléli a Rust a Mozilla utáni korszakát. Redox OS jól demonstrálja mit lehet elérni ezzel a nyelvvel.
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/rus…
Más nyelvekkel összevetve jól teljesít.
“Az ellenség keze betette a lábát”
- A hozzászóláshoz be kell jelentkezni
Kösz a benchmarkot így máris érdekelni kezdett ez a nyelv.
READY.
▓
- A hozzászóláshoz be kell jelentkezni
... 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.
- A hozzászóláshoz be kell jelentkezni
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 simple, reliable, 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
- A hozzászóláshoz be kell jelentkezni
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ó).
- A hozzászóláshoz be kell jelentkezni
(unsafe)
ezt írják a redox bookban.
A kernelben ahol szükség volt ott használták és különös figyelmet fordítottak a biztonsági auditra.
- A hozzászóláshoz be kell jelentkezni
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.
Azért nem ennyire mágikus ez. Simán csak RAII elvet valósít meg, nem azt az agyament nézőpontot, amit a GC-s nyelvek rászabadítottak a világra.
- A hozzászóláshoz be kell jelentkezni
Lehet hogy nem rakétatudomány, ennek ellenére nem látom tömegével. Mely nyelvek működnek normál esetben eszerint?
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Nem, a RAII futásidejű (ilyen is van Rustban).
A Rust megoldása fordítási idejů. Ezért unicum.
- A hozzászóláshoz be kell jelentkezni
Nem is fog, mert ezek szintetikus tesztek. Nem embedded fejlesztés esetén ritkán van szükség a C szintű teljesítményre, helyette a tesztelhetőség, gyors fejlesztés, sok jó minőségű könyvtár stb. sokkal sokkal fontosabb.
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
Psszt, elárulom az IP-címemet: 192.168.0.14
Akkor ez most egy ellentmondás :)
A 192.168.0.14 nem tartozik a publikus címek közé, de megírtad nekünk, így már publikus :)
- A hozzászóláshoz be kell jelentkezni