Skip to content

regimazone/cognumach

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3,409 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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`

About

cog gnu mach

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C 83.7%
  • Makefile 11.4%
  • Shell 3.3%
  • Assembly 0.9%
  • C++ 0.3%
  • Python 0.2%
  • Other 0.2%