Toon posts:

Computeren zonder OS

Pagina: 1
Acties:
  • 365 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Mijn vraag is zou het mogelijk zijn je computer opdrachten te geven zonder dat je een Operating system draait? (dus zonder Windows of Linux o.i.d..)
je zult dan waarschijnlijk iets moeten invoegen in het bootgedeelte van je harde schijf en alles wat de pc moet doen als hexidecimale programmacode invoeren.
maar zou dit in principe mogelijk zijn?

  • simon
  • Registratie: Maart 2002
  • Laatst online: 10-02 22:26
Nee, zonder besturings systeem valt er weinig te besturen. je moet dan zelf een besturings systeem maken.

|>


  • secoh
  • Registratie: Januari 2001
  • Laatst online: 12-02-2025
Verwijderd schreef op maandag 18 april 2005 @ 19:49:
Mijn vraag is zou het mogelijk zijn je computer opdrachten te geven zonder dat je een Operating system draait? (dus zonder Windows of Linux o.i.d..)
je zult dan waarschijnlijk iets moeten invoegen in het bootgedeelte van je harde schijf en alles wat de pc moet doen als hexidecimale programmacode invoeren.
maar zou dit in principe mogelijk zijn?
Als dat je gelukt is heb je een OS gemaakt...

You are standing in an open field west of a white house, with a boarded front door. There is a small mailbox here.


  • Skaah
  • Registratie: Juni 2001
  • Niet online
Ja, maar dan ben je in principe een OS aan het schrijven ;)

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 00:17

The Eagle

I wear my sunglasses at night

Dat stuk gietijzer moet ergens zijn opdrachten van krijgen. Dus tenzij je idd stuk voor stuk je geheugeninstructies en CPU-instructies in wilt kloppen, zul je toch iets moeten hebben dat dat (in batch, want dat ie niks anders dan wat een programma doet )richting computer sturen :)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 11:58

Reptile209

- gers -

Ja, want dat is precies wat een OS doet. Je BIOS laadt de eerste 512 bytesvan schijf en start op een vast punt met de uitvoering daarvan. In theorie zou je dan "alles" moeten kunnen doen via BIOS interrupts, maar in de praktijk past dat no-way in 512 bytes (zoekwoord: bootsector) en wordt er in een aantal stappen veel meer code geladen. Die code (je OS) zorgt voor management van schijven, geheugen, scherm en verdere I/O. En dan kan jij uiteindelijk "je computer opdrachten geven"... mèt OS :)

[ Voor 3% gewijzigd door Reptile209 op 18-04-2005 19:55 ]

Zo scherp als een voetbal!


  • T-mo-T
  • Registratie: Augustus 2004
  • Laatst online: 05-02 21:32
Hoe kan je dan ooit beginnen met het programmeren van een OS op een pc die helemaal leeg is?

Wat was eerder? De PC, of het besturingsysteem? :+

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

T-mo-T schreef op maandag 18 april 2005 @ 19:55:
Hoe kan je dan ooit beginnen met het programmeren van een OS op een pc die helemaal leeg is?
Dat kan dus ook niet. Met alleen een PC uit de winkel kan je geen OS maken :)

Verwijderd

Topicstarter
nou ja een OS schrijven is een groot woord ik zou allang blij zijn als ie 1+1 berekende en dan ook nog een 2 naar mijn grafische kaart stuurde.

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 11:58

Reptile209

- gers -

eamelink schreef op maandag 18 april 2005 @ 19:56:
[...]

Dat kan dus ook niet. Met alleen een PC uit de winkel kan je geen OS maken :)
Ja en nee. Ja, klopt: want op een "lege" PC kan je geen bootsector ontwikkelen. Nee, klopt niet: want als je een opstartflop met eigen bootsector schrijft op een andere PC, kan je er wel stap voor stap dingen mee gaan doen.
De eerste computers (en correct me if I'm wrong) werden volgens bepaalde specificaties gebouwd. Een soort rudimentaire CPU die aan de hand van nieuwe informatie op een ponskaart handelingen (optellen, aftrekken, dat soort dingen) kon. De "programmeur" van die ponskaart weet welke mogelijkheden het ding heeft, en kan daar dus mee programmeren.
Als je vanaf daar langzaam verder werkt, kom je uiteindelijk op de huidige PC's uit.

Zo scherp als een voetbal!


  • terabyte
  • Registratie: September 2001
  • Laatst online: 06-07-2025

terabyte

kan denken als een computer

T-mo-T schreef op maandag 18 april 2005 @ 19:55:
Hoe kan je dan ooit beginnen met het programmeren van een OS op een pc die helemaal leeg is?

Wat was eerder? De PC, of het besturingsysteem? :+
Het besturingssysteem was eerder.

PC's zijn iets van de jaren 80/90, terwijl besturingssystemen als sinds de jaren 60/70 bestaan (misschien wel eerder in de vorm van een Monitor-systeem)

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 11:58

Reptile209

- gers -

Voor de TS en andere geinteresseerden (die wel enige kennis van ASM moeten hebben!):
[rml][ Alg] Hoe werkt een OS en hoe schrijf ik er zelf een?[/rml]
Ook zonder programmeerkennis wordt er een boel info verteld waar je de globale werking mee kunt leren. :)

