this post was submitted on 03 Jan 2024
355 points (96.8% liked)

Technology

59675 readers
3555 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS
 

Enter Maestro, a unix-like monolithic kernel that aims to be compatible with Linux in order to ensure wide compatibility. Interestingly, it is written in Rust. It includes Solfége, a boot system and daemon manager, maestro-utils, which is a collection of system utility commands, and blimp, a package manager. According to Luc, it’s creator, the following third-party software has been tested and is working on the OS: musl (C standard library), bash, Some GNU coreutils commands such as ls, cat, mkdir, rm, rmdir, uname, whoami, etc… neofetch (a patched version, since the original neofetch does not know about the OS). If you want to test it out, fire up a VM with at least 1 GB of ram.

top 50 comments
sorted by: hot top controversial new old
[–] anthoniix 95 points 10 months ago* (last edited 10 months ago) (4 children)

This sounds cool, but troubling because of its license. Trying to write a linux compatible kernel and licensing as MIT is basically asking to get railroaded by gigantic organizations. I hope they reconsider in the future.

[–] itsnotits 54 points 10 months ago (3 children)
load more comments (3 replies)
[–] [email protected] 14 points 10 months ago

Its a bit if an issue with the rust ecosystem in general tbh. Wish more stuff was copyleft >.<

load more comments (2 replies)
[–] itsnotits 75 points 10 months ago (2 children)

According to Luc, its* creator

[–] onelikeandidie 30 points 10 months ago (2 children)
[–] sugartits 30 points 10 months ago (2 children)
[–] [email protected] 6 points 10 months ago (1 children)
load more comments (1 replies)
load more comments (1 replies)
load more comments (1 replies)
[–] TheRealKuni 27 points 10 months ago (1 children)

Keep fighting the good fight. Syntax is important.

[–] victorz 22 points 10 months ago

Yes. Thank you, "It's no tits"!

[–] [email protected] 67 points 10 months ago (5 children)

Ok, I'm out of the loop and I've seen this often enough that I have to ask; why do people always bring up "written in rust"? No one points out that a given project is written in C++/C#/python/ruby etc, yet we keep seeing it for rust.

[–] xantoxis 108 points 10 months ago (1 children)

If you want a real answer, it's mostly advocacy, the same reason Linux enthusiasts show up to every negative-sounding Windows thread to tell you to install Linux instead. And if it is less obnoxious, it's only because there's fewer Rust enthusiasts.

There are, also, advantages to a Rust implementation that you can claim simply by virtue of something being implemented in Rust, as entire categories of problem that cause C projects to hemorrhage security vulnerabilities simply don't exist for Rust.

But mostly it's people wanting you to be excited about and interested in Rust.

[–] [email protected] 17 points 10 months ago (10 children)

Is there something inherently safer with how rust does things, or is it just a case of it being new, so the vulnerabilities haven't been found yet?

[–] hperrin 84 points 10 months ago* (last edited 10 months ago) (1 children)

Yes, it is inherently safer than C. Unless you write code in an unsafe block, Rust will handle many aspects of memory allocation and management for you, and ensure their safety. It is memory safe and thread safe by default.

C doesn’t have any of these safety checking features, so it would be equivalent to unsafe Rust, but all the time. It lets you do whatever you want with pointers for example, including making them point outside of the memory bounds. In program code, this will cause an illegal memory access exception, but in kernel code, all memory access is legal. Therefore, you could write a driver that accidentally overwrites the kernel’s own code in memory. That would likely cause a kernel panic and bring the whole system down. Whereas, in Rust, you can only do that within an unsafe code block.

[–] wikibot 9 points 10 months ago

Here's the summary for the wikipedia article you mentioned in your comment:

Thread safety is a computer programming concept applicable to multi-threaded code. Thread-safe code only manipulates shared data structures in a manner that ensures that all threads behave properly and fulfill their design specifications without unintended interaction. There are various strategies for making thread-safe data structures.A program may execute code in several threads simultaneously in a shared address space where each of those threads has access to virtually all of the memory of every other thread. Thread safety is a property that allows code to run in multithreaded environments by re-establishing some of the correspondences between the actual flow of control and the text of the program, by means of synchronization.

^article^ ^|^ ^about^

