Takaya Saeki

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

About Takaya Saeki (佐伯学哉)

A software engineer in Tokyo, currently working at Tetrate.io, Inc . Previously worked at Microsoft.
Has unique development experience ranging from CPU, OS, hypervisors and programming languages to one of the largest online dating services in Japan and one of the largest web search services in the world.

Public Projects

  • Noah 1.8k+ 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.

    xv6...
    cpu0: starting
    init: starting sh
    $
     
     
     
     
  • WSL Hello Sudo 440+ 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.

  • 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
    foo!
    $ echo $ENV1       # ENV1 is synced!
    bar!
    $ 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
    baz!
    $ sw echo %ENV2%   # You also can run commands directly
    baz!
    
  • 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