1 of 39

Cursul #8

Componente hardware. Pornirea sistemului

1

2 of 39

Software gets slower faster than hardware gets faster

Wirth’s Law

2

3 of 39

Suport de curs

  • Capitolul 8 – Componente hardware
    • https://github.com/systems-cs-pub-ro/carte-uso/releases
  • Capitolul 9 – Pornirea sistemului
    • https://github.com/systems-cs-pub-ro/carte-uso/releases

3

4 of 39

Hardware-la ce e bun?

  • Suport pentru software, pentru rulare de aplicații – procesor, memorie
  • Interacțiunea cu utilizatorul – monitor, tastatură, mouse, joystick, căști, micofon
  • Stocare – hard disk drive (HDD), solid state drive (SDD), USB flash drive, CD-ROM
  • Interconectare – controllere de rețea (wireless, Ethernet, 3G), porturi pentru interconectare (USB, serial, paralel)

4

Rolurile se aplică peste tot: PC, Tabletă, Smartphone

5 of 39

Cunoașterea componentelor

  • Cunoaștere utilă pentru:
    • Achiziții de hardware
    • Instalarea sistemului de operare compatibil
    • Instalarea driverelor compatibile
    • Optimizarea rulării aplicațiilor
    • Depanare
    • Monitorizarea sistemului

5

6 of 39

Clasificări hardware

Arhitectura Von Neumann

  • O descriere logică a unui sistem de calcul ce include:
    • Unitate de procesare/Procesor
      • Unitate de control – configurează și dă comenzi perifericelor
      • Unitatea aritmetico-logică – realizarea calculelor
    • Unitatea de memorie
      • Oferă rapid procesorului datele necesare realizării calculelor
    • Dispozitive de intrare/ieșire (I/O)
      • Datele provenite de la utilizatori

6

7 of 39

Clasificări hardware

Arhitecturi de procesor

  • În funcție de tipul instrucțiunilor pe care îl execută (ISA)
    • Reduced Instruction Set Computer (RISC)
      • Arhitectura load/store
      • Orice operație se realizează prin încărcarea conținutului memoriei în registre
      • După finalizarea operației conținutul e salvat în memorie
    • Complex Instruction Set Computer (CISC)
      • Execută în aceeași instrucțiune primită de la utilizator mai multe operații, numite micro-instrucțiuni

7

8 of 39

Clasificări hardware

Arhitectura ARM

  • Arhitectură de tip RISC
  • Față de x86, toate componentele sunt integrate pe aceeași plăcuță (SoC –System on Chip)

8

Arhitectura x86

  • Arhitectură de tip CISC
  • Utilizatorul poate înlocui separat procesorul, memoria, plăcile de procesoare

9 of 39

Sisteme încorporate

  • Embedded systems
  • 98% din procesoare sunt folosite în sisteme încorporate
  • În general folosesc o construcție de tipul SoC (System on a chip)
  • Un SoC încorporează procesor, memoria RAM, memoria flash, controllere, magistrale, GPU
  • Telefoane mobile, ceasuri inteligente

9

10 of 39

Componentele unui PC

10

11 of 39

Componentele unui PC

  • Carcasă (chassis) + alimentare (PSU)
  • Placa de bază (motherboard)
  • Procesor (central processing unit – CPU)
  • Memorie RAM
  • Controllere de stocare: IDE, SATA, SCSI
  • HDD, CD-ROM drive, floppy disk drive, zip drive, USB flash drive
  • Placă video, Placă de sunet, Placă de rețea
  • Tastatură, mouse, monitor, webcam, microfon etc

11

12 of 39

Placa de bază

  • Elementul central de conexiune între procesor, memorie și plăcile de extensie

12

13 of 39

Procesor (CPU)

  • Execută instrucțiunile primite de la utilizator
  • Principalele caracteristici:
    • Frecvența (în mega/giga herți – Mhz/Ghz)
      • Determină numărul de instrucțiuni executate pe secundă
    • Mărimea memoriei cache (KB, MB)
    • Numărul de nuclee (2, 4, 8 ...)
      • Un CPU poate avea mai multe unități de execuție înglobate în aceeași pastilă
    • Viteza
      • Cu care comunică cu restul componentelor prin intermediul magistralei
    • Arhitectură (x86, x86_64, ARM)
  • Exemple: Intel Core I7, AMD Sempron, ARM Cortex-A9 Core

