Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

An educational question: If this is a tcp/ip implementation where is it run? On a router? Or on a network interface controller? Both?


> It is used in embedded systems such as the ARTIQ core device and ionpak. [1]

and

> ARTIQ (Advanced Real-Time Infrastructure for Quantum physics) is a leading-edge control system for quantum information experiments. [2]

[1] - https://m-labs.hk/smoltcp.html

[2] - https://m-labs.hk/artiq/index.html


The org developping smoltcp makes embedded systems, so the point of smoltcp is probably to use it there.

smoltcp is also used by Redox, an OS written from scratch in Rust.


"smoltcp is a standalone, event-driven TCP/IP stack that is designed for bare-metal, real-time systems."

My understanding based on that description is that it is meant for applications that run directly on the hardware, without an OS in the middle. I'm thinking embedded applications.

So I'm thinking that this is meant for IoT-style appliances and the like. Maybe I'm wrong :)


I'm using it in my toy OS as my TCP/IP implementation. It's meant to be run in a wide variety of contexts, from embedded IoT-style appliances to userspace Linux. In fact, it has instructions for Hosted Usage[0] in the README.

[0]: https://github.com/m-labs/smoltcp#hosted-usage-examples


I think IoT devices run a lot more OS than you're expecting. Even the wifi chip on one might have a real OS.

This could be useful for a userspace TCP stack; sometimes it's better to do the whole thing in your process than the kernel.


Ah so, it can be something like a "network platform" on my (let's say) smart home thermostat? :D


Exactly, it can be the bit that allows your smart-home thermostat to talk to the app on your phone (or the cloud).


I think it would be run on a network interface. Isn't this or an equivalent implementation that comes packaged with every OS so that you can connect to a network?

I may be wrong here and others are more than welcome to correct me.

EDIT: Added "or an equivalent"


This is definitely not the implementation that comes packaged with every OS. Every OS has its own TCP/IP implementation that usually lives in the kernel - though most are derived from BSD's TCP/IP stack.

SmolTCP could (in theory) replace the implementation packaged with an OS, or even be used completely from userspace by taking over the raw network interface.


Apologies.

I didn't mean that this exact implementation is shipped with every OS. I meant an equivalent of it being shipped with OSes.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: