# Portfolio(程式相關作品集)
## Presentation
introduction to profuzz
https://www.slideshare.net/slideshow/compiler-fuzzer-prog-fuzz/228654387
Use spike and open source SystemC library
to build a PoC virtual platform
https://docs.google.com/presentation/d/1fy65IMA9gLl79ZkAcmf-DCeDrQFh3beN5mZRxSBNlKg/edit
## open source contribution
gem5
https://github.com/gem5/gem5/issues?q=state%3Aclosed%20is%3Apr%20author%3ATommyWu-fdgkhdkgh
---
spike-vp
Use spike and VCML to build a SystemC virtual platform.
https://github.com/TommyWu-fdgkhdkgh/spike-vp
---
glog
[Accepted] https://github.com/google/glog/commit/18836106d1fe6893c5cf3db1682b6916fdd4f34c
-- this patch make glog 50% faster in specific situaltion
-- thank [ᴀᴇsᴏᴘʜᴏʀ](https://github.com/aesophor) for advice.
---
QEMU
https://lore.kernel.org/all/?q=tommy.wu@sifive.com
[Ongoing] target/riscv: Align the AIA model to v1.0 ratified spec
https://mail.gnu.org/archive/html/qemu-riscv/2023-08/msg00261.html
[Accepted] hw/intc: If mmsiaddrcfgh.L == 1, smsiaddrcfg and smsiaddrcfgh are read-only.
https://mail.gnu.org/archive/html/qemu-riscv/2023-06/msg00252.html
[Cancel] Refresh the dynamic CSR xml after updating the state of the cpu.
https://mail.gnu.org/archive/html/qemu-riscv/2023-05/msg00454.html
[Ongoing] target/riscv: Add Smrnmi mnret instruction.
https://lists.gnu.org/archive/html/qemu-devel/2023-05/msg05262.html
[Accepted] Fix an infinite loop in Xilinx-AXIDMA.
https://lists.gnu.org/archive/html/qemu-devel/2023-05/msg04796.html
[Duplicated] Fix the type of parent_obj of SiFiveEState.
https://lists.gnu.org/archive/html/qemu-devel/2022-08/msg02863.html
[Code review] The risc-v disassembler.
https://lists.gnu.org/archive/html/qemu-devel/2022-08/msg03771.html
[Accepted] Watchdog Timer for HiFive 1 rev b.
https://lists.gnu.org/archive/html/qemu-riscv/2022-09/msg00167.html
## course project of nand2tetris
https://github.com/fdgkhdkgh/nand2tetris
## course project of linux kernel internals (NCKU)
Instructor: Jim Huang (黃敬群)
quiz0
https://hackmd.io/@fdgkhdkgh/linux2021-quiz
quiz1 : hideproc
https://hackmd.io/@fdgkhdkgh/hideproc
quiz2 : hazard pointer
https://hackmd.io/@fdgkhdkgh/hp
## MediaTek
vAward -- 2022/05/15
Develop a framework based on GoogleTest to do UnitTest on Modem firmware code
vAward -- 2021/02/08
Reduce the amount of memory used by internal tools.
## Bugs reported
碩士論文:支援多目標的模糊測試,目前的成果
### CVE
CVE-2020-35536: GCC: Bug 93027 - ICE: in match_reload, at lra-constraints.c:1060
CVE-2020-35537: GCC: Bug 93015 - [10 Regression] Segmentation fault (ipcp_store_vr_results(void))
-- 感謝[吳宗遠](https://github.com/zodf0055980)同學幫忙向相關機構回報漏洞
### binutils
afl + coverage guided combinatorial fuzzing test
[1]https://sourceware.org/bugzilla/show_bug.cgi?id=25191
[2]https://sourceware.org/bugzilla/show_bug.cgi?id=25196
[3]https://sourceware.org/bugzilla/show_bug.cgi?id=25197
[4]https://sourceware.org/bugzilla/show_bug.cgi?id=25200
[5]https://sourceware.org/bugzilla/show_bug.cgi?id=25220
[6]https://sourceware.org/bugzilla/show_bug.cgi?id=25221
[7]https://sourceware.org/bugzilla/show_bug.cgi?id=25444
[8]https://sourceware.org/bugzilla/show_bug.cgi?id=25629
[9]https://sourceware.org/bugzilla/show_bug.cgi?id=25637
[10]https://sourceware.org/bugzilla/show_bug.cgi?id=25648
[11]https://sourceware.org/bugzilla/show_bug.cgi?id=25651
[12]https://sourceware.org/bugzilla/show_bug.cgi?id=25673
[13]https://sourceware.org/bugzilla/show_bug.cgi?id=25675
[14]https://sourceware.org/bugzilla/show_bug.cgi?id=25687
[15]https://sourceware.org/bugzilla/show_bug.cgi?id=25688
[16]https://sourceware.org/bugzilla/show_bug.cgi?id=25699
[17]https://sourceware.org/bugzilla/show_bug.cgi?id=25714
[18]https://github.com/libjpeg-turbo/libjpeg-turbo/issues/441 -- 感謝[吳宗遠](https://github.com/zodf0055980)同學使用 SQ-Fuzz 發現漏洞並進行回報
### gcc
prog-fuzz + pure combinatorial fuzzing test
[1]https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93027
[2]https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93015
## Phison Electronics intern(群聯電子實習成果)
Slides for project
https://docs.google.com/presentation/d/1nmhN8VAP7qeqrOc40_hIAZnEUT8oYXoEZwv80twyTyU/edit#slide=id.p
## course project of Parallel Programming @ NCTU, Fall 2020
Instructor : Prof. Yi-Ping You (游逸平)
[lab 1](https://github.com/fdgkhdkgh/nctu_parallel_programming_2020/tree/master/hw1)
-- part 1 : using SIMD simulation instruction set to parallel a simple program
-- part 2 : using llvm to vectorize a simple program, and answer some question about the "loop-access" pass of llvm.
[lab 2](https://github.com/fdgkhdkgh/nctu_parallel_programming_2020/tree/master/hw2)
-- part 1 : simple pthread programming, calculate pi using rejection sampling
-- part 2 : simple std::thread programming to draw Mandelbrot set, learn how to do efficient parallel coding
## course on udemy : Microcontroller Embedded C Programming: absolute beginners
[certificate](https://www.udemy.com/certificate/UC-888676ac-230b-4401-be40-46827085fa40/)
## course project of IC LAB(NCTU)
[lab01](https://hackmd.io/TMgjXEkhQKulAXu-tDN-_w?view)
[lab02](https://hackmd.io/79D1SGH9RIK9j9M3dTFlBg)
[lab03](https://hackmd.io/VSxPchwkQRSGhpIwgodanA)
## course project of linux kernel internals (NCKU)
Instructor: Jim Huang (黃敬群)
homework1(lab0-c) [journal](https://hackmd.io/@a9QcOODkShinCEt-HW_nug/HkXkO-Z48) / [github](https://github.com/fdgkhdkgh/lab0-c)
homework2(fibdrv) [journal](https://hackmd.io/@a9QcOODkShinCEt-HW_nug/rJryWXCOI) / [github](https://github.com/fdgkhdkgh/fibdrv)
homework4(khttpd) [journal](https://hackmd.io/@a9QcOODkShinCEt-HW_nug/Hy1l1IecL) / [github](https://github.com/fdgkhdkgh/khttpd)
## course project of Software-defined networking (NCTU)
A source learning switch with onos
https://github.com/fdgkhdkgh/sdn_lab3
## course project of Operating System Design and Implementation(OSDI)(NCTU)
A simple bootable kernel
https://github.com/fdgkhdkgh/nctu_osdi_part2
## course project of advanced unix programming(NCTU)
All the labs
https://github.com/fdgkhdkgh/nctu_advanced_unix
Final project : a simple debugger
https://github.com/fdgkhdkgh/simpleDebugger
## course project of network programming(NCTU)
All the projects
https://github.com/fdgkhdkgh/nctu_network_programming
## course project of operating system(NCTU)
single thread, multi client server & multi thread, multi client server
take a video, using openalpr to detect License Plate, and then send result to the hadoop distributed file system
https://github.com/fdgkhdkgh/os_project
## final project of compiler (National Central University)
A Lisp interpreter - Lex and Yacc based.
https://github.com/fdgkhdkgh/a_simple_lisp_interpreter