Seuraa 
Viestejä45973
Liittynyt3.9.2015

Minua on alkanut kiinnostamaan kuinka tietokoneet toimivat ja rakentuvat. Opiskelen tällä hetkellä lukiossa, joten tietämykseni ei ole yliopistotasoa . Haluaisin alkaa itsenäisesti opiskelemaan tietokoneita ja ymmärtämään niitä.
Osaisiko joku neuvoa jotain kirjoja ja/tai internetsivuja joista täällaisen aloittelijan olisi hyvä aloittaa?

Sivut

Kommentit (34)

Matsimus
Seuraa 
Viestejä19
Liittynyt2.3.2009

Raspberry Pi:llä halvalla ja helposti alkuun Linuxin kanssa. Tässä linkki sivulle, jossa suomenkielisiä ohjeita Arcade-pelikoneen rakentamiseen, myöhemmin tuonne tulossa muitakin ohjeita RasPille. Itsellä ainakin opit jäävät päähän parhaiten tekemällä jotain järkevää, eikä vaan tutkimista tutkimisen vuoksi.

http://arcade.trashvideo.fi

Vierailija
Matsimus
Raspberry Pi:llä halvalla ja helposti alkuun Linuxin kanssa. Tässä linkki sivulle, jossa suomenkielisiä ohjeita Arcade-pelikoneen rakentamiseen, myöhemmin tuonne tulossa muitakin ohjeita RasPille. Itsellä ainakin opit jäävät päähän parhaiten tekemällä jotain järkevää, eikä vaan tutkimista tutkimisen vuoksi.

http://arcade.trashvideo.fi[/quote]
Tuo ei taida olla paras vaihtoehto, mikäli haluaa ymmärtää tietokoneen toimintaperiaatetta. Linuxin tarkoitus kun on siirtää se taka-alalle, jolloin voidaan tehdä helpommin monimutkaisia sovelluksia.

8-bittisillä mikrokontrollereilla pääsee huomattavasti lähemmälle laitteistotasoa. Yksi vaihtoehto on Atmel AVR, jolle löytyy sellainen kehitysalusta kuin Arduino. Kehitysalustan avulla ei tarvitse keskittyä niin paljon laitteiston kokoamiseen.

pmk
Seuraa 
Viestejä1855
Liittynyt1.1.2010
Ades Saul
Minua on alkanut kiinnostamaan kuinka tietokoneet toimivat ja rakentuvat. Opiskelen tällä hetkellä lukiossa, joten tietämykseni ei ole yliopistotasoa . Haluaisin alkaa itsenäisesti opiskelemaan tietokoneita ja ymmärtämään niitä.
Osaisiko joku neuvoa jotain kirjoja ja/tai internetsivuja joista täällaisen aloittelijan olisi hyvä aloittaa?

