Appearance
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
)
- Partition (
10.05.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
10.05.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
10.05.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
10.05.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!!
10.05.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
10.05.2024
4. Linux Tools
13
Repo clonen (z.B. den Kernel)
git clone https://github.com/torvalds/linux.git
10.05.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
10.05.2024
4. Linux Tools
21
Typischer workflow
bash
git fetch
git merge origin/master
# kurz
git pull
10.05.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.
10.05.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.
10.05.2024
4. Linux Tools
26
GitHub
- Microsoft Produkt
- nicht Open Source
- Hilft mit UI für das Management
- Static Hosting
- Communityaspekt
10.05.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
10.05.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.
10.05.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.
10.05.2024
4. Linux Tools
docker
32
Nachteile auf Embedded
- Viel Resourcen (libraries nicht mehr shared)
- Oft Images nicht für ARM kompiliert
10.05.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.
10.05.2024