Feb 15, 2008
- New technical manager. See the peole page.
Nov 14, 2007
- New S.Ha.R.K. version 1.5.4 available here, now runs on virtual machines like QEmu and VirtualBox.
Jan 17, 2007
- New S.Ha.R.K. version 1.5.3 available here, now fully GPL compatible.
Aug 21, 2006
- CiberMouse competition library for S.Ha.R.K. available here (RTSS 2006).
Jul 18, 2006
- New Tracer manual draft released; documentation section restyled; experimental txt and html manual versions. See here.
Jul 17, 2006
S.Ha.R.K. Version 1.4
- Differently from 1.22, S.Ha.R.K 1.4 needs a DJGPP with ELF
binaries support (normally DJGPP creates COFF executable). To get a
DJGPP ready for ELF, you can download the new DJGPP development package
Inside it, you can find the BINUTILS 2.14 and GCC 3.3.3 re-compiled for
ELF cross-compile environment.
If you want to download it separately, click BNU214E.ZIP and GCC333E.ZIP
- It is possible to compile S.Ha.R.K. with Cygwin.
As DJGPP, you need a cross-compile environment for I386-ELF binaries.
Check this link
to undestand how to do it.
- To install S.Ha.R.K. now you DON'T need these steps
cp config/mk/gnu.mk config/gnu.mk
cp oslib/mk/gnu.mk oslib/gnu.mk
But after you edit the SHARK.CFG file, where all the kernel options are
can suddenly call "make". This is the default version of SHARK.CFG
# S.Ha.R.K. Setup File
# Kernel Image Start Point
# MEM_START = 0x220000
# The kernel image file will be loaded starting from this
# physical memory address. For DOS users, it is important
# to set an high address (like 0x1720000) if you are using
# Smartdrive or other tools which require Extended Memory
MEM_START = 0x220000
# Enable the system time computation through TSC register
# Only Pentium or higher CPU class
TSC = TRUE
# Enable timer interrupt through P6 APIC instead of PIT
# Only P6 or higher CPU class, TSC support must be enabled
APIC = TRUE
# Enable TSC Read Timer Optimization
# TIMER_OPT = 1000 (For CPU < 1 GHz - Wraparound 585 years)
# TIMER_OPT = 2000 (For 1 GHz < CPU < 2 GHz - Wraparound 146
# TIMER_OPT = 4000 (For 2 GHz < CPU < 4 GHz - Wraparound 36 years)
# TIMER_OPT = 8000 (For CPU < 8 GHz - Wraparound 292 years)
TIMER_OPT = 8000
# Select the events tracer
# TRACER = NO,OLD,NEW
TRACER = NO
# Select the BIOS INTERRUPT access mode
# BIOS = X,VM86
# X means that you must use x.exe as shark loader
# if shark needs to call BIOS interrupt (Ex. to enable
# VM86 means that shark call the BIOS interrupts as
# Virtual Machine 86, and you can load a graphical
# demo also through GRUB. VM86 MODE IS NOT COMPATIBLE
# WITH SOME VGA CARDS (like MATROX)
BIOS = X
# Select the FrameBuffer Configuration
# FB = VESA,FINDPCI,VGA16
# VESA it uses the VBE interrupts to enable the
# selected video mode
# FINDPCI the FrameBuffer driver will try to find a
# PCI/AGP graphical card. If a card is found, FB will
# use a specific driver to enable it
# VGA16 enable the VGA16 (4 bpp) video mode
FB = VESA
# Select the FrameGrabber Configuration
# FG = NORMAL, FORCE_PXC
# NORMAL default mode
# FORCE_PXC it forces the frame grabber to init a PXC200 card
FG = NORMAL
This is an UNSTABLE version of S.Ha.R.K.
There are a lot of new features and modifications.
The main changes are inside the device drivers. S.Ha.R.K. 1.4 will
completely remove the old drivers, like keyboard, graphics and other
The new drivers are based on the linux 2.6 source code.
The main goal is to reduce significatively the time to get a new
peripheral working under S.Ha.R.K. Due to the incredible amount of
different devices and considering their complexity, it is very
important to reuse pre-existent source code.
A new Linux 2.6 Emulation Layer is designed to easily reuse all the
device drivers supported by the kernel release 2.6 of Linux. This layer
control all the IRQ and linux kernel timers used by a device drivers. A
particular bandwidth control mechanism guaranties that any device
driver running inside the linux layer cannot break the system real-time
constraints. It also keeps the devices fully functional.
A detailed descrition of this device drivers control technique will be
put on the documentation as soon as possible.
The actual driver status is:
FRAME BUFFER--- OK (Vesa,NVidia,Matrox with acceleration, some ATI)
FRAME GRABBER-- OK
(Actually the Network and PCI6025E drivers are the old source code
patched to work with the linux emulation layer. A completely new
support is on the way)
NOTE: Check the demos BASE, ASTRO, INPUT, JUMPBALL, NETWORK,
BTTVDEMO, PCI6025E, ADVTIMER, MESADEMO, NEWTRACE to understand how the
new drivers are initialized and used. Unfortunately we need more time
to rewrite all the documentation.
Pay attention especially on the init and shutdown sequences.