Małe zadania #2 i #2+

Napisać program używający wątków bez pomocy biblioteki wątków (surowe syscalle).

Program powinien:

  1. Utworzyć nowy wątek w tej samej przestrzeni adresowej - zaalokować stos dla nowego wątku, użyć syscalla clone do uruchomienia kodu. Przydadzą się flagi CLONE_THREAD | CLONE_VM | CLONE_SIGHAND | CLONE_FS | CLONE_FILES | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID

  2. W nowym wątku:

    • wypisać 1000 razy "A\n" na standardowe wyjście

    (używając syscalla write) - zakończyć wątek (syscall exit).

  3. W głównym wątku:

    • wypisać 1000 razy "B\n" na standardowe wyjście (używając syscalla write)

    • poczekać na zakończenie się nowego wątku (futex z FUTEX_WAIT)

    • zakończyć program (syscall exit_group).

Zadanie można oddawać w dwóch wersjach:

  • #2 (łatwa, warta 1 punkt): używając funkcji clone, syscall z libc.

  • #2+ (trudna, warta 2 punkty): wołając syscalle używając wstawek assemblerowych.