GithubHelp home page GithubHelp logo

terraos's Introduction

terraOS

Boot Linux-based operating systems from a RMA shim.

Image of terraOS bootloader

How does it work?

terraOS utilizes a bug in chromebook RMA shims, which are bootable recovery images that are used for running diagnostic utilities, to chainload regular Linux distros by replacing the rootfs. Replacing the rootfs entirely doesn't work however, since the RMA shim boots in an environment made specifically for those diagnostic utilities. terraOS is made to get around that.

How do I add my own distros?

You'll need to create a partition with the type chromeOS rootfs (3cb8e202-3b7e-47dd-8a3c-7ff2a13cfcec) and bootstrap your distro in the root of an ext4 filesystem on that partition. Place any squashfs files in the root of the first partition.

How do I use it?

Make sure you use an Arch Linux system as other distros are not supported due to the lack of scripts for bootstrapping Arch Linux.

  1. Clone this repo.
  2. Create a build directory.
  3. Run bash ../scripts/build_stage1.sh <defconfig>
    1. Use terraos as the defconfig if building for x86_64 chromebooks.
    2. Use terraos_jacuzzi as the defconfig if building for jacuzzi board chromebooks. Support for jacuzzi board chromebooks is experimental and may not work, however.
  4. Run bash ../scripts/build_aur_packages.sh
  5. Run bash ../scripts/build_all.sh <shim.bin> <board_recovery.bin> <reven_recovery.bin> replacing <shim.bin> with the path to a shim for your board, <board_recovery.bin> with the path to a recovery image for your board, and <reven_recovery.bin> with the path to a chromeOS flex recovery of the same version.

This will place a built bootloader image, squashfs and tarballs of the arch rootfs, a bootloader image with the arch rootfs, a bootloader image with terraOS chromeOS, and a bootloader image with both the arch rootfs and terraOS chromeOS in the build directory.

The default arch rootfs user is terraos and its password is terraos.

How do I install to internal storage?

  1. Boot into terraOS and copy over the image you used to flash your terraOS drive.
  2. Use GParted or sudo fdisk -l to find your internal storage. Replace /dev/mmcblkX in the rest of the steps with the internal storage device.
  3. Run sudo dd if=<image> of=/dev/mmcblkX status=progress bs=16M oflag=direct to write the image to the internal storage. Replace <image> with the path to the image you copied.

Alternatively you can manually create a chromeOS rootfs type partition via parted or fdisk, format as ext4, and copy over the rootfs.

FAQ

Can I automatically boot into a partition?

Yes, edit /sbin/init on the terraOS bootloader partition and pass terraOS the arguments autoboot <partnum> where <partnum> is a partition number on the same disk as terraOS.

What doesn't work?

  • Deep sleep (kernel issue)
  • Swap (disabled in kernel)
  • Audio on dedede (firmware bug)

Can I use a different distro?

Yes, you will need to either use a non-systemd distro or manually compile systemd with the chromiumos patches.

terraos's People

Contributors

r58playz avatar enterthevoid-x86 avatar

Stargazers

Crllect avatar  avatar  avatar Ordeeper Cypher avatar Armando Hinojosa avatar  avatar Andrew avatar Royan Xu avatar Amplify avatar  avatar  avatar Ashton Davies avatar Thomas Fitzpatrick avatar PeytonPlayz595 avatar  avatar Coding4Hours avatar  avatar Scaratek avatar Piplup avatar JackRN avatar  avatar YoungChief avatar wearr avatar  avatar  avatar potato dog man avatar Luca LeBlanc avatar  avatar  avatar  avatar Entrpix avatar Raina avatar Celesteisscool avatar Mythical Trashcan avatar zek avatar

Watchers

 avatar Gabe avatar Mythical Trashcan avatar  avatar Royan Xu avatar

terraos's Issues

had an issue compiling terraos

running arch linux

libtool: compile:  /usr/bin/gcc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/home/appleflyer/terraos/scripts/buildroot/output/host/include -I. -I../include -Iinclude -I../src -O2 -I/home/appleflyer/terraos/scripts/buildroot/output/host/include -c ../src/x86/unix64.S  -fPIC -DPIC -o src/x86/.libs/unix64.o
/bin/sh ./libtool  --tag=CC   --mode=compile /usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/home/appleflyer/terraos/scripts/buildroot/output/host/include -I. -I../include -Iinclude -I../src -O2 -I/home/appleflyer/terraos/scripts/buildroot/output/host/include -c -o src/x86/win64.lo ../src/x86/win64.S
../src/tramp.c: In function ‘ffi_tramp_get_temp_file’:
../src/tramp.c:262:22: error: implicit declaration of function ‘open_temp_exec_file’ [-Wimplicit-function-declaration]
  262 |   tramp_globals.fd = open_temp_exec_file ();
      |                      ^~~~~~~~~~~~~~~~~~~
