Permalänk
Medlem

Hur fungerar mjukvara?

Hej begåvade sweclockare!

Nu är det så här att jag ska böra läsa Datavetenskap på SU (där programmering ingår) pga ett stort intresse i datorer som skapades när jag skulle bygga min första dator. Innan detta har jag varit en sån här "hjärndöd" person som bara använder datorn för att spela och hade inte en aning om vad ett RAM-minne gjorde/var. Min farsa byggde sina datorer själv när han var yngre och har en bred baskunskap inom hårdvara, för att fatta mig kort sa han: "Om du läser på och förklara för mig hur komponenterna fungerar, och förklarar varför denna produkt är bättre än den andra så betalar jag datorn åt dig". När jag började läsa på så slog "gnistan så lågan" då mitt intresse tändes.

Men! Nu när jag fått baskunskaper inom hårdvaran så märker jag hur mycket svårare det är att hitta information och få baskunskaper inom mjukvara (då jag inte läst något tekniskt innan). Vad jag då ber om är något liknande i den här stilen
http://www.sweclockers.com/forum/2-kylning-och-overklockning-...
då det förklaras riktigt bra om hårdvara fast för mjukvara. (Jag vet att ni riktigt kunniga säkert får er ett gott skratt utav denna tråd )

Hoppas någon utav er riktigt begåvade skulle kunna offra en del av eran tid för att hjälpa och underlätta för mig och andra! Tack på förhand

Visa signatur

// En dator // Tillbehör till datorn// En Telefon//

Permalänk
Rekordmedlem

Det var nog årets fråga svaret blir jättelikt och enormt mycket större än en enkel överklocknigisguide om det ska vara heltäckande.

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.

Permalänk
Medlem

Jag kan inte skriva en sådan guide själv då jag är i i princip samma stadie som du är, men jag kan länka dig till denna guide hos Stanford University. Den är lite gammal, men grunden är fortfarande densamma.

Visa signatur

Chromebook Pixel 2015 w/ Arch
Taggad inför frame.work!

Permalänk
Medlem
Skrivet av mrqaffe:

Det var nog årets fråga svaret blir jättelikt och enormt mycket större än en enkel överklocknigisguide om det ska vara heltäckande.

Haha okej, ja.. jag har nog inte ens förstått vad som ingår i "mjukvara" men lite grundläggande här och där var nog det jag var ute efter. All hjälp är uppskattad

Skrivet av buchno:

Jag kan inte skriva en sådan guide själv då jag är i i princip samma stadie som du är, men jag kan länka dig till denna guide hos Stanford University. Den är lite gammal, men grunden är fortfarande densamma.

Tack så mycket!

Visa signatur

// En dator // Tillbehör till datorn// En Telefon//

Permalänk
Medlem
Skrivet av Elgreco1:

lite grundläggande här och där var nog det jag var ute efter.

här är det mest grundläggande, allt efter det är vidareutveckling av en princip.

Visa signatur

Operativsystemet som löser nästan alla problem: Mint

Permalänk
Medlem

Lär dig programmera! Då lär du dig vad mjukvara är.

Permalänk

I grund och botten så bygger all mjukvara på logiska operationer som utförs utav CPUn. Mjukvara är kod som oftast skrivs i ett språk som är läsbart utav människor (Java, C, m.m.), som sedan kompileras om till maskinkod, en så kallad exekverbar fil (*.exe) för att kunna köras utav CPUn. Mjukvara är något som byggs på med tiden, där de allra simplaste funktionerna går utmärkt att använda än idag, men det är väldigt mycket som kapslas in i mer och mer avancerade funktioner som gör att du kan göra mer och skriva mindre. I grund och botten så har du ett start program som du bygger allt mer avancerat tills du fått ett fullt program. Man skriva om detta i timmar. Men detta var mitt bidrag!

Permalänk
Hedersmedlem

Man kan också tra liknelsen med program och bakning.
Ett program innehåller dels instruktioner på väldigt grundläggande nivå ("Addera denna variabel med den där variabeln"). Man har också data angivet, dels tal och kanske pekare till andra resurser. Det kan man se som ingridienserna.

