50 likes | 183 Views
MINIX 3 作業系統 原始程式碼解析. Boot/ : 啟動相關的程式碼 addaout.c, boot.c/h, bootlock.s, boothead.s, bootimage.c, doshead.s, image.h, installboot.c, jumpboot.s, masterboot.s, mkfhead.s, mkfile.c, rawfs.c/h kernel/ : 行程相關的程式碼
E N D
Boot/ : 啟動相關的程式碼 • addaout.c, boot.c/h, bootlock.s, boothead.s, bootimage.c, doshead.s, image.h, installboot.c, jumpboot.s, masterboot.s, mkfhead.s, mkfile.c, rawfs.c/h • kernel/ :行程相關的程式碼 • clock.c, config.c/h, debug.c/h, exception.c, glo.h, i8259.c, ipc.h, kernel.h, klib88.s, klib386.s, klib.s, main.c, mpx88.s, mpx386.s, mpx.s, priv.h, proc.c/h, protect.c/h, proto.h, sconst.h, start.c, system.c, table.c, type.h, utility.c • system/ : do_xx 的程式, • do_abort.c, do_copy.c, dodevio.c, do_endksig.c, do_exec.c, do_exit.c, do_fork.c, do_getinfo.c, do_getksig.c, do_int86.c, do_iopenable.c, do_irqctl.c, dodo_exec.c, do_fork.c, do_kill.c, do_memset.c, do_newmap.c, do_nice.c, do_privctl.c, do_sdevio.c, do_segctl.c, do_setalarm.c, do_sigreturn.c, do_sigend.c, do_times.c, do_trace.c, do_umap.c, do_unused.c, do_vcopy.c, do_vdevio.c 2
servers/ : 訊息傳遞相關的程式碼 () • ds/ : Data Store Server, (main.c, store.c/h, glo.h, inc.h, proto.h) • fs/ : File System, • buf.h, cache.c, cache2.c, cdprobe.c, device.c, dmap.c, file.h, filedes.c, fproc.h, fs.h, glo.h, inode.c/h, link.c, lock.c/h, main.c, misc.c, mount.c, open.c, param.h, path.c, pipe.c, protect.c, proto.h, read.c, select.c/h, stadir.c, super.c/h, table.c, time.c, timers.c, type.h, utility.c, write.c • Inet/ :: Networking, • buf.c, clock.c, inet.c, inet_config.c, mnx_eth.c, mq.c, qp.c, sha2.c, sr.c, stacktrace.c, version.c • generic/: 網路通用程式 (arp.c/h, assert.h, buf.h, clock.h, eth.c/h, eth_int.h, event.c/h, icmp.c/h, icmp_lib.h, io.c/h, ip.c/h, ip_eth.c/h, ip_int.h, ip_ioctl.c/h, ip_lib.c, ip_ps.c, ip_read.c, ip_write.c, ipr.c/h, psip.c/h, rand256.c/h, sr.h, tcp.c/h, tcp_int.h, tcp_lib.c, tcp_recv.c, tcp_send.c, type.h, udp.c, udp.h, udp_int.h) • minix3/ : 只有 queryparam.c, .h • init : 只有 init.c , 是所有 Process 的 Father Process. • is/ : information server, 除錯資訊的 dump. • dump.c, dmp_ds.c, dmp_fs.c, dmp_kernel.c, dmp_pm.c, dmp_rs.c, glo.h, inc.h, is.h, main.c, proto.h • pm/ :: Process Management, 包含 • alloc.c, break.c, const.h, exec.c, forkexit.c, getset.c, glo.h, main.c, misc.c, mproc.h, param.h, pm.h, proto.h, signal.c, table.c, time.c, timers.c,trace.c, type.h, utility.c • rs/ : Reincarnation(輪迴轉世) Server, (inc.h, main.c, manager.c/h, proto.h, service.c) • sm/: System Process Manager, (沒有 *.c 只有一個 makefile) 3
drivers/ : IO 驅動程式 (drivers.h) • at_wini/ : driver for the IBM-AT winchester controller. • bios_wini/ : hard disk driver that uses the ROM BIOS. • Cmos/ : access the CMOS chip to get or set the system time. • dp8390/ : Ethernet device driver for NS dp8390 cards. (dp8390.c, ne2000.c, rtl9029.c, wdeth.c) • dpeth/ : Ethernet device driver for 3Com Etherlink (3c501) boards, • 包含 3c501.c, 3c503.c, 3c509.c, 8390.c, devio.c, dp.c, ne.c, netbuff.c, wd.c, • floppy/ : Floppy Disk Driver, 包含 floppy.c • fxp/ : Ethernet device driver for Intel 82557, 82558, 82559, 82550, and 82562 fast ethernet controllers. • 包含 : fxp.c (與裝置相關), mii.c (與裝置無關) • lance/ : Ethernet driver for AMD LANCE based ethernet cards. (lance.c) • libdriver/ : Device Independent Device Driver Interface. (driver.c, drvlib.c) • libpci/ : PCI 插槽 (pci.c, pci_table.c, pci_amd.h, pci_intel.h, pci_via.h, pci.h) • log/ : system log device (log.c, diag.c, kput.c) • memory/ : (memory.c) • printer/ : printer driver. It is a fairly simple driver,supporting only one printer. Characters that are written to the driver are written to the printer without any changes at all. • random/ : random number generator, (main.c, random.c, sha2.c) • rescue/ : rescue device driver (rescue.c) • rtl8138/ : device driver for Realtek rtl8139 based ethernet cards. • sb16/ : driver for a DSP (Digital Sound Processor) on a SoundBlaster 16 soundcard. • tty/ : terminal driver (tty.c, rs232.c, pty.c, keyboard.c, console.c, vidcopy.c) 4
tools/ : 工具軟體 (Makefile, mkboot, tell_config) • include/ : *.h 的表頭檔 • a.out.h, alloca.h, ansi.h, assert.h, configfile.h, ctype.h, courses.h, dirent.h, env.h, errno.h, fcntl.h, float.h, grp.h, inttype.h, lib.h, libgen.h, libutil.h, limits.h, locale.h, math.h, mathconst.h, netdb.h, pwd.h, regex.h, regexp.h, setjmp.h, sgtty.h, signal.h, stdarg.h, stddef.h, stdint.h, stdio.h, stdlib.h, string.h, tar.h, termcap.h, termios.h, time.h, timers.h, tools.h, ttyent.h, unistd.h, utime.h, utmp.h • arpa/ : inet.h • ibm/ : bios.h, cmos.h, cpu.h, diskparm.h, int86.h, interrupt.h, memory.h, partition.h, portio.h, ports.h • minix/ : bitmap.h, callnr.h, cdrom.h, com.h, config.h, const.h, devio.h, dl_eth.h, dmap.h, fslib.h, ioctl.h, ipc.h, jmp_buf.h, keymap.h, minlib.h, partition.h, paths.h, sound.h, swap.h, sys_config.h, syslib.h, sysutil.h, type.h, u64.h, • net/ : hton.h, if.h, ioctl.h, netlib.h • gen/ : arp_io.h, dhcp.h, eth_hdr.h, eth_io.h, ether.h, icmp.h, icmp_hdr.h, if_ether.h, in.h, inet.h, ip_hdr.h, ip_io.h, nameser.h, netdb.h, oneCsum.h, psip_hdr.h, psip_io.h, resolv.h, rip.h, route.h, socket.h, tcp.h, tcp_hdr.h, tcp_io.h, udp.h, udp_hdr.h, udp_io.h, vjhc.h • netinet/ : in.h, tcp.h • sys/ : asynchio.h, dir.y, file.h, ioc_cmos.h, ioc_disk.h, ioc_file.h, ioc_memory.h, ioc_scsi.h, ioc_sound.h, ioc_tape.h, ioc_tty.h, ioctl.h, mtio.h, param.h, ptrace.h, resource.h, select.h, sigcontext.h, socket.h, stat.h, statfs.h, svrctl.h, time.h, types.h, uio.h, un.h, utsname.h, wait.h, 5