johnklos
a year ago
Wow. And I thought modern NetBSD on a 15 MHz m68030 with a 16 bit memory bus and 10 megabytes of RAM is slow. This is crazy!
It illustrates a point I've explained to many people over the years: once computers started coming with persistent storage, open address spaces and MMUs towards the late '80s and early '90s, we basically arrived at modern computing. An Amiga 3000 or i80486 computer can run the same things as a modern computer. Sure, we have ways to run things orders of magnitude faster, and sure, we now have things that didn't exist then (like GPUs that can run code), but there's no functional difference between those machines and new ones.
I love that Dmitry shows how loosely "functional" can be defined :)
dmitrygr
a year ago
I don’t know if this was a thing in America, but in USSR in the 70s and 80s it was very popular to play chess-by-correspondence. You would literally snail-mail letters back-and-forth with your move. Games would last months or years. It added an extra challenge to chess because by the time you got a response, you might have forgotten what strategy you had had.
This project is basically Linux-by-correspondence. The challenge is here too. By the time the command produces an output, you might have forgotten why you ran it.
noufalibrahim
a year ago
There was something called Agora (https://en.wikipedia.org/wiki/Agora_(web_browser)) which was sort of an email/http proxy. You could browse the web via. email and set "GET", "POST" etc. commands. It was my first exposure to the web.
It sounds very similar to what you mentioned.
asdefghyk
a year ago
There was also a system where a person could email a request for a webpage to a certain email address and the web page would be returned by email. Existed in late 1980s? I think or maybe early 1990s?
noufalibrahim
a year ago
That's what Agora did. I used it for a while using pine. I still remember the address by heart. It was agora@dna.affrc.go.jp.
I guess you never forget your first time : - )
password4321
a year ago
https://news.ycombinator.com/item?id=30387879#30390269
> Richard Stallman browses the web via email.
johnklos
a year ago
I installed Windows 95 on an Amiga 3000 with a 25 MHz m68030 via floppy to see if DMF formatted disks would work and to play around. By the time it finished, I had forgotten what I wanted to try out.
unit149
a year ago
Reorganizing the combined correspondence on an excel spreadsheet through an arbitrary numbering system years later, and experiencing the Spinozan "pang of bad conscience."
Did you write the PIC12F1840 HEX file in 4004 machine code for your PIC-based one-chip sound player?
retrac
a year ago
15 MHz m68030 with a 16 bit memory bus and 10 megabytes of RAM -- A Mac LC II, by any chance? :)
> towards the late '80s and early '90s
By the late 1960s, really. It would probably be possible to port Linux to the IBM Model 67 [1]; might even be easy since GCC can already target the instruction set. The MMU is sufficient. Maybe a tight squeeze with the max of 2 MB of fast core. Would be in a similar ballpark, a bit slower, to that 68030 machine.
Full virtualization, and hardware enforced memory and IO boundaries, were invented early on, too. It took a while for such features to trickle down to mini- and then micro- computers. And then much longer for popular software to take advantage.
vincent-manis
a year ago
I have fond memories of the System/360 M67 (and its successors, starting with a System/370 M168) I used from 1970 to the early 1980s. It ran the Michigan Terminal System, and we had all the modern conveniences (terminal operation in the IBM world was klunky, but PDP-10s at the same time did that right). And of course Unix dates from exactly that period.
The fact that Linux runs well on a modern zSeries demonstrates that, even with all the historical baggage this 60+-year-old architecture has, it carries with it many of the architectural innovations that current OSes and languages need.
jdougan
a year ago
Oh man, I has so much fun on MTS once that ridiculous fake PC-ish command line was removed. Wrote all kinds of wacky stuff using the command line macros.
johnklos
a year ago
Wonderful look in to our history, and you're undoubtedly correct about being able to target that system.
My example was about hardware that was affordable to mere mortals (although it's getting to be more expensive to buy that same hardware now as it was to buy it when it was new), but the idea is the same :)
johnklos
a year ago
Yes, a Macintosh LC II :)
jylam
a year ago
That's basically the concept of Turing Completeness. Any Turing complete system can run anything. It may be very slow, but it will run. ChatGPT could run on a 4004, all you need is time.
pclmulqdq
a year ago
A computer is technically not a Turing machine due to the lack of infinite RAM. It is a finite state machine with an absurdly large state space.
johnklos
a year ago
I've always interpreted the definition of storage as arbitrarily large, not specifically infinite. The universe, after all, is finite. The "well, acshually" arguments aren't interesting, because they're 100% abstract.
jfengel
a year ago
It is defined as arbitrarily large but not infinite. That's not because of physical concerns, but because some of the theorems don't work if the memory is actually infinite.
darby_nine
a year ago
You're comparing an a priori concept with a posteriori one. It's like claiming the number five doesn't "acshually" exist. Like yea, it's a concept, concepts don't exist.
A universe isn't a turing machine because it can't run all the programs that can run on a turing machine. This isn't exactly controversial.
kazinator
a year ago
What's the difference between arbitrary large and infinite? Would you say the number of possible Turing computable functions is merely arbitrary large and not actually infinite?
bdbdnxjdj
a year ago
There is a very clear distinction: one is finite the other is infinite
If you only allow arbitrary large turning machines, there is a fixed number of programs which can run
pclmulqdq
a year ago
When you're talking about something like neural networks on a 4004, the "well ackshually" argument does become very much relevant. The limitations of that kind of platform are hard enough that they do not approximate a Turing machine with respect to modern software.
johnklos
a year ago
Running Linux on a 4004 is possible, as we've seen, but running llama is just way too far? Interesting take.
pclmulqdq
a year ago
Llama takes a lot more MIPS and a lot more RAM than linux. Linux is more complicated, but computers were running linux 30 years ago. In this case, quantity has a quality all of its own.
jart
a year ago
It takes 14,493,515,821 cycles to boot Alpine Linux in an qemu.
perf stat -Bddd qemu-system-x86_64 -m 2048 -cdrom alpine.iso -boot d -enable-kvm -cpu host -smp 2 -net nic -net user,hostfwd=tcp::2222-:22 -nographic -serial mon:stdio -monitor telnet:127.0.0.1:1234,server,nowait -d in_asm,cpu -D qemu.log
It takes 1,927,757,029,221 cycles to summarize a 1625 token Dijkstra essay with LLaMA 8B. perf stat -Bddd llamafile -m Meta-Llama-3.1-8B-Instruct.BF16.gguf -f ~/prompt1625.txt -c 4096 -n 40
Ignoring things like AVX512 you're looking at about 100x more compute to do something serious with LLaMA.However! If you just want to demo it working, then you could generate 4 tokens using TinyLLaMA 1.1B which takes 25,164,386,466 cycles. That's about the same cost as booting Linux. So you could do TinyLLaMA if you can do Linux.
pclmulqdq
a year ago
That's closer than I thought, to be honest.
Note also that the 4004 lacks a floating-point unit of any kind - not just a vector unit. I think people make 8-bit integer quantizations of LLMs, though, which would be the fastest versions to run on a 4004.
jart
a year ago
A lot of quants just upcast to floats. Some of them work on integer multiplication using pmaddubsw. But oof, it looks like the i4004 doesn't even have that.
brudgers
a year ago
Because it has infinite RAM, technically the Turing machine is not a machine.
kazinator
a year ago
What? A Turing machine can literally be built. The only problem is supplying the infinite tape, or splicing on more when it runs to the end of a finite tape.
Machines that address storage using fixed width pointers (and have no other kind of storage) cannot be Turing machines.
brudgers
a year ago
The only problem is supplying the infinite tape
In so far as infinite tape is feasibile, you are correct.
IsTom
a year ago
Any useful TM program halts, so you need finite tape. Only figuring out beforehand how much will you need is difficult.
brudgers
a year ago
You don't want your telephone exchange to halt. That's why the engineering marvel Erlang. "Engineering" being the key word. The Halting problem isn't a real problem. Just pull the power cord.
IsTom
a year ago
You want every call handled in finite time. It's not that there is an unending computation in a telephone exchange, but a series of finite tasks. You can call it corecursion, coinduction or something else co-.
tcbawo
a year ago
Can’t any computer with external connectivity (ie serial or network connectivity) be considered to have infinite memory?
kazinator
a year ago
A computer with external connectivity to a tape machine capable of reading and writing a symbols and moving along the tape would qualify as a Turing machine, provided someone feeds it enough tape for any problem that's thrown at it.
lytedev
a year ago
How would that work?
nineteen999
a year ago
"we're the dot in dot.com"
No wait ... the other one ...
"the network is the computer"
DonHopkins
a year ago
It was funny when Sun proudly and unilaterally proclaimed that Sun put the "dot" into "dot com", leaving it wide open for Microsoft to slyly counter that oh yeah, well Microsoft put the "COM" into "dot com" -- i.e. ActiveX, IE, MSJVM, IIS, OLE, Visual Basic, Excel, Word, etc!
And then IBM mocked "When they put the dot into dot-com, they forgot how they were going to connect the dots," after sassily rolling out Eclipse just to cast a dark shadow on Java. Badoom psssh!
https://www.itbusiness.ca/news/ibm-brings-on-demand-computin...
"The Network Is The Network and The Computer Is The Computer. We regret the confusion."
https://news.ycombinator.com/item?id=34256623
>Oh yeah, don't get me started about NFS! (Oops, too late.) I'll just link with short summaries: [...]
>NFS originally stood for "No File Security". [...]
>The network is the computer is insecure, indeed.
brudgers
a year ago
That's basically the concept of Turing
Tarpit,
where everything is possible but nothing of interest is easy.
byteknight
a year ago
And a gargantuan amount of RAM.
qwerty456127
a year ago
jojobas
a year ago
>all you need it time
Like geological time.
johnklos
a year ago
Dmitry talks about compiling the kernel in years. While I haven't done that, I have built NetBSD-vax and NetBSD-mac68k natively on a VAXstation 4000/60 and on a Mac Quadra 610. It's on the scale of multiple months instead of years, but it's enough to give me a feel for it.
jart
a year ago
Multicore is a pretty big functional difference. Like attaching an automobile to a wheel lets you have three more wheels.