User:Mxberner
From REU@MU
Max Berner
Marquette REU Summer 2022
Advisor: Dr. Brylow
Summer 2022 Project: https://reu.cs.mu.edu/index.php/Porting_Embedded_XINU_to_Virgil
Contents
- 1 Weekly Logs
- 1.1 Week 1 (05/31/22 - 06/05/22)
- 1.2 Week 2 (06/06/22 - 06/12/22)
- 1.3 Week 3 (06/13/22 - 06/19/22)
- 1.4 Week 4 (06/20/22 - 06/26/22)
- 1.5 Week 5 (06/27/22 - 07/03/22)
- 1.6 Week 6 (07/04/22 - 07/10/22)
- 1.7 Week 7 (07/10/22 - 07/17/22)
- 1.8 Week 8 (07/17/22 - 07/24/22)
- 1.9 Week 9 (07/24/22 - 07/31/22)
- 1.10 Week 10 (07/31/22 - 08/05/22)
Weekly Logs
Week 1 (05/31/22 - 06/05/22)
- Met the cohort, mentor, and research group.
- Reviewed potential subjects of research
- Updating Exploring CS curriculum - Porting Embedded XINU to Virgil Programming Language - Porting Embedded XINU to RISC-V Architecture
- Researched RISC-V as a potential processor to port OS Xinu over to.
- RISC-V is most applicable for small devices with it's energy conservation and great performance for strictly simple tasks. - RISC refers to Reduced Instruction Set Computer - Advantage: Open-Source license that does not require fees to use - Advantage: Creating a custom chip is easier - Advantage: Base module is extremely limited, allowing customization/optimization. - Advantage: Power efficient, magnitudes less energy than CISC models. - Disadvantage: Not many purchasable, brand-name RISC-V processors available. - Disadvantage: With only simple instructions available, complex tasks are slower.
- Conducted personal research into single-board computers, hardware architecture, and assembly language to contextualize my research of RISC-V.
- Completed online RCR training modules through CITI program
- Began research into Virgil
Week 2 (06/06/22 - 06/12/22)
- Completed in-person RCR training
- Created wiki page for Porting Embedded XINU to Virgil Programming Language.
- Began contextual research into porting and operating systems.
- Attended technical writing presentation
- Installed and set-up Debian, a Linux environment on my Windows computer through WSL. (Required since Virgil does not compile to Windows)
- Executed a "Hello World!" written in Virgil on Debian
- Established remote connection to @morbius.mscs.mu.edu.
- Cloned Embedded Xinu and Virgil repositories to morbius.
Week 3 (06/13/22 - 06/19/22)
- Disassembled Virgil code to study assembly code behind it.
- Determined all system calls Virgil uses.
- Researched all system calls that Embedded Xinu provides.
- Attended Dr. Praveen's research presentation.
- Read Tanenbaum Modern Operating Systems
- Read about Dr. Brylows Operating Systems course at Marquette.
Week 4 (06/20/22 - 06/26/22)
- Started plan to get Virgil to compile/execute to Embedded Xinu.
- Researched function behind Virgil's primary system calls.
- Background reading on compilers.
- Background reading on Embedded Xinu.
- Background reading on operating systems.
- Attended faculty research meeting.
Week 5 (06/27/22 - 07/03/22)
- Attended presentation on giving a quality technical presentation
- Conducted research on ELF-x86 executables.
- Created presentation for achievement halfway through the REU
- Presented the presentation.
- Continued research on cross-compilers and native executables.
Week 6 (07/04/22 - 07/10/22)
- Installed Qemu
- Researched ELF-loaders for multiple OS and architectures
- Researched the format for ELF binaries.
- Familiarized myself with Embedded Xinu
Week 7 (07/10/22 - 07/17/22)
- Started development of an elf-loader
- Created elfhdr struct for storing relevant information of ELF object file
- Began writing C program mimicking Linux readelf.
Week 8 (07/17/22 - 07/24/22)
- Formatted output for readelf program.
- Researched data types for storing raw byte information (uchar, uint, ushort, ulong, etc.)
- Finalized elfhdr for ELF loader for 64-bit programs.
- Attended meeting on creating effective posters.
- Began creating poster for project.
Week 9 (07/24/22 - 07/31/22)
- Attended talk on attended graduate school.
- Read bytes in from a ELF file to store relevant information in elfhdr object.
- Began locating program header and section header information.
- Began creating final paper for project.
Week 10 (07/31/22 - 08/05/22)
- Presented poster
- Created final presentation
- Finished research paper