Het OS avontuur - en wat nu?

Door Martindo op vrijdag 16 mei 2014 18:17 - Reacties (4)
Categorie: OS Development, Views: 3.847

Zo. De kernel draait, ik kan de kleuren van de voorgrond en achtergrond instellen, tekst doorvoeren naar het scherm. Helaas houd het daar alweer mee op. Hiet is niet veel en vooral niet functioneel. Dus dan is het een goed plan om uit te denken wat ik wil gaan doen en wat ik wil gaan bouwen.

Het eerste in de waslijst aan functionaliteiten die ik moet gaan toevoegen om het een beetje functioneel te krijgen, is het kunnen verwerken van invoer van een toetsenbord. Helaas is dat niet gewoon een Console.ReadLine(); maar wordt er toch iets meer verwacht.

Het verkrijgen van onderbrekingen van randapparatuur worden interrupts genoemd. Ik kan ze leuk en aardig gaan negeren, maar wanneer ik toch echt een functioneel OS wil maken dan zal ik toch echt wat met de interrupts moeten gaan doen.

Het afvangen en verwerken van interrupts wordt gedaan door een Interrupt Service Routine, ISR afgekort. De isr vangt een interrupt af en haalt er de benodige data uit, dit is de scan code. Deze scancode kan ik vervolgens gebruiken om te kijken welke toets er ingedrukt is. Ik kan natuurlijk een enorme waslijst aan condities gaan maken waarbij via een iteratie elke letter test, maar dat kost te veel tijd.

Wat er gebeurt, is dat er een soort array - een bitmap - wordt gemaakt waarin de scancodes worden opgeslagen. Aan de key, de scancode, wordt een waarde gehangen wat de juiste letter, teken of ander doel symboliseert. Wanneer ik dus wil weten welke letter is ingedrukt, hoef ik alleen maar de bitmap als een array te gebruiken. Dit is natuurlijk een stuk makkelijker dan een waslijst aan condities.

Hiermee kun je dus een CLI gaan bouwen. De input weergeef je ook op het scherm en tegelijkertijd onthou je deze waarden waarmee je vervolgens een conditiecluster kunt gebruiken om te kijken welk commando is ingevoerd.

Het hebben van een CLI is een grote stap naar een functioneel OS. Om het er nog eens mooi uit te laten zien, wil ik er een opgepimpte DOS van maken waarin ik de eerste regel als een soort 'taskbar' ga gebruiken waar je een naam van een applicatie, de tijd en eventueel andere dingen in kwijt kunt. Maar voordat ik daaraan kan beginnen, zal ik eerst gaan kijken naar een geheugenmanager.

Dit wordt een complex deel van het OS maar dat is wel belangrijk voor mogelijk latere applicaties binnen het OS waarin ik het geheugen nodig heb. Daarnaast moet ik de keuze tussen real en protected mode nog gaan maken, maar daar heeft de protected mode het overwicht.

Het OS avontuur - Hello Kernel World!

Door Martindo op woensdag 14 mei 2014 12:27 - Reacties (11)
Categorie: OS Development, Views: 3.312

Nou. Na een dag moest ik mijn laptop formatteren, ubuntu en windows opnieuw installeren. Na een paar uur aan commando's uitvoeren, veel wgetten en veel koffie is het dan wel zover: De hello world kernel werkt.

Plotseling was bootmgr.exe niet werkend meer, dus was het tijd om te formatteren. Meteen een schone Windows 8.1 Pro en Ubuntu 14.04 x64 geinstalleerd. Daarna begonnen met het installeren van alle benodige software pakketten voor het os development.

Dat betekent dat ik de eerste testkernel draaiend heb kunnen draaien binnen qemu. Een plaatje als bewijs:
http://g2f.nl/03o473q

Dit is een helloworld-kernel draaiend binnen Qemu op Ubuntu 14.04 x64. Dit was puur om te testen of het allemaal werkte. Het heeft me tijd gekost om alles werkend te krijgen.

Ik heb eerst een poging gedaan om met Cygwin te werken, maar dat werkte niet. Dus nu ik Ubuntu weer draaiend heb, is het allemaal een stuk fijner werken.

Het OS avontuur - Het begin

Door Martindo op vrijdag 09 mei 2014 12:42 - Reacties (26)
Categorie: OS Development, Views: 6.546

Ik heb al een tijdje een persoonlijk probleem: ik weet niet wat ik meer wil doen. Ik ken veel programmeertalen en heb alles een poging gegeven. Alles motiveerde mij aan het begin maar na een tijdje verloor ik de motivatie.

