regimazone/cognumach
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Windows/WSL notes ------------------ On Windows, use WSL to run the build and static analysis: 1) Open WSL and ensure the repo is mounted at /mnt/d/curso/cognu-mach 2) Install deps: ./scripts/dev-setup-wsl.sh 3) Run analysis: ./scripts/run-static-analysis.sh If WSL is not installed, install it from an elevated PowerShell: wsl --install This is CognuMach (Cognitive GNU Mach), an enhanced distribution of the GNU Mach microkernel with OpenCog-inspired cognitive agency capabilities, <http://www.gnu.org/software/hurd/microkernel/mach/gnumach.html>. Welcome. CognuMach is the microkernel upon which a GNU Hurd system is based. It provides an Inter Process Communication (IPC) mechanism that the Hurd uses to define interfaces for implementing in a distributed multi-server fashion the services a traditional operating system kernel provides. ** Cognitive Agency ** CognuMach extends GNU Mach with an OpenCog-inspired cognitive agency layer that brings artificial general intelligence (AGI) concepts to the kernel level: - Atomspace: Distributed knowledge representation inspired by OpenCog Hyperon - Cognitive Agents: Autonomous entities with goals, beliefs, and reasoning - Cognitive IPC: Enhanced message passing with semantic understanding - Adaptive Behavior: Learning and adaptation based on system state See docs/cognitive-agency.md and COGNITIVE_AGENCY_IMPLEMENTATION.md for details. GNU Mach runs on 32-bit x86 machines. A version running on 64-bit x86 (x86_64) machines is in progress. Volunteers interested in ports to other architectures are sought; please contact us (see below) if you'd like to help. libmach, bootloaders, default pagers, and the like are not part of this distribution. For libraries, we refer you to the GNU C Library, which has Mach support. For bootloaders, we refer you to GRUB. (This kernel can be loaded by any bootloader that uses the multiboot standard.) For default pagers, we refer you to your particular system that you will run on top of Mach. The Mach Interface Generator (MIG) is no longer part of this distribution, and instead is packaged separately: GNU MIG. Generic installation instructions may be found in the file INSTALL. By default, most drivers for network boards are included, as well as drivers for IDE, SCSI and AHCI disks. If you want the in-kernel debugger compiled in, specify --enable-kdb to configure. This is only useful if you actually anticipate debugging the kernel, of course. We don't turn it on by default because it adds considerably to the unpageable memory footprint of the kernel. GNU Mach can be cross-built. No specific options need to be given when building on a 32-bit x86 ELF userland such as GNU/Linux. Manually switch the compiler to 32-bit mode when using a 64-bit x86 (x86_64) ELF toolchain: $ [...]/configure --host=i686-gnu CC='gcc -m32' LD='ld -melf_i386' or point to a 32-bit ELF toolchain: $ [...]/configure --host=i686-gnu CC=i686-linux-gnu-gcc LD=i686-linux-gnu-ld Also, GNU MIG needs to be a 32bit version to properly compile the interfaces, you can specify for instance $ [...]/configure --host=i686-gnu CC=i686-linux-gnu-gcc LD=i686-linux-gnu-ld MIG=i686-linux-gnu-mig Please read the FAQ at <http://www.gnu.org/software/hurd/faq.html>. Bug reports should be sent to <bug-hurd@gnu.org> or filed on <http://savannah.gnu.org/bugs/?group=hurd>. Requests for assistance should be sent to <help-hurd@gnu.org> or filed on <http://savannah.gnu.org/support/?group=hurd>. You can also find us on the libera.chat IRC network in the #hurd channel. ### Building on Windows via WSL (Ubuntu) 1. Install WSL and Ubuntu: - From an elevated PowerShell: `wsl --install -d Ubuntu` 2. Inside Ubuntu, install build dependencies: - `sudo apt update` - `sudo apt install -y build-essential gcc-multilib binutils binutils-multiarch \ autoconf automake libtool pkg-config gawk bison flex nasm \ xorriso grub-pc-bin mtools qemu-system-x86 git python3` 3. Install MIG (Mach Interface Generator): - `sudo apt install -y mig` (if available) - If not available, build from source using the included mig directory: - `cd mig && ./bootstrap && ./configure && make -j$(nproc) && sudo make install` - Note: The mig source is already included in this repository 4. Configure and build (from the project root mounted in WSL, e.g. `/mnt/d/curso/cognu-mach`): - `./configure --host=i686-gnu CC='gcc -m32' LD='ld -melf_i386' MIG='mig'` - `make -j$(nproc)` 5. Run tests with QEMU: - `make check` - Or a specific test: `make run-hello` 6. Debug with GDB and QEMU: - `make debug-hello` (waits for GDB on port 1234) - In another terminal: `gdb gnumach -ex 'target remote :1234' -ex 'b setup_main' -ex c`
Languages
- C 83.7%
- Makefile 11.4%
- Shell 3.3%
- Assembly 0.9%
- C++ 0.3%
- Python 0.2%
- Other 0.2%