Arrange the following operating system components from lowest to highest in terms of abstraction (from hardware to user-level):
1️⃣ Kernel
2️⃣ User Interface (Shell)
3️⃣ Application Programs
4️⃣ Hardware
A. 1 → 4 → 3 → 2
B. 4 → 3 → 2 → 1
C. 3 → 2 → 4 → 1
D. 4 → 1 → 2 → 3