niedziela, sierpnia 04, 2019

Komputery są naprawdę stare ;-)

HTTP jest z nami już 30 lat.
FTP 48 lat.
Java 24 lata.
JavaScript 23 lata.
C 47 lat.
Linux 27 lat.

Nasze komputery, nieważne czy z Windows, Linuksem czy macOS startują niemal tak samo od 37 lat, zawsze w trybie 16 bitowym, w tym co teraz nazywamy Real Mode, a pochodzi sprzed 40 lat gdy powstał 8086, który wyrósł z 8 bitowego 8080, a ten z 4 bitowego 4004 ;-)

To jest w ogóle zabawne. Nasze dzisiejsze CPU to zwykle w środku procesory RISC (54 lata, niemal wprost wyprowadzone z pomysłów Alana Turinga sprzed 73 lat), które na zewnątrz udają CISC, nasze programy są zapisane w kodzie maszynowym, który jest niemal taki sam od 40 lat (bo na PC wszędzie używamy x86).
I taki udawany CISC, ładuje przy starcie kod, który uruchamia funkcje BIOS... który to BIOS zaczął się tak koło 1975 roku (44 lata temu) jeszcze na CP/M (i Intelu 8080 ;-)), a później sama idea została przeniesiona do IBM PC, ale te nasze dzisiejsze BIOSy udają BIOS na 2 sposoby, po pierwsze większość z nich, jeśli nie wszystkie, są wynikiem reverse engineeringu oryginalnego BIOSu od IBMa, po drugie w nowszych komputerach ten kawałek BIOSowy jest tylko dla kompatybilności i coś innego później startuje.
I co robi niemal natychmiast nasz komputer, który się właśnie uruchomił?
Przełącza się w Protected Mode i udaje 80386 ;-) (34 lata), wtedy nagle rejestry mu się poszerzają z 16 bitowych na 32 bitowe (i tak AX, staje się EAX), a później wchodzi w x86-64... co ciekawe, to akurat nie jest pomysł Intela, a AMD (AMD64 ma już 19 lat) i dopiero wtedy pojawiają mu się 64 bitowe rejestry...
W rzeczywistości sam RISC w środku nie musi wcale mieć żadnych 64 bitowych rejestrów, a już na pewno nie ma ich tylko 16 ;-)
Jak tam gdzieś później u góry jest Java to jest jeszcze zabawniej, bo tam procesor RISC, który używa masy prostych komend operujących na dużej ilości rejestrów udaje CISC z mniejszą ilością rejestrów, na którym to działa aplikacja, która udaje w środku "procesor" bez rejestrów, za to tylko ze stosem....
Po drodze jest jeszcze kilka poziomów cache.

Ale jest jeszcze lepiej, cały ten ambaras jest w pełni zgodny z wymyśloną przez Turinga 83 lata maszyną Turinga.
Może być gorzej ;-) większość komputerów programujemy używając klawiatury QWERTY, która ma jakieś 141 lat ;-)
Same programy zaś to realizacja pomysłu Josepha Marie Jacquarda sprzed 215 lat ;-)

Stąd, nie, komputery to nie jest młoda dziedzina ;-)

Nawet modne teraz programowanie funkcyjne jest "tylko" rozszerzeniem idei sprzed 80-90 lat ;-)

Dlatego nie rozumiem, czemu Gradle ciągle musi zmieniać swoje API ;-)


Podobne postybeta
Celeron M353 900MHz vs. Intel Atom 1.6GHz, czyli o tym czemu jest remis? ;-)
"os.arch", "os.name", "sun.arch.data.model" co to jest i co pokazuje na jakiej maszynie i OSie? ;-)
Goto Go ;-)
Przesyłanie "obcych" na odległość, albo uniwersalny format danych ;-)
Amd64, Intel64, EMT64, WTF64? ;-)

Brak komentarzy:

Publikowanie komentarza