Here, 8 direct disk block address:
means, you have 8 addresses which are pointing to 8 disk blocks. So, with this 8 direct DBA you are getting = 8*128 bytes (no of disk blocks * size of disk block)
1 indirect disk block address:
means, you have a disk block, in which only disk block addresses are there and each of the DBA is pointing to disk block. therefore you need to find how many DBA you can store in 1 disk block. which are,
no of address in 1 block = (Disk block size) / Disk block address in bytes
here, it is 128/8 = 16 address in 1 block and each is pointing to one disk block. therefore with this 1 indirect block address you are getting 16*128 Bytes
doubly indirect block address:
means, you have a disk block in which disk block addresses are there(same like singly indirect). but now these blocks have again only address of next level disk blocks. which are same as you got in singly indirect. therefore with doubly indirect 16*16*128 bytes.
total:
therefore maximum space = maximum file size = direct + singly + doubly
= (8*128) + (16*128) + (16*16*128)
= 1024B + 2048B + 32768B
=35840 Bytes
=35 Kbytes