[–] [email protected] 29 points 10 months ago

Rust has many safeguards against some common errors that may cause security vulnerabilities. It’s by no means bulletproof against all vulnerabilities, but it’s something.

[–] [email protected] 11 points 10 months ago

I only know the hype. But the hype says that Rust's ownership system makes memory usage much safer by forcing the coder to deal with data. Your values will eventually go out of scope, and you have to dictate when that will happen or else it won't compile.

...or something like that.

load more comments (7 replies)
[–] [email protected] 56 points 10 months ago (10 children)

Programmers are hyped about Rust. It’s a programming language that has a legitimate chance to replace C and C++ for performance critical applications. So any new project in Rust increases the possibility of a future where C and C++ are programming languages of the past.

load more comments (9 replies)
[–] devfuuu 23 points 10 months ago (2 children)

Because rust is the modern low level systems language, which means it gotta go fast without all the freaking problems of the only other real alternative so far that was C. The languages you list don't even play in the same ballpark.

[–] AnUnusualRelic 22 points 10 months ago (1 children)

But a kernel written in Perl would be a real achievement. Something in a whole different league.

[–] [email protected] 16 points 10 months ago* (last edited 10 months ago) (1 children)

It definitely would be. Next time someone posts a kernel written in Perl I hope they specify that.

[–] [email protected] 21 points 10 months ago
load more comments (1 replies)
[–] [email protected] 18 points 10 months ago* (last edited 10 months ago)

Mentioning it's written in rust should imply this code base will have secure concurrency, better memory handling, be easier to extend, while maintaining near C++ performance. None of these are guarantees, but considering so many rust projects are "C/C++ programs, rewritten" it seems worth calling out as a differential. The language's advantages extending to the kernel make it an interesting project.

load more comments (1 replies)
[–] bacon_pdp 25 points 10 months ago (1 children)

50MB for a sub POSIX kernel and a shell prompt for a 50MB ISO image that has less functionality than a 4KB kernel (L4SEC) which has actual formal proofs of correctness.

Well, I guess it has Rust as a selling point but that isn't something that should matter if the goal is real security.

[–] kernelle 35 points 10 months ago (1 children)

Started as a school project

I wouldn't take it so seriously, it's a passion project from a person learning about Rust and OS structure. Don't compare this project against industry professionals.

[–] [email protected] 14 points 10 months ago (1 children)

Why not ? Even Linux started as a personal fun project. Let's see where it will go

[–] kernelle 7 points 10 months ago (1 children)

For sure, but making an OS is not a one man job anymore.

[–] shadearg 11 points 10 months ago (1 children)

Bah gaw. Terry Davis would say you "glow in the dark."

[–] kernelle 7 points 10 months ago

I knew there would be at least one TempleOS reference in this thread lmao

[–] [email protected] 8 points 10 months ago* (last edited 10 months ago)

Finally, some "exciting" news, 2031 will be the year of the linux desktop(and Maestro)!

[–] [email protected] 7 points 10 months ago (7 children)

It's interesting, but with Linux and BSD already available in many different flavours do we really need it?

I mean what use case would it be better in except maybe an extreme rust enthusiast.

[–] killeronthecorner 85 points 10 months ago (1 children)

do we really need it?

Asked no programmer ever before starting a project

[–] WhyYesZoidberg 9 points 10 months ago

If it’s cool (as this is), then yes. It’s needed :-)

[–] [email protected] 33 points 10 months ago

It isn't needed to be required for one to like developing it.

[–] xantoxis 22 points 10 months ago

With minix already available I see no reason why we need a Linux kernel

[–] AVengefulAxolotl 6 points 10 months ago

Whats the need for it? Another great operating systems engineer emerging from it even though the project itself might not be 'useful'. You only truly learn stuff when actively doing it.

One day he might be a significant contributor to Linux!

[–] asdfasdfasdf 5 points 10 months ago (1 children)
  1. Memory safety is super important
  2. Rust is far more approachable than C, so contribution and iteration is easier
  3. Did we really need an OS when Linux was released? It wasn't the first.
load more comments (1 replies)
[–] [email protected] 5 points 10 months ago

But, but… rust?!!

load more comments (1 replies)
load more comments
view more: next ›