GitHub
charleX OS
Logo
%% %% %% %%
%% %% %% %%
%% %% %% %%
%% %%%%%%%%%%%%%% %%
%% %%
%% %%
%% %%%% %%%% %%
%% %%%%%% %%%%%% %%
%% %%
%% %%%%%% %%
%% %% %% %% %%
%% %%%%%%%%%%%%%% %%
%% %%
%% %%
%%%%%%%% %%%%%%%%
%%%%%%%%%%%%%%
Description
CharleX OS is a minimal, open-source operating system kernel written primarily in C with assembly components. It provides a basic terminal interface in VGA text mode, supporting keyboard input for a simple command-line experience.Inspired by early Unix-like systems such as Linux and FreeBSD.
The kernel includes features like:
- VGA text mode initialization and output
- Keyboard input handling with support for basic keys (enter, backspace, arrows, etc.)
- A simple shell-like prompt for user interaction
- Bootloader integration with GRUB
Architecture
CharleX OS follows a micro-kernel architecture design:
Kernel Core
Interrupts Handling: Manages hardware interrupts and exceptions.
Memory Management: Basic memory allocation and management (stubs for future expansion).
IPC (Inter-Process Communication): Simple message-passing system for communication between kernel services and user applications.
User Services
Shell Service: Provides a UNIX-like command-line interface with commands such asls,pwd,cd,mkdir,touch,clear,disk,startx,cat,echo, andhelp.
Graphics Service: Handles switching to VGA graphics mode for simple visual output.
The micro-kernel approach keeps the core kernel minimal and secure, with most functionality implemented as user-space services that communicate via IPC.
File Structure
charleX-os-ng/
├── boot.s # Assembly bootstrap code
├── kernel.c # Main kernel entry point and core functions
├── ipc.c # Inter-Process Communication implementation
├── utils.c # Utility functions (VGA, disk detection, etc.)
├── char.c # Character handling utilities
├── logo.c # Logo display functions
├── linker.ld # Linker script for kernel binary
├── Makefile # Build configuration
├── grub.cfg # GRUB bootloader configuration
├── include/ # Header files
│ ├── kernel.h
│ ├── utils.h
│ ├── ipc.h
│ ├── types.h
│ ├── char.h
│ ├── input_init.h
│ ├── keyboard.h
│ ├── reqs.h
│ └── ...
├── usr/ # User-space components
│ ├── shell.h # Shell implementation
│ └── screen_ptrns.h # Screen patterns
├── iso/ # ISO build directory (generated)
├── charleX.iso # Bootable ISO image (generated)
└── README.md # This file
Building and Running
Prerequisites
- GCC compiler
- NASM assembler
- GRUB tools
- xorriso for ISO creation
On Debian/Ubuntu
Install dependencies:
make deps
Build the ISO:
make mkiso
Run the OS using a virtual machine or boot from the generated charleX.iso.
On Windows 10
- Install Windows Subsystem for Linux (WSL) with Ubuntu 24.04 from the Microsoft Store: https://apps.microsoft.com/detail/9nz3klhxdjp5?hl=en-us&gl=NL
- Follow the Linux build instructions above.
For WSL configuration, refer to WSL_WINDOWS.CONF.
Contributing
CharleX OS is an open-source project, and contributions are welcome! Feel free to:
- Report issues
- Submit pull requests for bug fixes or new features
- Improve documentation
- Star the repository to show support
License
This project is licensed under the terms specified in the LICENSE file.
CREATE BY :Amin Azimi (AMZY31)
SOCIAL SHARE CARD GENERATOR