
How long would it take to create a Windows 1.0 capable machine from scratch? - ivm
https://worldbuilding.stackexchange.com/questions/54976/how-long-would-it-take-to-create-a-windows-1-0-capable-machine-from-complete-scr
======
CommieBobDole
I think the only real answer to this is "never". 20 people is well below the
minimum viable number required to create a large population, and since the
first step in building a CPU is "create a large industrial civilization", it
can't ever happen.

~~~
xjwm
I agree. If you have ever read the book Crystal Fire, about the work done at
Fairchild Semiconductor in the 1950-70s, it took the best and brightest
decades to solve the chemistry and engineering challenges present in building
transistors and ICs. Even with 20 skilled PHDs as a starting point, I don't
think you could overcome the practical manufacturing challenges in any
reasonable amount of time.

~~~
danvasquez29
one of the caveats of the question though is the people who are put there
already know exactly what they need to build and how to build it; so you don't
need 20 phd's to re-solve the chemistry and engineering challenges. It's
almost purely a (still not solvable with 20 people) manufacturing problem.

~~~
jstanley
These are 20 people who live infinitely long, never age, and can work 12 hour
productive days.

As long as there is no single step that requires more than 20 simultaneous
workers, I don't see why it's not solvable with these 20 people.

~~~
saagarjha
It will just take a long time, though…

~~~
jstanley
Naturally, but the original question was _how_ long.

------
narrator
The hardest technological barrier to overcome is production and casting of
high grade metals at scale. All the primitive tech guys on youtube have an
easy time with everything until it gets to making a furnace capable of
smelting iron. That's difficult as all hell and then building all the parts
and the ore supply chain to scale that up is a very long process. Once
scalable metals production gets going, one can progress to chemicals and then
to electricity and to optics to semiconductors eventually.

~~~
theandrewbailey
One of the points everyone ignores is agriculture.

If you're going to have a bunch of humans in a small area (civilization), it's
going to be a requirement. Until you have mechanized/highly productive
agriculture, more than half of your population's job will be food production.

------
jasonkostempski
300 years later: "Shit, we forgot to bring the license key."

~~~
funkdified
Thanks for the laugh :)

------
Bilters
Don't really know. But if you decide to do so, please make a video series
about it. I really enjoyed the series Ben Eater has produced making his 8 bit
computer. [1]

[1][https://www.youtube.com/watch?v=HyznrdDSSGM&list=PLowKtXNTBy...](https://www.youtube.com/watch?v=HyznrdDSSGM&list=PLowKtXNTBypGqImE405J2565dvjafglHU)

------
Keyframe
On the next episode of Primitive Technology. On a more serious note, IT MIGHT
be doable for a 20-ish DIYers with current technology and some resources.
Setting a limitation, of course, to not have them use any of the PCB workshops
or foundries. PCBs are doable at home, ICs still aren't-ish. I expect a
revolution on home-made ICs in the next few decades.

~~~
narrator
ICs need very difficult to handle chemicals like hydrofluroric acid to
manufacture though. That kind of stuff will never be DIY.

~~~
gnode
From the premise of the question on SO:

> For convenience, we assume that the humans would not age or die during their
> participation in this experiment.

Not dying will come in very handy when handling the chemicals.

~~~
qbrass
They'll realize not dying or aging is more useful than running Windows 1.0 and
drag out the process forever.

------
tonyedgecombe
_island that contains all necessary resources as they would appear in a
natural environment_

This is the problem, if civilisation collapsed it's never coming back because
all those easy to access resources we relied on in the past are gone. It all
requires advanced technology to access now.

~~~
titzer
There will be so much stuff left over from our civilization that it should be
pretty easy to scrounge and scrape together stuff, Mad Max-style. Access to a
landfill, steel, copper, other metals and some working electric
motors/generators, and you're off and running. Heck, to make a generator all
you need is a permanent magnet, some copper wire, and some mechanical energy,
like maybe hydro or a bike crank.

~~~
tonyedgecombe
You won't have much luck extracting shale oil with a couple of bike chains and
an old washing machine motor :)

------
zeusk
Reminded me of this:

