Dodaj do ulubionych

Czy ktoś wie, na boga, jak działa komputer?!

16.08.15, 19:28
Witam wszystkich!

Być może nie jest to odpowiedni dział, ale nie znalazłem takiego, który by dokładnie odpowiadał mojemu pytaniu, dlatego zadaję je tu. Jeśli powinno być ono gdzieś indziej, to proszę o przeniesienia albo informację, wtedy sam przeniosę.

Pytanie rzekomo bardzo proste, jednak mimo długich poszukiwań ja dalej nie znalazłem na nie odpowiedzi. Nurtuje mnie to jednak już od bardzo dawna i specjalnie po to właśnie teraz założyłem konto na forum!

Pytanie brzmi: J A K D Z I A Ł A K O M P U T E R ?

Dziękuję z góry za odpowiedzi typu: wygoogluj sobie; poczytaj trochę; wprowadzasz dane, CPU te dane przetwarza i otrzymujesz wynik operacji na monitorze; etc. etc.

Chodzi mi o to, w jaki sposób komputer „wie” czego my od niego chcemy. W jaki sposób układ scalony, działający na zasadzie zero-jedynkowych napięć, kawałek krzemu, stali, srebra, molibdenu, węgla, bóg wie czego jeszcze, rozumie, że ja rozkazuję mu wykonać proste działanie matematyczne (bo rozumiem, że wszystkie inne działania, włączając w to machanie mieczem, strzelanie z łuku, kradzież samochodów, odpalanie jutuba i inne, są pochodnymi kilku podstawowych działań matematycznych), następnie wykonuje to działanie i wyświetla mi je na ekranie w sposób taki, że ja mogę to zrozumieć.

I od razu mówię – nie wystarczy mi odpowiedź „od tego jest assembler”. Skąd się wziął assembler? Kto go napisał? W jaki sposób komputer rozumie assembler?
Nie wystarczy mi też odpowiedź „jest to wbudowane w procesor na poziomie mikro-architektury”.
OK, zdolność dodawania może być wynikiem fizycznej budowy, architektury procesora, ale znowu – skąd procesor wie, czego ja od niego chcę, skąd wie, że chcę, aby dodał te dwie liczby a nie inne, żeby je zapisał, pomnożył i podzielił miliard pięćset milionów dwieście pięćdziesiąt razy i w konsekwencji puścił mi filmik na jutubie? W końcu to tylko kupa tranzystorów, rezystorów, cewek i innych malutkich elementów elektrycznych.

Właściwie to pytam: w jaki sposób język maszynowy zostaje przepisany na język ludzki i vice versa?

Jeśli ktoś się odważy odpowiedzieć, to proszę o konkretne i krótkie posty, bo na pewno będę zadawał dodatkowe pytania dotyczące każdego szczególiku, więc bez sensu, żebym musiał za każdym razem w postach zadawać po pięćset pytań.