Meningen med ett program är att uppfylla ett syfte, att åstadkomma något, när det exekveras. Likaså eftersträvar du att göra en kaka när du bakar, det finns ett fördefinierat mål.
Vägen dit kan vara att några ingridenser har blandats i en bunke, likt tillfälliga variabler har skapats. De har ingen nytta i slutresultatet men är ett måste på vägen dit.

Ska du ta och lära dig riktigt om hårdvara och upp mot var mjukvara tar vid (OS:et med virtuellt minne etc.) så rekommenderar jag Structured Computer Organization. Ofta kurslitteratur på kurser inom digitalteknik och datorarkitektur.
http://www.mypearsonstore.com/bookstore/product.asp?isbn=0132...
6:e upplagan verkar vara på väg ut i handeln nu. Sök runt på bibliotek så kanske du hittar en äldre som du kan läsa lite i först. Den är inte någon simpel guide utan det krävs en del tänkande för att förstå allt det här.

Visa signatur

Forumregler | Feedbackforumet | Något som behöver modereras? Tryck på Anmäl inlägget och ge en anledning, någon moderator kommer granska inlägget och göra (egen) bedömning
"Fate. Protects fools, little children and ships named Enterprise." - Riker - ST:TNG

Permalänk
Medlem

Tack så mycket allihopa!

Visa signatur

// En dator // Tillbehör till datorn// En Telefon//

Permalänk
Skrivet av Elgreco1:

Hej begåvade sweclockare!

Nu är det så här att jag ska böra läsa Datavetenskap på SU (där programmering ingår) pga ett stort intresse i datorer som skapades när jag skulle bygga min första dator. Innan detta har jag varit en sån här "hjärndöd" person som bara använder datorn för att spela och hade inte en aning om vad ett RAM-minne gjorde/var. Min farsa byggde sina datorer själv när han var yngre och har en bred baskunskap inom hårdvara, för att fatta mig kort sa han: "Om du läser på och förklara för mig hur komponenterna fungerar, och förklarar varför denna produkt är bättre än den andra så betalar jag datorn åt dig". När jag började läsa på så slog "gnistan så lågan" då mitt intresse tändes.

Men! Nu när jag fått baskunskaper inom hårdvaran så märker jag hur mycket svårare det är att hitta information och få baskunskaper inom mjukvara (då jag inte läst något tekniskt innan). Vad jag då ber om är något liknande i den här stilen
http://www.sweclockers.com/forum/2-kylning-och-overklockning-...
då det förklaras riktigt bra om hårdvara fast för mjukvara. (Jag vet att ni riktigt kunniga säkert får er ett gott skratt utav denna tråd )

Hoppas någon utav er riktigt begåvade skulle kunna offra en del av eran tid för att hjälpa och underlätta för mig och andra! Tack på förhand

Finns ju några bra böcker på ämnet om mjukvara (software):

http://www.adlibris.com/se/searchresult.aspx?search=quickfirs...

Blev ju iofs 5000 träffar :), du kan ju istället skaffa dig en bok om exempelvis c#, java eller python beroende på vad du tycker verkar häftigast:

http://www.adlibris.com/se/searchresult.aspx?search=quickfirs...
http://www.adlibris.com/se/searchresult.aspx?search=quickfirs...
http://www.adlibris.com/se/searchresult.aspx?search=quickfirs...

Lycka till!

Visa signatur

CPU: AMD FX-8350 @ 4.7GHz | RAM: 32GB Vengeance @1600MHz | GPU: Asus HD7970 DCII Top @ 1.0/5.6 GHz | ASRock 990FX Fatal1ty | PSU: Newton R3 800W Platinum | HD: 128 GB Plextor M3 Pro, 300 GB WD Green | triple-boot: Win7-64,WinXP-32,debian-64

Permalänk

Något som är ganska sjukt när man tänker på det så utförs en instruktion varje tick, dvs en 3 GHz CPU utför 3 miljader instruktioner per sekund!!! Dessa instruktioner är odelbara och väldigt simpla, men många tillsammans kan bli något användbart. Problemet man står inför idag och har gjort ett tag är att öka frekvensen på CPUn, men det finns fysiska barriärer ivägen för det så man kör fler CPU kärnor på samma chip, men ett problem är att det programmet man kör måste gå att dela upp i flera delar (trådar, processer). Till vardags så avänder de flesta sina monster datorer till att spela, men spel går normalt inte att bryta upp i så jätte många trådar, så längre fram (om vi inte ser något grymt framsteg) att få problem med för långsamma CPU:er för att ha samma takt på utvecklingen.