Edit: tussen de crap nofi staat ook nog wel het een en ander in [rml][ tutorial] how to write your own OS[/rml] (het begint een beetje bij [rml]JayTaph in "[ tutorial] how to write your own OS"[/rml])

[ Voor 21% gewijzigd door Reptile209 op 18-04-2005 20:05 ]

Zo scherp als een voetbal!


  • iets
  • Registratie: Maart 2002
  • Laatst online: 11-02 20:49
Om iets in te kunnen typen zul je echt eerst een tobo driver moeten hebben :P.

tvw


  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 21-05-2025
Het is natuurlijk een beetje een definitie kwestie of dit kan. Memtest86 is een voorbeeld van een programma dat zonder OS draait. Een programma dat niet zoveel met de hardware doet zou je op de manier kunnen draaien. Het is natuurlijk onzin om dat veel meer met hardware doet zonder los OS te draaien want dan ben je inderdaad een soort OS in je programma aan het inbouwen.

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 11:27

AW_Bos

Liefhebber van nostalgie... 🕰️

iets schreef op maandag 18 april 2005 @ 20:06:
Om iets in te kunnen typen zul je echt eerst een tobo driver moeten hebben :P.
Geen driver voor nodig hoor. De PC kent alle aanslagen van het toetsenbord al, omdat die het meteen al kan verwerken.

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 11:58

Reptile209

- gers -

iets schreef op maandag 18 april 2005 @ 20:06:
Om iets in te kunnen typen zul je echt eerst een tobo driver moeten hebben :P.
Je BIOS heeft zijn eigen keyboard-interrupts (int 9 en 16) aan boord die met niet al te extreme tobo's (encrypted bluetooth USB wordt wellicht lastiger, tenzij alsnog via een PS/2 connector) kan omgaan.
Sir Isaac schreef op maandag 18 april 2005 @ 20:09:
Het is natuurlijk een beetje een definitie kwestie of dit kan. Memtest86 is een voorbeeld van een programma dat zonder OS draait. Een programma dat niet zoveel met de hardware doet zou je op de manier kunnen draaien. Het is natuurlijk onzin om dat veel meer met hardware doet zonder los OS te draaien want dan ben je inderdaad een soort OS in je programma aan het inbouwen.
Memtest draait afaik gewoon onder een mini-linux. Je wil namelijk als het even kan niet een compleet basis-OS gaan schrijven. Beter goed gejat... :)

Zo scherp als een voetbal!


  • EvilWhiteDragon
  • Registratie: Februari 2003
  • Laatst online: 27-01 12:34
Sir Isaac schreef op maandag 18 april 2005 @ 20:09:
Het is natuurlijk een beetje een definitie kwestie of dit kan. Memtest86 is een voorbeeld van een programma dat zonder OS draait. Een programma dat niet zoveel met de hardware doet zou je op de manier kunnen draaien. Het is natuurlijk onzin om dat veel meer met hardware doet zonder los OS te draaien want dan ben je inderdaad een soort OS in je programma aan het inbouwen.
volgens mij heb je t fout, het draait op een versie van linux, ook al zie je dat niet. en het bestuurd het system dus het is per definitie een OS

LinkedIn
BlackIntel


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 10-12-2025
Op zich kun je best zonder OS draaien. Memtest86 gebruikt weliswaar een OS (Linux) maar strikt genomen is het niet nodig. Ik heb zelf een klein VMetje gebakken (nee, geen x86 VM of JVM :) ) en om die te testen heb ik in eerste instantie een programma geschreven wat zonder OS draaide. Pas toen ik functies vanuit de ene module in de andere ging kopieren heb ik die gemeenschappelijke modules tot OS gepromoveerd.
(Overigens is een OS een stuk makkelijker te klussen als je VM een putc(char) instructie heeft ;) )

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • Johnny
  • Registratie: December 2001
  • Laatst online: 10:47

Johnny

ondergewaardeerde internetguru

