Skip to content
4. Linux Tools
1

Tools ​

fdisk, git, docker, gcc

05.03.2024
4. Linux Tools
2

fdisk ​

Formatieren von Disks (SD-Karten, SSD, etc.)

05.03.2024
4. Linux Tools
3

Blockdevices: SD-Card (USB) ​

lsblk

sdb           8:16   1  29.8G  0 disk 
├─sdb1        8:17   1     1M  0 part 
├─sdb2        8:18   1    64M  0 part /media/mdc/BOOT
└─sdb3        8:19   1   128M  0 part /media/mdc/rootfs
  • Major Node (/dev/sdb)
    • Block als ganzes
  • Minor Node (/dev/sdb1)
    • Partition (ext4, ntfs, fat32, ubifs)
05.03.2024
4. Linux Tools
4

Blockdevices: SSD ​

lsblk

nvme0n1     259:0    0   477G  0 disk 
├─nvme0n1p1 259:1    0   450M  0 part 
├─nvme0n1p2 259:2    0    99M  0 part /boot/efi
├─nvme0n1p3 259:3    0    16M  0 part 
├─nvme0n1p4 259:4    0 251.8G  0 part /
├─nvme0n1p5 259:5    0 223.8G  0 part 
└─nvme0n1p6 259:6    0   882M  0 part
05.03.2024
4. Linux Tools
5

Was sind wichtige Unterschiede zwischen SD-Karte und SSD? ​

05.03.2024
4. Linux Tools
6

Partitionslayout z.B. für das Embedded Devboard DE1-SoC ​

sudo fdisk -l /dev/sdb

Disk /dev/sda: 29.8 GiB, 32010928128 bytes, 62521344 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xd68e23ba

Device     Boot  Start    End Sectors  Size Id Type
/dev/sda1         2048   4095    2048    1M a2 unknown
/dev/sda2         4096 135167  131072   64M  b W95 FAT32
/dev/sda3       135168 397311  262144  128M 83 Linux
05.03.2024
4. Linux Tools
7

GIT ​

Logo

05.03.2024
4. Linux Tools
8

GIT CVS ​

Version Management Tool

  • Geschrieben von Linux Torvalds
  • Begründer / Erfinder von GIT
  • Wird für den Kernel verwendet
05.03.2024
4. Linux Tools
9

Braucht git einen Server? ​

05.03.2024
4. Linux Tools
10

GIT vs. andere CVS ​

  • GIT ist dezentral
    • ... hat keinen Single Point of Failure
  • Alle git clones haben immer die ganze History
  • Branches müssen nicht gemerged werden
    • ... führt zu viel weniger Konflikten
  • Open Source unter GPL
  • Kann Offline eingesetzt werde
    • um Checkpoints einzurichten
  • Filebasiert
  • schnell!!
05.03.2024
4. Linux Tools
11

GIT vs GitHub vs GitLab ​

  • GIT ist dezentral
    • ... hat keinen Single Point of Failure
  • Alle git clones haben immer die ganze History
  • Branches müssen nicht gemerged werden
    • ... führt zu viel weniger Konflikten
  • Open Source unter GPL
  • Kann Offline eingesetzt werde
    • um Checkpoints einzurichten
05.03.2024
4. Linux Tools
12

Repo erstellen ​

git init

05.03.2024
4. Linux Tools
13

Repo clonen (z.B. den Kernel) ​

git clone https://github.com/torvalds/linux.git

05.03.2024
4. Linux Tools
14

Branches anzeigen ​

git branch -a

zeigt auch remote branches an

05.03.2024
4. Linux Tools
15

Tags anzeigen ​

git tag

05.03.2024
4. Linux Tools
16

Auf Tag / Branch wechseln ​

git checkout v5.5.7 -b local-v5.5.7

05.03.2024
4. Linux Tools
17

Git Checkout ​

  • Wechselt auf einen anderen branch / tag
  • -b erstellt einen lokalen neuen branch
  • ... d.h. der lokale Branche ist nicht der gleiche Branche wie upstream!
  • ... man kann so besser experimentieren
05.03.2024
4. Linux Tools
18

"Lockt" man bei einem checkout den branch für andere? ​

05.03.2024
4. Linux Tools
19

Änderungen von Upstream herunterladen ​

git fetch

05.03.2024
4. Linux Tools
20

Änderungen übernehmen (merge) ​

git merge origin/master

05.03.2024
4. Linux Tools
21

Typischer workflow ​

bash
git fetch
git merge origin/master

# kurz
git pull
05.03.2024
4. Linux Tools
22

Tracken, aufnehmen einer Änderung ​

git commit -am "neues feature"

05.03.2024
4. Linux Tools
23

Änderung für andere veröffentlichen ​

git push origin master"

05.03.2024
4. Linux Tools
24

Konflikte ​

Auto-merging Main.java
CONFLICT (content): Merge conflict in Main.java
Automatic merge failed; fix conflicts and then commit the result.
  • Muss von Hand aufgelöst werden.
05.03.2024
4. Linux Tools
25

rebase vs. merge ​

  • merge ist chronologisch
  • rebase ist chronologisch, aber in einem branch
    • ... d.h. commits die logisch zusammengehören werden nicht im Zick-Zack in die History eingewebt.
05.03.2024
4. Linux Tools
26

GitHub ​

  • Microsoft Produkt
  • nicht Open Source
  • Hilft mit UI für das Management
  • Static Hosting
  • Communityaspekt
05.03.2024
4. Linux Tools
27

GitLab ​

  • semi Open Source (Open Source Freemium)
  • Hilf mit UI für das Management
  • gute Projektmanagement Tools
  • Issuetracker, Time Tracking
  • Static Hosting
  • Premium Feature: Epics / Gantt Charts
05.03.2024
4. Linux Tools
28

Git im Einsatz ​

Diese Slides / Page

05.03.2024
4. Linux Tools
29

Für was wird Docker eingesetzt? ​

05.03.2024
4. Linux Tools

docker

30

Docker ​

  • Light weight Container
  • keine volle Virtualisierung
  • erlaubt das Verwenden von isolierten Dependencies
  • ... Applikationen brauchen bestimmte Versionen von Libraries.
05.03.2024
4. Linux Tools

docker

31

Docker Compose ​

  • erlaubt das verwenden von mehreren Docker Containers gleichzeitig
  • Volumes: erlaubt das "mounten" von Directories aus dem Hostsystem in das Gastsystem
  • Mittels Daemon (up -d) können Container ganz einfach gestartet werden.
05.03.2024
4. Linux Tools

docker

32

Nachteile auf Embedded ​

  • Viel Resourcen (libraries nicht mehr shared)
  • Oft Images nicht für ARM kompiliert
05.03.2024
4. Linux Tools
33

ARM GCC Compiler ​

  • GNU Compiler für C und C++
  • Maintained von ARM (früher Linaro)
  • Unterschiedliche Targets (z.B. linux-eabi).
  • als alternative existiert der clang Compiler.
05.03.2024