Hello! I just want to announce a very little server written in ASM for linux x64. It uses only syscalls. Why did I do that? Just for fun :) More details on (in?) my (new) capsule : gemini://g-n.site/en/2020-12-03-geminiserver_asm.gmi Have a nice day, Simon
On 12/7/20, Simon <gemini at g-n.site> wrote: > Hello! > > I just want to announce a very little server written in ASM for linux > x64. It uses only syscalls. Why did I do that? Just for fun :) > > More details on (in?) my (new) capsule : > gemini://g-n.site/en/2020-12-03-geminiserver_asm.gmi > > Have a nice day, > > Simon > Yay! Gemini server written in (linux-amd64-nolibc-nasm) assembly. Really, this is what we were expecting to see given the simplicity of the protocol. Great job. I'd suggest two things:
> I'd suggest two things: > > * use $-label trick instead of hardcoding string length and > * a simple way of configuration instead of editing that file: say > using a symbol that would be defined when assembling like -D > host=my.host.tld -D port=1955 -D errpath=/error etc. Thanks for the advises ! The domain, redirection path and max page size are now defined with macros :). I've just seen I have forgotten the port, I'll do it later. Cheers, Simon
Any chance it will get ported to BSD? -- gemini://kwiecien.us/
On 12/8/20 5:16 PM, Ben wrote: > Any chance it will get ported to BSD? > If you want to, changing the syscall numbers would probably enough. You can find a table here to do the conversion : https://www.lurklurk.org/concordance.html The syscall numbers are the `mov rax, number` and the syscalls used are : getpid, socket, setsockopt, bind, listen, accept, fork, getppid, read, write, open and exit. Let us know, or do a PR if you do it :)
I haven't tried it yet, but it just occurred to me that it probably already works with FreeBSD's Linux binary compatibility anyway (and other BSD's that have this feature), so it may not even need to be recoded. -- gemini://kwiecien.us/
---
Previous Thread: TOFU, OK, but even with an expired certificate?
Next Thread: Small spec change required by RFC for lang params