Het ligt er maar net aan wat je onder "Operating System" verstaat, moet het geheugen beheren, applicaties kunnen draaien, of een media player hebben voor je het een OS noemt?

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • FirmPete
  • Registratie: Juli 2001
  • Niet online
Mijn eerste pc had geen harde schijven, alleen twee 5.25" drives. Om te kunnen "OS-en" deed je er een Dos flop in.
Sommige spelletjes draaiden toen niet onder DOS maar dan moest je pc opnieuw opstarten met de spelflop erin. Je zou kunnen zeggen dat zo'n spelletje z'n eigen OS had, da's wat overdreven. Maar alle aansturing van hardware moest wel in het programma zelf zitten. Dus geen DirectX (oeps, NOS) OpenGL om het leven makkelijker te maken.

Firmpete on Aerie Peak


  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 27-01 12:55

Bergen

Spellingscontroleur

Verwijderd schreef op maandag 18 april 2005 @ 19:49:
je zult dan waarschijnlijk iets moeten invoegen in het bootgedeelte van je harde schijf en alles wat de pc moet doen als hexidecimale programmacode invoeren.
Nou, dat voer je niet in als 'hexadecimale programmacode', dat zou nogal een onmenselijk karwei zijn he... ;) Die kleine stukjes die als eerste worden uitgevoerd zijn in assembler geschreven. De compiler maakt daar uitvoerbare code van, dat is de hexadecimale zut die jij bedoelt. Er zijn dus geen mensen (hoop ik) die dat uit hun blote hoofd als hexadecimale lettertjes/cijfertjes intoetsen. Dat zou wel heel erg ziek zijn. Bytecode schrijven is al erg genoeg. ;) (ok, heeft hier weinig mee te maken, maar het is wel leuk! (vinden mensen als ik))

Trouwens, jij noemt het 'hexadecimale code', maar dat is het natuurlijk alleen als je het met een hexviewer bekijkt. Je kunt het ook als decimale getallen bekijken, of voor mijn part als binaire getallen, daar verandert de code niet door.

[ Voor 5% gewijzigd door Bergen op 19-04-2005 04:27 ]


  • Dysmael
  • Registratie: Januari 2002
  • Laatst online: 01-08-2019
Een OS is een programma net als de rest :)

Een computer doet standaard niets

Zonder besturingssysteem ben je toegewezen op de instructieset van de cpu, de voorgebakken 'commando's' van de computer (o.a. bios-instructies: aan te spreken via interrupt 10h), en je 'voorkennis' van geheugen-offsets.

In plaats van een besturingssysteem zou je dus een ander programma kunnen starten zoals een spel.
Je zult het in de praktijk niet snel weer zien aangezien het vrij dom is om onder de standaard mogelijkheden van de computer te gaan programmeren (m.u.v. een OS)

In theorie is het mogelijk om bv. Doom III zo te schrijven dat er geen OS nodig is en in theorie (mits optimaal geprogrammeerd) loopt dat ook veel sneller dan onder een OS.

Nogmaals: Een OS is een programma net als de rest :)

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 11:59

Maasluip

Frontpage Admin

Kabbelend watertje

T-mo-T schreef op maandag 18 april 2005 @ 19:55:
Hoe kan je dan ooit beginnen met het programmeren van een OS op een pc die helemaal leeg is?

Wat was eerder? De PC, of het besturingsysteem? :+
Wat was er eerder, de kip of het ei? Dat is nu evolutie.

En de PC (nou ja, de computer) was er eerder want je hebt niks aan een besturingssysteem zonder computer.

Signatures zijn voor boomers.


  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

offtopic:
[quote]Maasluip schreef op dinsdag 19 april 2005 @ 08:53:
En de PC (nou ja, de computer) was er eerder want je hebt niks aan een besturingssysteem zonder computer.[/quote]
Wel aan een computer zonder besturingssysteem dan? :+

Nu met Land Rover Series 3 en Defender 90


  • Maasluip
  • Registratie: April 2002
  • Laatst online: 11:59

Maasluip

Frontpage Admin

Kabbelend watertje

MTWZZ schreef op dinsdag 19 april 2005 @ 09:07:
offtopic:
[quote]Maasluip schreef op dinsdag 19 april 2005 @ 08:53:
En de PC (nou ja, de computer) was er eerder want je hebt niks aan een besturingssysteem zonder computer.[/quote]
Wel aan een computer zonder besturingssysteem dan? :+
Meer dan andersom ja. En de eerste computers hadden dus geen besturingssysteem. Daar punchte je op het frontpaneel de hex code van de instructies in. Of is dat ook een besturingssysteem?

Signatures zijn voor boomers.


  • zetje01
  • Registratie: Augustus 1999
  • Laatst online: 10:21
Volgens mij bestaan er al meer dan 100 jaar computerprogrammas...

  • froggie
  • Registratie: November 2001
  • Laatst online: 20-11-2024

froggie

Kwaaak

Zoals al eerder gezegt is het inkloppen van hex code onzin. De eerste computers werkten met ponskaarten. Dus zowel je compiler als je programma stonden op ponskaart. Je voerde eerst de compiler in (wat al een werkend programma was) en daarna de ponskaarten waar je programma op stond. De compiler maakte dan van die programma ponskaarten "cpu" instructies waarna je je programma kon uitvoeren.
En als je mzzl had kon je je compiler ook ponskaarten laten genereren zodat je het programma (als het werkte) weer op ponskaarten kon laten zetten zodat je het niet iedere keer opnieuw hoefde te compilen.

Dit idee kun je ook voor een normale pc gebruiken. Maar de computers toen hadden zulke simpele hardware (in vergelijking met nu) dat het "met de hand" aansturen van bijv een videokaart al monikken werk geworden is. Serieuze software schrijven zonder OS is dus denk ik niet sneller dan normale software en een goed OS omdat je zoveel extra routines in je programma moet stoppen voordat het werkt dat je wanneer je klaar bent je een half OS geschreven hebt.

Als je serieus lowlevel wil spelen dan kun je mijns inziens beter een TI rekenmachine of een microcontroller pakken en die gaan programmeren in assembly. Deze zijn een stuk eenvoudiger terwijl je wel met dingen als interrupts en geheugen beheer kunt spelen.
Een andere mogelijkheid is de Linux kernel erbij pakken en daar eens mee spelen. Zeker als je een oude versie pakt (< 2.0) is het allemaal nog redelijk te begrijpen. Ik zou er dan wel een goed boek bijpakken om jezelf de basis principes van operating systems bij te brengen. Een aanrader vind ik "Operating Systems Internals and Design Principles" van William Stallings. Alle facetten worden in die boek uitgebreid en overzichtelijk besproken.

[ Voor 32% gewijzigd door froggie op 19-04-2005 09:42 . Reden: Laatste alinea toegevoegd ]


Verwijderd

Topicstarter
allemaal erg bedankt voor jullie uitleg er is mij nu veel duidelijk en ik heb een beetje asm geleerd.
maar ik heb nog een paar vraagjes:

1:) bios interupt 16 wacht todat je een toets indrukt en zet die waarde in AL.
maar welke waarden zijn dat precies voor welke toetsen.
op internet staan wel een paar lijstjes maar nasm zecht dat die waarden te lang zijn en later draait het progie ook niet goed.
dus de vraag luit: weet iemand mischien de perfecte waarden die interupt 16 output?

2:) via bios interupts zijn de hoogst resoluties die je kunt krijgen 200 x 320 in 265 kleuren of 640 x 400 in 16 kleuren, daar word je niet echt blij van.
de bootloader die ik gebruik (grub) kan menutjes met hogere resoluties tonen.
ook linux en windows enz. draaien op hogere resoluties.
hou doe je dat.
waarscheinlijk iets met direct naar je videoplank sturen van signalen.
maar houde je zoiets precies?

  • SvMp
  • Registratie: September 2000
  • Niet online
Verwijderd schreef op maandag 02 mei 2005 @ 20:35:
een paar weken geleden opende ik deel 1 van deze topic. (op hetzelfde forum moet nog teug te vinden zijn)
allemaal erg bedankt voor jullie uitleg er is mij nu veel duidelijk en ik heb een beetje asm geleerd.
maar ik heb nog een paar vraagjes:


1:) bios interupt 16 wacht todat je een toets indrukt en zet die waarde in AL.
maar welke waarden zijn dat precies voor welke toetsen.
op internet staan wel een paar lijstjes maar nasm zecht dat die waarden te lang zijn en later draait het progie ook niet goed.
dus de vraag luit: weet iemand mischien de perfecte waarden die interupt 16 output?
Als NASM meldingen geeft, is je ASM code verkeerd. Post het stukje code eens waar het om gaat.
Interrupt 16 zet de waarde niet alleen in AL, maar in AX. Je moet AX vergelijken met bepaalde waardes die corresponderen met toetsen (zie Ralph Browns interrupt lijst, http://www-2.cs.cmu.edu/~ralf/files.html )

Achter die waardes komen is niet zo moeilijk.. schrijf een progje dat waardes leest mbt. int 16h en op het scherm zet. Kan zelfs in een bootsector, gemakkelijkst is echter een COM-file onder DOS.
2:) via bios interupts zijn de hoogst resoluties die je kunt krijgen 200 x 320 in 265 kleuren of 640 x 400 in 16 kleuren, daar word je niet echt blij van.
de bootloader die ik gebruik (grub) kan menutjes met hogere resoluties tonen.
ook linux en windows enz. draaien op hogere resoluties.
hou doe je dat.
waarscheinlijk iets met direct naar je videoplank sturen van signalen.
maar houde je zoiets precies?
Zie wederom Ralph Browns interrupt list. Je kunt VESA-funties gebruiken. Elke moderne videokaart ondersteunt deze. Check de functies van interrupt 10h vanaf AX=4F00h.

Je kunt pixels naar videogeheugensegment A000h schrijven. De buffers van hogere resoluties zijn te groot voor dat segment, maar er is een functie waarmee je een deel van het videogeheugen kunt mappen in A000h (functie AX=4F05h).

Onder protected mode werkt interrupt 10h niet meer zoals je wellicht weet, moderne VESA-versies hebben echter een protected-mode interface voor de belangrijkste functies (zie AX=4F0Ah). Je zult echter merken dat de video-output niet snel is (dat kun je al zien als je Linux of BeOS met de VESA-driver draait). Echt optimaal krijg je het pas als je rechtstreeks een videokaart aanspreekt, maar dat betekent dat je drivers moet schrijven voor elke videokaart. Videohardware aansturen is niet eenvoudig. VESA biedt gemakkelijk toegankelijke functies die ruim voldoende bieden voor een opstartscherm of setup-interface.

Verwijderd

Topicstarter
Achter die waardes komen is niet zo moeilijk.. schrijf een progje dat waardes leest mbt. int 16h en op het scherm zet. Kan zelfs in een bootsector, gemakkelijkst is echter een COM-file onder DOS.
oke dan bedankt
maar hoe laat je die waaren zien in je bootsector.
(ik ben niet zoon ster met .com files :? )

Verwijderd

je kan lekker bios-en

  • joopv
  • Registratie: Juli 2003
  • Niet online
Verwijderd schreef op maandag 18 april 2005 @ 19:49:
Mijn vraag is zou het mogelijk zijn je computer opdrachten te geven zonder dat je een Operating system draait? (dus zonder Windows of Linux o.i.d..)
je zult dan waarschijnlijk iets moeten invoegen in het bootgedeelte van je harde schijf en alles wat de pc moet doen als hexidecimale programmacode invoeren.
maar zou dit in principe mogelijk zijn?
Je zou een klein programma in het BIOS van je mainboard kunnen plaatsen. Meestal is er nog plaats genoeg in die flash prom's.

  • joopv
  • Registratie: Juli 2003
  • Niet online
Maasluip schreef op dinsdag 19 april 2005 @ 09:09:
[...]
Meer dan andersom ja. En de eerste computers hadden dus geen besturingssysteem. Daar punchte je op het frontpaneel de hex code van de instructies in. Of is dat ook een besturingssysteem?
Ik heb eens met een Philips P800 systeem gewerkt. Dat was een 19" rek van 2 meter hoog, en er zat een frontpaneel op met 16 schakelaars en enkele drukknoppen.

Je moest de bootloader met de hand intoggelen: de 16 schakelaars in een bepaalde stand zetten, en dan een knopje indrukken. En dat enkele tientallen malen herhalen.

Vervolgens moest je een "run" schakelaar omzetten, en dan wist ie genoeg om een papertape reader aan te sturen, en vandaaruit kon hij weer de serieele terminal en de 5MB harddisk aansturen.

Die eerste stappen worden nu gedaan door de BIOS op je mainboard, maar verder is er niet veel veranderd. Zonder het BIOS wat al op je mainboard zit zal je pc nooit op kunnen starten, want hij moet tenslotte zijn allereerste instructies ergens vandaan krijgen.

Een mainboard zelf heeft dus zijn eigen Basis Operating System al aan boord. In principe zou je kleine programma's al in dat BIOS kunnen plaatsen, en dat werkt dan onmiddelijk als je je mainboard van spanning voorziet, zonder dat je een floppy of HD nodig hebt.

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

joopv schreef op maandag 02 mei 2005 @ 21:33:
Je zou een klein programma in het BIOS van je mainboard kunnen plaatsen. Meestal is er nog plaats genoeg in die flash prom's.
Ehmm, dit lijkt me niet zo verstandig, omdat kleine foutjes grote gevolgen kunnen hebben?

Wie trösten wir uns, die Mörder aller Mörder?


  • HStyles
  • Registratie: Juni 2004
  • Laatst online: 23-04-2025
RolfLobker schreef op dinsdag 19 april 2005 @ 06:29:
Een OS is een programma net als de rest :)

Een computer doet standaard niets

Zonder besturingssysteem ben je toegewezen op de instructieset van de cpu, de voorgebakken 'commando's' van de computer (o.a. bios-instructies: aan te spreken via interrupt 10h), en je 'voorkennis' van geheugen-offsets.

In plaats van een besturingssysteem zou je dus een ander programma kunnen starten zoals een spel.
Je zult het in de praktijk niet snel weer zien aangezien het vrij dom is om onder de standaard mogelijkheden van de computer te gaan programmeren (m.u.v. een OS)

In theorie is het mogelijk om bv. Doom III zo te schrijven dat er geen OS nodig is en in theorie (mits optimaal geprogrammeerd) loopt dat ook veel sneller dan onder een OS.

Nogmaals: Een OS is een programma net als de rest :)
Is Windows voor spellen niet gwoon een emulator? :P doom3 zou zelfs op een 400mhz geval vlot kunnen draaien als het direct zonder OS draaide B) 8)7

  • SvMp
  • Registratie: September 2000
  • Niet online
Verwijderd schreef op maandag 02 mei 2005 @ 21:00:
[...]


oke dan bedankt
maar hoe laat je die waaren zien in je bootsector.
(ik ben niet zoon ster met .com files :? )
Interrupt 10h bevat diverse funcites om tekens naar het scherm te sturen.
Deze is het meest handig: http://www.ctyme.com/intr/rb-0106.htm

In videosegment b000h of b800h (afhankelijk van mono of kleur) schrijven kan ook, maar da's lastiger.

Nummertjes neerzetten gaat niet zomaar, die moet je eerst ontleden in losse ASCII-tekens. AX is een 16-bit getal, maximaal 5 decimale cijfers. Als je een cijfertje hebt moet je dat omzetten naar een ASCII-char (door er '0' (48) bij op te tellen) en dan naar het scherm.

Zo iets:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
nieuwe_toets:

xor ax,ax
int 16h

xor dx,dx
mov bx,10000
div bx

add al,'0'
mov ah,0eh
mov bx,7
int 10h

mov ax,dx
xor dx,dx
mov bx,1000
div bx

add al,'0'
mov ah,0eh
mov bx,7
int 10h

mov ax,dx
mov bl,100
div bl

add al,'0'
mov ah,0eh
mov bx,7
int 10h

mov dh,0
mov ax,dx
mov bl,10
div bl

add al,'0'
mov ah,0eh
mov bx,7
int 10h

mov al,dl

add al,'0'
mov ah,0eh
mov bx,7
int 10h

mov ax,0e0dh
mov bx,7
int 10h

jmp nieuwe_toets


Ik weet niet of het werkt (testen is nogal wat werk, dit is ff snel uit m'n hoofd), maar hier moet je aan denken.

Mocht een getal uit een register op het scherm zetten in ASM een probleem zijn, dan zou ik als ik jou was eerst maar eens wat meer ASM onder DOS oefenen voordat je verder gaat met OS-loze code. Kenmerk van assemly is dat je alles zelf moet doen en dat is zeker het geval als er geen OS is waarbij je bijvoorbeeld ook het benaderen van filesystems en geheugenbeheer zelf moet doen.

[ Voor 10% gewijzigd door SvMp op 03-05-2005 01:39 ]


Verwijderd

Probeer Linux From Scratch 6 is, leuk project }:O
Een pc zonder OS is een vis zonder water O-)

  • Roel
  • Registratie: Februari 2000
  • Laatst online: 31-01 21:32

Roel

screen -x addict

joopv schreef op maandag 02 mei 2005 @ 21:33:
[...]

Je zou een klein programma in het BIOS van je mainboard kunnen plaatsen. Meestal is er nog plaats genoeg in die flash prom's.
En dat bestaat en heet Linux Bios :)
zetje01 schreef op dinsdag 19 april 2005 @ 09:24:
Volgens mij bestaan er al meer dan 100 jaar computerprogrammas...
_/-\o_ Tijd voor een kleine cursus 'De geschiedenis van de computer"? :D
Of je moet een abacus natuurlijk ook als een computer zien.. :)

[ Voor 35% gewijzigd door Roel op 03-05-2005 11:21 ]

Resistance is futile (If < 1 Ohm)


  • wzzrd
  • Registratie: Februari 2000
  • Laatst online: 08-02 16:57

wzzrd

The guy with the Red Hat

