1. What part of the OS contains the filesystems. How would I call them or determine if I have a certain filesystem in assembly.
---> File systems are usually implemented in the lower layers of an OS. These layers are responsible for accessing the hardware. Considering an examle of linux its upto the VFS(virtual file system) to determine what filesystem is present say on a floppy and then load the appropriate module that provides interface to that file system. All different FS have standards file info tables(FAT,Superblocks), one way is to load these file tables and determine what file system is present
2. Should I use paging for my os or use segmented memory modules.
--->It is upto an OS developer what types of programs he would run on his OS.
Use Paging & segmentation If
a) You require segment size bigger than 1M(2^20)
b) You can oversee internal fragmentation caused due to paging like allocating a single data structure like semops a full page(One can get aroud this problem by grouping many such DataStructure a single page).
Use only Segmentation if
a) You are well off with the 1M max segment size of all segements.
b) You are concerned about the complexity that paging increases in your code.
note: advantages of paging by far overcomes its disadvantages
4. which is better: a microkernel or a monolithic kernel
for an os.
--> its a highly debatable question and one that can spark a war among OS developers.
;D
a)Code Understadability:- Micro is much better than mono as the divides the OS into many parts(like Object Managers in NT. All these objects communicate with each other via a standard messge passing interface).
Each such part can be indivually studied at ease.
b)Code Maintanence:- Micro fares better as indepent parts can be modified without causing problems. like in NT all object have a standard interface, you are not concerned what objects do and how they do it.
Even linux developers were concerned in the starting about this as linux is a mono. It is only due to a large developer base its not a problem now.
c) Speed(i think the most imp criteria):-Monos provide raw speed that micros cannot just working on a simple rule that a single compiled of an OS is much fater than a barebone kernel loading appropriate modules only when required.
Due to juggernautic sizes recent kernels have achieved micros are in vogue.