frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

YouTube to automatically label AI-generated videos

https://blog.youtube/news-and-events/improving-ai-labels-viewers-creators/
430•nopg•3h ago•240 comments

I think Anthropic and OpenAI have found product-market fit

https://simonwillison.net/2026/May/27/product-market-fit/
577•simonw•7h ago•707 comments

Internet traffic in Iran increasing

https://radar.cloudflare.com/traffic/ir?dateRange=28d
34•Cider9986•1h ago•12 comments

What Apple and Google are doing to push notifications

https://www.jacquescorbytuech.com/writing/what-apple-and-google-are-doing-your-push-notifications
139•iamacyborg•4h ago•138 comments

SimCity 3k in 4k (2025)

https://www.thran.uk/writ/hdid/2025/12/simcity-3k-in-4k.html
253•speckx•6h ago•89 comments

Rust (and Slint) on a Jailbroken Kindle

https://sverre.me/blog/rust-on-kindle/
77•homarp•3h ago•9 comments

DuckDuckGo search saw 28% more visits after Google said people love AI mode

https://www.pcgamer.com/hardware/duckduckgos-ai-free-search-saw-nearly-28-percent-more-visits-in-...
618•HelloUsername•7h ago•311 comments

Pelica (YC P25) Is Hiring

https://www.ycombinator.com/companies/pelica/jobs/MDeC49o-machine-learning-engineer
1•lalitkundu•53m ago

Warm up your MacBook (2019)

https://z3ugma.github.io/2019/11/18/warm-up-your-macbook/
34•kristianp•3h ago•34 comments

On Labubu and the Hyperreal

https://2earth.github.io/website/20260525.html
57•2earth•4h ago•61 comments

A New Typst Template for Pandoc

https://imaginarytext.ca/posts/2025/typst-templates-for-pandoc/
8•ankitg12•1d ago•0 comments

Interleaved Deltas

https://mmapped.blog/posts/51-interleaved-deltas
17•surprisetalk•1d ago•0 comments

Last.fm is now independent

https://support.last.fm/t/last-fm-is-now-independent/118591
594•twistslider•8h ago•167 comments

Canada to order military plane fleet from Sweden in shift from US suppliers

https://www.theguardian.com/world/2026/may/27/canada-sweden-saab-globaleye-aircraft
361•tosh•6h ago•265 comments

Incident with Pull Requests, Issues, Git Operations and API Requests

https://www.githubstatus.com/incidents/xy1tt3hs572m
249•maxnoe•11h ago•187 comments

Show HN: Open-Source AI Racing Harness

https://www.elodin.systems/post/elodin-ai-grand-prix-race-sim-harness
10•danAtElodin•3h ago•4 comments

Go: Support for Generic Methods

https://github.com/golang/go/issues/77273
169•f311a•14h ago•134 comments

Gemini, Gophers, and Fingers. Oh My Alternative Internets Beyond HTTPS

https://brennan.day/gemini-gophers-and-fingers-oh-my-alternative-internets-beyond-https/
76•ChrisArchitect•6h ago•35 comments

Mini Micro Fantasy Computer

https://miniscript.org/MiniMicro/index.html#about
227•nicoloren•13h ago•80 comments

Claude Code as a Daily Driver: Claude.md, Skills, Subagents, Plugins, and MCPs

https://arps18.github.io/posts/claude-code-mastery/
345•arps18•18h ago•219 comments

I'm Getting into Mesh Networks (Meshtastic, MeshCore, and Reticulum)

https://www.jonaharagon.com/posts/im-getting-into-mesh-networks-meshtastic-meshcore-and-reticulum/
20•Panda_•3h ago•5 comments

Freediving, Embodiment and Humanity

https://tracesofhumanity.org/freediving-embodiment-and-humanity/
22•transpute•2d ago•12 comments

Tech CEOs are apparently suffering from AI psychosis

https://techcrunch.com/2026/05/27/tech-ceos-are-apparently-suffering-from-ai-psychosis/
520•IAmGraydon•8h ago•271 comments

Dimensions of Geiger-Muller tube holder on GGreg20_V3 Geiger counter PCB (2025)

https://iot-devices.com.ua/en/ggreg20-v3-j305-tube-mounting-dimensions/
5•iotdevicesdev•2d ago•0 comments

What Is a Direct Attach Copper (DAC) Cable? (2021)

https://www.servethehome.com/what-is-a-direct-attach-copper-dac-cable/
90•teleforce•2d ago•74 comments

Private equity bought America's essential services

https://rubbishtalk.com/economy/how-private-equity-bought-americas-essential-services/
407•NoRagrets•11h ago•474 comments

Stress disrupts hippocampal integration of overlapping events, memory inference

https://www.science.org/doi/10.1126/sciadv.aea5496?user_id=66c4bf745d78644b3aa57b08
62•gmays•7h ago•11 comments

Matrix Multiplications on GPUs Run Faster When Given “Predictable” Data (2024)

https://www.thonking.ai/p/strangely-matrix-multiplications
147•tosh•4d ago•42 comments

Human Bottlenecks

https://borretti.me/article/human-bottlenecks
66•zdw•3d ago•18 comments

Fully in-browser container builds

https://ochagavia.nl/blog/fully-in-browser-container-builds/
42•wofo•2d ago•22 comments
Open in hackernews

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