IIRC is Linux begin jaren '90 begonnen als bootable terminal emulator. Da's min of meer wat de TS bedoelt, en wat hij wil doen denk ik. De vraag is of zo'n programma al geen kenmerken van een OS heeft, en natuurlijk: wat is een OS precies? Definiëer 'besturingssysteem'. Als je dat weet, kun je beredeneren of dat noodzakelijk is om een computer te booten en zo.

Verwijderd

Een os is niet nodig perse, iedere software of game fabrikant zou natuurlijk zijn eigen write() en read() dingen gaan kunnen schrijven, zijn eigen memory management funcites etc..etc.

Dit zou natuurlijk absurt zijn om te doen want de werking van het systeem ligt vast, als je ook kijkt naar verschillende os-en het internet doen ze het allemaal ook niet zo heel erg gek anders dan de ander. Dit kan ook niet omdat de werking van de hardware zelf _vast_ ligt. Je kan maar op 1 (meest slimme manier) een toets aanslag lezen etc..

Dan komen er nog iets wat andere dingen om de hoek kijken zoals mem managment, hierin zijn verschillende oplossingen mogelijk, er zal altijd maar 1 methode zijn die voor een bepaalde taak het beste is, trade off, beetje van dit iets minder van dat etc..

Een andere manier is natuurlijk gewoon PURE hardware, i.e een doom3 chip ofzo - dit gaat nog wel komen in de verre toekomst (zo ver is het niet btw, altera enzo zijn al een eind op weg)

  • Valium
  • Registratie: Oktober 1999
  • Laatst online: 10-02 19:40

Valium

- rustig maar -

Verwijderd schreef op dinsdag 03 mei 2005 @ 14:09:
Een os is niet nodig perse, iedere software of game fabrikant zou natuurlijk zijn eigen write() en read() dingen gaan kunnen schrijven, zijn eigen memory management funcites etc..etc.

Dit zou natuurlijk absurt zijn om te doen want de werking van het systeem ligt vast, als je ook kijkt naar verschillende os-en het internet doen ze het allemaal ook niet zo heel erg gek anders dan de ander. Dit kan ook niet omdat de werking van de hardware zelf _vast_ ligt. Je kan maar op 1 (meest slimme manier) een toets aanslag lezen etc..

Dan komen er nog iets wat andere dingen om de hoek kijken zoals mem managment, hierin zijn verschillende oplossingen mogelijk, er zal altijd maar 1 methode zijn die voor een bepaalde taak het beste is, trade off, beetje van dit iets minder van dat etc..
Daar heb je gelijk in, maar een spelletje heeft niet zulke hoge eisen qua omgeving. 90% van een OS is onnodig (zoals multitasking, memory-management).Als je een spelletje direct voor de hardware kan schrijven, is dat spelletje veel efficienter en krachtiger. Je zag het vroeger (XT-tijd) nog wel veel. Dan moest je je computer opstarten met de floppy van het spelletje erin. Wat een OS van tegenwoordig doet, is ook een stukje hardware-abstractie. je hoeft je savegame niet naar een bepaalde sector op een SCSI-schijf weg te zetten, maar je kunt gewoon tegen het OS zeggen dat je ergens op je "HD, wat dat dan ook mag zijn" een bestandje neer wilt kwakken.
Een andere manier is natuurlijk gewoon PURE hardware, i.e een doom3 chip ofzo - dit gaat nog wel komen in de verre toekomst (zo ver is het niet btw, altera enzo zijn al een eind op weg)
Nou, pure hardware is niet helemaal waar natuurlijk. Dat is veel te duur. Je moet het meer zien als dedicated hardware a la spelcomputer, en dan met ingebouwde flashdrive. Programmable logic zit half tussen hardware en software in.

  • Resistor
  • Registratie: April 2001
  • Niet online

Resistor

Niet meggeren!

Ga je eens verdiepen in de wereld van de Microcontrollers: simpele chips die meestal maar 1 taak uit kunnen voeren, zoals het bewaken van temperaturen (en bijsturen als de temperatuur verkeerd is)

Een computer kan je die zelfde taak laten doen: programmeer hem zo dat hij maar 1 ding kan, en het enige wat je in het geval van de temperatuurregeling is de gewenste temperatuur instellen :)
uC, 3 knopjes (omhoog, omlaag, taakwissel tussen wenswaarde en meetwaarde), sensortje, en that's it.
Ik noem 2 knopjes en een paar 7-segment displaytjes niet echt een computer, maar het komt wel in de buurt.

Een computer kan meerdere taken, dus er is een interface nodig om het door de gebruiker aan te sturen: een Operating System.

-edit-

En wat zijn de oude gameconsoles dan? (de voorlopers van de Xbox en de PS2)
Die hebben ook niet echt een dedicated OS.

