=================
== Houze ZHANG ==
=================
Use efficient code to build the world.

Longest Increasing Subsequence

DP
Introduction LIS (Longest Increasing Subsequence) is a classic problem in dynamic programming. The problem is to find the length of the longest subsequence of a given sequence such that all elements of the subsequence are sorted in increasing order. The subsequence is not necessarily contiguous or unique. The length of the subsequence is the number of elements in it. For example: Input: [10, 9, 2, 5, 3, 7, 101, 18] Output: 4 Explanation: The longest increasing subsequence is [2, 3, 7, 101], therefore the length is 4. Read more...

Xv6-Lab-2

Operating System C Linux
Introduction Lab2 of MIT 6.S081 is about tracing system calls and resources monitoring in the xv6 kernel. The difficulty of this lab is moderate, but it reveals the boundaries between user space and kernel space and the process structure where process information is stored. Trace System Calls This lab requires student to print out the system call number, process id, system call name, and return value of the system call traced through the utility strace. Read more...

Xv6-Lab-1

Operating System C Linux
中文在下面👇 Introduction xv6 is an educational operating system used in MIT’s course S6.081 on operating systems. It is a simplified OS that runs only on x86 architecture. This blog aims to document the process of completing Lab 1 and highlight some key concepts. Sleep The first task is to implement the sleep command in xv6. This is not a system call but a bash command in xv6. The implementation involves calling the sleep() system call. Read more...

Dependency Analysis for Windows C++ Project

C++ Win32 Library
中文在下面👇 Introduction When deconstructing and porting complex C++ projects, managing and analyzing project file dependencies is crucial. Online game development involves a myriad of dependencies and library files: from engines to UI; from clients to rendering and media libraries to servers. Clarifying the dependency relationships within a project is a prerequisite for porting and refactoring. Trying to port or refactor without understanding these dependencies is like a blind person feeling an elephant — you don’t know where to start. Read more...

X Compile

C++ LLVM Cross-Compile
中文在下面👇 Introduction For the past few weeks, I’ve been diving into cross-compilation. It’s been a great learning experience as I get to understand the differences between various operating systems and compilers. Here, I’m documenting some of the things I’ve learned. The idea behind cross-compilation is to compile programs on a host machine that can run natively on a target machine. This technique is quite common in the gaming industry, where game clients often need to run in different environments, yet for development management purposes, the development environment tends to remain consistent. Read more...
1 of 1