13

14 of 39

Memoria

  • Este în general de tip RAM (Random Access Memory)
  • Folosită de software/procese pentru stocarea datelor și instrucțiunilor
  • Datele și instrucțiunile sunt apoi folosite de procesor
  • Principalele caracteristici
    • Capacitate (MB, GB)
    • Frecvență (MHz)
    • Latență (nanosecunde)

14

15 of 39

Ierarhia memoriei

15

16 of 39

Discuri

  • Dispozitiv de intrare/ieșire pentru stocarea permanentă/persistentă a datelor
    • HDD, SSD, CD-ROM, USB flash drive
  • Exemplu: când salvăm un fișier în curs de editare, acesta este scris pe unitatea de stocare
  • Spațiul de swap: pentru stocarea temporară a unor informații din memoria RAM (cand e insuficientă)
  • În general conțin partiții, iar partițiile sunt formatate cu sisteme de fișiere
  • Accesare mult mai lentă decât unitatea de memorie
    • De aceea se preferă scrierea cât mai rară, mai ales dacă sunt necesare acțiuni în timp real

16

17 of 39

Virtualizare în hardware

  • Pe un sistem de calcul putem rula un singur sistem de operare
  • Pentru a eficientiza anumite operații sau pentru a spori securitatea, ne dorim să rulăm mai multe SO în același timp – virtualizare
  • Dacă se rulează mai multe SO în același timp, fiecare din ele va vedea o instanță virtuală a fiecărei componente a sistemului – multiplexare a componentelor hardware
  • Viteză lentă în trecut, deoarece multiplexarea se făcea în software; acum virtualizarea e suportată de CPU
  • Trebuie activată din BIOS

17

18 of 39

Interacțiunea hardware - software

  • Toate componentele hardware trebuie controlate de un sistem de operare
  • După încărcare, SO este lansat în execuție
    • SO începe descoperirea, inițializarea și configurarea elementelor hardware
  • Driver: subcomponentă a SO
    • este înglobată în SO sau încărcată la pornirea SO
    • rol bine definit de componenta pe care trebuie să o controleze

18

19 of 39

Vizualizare componente - Linux

  • Pentru a afișa informații despre hardware, după pornirea sistemului, folosim comanda lshw

19

[root@monitor ~]# lshw -short

H/W path Device Class Description

=========================================================

system eserver xSeries 336-[883715Y]-

/0 bus Motherboard

/0/0 memory 60KiB BIOS

/0/4 memory 16KiB L1 cache

/0/5 memory 2MiB L2 cache

/0/8 processor Xeon

/0/9 processor CPU [empty]

/0/20 memory 6GiB System Memory

/0/20/0 memory 1GiB DIMM DDR

Synchronous

/1 eth1 network Ethernet interface

20 of 39

Vizualizare componente - Linux

  • Pentru a afișa informații despre procesor putem interoga intrarea virtuală /proc/cpuinfo sau lscpu

20

[root@monitor ~]# lscpu

Architecture: x86_64

CPU op-mode(s): 32-bit, 64-bit

Byte Order: Little Endian

CPU(s): 2

On-line CPU(s) list: 0,1

Thread(s) per core: 2

Core(s) per socket: 1

Socket(s): 1

NUMA node(s): 1

Vendor ID: GenuineIntel

CPU family: 15

Model: 4

Stepping: 3

CPU MHz: 3000.000

BogoMIPS: 6000.14

L1d cache: 16K

L2 cache: 2048K

NUMA node0 CPU(s): 0,1

21 of 39

Vizualizare drivere - Linux

  • Vizualizarea driverelor se face cu ajutorul comenzii lsmod

21

[root@monitor ~]# lsmod

Module Size Used by

nfs 431188 0

fscache 55636 1 nfs

nfsd 311382 13

lockd 73694 2 nfs,nfsd

nfs_acl 2647 2 nfs,nfsd

auth_rpcgss 46084 2 nfs,nfsd

sunrpc 266331 18 nfs,nfsd,lockd,nfs_acl,auth_rpcgss

exportfs 4236 1 nfsd

22 of 39

