Hva er en blokkanordning? [duplikat]

Dette spørsmålet har allerede svar her :

Svar

A Blokker spesiell fil eller blokker enhet er :

En fil som refererer til en enhet. En spesialfil for blokker skiller seg normalt fra en spesialfil ved å gi tilgang til enheten på en måte slik at maskinvarekarakteristikkene til enheten ikke er synlige. / p>

De nøyaktige maskinvarekarakteristikkene blir trukket bort ved cache på kjerne- eller drivernivå. Blokkeringsenheter representerer vanligvis maskinvare som diskstasjoner, men det er plattformavhengig. FreeBSD har for eksempel ingen blokkeringsenheter .

Filer er generelt ikke enheter.

«Blokker enhet», som kastet rundt med henvisning til filer, refererer til de spesifikke enhetsfilene i (sannsynligvis) /dev. Det er i stor grad en implementeringsdetalj fra brukernivå, med et grensesnitt eksponert av sjåføren. Mange typer maskinvare er blokkstrukturerte internt, men både blokkerings- og karakterenheter kan brukes til å få tilgang til dem.

Svar

Sannsynligvis vil du aldri kunne finne en enkel definisjon av dette. Men på den mest generelle og forenklede måten, hvis du sammenligner en karakterenhet med en blokkanordning, kan du si at karakterenheten gir deg direkte tilgang til maskinvaren, som i at du legger inn en byte, som byte kommer til maskinvaren (av selvfølgelig er det ikke så enkelt som det i dag og alder). Mens blokkenheten leser fra og skriver til enheten i blokker av forskjellige størrelser. Du kan spesifisere blokkstørrelse, men siden kommunikasjonen er en blokk om gangen, er det en bufferingstid involvert.

Tenk på en blokkanordning som en harddisk der du leser og skriver en blokk med data om gangen, og karakterenheten er en seriell port. Du sender en byte med data, og den andre siden mottar den byten og deretter den neste, og så videre og så videre.

Igjen, det er ikke et veldig enkelt konsept å forklare. Eksemplene jeg ga er grove generaliseringer og kan lett bli tilbakevist for en bestemt implementering av hvert eksempel.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *