8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de...

39
8. Storage

Transcript of 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de...

Page 1: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

8. Storage

Page 2: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Ce este un mediu de stocare?

• La baza, un suport pe care putem stoca date

• Putem stoca date in pereti, pietre, pomi….?

– Teoretic DA, pentru ca sunt un suport fizic

• Practic inca nu stim cum

Page 3: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Datele?

• Ce sunt datele?

– O serie de informatii

• Stocarea datelor nu este mai departe de modularea

semnalelor

Page 4: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Ce este un mediu de stocare?

• Modulare AM / FM

http://mri-q.com/signal-squiggles.html

Realm 1

Realm 2

AM: Realm 1 + Realm 2

FM: Realm 1 + Realm 2

Page 5: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Ce este un mediu de stocare?

• Echivalentul unui pamant in/pe care exista informatii

• Informatia este diferita in spatiul mediului de stocare (nu

se suprapune) si poate fi redata in timp

http://www.alamy.com/stock-photo-young-green-sprouts-plants-on-soil-earth-patch-close-up-horizontal-56375509.html

http://www.dreamstime.com/stock-photo-people-planet-earth-image8390810 http://debj150.blogspot.ro/2012/02/defining-your-radio-stations.html

Page 6: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Ce este un mediu de stocare?

http://www.eassos.com/blog/wp-content/uploads/2014/07/SDcard-format-recovery01.jpg

http://www.explainthatstuff.com/harddrive.htmlhttp://scorea-ict.blogspot.ro/p/lesson-34-input-devices-input-input-is_13.html

http://www.michaelleehill.net/the-anunnaki-are-communicating-with-us-anunnaki-frequencies-binary-encoded-messages/

http://churchm.ag/best-ram-hard-drive-computer-case-study/

https://en.wikipedia.org/wiki/Capacitor

Page 7: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Disk – low level data

• Organizarea datelor pe un disk cu platane

http://www.kepzesevolucioja.hu/dmdocuments/4ap/7_1173_005_101215.pdf

Page 8: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Ce este un fisier?

• Cea mai mica unitate dintr-un sistem de organizare a

informatiei (filesystem)

– memorie fizica (HDD)

• fisier (cea mai mica unitate de memorie construita

cu unitati mai mici structurate - sectoare)

– memorie volatila (RAM)

• spatiu alocat (cea mai mica unitate de memorie

construita cu unitati mai mici structurate - pagini)

• Revenire la sectiunea – sisteme de fisiere

Page 9: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

MBR

• Master Boot Record

– Calculatoare care au BIOS folosesc primul sector de

pe un disk solid pentru a initializa secventa de bOOt

– Primul sector este incarcat in memoria RAM la

0x7C00 si se executa efectiv codul de acolo

– Un sector pe diskul solid ocupa 512 Bytes – 0x200

– In cei 512 bytes, 64 de bytes descriu tabela de partitii

a discului, deci nu toti contin cod

Page 10: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

MBR

Page 11: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

GPT

• GUID Partition Table (folosit de EFI/UEFI – Extensible

firmware interface)

https://en.wikipedia.org/wiki/GUID_Partition_Table

Page 12: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

MBR / GPT

• MBR – dimensiune partitie (in sectoare de 512 bytes) pe

32 biti => 512 * 4G = 2T

• GPT – dimensiune partitie (in sectoare de 512 bytes) pe

64 biti => 512 * 2^64 = 9,444,732,965,739,290,427,392

bytes = 9,444,732,965 TB (9 mld TB)

Page 13: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Sistemul de fisiere FAT

• Cunoscute si ca

– Fat12 (old Floppy disks)

– Fat16 (small drives - MB)

– Fat32 (up to 4-8GB)

• Cea mai mica unitate de

fisier este clusterul

multiplu de sectoare

http://havefunwhileulearn.blogspot.ro/2010/05/dissecting-fat-16-file-system.html

Page 14: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Sistemul de fisiere FAT

• BPB – Bios Parameter block / Boot sector

http://wiki.osdev.org/FAT

Page 15: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Sistemul de fisiere FAT

