News for hackers. Stuff that matters.

shikaan

Re:Small Programs and Languages on Sunday October 25, 2026 @03:24AM (#50229144)
Great read (: This is precisely how I learn, even though these days it all feels a little futile.

The other part for me is working within tight constraints. A couple of years back I made an Operating System that fits a bootloader (I was low-key hoping to find in the list :P) Not really golfing but surely a good exercise in playing within constraints.

If anybody wants to take a look https://github.com/shikaan/osle

Show HN: Dewlock – A minimal, beautiful screen locker for Wayland

https://github.com/shikaan/dewlock

Light software keeps a machine useful long after the vendor decided it should not be.Unfortunately, minimal desktop environments usually come with many hours of configuration files to write to make them nice or sometimes even just useful.I don't think that's necessary, and I have been building a set of tools to prove that.The first one is dewlock; a swaylock fork, that looks similar to what you...

( Read More... | no comments | on HN )
Re:Ask HN: What Are You Working On? (April 2026) on Monday April 13, 2026 @04:09AM (#47749193)
A native application (Windows, Linux, MacOS) for music transcription.

It comes with time stretch and pitch shift as most of these softwares do, but it allows you to save loop regions and take notes. It's designed to be a practice session tool.

I'm doing it from first principles, and having fun writing GPU code, platform shims, and squeeze every ms I can to make it fast and smooth.

I will be looking for testers soon. If anybody is interested, hit me up.

Re:Old laptops in a colo as low cost servers on Thursday April 09, 2026 @06:09PM (#47710902)
Is this how we bring "works on my machine" in production? /s
Re:ASCII and Unicode quotation marks (2007) on Monday March 16, 2026 @03:36AM (#47396078)
Kinda OT: can anybody recognize the keyboard in the German keyboard shot? I have been looking for a similar ISO keyboard (with international layout) for a while

Show HN: OSle – A 510 bytes OS in x86 assembly, now with a C API

https://github.com/shikaan/osle/releases/tag/16800a5

About 10 months ago I posted OSle here [1], an OS in x86 assembly that fits in the 510 bytes of a bootloader. It got great discussion and I kept working on it. All userland programs were 16-bit assembly until last week. I started playing around with giving it a C runtime and here we are: you can now write programs for OSle in C. The SDK ships a small C runtime that provides the same API the...

( Read More... | no comments | 2 points | on HN )
Re:Notes on Clarifying Man Pages on Friday February 20, 2026 @01:29PM (#47091800)
I have played with that idea for a while until I realized I was creating a poor man's web browser in the terminal.

At that point I started wondering if converting my man folder to HTML and using lynx[1] wasn't a better idea.

I ended up using vanilla man again.

Are there better/fancier manpage readers out there that can change my mind?

[1]: https://lynx.invisible-island.net/current/

Re:SectorC: A C Compiler in 512 bytes on Sunday February 08, 2026 @04:08AM (#46932669)
Such a great read! Reminds me of the bootsector OS I made some time ago[^1]

Maybe it's time to equip it with a C compiler...

[1]: https://github.com/shikaan/osle

Re:Pass: Unix Password Manager on Sunday September 14, 2025 @01:50AM (#45237757)
Shameless plug. I built a tool[1] to manage Keepass archives in the terminal which might scratch some of the itches I am reading here: it has a TUI, but can be piped into other commands too.

[1]: https://github.com/shikaan/keydex

Exactly this.

I have been planning on trying to glue up something with v86[1] as I did in OSle[2] but I did not get to it yet.

In that case, everything would run locally and sandboxes, so you would not have to care.

[1]: https://github.com/copy/v86

[2]: https://github.com/shikaan/osle

Something similar, but you can play with the examples in the browser without any local setup https://shikaan.github.io/assembly/x86/guide/2024/09/08/x86-...

For full disclosure, I am the author - apologies for the shameless plug

Re:Show HN: OSle – A 510 bytes OS in x86 assembly on Saturday May 03, 2025 @06:52AM (#43878174)
Honestly, I made it up :)

I thought about what would be the minimum I have to build in order to run some userland software that does "something". That to me looked like: spawn guest applications, make them persist something.

With slightly more leeway, I would probably do memory management as the next thing (besides what I mentioned in another thread here)

Re:Show HN: OSle – A 510 bytes OS in x86 assembly on Saturday May 03, 2025 @02:48AM (#43877311)
Oh boy, this is amazing! Thanks for the reference
Re:Show HN: OSle – A 510 bytes OS in x86 assembly on Friday May 02, 2025 @03:32PM (#43873822)
Hey, thanks for your interest in this project!

3. The tty interrupt advances the cursor along with printing. So, once again, I do it to save on some instructions. In the first iterations I wanted to retain more control (by printing and moving as separate operations) so that I could reuse this across the board, but eventually I ran out of space.

4. I am relying heavily on BIOS interrupts, which are criminally underdocumented. The most reliable source is Ralph Brown's documentation[1] which is very far from what I was expecting to be authoritative documentation. Turns out this collection is really good and basically _the_ source of truth for BIOS interrupts.

To answer your question, yes, this is basically calling the BIOS API.

[1]: https://wiki.osdev.org/Ralf_Brown's_Interrupt_List

Re:Show HN: OSle – A 510 bytes OS in x86 assembly on Friday May 02, 2025 @09:40AM (#43869616)
I would have assumed the same, but I haven't managed. On the other hand, I did not tinker too much with all these toggles; it's such a little amount of shared code (which is also partially different in some cases) that didn't particularly make sense to me.

If you know how to make it happen and/or want to contribute, hit me up (:

Re:Show HN: OSle – A 510 bytes OS in x86 assembly on Friday May 02, 2025 @09:23AM (#43869410)
1. If you look through the commit history, you'll see that the first implementation was actually with Pascal strings.

Printing with Pascal strings is actually shorter (you skip the null test, basically), but constructing Pascal strings to pass as an argument when they are not constants yielded much more code to prepare for that call. Had I had more leeway, I would have used Pascal strings, it much less headache.

2. Files in `/bin` all include from the SDK. You can pretty much do the same for utility functions.

The includes, at least in nasm, are very much like copy-pasted code (or includes in C for that matter), and then you can just jump/call to the label.

I did not do it because I haven't been able to get nasm to optimize away the code that I don't use, and I didn't want to bloat the binaries or make a file for a 5LOC function.

All in all not good reasons in general, but it made sense to me in this context.

Re:Show HN: OSle – A 510 bytes OS in x86 assembly on Friday May 02, 2025 @05:27AM (#43867744)
Indeed. Thanks for the correction; I edited the original message
Re:Show HN: OSle – A 510 bytes OS in x86 assembly on Friday May 02, 2025 @05:03AM (#43867625)
Hey, thanks for taking a look!

On the former, I have no idea how to estimate BIOS functions size. Maybe I could just peek into an image and get a sense for it...

On the latter, with a 16x increase in available space, I guess I would do a much more thorough work in putting guardrails in place.

The API currently comes with a couple of traps (e.g., file names can be duplicated, processes are cooperative, all file operations perform disk I/O...) and it essentially requires guest applications to know about BIOS services in order to function.

Another sticky point I wish I had the space to address better are calling conventions, which I had to get rid of almost immediately to save on instructions.

> Thanks for pointing me towards the bosh emulator.

You're welcome! Bochs is such a nice tool which I discovered only for this project as well. It was a no-brainer, since I got no way to debug 16-bit assembly from QEMU (unless you go off and fork it[1])

[1]: https://gist.github.com/Theldus/4e1efc07ec13fb84fa10c2f3d054...

Re:Show HN: OSle – A 510 bytes OS in x86 assembly on Friday May 02, 2025 @04:44AM (#43867516)
I went back and forth about the file system and disk stuff a fair bunch, to be honest. Most of it, as you say, was mostly due to wrestling the space constraints.

If one day I'll give in and take the shell out or go multi-stage, I will definitely look at that.

Maybe it's worth blogging about the journey; it's been a few weeks of merciless trade-offs to reach a usable API. It can make for a fun read (:

Thanks for taking a look!

Older »