Home

Welcome

Impala is homemade UNIX-like operating system, it was developed as bechelor project at University of Wroclaw, Poland.

The 4.4BSD, FreeBSD, Ultrix and Solaris source codes had big impact on structure of our operating system, so probably it could be a good start to developing real UNIX-based system (not Linux based).

Authors

  • Mateusz Kocielski (shm)
  • Artur Koninski (takeshi)
  • Pawel Wieczorek (wieczyk)

Kernel features

  • virtual memory (supports i686 global pages extension)
  • virtual file system layer, with FAT12, device file system (devfs) and memory file system support
  • floppy controller driver with ISA DMA support
  • kernel-level threads
  • priority-based scheduler
  • inter process communication: SystemV message queues, pipes, signals
  • scanning PCI devies :) (not finished driver for PCI bus)

and very small thing:

  • GRUB multiboot with command line

User-space features

  • library compatible with PTHREADS (maybe in details this compatibility fails)
  • our libc
  • programs are in AOUT/ZMAGIC format
  • ported Almquist Shell (from FreeBSD sources)
  • ported VTTEST program
  • ported minigzip program and libz library
  • tar (handles only USTAR archives) program which progress bar :-)
  • ported nvi (from FreeBSD sources)

Quality

We put many effort to achieve good quality, but we had only few months to develop whole system, so it contains many bugs etc. If you are interrested in hacking operating system then Impala could be good sandbox for you.

Building

To build operating system you need binutils and gcc for i386-pc-aout and i386-pc-elf targets. Run the tools/install_sdk.sh script in empty directory, it will automaticly install toolchains (in the ${HOME}/ImpalaSDK directory).

When you have SDK, type those commands to build whole system:

> source conf/DEFS.sh
> sh prepare.sh
> make build

Running

To prepare floppy images you need to type this command:

> make distribution

Then in the distribution directory you will find those images:

  • distribution/default/floppy.img - our system, with demos and all commands except vi
  • distribution/vi/floppy.img - contains ported nvi
  • distribution/minimal/floppy.img - contains only programs needed to run system

Screenshots

  • Loading, tar with progressbar :-)

Loading

  • VTTEST, the main menu

Vttest-menu

  • VTTEST, ANSI color sequences

Vttest-colors

  • The ps command

ps

  • SYSVMSG - SystemV message queues IPC

sysvmsg

  • Page fault

pfault

  • Almquist shell

shell

  • FAT12

fat12

  • POSIX Threads demo program

pthdemo3

  • Nvi

vi

Updated

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.