Skip to content Skip to footer
0 items - $0.00 0

Show HN: OSle – A 510 bytes OS in x86 assembly by shikaan

Show HN: OSle – A 510 bytes OS in x86 assembly by shikaan

Show HN: OSle – A 510 bytes OS in x86 assembly by shikaan

7 Comments

  • Post Author
    yjftsjthsd-h
    Posted May 2, 2025 at 7:35 am

    Well that's cool. Does the name stand for something?

  • Post Author
    sim7c00
    Posted May 2, 2025 at 8:23 am

    cool stuff, like you still fit quite a bit in there too, 510 bytes can be tricky.

    if you want an ahci controller to 'see' it, it will need partition table too, which will make it even less bytes (or maybe cleverly encoded)

  • Post Author
    fuzzfactor
    Posted May 2, 2025 at 8:26 am

    On projects like this, where the IMG is small enough, I would think it was ideal to include osle.img with the zip.

  • Post Author
    mycatisblack
    Posted May 2, 2025 at 8:38 am

    Very cool!
    I have to ask: what would the total size be if the package included the bios functions?

    Also: what could be done if the size limit were 8kbyte like the mask-rom bios days?

    Thanks for pointing me towards the bosh emulator.

  • Post Author
    revskill
    Posted May 2, 2025 at 11:04 am

    All professors should be doing this decades ago right ?

  • Post Author
    nathell
    Posted May 2, 2025 at 11:26 am

    Some related stuff:

    In 2004, Gavin Barraclough’s mini-OS [0] won the IOCCC, packing a 32-bit multitasking operating system for x86 computers, with GUI and filesystem, support for loading and executing user applications in ELF binary format, with PS/2 mouse and keyboard drivers, VESA graphics, a command shell, and an application into 3.5 KB of highly obfuscated C code.

    In 2021, Justine Tunney wrote SectorLISP [1], a Lisp implementation that fits into a bootsector and is able to run McCarthy’s metacircular evaluator.

    [0]: https://www.ioccc.org/2004/gavin/index.html
    [1]: https://github.com/jart/sectorlisp

  • Post Author
    90s_dev
    Posted May 2, 2025 at 12:49 pm

    Two questions:

    1. I just saw how str_print is implemented. It's so short even though it's asm. Is this why nul-terminated strings were so popular and became the default in C? Would pascal strings be much longer/uglier/harder in asm?

    2. Why is str_print repeated in multiple files? How would you do code sharing in asm? I assume str_print is currently not "static" and you'd have to make it so via linking or something, and then be able to get its address using an asm macro or something?

Leave a comment

In the Shadows of Innovation”

© 2025 HackTech.info. All Rights Reserved.

Sign Up to Our Newsletter

Be the first to know the latest updates

Whoops, you're not connected to Mailchimp. You need to enter a valid Mailchimp API key.