Close
0%
0%

JavaOS

An operating system based on Java

Similar projects worth following
Do you need a flexible and secure OS? Then JavaOS is your choice. JavaOS is a project based on JX project. The architecture of this OS has three parts: kernel, interface and user land. The name of the kernel is jxcore. It is a microkernel. Above that is the Domain Zero. It is the interface between Java and the kernel. ​The userland is purely written in Java. It is a SDK for Java applications. The future work consists of a kernel written in Rust, and porting to other platform e.g. arm and RISC-V. Maybe we will add support to other programming languages like: Python and JavaScript.

Source Code

kernel: https://github.com/sPyOpenSource/jcore

compiler: https://github.com/sPyOpenSource/compiler

os: https://github.com/sPyOpenSource/os

applications: https://github.com/sPyOpenSource/applications

jx-usenix.pdf

paper

Adobe Portable Document Format - 104.49 kB - 09/12/2025 at 08:35

Preview

ISOTest6.iso

demo cd

octet-stream - 8.07 MB - 09/11/2025 at 08:37

Download

  • Bootlog

    X. Wang09/12/2025 at 08:32 0 comments

    Memory start=0x00c99800 end=0x1fff0000 size=523593728

    Block size: 1024
    Bitmap size (bytes): 63915
    Bitmap size (blocks): 63
    Number of blocks: 511322
    Free blocks: 511259 (99%)
    Current block: 63
    Allocated memory: 64512
    Available memory: 523529216
    init system
    IRQ 0 disabledIRQ 1 disabledIRQ 2 disabledIRQ 3 disabledIRQ 4 disabledIRQ 5 disabledIRQ 6 disabledIRQ 7 disabledIRQ 8 disabledIRQ 9 disabledIRQ 10 disabledIRQ 11 disabledIRQ 12 disabledIRQ 13 disabledIRQ 14 disabledIRQ 15 disabledfinished irq init
    finished system init
    init system
    IRQ 0 disabledIRQ 1 disabledIRQ 2 disabledIRQ 3 disabledIRQ 4 enabledIRQ 5 disabledIRQ 6 disabledIRQ 7 disabledIRQ 8 disabledIRQ 9 disabledIRQ 10 disabledIRQ 11 disabledIRQ 12 disabledIRQ 13 disabledIRQ 14 disabledIRQ 15 disabledfinished irq init
    OKatomicfn initatomicfn init completedinit threads systeminit threads system - profiler partinit threads system completedStarted DomainZero.

    call class constructor for java/lang/Class
    Terminate DomainZero initial thread.

    call class constructor for java/lang/Class

    Init running...
    !!ATTENTION!!                                      !!ATTENTION!!
    !!ATTENTION!!  No Security Manager is used         !!ATTENTION!!
    !!ATTENTION!!                                      !!ATTENTION!!
    Init finished.
    call class constructor for java/lang/Class
    call class constructor for jx/devices/pci/PCIClassCode
    call class constructor for jx/devices/pci/PCIVendorCode
    call class constructor for jx/devices/pci/PCIDeviceCode
    call class constructor for jx/devices/fb/PixelColor
    getmethods jx/fb/StartFBDevice -> 0x0196f9a0
    getmethods jx/devices/pci/PCIGod -> 0x0196fd70
    getmethods jx/keyboard/Main -> 0x01970a2c
    getmethods jx/wm/WindowManagerImpl -> 0x01971570
    call class constructor for jx/awt/JXToolkit
    call class constructor for jx/awt/peer/JXMenuThread
    call class constructor for jx/awt/peer/MenuHandler
    call class constructor for jx/awt/peer/FocusHandler
    call class constructor for jx/awt/peer/SlaveWindowHandler
    newInstance jx/awt/JXToolkit -> 0x01972350
    getmethods test/jx/awt/Main -> 0x01972d24
    MenuThread started.
    START : jx/fb/StartFBDevice
    INVOKE STATICargs[0]=FB
    args[1]=jx/devices/fb/emulation/EmulFBFinder
    args[2]=fb_emul.jll
    args[3]=279
    args[4]=null
    Trying class jx/devices/fb/emulation/EmulFBFinder in component fb_emul.jll
    DRIVER ARG: 279
    call class constructor for jx/devices/fb/emulation/EmulFBFinder
    newInstance jx/devices/fb/emulation/EmulFBFinder -> 0x01974994
    VESA: 1024x768, 2048 bytesPerLine, 16 bitsPerPixel
    init system
    IRQ 0 disabledIRQ 1 disabledIRQ 2 disabledIRQ 3 disabledIRQ 4 enabledIRQ 5 disabledIRQ 6 disabledIRQ 7 disabledIRQ 8 disabledIRQ 9 disabledIRQ 10 disabledIRQ 11 disabledIRQ 12 disabledIRQ 13 disabledIRQ 14 disabledIRQ 15 disabledfinished irq init
    return from fbemulation_opencall class constructor for jx/devices/fb/emulation/FBImpl
    START : jx/devices/pci/PCIGod
    INVOKE STATICDomain PCI speaking.
    Success reading PCI configuration port
    now checking pci bus
    capability bit set, but no capability list (uhh??)
    PCIAccess registered
    START : jx/keyboard/Main
    INVOKE STATICKeyboardImpl::KeyboardImpl()
        init keyboard
    KeyboardImpl.init()
    wrCommand :76
    ClearBuffer:
      OK.
    Reset:
      OK.
    ResetFinish: 
      OK.
    Keyboard reset ok.
    Detected PS/2 Mouse Port.
    PS/2 Mouse available: true
    Started IRQ handler.
      Thread   0x019793f4   stack=0x04badc00, stackTop=0x04bafc00
    wrCommand :77
      Thread   0x0197969c   stack=0x04bafc00, stackTop=0x04bb1c00
        keyboard initialized
    START : jx/wm/WindowManagerImpl
    INVOKE STATICStarting window manager...
    WDisplay::SetMode() 1024/768/CS_RGB16
    WBitmap::init(1024, 768, 2048)
    WFont::scanFonts()
    WBitmap::init(8, 8, -1)
    WBitmap::init(8, 8, -1)
    Window manager is now ready to accept requests.
    START : test/jx/awt/Main
    INVOKE STATICgetCurrentDomain (2)...

    Read more »

View project log

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates