If you look at the source code of a program, learn how it works, and then you make your own program with the same functionality, is your program "based on" the original, or is it independent work?
If you make a program that uses the same syscall setup as another, but the code is different and not copied, is it "based on" the original, or independent work?