SourceForge.net Logo

ManRiX
THE DESIGN OF ROBUST AND EFFICIENT MICROKERNEL

Support This Project Donation
  Development :
 
     Mailing List Archive
  Downloads
  Sources
  FAQS
  Resources
  Developers
  Browse CVS

Ext2Read project:
This is the project we have done which read ext2 partition from the DOS.
To Download click

Home
 
Google Search
SourceDownload
Intel Manuals
OS Resources
Forums
Contact
Status of Project
Papers

Contributers
of the project and sponsors

How do I install ManRiX on stan alone System ?.
How do I run floppy image ?.
How do I change GRUB configure file to load ManRiX ?.
How do I write Device drivers for ManRiX ?.
How do I compile ManRiX on gcc compiler ?.
What are the services resides on microkernel ?.
Is ManRiX have its own C library or not ?.
How many architectures ManRiX support ?.
What are the services resides on user space ?.
Why microkernel and POSIX standard ?.
What about filesystem support till now ?.
How many system call ManRiX poses ?.
             
How do I install ManRiX on System ?.      

You should have grub as bootloader. Grub bootloader loads the ManRiX.
Download, unzip both the codes(manrix.tar.gz) and Images(manrix.img.gz).
To Create a bootable floppy,
Unzip the manrix.img.gz;
Write to floppy:
In **ix cat manrix.img > /dev/fd0.
In Windows get the program rawwrite
(http://uranus.it.swin.edu.au/~jn/linux) to write to floppy.


How do I run floppy image ?.      
First download the floppy image and use any emulator to load the floppy image. You can use bochs, vmware(virtual machine)to load.

How do I change GRUB configure file to load ManRiX ?.

First open the grub.conf file.Add the following line on the grub

title ManRiX OS. (i am assuming you are not using LVM).
root (hd0,6) # replace this with whatever on Linux entries.
kernel /sys/kern
module /sys/conmngr
module /sys/fsiomngr 7 ;
module /bin/init
module /sys/misciomngr
module /bin/ls
NOTE: the fsiomngr service requires a parameter which must be ext2/3
partiton and will be mounted as root. 6 will be same as hda7 in linux,
(hd0,6) in grub.


How do I compile ManRiX on gcc compiler  

Compile the latest Codes.(use gcc)
Microkernel: goto manrix/microkernel and type "make". copy kern to
/sys/ (in the floppy)
C library: goto manrix/soft/libc and type "make".
Console manager: goto manrix/server/console and type "make" copy
conmngr to /sys/
filesystem manager: goto manrix/server/fsiomngr and type "make". copy
fsiomngr to /sys/
misc i/o manager: goto manrix/server/miscio and type "make". copy
misciomngr to /sys/
init process: goto manrix/soft/init and type "make". copy init to
/bin/ (in your floppy).
login process: goto manrix/soft/login and type "make". copy login to
/bin/ (in your floppy).


Why microkernel and POSIX standard ?.        
Though there are some pitfalls of using Microkernel Design, there are some benefits too. First microkernel design makes ManRiX modular. Another important benefit is that the fault is one driver or subsystem does not bring the whole system down. The subsystems and drivers can be restarted at runtime. Also the code grows slower than Monolithic kernels.There are a lot of arguments going on between microkernel and Monolithic kernel. Linus Torvalds is strictly against microkernel and we can see few articles like Linus Vs Tanenbaum

We are trying to give ManRix POSIX interface. There are a lot of benefits of this and no drawbacks. First of all the end users and software developers does not need to learn ManRix specific things. They can simply use the POSIX interface. This also cuts down Training Cost and time.Secondly, the UNIX programs will be source compatible with ManRix. The program written for UNIX or LINUX will compile and run in ManRix without any change and sometimes minor change. So, there is no need for us to create separate applications for ManRiX. We can easily port GNU application.

This kind of Design is ideal for Real Time Operating Systems, but we are using this also for Desktop Systems. The Real Time Capabilities are not Added Yet but will be added gradually.


What are the services resides on microkernel ?.  
Till know the services resides on Microkernel are:
Thread And Process managenemt
Symmetric Multiprocessor(SMP):
Interprocess Communication:
Virtual Memory management:
Timers management:
Signal management:
Exception & IRQS:
Kernel Preemption:
Schedular

Is ManRiX have its own C library or not ?.        

ManRiX till now support ANSI and POSIX interface. We have reuse glibc library according to our ManRiX design if possible.Otherwise we have written on our own.


How many architectures ManRiX support ?.
Till now the ManRiX support X86 based architecture.

What are the services resides on user space ?.  
Some of the services tiull now manRiX support are:
File Sytem Manager
Floppy Manager
Console Manger
Bus Manager
ATA Manager
Miscellaneous manager

What about filesystem support till now ?.
Till now ManRiX support ext2 filesystem and fat system is on the debugging process

How many system call ManRiX poses ?.      

Till now ManRiX support 63 system call
#define SYS_FORK 1
#define SYS_SPAWN 2
#define SYS_VFORK 3
#define SYS_EXEC 4
#define SYS_EXIT 5
#define SYS_GET_PID 6
#define SYS_GET_PPID 7
#define SYS_WAIT 8


#define SYS_GET_USER 9
#define SYS_SET_USER 10

#define SYS_CREATE_THREAD 11
#define SYS_DESTROY_THREAD 12
#define SYS_GET_TID 13
#define SYS_GET_USTACK 14
#define SYS_THREAD_JOIN 15

#define SYS_SCHED_GET 16
#define SYS_SCHED_SET 17
#define SYS_SCHED_YIELD 18

#define SYS_SIG_MASK 19
#define SYS_SIGNAL_ACTION 20
#define SYS_KILL 21
#define SYS_SIGNAL_SUSPEND 22
#define SYS_SIGNAL_STACK 23
#define SYS_SIGNAL_WAIT 24

#define SYS_VM_ALLOCATE 25
#define SYS_VM_DEALLOCATE 26
#define SYS_VM_MAP 27
#define SYS_VM_LOCK 28
#define SYS_VM_UNLOCK 29
#define SYS_VM_PROTECT 30

#define SYS_SEND_MESSAGE 31
#define SYS_RECEIVE_MESSAGE 32
#define SYS_REPLY_MESSAGE 33

#define SYS_IRQ_REQUEST 34
#define SYS_IRQ_FREE 35
#define SYS_IRQ_WAIT 36
#define SYS_LOG 37
#define SYS_CHANGE_IOPL 38

#define SYS_SYNC_CREATE 39
#define SYS_SYNC_DESTROY 40
#define SYS_SYNC_LOCK 41
#define SYS_SYNC_UNLOCK 42

#define SYS_FD_ALLOC 43
#define SYS_FD_FREE 44

#define SYS_SYSINFO 45
#define SYS_PIDLIST 46
#define SYS_PSTAT 47
#define SYS_TSTAT 48

#define SYS_SLEEP_UNINT 49
#define SYS_WAKE_UNINT 50


#define SYS_NSLEEP 51
#define SYS_GETTIME 52
#define SYS_SETTIME 53
#define SYS_CLOCK 54
#define SYS_GET_RESOLUTION 55
#define SYS_TIMER_CREATE 56
#define SYS_TIMER_DELETE 57
#define SYS_GET_TIMER 58
#define SYS_SET_TIMER 59
#define SYS_ALARM 60

#define SYS_DUP 61

#define SYS_GET_CWD 62
#define SYS_PUT_CWD 63


 
 
   
             
©2005 ManRiX Project