Pornirea sistemului

  • Booting/Bootstrapping: un sistem pornit fizic oferă o interfață de lucru utilizatorului
  • Procesul de boot: de la alimentarea sistemului, până la pornirea primelor procese
  • Înțelegerea este utilă pentru:
    • Configurarea hardware-ului sistemului
    • Detectarea SO rulat
    • Configurarea opțiunilor de rulare a SO
    • Selectarea proceselor create la pornire

22

23 of 39

Pornirea sistemului

  • După pornirea fizică (power on), este încarcat firmware-ul de boot (numit BIOS)
  • Apoi este identificat un dispozitiv bootabil
  • Se încarcă bootloader-ul, apoi SO și apoi sunt pornite procesele de început

23

24 of 39

Firmware de boot

  • O secvență de cod, rulată în momentul pornirii, localizată pe un chip specific al sistemului
    • În general rulează pe un chip ROM
  • Roluri:
    • Inițializează și verifică componentele hardware ale sistemului (POST)
    • Permite configurarea componentelor și opțiunilor hardware ale sistemului
    • Parcurge lista cu dispozitive de stocare posibile pentru a transfera controlul către unul dintre acestea
  • Configurări permise:
    • Parolă de configurare, timpul sistemului, activare virtualizare, viteză de acces la memorie, activarea/dezactivarea folosirii porturilor USB

24

25 of 39

BIOS și UEFI

  • Pe arhitectura x86, firmware-ul de boot se numește BIOS (Basic Input-Output System)
  • BIOS-ul începe să fie înlocuit de UEFI (Unified Extensibe Firmware Interface)
    • O formă îmbunătățită de firmware de boot
    • Oferă o interfață grafică mai prietenoasă
    • Se poate folosi mouse-ul
  • UEFI este dezvoltat într-o formă standardizată

25

26 of 39

Dispozitive bootabile

  • Configurate de către firmware-ul de boot:
    • Activarea și dezactivarea dispozitivelor de boot
    • Selectarea ordinii în care sunt consultate pentru booting
  • Pot fi: discuri, USB flash drive-uri, CD ROM-drive
  • Un dispozitiv este bootabil, dacă acesta
    • Conține o imagine de bootloader
    • Aceasta va fi încărcată în memorie
    • Apoi îi va fi transferat controlul, din partea firmware-ului de boot

26

27 of 39

Schema de partiționare

MBR

  • Master Boot Record
  • Schema clasică de partiționare pe PC
  • Primul sector de disc (512 octeți) conține tabela de partiții și prima parte a bootloader-ului
  • Dată fiind dimensiunea redusă a acestui sector, doar patru partiții pot fi descrise (partiții primare)
  • Pentru a compensa această limitare, putem alege o partiție să fie o partiție extinsă și sa creăm oricâte partiții logice acolo
  • Acociat cu bootarea folosind BIOS

27

GPT

  • GUID Partition Table
  • Schema modernă de partiționare pe PC
  • Există 128 de partiții, identificate în mod unic, la nivel global printr-un șir numit GUID (global unique id)
  • Elimină limitarea de 4 partiții a schemei de partiționare MBR
  • Asociat cu bootarea folosind UEFI

28 of 39

Bootloader

  • Rolul acestuia este de a permite utilizatorului să selecteze un SO în care să booteze, să configureze opțiunile acelui SO și apoi să booteze în SO
  • Va încărca un fișier numit imagine de kernel, care contine codul SO, și apoi va transfera controlul către acesta

28

29 of 39

GRUB

  • Cel mai folosit bootloader în Linux
  • Când instalăm Linux, bootloader-ul GRUB este instalat corespunzător:
    • 1st stage bootloader este în MBR
    • 2nd stage bootloader este pe disc (/boot/grub/core.img)
  • Dacă sistemul are instalat și Windows, GRUB:
    • detectează acest lucru
    • configurează chainloading
      • încărcarea unui bootloader din alt bootloader
      • pentru a permite bootarea Windows

29

30 of 39

Kernel

  • Realizează configurarea componentelor hardware ale sistemului
  • Încarcă driverele de dispozitive (device drivere)
  • Montează sistemul de fișiere rădăcină
  • pornește procesul init, primul proces al sistemului care va porni alte procese
  • Fișierul reprezentând imaginea de kernel în Linux se găsește în /boot/vmlinux-<versiune>

30

student@uso:~$ file /boot/vmlinuz-4.15.0-29-generic

