TIX: A Tiny Operating System
Site hosted by Angelfire.com: Build your free website today!

TIX: A Tiny Operating System

by Sean Lane Fuller
TIX is very small, fully functional operating system I am writing. I'm trying to touch the Zen of Operating Systems. Look out Microsoft? I will be posting full source code here as the OS develops. If you have any comments, code, etc. please send email. You may also want to take a look at another site I maintain about a very small language called MOUSE. I'm giving away the source for a free compiler, interpreter, and debugger for the language there. And, of course, I will eventually port the MOUSE language to TIX.

Goals

  • Entire operational system fits on 1 3.5" DD diskette
  • Runs on any x86, from an old 8086 to a Pentium II and beyond.
  • Self supporting OS where you can rebuild the OS and tools from within the TIX environment
  • The OS does NOT run on an emulation
  • as little assembly language as possible

Small Steps

  • Develop a tiny assembler (ta)
    • No macros
    • Only support 8086 operations
    • BIN (COM) output initially
    • Maybe just the following instructions
      • ADD, AND, CALL, CLC, CLD,
      • CLI, CMP, DB, DD, DEC,
      • DIV, DQ, DT, DW, EQU,
      • HLT, IDIV, IMUL, IN, INC,
      • INT, INT01, INT1, INT3, IRET,
      • JCXZ, JMP, LDS, LEA, LODSB,
      • LODSW, MOV, MUL, NEG, NOP,
      • NOT, OR, OUT, POP, PUSH,
      • SHL, SHR, STI, SUB, TEST,
      • WAIT, XOR, Jcc
  • I started looking at NASM, it looks too difficult to chop down as lean as I need to go. Does anybody else have any seed code I could use?
  • Write a disk writer
    • Like linux rawread, but smaller
    • Initially a DOS executable
    • Initially written using Watcom probably
  • Develop a bootstrap for floppies
    • written using tiny assembler
    • just boot up and print a message to the screen at first then later load a kernel
  • Develop a tiny C compiler (tc)
    • Allow for inline tiny assembler code
    • Compiler must compile its own code
    • Based on original 1 file small C?
    • Integer only, no structures
  • Port tiny assembler to tiny C
  • Develop a very simple kernel
    • Fixed number of tasks
    • auto load first task which is user interface
  • Develop a very simple file system
    • 256 Entry directory
    • No subdirectories
    • uses FAT
  • Develop user interface task
    • Command to load and run a new task
    • Command to delete a file
    • Command to copy a file
  • Add OBJ output to assembler
  • Develop a standard C library
  • Develop a tiny editor in Tiny C
  • Port MOUSE to TIX.

    Email: seanfuller@yahoo.com