http://dorumugs.blogspot.ro/2013_01_01_archive.html

Page 16: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Sistemul de fisiere FAT

• Directory Entry

https://commons.wikimedia.org/wiki/File:Fat32_structure.svg

Page 17: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Sistemul de fisiere FAT

Page 18: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Sistemul de fisiere NTFS

• Implementat incepand cu sistemele de operare Windows

NT

• NTFS = New Technology Filesystem

• Journaling (pastreaza informatii despre schimbarile care

au loc)

• Suporta streamuri (ADS)

• EFS (encrypted filesystems)

• ACLs (access control lists)

• Fisierele sunt accesibile plecand de la o serie de

metadate care descriu datele de pe disk (MFTs)

Page 19: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Sistemul de fisiere NTFS

• Bios Parameter Block

Page 20: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Sistemul de fisiere NTFS

• BPB – Cu explicatia campurilor

http://thestarman.pcministry.com/asm/mbr/NTFSBR.htm

Page 21: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Sistemul de fisiere NTFS

https://commons.wikimedia.org/wiki/File:Ntfs_mft.svg

Page 22: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Bootloadere

• Un bootloader (pentru CISC) incarca intr-o anumita

ordine o serie de sectoare / fisiere pentru a porni un

sistem de operare sau un nucleu

• Un bootloader (pentru RISC) incarca o secventa de cod de

pe un mediu de stocare extern pentru a-l executa ca si

aplicatie

• Au sens in cadrul sistemelor de operare sau atunci cand

dorim sa mutam mecanismul de resoftare pe o linie de

comunicare mai comoda (USART)

Page 23: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Bootloader pentru PC

Page 24: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Bootloader pentru PC

Page 25: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Bootloadere pentru SoC

• Fuse calculator (selectie spatiu bootloader)

http://www.engbedded.com/fusecalc/

Page 26: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Bootloadere pentru SoC

http://www.pcworld.com/article/2886260/raspberry-pi-2-review-the-revolutionary-35-micro-pc-supercharged.html

Page 27: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Bootloadere pentru SoC

• BitBox Console (cu STM32F4 – 32 bit ARM CPU)

https://hackaday.io/project/1733-bitbox-console

Page 28: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Bootloadere pentru SoC

• Arduino bootloader (incarca programul de pe un

MMC/SD)

https://spaces.atmel.com/gf/project/sdbootloader/

Page 29: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Sisteme de fisiere custom

Page 30: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Demo – FAT32 / custom

• Recuperarea manuala a partitiilor

• Recuperarea manuala a fisierelor sterse

• Sistem de fisiere personalizat

Page 31: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Arduino si fisiere BMP

• Bitmap file header

Page 32: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Arduino si fisiere BMP

• Bitmap file header - continuare

Page 33: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Arduino si fisiere BMP

• Localizarea campurilor in header pe un fisier

http://stackoverflow.com/questions/7466349/understanding-tbitmap-scanline-in-delphi-c-builder

Page 34: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Arduino si fisiere BMP

• Idee de proiect:

– Afisati o poza de pe un SDCARD conectat la Arduino,

in format ASCII-ART (fisier sau terminal)

• Exemplu:

Page 35: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Arduino si fisiere BMP

• Folosire LCD-uri

http://www.cafelogic.com/wp-content/uploads/2011/01/bitmap_logo_arduino.jpg

Page 36: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Arduino si fisiere WAV

• Formatul fisierelor WAV

Page 37: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Arduino si fisiere WAV

• Mini proiect

http://www.instructables.com/id/Playing-Wave-file-using-arduino/

Page 38: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

Manager de fisiere cu Arduino

• Consola – terminal pentru fisiere

http://blog.biicode.com/arduino-file-manager-editor-project/

Page 39: 8. Storage - profs.info.uaic.rovcosmin/pagini/resurse_arduino/Cursuri... · ordine o serie de sectoare / fisiere pentru a porni un sistem de operare sau un nucleu •Un bootloader

TCP client/server

http://www.valky.eu/?data/research/elitech2013.txthttp://myarduinotoy.blogspot.ro/