-
Notifications
You must be signed in to change notification settings - Fork 0
Changelog
Log of wiki updates. Maintained by contributors (human and LLM) after each edit session.
-
Updated Ext2-Ext3-Filesystem documentation — Enhanced
Ext2-Ext3-Filesystem.mdwith additional helper and manager classes:INodeDescriptor(transient inode allocation state),FSBitmap(abstract bitmap base),BlockReservation/INodeReservation(allocation result objects),BlockSizeenum; expanded Gotchas section with bitmap arithmetic, preallocation, block allocation preference, and transient allocation state notes. Added glossary entries forblock bitmap,block group,extent,group descriptor,inode,inode bitmap,journaling,sparse_super,superblock. Updatedindex.mdConcepts → Pages with the new technical terms. Related classes:Superblock,GroupDescriptor,INode,INodeTable,BlockBitmap,INodeBitmap,Ext2Constants,Ext2Print. -
Added NoCloseInputStream spoke page — Created
NoCloseInputStream.mddocumenting JNode's decorator InputStream that preventsclose()from propagating to the wrapped stream: the delegation pattern, no-op close() override, usage context during boot for shared streams, and gotchas (no ownership semantics, silent suppression). Updatedindex.md(Pages table, Concepts → Pages with NoCloseInputStream entry, Source Path → Pages with boot/ path), and linked from Boot-Sequence. -
Added DeviceFinder spoke page — Created
DeviceFinder.mddocumenting JNode's device discovery mechanism: theDeviceFinderinterface for finding devices on a bus, theDeviceFinderPluginbootstrap that initiates discovery, the plugin extension pointorg.jnode.driver.finders, thefindDevices(DeviceManager, Bus)method contract, implementations for PCI, serial, PS/2, VGA, floppy, loopback, and more, the integration withDeviceToDriverMapperfor driver binding, and gotchas (finder ordering, bus hierarchy, deferred initialization, failure isolation). Updatedindex.md(Pages table, Concepts → Pages with DeviceFinder entry, Source Path → Pages with finder/ path, Task Routing with device discovery, bus driver, and device type routes),Glossary.md(added DeviceFinder definition), and linked from DeviceManager, Driver-Framework, Bus-Drivers, Plugin-System. -
Added DeviceManagerListener spoke page — Created
DeviceManagerListener.mddocumenting JNode's observer interface for device discovery and binding events: thedeviceRegistered/deviceUnregistercallbacks, registration and dispatch inAbstractDeviceManager, theFBConsoledeferred initialization pattern, theDeviceListenervsDeviceManagerListenerdistinction (registry lifecycle vs driver lifecycle), and gotchas (fire order, 100ms warning threshold, memory leak risk). Updatedindex.md(Pages table, Concepts → Pages with DeviceManagerListener entry, Source Path → Pages with driver/ path, Task Routing with device lifecycle monitoring and deferred driver initialization routes),Glossary.md(added DeviceManagerListener entry), and linked from DeviceManager and Driver-Framework. -
Added DriverPermission spoke page — Created
DriverPermission.mddocumenting JNode's security permission class for driver operations: extendsBasicPermission, known permission names (setPreferredListenerused byKeyboardAPIandPointerAPI), permission declaration in plugin descriptors, and permission checking flow viaSecurityManager.checkPermission(). Updatedindex.md(Pages table, Concepts → Pages with DriverPermission entry, Source Path → Pages with driver/ path), and linked from Driver-Framework, Input-Drivers. -
Added SMBus-DIMM spoke page — Created
SMBus-DIMM.mddocumenting JNode's SMBus driver for DIMM SPD data: SMBus protocol operations (Quick Command, Send/Receive Byte, Block Read/Write), SMBus addresses (0xA0-0xA7 for DIMM),SMBus/SMBusControler/SMBusDevice/DIMM/DIMMDriverclasses, SPD table parsing (128-byte EEPROM with memory type, timing, manufacturer), driver initialization flow, and gotchas (SPD reliability, limited memory types, 32-byte block read limit, no write support). Updatedindex.md(Pages table, Concepts → Pages with SMBus and SPD entries, Source Path → Pages with smbus/ path, Task Routing with bus enumeration route),Glossary.md(added SPD entry), and linked from Bus-Drivers, Driver-Framework, Device-Manager, Memory-Management. -
Added DesktopFrame spoke page — Created
DesktopFrame.mddocumenting JNode's desktop window manager system: Swing-basedDesktopFrame(JFrame containing JDesktopPane),Desktopclass for control bar integration,ControlBarwithApplicationBarandWindowBarcomponents, plugin-based application discovery via extension points, window tracking via JInternalFrame management, and gotchas (PluginClassLoader requirement, Swing dependency, background image positioning, color preferences persistence). Updatedindex.md(Pages table, Concepts → Pages with DesktopFrame, ControlBar, ApplicationBar, WindowBar entries, Source Path → Pages with desktop/ path, Task Routing with GUI development, window management, application launching routes), and linked from AWT-Peer-Implementation, GUI-AWT, Video-Driver-Architecture, Thinlet, Plugin-System. -
Added Ethernet-Driver spoke page — Created
Ethernet-Driver.mddocumenting JNode's Ethernet driver subsystem:EthernetAddress(48-bit MAC address handling with parsing, formatting, broadcast detection),EthernetHeader(IEEE 802.3 frame header parsing/construction),EthernetConstants(protocol IDs and frame size constants),EthernetUtils(protocol extraction from headers), driver hierarchy (AbstractEthernetDriver→BasicEthernetDriver→ concrete implementations like RTL8139), receive/transmit paths with frame padding and loopback detection, and gotchas (byte order, length vs type ambiguity, broadcast loopback). Updatedindex.md(Pages table, Concepts → Pages with Ethernet Driver and MAC address entries, Source Path → Pages with ethernet/ paths, Task Routing with network device driver route),Glossary.md(added MAC address entry), and linked from Network-Stack, Network-Layers, ARP, Driver-Framework. -
Updated CoreThreadScheduling documentation — Updated
index.md(Concepts → Pages: updated CoreThreadScheduling mapping to include TSI, Yieldpoint, Thread-Scheduling, Architecture; Task Routing: added Interrupt-Handling and Architecture to "Debugging thread issues" route), andGlossary.md(added CoreThreadScheduling definition: hybrid preemptive/cooperative thread scheduler with yieldpoints and TSI). -
Added DeviceAlreadyConnectedException spoke page — Created
DeviceAlreadyConnectedException.mddocumenting JNode's exception for device already connected to driver errors: the exception hierarchy (DeviceAlreadyConnectedException extends DriverException), triggering conditions in Driver.connect() when a driver already bound to one device receives a connect call for another device, connection flow via Device.setDriver(), constructor variants, and gotchas (not directly thrown, single-device constraint, silent failure prevention). Updatedindex.md(Pages table, Concepts → Pages with DeviceAlreadyConnectedException entry, Source Path → Pages with driver/ path), and linked from Driver-Framework.BootLoginterface with five severity levels (DEBUG, INFO, WARN, ERROR, FATAL),BootLogInstancesingleton accessor using InitialNaming,BootLogImplimplementation withUnsafe.debug()fallback, initialization flow inVmSystem.initialize(), transition to Log4j viaLog4jConfigurePlugin, and gotchas (no filtering, no category separation, InitialNaming dependency, debug stream only affects DEBUG level). Updatedindex.md(Pages table, Concepts → Pages with Boot log entry, Source Path → Pages with bootlog/ path, Task Routing with boot crash debugging route), and linked from Boot-Sequence, InitialNaming-Service-Registry, Architecture. -
Added HFS+-Filesystem spoke page — Created
HFS+-Filesystem.mddocumenting JNode's HFS+ (MacOS) filesystem implementation: volume header (SuperBlock) at sector 2 with magic/version/block size/fork descriptors, Catalog B-Tree for file/directory records (CatalogFolder/CatalogFile/CatalogThread), extent overflow B-Tree, mount flow (read-only for journaled volumes), directory traversal via B-Tree lookups, file data access via direct/overflow extents, hard link support via private data directories, and gotchas (read-only enforcement, write support stubbed, no journal replay, no Unicode normalization). Updatedindex.md(Pages table, Concepts → Pages with HFS+-Filesystem entry, Source Path → Pages with hfsplus/ path, Task Routing with filesystem driver route),Glossary.md(added Catalog (HFS+) and CNID entries), and linked from Filesystem-Layer, VFS-Layer, Block-Device-Layer. -
Added NetPermission spoke page — Created
NetPermission.mddocumenting JNode's security permission class for network operations: extendsBasicPermission, used byDHCPClient(dhcpClient permission) andBOOTPClient(bootpClient permission) for security manager checks, permission checking flow, known permission names, and gotchas (no actions parameter, optional security manager, static permission names, plugin classloader isolation). Updatedindex.md(Pages table, Concepts → Pages with NetPermission entry, Source Path → Pages with net/src/net/org/jnode/net/ path), and linked from Network-Stack and NetAPI-Implementation. -
Added Keyboard-Layouts spoke page — Created
Keyboard-Layouts.mddocumenting JNode's locale-specific keyboard interpreter subsystem: 19 layout classes (US_en, DE, FR, IT, ES, HU variants, RU, SE, DK, NO, DV, BE, CH),AbstractKeyboardInterpreterbase with modifier state, dead key handling via exception-based control flow (DeadKeyException/UnsupportedKeyException),Key/Keysper-scancode mapping,KeyboardLayoutManagerlocale resolution, plugin extension point registration, CapsLock 4-state cycle, and gotchas (dead key performance, CapsLock two-key requirement, stateful instances, limited numpad). Updatedindex.md(Pages table with Keyboard-Layouts entry, Concepts → Pages with Keyboard layout pointing to new page, Source Path → Pages with l10n/ path), and linked from Input-Drivers, Driver-Framework, GUI-AWT. -
Added Mouse-Protocol-Handlers spoke page — Created
Mouse-Protocol-Handlers.mddocumenting JNode's pluggable PS/2 mouse protocol decoder system:MouseProtocolHandlerinterface,MouseProtocolHandlerManagerplugin-based factory,LogitechProtocol3-byte packet decoding,LogitechWheelMouseProtocol4-byte wheel extension,MouseInterpreterprobe and handler selection flow, and gotchas (ID persistence anomaly, overflow discard, null return semantics, plugin initialization order). Updatedindex.md(Pages table, Concepts → Pages with Mouse Protocol Handlers entry, Source Path → Pages with input/ path), and linked from Input-Drivers, Driver-Framework. -
Added BJorne-Arithmetic-Evaluator spoke page — Created
BJorne-Arithmetic-Evaluator.mddocumenting JNode's shell arithmetic expression evaluator: shunting-yard algorithm with operator/operand stacks, POSIX operator precedence (, *, /, %, +, -, ++, --, prefix/postfix), variable resolution via BjorneContext, integer-only arithmetic (long), increment/decrement side effects, and gotchas (no floating-point, no overflow detection, division by zero errors, variable type requirements). Updatedindex.md(Pages table, Concepts → Pages with BJorne Arithmetic Evaluator entry, Source Path → Pages with bjorne/ path, Task Routing with expression evaluation route), and linked from Shell-Commands, Syntax. — CreatedBJorne-Arithmetic-Evaluator.mddocumenting JNode's shell arithmetic expression evaluator: shunting-yard algorithm with operator/operand stacks, POSIX operator precedence (, *, /, %, +, -, ++, --, prefix/postfix), variable resolution via BjorneContext, integer-only arithmetic (long), increment/decrement side effects, and gotchas (no floating-point, no overflow detection, division by zero errors, variable type requirements). Updatedindex.md(Pages table, Concepts → Pages with BJorne Arithmetic Evaluator entry, Source Path → Pages with bjorne/ path, Task Routing with expression evaluation route), and linked from Shell-Commands, Syntax. -
Added Plugin-Documentation-Task spoke page — Created
Plugin-Documentation-Task.mddocumenting JNode's Ant build task that generates navigable HTML plugin documentation: the execution flow (descriptor scanning, per-plugin HTML generation, overview pages), PluginData/DotBuilder/LicenseEntry/PackageData helper classes, license matching against KNOWN_LICENSES, reverse dependency lookup (Required By), optional Graphviz dependency tree, Ant integration inall/build.xml, and gotchas (Graphviz dependency, duplicate full ID detection, no Javadoc integration). Updatedindex.md(Pages table with new page entry, Concepts → Pages with Plugin Documentation Task entry, Source Path → Pages with documentation/ path, Task Routing with "Adding or modifying a plugin" route), and linked from Build-System and Plugin-System. -
Added GDB-Debugging-Support spoke page — Created
GDB-Debugging-Support.mddocumenting JNode's in-kernel debugger:Debuggermain entry point with keyboard/system trigger activation,DebuggerPluginfor plugin integration, theDebugStatestate machine hierarchy (RootState, ThreadListState, ThreadState), thread inspection capabilities (listing all/running/waiting threads, viewing stack traces, interrupting threads), and gotchas (no GDB protocol implementation, stack trace limitation, priority keyboard access). Updatedindex.md(Pages table with new page entry, Concepts → Pages with GDB Debugging Support entry, Source Path → Pages with debugger/ path, Task Routing with "Using in-kernel debugger" route), and linked from Architecture, Testing, Core-Thread-Scheduling. -
Added JNAsm-Dual-Assembler spoke page — Created
JNAsm-Dual-Assembler.mddocumenting theX86DualAssemblerFactoryproxy pattern: CGLIB-based dynamic proxy dispatching write operations to bothX86BinaryAssemblerandX86TextAssemblersimultaneously, listing format generation, position tracking, non-write operation forwarding, NASM compatibility testing viaDualAssemblerTest, andBootImageBuilderintegration with optional verbose output. Updatedindex.md(Pages table with new page entry, Concepts → Pages with JNAsm Dual Assembler entry, Source Path → Pages with jnasm/util/ path, Task Routing with "Understanding JNasm instruction encoding" route), and linked from JNasm-Assembler, JNAsm-Instruction-Encoding, Build-System, Assembly-Files. -
Added Network-Layer-Manager spoke page — Created
Network-Layer-Manager.mddocumenting JNode's central registry for network protocol layers:NetworkLayerManagerinterface defining the contract,DefaultNetworkLayerManagerimplementation managing protocol registration via extension points, packet receive and dispatch flow via protocol ID lookup, async queue processing, and gotchas (dynamic reload, device filtering, InitialNaming dependency, no default route for unknown protocols). Updatedindex.md(Pages table with new page entry, Concepts → Pages with bold NetworkLayerManager entry and updated existing references, Source Path → Pages with net/src/net/org/jnode/net/ and service/ paths, Task Routing with protocol addition route), and linked from Network-Layers, Network-Stack, NetAPI-Implementation, Network Device Plugin, Driver-Framework. -
Added DNS-Resolver spoke page — Created
DNS-Resolver.mddocumenting JNode's DNS resolver:Resolverinterface,ResolverImplsingleton using dnsjava (ExtendedResolver, Lookup), hosts map (localhost only), DNS server management (addDnsServer/removeDnsServer), DHCP integration via DHCPClient, getByName flow with hosts-first then DNS query, and gotchas (stubbed getByAddress, hardcoded defaults, no cache, @SharedStatics usage, dnsjava upgrade needed). Updatedindex.md(Pages table, Concepts → Pages with DNS Resolver/DNS entries, Source Path → Pages with ipv4/util/ path, Task Routing with network debugging and DNS lookup routes),Glossary.md(added DNS Resolver entry), and linked from Network-Stack, NetAPI-Implementation, IPv4-Protocol. -
Added NFS2-Client spoke page — Created
NFS2-Client.mddocumenting JNode's NFSv2 client:NFS2Clientimplementing NFS procedures (LOOKUP, READ, WRITE, CREATE, etc.) via ONC/RPC,Mount1Clientfor mount protocol (program 100005), XDR encoding/decoding viaXdrAbleinner classes, file handle management (32-byte opaque handle), RPC client pooling, portmap resolution, retry logic, and gotchas (v2 only, no VFS integration, 8KB max transfer, hardcoded constants). Updatedindex.md(Pages table, Concepts → Pages with NFS2-Client entry, Source Path → Pages with nfs/nfs2/ path, Task Routing with remote filesystem and network filesystem debugging routes),Glossary.md(added XDR entry), and linked from Network-Stack, Network-Layers, VFS-Layer, Filesystem-Layer. -
Updated FSEntry-Cache index entry — Added FSEntry-Cache to Concepts → Pages section in
index.md(FSEntry-Cache and FSEntry cache entries) for proper cross-reference. Related Manager classes identified: FileHandleManager, FileSystemManager, FileSystemTypeManager, FileSystemMounter, FileSystemPlugin. -
Added Thinlet spoke page — Created
Thinlet.mddocumenting JNode's Thinlet GUI framework integration: XML markup UI definition viaparse(), widget tree model backed byHashtableproperties, type-specific layout engine (doLayout()) for desktop/panel/dialog/combobox/textfield/textarea/tabbedpane/list/table/tree/menubar/spinbox/slider/progressbar/splitpane, custom AWTGraphicsrendering (paintRect,paintArrow,paintScroll,paintField), central event dispatching (processEvent()) with timer thread for repeat events/tooltips, 9-color scheme, grid-bag layout with weight distribution, and action handler reflection pattern. Updatedindex.md(Pages table, Concepts → Pages with Thinlet entry, Source Path → Pages with thinlet/ path, Task Routing with Thinlet GUI development route),Glossary.md(added Thinlet entry), and linked from GUI-AWT and AWT-Peer-Implementation.
-
Added Font-Rendering spoke page — Created
Font-Rendering.mddocumenting JNode's dual font rendering system: TrueType (TTF) viaTTFFontData,GlyphRendererwith summed-area anti-aliasing, and BDF via JavaCC-generatedBDFParser; the plugin-basedDefaultFontManagerwithFontProviderdiscovery; key classes (BDFFontContainer,BDFGlyph,BDFMetrics,TTFFont,TTFTextRenderer,TTFInput,CMapTable,GlyphTable); rendering pipelines with code flow diagrams; and gotchas (BDF priority default, dual glyph abstractions, hardcoded 128px master height, no hinting). Updatedindex.md(Pages table, Concepts → Pages with Font-Rendering/Font provider/BDF/TrueType entries, Source Path → Pages with font/ and awt/font/ paths, Task Routing with font renderer development route),Glossary.md(added BDF and TrueType entries), and linked from GUI-AWT and AWT-Peer-Implementation. -
Added RamDisk-Driver spoke page — Created
RamDisk-Driver.mddocumenting JNode's virtual block device using RAM as backing store:RamDiskDriverimplementingFSBlockDeviceAPI,RamDiskDevicedevice class,RamDiskCommandshell command for runtime creation, memory-based read/write viabyte[]array, usage in tests (RamDiskDriverContext,TestUtils), initrd integration viaInitRamdisk, and gotchas (volatile storage, memory consumption, hardcoded 512-byte sector size, no partition support). Updatedindex.md(Pages table, Concepts → Pages with RamDisk-Driver/RAM disk entries, Source Path → Pages with ramdisk/ path, Task Routing with RAM disk driver, filesystem testing, and initrd routes), and linked from Block-Device-Layer, VirtualDevices, Driver-Framework, Testing. -
Added SCSI-Driver spoke page — Created
SCSI-Driver.mddocumenting JNode's SCSI driver subsystem:SCSIDeviceabstract base withexecuteCommandandrequestSense,CDB/SCSIBuffercommand/data structure layer (SPC and MMC command sets),SCSICDROMDriverwithFSBlockDeviceAPIandRemovableDeviceAPIsupport (2048-byte alignment, media change handling, read-only enforcement),CDROMDeviceToDriverMapperperipheral device type 0x05 matching,MMCUtilsfor capacity/read/media control,InquiryData/SenseDatawrappers, and gotchas (no disk driver, host controller abstraction, peripheral type checks). Updatedindex.md(Pages table, Concepts → Pages with SCSI Command entry, Source Path → Pages with block/scsi/ and bus/scsi/ paths, Task Routing with block device driver and block alignment routes),Glossary.md(added SCSI command and Sense data entries), and linked from Block-Device-Layer, Driver-Framework, Filesystem-Layer, IDEDisk-Driver, Bus-Drivers, Partition-Tables, ISO9660. -
Added UDP-Datagram-Socket spoke page — Created
UDP-Datagram-Socket.mddocumenting JNode'sjava.net.DatagramSocketbridge:UDPDatagramSocketImplextendingAbstractDatagramSocketImpl, send/receive flow withSocketBufferpipeline, socket options (TOS, broadcast, timeout, interface), port binding viaUDPProtocol,PlainUDPDatagramSocketImplGNU Classpath wrapper, factory registration with JDK, and gotchas (connectionless design, data copy on receive, TTL stubs, unbounded receive queue). Updatedindex.md(Pages table, Concepts → Pages with UDP Datagram Socket/datagram entries, Source Path → Pages with udp/ path, Task Routing with UDP socket debugging route), and linked from UDP-Protocol, Sockets-Implementation, Network-Stack, Network-Layers. -
Added Network Device Plugin spoke page — Created
Network-Device-Plugin.mddocumenting JNode's plugin interface for network device drivers:NetPluginlifecycle management extending the Plugin base class,NetDeviceImplwrapper bridging JNode Device to Java networking viaVMNetDevice,NetAPIImplfor device enumeration and address resolution,DefaultNetworkLayerManagerregistry for protocol layers, and the packet processing thread. Covered plugin initialization, startup/shutdown sequence, device abstraction pattern, and gotchas (packet thread lifecycle, InitialNaming dependency, extension point requirement, NetDeviceAPI requirement). Updatedindex.md(Pages table, Concepts → Pages with Network Device Plugin entry, Source Path → Pages with service/ path, Task Routing with network device driver and plugin development routes),Glossary.md(added NetDeviceImpl entry), and linked from Network-Stack, Plugin-System. -
Added NetAPI-Implementation spoke page — Created
NetAPI-Implementation.mddocumenting JNode's network API implementation bridging the standard Javajava.netpackage with JNode's custom pure-Java network stack:NetAPIImplcore implementation with device enumeration, address resolution, and DNS lookup;NetDeviceImplwrapper;DefaultNetworkLayerManagerregistry for protocol layers;NetPluginlifecycle management. Covered plugin initialization, network device enumeration, address resolution, DNS resolution via network layers, default local address retrieval, and gotchas (no reverse DNS, security manager integration, device lookup exceptions). Updatedindex.md(Pages table, Concepts → Pages with NetAPI-Implementation/NetworkLayerManager entries, Source Path → Pages with service/ path, Task Routing with network device enumeration and application networking routes), and linked from Network-Stack, Sockets-Implementation, Network-Layers. -
Added Builder-Packager spoke page — Created
Builder-Packager.mddocumenting JNode's plugin packaging system:PluginBuilderfor JAR-to-plugin transformation,PackagerTaskabstract base,ScriptBuilderfor script generation (.sh/.bat/.jns),MainFinderfor main class detection (manifest priority + bytecode ASM scanning),PluginListInsertorfor plugin list integration. Covered descriptor auto-generation, three-tier script building strategy (Unix/MS-DOS/scratch), thread safety via StringBuilder, and gotchas (hard-coded /jnode/ path, AllPermission grant, manifest priority). Updatedindex.md(Pages table, Concepts → Pages with Builder-Packager entry, Source Path → Pages with packager/ path, Task Routing with "Packaging third-party JARs as plugins" route),Glossary.md(added PluginBuilder entry), and linked from Build-System, Plugin-System, Boot-CD-ROM-Builder. -
Added JNAsm-Instruction-Encoding spoke page — Created
JNAsm-Instruction-Encoding.mddocumenting JNasm's instruction encoding system: the*_ISNconstant → reflection-based instruction map → switch dispatch inX86Core.emit(), the addressing mode classification system inAbstractX86Module(7 operand types encoded as 3-digit base-8 integers: NUL_ARG=0, CON_ARG=1, REG_ARG=2, REL_ARG=3, ABS_ARG=4, SCL_ARG=5, ZSC_ARG=6, SEG_ARG=7), the emit method pattern withgetAddressingMode()+ switch-case +stream.writeXXX()calls, operand size propagation, prefix handling, jump/call label resolution, and ModR/M delegation toX86Assembler. Key components covered:X86Core.java,AbstractX86Module.java,Instruction.java,Address.java,InstructionUtils.java,X86Assembler, andX86Constants. Updatedindex.md(Pages table, Concepts → Pages with JNasm Instruction Encoding/Addressing mode/Instruction encoding entries, Source Path → Pages with assembler/ path, Task Routing with "Understanding JNasm instruction encoding" route),Glossary.md(added Addressing mode, Instruction encoding, ModR/M byte, SIB byte entries), and linked from JNasm-Assembler and JNasm-Assembler-Design. -
Added Field-Offset-Calculation spoke page — Created
Field-Offset-Calculation.mddocumenting JNode's runtime field offset calculation: object header structure (FLAGS_SLOT at -2, TIB_SLOT at -1, HEADER_SLOTS = 2), field offset assignment in ClassDecoder (sequential offsets starting at 0 after header), offset resolution in VmNormalClass for inheritance (resolveOffset adds superclass size), VmInstanceField.getOffset() runtime access, TIB array indexing via TIBLayout constants, slot size variations (4 bytes 32-bit, 8 bytes 64-bit), 8-byte object alignment, and gotchas (negative header offsets, wide field alignment, TIB indexing vs field offsets, static fields in separate statics area). Updatedindex.md(Pages table, Concepts → Pages with Field Offset Calculation/Field offset entries, Source Path → Pages with classmgr/ path, Task Routing with debugging memory issues, debugging method dispatch, understanding VmType internals routes),Glossary.md(added Field offset entry), and linked from Object-Layout, Type-System-Internals, JIT-Compilers, Virtual-Methods-Dispatch. -
Added Exception-Handler-Table spoke page — Created
Exception-Handler-Table.mddocumenting JNode's bytecode exception table to native exception handling transformation:AbstractExceptionHandlerbase class,VmInterpretedExceptionHandlerfor interpreted mode (bytecode PC offsets),VmCompiledExceptionHandlerfor compiled mode (native addresses),VmCompiledCode.eTablestorage,VmSystem.findThrowableHandler()stack unwinding viaVmStackFrameEnumerator,VmExceptionsfor declared exceptions, and gotchas (interpreted vs compiled representation, finally blocks, @Uninterruptible incompatibility, default exception handler, multi-catch ordering, PC-to-address mapping). Updatedindex.md(Pages table, Concepts → Pages with Exception-Handler-Table entry, Source Path → Pages with classmgr/ path, Task Routing with "debugging exception handling issues" route and updated "Fixing a JIT compiler bug" route),Glossary.md(added Exception handler table entry), and linked from Exceptions-Implementation, JIT-Compilers, Stack-Frame-Layout, Yieldpoint. -
Added VM-Unsafe spoke page — Created
VM-Unsafe.mddocumenting JNode'sorg.jnode.vm.Unsafe(distinct fromsun.misc.Unsafe):@MagicPermissionsecurity model, memory operations (setInts,copy,clear), debug output before classlib init, CPU operations viaUnsafeX86(MSR, CPUID, CR3), port I/O (in/out), address queries, jump table access, and JIT compiler intrinsic generation viaMagicHelper. Updatedindex.md(Pages table, Concepts → Pages with VM Unsafe entry, Source Path → Pages with Unsafe.java/UnsafeX86.java paths, Task Routing with "debugging memory issues" route),Glossary.md(updated Unsafe entry to point to new page), and linked from VM-Magic, Code-Conventions, Memory-Management, Unboxed-Types, JIT-Compilers, Resource-Management. -
Added FSEntry-Cache spoke page — Created
FSEntry-Cache.mddocumenting JNode's FSEntry caching layer: LinkedHashMap-based LRU cache with 100-entry limit, getEntry/setEntry/removeEntries operations, validity checking via FSObject.isValid(), integration with FileSystemAPIImpl path resolution, and gotchas (hard-coded size, insertion-order LRU, no TTL, synchronized operations). Updatedindex.md(Pages table, Concepts → Pages with FSEntry-Cache/FSEntry entries, Source Path → Pages with service/def/ path, Task Routing with "Optimizing filesystem performance" route), and linked from VFS-Layer. -
Added FileHandle-Implementation spoke page — Created
FileHandle-Implementation.mddocumenting JNode's file handle tracking:FileHandleImplwith position tracking (fileOffset), open mode handling (VMOpenMode), exclusive write access viaFileHandleManager.FileData, handle duplication, and lifecycle. Covered write exclusion semantics (single write handle per file), position seeking beyond EOF (extends file), and gotchas (stubs for lock/mapImpl, single-byte read/write inefficiency). Updatedindex.md(Pages table, Concepts → Pages with FileHandle-Implementation/File handle/File position entries, Source Path → Pages with service/def/ path, Task Routing with "Working with file handles" route),Glossary.md(added File handle entry), and linked from VFS-Layer. -
Added Boot-CD-ROM-Builder spoke page — Created
Boot-CD-ROM-Builder.mddocumenting JNode's bootable CD-ROM ISO assembly:create-cdrommacro inall/build-x86.xml:286, El Torito boot catalog, GRUB integration, mkisofs/ISOTask dual backends, boot image structure, and gotchas. Updatedindex.md(Pages table, Concepts → Pages with Boot-CD-ROM-Builder entry, Source Path → Pages with build-x86.xml path, Task Routing with "Creating bootable ISO images" route), and linked from Build-System. -
Added ISO9660 spoke page — Created
ISO9660.mddocumenting JNode's ISO-9660 CD-ROM filesystem implementation: volume descriptors (Primary, Supplementary, Boot, Terminator), directory structure (8.3 filenames), key classes (ISO9660FileSystem, ISO9660Volume, ISO9660Directory), and filesystem support. Updatedindex.md(Pages table, Concepts → Pages with ISO9660 entry, Source Path → Pages with iso9660/ path),Glossary.md(added ISO9660 entry), and linked from Boot-CD-ROM-Builder and FileSystemType. -
Added Plugin-Dependency-Checker spoke page — Created
Plugin-Dependency-Checker.mddocumenting JNode's Ant build task that validates plugin dependency declarations against actual bytecode usage: BCEL-based bytecode analysis (superclass, interfaces, fields, methods, constant pool),collectUnmatchedDependencies()for unresolved class detection,assortClassesContainedInImportedPlugins()for unnecessary import detection, Fragment handling, system plugin exclusion, and Ant integration inall/build.xml. Updatedindex.md(Pages table, Concepts → Pages with Plugin Dependency Checker entry, Source Path → Pages with dependencies/ path, Task Routing with plugin modification route), and linked from Build-System and Plugin-System. -
Added Serial-Port-Driver spoke page — Created
Serial-Port-Driver.mddocumenting JNode's serial port driver for PC COM1-4 ports using 16550/16450 UART hardware: UART register layout (basePort + 0-7 offsets for data/divisor, IER, FCR, LCR, MCR, LSR, MSR, scratch), baud rate configuration via divisor (115200/divisor formula), default 9600 baud (divisor 12), ByteChannel implementation for NIO-based I/O with busy-wait polling, device discovery via SerialPortFinder registering serial0 (0x3f8/COM1) and serial1 (0x2f8/COM2), and gotchas (busy-wait I/O, no interrupt support, FIFO unused, limited port detection). Updatedindex.md(Pages table, Concepts → Pages with Serial Port Driver/UART/RS-232 entries, Source Path → Pages with serial/ path, Task Routing with serial port driver development route),Glossary.md(added Serial Port Driver entry), and linked from Driver-Framework, DeviceManager, Resource-Management. -
Added PCI-Capability-Structure spoke page — Created
PCI-Capability-Structure.mddocumenting JNode's PCI capability structure system:Capabilityabstract base class withIdconstants (PM, AGP, VPD, SLOTID, MSI, CHSWP),createCapability()factory dispatch, MSICapability (message signaled interrupts), PMCapability (power management with capabilities/status/data registers), capability chain layout (CAP_LIST_ID, CAP_LIST_NEXT, CAP_FLAGS), configuration access pattern with offset translation, and gotchas (optional nature, unknown IDs returning anonymous subclasses, MSI platform support, multi-message MSI). Updatedindex.md(Pages table, Concepts → Pages with PCI Capability Structure/Capability chain/MSI/Power Management capability, Source Path → Pages with pci/ path, Task Routing with debugging hardware resource conflicts route),Glossary.md(added Capability chain/MSI/Power Management capability entries), and linked from Bus-Drivers, Interrupt-Handling, Resource-Management. -
Added IsolateThread spoke page — Created
IsolateThread.mddocumenting the thread wrapper for isolates: constructor wiring of I/O streams (VmStreamBindings) and statics table (VmIsolatedStatics),run()delegation toVmIsolate.run(), thread group hierarchy, the side-effectingSystem.setIn/setOut/setErrcall in the constructor, and the I/O stream redirection mechanism. Updatedindex.md(Pages table, Concepts → Pages with IsolateThread entry, Source Path → Pages, Task Routing with "understanding isolate internals" route), and linked from Isolate-Implementation, LoadStatics-Annotation, Core-Thread-Scheduling, Memory-Management, VM-Magic. -
Added LoadStatics-Annotation spoke page — Created
LoadStatics-Annotation.mddocumenting the@LoadStaticsannotation: method-level pragma marking methods whose static field table must be reloaded at every entry via STATICS register load at the method prologue. Covers annotation definition, pragma registration viaClassDecoder, compiler integration in L1/L2X86StackFrame, typical usage pattern with@Uninterruptibleon boot/kernel entry points, and gotchas (prologue overhead, independence from@SharedStatics, register dependency). Updatedindex.md(Pages table, Concepts → Pages with LoadStatics Annotation entry, Source Path → Pages with LoadStatics.java path, Task Routing with debugging thread issues route). Linked from Isolate-Implementation, Kernel-Entry-Point, VM-Magic, Code-Conventions, L1-Compiler, L2-Compiler-Deep-Dive. -
Added Compiler-IR spoke page — Created
Compiler-IR.mddocumenting JNode's Compiler Intermediate Representation: SSA form, control flow graph construction, dominance analysis, optimization pipeline, linear scan register allocation. Key components includeIRControlFlowGraph,IRBasicBlock,IRGenerator,Variable,LinearScanAllocator,SSAStack, and quad-based IR instructions. Covered IR construction phases (bytecode parsing, CFG building, quad generation, live variable analysis), SSA transformation (dominance computation, phi placement, variable renaming), optimization passes (constant folding, dead code elimination), register allocation, and code generation. Updatedindex.md(Pages table, Concepts → Pages with Compiler IR entry, Source Path → Pages with compiler/ir/ path, Task Routing with Performance profiling (JIT) and Fixing a JIT compiler bug routes), and linked from JIT-Compilers, L2-Compiler-Deep-Dive, JIT-Compiler-IR. -
Added VM-Classloader spoke page — Created
VM-Classloader.mddocumenting JNode's VM classloader system:VmClassLoaderabstract base,VmSystemClassLoaderdefault loading from URLs/RtJar/ResourceLoaders,VmJavaClassLoaderwrapping arbitraryClassLoaders,VmAbstractClassLoadercommon defineClass logic with security restrictions,PluginClassLoaderImplper-plugin isolation with prerequisite delegation, andPluginsClassLoaderaggregator fallback. Covered class definition flow, array class handling, JIT compiler integration (architecture, IMT compilation, selector maps, statics management), and gotchas (bootstrap class gating, security restrictions on package definition, array class caching, advisory parent-first, plugin classloader prerequisite-first delegation, ClassInfo wait/notify concurrency). Updatedindex.md(Pages table, Concepts → Pages with VM Classloader entry, Source Path → Pages with classmgr/ path, Task Routing with understanding class loading route), and linked from Type-System-Internals, Plugin-System, Class-Library-Integration. -
Added DeviceToDriverMapper spoke page — Created
DeviceToDriverMapper.mddocumenting JNode's driver discovery strategy pattern: theDeviceToDriverMapperinterface with match levels (-1 through 2), plugin extension point registration, mapper loading via reflection with ConfigurationElement/default constructor patterns, match level sorting inAbstractDeviceManager, first-match-wins driver binding flow, PCI ID matching with mask support, and gotchas (counterintuitive negative priority values, first-match-wins semantics, null-return contract, hot-plug support, mapper statelessness). Updatedindex.md(Pages table, Concepts → Pages with DeviceToDriverMapper/mapper match level/device-to-driver mapping entries, Source Path → Pages, Task Routing tables with device driver development and device discovery routes), and linked from DeviceManager. — CreatedInput-Drivers.mddocumenting JNode's input driver subsystem:KeyboardInterpreterscancode-to-event translation with modifier state, dead key handling, and locale-specific layouts;MouseProtocolHandlerpacket decoding for PS/2 mice;KeyboardLayoutManagerandMouseProtocolHandlerManageras plugin-based factory managers;InputPluginas the entry point binding both managers to InitialNaming; and gotchas (exception-based dead key flow, CapsLock 4-state cycle, stateful interpreter instances, ID-based mouse protocol detection). Updatedindex.md(Pages table, Concepts → Pages, Source Path → Pages, Task Routing tables) and linked from Driver-Framework and GUI-AWT. -
Added TCP-Socket-Impl spoke page — Created
TCP-Socket-Impl.mddocumenting JNode'sjava.net.SocketImplbridge: lazy stream creation (streams not created until afterconnect()), stream closure semantics (closing either stream closes the socket viaappClose()), socket options (getOption()only —setOption()stubbed),accept()flow, and gotchas (streams tied to socket lifetime, controlBlock null before connect,create()is a no-op). Updatedindex.md(Pages table, Concepts → Pages with TCP Socket Impl/TCPInputStream/TCPOutputStream entries, Source Path → Pages, Task Routing tables),Glossary.md(added TCPInputStream and TCPOutputStream entries), and linked from Sockets-Implementation. -
Enhanced Resource-Management page — Expanded coverage with X86IRQManager/PIC8259A integration, dual 8237 DMA controller architecture (address/page registers, 16MB limit), IRQThread dispatch, IRQManager.claimIRQ() synchronous thread creation, IOResourceImpl port validation, DMAConstants I/O port mappings, and child memory resource alignment options. Added 4 new glossary entries (DMA channel, DMAResource) and updated Glossary definition. Updated index.md (Pages table expanded key source paths, Concepts → Pages with DMA channel/DMAResource entries, Source Path → Pages with org.jnode.system/x86 and scheduler paths, Task Routing with IRQ handler development and DMA driver development routes). Linked from Bus-Drivers.
-
Added TSI spoke page — Created
TSI.mddocumenting JNode's Thread Switch Indicator: the 4-bit atomic flags word inVmProcessor(TSI_SWITCH_NEEDED,TSI_SYSTEM_READY,TSI_SWITCH_ACTIVE,TSI_BLOCK_SWITCH), atomic field access viaWord.atomicOr/Word.atomicAnd, assembly TSI manipulation invm-ints.asm(yieldpoint, timeslice, IRQ handlers) andunsafe.asm(Unsafe.yieldPoint), TSI state transition sequences, integration with yieldpoints and @Uninterruptible, and gotchas (first-field constraint, non-atomic assembly RMW, orthogonal BLOCK_SWITCH, per-processor deadlock counter). Updatedindex.md(Pages table, Concepts → Pages, Source Path → Pages, Task Routing tables with three new routes: debugging thread issues, understanding thread scheduling, adding new thread state), and linked from Core-Thread-Scheduling, Yieldpoint, Thread-Scheduling, Interrupt-Handling. -
Added Bus-Drivers spoke page — Created
Bus-Drivers.mddocumenting JNode's bus driver subsystem covering PCI (enumeration, bridges, configuration space), USB (host controller, hub polling, device addressing), PCMCIA/CardBus (PCI bridge integration), and SMBus (address-based protocol). Added key components including PCIBus, USBBus, CardBusBus, SMBus, and related driver classes. Explained how each bus type is enumerated and integrated with DeviceManager. Updatedindex.md(Pages table, Concepts → Pages, Source Path → Pages, Task Routing tables), and linked from Driver-Framework. -
Added FileSystemType spoke page — Created
FileSystemType.mddocumenting the filesystem plugin interface: theFileSystemTypefactory interface,BlockDeviceFileSystemTypesubinterface for block device detection, plugin registration via extension points, auto-mount workflow viaFileSystemMounter, implementation pattern examples (FatFileSystemType, RAMFileSystemType), and gotchas (detection reliability, multiple filesystem support, plugin loading order). Updatedindex.md(Pages table, Concepts → Pages, Source Path → Pages, Task Routing tables), and linked from VFS-Layer and Filesystem-Layer. -
Added DeviceManager spoke page — Created
DeviceManager.mddocumenting the central device registry:DeviceManagerinterface,AbstractDeviceManagercore implementation (device map, system bus, listener dispatch),DefaultDeviceManagerplugin integration, device registration and driver binding flow, mapper match levels, plugin extension loading viaorg.jnode.driver.findersandorg.jnode.driver.mappers, event system (DeviceManagerListener/DeviceListener), DeviceAPI pattern, and gotchas (atomic registration, mapper ordering, delayed binding, 100ms listener warning, command-line device blocking, immutable lookup collections). Updatedindex.md(Pages table, Concepts → Pages with DeviceManager/DeviceFinder entries, Source Path → Pages, Task Routing tables with three new routes: device driver development, device discovery, resource allocation), and linked from Driver-Framework. -
Added BlockDeviceLayer spoke page — Created
BlockDeviceLayer.mddocumenting the block device abstraction layer: API hierarchy (BlockDeviceAPI → PartitionableBlockDeviceAPI/FSBlockDeviceAPI), alignment handling with HEAD/BODY/TAIL decomposition, partition mapping via MappedBlockDeviceSupport, filesystem probing workflow, and gotchas (parallel hierarchy distinction, offset translation, alignment not automatic, ByteArrayDevice limitations). Updatedindex.md(Pages table, Concepts → Pages, Source Path → Pages, Task Routing tables). Linked from Filesystem-Layer and VFS-Layer. -
Added IPv4-Protocol spoke page — Created
IPv4-Protocol.mddocumenting JNode's IPv4 implementation:IPv4NetworkLayeras central coordinator (checksum validation, fragment reassembly, protocol routing, ARP cache update, statistics),IPv4Headerwith 20-byte header parsing/construction,IPv4FragmentListfor reassembly with timeout,IPv4RoutingTablewith three-tier lookup (host, network, gateway),IPv4Utilsfor checksum calculation, and gotchas (checksum corner case with 0/0xFFFF, fragment buffering memory risk, TTL not decremented, no MTU check on send, ARP cache update on every packet). Updatedindex.md(Pages, Concepts → Pages, Source Path → Pages, Task Routing tables), and linked from Network-Stack, Network-Layers, TCP-Protocol, UDP-Protocol, and ARP. -
Added UDP-Protocol spoke page — Created
UDP-Protocol.mddocumenting JNode's UDP implementation:UDPProtocolas the central coordinator (port binding map, receive/send, checksum validation, ICMP error handling),UDPHeaderwith 8-byte header and pseudo-header checksum,UDPDatagramSocketImplbridgingjava.net.DatagramSocketto the native stack, ephemeral port allocation (1024–65535),UDPStatisticscounters, and gotchas (no delivery guarantee, optional checksums, broadcast handling, no flow control). Updatedindex.md(Pages, Concepts → Pages, Source Path → Pages, Task Routing tables),Glossary.md(UDP entry), and linked from Network-Stack, Network-Layers, and TCP-Protocol. -
Enhanced AWT-Peer-Implementation documentation — Added detailed coverage of
SwingFramePeer(FramePeer implementation, window state management, menu bar integration) andDesktopFrame(JNodeAwtContext implementation, JDesktopPane management, background color persistence). AddedinvokeNowOrLater()threading model explanation. Updatedindex.md(Source Path → Pages table addedgui/src/awt/org/jnode/awt/swingpeers/entry, Task Routing tables added "GUI development" and "Graphics performance" routes). -
Added Shell-Syntax spoke page — Created
Shell-Syntax.mddocumenting JNode's shell command parsing infrastructure: SyntaxManager command registration, MuParser backtracking engine (ChoicePoint, SharedStack, step limit), syntax compilation (MuSymbol, MuArgument, MuSequence, MuAlternation), Argument type hierarchy, and gotchas (backtracking state, step limit, EXISTING/NONEXISTENT, labels, SharedStack). Updatedindex.md(Pages, Concepts → Pages, Source Path → Pages, Task Routing tables) and linked from Syntax. -
Added VirtualDevices spoke page — Created
VirtualDevices.mddocumenting JNode's software-only device framework: VirtualDevice base class extending Device with null bus, VirtualDeviceDriver for device lifecycle, VirtualDeviceFactory for creation and registration, integration with DeviceManager, differences from hardware devices (no IRQ/DMA/IO resources), and gotchas (null bus semantics, name persistence, testing considerations). Updatedindex.md(Pages table, Concepts → Pages with VirtualDevices/Virtual device/RAM disk entries, Source Path → Pages with virtual/ path, Task Routing tables with "Adding a virtual device" route), and linked from Driver-Framework, DeviceManager, BlockDeviceLayer, Filesystem-Layer. -
Added TCP-Protocol spoke page — Created
TCP-Protocol.mddocumenting JNode's TCP implementation with full state machine: TCPProtocol main handler, TCPHeader parsing/construction, TCPControlBlock state machine with all 11 states (CLOSED, LISTEN, SYN_SENT, SYN_RECV, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, CLOSING, TIME_WAIT, CLOSE_WAIT, LAST_ACK), three-way handshake connection establishment, four-way handshake teardown, flow control via window size, and gotchas (small default window of 1024 bytes, no congestion control, 536-byte default MSS). Updatedindex.md(Pages table, Concepts → Pages, Source Path → Pages, Task Routing tables), linked from Network-Stack, Sockets-Implementation, and Network-Layers. -
Added JIT-Compiler-IR spoke page — Created
JIT-Compiler-IR.mddocumenting JNode's Just-In-Time compiler intermediate representation: IRControlFlowGraph and IRBasicBlock structure, bytecode-to-IR translation via IRGenerator, SSA construction/optimization/de-SSA pipeline, LinearScanAllocator register allocation, CodeGenerator native code emission, and gotchas (L1 vs L2 differences, type inference, SSA memory overhead, exception handling). Updatedindex.md(Pages, Concepts → Pages, Source Path → Pages, Task Routing tables) and linked from JIT-Compilers. -
Enhanced L1-Compiler documentation — Added "Register allocation" concept mapping to L1-Compiler-Deep-Dive in Concepts → Pages table of
index.md. Added "Performance profiling (JIT)" task route to Task Routing table, pointing to JIT-Compilers, L1-Compiler, L1-Compiler-Deep-Dive, and L2-Compiler-Deep-Dive. -
Added L1-Compiler spoke page — Created
L1-Compiler.mddocumenting L1 compiler register allocation:X86RegisterPoolarchitecture with GPR/XMM pools and priority allocation,VirtualStackdelayed-emission strategy, item state machine (CONSTANT→GPR→STACK), type-safe stack operations, long/double handling, and gotchas (basic block barriers, aliasing restriction, ECX for shifts, register priority). Updatedindex.md(Pages table, Concepts → Pages, Source Path → Pages, Task Routing tables),Glossary.md(added L1 Compiler Registers entry), and linked from JIT-Compilers. -
Added MMTk-Bindings spoke page — Created
MMTk-Bindings.mddocumenting JNode's integration with the Memory Management Toolkit: the build-time Plan stub replacement, VM interface classes (Memory, Collection), Plan implementations (MarkSweep, GenRC, NoGC), BaseMmtkHeapManager integration, and gotchas (boot image space ordering, per-processor plan instances, object header dependency). Updatedindex.md(Pages table, Concepts → Pages, Source Path → Pages, Task Routing tables) and linked from Memory-Management. -
Added Virtual-Methods-Dispatch spoke page — Created
Virtual-Methods-Dispatch.mddocumenting JNode's layered method dispatch system: vtable for class-inheritance virtual calls, IMT for interface calls with 64-element hash table, CompiledIMT for architecture-specific fast dispatch, static method constant-pool resolution, JIT compilation of virtual/interface calls, and inlining implications. Updatedindex.md(Pages table, Concepts → Pages, Source Path → Pages, Task Routing tables),Glossary.md(added Virtual Methods Dispatch entry), and linked from vtable, IMT, TIB, JIT-Compilers. -
Enhanced BootImageBuilder-Internals page — Added
BuildObjectResolverto Key Components table documenting object resolution during build. Addedbuilder/src/builder/org/jnode/build/to Source Path → Pages table inindex.md. -
Added TIB spoke page — Created
TIB.mddocumenting JNode's Type Information Block: per-classObject[]array structure (VMTYPE_INDEX through FIRST_METHOD_INDEX), TIB construction viaVmClassType.prepareTIB()andTIBBuilder, vtable slot assignment rules, IMT/CompiledIMT integration, GC tracing, and gotchas (class-level vs instance-level, vtable slot inheritance-order dependency, synthetic abstract method cloning). Updatedindex.md(Pages, Concepts → Pages, Source Path → Pages, Task Routing tables),Glossary.md(TIB entry now points to new page), and linked from Virtual-Methods, Object-Layout, JIT-Compilers. — CreatedIMT.mddocumenting JNode's Interface Method Table: fixed 64-element hash table, selector-based indexing (selector % 64), collision chaining viaIMTBuilder, construction inVmClassType.prepareIMT(), CompiledIMT generation for fast dispatch, and gotchas (class-specific collision patterns, JIT dispatch requirements, selector hashing). Updatedindex.md(Pages, Concepts → Pages, Source Path → Pages, Task Routing tables),Glossary.md(IMT entry now points to new page), and linked from Virtual-Methods. -
Added vtable spoke page — Created
vtable.mddocumenting the virtual method table: TIB slot assignment,TIBBuilderconstruction via inheritance-copy and method append/override, the visibility-based override vs. append rule, synthetic abstract method cloning for interface methods, and JIT vtable index resolution. Updatedindex.md(Pages, Concepts → Pages, Source Path → Pages, Task Routing tables),Glossary.md(vtable entry now points to new page), and linked from Virtual-Methods. — CreatedKernel-Entry-Point.mddocumenting JNode's assembly-to-Java transition: GRUB Multiboot jump tosys_start,real_startinitialization sequence (stack, memory, IDT, paging, FPU), userspace transition viairet, andMain.vmMain()entry point. Covers InitJarProcessor, BootImageBuilder integration, @LoadStatics/@Uninterruptible annotations, and gotchas (A20 check, Multiboot magic, init-jar empty). Updatedindex.md(Pages, Concepts → Pages, Source Path → Pages, Task Routing tables), and linked from Boot-Sequence and Assembly-Files. -
Added Yieldpoint spoke page — Created
Yieldpoint.mddocumenting JNode's cooperative scheduling mechanism: compiler-injectedINT 0x30checkpoint,X86CompilerHelper.writeYieldPoint()code generation,VmProcessor.reschedule()handling, TSI flags (SWITCH_NEEDED, SYSTEM_READY, SWITCH_ACTIVE, BLOCK_SWITCH),@Uninterruptiblesuppression, and gotchas (yieldpoint storms, timeslice vs yieldpoint, 64-bit R12 register). Updatedindex.md(Pages, Concepts → Pages, Task Routing tables),Glossary.md(Yieldpoint entry), and linked from Core-Thread-Scheduling and JIT-Compilers. -
Added IDEDisk-Driver spoke page — Created
IDEDisk-Driver.mddocumenting JNode's ATA/IDE disk driver: device startup with partition detection, LBA addressing (28-bit and 48-bit), PIO data transfer viaIDEBuscommand queue, ATA register interface, and gotchas (double boot sector read, DMA disabled, no error recovery). Updatedindex.md(Pages, Concepts → Pages, Source Path → Pages, Task Routing tables),Glossary.md(LBA, PIO entries), and linked from Block-Device-Layer. -
Added FAT-Filesystem spoke page — Created
FAT-Filesystem.mddocumenting JNode's FAT12/FAT16/FAT32 implementation: boot sector (BPB) parsing, FAT table management (cluster chains, allocation), directory structure (root vs subdirectory), Long File Name (LFN/VFAT) support viaFatLfnDirectory, and gotchas (dirty tracking, FAT consistency checks). Updatedindex.md(Pages, Concepts → Pages, Source Path → Pages, Task Routing tables),Glossary.md(FAT12, FAT16, FAT32, LFN entries), and linked from Filesystem-Layer. -
Added Ext2-Ext3-Filesystem spoke page — Created
Ext2-Ext3-Filesystem.mddocumenting JNode's ext2/ext3 implementation: superblock structure, block group layout with sparse_super, inode direct/indirect block addressing with extent support, block and inode bitmap allocation, directory record format, ext3 journaling via feature flags, and feature compatibility checks. Updatedindex.md(Pages, Concepts → Pages, Source Path → Pages, Task Routing tables),Glossary.md(block group, block bitmap entries), and linked from Filesystem-Layer. -
Added Network-Layers spoke page — Created
Network-Layers.mddocumenting JNode's three-layer OSI protocol architecture: LinkLayer interface (frame type handling), NetworkLayer interface (TransportLayer registration and packet routing), TransportLayer interface (SocketImplFactory), SocketBuffer as the sk_buff-style packet container, LayerHeader chaining, and NetworkLayerManager as the central registry. Updatedindex.md(Pages, Concepts → Pages, Source Path → Pages, Task Routing tables),Glossary.md(SocketBuffer entry), and linked from Network-Stack. -
Added Plugin-Descriptor-Schema spoke page — Created
Plugin-Descriptor-Schema.mddocumenting the XML schema for plugin descriptors:<plugin>,<requires>,<runtime>,<extension-point>, and<extension>tags, their attributes and child elements, runtime processing by PluginManager/PluginRegistry, ConfigurationElement access, and security permissions. Updatedindex.md(Pages, Concepts → Pages, Source Path → Pages tables) and linked from Plugin-System. -
Added InitialNaming-Service-Registry spoke page — Created
InitialNaming-Service-Registry.mddocumenting JNode's type-keyed singleton service registry: bind/lookup/unbind pattern, listener notifications viaNameSpaceListener, the Class-key design rationale, and the boot initialization order. Updatedindex.md(Pages, Concepts → Pages, Source Path → Pages, Task Routing tables),Glossary.md(expanded InitialNaming entry), andArchitecture.md(added link to new page). (Multiboot header, kernel, bootstrap code, boot heap with exact offset formulas), detailed class pre-resolution pipeline (VmType.initializeForBootImage, multi-pass compileClasses loop, prepareAfterBootstrap, loadFromBootClassArray), native kernel entry-pointing sequence (GRUB→kernel.asm→_$$introCode→initVm→initMain→initVmThread→Main.vmMain with STATICS register setup), jump table initialization (32/64-bit index differences), and new gotchas (emit phase twice, Multiboot 8KB constraint, INITIAL_OBJREFS_CAPACITY). -
Added Class-Library-Integration spoke page — Created
Class-Library-Integration.mddocumenting JNode's integration mechanisms connecting GNU Classpath and OpenJDK with the VM: the three bridge areas (JVM, classloader, Java API), VM override resolution via classpath/vm and openjdk/vm directories, native method binding without JNI using @MagicPermission, and boot image integration. Updatedindex.md(Pages table, Concepts → Pages, Source Path → Pages, Task Routing tables) and linked from Class-Library and Type-System-Internals. -
Added Partition-Tables spoke page — Created
Partition-Tables.mddocumenting JNode's partition table support: IBM MBR detection with multiple signatures, GPT (GUID Partition Table) parsing with protective MBR and 16KB read requirement, Apple Partition Map (APM) support, the plugin-based PartitionTableType architecture, recursive partition traversal via PartitionTableEntry interface, and gotchas (GPT larger read, protective MBR, extended partition chains, partition type vs filesystem). Updatedindex.md(Pages, Concepts → Pages, Source Path → Pages, Task Routing tables) and linked from Filesystem-Layer, BlockDeviceLayer, and Boot-Sequence. -
Added MarkSweep-GC spoke page — Created
MarkSweep-GC.mddocumenting JNode's mark-sweep garbage collector:Planextending MMTk'sMarkSweep,HeapManagerdelegation, GC color states (WHITE/GREY/BLACK/YELLOW), mark phase viaGCMarkVisitorBFS traversal, sweep phase viaGCSweepVisitor,GCStackmark stack management, finalizer deferral for GC_YELLOW objects, and gotchas (MMTk integration, Uninterruptible constraint, mark stack overflow, boot image exclusion). Updatedindex.md(Pages table, Concepts → Pages with MarkSweep GC/MarkSweep entries, Source Path → Pages with memmgr/ms/ paths, Task Routing with GC development route), and linked from MMTk-Bindings, Memory-Management, Boot-Sequence, Object-Layout.
-
Added JNasm-Assembler-Design spoke page — Created
JNasm-Assembler-Design.mddocumenting JNode's custom x86 assembler: preprocessing (macros, includes, symbol substitution), two-pass assembly architecture, instruction encoding in X86Core (emitADD, emitMOV, etc.), addressing modes, and integration with BootImageBuilder during boot image build. Updatedindex.md(Pages, Concepts, Source Path tables) and linked from Build-System and Assembly-Files. -
Added Unboxed-Types-and-VM-Magic spoke page — Created
Unboxed-Types-and-VM-Magic.mddocumenting the four core unboxed types (Address,Word,Offset,Extent), their compiler treatment (no object allocation, inline machine instructions, register-based arithmetic), the UnboxedObject marker interface, ObjectReference, and MagicHelper integration. Updatedindex.md(Pages, Concepts, Source Path, Task Routing tables) and linked from VM-Magic and Code-Conventions. -
Added L2-Compiler-Deep-Dive spoke page — Created
L2-Compiler-Deep-Dive.mddocumenting the SSA-based IR (quads, CFG, phi functions), SSA construction/destruction, optimization pipeline (constant folding, copy propagation, dead code elimination), linear-scan register allocator with spill strategy, and x86 code generation. Updatedindex.md(Pages, Concepts, Source Path, Task Routing tables),Glossary.md(L2 compiler entry), andJIT-Compilers.md(Related Pages). Updated the L2 compiler entry in Glossary to point to the new deep-dive page. -
Added L1-Compiler-Deep-Dive spoke page — Created
L1-Compiler-Deep-Dive.mddocumenting the VirtualStack delayed-emission strategy, Item state machine (CONSTANT→GPR→STACK transitions), register pools (GPRs32/64, XMMs32/64), long/double handling in 32/64-bit, optimization passes (register exploitation, constant folding, operand ordering, inlining), and gotchas (basic block barriers, aliasing restriction, ECX for shifts). Updatedindex.md(Pages, Concepts, Source Path, Task Routing tables),Glossary.md,JIT-Compilers.md(Related Pages), and this Changelog. Updated the L1 compiler entry in Glossary to point to the new deep-dive page. -
Added AWT-Peer-Implementation spoke page — Created
AWT-Peer-Implementation.mddocumenting JNode's AWT peer implementation using Swing components: JNodeToolkit/SwingToolkit hierarchy, DesktopFrame as root window, peer creation pattern, event handling through KeyboardHandler/MouseHandler, framebuffer integration via FrameBufferAPI, and font rendering. Updatedindex.md(Pages, Concepts, Source Path, Task Routing tables) and linked from GUI-AWT. -
Added Video-Driver-Architecture spoke page — Created
Video-Driver-Architecture.mddocumenting the Surface/FrameBuffer abstraction layer, AbstractSurface rendering engine, VESA driver, NVidia/Radeon hardware acceleration plugins, and hardware cursor support. Updatedindex.md(Pages, Concepts, Source Path, Task Routing tables) and linked from GUI-AWT. Added Surface entry toGlossary.md. -
Added Sockets-Implementation spoke page — Created
Sockets-Implementation.mddocumenting the bridge betweenjava.netAPI and JNode's native TCP stack:TCPSocketImplFactoryregistration,TCPSocketImpl→TCPControlBlock→TCPInChannel/TCPOutChannelflow, state machine, and stream wrappers. Updatedindex.md(Pages, Concepts, Source Path, Task Routing tables) and linked from Network-Stack. -
Added Block-Device-Layer spoke page — Created
Block-Device-Layer.mddocumenting the block I/O API hierarchy (BlockDeviceAPI, PartitionableBlockDeviceAPI, FSBlockDeviceAPI), alignment wrappers (BlockAlignmentSupport, FSBlockAlignmentSupport), partition mapping via MappedFSBlockDeviceSupport, and the relationship between physical block drivers and filesystems. Updatedindex.md(Pages, Concepts, Source Path, Task Routing tables) and linked from Filesystem-Layer. — CreatedVFS-Layer.mddocumenting the in-memory Virtual File System, mount mechanism (FileSystemMounter), theFileSystemTypefactory interface, and path resolution from JavaFilecalls throughVirtualDirEntry→VirtualMountEntry→ physicalFSEntry. Updatedindex.md(Pages, Concepts, Source Path tables) and linked from Filesystem-Layer. -
Added Resource-Management spoke page — Created
Resource-Management.mddocumenting the resource management framework (ResourceManager, IOResource, IRQResource, DMAResource, MemoryResource), allocation lifecycle, x86 DMA specifics, and gotchas. Updatedindex.md(Pages, Concepts, Source Path, Task Routing tables) and linked from Driver-Framework. -
Added Interrupt-Handling spoke page — Created
Interrupt-Handling.mddocumenting how JNode routes hardware interrupts through the IDT (ints.asm), PIC/APIC, IRQManager, and IRQThread dispatch to Java IRQHandler implementations. Covers CPU exception handling, hardware IRQ flow, EOI protocols, yieldpoint/timeslice interrupts (INT 0x30/0x33), and lazy FPU switching. Updatedindex.md(Pages, Concepts, Source Path, Task Routing tables) and linked from Architecture. -
Added Type-System-Internals spoke page — Created
Type-System-Internals.mddocumenting the VmType hierarchy (VmType, VmClassType, VmNormalClass, VmArrayClass, VmInterfaceClass, VmPrimitiveClass), class loading pipeline, linking (prepare/verify/compile), field layout calculation with alignment, TIB structure and construction, and constant pool resolution. Updatedindex.md(Pages, Concepts, Task Routing tables),Glossary.md(VmType entry), and this Changelog. -
Added Core-Thread-Scheduling spoke page — Created
Core-Thread-Scheduling.mddocumenting JNode's hybrid scheduling model: cooperative yieldpoints (INT 0x30 injected by JIT compilers), preemptive timer interrupts, the TSI flags word, thread state machine, and the role of@Uninterruptible. Updatedindex.md(Pages, Concepts, Source Path, Task Routing tables). Added TSI, VmScheduler, and Yieldpoint entries toGlossary.md. -
Added Thread-Scheduling spoke page — Created
Thread-Scheduling.mddocumenting the JNode thread scheduler (VmThread, VmProcessor, VmScheduler), preemptive vs cooperative scheduling, @Uninterruptible mechanism, and Thread Switch Indicator (TSI). Added link from Architecture and updatedindex.md(Pages, Concepts, Source Path, Task Routing tables). -
Added Object-Layout spoke page — Created
Object-Layout.mddocumenting the internal memory representation of Java objects in JNode, including header structure (TIB, Flags), 32-bit vs 64-bit differences, TIB array contents, instance field layout, and 8-byte alignment. Added link from Architecture and updatedindex.md(Pages, Concepts, Source Path, Task Routing tables). -
Added Syntax spoke page — Created
Syntax.mdexplaining the shell argument parsing system (Argument, Syntax, MuParser, flags, built-in types, gotchas). Added link from Shell-Commands and updatedindex.md(Pages, Concepts, Source Path, Task Routing tables). -
Initial wiki creation — Created all Phase 2 pages:
- Home, Architecture, Boot-Sequence, Build-System, Plugin-System, Code-Conventions
- Glossary, Changelog, index
- _Sidebar navigation
-
Deep dives created — Created Phase 3 and 4 pages:
- JIT-Compilers, Memory-Management, VM-Magic
- Driver-Framework, Assembly-Files, Filesystem-Layer, Network-Stack, Shell-Commands
- GUI-AWT, Testing
-
Schema — Created
WIKI_SCHEMA.mdin main repo with page structure template and index maintenance rules -
Main repo changes — Updated
AGENTS.mdand.gitignorefor wiki integration -
Wiki refinements — Added
Class-Library.md, expanded task routing inindex.md, and added meta-document links toHome.md.