Live data from Hacker News

Viewing profile — imtomt

imtomt

HN member
Joined
Fri, May 01, 2026, 9:19 AM UTC
HN karma
225
Public activity
33 items

About imtomt

welcome to the mental sensation station

Recent public activity

  1. comment
    Comment #48651935

    For sure. My laptop has an arm64 chip, which is why this is written in arm64. If I had an intel chip, it would be written in x86_64. RISC-V is very interesting, though, and I'd lov…

  2. comment
    Comment #48651886

    Honestly it's easier than you'd think! All the syscall numbers are in /usr/include/asm-generic/unistd.h (on linux), and you can read the man page for any of them.

  3. comment
    Comment #48651455

    Well, if security is a major concern, definitely don't use ymawky in production! That said, I did try my best to harden it. I've fuzzed the parser extensively with afl-fuzz, and go…

  4. comment
    Comment #48651416

    You could do that, but it's not really necessary, and adds extra overhead and complexity. And as the other commenter pointed out, it wouldn't work for text file types without magic…

  5. comment
    Comment #48651321

    The language matters much less than the architecture of the web server. A server written in assembly using a fork-on-request model like ymawky is going to be much slower than a ser…

  6. comment
    Comment #48651179

    Thank you! Definitely, some macros would probably be super helpful. Register renaming, too, I'm sure. When I started this project I didn't even know about register renaming lol, an…

  7. story
    Show HN: A pure ARM64 Assembly web server, now on Linux with CGI for no reason

    This is ymawky, a now-dynamic web server written entirely in ARM64 Assembly. I've previously posted about ymawky here: https://news.ycombinator.com/item?id=48080587 In the past mon…

  8. comment
    Comment #48128777

    slowloris mititgations actually weren't too bad, just a couple syscalls to setitimer(), sigaction(), and setsockopt(). Range header parsing was awful, so was content length. I'd sa…

  9. comment
    Comment #48093618

    Thank you. My favorite reasons for projects are "just because I wanted to" and "because someone told me I shouldn't", and this one ticks both boxes, haha.

  10. comment
    Comment #48089106

    Oh wow! Your project was actually really inspiring to me, thank you for making this. I was really impressed reading through it a while back. Is it alright if I add a link to your r…

  11. comment
    Comment #48088745

    Aw, that’s too bad. Sounds like it was a really fun project. Thanks for the tips on CGI! Definitely going to look into it more. The server-side execution of CGI scripts definitely …

  12. comment
    Comment #48087987

    It would be possible, but impractical for where this project is now. In retrospect, I could have written it with more portability from the start, but since it was just a personal l…

  13. comment
    Comment #48082086

    Woah! I honestly feel more intimidated writing a CGI script in assembly than I was writing a server, lol. CGI support has been on my mind for a couple weeks, but I haven't really d…

  14. comment
    Comment #48081804

    Yeah, that's what I realized during this, too. You need to be much more explicit, but the way any given function works isn't fundamentally different. "strlen" will always iterate t…

  15. comment
    Comment #48081763

    That's so cool! I would love to see it if you're sharing it anywhere.

  16. comment
    Comment #48081391

    Yeah, I know MacOS syscalls aren't stable. Interesting point about Go, I hadn't heard about that. Unfortunately I'm a masochist though, and want to avoid libSystem.dylib as much as…

  17. comment
    Comment #48081372

    Honestly haven't benchmarked it, but I would imagine ymawky would be considerably slower than most fully-featured web servers. ymawky uses fork-per-connection, which is fundamental…

  18. comment
    Comment #48081235

    Ahh you caught me. I just kept telling ChatGPT dot com "no, make it less efficient" and copied whatever output it gave me. jk, thank you!

  19. comment
    Comment #48081208

    Woah, that's really cool! I'm glad you did that even if you didn't need to. I honestly think everyone needs to write more assembly, because it's so much cooler.

  20. comment
    Comment #48081165

    Honestly, just reading existing assembly to get a feel for how it works, and then violently googling everything that goes wrong. The ARM Architecture Reference Manual (aka "The ARM…

  21. comment
    Comment #48081111

    Thank you! This is one of the nicest things I've heard in a while.

  22. comment
    Comment #48081089

    Why stop there? Next, I'm prying open a CPU and poking the transistors with a 9V battery and paperclips to make it execute what I want. Slower, but you get so much control .

  23. comment
    Comment #48081044

    Thanks for the link, bookmarking. I should note ymawky's main portability issues are unfortunately at the syscall layer rather than the asm layer. proc_info() and getdirentries64()…

  24. comment
    Comment #48080982

    I wrote it for MacOS because I don't have a Linux machine right now :( Once I get one up and running again, I'll probably work on porting this. As for why it wouldn't run on Linux,…

  25. comment
    Comment #48080865

    Thank you! The thing about eventually building your own meta language ends up happening all the time with bigger assembly projects. I do have a fair few quality-of-life macros too,…