Advertentie | |
|
![]() |
||
![]() |
Citaat:
zoja, dan ff met google zoeken en op http://programmeer.pagina.nl staan ook een aantal links Laatst gewijzigd op 16-07-2002 om 22:34. |
![]() |
|
Verwijderd
|
The Art Of Assembly. Engels en 1536 A4-kantjes
![]() *heeft thuis de beta draft uitgeprint in de kast liggen* Ik had trouwens een heel mooi programmaatje, dat heette TechHelp! 4, en daar stond precies in wat je in welk register moet zetten bij welke interrupt. Dus bijv (weet niet meer precies...): Om iets naar het (DOS)scherm te schrijven heb je interrupt 13h nodig. Zoek je in dat programma INT 13 op, staat er iets als: ah - foreground color (see color section for details) al - backgrounground color (see color section for details) cx - counter/repeat count bx - pointer to data Weet iemand nog zo'n soort programma? Laatst gewijzigd op 17-07-2002 om 09:15. |
![]() |
||
Verwijderd
|
Citaat:
![]() |
![]() |
||
![]() |
Citaat:
bv. een processor in een lopende band ofzow |
![]() |
||
Verwijderd
|
Citaat:
Laatst gewijzigd op 17-07-2002 om 17:18. |
![]() |
||
Citaat:
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
![]() |
||
Citaat:
Granted, als je het wiel opnieuw uit wil vinden, kun je nauwelijks zonder assembly. Maar er zijn tegenwoordig niet veel mensen meer die zelf een compleet OS schrijven ![]() |
![]() |
||
Citaat:
je jne mov pop Rince-repeat. Assembly is simpel, en saai. Wat het 'moeilijk' maakt is dat je zo t*phusveel moet typen. Bovendien is elk stukje assembly 1 jaar nadat je het geschreven hebt voor jou niet meer leesbaar. Da's de hele reden dat men hogere programmeertalen heeft uitgevonden. Bovendien: Dat iemand zegt assembly te kunnen bewijst niks, het is erg simpel een stukje C naar assembly om te laten zetten i.p.v. een .obj. Assembly is net zo 'cool' als XHTML, maar aagezien je ook een XHTML fanboy bent... |
![]() |
||
Citaat:
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
![]() |
||
Citaat:
![]()
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
![]() |
|
Verwijderd
|
Trouwens, als je je eigen os maakt (waar ik nu dus mee bezig ben
![]() ![]() ![]() Ik kan nu ook al kleuren op mn kernel plaatsen ^_^ 0x00 tot 0x09... ![]() Clear_screen printf printclrstr (print een gekleurde stream)... [edit] ik zoek trouwens nog assemblers/c++ ers die mee willen helpen ![]() Laatst gewijzigd op 19-07-2002 om 17:33. |
![]() |
||
Citaat:
![]() om het een beetje efficient te maken is natuurlijk wel iets moeilijker maar toch... het ontwikkelen van de API en het porten van de ansi C libraries enzo lijkt me een stuk lastiger
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
![]() |
||
Citaat:
Ben op dit moment nl. bezig met een Virtual Filesystem in Java, en ik kan je wel vertellen dat dat alles behalve simpel is. |
![]() |
||
Citaat:
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
![]() |
||
Citaat:
Interrupts handler? Zorg eerst maar eens dat je memory allocatie werkend krijgt ![]() |
![]() |
||
Citaat:
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
![]() |
||
Verwijderd
|
Citaat:
![]() ![]() Een inode bindt een bestandsnaam aan de werkelijke data-segmenten op een schijf. Elke directory is zelf een bestand, met verwijzingen naar andere bestanden. Bij POSIX-compliant systemen krijg je dan het volgende: Je hebt de root-directory, wat zelf een bestand is. In deze staat een lijst met verwijzingen naar andere directories met hun inode nummer. Als je de root traversed, lees je dus directory-bestanden met bijbehorende inodes in. Uit de inode blijkt ook dat het bestand een directory, of zelf een logisch bestand is. Zodoende kunnen we naar behoefte verder traversen ![]() Maar goed, het lijkt mij alles behalve simpel. Vooral het reserveren van data-segmenten en het terugdringen van fragmentatie lijkt me een hels karwei. Zeg dus niet dat iets relatief gezien simpel is als je er geen verstand van hebt. |
![]() |
||
Citaat:
Een dergelijk systeem is opgebouwd uit blokken met een vaste grootte. Een block inodes bevat verwijzingen naar datablokken. Dit kunnen files (gewoon data), directories (bestandsnamen met hun inodeblokken) of indexblokken zijn. Omdat bestanden vaak groter zijn dan een blok, heb je een index met verwijzingen naar de verschillende datablokken verspreid over de schijf. Een dergelijk index kan verwijzen naar een datablock, maar ook weer naar een nieuwe index. Zo'n indexboom kan wel 3 lagen diep zijn. Simpel? Allesbehalve. Wij hoefden alleen te lezen, en dan hoef je zelf geen rekening te houden met blockallocatie, om nog maar niet te spreken over fragmentatie. Bovendien was het een virtueel FS, gewoon een file in het filesysteem dus. Als je zelf een FS gebruikt moet je rechtstreeks de disk benaderen. |
![]() |
|
En McMotion: Een paar tabelletjes verzinnen met verwijzingen naar files is geen groot probleem. Maar hoe ga jij een file laten 'groeien' als er een datablock van een andere file achter staat?
Het grootste probleem voor een FS is blocks alloceren. Hoe je dingen als bestandsnamen opslaat is wel je laatste probleem. |
![]() |
||
Citaat:
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
![]() |
||
Citaat:
![]()
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
![]() |
||
Citaat:
Een inode is dus inderdaad de koppeling tussen een bestandsnaam en de fysieke data. Je hebt geen flauw idee waar die kleper uithangt kerel. |
![]() |
||
Citaat:
Mag ik je d'r ff aan herinneren, dat ik ZELF een implementatie heb moeten maken? Een directorylijst ziet er als volgt uit: INODE NAME INODE NAME INODE NAME INODE NAME INODE NAME Etc. Een inodelijst ziet er als volgt uit NUMBER RIGHTS FLAGS INDEX NUMBER RIGHTS FLAGS INDEX NUMBER RIGHTS FLAGS INDEX NUMBER RIGHTS FLAGS INDEX Een inode is absoluut de koppeling tussen de data en de bestandsnaam. De bestandsnaam staat namelijk NIET in de inode, maar in de DATA van een directory. Om van bestandsnaam naar data te komen moet je dus via het nummer en de inode de locatie van de data opzoeken. Vind je het zelf ook niet een beetje absurd dat je ons de les zit te lezen, terwijl je zelf toegeeft geen flauw idee te hebben hoe een POSIX FS werkt? |
![]() |
|
ik geloof wel dat je er verstand van hebt maar je verwoording klopt volgens mij gewoon niet... als je 2 hardlinks hebt naar 1 bestand, bla1 en bla2, dan gaat het maar om 1 inode... maar je hebt twee koppelingen nodig, want de bestandsnaam bla1 is gekoppeld aan die data, en de bestandsnaam bla2 ook... de koppeling noem ik dus de direntry.. welke bestandsnaam bij welke inode hoort
je zegt zelf al dat een bestandsnaam niet in een inode staat... hoe kan het dan in godsnaam een koppeling zijn tussen de bestandsnaam en het datablok! verder denk ik niet dat ik het beter weet, maar ik sta er gewoon van te kijken hoe iemand als jij dag in dag uit iedereen loopt te flamen (22 was het toch?) en overal op loopt af te kraken omdat ze iets niet goed begrijpen of verkeerd verwoorden, terwijl je later helemaal dol wordt (hap) als iemand jou eens een keer probeert te verbeteren
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
![]() |
|
Flamen? Het is gewoon een 'beetje' irritant om om te moeten gaan met betweters, that's all.
Dus nogmaals: Een direntry verwijst naar een inode, een inode verwijst naar de data. Hoe kan een inode dan geen koppeling zijn tussen naam en data? Zonder inode is de data onbereikbaar. Waarom is het een koppeling? Startsituatie is dat je alleen een bestandsnaam hebt. Hoe kom je aan de data? Precies, door eerst de bijbehorende inode op te zoeken, zodat je een pointer naar de data krijgt. Een bestandsnaam is geen koppeling, het is gewoon een naam. En verder: Wees blij dat iemand je de moeite neemt dit uit te leggen. Anders zou je voor de rest van je leven clueless blijven. |
![]() |
||
Citaat:
![]()
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
![]() |
||
Citaat:
Beetje zwak dat je er zo uit probeert te lullen. Er zijn twee mensen die weten waarover ze praten die je dit zaakje uitleggen, en jij blijft volhouden dat je het beter weet. Prima. Verwacht geen hulp als die nog eens nodig hebt. Ik wil fouten bovendien best toegeven, geen enkel probleem. Maar in dit geval heb ik gewoon gelijk. Punt uit. Als jij het er niet mee eens bent, prima, maar kom dan eens eindelijk een keer met argumenten. |
![]() |
|
Verwijderd
|
http://wks.uts.ohio-state.edu/unix_c...tml#HEADING6-0
Inode is per file. Bij meerdere hardlinks krijg je dus waarschijnlijk ook meerdere inodes. |
![]() |
|
Yup. Bij een harde link wordt een kopie van de inode gemaakt. Bij een softlink wordt gewoon een direntry gemaakt die verwijst naar dezelfde inode.
Nog een hoop gedoe voor het systeem trouwens. Zie maar eens bij te houden wie allemaal naar een file linkt. Zelfde systeem als het garbage collection van bijvoorbeeld Java, references tellen ![]() |
![]() |
||
Citaat:
![]()
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
![]() |
||
Citaat:
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
![]() |
||
Citaat:
Dit weet ik overigens niet zeker, en ik ben te lui om het op te zoeken. |
Advertentie |
|
![]() |
|
|
![]() |
||||
Forum | Topic | Reacties | Laatste bericht | |
Software & Hardware |
Hanige tools bij het programmeren Dr HenDre | 21 | 11-06-2006 20:05 | |
Software & Hardware |
svga - cpp??? aldi - PUNK | 16 | 18-02-2003 13:08 | |
Huiswerkvragen: Exacte vakken |
phonebook op Ti-83 --alex-- | 13 | 03-02-2002 21:53 |