/** * Initialize this kernel. Creates a synchronized console and sets the * processor's exception handler. */ public void initialize(String[] args) { super.initialize(args); console = new SynchConsole(Machine.console()); Machine.processor().setExceptionHandler(new Runnable() { public void run() { exceptionHandler(); } }); }
/** * Start running user programs, by creating a process and running a shell * program in it. The name of the shell program it must run is returned by * <tt>Machine.getShellProgramName()</tt>. * * @see nachos.machine.Machine#getShellProgramName */ public void run() { super.run(); UserProcess process = UserProcess.newUserProcess(); String shellProgram = Machine.getShellProgramName(); Lib.assert(process.execute(shellProgram, new String[] { })); KThread.currentThread().finish(); }
/** * Test the console device. */ public void selfTest() { super.selfTest(); System.out.println("Testing the console device. Typed characters"); System.out.println("will be echoed until q is typed."); char c; do { c = (char) console.readByte(true); console.writeByte(c); } while (c != 'q'); System.out.println(""); }
/** * Terminate this kernel. Never returns. */ public void terminate() { super.terminate(); }