Common Lisp编写的开源操作系统:Mezzano

jopen 10年前

用Common Lisp编写的一个小巧操作系统。

C-<key> means to hold the control key while typing <key>.
M-<key> means to hold the alt or meta key while typing <key>.
Alphabetic keys typed with control or meta ignore case. C-A and C-a are the same key, while C-! and C-1 are different.

Use M-F12 to switch between En-GB and En-US keymaps.
Windows can be moved by holding the Alt key and dragging.

Line editing
------------
The line editor supports most standard line navigation and editing commands.
There is no command completion support yet.

C-F          Move forward (right) one character, also bound to Right-Arrow.
C-B          Move backward (left) one character, also bound to Left-Arrow.
C-A          Move to beginning of line, also bound to Home.
C-E          Move to end of line, also bound to End.
M-F          Move forward one word.
M-B          Move backward one word.
M-P          Find previous (older) matching history item, also bound to Up-Arrow.
M-N          Find next (newer) matching history item, also bound to Down-Arrow.
C-D          Delete the next character, also bound to Delete.
Backspace    Delete the previous character.
M-D          Delete the next word.
M-Backspace  Delete the previous word.
C-K          Delete from the cursor to the end of the line.
C-C          Enter the debugger using BREAK.
C-G          Invoke the most recent ABORT restart. This will usually clear any input and return you to a prompt.

Editor commands
---------------
The editor mostly follows Emacs conventions, but currently lacks a minibuffer and message pane.

C-F          Move forward (right) one character, also bound to Right-Arrow.
C-B          Move backward (left) one character, also bound to Left-Arrow.
C-N          Move to the next line (down), also bound to Down-Arrow.
C-P          Move to the previous line (up), also bound to Up-Arrow.
C-A          Move to beginning of line.
C-E          Move to end of line.
M-<          Move to the beginning of the buffer, also bound to Home.
M->          Move to the end of the buffer, also bound to End.
C-V          Move the point to the bottom of the screen and recenter, also bound to Page-Down.
M-V          Move the point to the top of the screen and recenter, also bound to Page-Up.
M-F          Move forward one word.
M-B          Move backward one word.
C-M-F        Move forward one s-expression.
C-M-F        Move backward one s-expression.
C-D          Delete the next character, also bound to Delete.
Backspace    Delete the previous character.
M-D          Kill the next word.
M-Backspace  Kill the previous word.
C-K          Kill characters from the point to the end of the line, or kill the newline if the point is at the end of the line.
C-M-K        Kill the next s-expression forward.
C-W          Kill the area between the point and the mark.
C-Y          Yank the last killed text back into the buffer at the point.
C-L          Recenter the display on the point.
M-L          Redraw the screen.
C-Q          Insert the next key typed without intepretting it as a command.
C-Space      If the point is at the mark and the mark is active, deactivate the mark. Otherwise, activate the mark and move it to the point.
C-X C-X      Swap the point and the mark.
C-X C-F      Open or create a file.
C-X C-S      Save the current buffer. If the buffer has no path, you will be prompted for a location to save it.
C-X C-W      Save the current buffer with a new path.
C-X b        Switch to a different buffer.
C-X C-B      List buffers.
C-X k        Close an open buffer.
C-G          Abort the current command.
C-C C-C      Evaluate the current top-level form.
C-C C-A      Move to the start of the current top-level form.

Blinkenlights
-------------
A number of status lights are displayed at the top left of the screen.
From left to right:
Green        Disk read in progress.
Red          Disk write in progress.
Purple       GC in progress.
Cyan         Activity, system is not idle.
Yellow       Snapshot in progress.
Brown        Page fault being serviced.

The entire top line will turn red if the system panics.

Included Libraries
------------------
ASDF 2.26
Alexandria 0c39310e
Babel a994dec2
Chipz 0.7.4
cl-jpeg 1.27
cl-vectors 0.1.5
iterate 1.4.3
png-read dfdfc9a1
zpb-ttf 1.0.2

项目主页:http://www.open-open.com/lib/view/home/1422583299626