Tags: viralcode/vib-OS
Tags
2.2.0 (#13) * Major system improvements: TCP state machine, SMP support, user address spaces, and more Phase 1 - Userspace Improvements: - Enhanced ELF loader for true userspace process execution - Added user address space management (mm_struct, vm_area) - Implemented vmm_map_user_page() and vmm_map_user_range() - Created userspace media library header (user/lib/media.h) Phase 2 - Network Stack: - Implemented complete TCP state machine (SYN/SYN-ACK/ACK/FIN) - Added tcp_send_packet() for building and sending TCP segments - Added tcp_handle_segment() for processing incoming TCP - Implemented ARP request/reply handling - Added IP packet processing (ICMP, TCP, UDP dispatch) - Proper connection tracking with tcp_find_connection() Phase 3 - Hardware Improvements: - Rewrote Intel HDA driver with proper DMA ring buffers - Added 256KB ring buffer with 32 BDL entries - Implemented intel_hda_stop() and intel_hda_is_playing() - Added cache flush helpers for DMA coherency SMP Support: - Added spinlock implementation (spin_lock/spin_unlock) - Implemented smp_processor_id(), smp_num_cpus() - Added PSCI-based secondary CPU boot (smp_boot_secondary) - Added per-CPU GIC initialization (gic_cpu_init) - Added kernel-wide smp_lock()/smp_unlock() Syscall Improvements: - Implemented file descriptor table (MAX_FDS=256) - sys_openat now properly opens files via VFS - sys_read/sys_write now use FD table - sys_close properly releases file descriptors - sys_lseek implemented for file positioning - sys_execve now loads ELF binaries All changes maintain backwards compatibility with existing functionality. * Add macOS-style Desktop Manager with icons, context menus, and graphics optimizations Major Features: - Desktop Manager: Shows files/folders from /Desktop directory with icon rendering - Right-click context menu system with actions: - New Folder / New File creation - Open, Rename, Delete operations - Copy/Cut/Paste functionality - Sort by Name/Date/Type - Refresh desktop - Icon types: Folder, File, Image, Audio, Text, App with visual representations - Selection system with click and shift-click multi-select - Double-click to open files/folders Graphics Performance: - Dirty rectangle tracking for partial screen updates - Optimized compositor with fast memory copy - Memory barriers for reliable frame updates - Periodic full redraws (every 64 frames) for consistency Infrastructure: - VFS: Implemented vfs_unlink and vfs_rmdir functions - RamFS: Added unlink/rmdir support for file deletion - RamFS: Fixed ramfs_create_file to handle full paths correctly - Created /Desktop directory with sample files on boot Files Added: - kernel/gui/desktop.c - Desktop manager implementation - kernel/gui/desktop.h - Desktop manager header Files Modified: - kernel/gui/window.c - Integrated desktop manager - kernel/fs/vfs.c - Added unlink/rmdir implementations - kernel/fs/ramfs.c - Added unlink/rmdir operations, fixed path handling - kernel/include/fs/vfs.h - Added ENOTEMPTY error code - kernel/core/main.c - Create Desktop directory with sample files * Fix desktop right-click context menu and add Windows-like features Bug Fixes: - Fixed right-click not showing context menu (was blocked by early return) - Moved right-click handling before the left_click gate - Fixed vfs_readdir callback argument order (was swapping ctx and filldir) New Features: - Windows-style context menu with comprehensive options: * File context menu: Open, Open with, Cut, Copy, Create shortcut, Delete, Rename, Properties * Desktop context menu: View, Sort by, Refresh, Paste, New Folder, New Text Document, New Shortcut, Open in Terminal, Display settings, Personalize - Opening folders now opens File Manager with that folder's content - Added gui_create_file_manager_path() to open File Manager at specific path - Added gui_get_screen_width/Height() helper functions - Context menu now stays within screen bounds Technical: - Centralized all extern declarations at top of desktop.c - Fixed duplicate extern declaration errors - Menu automatically repositions if too close to screen edge * Update MicroPython and Nanolang vendor dependencies. * feat: Update MicroPython core, ports, tests, and documentation, alongside Nanolang examples, modules, tests, and build artifacts. * feat: Security overhaul, menu fixes, README update with new screenshots - Add spinlock synchronization for kernel (ARM64/x86) - Add media sandbox for fault isolation - Add ASLR for process address randomization - Fix menu dropdown click detection - Fix window callback stale pointer bug - Update README with new screenshots and Python/Nano support - Add author attribution (JIJO JOHN) * fix: Add CLONE_*/PF_THREAD flags and remove duplicate FD table code - Add PF_THREAD, CLONE_VM, CLONE_FS, CLONE_FILES, CLONE_SIGHAND, CLONE_THREAD, CLONE_PARENT to sched.h - Remove duplicate File Descriptor Table block in syscall.c (merge artifact) - Fixes GitHub Actions build failure * fix: Add sync and sandbox directories to Makefile.multiarch - Add kernel/sync for spinlock support on x86_64 - Add kernel/sandbox for media sandbox support on x86_64 - Fixes undefined symbol errors for spin_lock_irqsave * docs: Add Doom screenshot to README * version updates , doom added etc minor
fix(ci): Add llvm package and make objdump optional Fixes: - Install llvm package in CI workflows for llvm-objdump - Make objdump optional in Makefile.multiarch - Gracefully skip sections dump if objdump not available This fixes the CI build failure: /bin/sh: 1: llvm-objdump: not found make: *** [Makefile.multiarch:241] Error 127 Changes: - .github/workflows/ci.yml: Add llvm to apt-get install - .github/workflows/build-release.yml: Add llvm to apt-get install - Makefile.multiarch: Check if objdump exists before using it