make[4]: *** [Makefile:1323: src/tramp.lo] Error 1
make[4]: *** Waiting for unfinished jobs....
libtool: compile:  /usr/bin/gcc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/home/appleflyer/terraos/scripts/buildroot/output/host/include -I. -I../include -Iinclude -I../src -O2 -I/home/appleflyer/terraos/scripts/buildroot/output/host/include -c ../src/x86/win64.S  -fPIC -DPIC -o src/x86/.libs/win64.o
make[4]: Leaving directory '/home/appleflyer/terraos/scripts/buildroot/output/build/host-libffi-3.4.4/x86_64-pc-linux-gnu'
make[3]: *** [Makefile:1395: all-recursive] Error 1
make[3]: Leaving directory '/home/appleflyer/terraos/scripts/buildroot/output/build/host-libffi-3.4.4/x86_64-pc-linux-gnu'
make[2]: *** [Makefile:623: all] Error 2
make[2]: Leaving directory '/home/appleflyer/terraos/scripts/buildroot/output/build/host-libffi-3.4.4/x86_64-pc-linux-gnu'
make[1]: *** [Makefile:591: all-all] Error 2
make[1]: Leaving directory '/home/appleflyer/terraos/scripts/buildroot/output/build/host-libffi-3.4.4'
make: *** [package/pkg-generic.mk:283: /home/appleflyer/terraos/scripts/buildroot/output/build/host-libffi-3.4.4/.stamp_built] Error 2

idk why this happened
bash build_stage1.sh terraos
and that happened

Build stage 1 not working in arch linux

You must install 'unzip' on your build machine
which: no rsync in (/vscode/bin/linux-x64/dc96b837cf6bb4af9cd736aa3af08cf8279f7685/bin/remote-cli:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl)
You must install 'rsync' on your build machine
which: no bc in (/vscode/bin/linux-x64/dc96b837cf6bb4af9cd736aa3af08cf8279f7685/bin/remote-cli:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl)
You must install 'bc' on your build machine
make: *** [support/dependencies/dependencies.mk:27: dependencies] Error 1
[root@codespaces-2c5b52 build]#

lib kid compilation issue

Screenshot 2024-06-14 221518
What dependencies do i need to have to make it compile successfully?

OS: Ubuntu 22.04.4 LTS on Windows 10 x86_64
Kernel: 5.15.146.1-microsoft-standard-WSL2
Shell: bash 5.1.16

command
bash ./scripts/build_stage1.sh

Im on wsl btw

Building a copy of Terra

I read the stuff on building it but am a tad bit confused. Do you follow the uhh devshim builds described in the sh1mmer repo?
image

Build aur not working

gitpod /workspace/terraos/build (rust-rewrite) $ bash ../scripts/build_aur_packages.sh
Cloning into 'systemd-chromiumos'...
remote: Enumerating objects: 73, done.
remote: Counting objects: 100% (73/73), done.
remote: Compressing objects: 100% (57/57), done.
remote: Total 73 (delta 35), reused 43 (delta 13), pack-reused 0 (from 0)
Receiving objects: 100% (73/73), 80.15 KiB | 485.00 KiB/s, done.
Resolving deltas: 100% (35/35), done.
../scripts/build_aur_packages.sh: line 3: makepkg: command not found
cp: cannot stat '.pkg.tar.zst': No such file or directory
fatal: destination path 'yay' already exists and is not an empty directory.
../scripts/build_aur_packages.sh: line 8: makepkg: command not found
cp: cannot stat '
.pkg.tar.zst': No such file or directory

Better boot menu

Instead of having a super complicated menu to navigate around (ok maybe its not that bad), it could be like old computers and have a "Press enter to interrupt startup..." screen, with a default boot partition.

Terraos will not boot into any partion

Upon selecting the terra_arch option it gives returns error
(terraOs encountered an error.
backtrace: panicked at src/boot:29:10
Failed to mount partion: Custom kind Other, error: "Failed to excute process code some (255) stdout: '' stder: 'mount: mounting /dev/sda13 on /newroot failed:invalid argument/n'")
after that it closes the shell after 3 seconds
prebuilt image
board:octopus

Error when attempting to resolve cpio error

@r58Playz When doing what you said to resolve this, it outputs the following:

@FunnyCorgi ➜ /workspaces/codespaces-blank/terraos/build (rust-rewrite) $ sudo apt install cpio
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package cpio is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
tar

E: Package 'cpio' has no installation candidate

makepkg compilation issue

I installed makepkg and it for some reason did not put a file in the systemd-chromiumos folder. How could i fix that? btw i installed from https://docs.google.com/open?id=0B7S255p3kFXNMS1hdEg3RzVpeEU using dpkg -i

`royan@GoogleNest:~/terraos/systemd-chromiumos$ sudo makepkg -s
WARNING: pkgtools are unstable with tar > 1.13.
You should provide a "tar-1.13" in your $PATH.
dirname: invalid option -- 's'
Try 'dirname --help' for more information.
basename: option requires an argument -- 's'
Try 'basename --help' for more information.

Slackware package maker, version 3.14159.

Searching for symbolic links:

No symbolic links were found, so we won't make an installation script.
You can make your own later in ./install/doinst.sh and rebuild the
package if you like.

This next step is optional - you can set the directories in your package
to some sane permissions. If any of the directories in your package have
special permissions, then DO NOT reset them here!

Would you like to reset all directory permissions to 755 (drwxr-xr-x) and
directory ownerships to root.root ([y]es, [n]o)? n

Creating Slackware package: /.tgz.tgz

./
./30-systemd-binfmt.hook
./0001-Use-Arch-Linux-device-access-groups.patch
./30-systemd-hwdb.hook
./20-systemd-sysusers.hook
./splash-arch.bmp
./.SRCINFO
./PKGBUILD
./keys/
./keys/pgp/
./keys/pgp/9A774DB5DB996C154EBBFBFDA0099A18E29326E1.asc
./keys/pgp/A9EA9081724FFAE0484C35A1A81CEA22BC8C7E2E.asc
./keys/pgp/63CDA1E5D3FC22B998D20DD6327F26951A015CC4.asc
./keys/pgp/5C251B5FC54EB2F80F407AAAC54CA336CFEB557E.asc
./30-systemd-update.hook
./0002-Disable-mount_nofollow-for-ChromiumOS-kernels.patch
./systemd.install
./arch.conf
./30-systemd-daemon-reload-system.hook
./loader.conf
./30-systemd-sysctl.hook
./systemd-hook
./systemd-user.pam
./30-systemd-udev-reload.hook
./30-systemd-catalog.hook
./.git/
./.git/index
./.git/config
./.git/branches/
./.git/packed-refs
./.git/hooks/
./.git/hooks/pre-commit.sample
./.git/hooks/post-update.sample
./.git/hooks/pre-receive.sample
./.git/hooks/pre-push.sample
./.git/hooks/pre-rebase.sample
./.git/hooks/prepare-commit-msg.sample
./.git/hooks/pre-merge-commit.sample
./.git/hooks/update.sample
./.git/hooks/applypatch-msg.sample
./.git/hooks/commit-msg.sample
./.git/hooks/push-to-checkout.sample
./.git/hooks/pre-applypatch.sample
./.git/hooks/fsmonitor-watchman.sample
./.git/refs/
./.git/refs/remotes/
./.git/refs/remotes/origin/
./.git/refs/remotes/origin/HEAD
./.git/refs/heads/
./.git/refs/heads/master
./.git/refs/tags/
./.git/logs/
./.git/logs/refs/
./.git/logs/refs/remotes/
./.git/logs/refs/remotes/origin/
./.git/logs/refs/remotes/origin/HEAD
./.git/logs/refs/heads/
./.git/logs/refs/heads/master
./.git/logs/HEAD
./.git/info/
./.git/info/exclude
./.git/objects/
./.git/objects/pack/
./.git/objects/pack/pack-47c4926649b82ac6287543040e3164544ce80594.pack
./.git/objects/pack/pack-47c4926649b82ac6287543040e3164544ce80594.idx
./.git/objects/info/
./.git/description
./.git/HEAD
./30-systemd-tmpfiles.hook
./30-systemd-daemon-reload-user.hook

Slackware package /.tgz.tgz created.

royan@GoogleNest:/terraos/systemd-chromiumos$ ls
0001-Use-Arch-Linux-device-access-groups.patch 30-systemd-binfmt.hook 30-systemd-daemon-reload-user.hook 30-systemd-tmpfiles.hook PKGBUILD loader.conf systemd-user.pam
0002-Disable-mount_nofollow-for-ChromiumOS-kernels.patch 30-systemd-catalog.hook 30-systemd-hwdb.hook 30-systemd-udev-reload.hook arch.conf splash-arch.bmp systemd.install
20-systemd-sysusers.hook 30-systemd-daemon-reload-system.hook 30-systemd-sysctl.hook 30-systemd-update.hook keys systemd-hook
royan@GoogleNest:
/terraos/systemd-chromiumos$`