[ Voor 9% gewijzigd door Resistor op 04-05-2005 14:54 ]

What will end humanity? Artificial intelligence or natural stupidity?


  • Valium
  • Registratie: Oktober 1999
  • Laatst online: 10-02 19:40

Valium

- rustig maar -

Resistor schreef op woensdag 04 mei 2005 @ 14:53:
Ga je eens verdiepen in de wereld van de Microcontrollers: simpele chips die meestal maar 1 taak uit kunnen voeren, zoals het bewaken van temperaturen (en bijsturen als de temperatuur verkeerd is)

Een computer kan je die zelfde taak laten doen: programmeer hem zo dat hij maar 1 ding kan, en het enige wat je in het geval van de temperatuurregeling is de gewenste temperatuur instellen :)
uC, 3 knopjes (omhoog, omlaag, taakwissel tussen wenswaarde en meetwaarde), sensortje, en that's it.
Ik noem 2 knopjes en een paar 7-segment displaytjes niet echt een computer, maar het komt wel in de buurt.

Een computer kan meerdere taken, dus er is een interface nodig om het door de gebruiker aan te sturen: een Operating System.
Het punt wat ik probeerde te maken (in de reactie op de post van Gila) is dat het niet gaat om pure hardware. Ook je microcontroller draait een programma, software dus. Het aanwezig of afwezig zijn van een tussenliggende softwarelaag (het OS) doet daar niets aan af. Je BIOS is bijvoorbeeld ook software. Daar zit ook geen OS tussen. Maar het is geen pure hardware.
-edit-

En wat zijn de oude gameconsoles dan? (de voorlopers van de Xbox en de PS2)
Die hebben ook niet echt een dedicated OS.
Die ouwe gameconsoles met cartridges bedoelde ik. Dat zijn eigenlijk veredelde flashdrives. En nee, die computers hebben geen OS, maar dat is niet het punt. Het punt is dat het spelletje zelf wel software is. Het is geschreven. Hardware wordt ontworpen. De hardware heeft zijn functie, en klaar. Jouw voorbeeld van het meten van een temperatuur is ook geen pure hardware. Er draait geen OS op, maar je kunt diezelfde microcontroller ook gebruiken om een helikopter te besturen, door andere software erop te laten draaien. Er zijn ook genoeg microcontrollers die wel een OS kunnen draaien (zoals GNU/Linux). Zoals je zelf al zegt, een computer kan meerdere taken. Een microcontroller is dus een computer.

Maargoed, het was slechts een zijsprong in een discussie over software zonder OS. En dat wat Gila aanhaalde valt daar zeker WEL onder.

Verwijderd

Valium schreef op woensdag 04 mei 2005 @ 15:33:
[...]

Het punt wat ik probeerde te maken (in de reactie op de post van Gila) is dat het niet gaat om pure hardware. Ook je microcontroller draait een programma, software dus. Het aanwezig of afwezig zijn van een tussenliggende softwarelaag (het OS) doet daar niets aan af. Je BIOS is bijvoorbeeld ook software. Daar zit ook geen OS tussen. Maar het is geen pure hardware.
Euh, ik bedoel dus PURE hardware en ja dat kan. Hoe kom je het op het idee dat het met software moet? Dat is al lang niet meer zo. Zelfs zonder firmware, wat jij bedoelt denk ik.
[...]

Maargoed, het was slechts een zijsprong in een discussie over software zonder OS. En dat wat Gila aanhaalde valt daar zeker WEL onder.
Niet dus :) Zal er niet te lang op ingaan, maar het is mogelijk vrij eenvoudig om compleet met hardware dingen te laten doen waar voor we nu een complete cd aan software gebruiken.

Ik heb wel eens met vrienden gesproken en zei ik van "software verdwijnt over een paar jaar" En dan bedoel ik dus software in de zin van os met applicatie. Slechts een applicatie in hardware vorm blijft over.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 11-02 15:35

Creepy

Tactical Espionage Splatterer

Het enige wat je doet is de "software" naar een andere laag verplaatsen, maar het blijft software. Dus ik denk niet dat software ooit zal verdwijnen. Of de software dan een OS is of niet is een heel ander verhaal ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Resistor
  • Registratie: April 2001
  • Niet online

Resistor

Niet meggeren!

Voor mij is een OS de interface met mensen.

Dan haal ik wel wat van mijn uC code af en zet de temperatuur 'hard' in het programma wat hij moet draaien, geen OS waarmee de gewenste temperatuur in te stellen is en geen display meer om te zien waar hij mee bezig is ;)

What will end humanity? Artificial intelligence or natural stupidity?

Pagina: 1