Echter heb ik nu eindelijk iets wat me echt boeit: os development. Ik heb er al een tijdje naar gekeken, maar nu ik het curriculum van mijn opleiding voor de resterende drie jaar heb gezien, zie ik dat osdev erg veel terugkomt.

Ik ben van plan mezelf te oriŽnteren in het ontwikkelen van een eigen besturingssysteem. Om er deels motivatie in te houden, heb ik besloten een artikelserie te maken op mijn tweakblog waar ik mijn vorderingen, ervaringen of gebruikte bronnen deel.

Aan de hand van de Bare Bones tutorial kan ik een basis leggen voor de kernel. Ook biedt OSDev enorm veel informatie over alles wat je nodig hebt bij het ontwikkelen van de kernel en operating system. De meeste citaten die ik in mijn blogs ga plaatsen zullen afkomstig zijn van osdev.org :)

Voor zover deel 0 van de serie, ik hoop in het volgende artikel in ieder geval Ubuntu naast me Windows draaiend te hebben zodat ik daar verder op kan werken. Dit is een stuk makkelijker ivm het pakket wat je nodig hebt.

Privacy, wat is het?

Door Martindo op maandag 17 maart 2014 20:46 - Reacties (5)
Categorie: -, Views: 1.566

Voordat er iets in het nieuws kwam van alle afluisterpraktijken van de NSA hadden we het bijna nooit over privacy en gerelateerde onderwerpen. Sinds het moment dat Edward Snowden met het nieuws naar buiten kwam, is het het gesprek van de dag geworden. Bestaat privacy nog wel?

Het verhaal begon dat er nieuwsberichten naar buiten werden gebracht door The Washington Post (als ik Tweakers mag geloven) over het PRISM-programma wat eigenlijk inhoudt dat ze via het aftappen van telefoons en dergelijken terroristische aanslagen wilden voorkomen.

Direct nadat dat in het nieuws kwam werd dat binnen extreem korte tijd wereldnieuws en was het gesprek van de dag alleen nog maar privacy. Vragen zoals "Bestaat privacy nog wel?" of "wordt ik nu afgeluisterd?" werden veelgestelde vragen.

Voordat er ook maar iets in het nieuws kwam over de NSA was privacy de normaalste zaak van de wereld en maakte je je eigenlijk niet erg druk dat je afgeluisterd werd, tenminste: als je legaal bezig was.

Dit veranderde toen het PRISM-programma aan het licht kwam. Sindsdien zijn er mensen zich steeds drukker gaan maken over het gevoel van privacy en hoe je privacy kan behouden. Zo kwam het bedrijf GeeksPhone met de Blackphone, een telefoon gemaakt op privacy.

Ook zijn er kickstarters gestart met concepten en prototypes om privacy veilig te stellen. Maar hebben deze maatregelen wel effect of zal de NSA alweer nieuwe snufjes hebben om je in de gaten te houden. Ik zet er mijn twijfels bij of dergelijke producten daadwerkelijk nut hebben.

Ik heb sinds de onthullingen van Edward Snowden vraagtekens gezet bij mijn definitie van privacy. Ik ben van mening dat privacy pas bestaat als je je afsluit van internet. Jezelf buitensluiten van enig contact met internet en gerelateerde technologie zijn volgens mij de enigste mogelijkheid waarmee je privacy nog hebt.

Ik vroeg mij af wat jullie mening/gedachte is over privacy en of jullie denken dat privacy nog bestaat of ooit bestaan heeft.

Ps: dit was een eerste uitgebreide post, ik ben van plan meerdere van deze artikelen te gaan schrijven. :)

Muziek met een knipoog naar de huidige wereld

Door Martindo op zondag 16 maart 2014 14:12 - Reacties (4)
Categorie: Muziek, Views: 1.850

Een paar dagen geleden kwam er op Facebook een bericht langs van een vriend van me dat hij een rolletje speelde in een videoclip van een bandje. Het is een catchy nummer wat in je hoofd blijft ronddwalen. Echter is dat niet de voornaamste reden dat ik er een blogartikel over schrijf.

Wat namelijk nog veel leuker is, is dat het met een knipoog naar de huidige situatie van de wereld is. Zo gaat het nummer over de NSA, ofwel de No Sugar Association. Het gaat over een man, John the Sugarman, die opstaat voor de rechten om te doen wat hij wilt.

Meer dan dit hoef ik er eigenlijk niet over te zeggen, ik zou gewoon zeggen: bekijk en luister!

G is for Giraffe - John the Sugarman


Nog wat leuks: de videoclip is in een stad opgenomen, wie weet welke stad? :P