/boot/vmlinuz-4.15.0-29-generic: Linux kernel x86 boot executable bzImage, version 4.15.0-29-generic(buildd@lgw01-amd64-057) #31-Ubuntu SMP Tue Jul 17 15:39:52 UTC 2018, RO-rootFS, swap_dev 0x7, Normal VGA

31 of 39

Kernel

  • Pentru a afla informații despre acesta, putem folosi comanda uname

  • Pentru depanare sau informare, nucleul transmite informații care se jurnalizează

31

student@uso:~$ uname -a

Linux uso 4.15.0-34-generic #37-Ubuntu SMP Mon Aug 27 15:21:48 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

student@uso:~$ dmesg

[ 0.000000] Linux version 4.15.0-34-generic (buildd@lgw01-amd64-047) (

gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #37-Ubuntu SMP Mon Aug 27

15:21:48 UTC 2018 (Ubuntu 4.15.0-34.37-generic 4.15.18)

[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.15.0-34-generic

root=UUID=a14d0991-a3d8-48d6-ac8c-327d1a524501 ro quiet splash

[ 0.000000] KERNEL supported cpus:

[ 0.000000] Intel GenuineIntel

[ 0.000000] AMD AuthenticAMD

[...]

32 of 39

Drivere

  • Programe executabile ce conțin codul pentru utilizarea și configurarea unui dispozitiv hardware
  • Localizate în Linux în directorul /lib/modules/<version>/kernel
    • <version> = versiunea de SO

32

student@uso:~$ file/lib/modules/4.15.029generic/kernel/drivers/net/

ethernet/intel/e1000/e1000.ko

/lib/modules/4.15.0generic/kernel/drivers/net/ethernet/intel/e1000/

e1000.ko: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), BuildID[sha1]=c2bcba22a6d98cf9d4c3735248bc48674ead034b, not stripped

33 of 39

Pornire procese

  • Mai întâi pornește primul proces, numit init
  • systemd
    • Implementarea cea mai răspândită de init
    • Executabilul: /lib/systemd/systemd
  • După pornirea serviciilor inițiale (startup processes), init/systemd pornește și terminalele de login
    • terminale virtuale
  • Pe GUI, aceste terminale nu sunt accesibile direct, pentru că este pornit mediul grafic

33

34 of 39

Pornire terminale virtuale și shell

34

35 of 39

Federico Faggin

  • Proiectantul primului procesor comercial (Intel 4004)
  • Fondator Zilog (Z80 – HC – Home Computer)
  • A activat în mai multe companii: Synaptics, Foveon

35

36 of 39

Computer Systems: �A Programmer’s Perspective

  • CS:APP
  • Bryan, O’Hallaron – CMU
  • Baza unui un curs de la CMU
  • Carte de ,,sisteme” (systems)
  • Utilă pentru a ști „What is under the hood”
  • Trei părți; prima parte detaliază arhitectura sistemului de calcul și cum poate fi folosită pentru construirea de aplicații
  • 2nd Edition 2010

36

37 of 39

Intel

  • Integrated Electronics
  • Cel mai mare producător de chip-uri
  • Inventatorul arhitecturii de procesoare x86
  • Gamă largă de produse hardware: motherboard chips, plăci de rețea, GPU, CPU, embedded CPU
  • Companie fondată de Gordon Moore (Moore’s Law) și Robert Noyce
  • Competiție din partea AMD, Texas Instruments, Nvidia
  • Pe piață mobile, competiție din partea arhitecturii ARM (Intele Atom)

37

38 of 39

PandaBoard

  • http://pandaboard.org
  • Plăcuță de dezvoltare pentru platforme embedded și mobile
  • În jur de 150-170 USD
  • ARM Dual Core 1.2 GHz, 1 GB RAM
  • Rulează Android, Ubuntu, distribuții Linux embedded
  • Se pot conecta: monitor, dispozitiv pe USB, expansion board
  • Similar: Raspberry Pi, Beagle Board, Cubie Board

38

39 of 39

Cuvinte cheie

  • Hardware
  • Arhitectura von Neumann
  • Arhitectura ARM
  • Arhitectura x86
  • Memorie
  • Procesor
  • Virtualizare
  • Drivere
  • Firmware de boot
  • Dispozitive bootabile
  • Bootloader
  • Kernel
  • Pornire procese

39