Inte rnatio nal Jo urnal o f Sc ie ntific & Eng inee ring Re se arc h, Vo lume 3, Issue 3, Marc h-2012 1
ISS N 2229-5518
JACKY Operating System
Suvankar Barai
—————————— ——————————
JACKY (Operating System ) is a home- brewed computer operating system kernel, which is still -- and is continually -
- in development. JACKY has initially been designed to support PC- compatible computers. The design and inter- face philosophies of JACKY are driven by the fundamental goal of keeping some of the best features of other successful systems, while discarding many of their notorious wea k- nesses. It follows then, that however many ideas JACKY borrows from other operating environments, it is not -- and does not try to be -- entirely compatible with any of those other systems. Although some aspects of JACKY will probably seem familiar with any other operating environ- ment.
Some of the higher- level conceptual goals are as follows:
The base- level graphics server (analogous to an 'X' server in Unix, but not X) will be integrated into the kernel. A default GUI shell environment must load and run "straight out of the box", with no complicated setup procedure.
The interface must be trivial to learn and use, even
for a computer novice. Most of its elements should be familiar to all computer users. Just like the old computer- industry cliche: "Something my Mom can use".
Something which might seem like a contradiction
of the previous item: A new metaphor for the GUI
environment. The tried- and- true desk- top/office/files/folders paradigm is becoming a little bit dated. This interface will put a new spin on graphical shell design, without making it unfa- miliar or non- intuitive. Stay tuned for details.
To the greatest extent possible, the user should be
able to perform all tasks, including administrative ones, using this "point- and- click" interface -- no need to edit mysterious configuration files by hand.
Users must be given the ability to operate in a text- based environment if they prefer to do so.
Existing popular command shells will be su p- ported. The native command shell will contain fea- tures found in various systems (Unix and non - Unix).
Most common text- mode commands available on
other popular systems will be included and will, as
much as possible, be use model compatible.
Some of GNU's Unix- like tools will be available
(see http://www.gnu.org).
To the greatest extent possible, the user should be able to perform all tasks, including administrative ones, using this text interface. Configuring myste- rious configuration files by hand is, therefore, op- tional.
Fig. 1 Co mmand-line in Graphical Environ ment
IJSER © 2012
ht t p :/ / www.ijs er. org
Inte rnatio nal Jo urnal o f Sc ie ntific & Eng inee ring Re se arc h, Vo lume 3, Issue 3, Marc h-2012 2
ISS N 2229-5518
standards to the greatest extent possible. It is not desirable for JACKY to define new formats (such as a new filesystem type).
Examples of supported standards will include:
Filesystem types
Executable/object/library file formats
Image, sound, font, compression and (enhanced)
text file formats
Encryption algorithms
Network protocols
Software development environment conventions
Operating system API calls.
Hardware interface standards (e.g. VESA)
Basic POSIX compliance, where possible
Fig. 2 Loading File-system and Kernel
JACKY is still in a fairly early stage of development. Cod- ing work was begun as a part- time operation in late 2005. The majority of the code is written in C, with portions wri t- ten in x86 Assembly Language. The present incarnation of JACKY boasts enough features to classify it a promising project, but not enough to ma ke it useful to non- technical users in its current state. The following is a list of impl e- mented and unimplemented functionality; keep in mind that this does not represent the complete list of planned features -- only short- and medium- term goals are listed here:
Implemented (or mostly implemented):
Fully 32 bits, "protected" mode
Preemptive multitasking and multi- threading
Virtual memory, and memory protection
Flat linear memory management
Graceful processor fault and exception handling
Good random number capability
Filesystem support for: Virtual filesystem API Buf-
fered, asynchronous filesystem IO Multi- threaded filesystem functions and device locking 12, 16, and
32- bit FAT filesystems (commonly used by DOS
and Windows)
Multiple mount points, multiple disk slices, or par- titions, on a single device
Abstracted loading and management of device
drivers
Delayed event scheduling
Device support for Single 486, K6/MII/Pentium
processor (or better) RAM above 64Mb Programm- able Interrupt Controller (PIC) System timer chip Real- Time Clock (RTC) chip Keyboard controller Text console IO Direct Memory Access (DMA) con- troller Floppy disk drives Fixed (hard) disk drives.
Partially implemented:
Kernel API
Native command line shell
Loader
Standard C library
Unimplemented (or mostly unimplemented):
Multi-user operation
Inter- Process Communications (IPC) facility
IO Protection
FPU state saves
Assembler and compiler (ports of NASM/GAS
and gcc)
Native linker, or satisfactory port of GNU linker, ld
Support for Elf, a.out, and PE executable formats,
loader relocation
Dynamically loaded/linked libraries
Emulation of other operating systems' APIs
Filesystem support for: Ext2/Ext3 filesystems
(commonly used by Linux) NTFS filesystems (commonly used by Windows NT/2000 and Li- nux) CD-ROM filesystems (ISO9660/Joliet) (others, as demand dictates)
Device support for: Multiple processors 3DNow!
and MMX processor extension Plug and play PCI
bus devices Modem Network Interface Card (NIC) Printers (many others)
JACKY is developed under Red Hat Linux 9.x, using the
GNU C compiler and the NASM assembler.
This work was supported by Jadavpur University, Kolkata.
Website: www.jackyos.co.nr
[1] Katrin Becker (becker@cpsc.ucalgary.ca) at the Universi- ty of Calgary for helpful advice about free- list management in filesystems. I should have paid more attention in class.
[2] John Fine (johnfine@erols.com), Alexei A. Founze( alex.fru@mtu-net.ru), and the rest of the regular contribu- tors to the comp.lang.asm.x86 and alt.os.development new- sgroups. Thanks for always taking the time to help people. [3] Jerry Coffin (jcoffin@taeus.com) and Ratko Tomic for
IJSER © 2012
ht t p :/ / www.ijs er. org
Inte rnatio nal Jo urnal o f Sc ie ntific & Eng inee ring Re se arc h, Vo lume 3, Issue 3, Marc h-2012 3
ISS N 2229-5518
posting information about alternate text mode video confi- gurations.
[4] Ralf Brown (ralf@pobox.com) for creating and maintain-
ing the indispensable Interrupt List (http://www.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/f iles.html); David Jurgens for HelpPC. Both are excellent PC programming resources.
[5] Frank van Gilluwe for "The Undocumented PC" (Addi-
son-Wesley, ISBN# 0-201-47950-8); Tom Shanley for "Pro-
tected Mode Software Architecture" (Addison- Wesley/Mindshare ISBN# 0 -201-55447-X)
[6] Bob Watson (rhwatson@sympatico.ca) for maintaining
the MS-DOS7 Commands page at http://www3.sympatico.ca/rhwatson/dos7/. DOS/Windows installation tools wouldn't work as well as they do without the aid of this site.
IJSER © 2012
ht t p :/ / www.ijs er. org