Final Build All Stage: Failed to enable expand-root service

Packages (3) systemd-256.4-1  systemd-libs-256.4-1  systemd-sysvcompat-256.4-1

Total Removed Size:  35.25 MiB

:: Do you want to remove these packages? [Y/n]
:: Processing package changes...
(1/3) removing systemd                                                        [############################################] 100%
(2/3) removing systemd-libs                                                   [############################################] 100%
(3/3) removing systemd-sysvcompat                                             [############################################] 100%
:: Running post-transaction hooks...
(1/2) Updating the MIME type database...
(2/2) Reloading system bus configuration...
call to execv failed (No such file or directory)
error: command failed to execute correctly
loading packages...
resolving dependencies...
looking for conflicting packages...

Packages (6) git-2.46.0-1  perl-error-0.17029-6  perl-mailtools-2.21-8  perl-timedate-2.33-6  yay-12.3.5-1  yay-debug-12.3.5-1

Total Download Size:    6.58 MiB
Total Installed Size:  48.47 MiB

:: Proceed with installation? [Y/n]
:: Retrieving packages...
 git-2.46.0-1-x86_64                                6.5 MiB  3.06 MiB/s 00:02 [############################################] 100% perl-mailtools-2.21-8-any                         57.9 KiB  1016 KiB/s 00:00 [############################################] 100% perl-timedate-2.33-6-any                          33.0 KiB   580 KiB/s 00:00 [############################################] 100% perl-error-0.17029-6-any                          21.3 KiB   426 KiB/s 00:00 [############################################] 100% Total (4/4)                                        6.6 MiB  2.66 MiB/s 00:02 [############################################] 100%
(6/6) checking keys in keyring                                                [############################################] 100%
(4/6) checking package integrity                                              [############################################] 100%
(4/6) loading package files                                                   [############################################] 100%
(6/6) checking for file conflicts                                             [############################################] 100%
(6/6) checking available disk space                                           [############################################] 100%
:: Processing package changes...
(1/6) installing perl-error                                                   [############################################] 100%
(2/6) installing perl-timedate                                                [############################################] 100%
(3/6) installing perl-mailtools                                               [############################################] 100%
(4/6) installing git                                                          [############################################] 100%
Optional dependencies for git
    tk: gitk and git gui
    openssh: ssh transport and crypto [installed]
    perl-libwww: git svn
    perl-term-readkey: git svn and interactive.singlekey setting
    perl-io-socket-ssl: git send-email TLS support
    perl-authen-sasl: git send-email TLS support
    perl-mediawiki-api: git mediawiki support
    perl-datetime-format-iso8601: git mediawiki support
    perl-lwp-protocol-https: git mediawiki https support
    perl-cgi: gitweb (web interface) support
    python: git svn & git p4 [installed]
    subversion: git svn
    org.freedesktop.secrets: keyring credential helper
    libsecret: libsecret credential helper [installed]
(5/6) installing yay                                                          [############################################] 100%
Optional dependencies for yay
    sudo: privilege elevation [installed]
    doas: privilege elevation
(6/6) installing yay-debug                                                    [############################################] 100%
:: Running post-transaction hooks...
(1/1) Warn about old perl modules
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
New password: Retype new password: passwd: password updated successfully
Generating locales...
  en_US.UTF-8... done
Generation complete.
chroot: failed to run command ‘systemctl’: No such file or directory
failed to enable expand-root service

Log Given.

How is the script supposed to enable expand-root when it uninstalls systemd previously?

Uses up all storage except a gigabyte

Is it possible for me to use the rest of my storage. I am questioning this because I'm using a 512gb sd card but I can only use 1gb of it because the rest is being used on something. Thanks.

failed to enable kill-frecon service

for some reason when I try to run the final script, after installing some packages w pacman I get "failed to enable kill-frecon service" along with some "target is busy" errors

Black screen on arch

Most of this has been discused on discord but I'm putting it here as a lot of people are having that problem so it will need to be fixed I guss.

Build stage1 need extended help

Do what it tells you. Install unzip, rsync, and bc.

@r58Playz I don't know how to do that in arch

I am following online instructions for that, but it is saying I am not in the sudoers file(I created a user since you can't run makepkg as root)

You must install "cpio" error

When I run the build stage 1, I get an error.
Full terminal output starting at step 1:
@FunnyCorgi ➜ /workspaces/codespaces-blank $ git clone https://github.com/r58Playz/terraos.git
Cloning into 'terraos'...
remote: Enumerating objects: 347, done.
remote: Counting objects: 100% (74/74), done.
remote: Compressing objects: 100% (54/54), done.
remote: Total 347 (delta 38), reused 35 (delta 19), pack-reused 273
Receiving objects: 100% (347/347), 10.43 MiB | 28.55 MiB/s, done.
Resolving deltas: 100% (182/182), done.
@FunnyCorgi ➜ /workspaces/codespaces-blank $ cd terraos/
@FunnyCorgi ➜ /workspaces/codespaces-blank/terraos (rust-rewrite) $ mkdir build
@FunnyCorgi ➜ /workspaces/codespaces-blank/terraos (rust-rewrite) $ bash ../scripts/build_stage1.sh terraos
bash: ../scripts/build_stage1.sh: No such file or directory
@FunnyCorgi ➜ /workspaces/codespaces-blank/terraos (rust-rewrite) $ cd build
@FunnyCorgi ➜ /workspaces/codespaces-blank/terraos/build (rust-rewrite) $ bash ../scripts/build_stage1.sh terraos
Cloning into 'buildroot'...
remote: Enumerating objects: 476014, done.
remote: Total 476014 (delta 0), reused 0 (delta 0), pack-reused 476014
Receiving objects: 100% (476014/476014), 114.25 MiB | 31.28 MiB/s, done.
Resolving deltas: 100% (301175/301175), done.
mkdir -p /workspaces/codespaces-blank/terraos/build/buildroot/output/build/buildroot-config/lxdialog
PKG_CONFIG_PATH="" make CC="/usr/bin/gcc" HOSTCC="/usr/bin/gcc"
obj=/workspaces/codespaces-blank/terraos/build/buildroot/output/build/buildroot-config -C support/kconfig -f Makefile.br conf
make[1]: Entering directory '/workspaces/codespaces-blank/terraos/build/buildroot/support/kconfig'
/usr/bin/gcc -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE -I/workspaces/codespaces-blank/terraos/build/buildroot/output/build/buildroot-config -DCONFIG_="" -MM *.c > /workspaces/codespaces-blank/terraos/build/buildroot/output/build/buildroot-config/.depend 2>/dev/null || :
/usr/bin/gcc -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE -I/workspaces/codespaces-blank/terraos/build/buildroot/output/build/buildroot-config -DCONFIG_="" -c conf.c -o /workspaces/codespaces-blank/terraos/build/buildroot/output/build/buildroot-config/conf.o
/usr/bin/gcc -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE -I/workspaces/codespaces-blank/terraos/build/buildroot/output/build/buildroot-config -DCONFIG_="" -I. -c /workspaces/codespaces-blank/terraos/build/buildroot/output/build/buildroot-config/zconf.tab.c -o /workspaces/codespaces-blank/terraos/build/buildroot/output/build/buildroot-config/zconf.tab.o
/usr/bin/gcc -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE -I/workspaces/codespaces-blank/terraos/build/buildroot/output/build/buildroot-config -DCONFIG_="" /workspaces/codespaces-blank/terraos/build/buildroot/output/build/buildroot-config/conf.o /workspaces/codespaces-blank/terraos/build/buildroot/output/build/buildroot-config/zconf.tab.o -o /workspaces/codespaces-blank/terraos/build/buildroot/output/build/buildroot-config/conf
rm /workspaces/codespaces-blank/terraos/build/buildroot/output/build/buildroot-config/zconf.tab.c
make[1]: Leaving directory '/workspaces/codespaces-blank/terraos/build/buildroot/support/kconfig'

configuration written to /workspaces/codespaces-blank/terraos/build/buildroot/.config

/usr/bin/make -j1 O=/workspaces/codespaces-blank/terraos/build/buildroot/output HOSTCC="/usr/bin/gcc" HOSTCXX="/usr/bin/g++" syncconfig
make[1]: Entering directory '/workspaces/codespaces-blank/terraos/build/buildroot'
make[1]: Leaving directory '/workspaces/codespaces-blank/terraos/build/buildroot'
You must install 'cpio' on your build machine
make: *** [support/dependencies/dependencies.mk:27: dependencies] Error 1
@FunnyCorgi ➜ /workspaces/codespaces-blank/terraos/build (rust-rewrite) $

No Right Click For Trackpad Only On Chromebook

I can't right click on Terraos Arch, board dedede. On ChromeOS I click with two fingers or ctrl+click and a right click will be registered. TerraOS Arch does not have these features. How could I get them?

What branch to use

Sorry if this question is a little skiddy, but does the rust-rewrite branch or the main branch have the latest updates? Both have unique commits.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.