Indistinguishable From Magic Manufacturing Modern Computer Chips
[https://www.youtube.com/watch?v=NGFhc8R_uO4](https://www.youtube.com/watch?v=NGFhc8R_uO4)

------
dmitriid
I forget the name of the paradox, but the gist is: we cannot recreate our
current technology from scratch with our current technology. Because many
intermediate layers have between removed and made obsolete.

------
supermdguy
Reminds me of WaitButWhy's iPhone thought experiment[0], where the entire
world reverts to a pre-human state and humans have to construct a functioning
iPhone to break the spell. There's some interesting discussion on how long
that would take, or if it would ever happen.

[0]: [https://waitbutwhy.com/table/iphone-thought-
experiment](https://waitbutwhy.com/table/iphone-thought-experiment)

------
davidhyde
A human brain can be used as a general purpose computing device. Invent and
produce low tech stuff like paper, pencils and an eraser and use your humans
to execute instructions and check each other for errors. Alternatively use
sticks and sand. The computer would run very slowly but it would run. 8 bit
assembler for windows 1 code is not that difficult to get your head around,
its just tedious. I recon you could do this inside a year.

~~~
cup-of-tea
Develop mentat skills.

~~~
newfie_bullet
I see a fallout reference, I upvote

~~~
lfowles
A Dune reference originally :)

~~~
cup-of-tea
Indeed. I've never played Fallout. Are there many Dune concepts used in other
works?

------
gnode
It's important to consider that the workers wouldn't have to replicate the
tech tree of the past. With access to all industrial expertise, as assumed in
the question, what could be done more efficiently, or what could be done to
better suit the ergonomics of a 20 person team?

I think the inverse question is also interesting. What technology have we
lost, because our current infrastructure has negated our need for it?

------
Finnucane
Wouldn't it be better to build a machine capable of useful work?

------
teilo
This reminds me of Riverworld. (Working from memory here - it's been a while
since I read it) In the civilization that Sam Clemens created/participated in,
they basically did this - recreated an industrial society which had basic, but
workable computers.

~~~
ConcernedCoder
One of my favorite series! Grab your grail!

------
phkahler
This is why I say the first people on mars will need local copies of
wikipedia. It's hard enough to bootstrap civilization without having to
relearn everything and have enough people to have experts in all areas.

~~~
wbhart
Wikipedia doesn't contain nearly enough knowledge. It tells you what a CPU is,
not how to build one. It tells you some of the chemical properties of certain
common chemicals, but not the millions of reactions, or thousands of entries
in databases giving their exact physical and chemical properties, etc.
Wikipedia would be a useful tool for bootstrapping, but is clearly a tiny,
tiny fraction of human knowledge. It's short on a lot of technical details
which fill the shelves and databases scientists, engineers, etc. depend on.
It's also missing the living knowledge, that is passed from generation to
generation as we teach people how to do the thousands of jobs that are
necessary to keep modern society running.

~~~
phkahler
>> Wikipedia would be a useful tool for bootstrapping, but is clearly a tiny,
tiny fraction of human knowledge.

I completely agree with you. Wikipedia would be just a start. Having an
electronic library with high quality texts (and videos) from all areas would
be even better. Whatever information they bring, it will be best if it's free
to anyone and everyone there.

------
mseebach
Mildly interesting literary reference: In Seveneves by Neal Stephenson (light
spoiler), in the orbital world, they never, after 5,000 years, get to refined
microelectronics. It's not an important plot device, so I wonder how gamed out
that idea is, but it's remarked by Kath that their computers are nowhere as
refined as those they had before the hard rain.

~~~
JorgeGT
It's very plausible. Most answers are concerned with the technical side, but
the _real_ difficulty is achieving a stable society with a continued interest
in science and research. Organized civilizations have existed for millennia
but war, religious zealotry and social uprisings have been resetting
scientific advances every so often.

The unknown Greek engineer who built/programmed the Antikythera Mechanism in
the 2nd century BC could have worked with Babbage in his 19th century
Difference Engine. Add the steam-powered Aeolipile of 1st century AD and the
basic technical ingredients for the industrial revolution were already present
in classical Greece. However, the proper social factors that allowed the
exponential growth in science and research that resulted in the development of
microelectronics and the information society are extremely difficult to
achieve, more so than the merely technical ones.

------
crististm
Mildly related, I was reading this day about busy-beaver function. It jumps
suddenly from n=7 because 7 states seems to be enough to do exponentiation.

Apparently it is claimed that no person today knows all the steps required to
build a pencil from scratch. It's overwhelming to think further to a Win 1
capable machine.

------
jvozza
This reminds me of Thomas Thwaites The Toaster project. A great read and very
crazy project.

[http://www.thomasthwaites.com/the-toaster-
project/](http://www.thomasthwaites.com/the-toaster-project/)

------
titzer
Interesting thought experiment, although, as others have pointed out, a huge
section of industrial civilization would be required to get to the point of
producing CPUs.

A more interesting question would be how many volumes the build instructions
would comprise.

------
matte_black
Is it possible that there could exist a tool such that would make this task
possible? What would it need to be capable of? Very precise manipulation of
matter?

------
peterkelly
If anyone actually goes to the trouble of doing all this, please make it use
\n for line endings instead of \r\n.

Future generations will thank you.

~~~
bumblebritches5
Nah, fuck 8 bit code pages in general.

have it use Unicode line endings (or, if Unicode has to be recreated, do IT
right, and have it use 28 bits for codepoints and 2 bits describing the
format).

~~~
Dylan16807
"describing the format"?

~~~
bumblebritches5
the code unit size, byte order, and how many code units are in that codepoint.

you can fit all of that information into 4 bits when you just care about
minimizing the size of that mini header.

I know that, because I got bored and made up a quick proposal on it, not that
I expect anyone else to even look at it.

~~~
Dylan16807
If you don't know code unit size and byte order up front, how do you even find
the header?

But I'm not really seeing the value. This is a variable-length format that
isn't self-synchronizing, right? And if the header is fixed-length, then won't
Latin letters require at least two bytes?

It seems like it just loses to UTF-8 (which can support 31 bit code points,
too).

~~~
bumblebritches5
because it's the top 4 bits... you read that as a byte, then read X bits more
to get the rest of the code unit.

yup and yup.

UTF-8 is capped at 21 bits, theoretically it can support up to 6, but it's not
allowed to because of UTF-16.

This format would allow 28 bits to be encoded as 8, 16, and 32 bit code units.

There would be no surrogate pair nonsense, simply write all the non-leading-
zero bits into as many code units you need as well as the 4 bit header, and
you're good.

I'm not saying it'll ever happen, I know it won't, but if we could go back in
time...

~~~
Dylan16807
If there's unknown byte order, then bytes might go 21436587 and you won't know
if you're actually reading the byte that has the header.

If we could go back in time, the important thing would be killing UCS-2, and
the false idea of all code points fitting into 16 bits. The encodings with 8
bit and 32 bit code units are just fine, and don't encourage terrible
assumptions.

I'd definitely suggest a variable-width header, though. If you remove the
extra bits that UTF-8 uses to be self-synchronizing, then your header is a
fixed 1/8 overhead, which means you can fit 28-bit code points into four bytes
while also fitting ASCII characters into one byte.

~~~
bumblebritches5
That's precisely what I meant with your UCS-2 comment.

What do you mean by variable width? the 4 bit header would be limited to the
first code unit, the following ones would just be pure codepoint values.

and that's a good point, I as picturing it as the top 4 bits that describe the
format, so the header's byte order would be field, but the actual codepoint
value would be encoded with whatever byte and bit order the header indicated.

~~~
Dylan16807
Oh, so it's a BOM? Why integrate it into the code unit if you're only going to
have one of them?

~~~
bumblebritches5
> Oh, so it's a BOM?

Kinda? It isn't limited to just the byte order tho, but I can see it.

> Why integrate it into the code unit if you're only going to have one of
> them?

There would be multiple code units, just 1 of the mini headers/BOM.

With that comment I was trying to contrast it to UTF-8 which has those 2
leading bits of the continuation code units set to `0b10`, it wouldn't have
that.

~~~
Dylan16807
Oh, the first code unit of each code point, not the first code unit of the
text. That's how I had originally understood you until I got confused by the
talk of byte order.

I have to say I really don't see the value of being byte-order flexible, but
always requiring the header be in the "first" byte, because that makes it so
big-endian and little-endian formats are packed completely differently. 2 and
4 byte code units will be misaligned all the time too, might as well just use
a series of bytes in fixed order.

> What do you mean by variable width?

Make the first byte be like UTF-8 (so a prefix of 0, 10, 110, or 1110), and
the following bytes be raw data. It compacts a lot better than a fixed-length
header, with roughly the same level of complexity.

But now that I think about it a continuation bit is probably the best option
here because it regains some ability to self-synchronize.

------
tabtab
That's a lot of bugs to recreate. Maybe blockchain AI can help generate the
needed bugs :-)

------
Smudgya
Great idea for a TV show.

