正在加载视频...

视频加载失败

Memory safe Linux demo

54,417 次观看 • 11 个月前 •via X (Twitter)

30 条评论

Igor Klopov 的头像
Igor Klopov11 个月前

Awesome! I wonder if it's easy for you to compile a vulnerable version of some software with regular C, run an exploit agaist it, get an RCE or so, and then do the same but compile that software with FilC first. This way you show the practical purpose of your memory safety

Filip Jerzy Pizło 的头像
Filip Jerzy Pizło11 个月前

Like this?

Igor Klopov 的头像
Igor Klopov11 个月前

Yeah right! Missed that

𝒫𝑒𝓇 𝒜𝓇𝓃𝑒𝓃𝑔 【🐧λ🦀⎈】 的头像
𝒫𝑒𝓇 𝒜𝓇𝓃𝑒𝓃𝑔 【🐧λ🦀⎈】11 个月前

Nice work 💪 interesting to see it action 🤩 what would you estimate on average in % slower than C and memory usage compared to C? This could initially be very interesting for security critical systems.

Filip Jerzy Pizło 的头像
Filip Jerzy Pizło11 个月前

It’s measurably slower and uses measurably more memory. But like my demo shows, you won’t notice it as a user

molleweide 的头像
molleweide11 个月前

@per_arneng Are there any user domains where it would be noticeable assuming FilC would become more widespread?

Filip Jerzy Pizło 的头像
Filip Jerzy Pizło11 个月前

@per_arneng Yeah. Games for example

Slendi 的头像
Slendi11 个月前

Is this also memory safe with things like data races?

Filip Jerzy Pizło 的头像
Filip Jerzy Pizło11 个月前

@xslendix Yes

Nyx 的头像
Nyx11 个月前

Very nice demo, and this looks great. I’m curious what the output of that stack traces is when you don’t include debug information, or does fil-c always embed debug information?

Filip Jerzy Pizło 的头像
Filip Jerzy Pizło11 个月前

The file name and line number become “<somewhere>” Inline frames are collapsed. But at least currently, I still keep function names. I might add an option to strip those (folks wanting minimum footprint will appreciate that)

Nyx 的头像
Nyx11 个月前

I do have a concern though that it would open the executable up to easier reverse engineering. But that is a different issue and the goal is memory safety.

muxcore 的头像
muxcore11 个月前

Very cool!

iru@localhot 的头像
iru@localhot11 个月前

> mfw I heard SystemV. > mfw I have no face

spacemonkey 的头像
spacemonkey11 个月前

Awesome

Darren Shepherd 的头像
Darren Shepherd11 个月前

@awesomekling I'm gonna be the guy that ignores all this incredible work that clearly took an immense amount of time to create and only comment on the squeaky chair.

t 的头像
t11 个月前

why does rust even exist XD

Richard L ✈ 的头像
Richard L ✈11 个月前

@chromatic_x @xorloser

Daniel Cook 的头像
Daniel Cook11 个月前

Probably would be even more useful to have a fil-c user space in a docker container

Filip Jerzy Pizło 的头像
Filip Jerzy Pizło11 个月前

What would be the value of having the memory safe stuff inside a container? I imagine you might want the opposite: - Your host OS has a memory safe userland - If you want to run unsafe code (for perf reasons) you do it in a container

Daniel Cook 的头像
Daniel Cook11 个月前

To make it easier to cross compile stuff when you need access to a bunch of system packages through pkg-config

2disbetter 的头像
2disbetter11 个月前

Excellent work and thanks for sharing! Any chance you wanna take on another DE / composter and push further into userland? If that is a silly question, let me rephrase: what is the next step?

Filip Jerzy Pizło 的头像
Filip Jerzy Pizło11 个月前

Next step is web browser

𝒢𝒾𝒷𝓇𝒶𝓃 😈 🏴‍☠️@geebee@bsd.network 的头像
𝒢𝒾𝒷𝓇𝒶𝓃 😈 🏴‍☠️@[email protected]11 个月前

@awesomekling Great work 👏

Max Kupriianov 的头像
Max Kupriianov11 个月前

Awesome background!! but, with all seriousness thanks for the rundown, really provides very useful context for understanding.

John Doe 的头像
John Doe11 个月前

👀

𝐃𝐫. 𝐀𝐛𝐢𝐢𝐫𝐚 𝐍𝐚𝐭𝐡𝐚𝐧 的头像
𝐃𝐫. 𝐀𝐛𝐢𝐢𝐫𝐚 𝐍𝐚𝐭𝐡𝐚𝐧11 个月前

Video quality too low.

Sal ꙮ 的头像
Sal ꙮ11 个月前

This is great! Is there a write up somewhere describing how invisicaps are actually implemented? IIUC, they are created/used at runtime, not compile time.

Shantanu Gadgil 的头像
Shantanu Gadgil11 个月前

Would you consider uploading this to YouTube as well? (easier to share a "here, watch this" link with folks) 🙂

Richard L ✈ 的头像
Richard L ✈11 个月前

@ooPo

相关视频