Pozdrawiam serdecznie i z nadzieją oczekuję sensownych odpowiedzi, które pozwolą mi rozwikłać jedną z najbardziej nurtujących mnie obecnie zagadek!
Obserwuj wątek
    • tiges_wiz Re: Czy ktoś wie, na boga, jak działa komputer?! 16.08.15, 21:33
      znaczy mam przepisać 1200 stron z anatomii PC?
      tak pokrótce, to kluczowe jest miejsce skąd jest liczba zmieniana. Komputer po adresie komórki wie co z nią zrobić. Dlatego też przy 32 bitowych systemach nie ma dostępu do całego ramu, bo urządzenia zabierają część adresów.

      Tu masz adresowanie układu odpowiedzialnego za wejście i wyjście w commodore 64
      www.atarimagazines.com/compute/issue29/394-1.jpg
      Tu układ dźwiękowy
      www.atarimagazines.com/compute/issue29/394-1.jpg
      Tu początek RAM-u
      www.zimmers.net/anonftp/pub/cbm/manuals/anthology/p015.jpg
      A tu już rzut oka na całą pamięć:
      www.6502.org/users/sjgray/computer/cbm2/p-memorymap.jpg
      Kiedyś przy programowaniu trzeba było to znać. Teraz tym się zajmuje system operacyjny i kompilatory. Po prostu wcześniej samemu trza było wrzucać odpowiednie liczby w odpowiednie komórki. Teraz już te programu są napisane.
    • krvc86 Re: Czy ktoś wie, na boga, jak działa komputer?! 16.08.15, 22:16
      Nie, nie. Przepraszam, ale zupelnie nie o to mi chodzilo.

      Ja nie jestem specjalista w dziedzinie komputerow, jestem zwyklym uzytkownikiem. Te linki, ktore tu podales, zawieraja zbyt specjalistyczne informacje - ja chce znac sama istote problemu, nie jego szczegoly.

      Ale mam juz punkt zaczepienia do dyskusji! Mianowicie - napisales "Komputer po adresie komorki WIE co z nia zrobic". Jak to wie? Skad to wie?

      Na koncu napisales "wczesniej samemu trza bylo wrzucac odpowiednie liczby w odpowiednie komorki". Skad komputer wie, jakie liczby ja mu wrzucam?
      Skad wie, ze wrzucilem liczbe 659?
      Przeciez to tylko dla mnie (dla nas, ludzi) zrozumialy ciag znakow, dla ukladu scalonego jest to szereg napiec-braku napiec. Komputer nie wie, ile to jest 659.
      W ktorym miejscu i w jaki sposob nastepuje zmiana ze zrozumialej dla mnie cyfry na "zrozumialy" dla komputera ciag napiecie-brak napiecia?
      • tiges_wiz Re: Czy ktoś wie, na boga, jak działa komputer?! 16.08.15, 23:14
        > Na koncu napisales "wczesniej samemu trza bylo wrzucac odpowiednie liczby w odp
        > owiednie komorki". Skad komputer wie, jakie liczby ja mu wrzucam?
        > Skad wie, ze wrzucilem liczbe 659?

        to jest tylko informacja dla ciebie. on działa cały czas na liczbach binarnych.
        A skąd wie? Bo tam jest matrycą stanów 0 i 1.
        8 kolejnych komórek jest podłączone do sumatorów:
        pl.wikipedia.org/wiki/Sumator_%28uk%C5%82ad_logiczny%29
        i te także do komparatorów:
        pl.wikipedia.org/wiki/Komparator
        Tu fajnie to widać na diodkach. Tylko ze w komputerze nie masz diodek tylko komórki pamięci.
        www.youtube.com/watch?v=C64ig_nqlCY
        • tiges_wiz no i dalej 16.08.15, 23:22
          tak działa bramka logiczna:
          pl.wikipedia.org/wiki/Bramka_logiczna
          a tu przerzutnik
          pl.wikipedia.org/wiki/Przerzutnik
          nawet dość duży.
      • feel_good_inc Re: Czy ktoś wie, na boga, jak działa komputer?! 17.08.15, 09:52
        krvc86 napisał(a):
        > Nie, nie. Przepraszam, ale zupelnie nie o to mi chodzilo.
        >
        > Ja nie jestem specjalista w dziedzinie komputerow, jestem zwyklym uzytkownikiem
        > . Te linki, ktore tu podales, zawieraja zbyt specjalistyczne informacje - ja ch
        > ce znac sama istote problemu, nie jego szczegoly.

        No i tu dochodzimy do istoty problemu - jedyną możliwością wytłumaczenia ci, jak działa komputer, jest przekazanie ci wiedzy, a ty tę wiedzę odrzucasz.
        Jeżeli analogia włącznika i żarówki do ciebie nie przemawia, to jedyną odpowiedzią jest "magia".
        • krvc86 Re: Czy ktoś wie, na boga, jak działa komputer?! 18.08.15, 16:39
          Ja nie odrzucam żadnej wiedzy. Analogia żarówki do mnie nie przemawia, bo być może jej nie zrozumiałem albo ty przedstawiłeś ją w nieodpowiedni sposób. Czy żarówka, albo nawet miliardy żarówek, mają takie same właściwości, jak miliardy tranzystorów? Czy można z żarówek zbudować bramkę logiczną? Czy połączone w odpowiedni sposób żarówki potrafią wykonać zadania dodawania, odejmowania i mnożenia? Jeśli tak, to rozwiń tą analogię, proszę, bo ona rzeczywiście musi być odpowiednia. Jeśli nie, to twoja analogia jest zła, a nie ja odrzucam wiedzę.
    • tiges_wiz Re: Czy ktoś wie, na boga, jak działa komputer?! 16.08.15, 23:07
      no to z grafiką jest najłatwiej.
      masz układ graficzny który wyświetla obraz 8 x 8 pikseli w 256 tonach jasności.
      masz linię adresową (bramka tranzystorów) i komórki pamięci .. powiedzmy od 000000 do 111111, lub #000 do #FFF (szesnastkowy się bardziej kompaktowo zapisuje i łatwo przelicza na binarny dlatego się przy zapisie głównie jego używa. Adresy te to po prostu matryca monitora tak przełożona 1:1.

      jeżeli w co drugą komórkę włożysz liczbę 255 czyli 11111111, to układ cyfrowo analogowy (np. bramka 8 rezystorów) zamieni to na prąd. 255 oznacza maksymalny prąd czyli biały piksel. więc będziesz miał na ekranie pionowe biało czarne paski.

      a fizycznie, to te komórki pamięci są połączone z odpowiednimi liniami w procesorze graficznym. No ale tu dochodzimy do kolejnej dość skomplikowanej rzeczy czyli przerwania:
      pl.wikipedia.org/wiki/Przerwanie
      A budowa procesora i działanie dość prosto jest tu:
      www.mechanikryki.pl/renata/pliki_pdf/procesor.pdf
      sam procesor wysyła liczby na różne nóżki, które są połączone z kolejnymi układami scalonymi takimi jak mostki czy ram.

      No ale idźmy dalej. zrobimy tablicę znaków.
      W kolejnej komórce zapisujemy offset czyli liczbę którą procesor ma dodać do adresu * 8 i co 8 komórek będzie nasza matryca znaku.
      Choćby liczba 1 którą zapiszemy jako:
      00011000 = czyli 24
      00111000 = czyli 56
      01111000 = czyli 120
      01011000 = czyli 88
      00011000 = czyli 24
      00011000 = czyli 24
      00011000 = czyli 24
      00111100 = czyli 60
      Co nam daje dość uczciwą jedynkę.
      Po pojawieniu się 1 w komórce z offsetem zostaną skopiowanych kolejnych 8 liczb do pamięci graficznej i na ekranie zobaczymy 1.

      tak w wielkim skrócie.
    • abcdefowicz Re: Czy ktoś wie, na boga, jak działa komputer?! 16.08.15, 23:27
      "Komputer wie"?
      Komputer niczego nie wie. Złóż komputer z nowych (lub niekoniecznie) części i spróbuj mu coś wymusić do zrobienia. Poza uruchomieniem nie zrobi niczego. Zainstalowany system operacyjny dopiero pozwala mu wykonać jakieś działania. Jaki system, jakie działania? Kiedyś oglądałem w TV program, w którym koleś prezentował komputer do zastosowań grafiki od strony profesjonalnej. Ponad setka procesorów na specjalnie skonstruowanej platformie. Na pytanie prowadzącego o gry i możliwości, kolo stwierdził, że żadna gra na tym komputerze nie pójdzie. Nawet w pasjansa nie da się pograć. Programy, system operacyjny, sterowniki czy interfejsy w sumie pracują na to, żeby komputer jako całość wykonał takie działania. Uruchom na komputerze DOS, to bez komend klepanych z klawiatury niewiele osiągniesz. Przykład to utworzenie folderu. W DOSie mkdir itd, itd... Nakładka graficzna na DOS-a ( nawet typu prostego Norton Comandera czy bardziej skomplikowanego Windowsa) ułatwiała pracę, żebyś nie musiał pisać wiersza polecenia tylko klikasz w Win$ PPM i wybierasz z menu Nowy/Folder i masz...
    • wariant_b Re: Czy ktoś wie, na boga, jak działa komputer?! 16.08.15, 23:51
      Tego nikt już nie wie.
      Komputer działa na zasadzie rozpędu.

      Wczoraj działał tak, jutro będzie działał podobnie, ale trochę inaczej.
      Kumuluje wiedzę i doświadczenie setek tysięcy, a może i milionów ludzi
      z okresu kilkuset lat. Czasem je zmieniając i dostosowując do aktualnych
      możliwości techniki, czasem tworząc nową technikę lepiej współgrającą
      ze stanem posiadanej wiedzy.

      Najistotniejsza chyba jest właśnie ta zdolność do kumulowania. Każdy fragment
      hardware'u i software'u może być powielony i użytkowany wielokrotnie.
      W efekcie każdy współczesny sprzęt powoli staje się komputerem, który
      obsługuje właściwe dla siebie urządzenia peryferyjne.

      > Właściwie to pytam: w jaki sposób język maszynowy zostaje przepisany
      > na język ludzki i vice versa?

      Nie zostaje przepisany. Procesor dalej przetwarza instrukcje w języku maszynowym
      a nie "język ludzki". To tylko wiedza na temat algorytmizacji języka ludzkiego rośnie.
      Jeśli powiesz komputerowi "chcę obejrzeć pornola" to odpowiedni algorytm wychwyci,
      ze źródłem dźwięku jest użytkownik, a nie na przykład radio w tle lub ktoś inny
      zwracający się do użytkownika. Inny algorytm ustali, że odbierany przez mikrofon
      dźwięk z dużym prawdopodobieństwem można sprowadzić do wzmiankowanego tekstu,
      kolejny fragment programu oceni, czy taki zestaw wyrazów ma sens i czy może być
      poleceniem skierowanym do komputera. Jeśli tak, to zostanie wyznaczone znaczenie
      takiego polecenia na postawie analizy znaczeń poszczególnych słów i ich układów.
      Być może nie na komputerze, ale zostanie przekazane serwerowi, który posiada
      odpowiednio dużą bazę danych, by dokonać analizy tekstu i wcześniejszych preferencji
      użytkownika. Zapewne wynik będzie podobny to tego, jaki sam uzyskasz kierując
      zapytanie do wyszukiwarki Bing i analizując odpowiedzi, ale o tyle lepszy, że komputer
      lub serwer zanalizuje je wcześniej i ewentualnie zada dodatkowe pytania (pamiętając
      przy okazji o aspekcie ekonomicznym, bo być może za skierowanie na stronę należy
      się jakiś udział od sprzedaży pojawiających się tam reklam lub samego filmu).

      W zasadzie proste i oczywiste, tylko trzeba mieć ten kawałek działającego softu.
      Jak się ma - to można go wlepić w każdy system operacyjny lub osobny program
      a nawet istniejącą przeglądarkę. Albo zaszyć w nowym układzie scalonym.
    • krvc86 Re: Czy ktoś wie, na boga, jak działa komputer?! 17.08.15, 22:34
      Jeśli mogę, to krótko pytanie dla każdego z was.

      Najbliżej tego, o co mi chodzi, jest tiges_wiz, chociaż też nie do końca o to pytałem; abcdefowicz i wariant b - chyba nie zrozumieliśmy się do końca.

      Powtórzę - mnie chodzi o zrozumienie sposobu, w jaki maszyna - kupa rezystorów, tranzystorów i innego rodzaju elementów elektrycznych - wchodzi w interakcję z człowiekiem i wykonuje polecenia człowieka. Dlatego siłą rzeczy odpowiedź musi być z pogranicza fizyki, elektryki (elektorniki?) i może tylko trochę jakiegoś programowania, informatyki.
      Dwie ostatnie odpowiedzi już nie trafiają w sedno, bo są zbyt daleko idące, przeskakują niejako nad tym problemem, który ja właśnie staram się zrozumieć.

      Tak czy siak, postaram się nakierować dyskusję na takie tory, żebym się czegoś dowiedział.

      @tiges_wiz: Co to są komórki pamięci? To po prostu układy scalone, które w jakiś sposób (nie jestem elektrykiem, to nie potrafię sobie tego wyobrazić nawet) mają zdolność utrzymywania stanu napięcia albo braku napięcia?
      W jaki sposób w komórkę "wkłada się" liczbę? Nie mogę wsadzić w układ scalony liczby 255. Napisałeś, że 255 to 11111111 (wierzę ci na słowo, że właśnie tyle). Ale co to znaczy? 8 pojedynczych, następujących po sobie impulsów elektrycznych? 8 jednoczasowych impulsów w różnych miejscach? Dlaczego akurat 8 impulsów, a nie na przykład 7 albo 9? Kto wymyślił, że 255 to ma być 11111111? Skąd procesor "wie", że 11111111 to 255?

      @abcdefowicz: Tu się całkiem rozminęliśmy. Otóż to, komputer nic nie wie. Zdaję sobie z tego sprawę, dlatego właśnie staram się zrozumieć, w jaki sposób urządzenie, które nic nie wie, jednak wie czego od niego chce i "wie", że jak kliknę przycisk "odpowiedz", to chcę, by ten post został wysłany.

      Napisałeś, że to OS pozwala wykonywać działania - nie do końca się z tym zgadzam - przecież pierwsze komputery, które w latach 40., 50. czy 60. ubiegłego wieku (historyk też ze mnie marny, więc nie wiem dokładnie kiedy powstały pierwsze komputery w obecnym rozumieniu) wykonywały bardzo skomplikowane obliczenia, nie miały systemów operacyjnych. Ba, żadnych interfejsów nie miały, trzeba było ręcznie przekładać kabelki (choć to też, nawiasem mówiąc, nie wiem jak działało).

      Ale załóżmy nawet, że OS jest niezbędny: w jaki sposób OS pozwala komputerowi wykonywać pewne działania?
      Jak OS "komunikuje" układowi scalonemu cokolwiek?

      @wariant_b: Napisałeś "odpowiedni algorytm wychwyci [...]" W jaki sposób wychwyci?
      Skąd w ogóle będzie wiedział, że ma cokolwiek wychwytywać?
      Co oznacza "zaszyć [soft] w nowym układzie scalonym"?

      Bardzo liczę na wasze odpowiedzi, najlepiej ograniczone do tych konkretnie pytań, które wam zadałem, bo to i tak będzie długa i żmudna dyskusja, nawet bez wdawania się w szczegóły i różne niepotrzebne opisy (tak w ogóle, to chyba temu, kto mi to naprawdę będzie w stanie wyjaśnić, będę musiał postawić flaszkę, bo to wcale nie jest takie łatwe zadanie!)

      P.S.

      @tiges_wiz: rzuciłem na razie okiem na ten plik procesor.pdf, jak przeczytam cały, to o coś pewnie jeszcze będę pytał w związku z tym.
      Ale od razu w pierwszych zdaniach nie podoba mi się, bo jest tam napisane "wykonywanie rozkazów", "sterowanie pracą innych układów" etc.
      Ja to wiem! Ja nie pytam CO robi procesor - ja pytam JAK on to robi!
      • wariant_b Re: Czy ktoś wie, na boga, jak działa komputer?! 18.08.15, 01:03
        > Co to są komórki pamięci? To po prostu układy scalone, które w jakiś sposób
        > (nie jestem elektrykiem, to nie potrafię sobie tego wyobrazić nawet) mają
        > zdolność utrzymywania stanu napięcia albo braku napięcia?

        Najogólniej mówiąc, są to umowne adresy pod którymi znajdują się dane.
        Realizacja techniczna jest poniekąd wtórna. Procesor chce dostać dane
        znajdujące się pod takim to a takim adresem i ma je dostać. Chce tam
        dane zapisać - dane mają trafić do danej komórki i w niej pozostać.
        Aktualnie normalna, czyli dynamiczna pamięć to najczęściej odpowiedni
        układ pojemnościowy. Osobny dla każdego bitu. Komórka liczy sobie
        odpowiednią ilość bitów, teraz zwykle 64. Albo znajduje się w nich ładunek,
        albo go nie ma. Można by to porównać z naczyniem z wodą. Pobranie danych
        z pamięci przypomina odkręcenie zaworka - następuje rozładowanie kondensatora.
        Oczywiście zawartość pamięci znika i należy natychmiast znowu napełnić
        kondensatory w których był ładunek, a te w których go nie było pozostawić puste.
        Ale to nie wszystko, bo kondensatory z czasem same się rozładowują i trzeba
        cyklicznie odświeżać ich zawartość. Zatem są okresy, kiedy dana komórka pamięci
        "jest nieczynna". I tak dochodzimy do parametrów pamięci i możemy się pozagłębiać
        w technikę, fizykę i chemię - ale nie ma to większego sensu. Istotne jest tylko to,
        że procesor może czytać i zapisywać pamięć spod danego adresu po to, żeby
        przetworzyć zawarte tam dane. Kiedyś pamięciami były układy eletromechaniczne,
        potem lampy elektronowe, potem ferrytowe paciorki nanizane na druciki,
        potem płyty wypełnione szczelnie układami dyskretnymi, w końcu małe płytki
        z kilkunastoma układami scalonymi wetknięte w slot pamięci. Zresztą droga bitów
        z komórki pamięci do procesora też nie jest prosta i po drodze wykonywana jest cała
        masa operacji, że choćby o cache'owaniu nie wspomnę.
      • tiges_wiz Re: Czy ktoś wie, na boga, jak działa komputer?! 18.08.15, 11:51
        > W jaki sposób w komórkę "wkłada się" liczbę? Nie mogę wsadzić w układ scalony l
        > iczby 255. Napisałeś, że 255 to 11111111 (wierzę ci na słowo, że właśnie tyle).

        to zwykła matematyka: pl.wikipedia.org/wiki/Dw%C3%B3jkowy_system_liczbowy
        tylko ze podstawą nie jest 10 tylko 2

        poszczególne komórki pamięci są połączone w 8, co nam daje bajt. resztę robią sumatory i bramki logiczne.

        W pierwszych komputerach faktycznie wszystko się ustawiało ręcznie, ale ktoś zauważył, że pewne czynności się powtarzają i po wynalezieniu układów scalonych te powtarzające się ustawienia trafiły do pamięci ROM, czyli takiej która się nie kasuje. Komputer zaczyna pracę od wykonania programu z pamięci ROM.
      • Gość: MSMW Re: Czy ktoś wie, na boga, jak działa komputer?! IP: *.internetdsl.tpnet.pl 24.09.15, 16:10
        Pytasz się o skomplikowaną sprawę. Postaram się to tak uprościć jak to tylko możliwe. Proszę innych informatyków o nie komentowanie tych uproszczeń.

        Ale zacznijmy od tego:
        Tranzystor - element półprzewodnikowy który może przepuszczać prąd w zależności od tego czy się tego chce czy nie. Myśl o tym jak o przełączniku.
        Dioda - element półprzewodnikowy który przepuszcza prąd tylko w jedną stronę (nie mylić z diodą świecącą)
        Opornik - taki dodatek. Na razie taka wiedza wystarczy.
        Kondensator - układ który przechowuje prąd.

        Z 4 tranzystorów, diody i kilku oporników możesz zbudować coś takiego jak bramka NAND. (schemat znajdziesz np. tutaj: kalitka.dhs.org/tc/cw1.html)

        Bramka NAND to coś takiego co ma dwa wejścia, jedno wyjście i jeżeli na którymkolwiek z wejść pojawi się sygnał to bramka odetnie sygnał na wejściu.

        Z tych bramek łączonych po kilka (czy obecnie raczej kilkaset do kilku tysięcy) się buduje się układy które potrafią wykonać jedno działanie matematyczne. (wszystko w systemie dwójkowym - bramki akceptują tylko zera i jedynki) To jest podstawowy rozkaz procesora.

        Z takich samych bramek inaczej połączonych można zbudować układ taki że ładuje miniaturowe kondensatory, (mega uproszczenie) zapamiętujące czy dane miejsce przechowuje cyfrę 0 czy 1. We współczesnych procesorach łączy się to w rejestry mające 64 takie cyfry (tylko 0 lub 1) co się składa na liczbę z zakresu od 0 do 2^64-1, czyli od zera do 18446744073709551615.

        Więc mamy rejestry przechowujące liczby, bierzemy jeden lub dwa takie i puszczamy to do układu który wykonuje któreś z poleceń (np. dodawanie lub mnożenie) Sterowanie który rejestr i które polecenie jest wybierany za pomocą bramek NAND.

        Komputer potrafi wykonać tyle takich poleceń na raz ile ma wątków jeden rdzeń obecnie ma 1 lub 2 wątki, a wykonuje tyle takich poleceń na sekundę ile ma herców częstotliwości. (czyli 1 GHz to 1 miliard poleceń na sekundę - przynajmniej teoretycznie, niektóre polecenia wykonywane są przez kilka cykli zegarowych)

        Z kilku miliardów takich elementów budujesz cały procesor.

        Teraz programista pisze program w języku programowania i potem wciska przycisk kompiluj. Kompilator wtedy tłumaczy zapis ludzki na zestaw poleceń dla procesora (assembler to język programowania który wykorzystuje bezpośrednie pisanie zestawu poleceń - raczej nie wykorzystywany jest teraz do pisania programów, ale często przydatny przy ich optymalizacji) Czyli kompilator to taki program komputerowy tłumaczący tekst z ludzkiego na komputerowe.

        Więc teraz kilka spraw - dlaczego 11111111 u komputera to nasze 255? Proste. Komputer liczy tylko zerami i jedynkami (patrz bramki NAND) masz 8 cyfr. Jeżeli zapisujesz to za pomocą systemu dziesiątkowego (takiego z 10 cyframi od 0 do 9) to za pomocą 8 cyfr możesz zapisać najwyżej 10^8-1 czyli 99999999, za pomocą systemu dwójkowego (tylko 0 i 1) możesz zapisać 2^8-1 czyli 255. Kompilator wszystkie liczby przepisuje na 0 i 1 i tak pracuje na tym komputer.

        Jak komputer wyświetla grafikę? Liczy sobie na jaki kolor zabarwić każdy z pikseli ekranu (więc jak będzie 1024x768 to da nam 768432 punkty a dla każdego osobno liczy każdą z trzech barw podstawowych. (dlatego wyższe rozdzielczości potrafią tak wykastrować osiągi komputera - ale nie jest tak źle, programiści nauczyli się tutaj nieźle oszukiwać) Potem 30 czy 60 razy na sekundę wymienia cały obraz na nowy. Inercja ludzkiego oka wmawia nam że jest to płynna animacja. (wspominałem że grafika komputerowa to w sumie takie sprytne oszustwo?)

        Czy jest coś po pominąłem? TAK! Nie wspomniałem o liczbach ułamkowych (w języku komputerowym zmiennoprzecinkowych) o tym ile roboty jest z odejmowaniem czy dzieleniem na poziomie procesora, nie mówiąc o pozostałych 200+ poleceniach jakie ma procesor, o przekazywaniu danych czy komunikacji pomiędzy podzespołami. (ale na przykład liczenie pierwiastka to zabawa w zgadywanie - koszmar przy liczeniu odległości w grach, trzeba to robić z twierdzenia pitagorasa)

        Mam nadzieję że trochę wyjaśniłem.
    • abcdefowicz Re: Czy ktoś wie, na boga, jak działa komputer?! 17.08.15, 23:27
      Ja starałem się wykazać ci, że komputer to nie tylko hardware ale i software. Obecnie część sprzętów hardware ma zintegrowany w pamięci BIOS i jest nie tylko kawałkiem płytki, sprzętu, ale kompozytem obydwu. Sama karta graficzna, dźwiękowa, jakikolwiek kontroler czy nawet mysz, bez instrukcji dla procesora co i jak ma z tym robić, będzie kawałkiem bezużytecznej elektronicznej płytki. Moim zdaniem oczekujesz zbyt wiele od użytkowników forum. Wyłożenie w jednym czy kilku prostych zdaniach jak działa komputer nie ma sensu. Tego się moim zdaniem nie da zrobić, ale życzę sukcesów w poszukiwaniach. :D
    • cron72 Re: Czy ktoś wie, na boga, jak działa komputer?! 18.08.15, 00:45
      I/O dla kazdego urządzenia wejscia zamienia sygnał analogowy na impulsy elektryczne lub ich brak pakowane po 8 i wysylane do odpowiednich ukldów logicznych pelnych bramek logicznych w postaci tranzystorow. Po przelączaniu przez te impulsy tych bramek otrzymujemy inny ciąg 8 impulsów kierowany do I/O i przetwarzany na sygnał analogowy dla odp. urządzenia wyjscia i''ludzki'' - za pomocą np monitora.
    • krvc86 Re: Czy ktoś wie, na boga, jak działa komputer?! 18.08.15, 10:30
      @abcdefowicz: Ja sobie zdaję sprawę, że komputery to też software, oczywiście. Tytuł mojego postu może trochę jest mylący, ale nie mogłem w tytule napisać dokładnie o co mi chodzi, bo nie było tam na to miejsca. Mnie nie chodzi o wyjaśnienie w kilku postach CAŁEGO działania komputera, ja mniej więcej wiem, jak działa komputer. Ja tylko cały czas szukam miejsca, ogniwa łączącego człowieka z komputerem, pozwalającego im się komunikować, mimo że przecież maszyna "mówi" w swoim języku, a my w swoim.

      Napisałeś: "[...] bez instrukcji dla procesora co i jak ma z tym robić [...]".
      I ja właśnie o to pytam! Jakich instrukcji? Jak powstały te instrukcje? W jakim języku są napisane? Kto i jak napisał pierwszą instrukcję? W jaki sposób kupa przewodów, przewodników i oporników rozumie te instrukcje?

      @cron72: "[...] pakowane po 8 i wysyłane do odpowiednich układów [...]". Pakowane po 8 przez kogo/co? Dlaczego akurat po 8? Wysyłane do odpowiednich układów przez kogo/co? Kto/Co i JAK "wie", który układ jest odpowiedni? Skąd CPU "wie", że ma to wysłać tu, tamto tam, to zapisać a tamto nie? Skąd CPU w ogóle wie, czego ja od niego chcę?
      • feel_good_inc Re: Czy ktoś wie, na boga, jak działa komputer?! 18.08.15, 10:41
        krvc86 napisał(a):
        > @abcdefowicz: Ja sobie zdaję sprawę, że komputery to też software, oczywiście.
        > Tytuł mojego postu może trochę jest mylący, ale nie mogłem w tytule napisać dok
        > ładnie o co mi chodzi, bo nie było tam na to miejsca. Mnie nie chodzi o wyjaśni
        > enie w kilku postach CAŁEGO działania komputera, ja mniej więcej wiem, jak dzia
        > ła komputer. Ja tylko cały czas szukam miejsca, ogniwa łączącego człowieka z ko
        > mputerem, pozwalającego im się komunikować, mimo że przecież maszyna "mówi" w s
        > woim języku, a my w swoim.

        Jesteś jakiś wyjątkowo oporny na zdobywanie wiedzy...

        To czego szukasz, to międzymordzie, czyli interfejs użytkownika i urządzenia wejścia-wyjścia.

        Ty naciskasz przycisk, zwierasz dwie blaszki, a do komputera idzie sygnał elektryczny.

        Sygnał elektryczny powoduje przełączenie w układzie i przerzucenie kilku przerzutników zgodnie ze schematem komputera i zadanymi ustawieniami wewnętrznych przełączników.

        Komputer włącza prąd w kabelku, a na końcu tego kabelka zapala się żaróweczka i daje informację człowiekowi.

        Tak to mniej-więcej działało w ENIACu i dokładnie tak samo działa dziś. Tylko przycisków i żaróweczek jest trochę więcej. Komputer nic nie wymyśla, tylko zapala i gasi piksele na ekranie w odpowiedzi na sygnały z myszki i klawiatury.

        Naprawdę dużo bardziej fascynujący jest proces komunikowania się dwóch jednostek biologicznych różnych gatunków - jak na ten przykład człowieka z kotem, niż interakcja z tak prostą maszyną logiczną jak komputer.
    • krvc86 Re: Czy ktoś wie, na boga, jak działa komputer?! 18.08.15, 12:15
      Dziękuję za odpowiedź.

      Nie sądzę, żebym był wyjątkowo oporny na zdobywanie wiedzy, biorąc pod uwagę, że mam już jeden tytuł magistra a obecnie kończę medycynę, sądzę, że mam tej wiedzy całkiem sporo, może nawet więcej, niż niektórzy tutaj, którym się wydaje, że są (naj)mądrzejsi.
      Oczywiście, może powiesz, że to o niczym nie świadczy, że nawet mając dwa magistry można być opornym. Cóż, na forum każdy może napisać wszystko, widać ty jesteś bardzo mądry i małooporny. Dlatego też przysługuje ci prawo nazywania osób, których nie znasz - opornymi.

      Interakcja człowieka z kotem być może i jest fascynująca, z tą tylko różnicą, że człowiek kota nie stworzył, a komputer tak, dlatego to drugie interesuje mnie bardziej, niż pierwsze.

      Wracając do dyskusji - nie, to, czego szukam, to nie interfejs użytkownika. Interfejs znalazłem już dawno temu. Mogę szukać ewentualnie sposobu, w jaki działa interfejs.
      Twoja odpowiedź nie wyjaśniła mi niczego, czego bym już wcześniej nie wiedział.

      Napisałeś: "[...] przerzucenie kilku przerzutników zgodnie ze schematem komputera i zadanymi ustawieniami wewnętrznych przełączników [...]. Mówiąc "schemat", masz na myśli architekturę procesora (ograniczmy się do procesora, bo to on wykonuje obliczenia, reszta mnie nie interesuje), niezmienną i stworzoną przez producenta?
      Co to są "zadane ustawienia wewnętrzne"? Czy to też po prostu stricte fizyczna budowa bramek logicznych, ułożenie poszczególnych tranzystorów?

      "Komputer włącza prąd w kabelku, a na końcu tego kabelka zapala się żaróweczka i daje informację człowiekowi".
      Gdyby tak to działało, to co najwyżej mógłbym sobie pomrugać żaróweczką na ekranie, wciskając przysicki.
      Człowiek zadaje PYTANIE, a komputer daje mu ODPOWIEDŹ.

      Moje pytanie cały czas brzmi: skąd bramki logiczne "wiedzą" (tak, wiem, że bramki logiczne nic nie wiedzą, tak, znam budowę bramki logicznej, dlatego jest to wzięte w cudzysłów; miałem nadzieję, że uda się uniknąć łapania mnie za słówka i udawania Greka przez wielce uczonych dyskutantów), że ja mają wykonać takie a nie inne działania i dać mi odpowiedź.

      Powiecie - od tego jest assembler, tłumaczy język nasz, ludzki, na maszynowy, komputerowy. Ale skąd się wziął assembler? Nie jest przeciez wbudowany w CPU. Jest programem. Kto go więc napisał i w jaki sposób?

      Dziękuję z góry za kolejne odpowiedzi uświadamiające mnie, jaki to jestem oporny na wiedzę, po czym opisujące problem ciągiem powszechnie znanych banałów na poziomie LO.
      • feel_good_inc Re: Czy ktoś wie, na boga, jak działa komputer?! 18.08.15, 12:35
        krvc86 napisał(a):
        > Nie sądzę, żebym był wyjątkowo oporny na zdobywanie wiedzy, biorąc pod uwagę, ż
        > e mam już jeden tytuł magistra a obecnie kończę medycynę.

        Mam szczerą nadzieję, że nigdy nie trafię do ośrodka, w którym będziesz tę medycynę praktykował, o ile to jest tylko kreacja internetowego trolla.

        A odpornym na wiedzę nazywam cię dlatego, że wykazujesz na tę wiedzę wyjątkową odporność. Gdyby tak nie było, to już dawno sam wpisałbyś to pytanie w internetową wyszukiwarkę i dostał odpowiedź w postaci kursu z podstaw elektryczności i informatyki, no ale skoro podstawy niezbędne do zrozumienia tematu cię nie interesują, to naprawdę nie wiem, czego oczekujesz.
        • krvc86 Re: Czy ktoś wie, na boga, jak działa komputer?! 18.08.15, 16:52
          Cóż, pytanie w wyszukiwarkę wpisywałem, ale odpowiedzi nie znalazłem. Zresztą jedną z odpowiedzi było to właśnie forum. Ja mam podstawy, nie znam odpowiedzi na konkretny problem. Nie sądzę, żebyś ty też był wyjątkowo bystry albo posiadał rozległą wiedzę, skoro zamiast udzielić mi odpowiedzi (na tak rzekomo proste pytanie), odsyłasz mnie do wyszukiwarki. Tak czy inaczej, zamykam temat, prowadzę dyskusję na innych forach, gdzie ludzie rzeczywiście odpowiadają merytorycznie na moje posty. Widać mają wiedzę, której brak tobie.
      • allegropajew Re: Czy ktoś wie, na boga, jak działa komputer?! 23.09.15, 22:06
        Albo jesteś upierdliwy gimnazjalista, albo troll. TAK asembler jest zaszyty w procesor. Każdy, kto jest na tyle wiekowy, że walczył za pomocą Turbo Pascala 3.0 wie to boleśnie, jeśli coś chciał zrobić niestandardowego i katował instrukcję INLINE. Ja z 3.0 przeszedłem od razu na 5.0 z pominięciem 4.x, więc nie wiem, czy już w 4, ale w 5.0 pojawiła się instrukcja ASM, co pozwalało na zapis symboliczny.

        Tak
    • kot404 Re: Czy ktoś wie, na boga, jak działa komputer?! 19.08.15, 00:36
      Kolego, Twoje pytanie nie jest pytaniem tylko próbą udowodnienia tezy znanej tylko Tobie. Komputer jako prosta maszyna nie może wchodzić w interakcje z Człowiekiem. Komputer nie wie czego od niego chcemy bo jako maszyna nie jest w stanie to ogarnąć. Wykonuje zadane polecenia i przedstawia wynik.
      Na pytanie: "Jak działa komputer" odpowiem tak: Komputer to układ tranzystorów realizujących pytania warunkowe. TAK NIE, PRAWDA i FAŁSZ, 0 albo 1, co sprowadza się do: jest napięcie albo go nie ma. Żarówka świeci albo nie świeci.
      Tak ja to widzę, jestem tylko kotem więc pewnie się mylę....

      /kot ma dość.....
    • elde23 Re: Czy ktoś wie, na boga, jak działa komputer?! 19.08.15, 11:46
      Szanowny krvc86, odpuść sobie. Oni nie potrafią ci odpowiedzieć. To tak, jak drwal, który ściął drzewo, a jak go zapytasz o sposób produkowania siekier, to będzie cię gonił przez pół lasu.
      Kiedyś zadałem analogiczne do twojego pytanie bardzo dobremu specjaliście znającemu na wylot programowanie, i sprzęt. Odpowiedział mi dowcipem o skrzatach zamieszkujących procesor, i zamilkł na stałe. Dzieci świetnie radzą sobie z komputerami, bo o nic nie pytają. Im wystarczy informacja, jakie klawisze naciskać, i co będzie w zamian. I niech tak zostanie.
    • kalllka Re: Czy ktoś wie, na boga, jak działa komputer?! 19.08.15, 23:53
      W pierwszych słowach mojego postu- odpowiedzi, pozwolę sobie na prywatę- tu podziękowanie i gratulacje dla it, z okazji zmiany formuły dyskusji, uproszczenia i nowego nowego oblicza forum- dzięki!
      A teraz do rzeczy;
      Jestem osoba tzw. starej daty. Mnostwo czasu zajęło mi więc poznawanie komputera / jego podst. działania. Najprościej mówiąc, za chińskiego Boga nie rozumiałam zasad działania bo nie potrafiłam sobie tego wyobrazic. Nikt Rez nie potrafił, nie chciał podać mi takiego przykładu bo nie istniał / poza Bogiem, oczywiście/
      Odpowiedz przyszła gdy zauważyłam, ze jedyna logicznie spójna , jest ta, ze komputer / jak Bóg/ działa tak jak człowiek i jego środowisko- przyroda. I to by było na tyle.
      Ponieważ, z cała pewnością jesteś inteligentny : potrafisz łączyć fakty i przekształcać infirhacje w odpowiedni dla siebie sposób, podam ci tylko bazę, od której zaczynalam rozumieć binarny świat i zaczekam przygodę życia,.
      www.mathsisfun.com/binary-number-system.html
      Przesyłając w/w- www, mam nadzieje, nie urazić prostota przykładu.
      I jeszcze coś,
      Myśle, ze w zrozumieniu działania komp.:
      -przekładu ludzkiego języka w komputerowy i vice wersa, pomoże wystukiwanie " kropek" . Trochę to wyglada jak dziecięca zabawa, jak wysyłanie sygnałów za bębnów , jak w telegrafie,, telefonie.
      / a poetycko?
      rytm bitow w kompie jest echem bicia serca człowieka, jest tez dla naszych uszu ... Szumem wszechświata/

    • Gość: Gość Re: Czy ktoś wie, na boga, jak działa komputer?! IP: *.dynamic.chello.pl 02.09.15, 00:36
      Idealną lekturą dla autora wątku powinna być książka "Kod" Charlesa Petzolda. Książka omawia istotne koncepcje krok po kroku od latarki(!) do prawie kompletnej architektury prostego komputera. Jest napisana w sposób ciekawy i względnie przystępny nawet dla laika w dziedzinie informatyki. Została wydana w 2000 r., jednak to jak działa komputer na niskim poziomie raczej się zbytnio nie zmieniło na przestrzeni minionych lat, zatem jest wciąż niemalże tak samo aktualna jak w chwili wydania. Niestety nakład polskiego wydania jest wyczerpany, zatem trzeba szukać w bibliotekach, antykwariatach, na serwisach aukcyjnych (dla znających dobrze angielski wciąż bez problemu dostępne jest oryginalne wydanie pod tytułem "Code: The Hidden Language of Computer Hardware and Software").
    • kot404 Re: Czy ktoś wie, na boga, jak działa komputer?! 03.09.15, 19:30
      krvc86 Kolego, Twoje pytanie nie jest pytaniem tylko próbą udowodnienia tezy znanej tylko Tobie. Komputer jako prosta maszyna nie może wchodzić w interakcje z Człowiekiem. Komputer nie wie czego od niego chcemy bo jako maszyna nie jest w stanie to ogarnąć. Wykonuje zadane polecenia i przedstawia wynik.
      Na pytanie: "Jak działa komputer" odpowiem tak: Komputer to układ tranzystorów realizujących pytania warunkowe. TAK NIE, PRAWDA i FAŁSZ, 0 albo 1, co sprowadza się do: jest napięcie albo go nie ma. Żarówka świeci albo nie świeci.
      Tak ja to widzę, jestem tylko kotem więc pewnie się mylę....
    • daro256 Re: Czy ktoś wie, na boga, jak działa komputer?! 09.09.15, 04:21
      Może ja spróbuję :)
      Właściwie nie odpowiem Ci na pytanie, gdyż jest ono bardzo ogólne, a Ty chcesz szczegółową odpowiedź.
      Ale może Ci się przyda.

      Komputer jest to mistrzowskie wykorzystanie poziomów (warstw) abstrakcji.
      O co chodzi z poziomami abstrakcji? Przykład:

      Jeżeli budujesz dom z cegieł zakładasz że masz stos cegieł które układasz jedną na drugiej. Nie zaprzątasz sobie głowy tym jak wyprodukować cegłę. Jest to poziom abstrakcji na którym cegła już istnieje.

      Jeżeli produkujesz cegły, to tylko wkładasz glinę uformowaną w kostki do pieca. Nie zastanawiasz się nad tym jak wydobyć glinę. Jest to niższy poziom abstrakcji od wcześniejszego, na którym istnieje tylko glina.

      Można dalej schodzić w dół lub w górę:
      Jeżeli projektujesz osiedle, układasz w sensowny układ kilka domów. Nie zastanawiasz się nad tym jak zbudować dom.

      I tak dalej...Ważne jest to, że każdy poziom abstrakcji funkcjonuje niezależnie od poprzedniego poprzez traktowanie produktu z niższego poziomu jako nierozbieralny element.

      Każdy poziom abstrakcji rządzi się też swoimi prawami i ma swoich specjalistów. Zrobienie dobrej cegły polega na zupełnie czymś innym niż zbudowanie dobrego domu.

      W ten sposób można budować bardzo skomplikowane systemy, poprzez układanie warstwowo poziomów abstrakcji. Właściwie to nie znam innej metody na tworzenie skomplikowanych systemów.

      Wszystko powyższe tyczy się również komputerów. W tym wypadku warstwą najniżej jest warstwa półprzewodników (krzem), a najwyższa interfejs użytkownika w aplikacji.
      Każda z warstw jest skomplikowana, na dole mamy półprzewodniki i fizykę półprzewodników. Trzeba przeczytać książkę, żeby to ogarnąć. Później mamy warstwę elementów półprzewodnikowych i nie tylko (diody, tranzystory...) - kolejna książka. Następnie technika cyfrowa (bramki, przerzutniki, przełączniki, automaty) i wykorzystanie w niej tranzystorów... Dużo tego a jeszcze daleko do czegoś co można nazwać komputerem.

      Dlatego odpowiedź na pytanie jest bardzo złożona.

      Ale być może wystarczy jak poczytasz o architekturze von Neumanna. Każdy obecny komputer to maszyna von Neumanna, a jego genialny pomysł polegał na traktowaniu instrukcji programu tak samo jak danych. Zatem instrukcje można było zmieniać. Dzięki temu komputery stały się uniwersalne.
    • Gość: gosc Re: Czy ktoś wie, na boga, jak działa komputer?! IP: *.ei.com 23.09.15, 20:04
      Ha-ha-ha! Podeobne pytania dreczyly mnie przez lata. Niedawno jednak przeczytalem ksiazke J.Clarck Scott pt. "But How Do It Know? ? The Basic Principles of Computers for Everyone" i teraz spie juz spokojnie. :-) Jest napisana bardzo zwiezle i niesamowicie przystepnym jezykiem. Naprawde goraco polecam.

      Tutaj masz kilka fimikow ktore powstaly na bazie tej ksiazki:
      www.youtube.com/watch?v=VBDoT8o4q00
      www.youtube.com/watch?v=cNN_tTXABUA
      www.youtube.com/watch?v=NKYgZH7SBjk

      A tu ktos nawet zrobil symulacja w Excel'u:
      www.youtube.com/watch?t=1&v=qHtZQ_GgPU4
    • zapiski_dziada Re: Czy ktoś wie, na boga, jak działa komputer?! 24.09.15, 00:38
      Przecież sam sobie na to pytanie odpowiedziałeś:
      "na zasadzie zero-jedynkowych napięć"
      a dokładniej na zasadzie jest napięcie 1 albo go nie ma 0.
      Za pomocą mnóstwa kombinacji tych dwóch stanów "istnienia" można stworzyć np. system Windows 10.
      Reszta to pierdoły, które rozgałęziają się w jeszcze większe pierdoły i nie warto się nimi zajmować.
      To nie jest do zrozumienia przez kogoś, który nie ma zmysłu technicznego.

Popularne wątki

Nie pamiętasz hasła

lub ?

 

Nie masz jeszcze konta? Zarejestruj się

Nakarm Pajacyka