https://github.com/shikaan/osle
160•shikaan•1y ago
(sorry about double posting, I forgot to put Show HN in front in the original https://news.ycombinator.com/item?id=43863689 thread)

Hey all, As a follow up to my relatively successful series in x86 Assembly of last year[1], I started making an OS that fits in a boot sector. I am purposefully not doing chain loading or multi-stage to see how much I can squeeze out of 510bytes.

It comes with a file system, a shell, and a simple process management. Enough to write non-trivial guest applications, like a text editor and even some games. It's a lot of fun!

It comes with an SDK and you can play around with it in the browser to see what it looks like.

The aim is, as always, to make Assembly less scary and this time around also OS development.

[1]: https://news.ycombinator.com/item?id=41571971

Comments

yjftsjthsd-h•1y ago
Well that's cool. Does the name stand for something?
shikaan•1y ago
The -le suffix is used in south of Germany for the small version of something. So OSle stands for small OS.

I'm not a native speaker, so maybe somebody else can paint a better picture. I used it just because part of my extended family comes from there (:

EDIT: s/prefix/suffix/

unwind•1y ago
*suffix.

A prefix goes before something.

shikaan•1y ago
Indeed. Thanks for the correction; I edited the original message
evertedsphere•1y ago
as seen also in Spätzle, Müsli, or, to pick something more relevant on HN, the words Brötli (or Zöpfli)

-li is a different version of the same ending

lloeki•1y ago
I live in Alsace, which is in France but has a German-like dialect (Alemannic)

https://en.m.wikipedia.org/wiki/Alsatian_dialect

-ele is used a lot to denote something small, cute, adorable; maybe think of it as kind of like ちび (chibi) or -ちゃん (-chan) in Japanese.

Mann (man) => Mannele https://cookingwithbrendagantt.net/mannele-st-nicholas-bread...

Katz (cat) => katzele (kitty)

The suffix can be liberally (ab)used with any - native or foreign - word or (sur)name to emphatic or comedic effect.

Here I kinda guessed the -le use was such but around here I would have said "OSele" (oh-ess-uh-luh)

ninalanyon•1y ago
Similar in English, the ie suffix is used to create a diminutive. Sweet -> sweetie. You can make cute cuter by saying cutie.
sim7c00•1y ago
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)

shikaan•1y ago
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!

sim7c00•1y ago
haha, well all the best! its a cool project. i am happy i can forgot about BIOS and went UEFI haha. remember so many tedious nights trying to get an mbr to load an elf file and init x64 mode in one go :'). uefi (edk2) is a blessing if you come from BIOS land (tho mybe less fun in a way!)
userbinator•1y ago
What sectors contain is irrelevant to AHCI. As long as the BIOS contains the appropriate interface to a block device, it can be used.
sim7c00•1y ago
the BIOS will recognize block devices as being of certain type and present them to controllers.

if you do not put partition table, qemu AHCI controller will not recognize disk as bootable and u cant use SATA. with only the magic footer at the end of mbr, it will only work on IDE controller.

try it.

userbinator•1y ago
the BIOS will recognize block devices as being of certain type and present them to controllers.

What exactly do you mean by that? Device discovery proceeds from the root (usually PCIe bus, after CPU-specific init) to the leaves, not the other way around.

qemu AHCI controller

That's its problem then. This isn't a problem on real hardware.

fuzzfactor•1y ago
On projects like this, where the IMG is small enough, I would think it was ideal to include osle.img with the zip.
mycatisblack•1y ago
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.

shikaan•1y ago
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...

userbinator•1y ago
what would the total size be if the package included the bios functions?

Probably a few dozen to over a hundred KB, maybe even over a MB, depending on the era of machine and what it has installed; e.g. the GPU option ROM would be included if you use int 10h, int 13h might be hooked by a disk adapter, and if you use int 16h to read from a USB keyboard, that'll go through the BIOS' USB stack which normally includes some code in SMM too.

revskill•1y ago
All professors should be doing this decades ago right ?
stonogo•1y ago
Why? That is to say: it's a really cool project, and clearly a labor of love, but from an academic perspective it's a collection of x86-specific commands.
revskill•1y ago
I must be honest. Professors are not doing their good job here.
nathell•1y ago
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

90s_dev•1y ago
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?

shikaan•1y ago
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.

90s_dev•1y ago
Thanks for answering my questions. Your project is really really interesting.

Two more questions if you find some spare time:

3. Why does it use tty for interrupts instead of directly calling int 10?

4. How does this even print to the screen or use a tty in the first place? Is it just something inherent in bios api?

shikaan•1y ago
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

rerdavies•1y ago
THIS is the bible for BIOS APIs"

https://bitsavers.trailing-edge.com/pdf/ibm/pc/ps2/PS2_and_P...

Complete with reference assembler source code.

shikaan•1y ago
Oh boy, this is amazing! Thanks for the reference
kachapopopow•1y ago
The linker probably compacts all of the code blocks and generally futher optimizes the final binary size.
shikaan•1y ago
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 (:

djaychela•1y ago
I have a more general question - what is the minimum that is needed to qualify as an operating system? Is there something agreed on generally? Searching operating system minimum requirements leads to the wrong kind of info for me....
shikaan•1y ago
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)

musicale•1y ago
BIOS is underrated. Basically the driver portion of a DOS- (or CP/M)-like operating system. As demonstrated, you don't need to add too much to it (program loader, simple file system, maybe a command shell and system utilities if you are ambitious) to get a functional mini-DOS.