11 episodes

Unikalny w skali polskiego internetu podcast o budowie i zasadzie działania systemów wbudowanych oraz związkach krzemu wszelkiej postaci. Prowadzący są programistami firmy Semihalf i na co dzień tworzą m.in system Linux i FreeBSD. Dzielą się swoimi wieloletnimi doświadczeniami i w sposób przystępny opisują świat na styku programowania i sprzętu.

Poziom niżej Semihalf

    • Technology

Unikalny w skali polskiego internetu podcast o budowie i zasadzie działania systemów wbudowanych oraz związkach krzemu wszelkiej postaci. Prowadzący są programistami firmy Semihalf i na co dzień tworzą m.in system Linux i FreeBSD. Dzielą się swoimi wieloletnimi doświadczeniami i w sposób przystępny opisują świat na styku programowania i sprzętu.

    #009 - Skazani na firmware

    #009 - Skazani na firmware

    Oprogramowania układowego na PC nie sposób się pozbyć. 40-letnia historia rozwoju rynku komputerów osobistych silnie związała użytkowników z Firmwarem (FW). Od BIOS po UEFI na binarnych fragmentach FW urządzeń peryferyjnych skończywszy, zawsze gdzieś w systemie czyha potencjalny cichy intruz.

    Nasuwają się więc pytania: Czy jesteśmy skazani na Firmware? Czy producenci sprzętu tworzą tajną lożę i chcą zawładnąć światem poprzez szpiegowanie nieświadomych użytkowników?
    W czyim interesie jest zaszywanie w krzemie instrukcji procesora weryfikujących podpis cyfrowy oprogramowania?

    Na te i podobne pytania staramy się odpowiedzieć w tym odcinku podcastu Poziom Niżej.

    Prowadzący: Radosław Biernacki, Marcin Wojtas, Jan Dąbroś

    Hashtag: acpi, bios, coreboot, firmware, secureboot, uefi

    ### Plan odcinka

    # 00:00 - Wprowadzenie
    # 04:56 - Czym jest firmware
    # 10:33 - Trochę historii - BIOS
    # 17:43 - Czas obecny - UEFI
    # 22:50 - EDK2
    # 28:30 - CSM - czyli UEFI potrafi w BIOS
    # 29:50 - Coreboot - KISS
    # 31:05 - Libreboot
    # 33:30 - Bootloader, czyli co następuje po…
    # 35:45 - RaspberryPi jako beneficjent otwartego firmware
    # 38:35 - Bootrom - czyli jak uruchamiają się nowoczesne procesory
    # 42:40 - Detale wczesnych etapów uruchomienia systemu
    # 45:40 - Microcode
    # 48:00 - Inicjalizacja (trening) RAM
    # 52:12 - Bootloader
    # 56:40 - Skąd firmware bierze sterowniki? (OptionROM)
    # 1:01:30 - Jak ładowany i uruchamiany jest kod kernela?
    # 1:03:18 - Dlaczego kelnerowi potrzebny jest opis sprzętu i środowiska?
    # 1:05:28 - Jak dokonywane są aktualizacje firmware?
    # 1:09:55 - ACPI
    # 1:17:25 - DeviceTree i “sprawa ARM”
    # 1:21:32 - System Management BIOS (SMBIOS)
    # 1:23:10 - Bezpieczeństwo, zaufanie i prywatność
    # 1:26:10 - SecureBoot i VerifiedBoot
    # 1:31:45 - TPM
    # 1:35:50 - Podsumowanie
    # 1:39:25 - Bonus

    ### Linki do materiałów dodatkowych:

    # 22:55 - Specyfikacja UEFI - https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_final.pdf
    # 23:19 - Repozytorium EDK2 - https://github.com/tianocore/edk2
    # 27:07 - Implementacja "UEFI runtime services" w u-boot - https://source.denx.de/u-boot/u-boot/-/blob/master/lib/efi_loader/efi_runtime.c
    # 30:18 - Repozytorium i strona główna coreboot - https://review.coreboot.org/plugins/gitiles/coreboot/+/refs/heads/master, https://www.coreboot.org/
    # 31:13 - Strona główna libreboot - https://libreboot.org/
    # 31:35 - Repozytorium FSP - https://github.com/intel/FSP
    # 33:14 - Repozytorium oreboot - https://github.com/oreboot/oreboot
    # 35:15 - Strona główna i repozytorium LinuxBoot - https://www.linuxboot.org/, https://github.com/linuxboot/linuxboot
    # 44:05 - IME - https://en.wikipedia.org/wiki/Intel_Management_Engine
    # 49:17 - Więcej o SPD(Serial Presence Detect) - https://en.wikipedia.org/wiki/Serial_presence_detect
    # 59:16 - 1:01:30 - Sterownik do uruchamiania instrukcji...

    • 1 hr 41 min
    #008 - Zaczarowane Jabłko #2

    #008 - Zaczarowane Jabłko #2

    W ósmym odcinku rozprawiamy się z potocznymi opiniami na temat wydajności procesora Apple M1.

    Tym razem bierzemy pod lupę konstrukcję nowego procesora M1 firmy Apple, który wywołał spore zamieszanie na rynku ultrabooków. Bazując na własnych, bogatych doświadczeniach z architekturą ARM, weryfikujemy doniesienia medialne usuwając jednocześnie kolejne zasłony dymne, które można napotkać wśród opisów "rewelacyjnych" wyników M1. Wyjaśniamy zasady budowy nowoczesnych procesorów i podajemy źródła rzetelnej wiedzy. Staramy się również odpowiedzieć na pytanie, jak rozwiązania Apple wpłyną długofalowo na cały rynek procesorów ARM, choć przewidywanie przyszłości należy do dziedziny niezupełnie inżynierskiej.

    Prowadzący: Radosław Biernacki, Maciej Czekaj, Stanisław Kardach

    Hashtag: Arm, Apple, M1

    ### Plan odcinka, część #2

    # 0:23 - Translacja kodu x86 -> ARM
    # 4:30 - Rozkazy x86 potrafią operować na pamięci (model pamięci)
    # 8:50 - Ograniczenia translacji
    # 10:00 - Translacja vs emulacja
    # 11:30 - Wydajność translacji na M1
    # 13:30 - WAŻNE: różnice modelu pamięci i wyzwania translacji!
    # 18:00 - M1 TSO (Total Store Ordering)
    # 23:26 - Wątek poboczny: Izolacja CPU
    # 28:13 - koniec wątku pobocznego
    # 28:50 - Roseta 1 i Roseta 2
    # 30:36 - TDP i testy porównawcze
    # 35:30 - Segmentacja rynku zastosowań procesora
    # 37:26 - Jądro OSX
    # 40:42 - Troche o ograniczeniach TDP
    # 44:12 - Wydajność podsystemu DRAM o SWAP
    # 45:22 - Podsumowanie #4 (ewolucja a nie rewolucja)
    # 46:40 - Polityka informacyjna Apple
    # 49:43 - wątek poboczny: Historia bywa przewrotna, Apple vs IBM, wertykalna struktura Apple
    # 51:47 - koniec wątku pobocznego
    # 52:55 - ARM otwiera ISA?!?
    # 56:30 - wątek poboczny: Linux i samo-modyfikujący się kod
    # 1:00:47 - koniec wątku pobocznego
    # 1:01:20 - Apple AMX
    # 1:06:30 - Czy ARM przejmie rynek PC?
    # 1:10:35 - Zakończenie

    ### Linki

    # 0:23 - Translacja X86 -> ARM:
    - Jak robi to Apple:
    - Jak Transitive umarł: https://www.itjungle.com/2011/09/26/tfh092611-story06/
    - Jak robi to Microsoft:
    - Niskopoziomowa analiza: https://blogs.blackberry.com/en/2019/09/teardown-windows-10-on-arm-x86-emulation
    - Kompleksowa analiza WOW64: https://wbenny.github.io/2018/11/04/wow64-internals.html
    - Qemu User Mode Emulation: https://qemu.readthedocs.io/en/latest/user/index.html
    - Narzędzia do skrośnego przygotowywania dystrybucji Debiana/Ubuntu: https://wiki.debian.org/EmDebian/CrossDebootstrap

    # 18:00 - TSO
    - Slajdy poglądowe o Total Store Ordering: https://www.cis.upenn.edu/~devietti/classes/cis601-spring2016/sc_tso.pdf
    - Hack do włączania dla każdego procesu w OSX na M1: https://github.com/saagarjha/TSOEnabler

    # 25:00 - Łatki kernela do "Total CPU Isolation"
    https://lwn.net/Articles/816298/

    # 28:50 - Roseta1 i Roseta 2
    - Rosetta 2: https://appleinsider.com/inside/rosetta-2
    - Rosetta 1 (w 2006 przy przejściu PowerPC -> Intel) będąca modyfikacją technologii QuickTransit:
    - a href="https://en.wikipedia.org/wiki/QuickTransit"...

    • 1 hr 12 min
    #008 - Zaczarowane Jabłko #1

    #008 - Zaczarowane Jabłko #1

    W ósmym odcinku rozprawiamy się z potocznymi opiniami na temat wydajności procesora Apple M1.

    Tym razem bierzemy pod lupę konstrukcję nowego procesora M1 firmy Apple, który wywołał spore zamieszanie na rynku ultrabooków. Bazując na własnych, bogatych doświadczeniach z architekturą ARM, weryfikujemy doniesienia medialne usuwając jednocześnie kolejne zasłony dymne, które można napotkać wśród opisów "rewelacyjnych" wyników M1. Wyjaśniamy zasady budowy nowoczesnych procesorów i podajemy źródła rzetelnej wiedzy. Staramy się również odpowiedzieć na pytanie, jak rozwiazania Apple wpłyną długofalowo na cały rynek procesorów ARM, choć przewidywanie przyszłości należy do dziedziny niezupełnie inżynierskiej.

    Prowadzący: Radosław Biernacki, Maciej Czekaj, Stanisław Kardach

    Hashtag: Arm, Apple, M1

    ### Plan odcinka, część #1

    # 0:23 - Wstęp
    # 4:44 - Na jakiej podstawie analizujemy procesor
    # 6:14 - Czy ISA ARM ma znaczenie?
    # 8:30 - Jak działa nowoczesny procesor
    # 11:20 - Dlaczego wszystkie procesory działają bardzo podobnie
    # 12:55 - Odstępstwa od procesorów superskalarnych
    # 14:34 - W czym faktycznie różnią się procesory
    # 18:20 - Na co procesor wydatkuje energię elektryczną
    # 20:50 - Dlaczego nie zawsze więcej znaczy lepiej
    # 24:30 - Coś za coś - czyli konsumpcja energii a wydajność
    # 30:00 - Gdzie jest magia w jabłku? - dlaczego M1 jest tak wydajny?
    # 32:40 - Jak działają mikro-benchmarki
    # 39:37 - Podsystem pamięci w M1
    # 50:30 - Interconnect jako sieć pakietowa
    # 51:47 - Nietypowy cache L3 w M1?
    # 57:29 - L2 jako punkt koherencji w M1? (słynny NSObjects i ref counting)
    # 1:04:32 - Podsumowanie #1
    # 1:07:43 - Opóźnienie L1 w M1
    # 1:08:55 - Podsumowanie #2 (nie magia)
    # 1:10:12 - Registry renaming
    # 1:12:30 - Dekoder rozkazów i SMT
    # 1:18:58 - M1 jako awangarda w mikro-architekturze?

    ### Linki

    # 4:44 - Testy od AnandTech
    https://www.anandtech.com/show/16252/mac-mini-apple-m1-tested

    # 13:02 - VLIW
    https://en.wikipedia.org/wiki/Very_long_instruction_word

    # 13:25 - Alternatywne architektury procesorów
    Microsoft EDGE ISA - procesor grafowy
    https://www.theregister.com/2018/06/18/microsoft_e2_edge_windows_10/

    Ian Goddard o EDGE CPU i Mill CPU
    https://millcomputing.com/topic/microsoft-e2-edge-processor/

    Procesor RAW
    https://apps.dtic.mil/sti/pdfs/AD1007208.pdf

    Procesor Mill
    https://millcomputing.com/

    # 24:33 - Big-little
    https://www.usenix.org/system/files/conference/hotpower14/hotpower14_hahnel.pdf

    # 30:30 - Parametry mikroarchitektury procesora na bazie procesorów Intela i AMD
    https://en.wikichip.org/wiki/intel/microarchitectures/coffee_lake
    https://en.wikichip.org/wiki/amd/microarchitectures/zen_2

    # 31:59 - Andnatech, Apple M1
    https://www.anandtech.com/show/16252/mac-mini-apple-m1-tested

    # 49:00 - Dougall Johnson
    a...

    • 1 hr 21 min
    Nowa seria podcastów "Poziom Niżej"

    Nowa seria podcastów "Poziom Niżej"

    Czy są tu słuchacze spragnieni naszych podcastów?
    Mamy dla Was dobrą wiadomość! :)
    Po dłuższej przerwie wracamy z nowym cyklem.
    Dziś przystawka, czyli nowa szata graficzna z zapowiedzią serii.
    Pozostańcie na łączach, już wkrótce usłyszymy się w nowych odcinkach!

    • 53 sec
    #007 - Gdy bug w krzemie drzemie...

    #007 - Gdy bug w krzemie drzemie...

    W siódmym odcinku rozmawiamy o ciekawym aspekcie naszej pracy tj o błędach w układach krzemowych.

    Praca z producentami układów krzemowych daje niecodzienną możliwość zajrzenia za kulisy rewolucji naszych czasów tj miniaturyzacji układów cyfrowych. Osławione prawo Moore'a niesie ze sobą wykładniczy wzrost gęstości tranzystorów. Co za tym idzie z biegiem czasu układy stają się coraz bardziej skomplikowane a tym samym pomyłki stają się nieuniknione.
    W trzech krótkich historiach opowiadanych przez członków załogi Semihalf, staramy się przybliżyć wam ciekawe strony pracy z najnowszą technologią, często niosącą bardzo intensywne tygodnie “walki” na styku oprogramowania i sprzętu. Jeśli zastanawialiście się dlaczego aktualizacje firmware (np BIOSU) są konieczne oraz dlaczego procesory zaraz po premierze rynkowej czasami po prostu nie działają jak reklamuje producent, to ten odcinek powinien odpowiedzieć na wasze pytania.

    Prowadzący: Radosław Biernacki, Jan Dąbroś, Marcin Wojtas, Stanisław Kardach

    Hashtag: FPGA, VHDL, Ryzen, ARM, hardware, symulator, emulator, bug

    ### Plan odcinka

    # 6:10 - Od czego zaczyna się projektowanie układów krzemowych
    # 7:30 - Testowanie i praca z SW - symulatory i emulatory
    # 9:20 - Dlaczego emulacja jest czasochłonna?
    # 11:50 - Narodziny krzemu - tapeout
    # 15:10 - Marcin - historia wdrożenia zarządzania energią w ARMv8
    # 23:30 - Janek - historia błędu przekierowania przerwań do Arm Trustzone
    # 30:40 - Staszek - historia błędu w procesorze sieciowym do zastosowań DataPlane
    # 34:10 - Staszek - historia błedu w ARMv8 w instrukcjach LDP/STP
    # 42:08 - Łatki w firmware
    # 48:47 - Quirki i upstream do kernela Linuxa
    # 1:01:00 - Podsumowanie, jak błędy w krzemie manifestują się u użytkowników

    ### Linki

    # 6:20 - Fabless chip manufacturing - https://en.wikipedia.org/wiki/Fabless_manufacturing
    # 8:50 - Cadance Palladium - https://www.cadence.com/en_US/home/tools/system-design-and-verification/acceleration-and-emulation/palladium-z1.html
    # 12:45 - Tape-out - https://en.wikipedia.org/wiki/Tape-out
    # 18:00 - Poziomy uprzywilejowania (Exception levels) na ARMv8
    Prezentacja ARM Trusted Firmware (ale z fajnym opowiadaniem jak Exception Levels działają) https://www.slideshare.net/linaroorg/arm-trusted-firmareforarmv8alcu13
    Artykuł w magazynie "Programista" numer #63, 08/2017r. "Na granicy światów – technologia bezpieczeństwa ARM TrustZone"
    Dość szczegółowy opis technologii ARM TrustZone http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/PRD29-GENC-009492C_trustzone_security_whitepaper.pdf

    # 18:35 - Power Management na ARMv8
    Całość problemu opisana w magazynie “Programista” numer #56, 01/2017r. “Zarządzanie energią w ARMv8”
    Opis przebiegu usypiania systemu podczas Suspend-To-Ram https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/power/suspend-and-cpuhotplug.rst
    Opis funkcji zwrotnych zarządzania energią w ARM Trusted Firmware a href="https://github.com/scorp2kk/atf/blob/master/docs/platform-migration-guide.md#22-composite-power-state-framework-platform-api-modifications"...

    • 1 hr 3 min
    #006 - Bezpieczeństwo w krzemie zaklęte

    #006 - Bezpieczeństwo w krzemie zaklęte

    W szóstym odcinku przybliżamy wam tematykę zabezpieczeń nowoczesnych procesorów i SoC

    W odcinku poruszamy szereg zagadnień bezpieczeństwa których bazą są sprzętowe rozwiązania zaszyte w nowoczesnych układach scalonych znajdujących się np w każdym smartfonie. Ten z pozoru prosty przedmiot codziennego użytku posiada wbudowaną technologię której nie są w stanie złamać nawet wyspecjalizowane komórki rządowych agencji bezpieczeństwa. Staramy się pokazać, jak ogromną zasługą w zachowaniu bezpieczeństwa i poufności zarówno naszej korespondencji jak i komunikacji np z bankiem, mają te małe płatki krzemu które są cichymi towarzyszami naszych codziennych połączeń poprzez publiczną sieć Internet.

    Prowadzący: Radosław Biernacki, Michał Stanek, Jan Dąbroś, Konrad Dulęba

    Hashtag: ArmTrustZone, ATF, ArmTrustedFirmware, Android, Security, Trusty, TEE, OP-TEE, SecureBoot, VerifiedBoot, Firmware

    ### Plan odcinka

    # 0:08 - Wstęp
    # 1:25 - Kim jesteśmy
    # 5:40 - Dlaczego rozwiązania sprzętowe są podstawą modelu bezpieczeństwa
    # 9:17 - Czym są enklawy kryptograficzne
    # 10:48 - Reverse engineering krzemu
    # 14:45 - Arm Trust Zone
    # 22:22 - Trusted Platform Module
    # 24:47 - Jak i po co łączyć ATZ i TPM
    # 26:18 - Czy do budowy enklawy konieczny jest element zewnętrzny
    # 30:29 - Android jako modelowy przykład bezpiecznego systemu operacyjnego
    # 30:50 - UID jako podstawa dla sandbox
    # 32:09 - TEE (Trusty) jako podstawa enklawy kryptograficznej
    # 35:30 - Full Disk Encryption
    # 36:40 - File Based Encryption
    # 39:03 - API do kryptografii bazowane na enklawie
    # 41:00 - Luki bezpieczeństwa w TEE
    # 42:16 - Enklawy jako podstawa dla DRM ;(
    # 44:05 - SGX od Intela
    # 48:47 - Verified Boot i Secure Boot
    # 54:45 - Dlaczego nie powinno się “root’ować” smartfona
    # 58:48 - Trusted Platform Module - detale działania
    # 1:00:15 - TPM + Bitlocker
    # 1:02:00 - Atestacja serwerów przy pomocy TPM
    # 1:02:58 - Czy TPM chroni przed atakami fizycznymi? Czyli dlaczego nie szyfruj Bitlocker`em bez hasła ;)
    # 1:06:45 - Czym jest Yubikey i dlaczego jeszcze go nie używasz?
    # 1:09:10 - PSD2 vs Yubikey vs Smartfon
    # 1:10:11 - Protected Confirmation
    # 1:11:59 - Czy nadal używasz PC do przelewów?
    # 1:15:32 - Zakończenie

    ### Linki

    Trustzone TEE
    https://www.trustkernel.com/uploads/pubs/TZResearch_GetMobile2018.pdf
    https://www.arm.com/files/pdf/20160701_A04_ATF_Taiwan_I-Wei_Lin.pdf

    TEE, Secure & Measured Boot for Samsung Pay
    https://developer.samsung.com/tech-insights/pay/device-side-security

    Basics of TBSA
    https://www.arm.com/files/pdf/20160628_A01_ATF_Korea_Udi_Maor.pdf

    Apple TouchID
    https://hackernoon.com/demystifying-apples-touch-id-4883d5121b77

    (Programista 2017, numer 63, artykuł Jana Dąbrosia) - tzw. Biblia Arm TrustZone :P
    https://drive.google.com/drive/u/0/folders/0BwLtsK2HpuELallaSFcxb2RtR3c

    Extracting ECDSA
    Keys from Qualcomm’s TrustZone:
    https://www.nccgroup.trust/globalassets/our-research/us/whitepapers/2019/hardwarebackedhesit.pdf

    Google IO Android Securitybr...

    • 1 hr 16 min

Top Podcasts In Technology

Lex Fridman Podcast
Lex Fridman
All-In with Chamath, Jason, Sacks & Friedberg
All-In Podcast, LLC
Acquired
Ben Gilbert and David Rosenthal
The Neuron: AI Explained
The Neuron
BG2Pod with Brad Gerstner and Bill Gurley
BG2Pod
Underserved
Andrew Gelina