Permalänk
Medlem

Det får du veta i kurserna när du läser som software engineering, operativsystem, programmeringskurser låg/hög.

Permalänk
Medlem

Mjukvara är som ett recept som beskriver för hårdvaran vad den ska göra. Som när man bakar bröd så beskriver receptet steg för steg vad som ska göras tills brödet är färdigt. När man kör ett datorprogram så beskriver det också steg för steg vad som ska göras. Är det fel i receptet så kan slutresultatet bli konstigt...

När jag läste datorteknik på 1980-talet fick vi först lära oss principer för hur en processor fungerar. Vad register och beräkningsenheter gör och så vidare. Sedan fick vi göra mikrokod för hand innan vi lärde oss att man kunde använda assemblerkod istället för att skriva mikrokod och så småningom fick man lära sig om högnivåspråk som kunde kompileras och så vidare. Jag kommer inte ihåg mycket av detta idag och det är troligen inte särskilt relevant heller. Men det gav ju en idé om hur programvara fungerar. Vi byggde uppkopplingar med mikroprocessor, RAM-minnen och diverse annat. Det hela låg på ganska hårdvarunära nivå för det var en dator- och elektronikutbildning jag gick.

Men en vanlig dator kör ju på ett operativsystem. Operativsystemet kan man se som en plattform för programvaror att arbeta i (samt ett gränssnitt för användaren) och det är som ett lager mellan hårdvaran, användaren och programvaran. När man vill läsa innehållet i en fil kan man alltså anropa en inbyggd funktion i operativsystemet för detta och behöver inte bry sig om att själv skriva programvaran som kommunicerar med hårddiskkontrollern för det har någon annan redan gjort.

Egentligen behöver man inte veta hur programvaran fungerar i detalj för att kunna programmera. Med det menar jag att det är nog inte särskilt många som har koll på alla led från ett anrop av en funktion hela vägen ner till drivrutinen som skickar kommandon till någon styrkrets. Allting delas upp i olika nivåer och de flesta nöjer sig att jobba på en högre nivå. Men visst är man en tillverkare av någon särskild hårdvara så har man säkert intresse av att skriva drivrutiner för diverse olika operativsystem för att kunna sälja sin produkt som en datorkomponent.

Förutom det där så är det en hel vetenskap det där med hur man bygger upp programvara. Det finns kända algoritmer för att lösa kända typer av problem och så vidare. Själv är jag ganska usel på programmering men jag tycker ämnet ändå är intressant.

Permalänk
Medlem

Oj det du frågar efter är verkligen en hel vetenskap. Misstänker att du kommer gilla att läsa datorarkitektur eller liknande kurser.

Kan försöka att förklara så gott jag förstår och orkar men jag kommer säkert misslyckas med definiering och förväxla semantik.

Programvara är i grund och botten inget annat än en uppsättning instruktioner som beskriver en logisk process som "processorn" kan tolka.

En processor har ett antal inbyggda instruktioner som den kan utföra t.ex. addition. Varje instruktion representeras av ett bitmönster (kan vara en eller flera bytes).

Kod som är skriven på det sättet (dvs med ettor och nollor) kallas för maskinkod. Tyvärr är det inte speciellt lätt för oss människor att läsa och förstå maskinkod så man utvecklade programspråk för att underlätta processen. Först (såvitt jag vet) var assembler som egentligen bara gav namn till instruktionerna. Assembler kod kan därför direkt/enkelt konverteras till maskinkod.

Moderna programspråk är mycket mer lättbegripliga och döljer mycket av komplexiteten med lågnivåspråk.
Koden kan inte tolkas direkt av processorn utan måste översättas till maskinkod. Till detta använder man ett datorprogram som kallas för kompilator.

Visa signatur

| Ryzen 5800x | Asus prime x470 pro | Sapphire 9070xt pulse| Gskill 32gb 3,6ghz | aw3225qf |