Jos haluat oikein pitkän kaavan mukaisesti oppia, tässä muutamia välietappeja
[list:49ko5sjw][*:49ko5sjw]digitaalielektoniikka, vastus ja transistori kytkimenä[/*:m:49ko5sjw]
[*:49ko5sjw]peruslogiikatoiminnot AND, OR NOT, käytännössä NAND/NOR[/*:m:49ko5sjw]
[*:49ko5sjw]peruslogiikkapiirit, esim. 74xx piirisarjat[/*:m:49ko5sjw]
[*:49ko5sjw]74181 ALU (Arithmetic Logical Unit)[/*:m:49ko5sjw]
[*:49ko5sjw]Data Generalin Nova sarjan tietokoneen käskykanta vrt. 74181 piiriin.[/*:m:49ko5sjw]
[*:49ko5sjw]Tästä voidaan sitten jatkaa muiden ehdottamilla i4004, i8008, Z80 varianteilla
[/*:m:49ko5sjw][/list:u:49ko5sjw]

Varaktori
Seuraa 
Viestejä777
Liittynyt22.8.2008

Ei noita nykyajan kotkotuksia kannata tosissaan ottaa. Eihän sitä jätkän nakkisormilla edes tollasia kärpäsen jätöksen kokosia lutikoita pysty hypisteleen saatikka paikoilleen juotteleen. Teet vaan reilusti releillä ittelles tietokoneen, niin siinä sitä oppii. ALU syntyy niinkin vähällä kuin 12 releellä. Koko aparaattiin niitä toki menee vähän enemmän.

http://www.northdownfarm.co.uk/rory/tim/tim-8.htm

Kulmikkat silmälasinlinssit. Ymmärtäisin, jos lastensadun kuutiopäinen robotti haluaisi sellaiset, mutta ihmiselle ne eivät sovi.
http://www.youtube.com/watch?v=PLNR4xfh1Qc

o_turunen
Seuraa 
Viestejä14400
Liittynyt16.3.2005

Täsmälleen. Jos ei itse rakenna, niin tietokoneet toimivat huonosti. Jos itse rakentaa, niin aina voi helposti parantaa. Jostain Z80-prosessorin naittamisesta wire-wrap-tekniikalla minäkin aloitin.

Korant: Oikea fysiikka on oikeampaa kuin sinun klassinen mekaniikkasi. Jos olet eri mieltä kanssani olet ilman muuta väärässä.

Jos haluaa tietää, miten prosessorit toimii, aiemmin annetut youtube-videot oli itseasiassa erittäin hyvää katseltavaa. Joskin mä katsoisin ensin sen, joka selittää, miten prosessori rakentuu ja vasta sitten sen, joka selittää logiikkapiirien toimintaa. Mun mielestä on helpompi oppia asioita, jos pystyy yhdistämään ne johonkin jo tuttuun (kuten tässä tapauksessa: "Hei tää hassu kytkinledijuttuhan on vähän niinkuin se ALU, joka tekee niitä matemaattisia juttuja"). Ja tietokoneiden tapauksessa korkeamman tason jutut on tuttuja ja siksi on helpompi edetä ylhäältä alaspäin.

Tästä syystä mä lähtisin siitä, että ensin opettelee ohjelmoimaan korkean tason kielillä ja vasta sitten alkaa miettiä, mitä se prosessori itseasiassa tekee suorittaessaan sitä kirjoitettua koodia. Tässä tosin varoituksena, että menee aika pitkään, ennen kuin mitään omia tietokonepelejä voi ruveta kirjoittelemaan. Eli varauduttava aika pitkään tekstipohjaisten pikkuohjelmien ja päämäärättömien tietorakenteiden pyörityksen putkeen.

Helppo kiva kieli, jolle löytyy tosi hyvät aloitusoppaat netistä on esimerkiksi python. Itse tykkään kovasti. Toisaalta mä aloitin itse C:llä, mikä oli varmaan aika paljon vaikeampaa, mutta toisaalta tarjosi paremman pohjan muiden kielten hassuuksien ymmärtämiselle.

NytRiitti
Seuraa 
Viestejä3025
Liittynyt12.9.2012
jaava
...
Tästä syystä mä lähtisin siitä, että ensin opettelee ohjelmoimaan korkean tason kielillä ja vasta sitten alkaa miettiä, mitä se prosessori itseasiassa tekee suorittaessaan sitä kirjoitettua koodia.
...
Helppo kiva kieli, jolle löytyy tosi hyvät aloitusoppaat netistä on esimerkiksi python
...
.

Joo, tuostahan se on aika simppeliä sitten miettiä, että mitenhän se siitä Pythonista kääntyykään konekielelle.

Veli H.
jaava
...
Tästä syystä mä lähtisin siitä, että ensin opettelee ohjelmoimaan korkean tason kielillä ja vasta sitten alkaa miettiä, mitä se prosessori itseasiassa tekee suorittaessaan sitä kirjoitettua koodia.
...
Helppo kiva kieli, jolle löytyy tosi hyvät aloitusoppaat netistä on esimerkiksi python
...
.

Joo, tuostahan se on aika simppeliä sitten miettiä, että mitenhän se siitä Pythonista kääntyykään konekielelle.




Se on sitten se seuraava askel. Pythonista suoraan vähän monimutkaisempi. C:stä vähän helpompi. Mutta kyllä hyvällä ohjelmointitaustalla ja terveellä järjellä ymmärtää symbolisten konekielien pointin aika hyvin. Ja sitten kun assemblya ymmärtää niin on jo aika pitkällä tietokoneen toiminnassa.

Vierailija

No sit vaa assya jos ei saa olla liian fiiniä. Ite lukenu pari kirjaa C++:sta, Javasta ja mikroC:stä eikä kyllä oikeen mitään jäänyt käteen, joskaan nyt ei ihan kusessa niiden kanssa ole. Jos ihan kontrolleritasolta lähtee niin mikroC on varmaan paras. Siitä on hyvä lähteä rajoitusten takia, jolloin joutuu vähän pohtimaan optimointia, jossa kyllä opastetaan omilla saiteillaan. Arduinolla ja AVRFReaksilla on massiiviset kirjastot, joista hakea projekteja ja referenssiä. En nyt muista mikä sen ilmaisen suomalaisen oppaan nimi oli, mutta kai sekin etsimällä löytyy.

Kosh
Seuraa 
Viestejä21228
Liittynyt16.3.2005
Ades Saul

Minua on alkanut kiinnostamaan kuinka tietokoneet toimivat ja rakentuvat. Opiskelen tällä hetkellä lukiossa, joten tietämykseni ei ole yliopistotasoa



Heitit aikamoisen haasteen, niin meille kuin itsellesi. Keskeneräisellä lukion oppimäärällä sinulla voi olla tai ei välttämättä ole riittävää perustietotasoa ymmärtääksesi asian. Yleistäen voi sanoa, että eivät kaikki yliopistonsa suorittaneetkaan ymmärrä tietokoneen toimintaa oikeasti, vaikka saattavat osata jotain sen osakokonaisuuksia tai esimerkiksi tuottaa sille ohjelmistoja. Kokonaisuus on aika vaativa ja mutkikas ja periaatteessa edellyttää hyvin monialaista osaamista aina alkaen puolijohdefysiikasta jos haluaa sanoa että aidosti ymmärtää tietokoneen toimintaperiaatteet.

Mikäli haluat saavuttaa yliopistotason parhaan kokonaiskattavat ymmärryksen, ei liene muuta vaihtoehtoa kuin käydä se yliopisto. Itse valitsin aikanani tietotekniikan opiskelun juuri tuosta syystä, en ymmärtänyt riittävästi enkä oikein osannut mistään aloittaa itsenäistä opiskeluakaan.

Osaatko ohjelmointia? Jos, niin sinulla on yksi kiinnekohta josta voidaan aloittaa. Muutoin voi mennä hankalaksi. Joitain linkkejä ja vinkkejä saitkin jo, minä voisin sepostaa yleisesittelyä hieman.

Tietokoneen keskeinen perusta on ohjelmoitava mikroprosessori. Karkeasti yleistäen se koostuu parista perusosasesta; loogiset laskentayksiköt ja muistirekisterit. Kullakin prosessorilla on nk. käskykanta, eli jotakin parinkymmenen ja muutaman sadan välillä olevaa erillistä toimitusta jotka se voidaan käskeä tekemään. Yksinkertainen esimerkki on laskea yhteen kahden rekisterin tallettamat luvut ja asettaa kolmannen rekisterin arvoksi saatu lopputulos. Prosessori toimii sisäisen kellon tahdistamana niin, että se lukee jostakin (mkuisti, ohjelmarekisteri) taas yksinkertaistettuna yhden käskyn kerrallaan, suorittaa sen osoittaman toimenpiteen ja jatkaa edelleen. Tietokoneohjelma on siis oleellisesti sarja tällaisia käskyjä.

Rekisterit ja aritmeettis-loogiset yksiköt jne perustuvat puolijohteisiin ja niistä rakennettuihin loogisiin porttipiireihin. Näille on omat fysikaaliset ja tekniset teoriansa joiden käsittely tässä on mahdotonta. Perusperiaate kuitenkin on, kuten saatat tietää, transistorin kaltainen, eli jännite komponentin yhdessä osassa laukaisee virran pääsyn yli sen toisen osan. Yhdistelemällä transistoreja ja niiden kaltaisia komponentteja voidaan rakentaa loogisia portteja, eli AND/OR/NOR/XOR -piirejä, joiden läjhtö on tulojen funktio em, logiikalla. Loogisista porteista taas voidaan rakentaa esimerkiksi muistipiirejä, joihin voi kirjoittaa yhden bitin ja niistä lukea sen, tai kiikkuja, jotka tietyllä signaalilla vaihtavat tilansa komplementaariseksi. Niinikään voidaan rakentaa aritmetiikkaa, kuten kaksi binäärilukua yhteenlaskeva summapiiri. Yksinkertaistaen ja periaatteellisella tasolla, mikroprosessori on kompleksinen yhdistelmä näitä logiikkapiirejä koostuen miljardeista transistoreista.

Mitä ohjelmointiin tulee, niin ne käskyt, samoin kuin data jota käskyillä manipuloidaan ovat binäärilukuja koska em. teknisen perustan vuoksi mikroporosessori toimii binääriluvuilla. Käytännössä luvut voi hahmottaa rinnakkaisiksi johtimiksi joissa joko on tietyn kynnyksen ylittävä tai ei ole tätä jännitettä. Näitä kuvataan numeroilla yksi ja nolla. Esim. kahdeksan rinnakkaisen johtimen arvot voidaan esittää: 00001001, mikä vastaa desimaalilukua "10". Sitten on vain sovittu binääriluvut jotka kutakin eri käskyä vastaavat. koska käytännössä ohjelmien kirjoittaminen binäärilukujen mössönä on täysin mahdotonta ihmiselle, on kehitelty korkeamman tason kieliä jotka koneellisesti käännetään tai tulkataan konekieleksi. Matalimmalla tasolla on assembler-kieli, jossa yleensä koko prosessorin käskykanta on muutaman kirjaimen ascii-merkkijonoina ilmaistavissa, numerot voidaan kirjoittaa desimaali- tai heksadesimaalilukuina sekä merkkijonovakioita voidaan kirjoittaa ascii-merkistöllä. Tätä pystyy jo ihminen lukemaan ja tuottamaan, joskkin laajojen ja mutkikkaiden ohjelmien tekeminen on erittäin vaikeaa eli käytännössä mahdotonta. Suorituskykykriittisiä osia jne. erityisiä rutiineja kuitenkin voidaan assemblerilla kirjoittaa edelleenkin. Sulautetuissa laitteissa, mikrokontrollereissa, erilaisissa erikoisprosessoreissa jne. tämä on tavanomaistakin.

Suurin osa ohjelmistoista kuitenkin tuotetaan ns. kolmannen sukupolven ohjelmointikielillä joissa on ihan erityinen selkokielistä muistuttava syntaksinsa sekä mm. erilaisia ohjausrakenteita ja abstraktioita, kuten silmukat, if-then-else -ehdolliset suoritukset, muuttujat, tietotyypit, funktiot, olioabstraktiot, jne. Näitä korkeamman tason kieliä on paljon mutta yleisimmät ohjelmistoteollsiuudessa ja yliopistoissa käytetyt lienevät C, C++, Java, Python, suunnilleen järjestyksessä matalammalta korkeammalle tasolle. C:n opiskelu on oikeastaan liki välttämätöntä jos haluaa ymmärtää tietokoneen ja ohjelmointikielien toiminnan kunnolla - ja ehkä oppia ohjelmoimaankin kunnolla. Mutta aloittaa voi noista muistakin.

Se oli kivaa niin kauan kuin sitä kesti.

http://www.mit.jyu.fi/opetus/Ciao/

Siinä on ohjelmoinnin perusteita ja C kielen erityispiirteitäkin.

Logiikkapiirien harjoitteluun on ohjelmia ja Boolen algebra yms. kuuluu asiaan. Elektroniikkaakin harjoittelee hyvin ohjelmilla ennen savujen päästämistä ekasta kytkennästä joihin saa harjoitus settejä. Syy miksi on hyvä käydä rautatasollakin auttaa pärjäämään laitteiden kanssa ja se on suhteellisen edullistakin. Pintatason osaajia on jo liikaa.

Sivut

Suosituimmat

Uusimmat

Uusimmat

Suosituimmat