Takaya Saeki

(☕, 🍣, 🍔) => 💻
Likes web and system programming.

About Takaya Saeki (佐伯学哉)

A software engineer in Tokyo. Has unique development experience ranging from CPU, OS, hypervisor and programming languages to one of the largest online dating services in Japan and one of the largest web search services in the world.

Personal Projects

  • Noah 1.9k+ 150+

    Noah is a novel system to run Linux’s binary on macOS by system call translation. Noah is implemented as a hypervisor that traps linux system calls and translates them into Darwin’s system calls.

    This approach of Noah is a novel one presented at VEE 2020, which is a famous academic conference in the field of virtualization. Please refer to the paper for the detail. Or, you can look at this presentation slides .

  • Ported Xv6 to MIPS and our own CPU architecture 600+

    Have you designed your own ISA? Have you built a CPU on FPGA and a compiler for it? Have you even run an operating system on that processor? Actually, I have. I ported Xv6, a simple UNIX like operating system to our own architecture and MIPS.

    Please read my post about our four months of building a home-built CPU of a home-built RISC ISA, building a home-built C toolchain, and porting Xv6, a Unix-like OS, to that CPU.

    cpu0: starting
    init: starting sh
  • Distrod 1.5k+

    Distrod is a systemd-based meta-distro for WSL2 that allows you to install Ubuntu, Arch Linux, Gentoo and many other distros with systemd in a minute, or make your current distro run systemd. Distrod also provides built-in auto-start feature and port forwarding service. This allows you to start systemd-managed services, such as ssh, on Windows startup and make it accessible from outside Windows.

    Distrod is one of the softwares that Microsoft gave acknowledgements to when they officially launched systemd support .

  • WSL Hello Sudo 1k 200+

    Let’s sudo by face recognition of Windows Hello on Windows Subsystem for Linux (WSL). This PAM module allows you to authenticate sudo via face recognition, fingerprint authentication, and of couse machine-local PIN. It runs in both WSL and WSL 2.

  • Dbgee

    Dbgee is a handy utility that frees you from the hassle of writing launch.json for VSCode. Just start your program by a simple command in a terminal, and the debugger will automatically attach to it with zero configuration. Dbgee is very useful especially when your program is launched by some script.

  • SourceWinBat

    SourceWinBat is a CLI utility to run Windows batch scripts in WSL/MSYS2/Cygwin, and sync the shell environments between Bash and the Windows command line. It’s an essential tool for me to do my daily work on WSL, which requires me to run initialization scripts written for Windows.

    $ cat init.bat
    @echo off
    set ENV1=bar!      ; Environment variables will be synced
    echo foo!          ; Execute Windows echo commands
    $ sw init.bat      # init.bat is executed
    $ echo $ENV1       # ENV1 is synced!
    $ export ENV2=baz! # ENV2 is set in Linux
    $ cat env2.bat
    @echo off
    echo %ENV2%
    $ sw env2.bat      # ENV2 is exported to Windows command line
    $ sw echo %ENV2%   # You also can run commands directly
  • Programming Language that Runs on Feature Phones

    When I was in high school, I created a script language for feature phones to play with programming in a dormitory where PCs were not allowed to be brought in. It was based on an existing out-of-maintainence language, but with significant improvements; it was downloaded by over 500 users in 2009. Try the JS version app here , which is ported by a user. It’s not strictly a port of my version, but it has all the features of mine, including the undocumented ones.

And more…

Paper Publications

  1. A Robust and Flexible Operating System Compatibility Architecture
    VEE ‘20: Proceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments

  2. Bash on Ubuntu on macOS
    2017-09-02 Proceedings of 8th Asia-Pacific Workshop on Systems

  3. Automatic Generation of Potentially Pathological Instances for Validating Alloy Models
    2016-11-14 Proceedings of 18th International Conference on Formal Engineering Methods