The number of block addresses that can be stored inside a single index block is found by dividing the block size by the size of each address:
$$N = \frac{128 \text{ Bytes}}{8 \text{ Bytes}} = 16 \text{ addresses}$$
The 8 direct block addresses point directly to 8 individual data blocks on the disk.
The 1 indirect block address points to an index block that can hold a maximum of 16 direct block pointers:
$$\text{Indirect Blocks} = 1 \times 16 = 16 \text{ blocks}$$
The 1 doubly indirect block address points to an index block where each entry links to another level of index blocks, creating a nested grid of pointers:
$$\text{Doubly Indirect Blocks} = 1 \times 16 \times 16 = 256 \text{ blocks}$$
Summing up all the blocks that can be linked under this file descriptor structure gives the total number of addressable data blocks:
$$\text{Total Blocks} = 8 + 16 + 256 = 280 \text{ blocks}$$
The maximum possible file size is calculated by multiplying this total addressable block count by the capacity of a single data block:
$$\text{Maximum File Size} = 280 \text{ blocks} \times 128 \text{ Bytes/block} = 35840 \text{ Bytes}$$
Converting this capacity from raw bytes into KBytes by dividing by 1024 yields the final limit:
$$\text{Maximum File Size} = \frac{35840}{1024} \text{ KBytes} = 35 \text{ KBytes}$$
Correct Option: B