{"id":15359759,"url":"https://github.com/redhog/rosetta","last_synced_at":"2026-02-05T23:01:49.769Z","repository":{"id":232863683,"uuid":"785354177","full_name":"redhog/rosetta","owner":"redhog","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-11T18:23:03.000Z","size":10,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-13T07:46:46.585Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redhog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-11T18:09:19.000Z","updated_at":"2024-04-11T18:09:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"23ea27d0-e39a-4393-91fb-4c4f706e5cbf","html_url":"https://github.com/redhog/rosetta","commit_stats":null,"previous_names":["redhog/rosetta"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/redhog/rosetta","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhog%2Frosetta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhog%2Frosetta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhog%2Frosetta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhog%2Frosetta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redhog","download_url":"https://codeload.github.com/redhog/rosetta/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhog%2Frosetta/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29137751,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T22:49:08.052Z","status":"ssl_error","status_checked_at":"2026-02-05T22:45:32.059Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T12:46:10.426Z","updated_at":"2026-02-05T23:01:49.745Z","avatar_url":"https://github.com/redhog.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rosetta project\n\n## Goals\n\n* To convey current day knowledge and data to future archeologists\n* To convey human knowledge and data to aliens\n\n## Assumptions\n\n* The receiver is aware of the concept of turing completeness\n* The receiver has some kind of computation devices\n* The receiver does NOT know anything about\n  * Our human languages\n  * Out programming languages\n  * Our data encodings\n  * Our character sets\n  * Our computer architectures (e.g. von neuman, what a byte is)\n* It is easier to understand math than human language\n* It is easier to understand a running software than a static dataset\n\n## Method\n\n* Teach number representations by example using known sequences (integers, primes etc)\n* Teach a small programming language by example\n  * Validate using an example that is an interpreter for the language written in the language\n* Provide a hardware emulator\n  * Written in the language\n  * Capable of running a full Linux with standard user space (debian or other distro)\n  * Linux and filesystem encoded as array constant in source code\n\n\n## What's been done so far\n\nriscv_em branch for mmu: https://github.com/redhog/riscv_em/tree/sv39\n\n```\ncd rv64gc-emu-software/output\n../../rv64gc-emu/build/rv64gc_emu   --bios fw_jump.bin --kernel ../linux/buildroot/output/build/linux-5.15.43/arch/riscv/boot/Image --dtb dtb.dtb --font font.ttf\n\ncd rv64gc-emu-software/linux/buildroot/output/build/linux-5.15.43\nsudo make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- all\n\n# Unpack original buildroot rootfs\ncd buildroot\ncpio -i -d -H newc -F ../rv64gc-emu-software/linux/buildroot/output/images/rootfs.cpio --no-absolute-filenames\n\n# Create debian rootfs\nsudo debootstrap --arch=riscv64 unstable debianroot\ncd debianroot\ncp ../buildroot/init .\nfind . | cpio -o -H newc \u003e ../debianroot.cpio\n\n\nriscv_em/build/riscv_em -f linux_for_riscv_em/output/linux-5.10.6/loader_64.bin -d riscv_em/dts/riscv_em.dtb -i buildroot.riscv_em.squashfs \n\n\ncd debianroot; mksquashfs . ../debianroot.10.squashfs -Xcompression-level 9\n\n\ncd linux_for_riscv_em/output/linux-5.10.6\nmake ARCH=riscv CROSS_COMPILE=riscv64-unknown-elf- -j16 loader\nriscv64-unknown-elf-objcopy -O binary arch/riscv/boot/loader loader_64.bin\n\n\nConfig options to set in kernel to get initrd to work\nhttps://unix.stackexchange.com/a/482016\n\n\nWhat SATP should be: 8000000003000000\nWhat SATP is:        8000000000080a6a\n\nriscv64-unknown-elf-objdump -t -d vmlinux.o \u003e vmlinux.asm.txt\n\n\n\n0000000000000044 \u003crelocate\u003e:\n  44:   800005b7                lui     a1,0x80000\n  48:   00000617                auipc   a2,0x0\n  4c:   00060613                mv      a2,a2\n  50:   40c585b3                sub     a1,a1,a2\n  54:   00b080b3                add     ra,ra,a1\n  58:   00000617                auipc   a2,0x0\n  5c:   00060613                mv      a2,a2\n  60:   00b60633                add     a2,a2,a1\n  64:   10561073                csrw    stvec,a2\n  68:   00c55613                srl     a2,a0,0xc\n  6c:   fff0059b                addw    a1,zero,-1\n  70:   03f59593                sll     a1,a1,0x3f\n  74:   00b66633                or      a2,a2,a1\n  78:   00000517                auipc   a0,0x0\n  7c:   00050513                mv      a0,a0\n  80:   00c55513                srl     a0,a0,0xc\n  84:   00b56533                or      a0,a0,a1\n  88:   12000073                sfence.vma\n  8c:   18051073                csrw    satp,a0\n\n\na0 = x10\na1 = x11\n\n\n\n\"%x\" % (0x0000000080000074 + 2666 * 2**12 - 116)\n'80a6a000'\n\n\nCONFIG_PAGE_OFFSET=0xffffffff80000000\nidx = (((CONFIG_PAGE_OFFSET) \u003e\u003e PGDIR_SHIFT) \u0026 (PTRS_PER_PGD - 1))\n\n\npgd_index(a)  (((a) \u003e\u003e PGDIR_SHIFT) \u0026 (PTRS_PER_PGD - 1))\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhog%2Frosetta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredhog%2Frosetta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhog%2Frosetta/lists"}