> ESP32-S3 may be the worse model to run Rust on due to the XTensa cores that makes the toolchain unnecessarily complicated.
Indeed. ESP32-S31 appears to target exactly this concern in the popular "S3" segment. It's basically a updated S3, with faster and newer wireless and memory, and it adopts a pair of RISC-V cores in place of the XTensa cores.
This depends on what resources you're counting. If you're counting the developer cycles, it is not.
ESP-IDF+FreeRTOS has great value: it solves a host of mundane problems that need solving in real products. Discarding all of that value is foolish; you should preserve it, and look to keep your work aligned with the recent ESP-IDF and FreeRTOS evolution, so future you can adopt updates and supported tooling in a timely manner.
However, you also need at least some of your work to be hard real time, bare metal code. You do this through hardware peripherals, precision memory management, and tight ISRs that do not contend with whatever FreeRTOS or some Expressif driver is up to. Most of all, you want to never have to rework these parts because something in ESP-IDF and/or FreeRTOS, both rapidly moving targets, has changed.
Dedicating cores (0 for FreeRTOS, 1 for you) provides exactly this, and why ESP-IDF supports this model.
There is an ugly truth here. Ideally, one should not need to resort to such things. If the model and runtime behavior of the vendor's stack were extremely mature and could be relied upon with high confidence, it would not be necessary. However, anyone that has ever actually dealt with real time requirements and/or needed to fully exploit hardware peripheral capabilities in the real world of endlessly changing, incomplete, buggy BSPs/RTOSes/etc., knows that they probably won't live to see that.
> how does [100BASE-TX] save power vs [1000BASE-T] running at low throughput?
100BASE-TX uses just two pairs (lanes), one for sending and one for receiving. 1000BASE-T uses all four pairs, for both sending and receiving. Therefore, a 100BASE-TX interface that's only receiving needs to power up one pair. A 1000BASE-T interface needs to power all four pairs all the time.
I recall reading about some extensions that allow switching off some of the pairs some of the time ("Green Ethernet"), but I think that they require support on both sides of the link, and I'm not sure if they are widely deployed.
My only annoyance with "Green Ethernet" things is that often they seem to work poorly.
The dedicated machine I still keep around for Windows things has two onboard 2.5GbE ports. It will apparently sometimes, even with all power saving features turned off, randomly negotiate down to 100 mbit if I leave the machine alone for a bit, and then stay at that speed forever unless I manually reset the link after wondering why transferring large amounts of data is bottlenecking severely.
100 mode saved me once when I really really really needed to have a connection in that moment, but the ethernet cable glued to the wall that I was using had only three out of eight wires even functioning.
According to the technician I spoke with, he could only detect three on their end.
The cable was chewed through by cats, so perhaps it was three just in that moment.
I also appreciate the 10/100 support. I recently needed it for some old voip equipment, and it was shockingly difficult to find an SFP+ module that worked in my 10G switch and supported 100mbps.
Isn’t that only relevant for network topologies that rely heavily on broadcasting to multiple nodes. Eg token ring, WiFi and powerline adapters?
For regular Ethernet, the switch will have a table of which IPs are on which NIC and thus can dynamically send packets at the right transmission protocols supported by those NICs without degrading the service of other NICs.
I’ve seen some vlans hit 1mbit BUM filters, I think we had about 800 users on that one. To saturate a 10m link would require a help of a lot of broadcast traffic.
100m is fine. 10m is fine but I can’t think of anything that negotiates 10m other than maybe WOL (I don’t use it enough to be sure from memory).
If I didn ahve something esoteric it would be on a specialised vlan anyway.
Is that really true? If so, is there a saner way to handle this than upgrade all the things to 10GBE? Like a POE ethernet condom that interfaces with both network and devices at native max speeds without the core network having to degrade?
I'm doing a goofy thing and buying it, despite knowing I can debloat Brave, because I already do that. I didn't know this existed till I read this thread. I've been benefitting from Brave for many years now; it's great that they've provided a way to pay for this without dealing with the crypto stuff, and I'm extremely happy to do so, because they deserve some of my money.
> You’re still the one that’s controlling the model though
We have seen ample evidence that this is not the case. When load gets too high, models get dumber, silently. When the Powers That Be get scared, models get restricted to some chosen few.
We are leading ourselves into a dark place: this unease, which I share, is justified.
The substance is they've created a way to fabricate a device that can make the optical frequencies they wish. That is useful: it means a designer isn't limited to frequencies that are economic to generate with existing techniques, which is a constraint that lasers currently struggle with: low cost, compact, efficient laser sources (the kind that fit on a chip, and are fabricated by cost effective processes,) only exist for a limited number of frequencies.
The story is typical tech journalism pabulum, but the underlying paper does discuss efficiency. It's about what you'd expect: 35 mW -> 6 mW @ 485 nm, for example.
An obvious use case is multimode fiber communication: perhaps this makes it possible to use more frequencies for greater bandwidth and/or make the devices cheaper/smaller/more efficient. But there are other, more exotic things one might do when some optical frequency that was previously uneconomic becomes feasible to use at scale.
Probably not because EUV gets absorbed incredibly quickly by anything other than vacuum. This is why it is created in low density gas, thin liquid or solid samples (high harmonic generation) or electron clouds (free electron laser).
That's the one feature of similar systems that always gets left out. I understand why: it's not a priority for "cloud native" workloads. The world, however, has work loads that are not cloud native, because that comes at a high cost, and it always will. So if you'd like a real value-add differentiator for your micro-VM platform (beyond what I believe you already have,) there you go.
It helps if you offer a concrete use case, as in how large the heap is, what kinda of blackout period you can handle, and whether the app can handle all of it's open connections being destroyed, etc. The more an app can handle resetting some of it's own state, the easier LM is going to be to implement. If your workload jives with CRIU https://github.com/checkpoint-restore/criu you could do this already.
By what I assume is your definition, there are plenty of "non cloud native" workloads running on clouds that need live migration. Azure and GCP use LM behind the scenes to give the illusion of long uptime hosts. Guest VMs are moved around for host maintenance.
As does OCI, and (relatively recently) AWS. That's a lot of votes.
Use case: some legacy database VM needs to move because the host needs maintenance, the database storage (as opposed to the database software) is on a iSCSI/NFS/NVMe-oF array somewhere, and clients are just smart enough to transparently handle a brief disconnect/reconnect (which is built-in to essentially every such database connection pool stack today.)
Use case: a web app platform (node/spring/django/rails/whatever) with a bunch of cached client state needs to move because the host needs maintenance. The developers haven't done all the legwork to make the state survive restart, and they'll likely never get time needed to do that. That's essentially the same use case as previous. It's also rampant.
Use case: a long running batch process (training, etc.) needs to move because reasons, and ops can't wait for it to stop, and they can't kill it because time==money. It's doesn't matter that it takes an hour to move because big heap, as long as the previous 100 hours isn't lost.
"as in how large the heap is"
That's an undecidable moving target, so let the user worry about it. Trust them to figure out what is feasible given the capabilities of their hardware and talent. They'll do fine if you provide the mechanism. I've been shuffling live VMs between hosts for 10+ years successfully, and Qemu/KVM has been capable of it for nearly 20, never mind VMware.
"CRIU"
Dormant, and still containers. Also, it's re-solving solved problems once you're running in a VM, but with more steps.
Somewhat related: I have a branch of Ganeti that has first-class ZFS support baked in, including using ZFS snapshot replication to do live migration without shared storage or CEPH: https://github.com/linsomniac/ganeti
Current status is I'm looking for more feedback. In a few weeks when Ubuntu 26.04 comes out I'm going to set up my dev/stg clusters at work with it, at the moment I've only tested it in a test cluster at home.
It works this way: It creates a snapshot of the zvol, and replicates it to the secondary machine. When that's done, it does another snapshot and does a "catch up" replication (the first replication could take hours on large volumes). Pause the VM, do a final snapshot+replication. Replicate the working RAM. Start up the VM on the new host.
Live migrations and the tech powering it was the hardest thing I ever built. Its something that I think will come naturally to projects like smolVM as more of the hypervisors build it in, but its a deeply challenging task to do in userspace.
My team spent 4 months on our implementation of vm memory that let us do it and its still our biggest time suck. We also were able to make assumptions like RDMA that are not available.
All that to say — as someone not working on smolVMs — I am confident smolVMs and most other OSS sandbox implementations will get live migration via hypervisor upgrades in the next 12 months.
Until then there are enterprise-y providers like that have it and great OSS options that already solve this like cloud hypervisor.
I see. so right now smolvm can be stopped, and then "packed" (think of it as compressed), and restart on a different host. files in the disks are preserved, but memory snapshotting is still hard tbh
Ultimately the original does get stopped, but with additional techniques, we're talking milliseconds of downtime between when the old one stops and the new one resumes. (For live migration technology in general, no clue about smol machines.)
The F-35 case is interesting. Lockheed Martin can, given peak rates seen in 2025, produce a new F-35 approximately every 36 hours, as they fill orders for US allies arming themselves with F-35's. US pilot training facilities are brimming with foreign pilots. It's the most successful export fighter since the F-16 and F-4, and presently the only means US allies have to obtain operational stealth combat technology.
What that means for the US is this: if the US had to fight a conventional war with a near-peer military today, the US actually has the ability to replace stealth fighter losses. The program isn't some near-dormant, low-rate production deal that would take a year or more to ramp up: it's a operating line at full rate production that could conceivably build a US Navy squadron every ~15 days, plus a complete training and global logistics system, all on the front burner.
If there is any truth to Gen Bradley's "Amateurs talk strategy, professionals talk logistics" line, the F-35 is a major win for the US.
> Lockheed Martin can, given peak rates seen in 2025, produce a new F-35 approximately every 36 hours ... it's a operating line at full rate production that could conceivably build a US Navy squadron every ~15 days, plus a complete logistics and training system, all on the front burner.
That's amazing. I had no idea the US was still capable of things like that.
I wonder if there's a way to get close to that, for things that aren't new and don't have a lot of active orders. Like have all the equipment setup but idle at some facility, keep an assembly teams ready and trained, then cycle through each weapon an activate a couple of these dormant manufacturing programs (at random!) every year, almost as a drill. So there's the capability to spin up, say F-22 production quickly when needed.
Obviously it'd cost money. But it also costs a lot of money to have fighter jets when you're not actively fighting a way. Seems like manufacturing readiness would something an effective military would be smart to pay for.
"I had no idea the US was still capable of things like that."
It's more than just the US though. It's the demand from foreign customers that makes it possible. It's the careful balance between cost and capability that was achieved by the US and allies when it was designed.
Without those things, the program would peter out after the US filled its own demand, and allies went looking for cheaper solutions. The F-35 isn't exactly cheap, but allies can see the capability justifies the cost. Now, there are so many of them in operation that, even after the bulk of orders are filled in the years to come, attrition and upgrades will keep the line operating and healthy at some level, which fulfills the goal you have in mind.
Meanwhile, the F-35 equipped militaries of the Western world are trained to similar standards, operating similar and compatible equipment, and sharing the logistics burden. In actual conflict, those features are invaluable.
There are few peacetime US developed weapons programs with such a record. It seems the interval between them is 20-30 years.
It took a while to reach full production rate for the F-35. Partly because the supply chain (mostly US based because of the Buy American Act) had to come up to speed[0]. But also because there were running-changes being made to the plane, necessitating changes to the production line to accommodate them.
The F-22 production tooling is supposedly in storage at Sierra Army Depot. Why there and not at the boneyard at Davis-Monthan is an interesting question[1]. Spooling production of the F-22 back up will take less time than originally, but still won't be quick (a secure factory floor large enough has to be found, workforce knowledge has been lost, adding upgrades, etc.)
[0] Scattered across as many congressional districts as possible.
[1] I was at Sierra in the 80's on TDY and it was all Army and Army civilians. A USAF guy like me really stood out.
Indeed. ESP32-S31 appears to target exactly this concern in the popular "S3" segment. It's basically a updated S3, with faster and newer wireless and memory, and it adopts a pair of RISC-V cores in place of the XTensa cores.
reply