|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|