Apple
Embedded/FirmwareAppleOtherTechnical Interview

Apple Core OS Internship

@ Apple

5

📝 Interview Question

Interview 1 went something like this: OS coneceptual questions, mostly relating to his area of expertise (which iirc was to do with TLB/virtualization or something like that), then write C code to reverse a binary string and unit tests for that function

Interview 2 actually started out with analyzing a block of C code, and identifying a potential performance issue (it had to do with the struct alignment/padding), then doing C coding on finding a device from a devicetree, and my answer was using recursion

// Let’s say we have thread1-threadN pinned on core1-coreN, respectively.

// What’s the potential performance problem with the following code?

int per_thread_integers[NUM_THREADS];

void thread_function(int index) {
    while (true) {
        per_thread_integers[index]++;
    }
}

//--------

struct {
    int integer;
    uint8_t _padding[CACHE_LINE_SIZE - sizeof(int)];
} per_thread_integers[NUM_THREADS];

void thread_function(int index) {
    while (true) {
        per_thread_integers[index].integer++;
    }
}

//------------------------

// The devicetree is an important data structure in kernel programming. 
// The kernel uses it to understand the hardware environment in the system it’s running on.

// For our purposes, the devicetree is nothing more than a tree of nodes where each node has a name (e.g., “uart@fe001000”) and a list of properties. 
// Each property has a name (e.g., “compatible”) and a value (e.g., “ns16550”). 
// The “phandle” property is special in that it’s present on all nodes and gives each node a globally unique identifier.

// In our simplified scenario, values can either be strings (e.g., “fsl,mpc8572ds”) or arrays of unsigned 32-bit integers (e.g., <0xfe001000 0x100>).

//                                                                     ┌──────────────────────────────────┐
//                                                                     │ cpu@0                            │
//                                                                  ┌─►├──────────────────────────────────┤
//                                                                  │  │ phandle            = <7>         │
//                 
█████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ ██████████████████████████████████████████████████████████ ██████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ ███████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████ ██████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ ██████████████████████████████████████████████████████████ ██████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████ ██████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ ██████████████████████████████████████████████████████████████ ████████████████████████████████ ██████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ ███████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████ ██████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ ███████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ ██████████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████ ██████████████████ ██████████████████ ████████████████████████████ █████████████████████████████████████████████████████████████ ██████████████████████████ ██████████████████████████████████ █████████████████ ███████████████ ███████████████ ███████████████ ██████████████████ █████████████████████████ ██████████████████████████████ ████████████████████████████████ ██████████████████████████████████████ █████████████████████ ███████████████ █████████████████████████████████████████████ ███████████████ █████████████████████████████████████████ █████████████████████████████████████████████████████████████████ ████████████████████████████████████████████ ████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████ ███████████████ ███████████████ ████████████████████ ██████████████████ █████████████████████████ ██████████████████████████████ ████████████████████████████████████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████████████████ █████████████████ ███████████████ ███████████████ ███████████████ ██████████████████ █████████████████████████████████████████████████████████████████ ████████████████████████████ █████████████████████████████████████████████████████████████████ ██████████████████████████ █████████████████████████████████████████████████████████████████ █████████████████ ██████████████████████████████████████████████████ ███████████████ ███████████████
🏢

Company

Apple

📍

Location

Not specified

📅

Posted

September 16, 2025