Difference between revisions of "User:Mxberner"
From REU@MU
(→More Information) |
|||
(25 intermediate revisions by the same user not shown) | |||
Line 28: | Line 28: | ||
* Conducted personal research into single-board computers, hardware architecture, and assembly language to contextualize my research of RISC-V. | * Conducted personal research into single-board computers, hardware architecture, and assembly language to contextualize my research of RISC-V. | ||
− | * Completed RCR training modules through CITI program | + | * Completed online RCR training modules through [https://about.citiprogram.org/ CITI] program |
* Began research into [https://github.com/titzer/virgil Virgil] | * Began research into [https://github.com/titzer/virgil Virgil] | ||
=== Week 2 (06/06/22 - 06/12/22) === | === Week 2 (06/06/22 - 06/12/22) === | ||
− | * | + | * Completed in-person RCR training |
+ | * Created wiki page for [https://reu.cs.mu.edu/index.php/Porting_Embedded_XINU_to_Virgil Porting Embedded XINU to Virgil Programming Language]. | ||
* Began contextual research into porting and operating systems. | * Began contextual research into porting and operating systems. | ||
− | * | + | * Attended technical writing presentation |
− | + | * Installed and set-up [https://www.debian.org/ Debian], a Linux environment on my Windows computer through [https://docs.microsoft.com/en-us/windows/wsl/about WSL]. (Required since Virgil does not compile to Windows) | |
− | * Installed and set-up Debian, a Linux environment on my Windows computer through [https://docs.microsoft.com/en-us/windows/wsl/about WSL]. | + | |
* Executed a "Hello World!" written in Virgil on Debian | * 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 and ran Xv6 on it. | ||
+ | * Researched ELF-loaders for multiple OS and architectures including Apple, Xv6, and smaller operating systems. | ||
+ | * Researched the format for ELF object files and how to interpret the data. | ||
+ | * Familiarized myself with Embedded Xinu. Tinkered with the developing RISC-V version, the MIPS version, and the ARM (hardware) version. | ||
+ | |||
+ | === Week 7 (07/10/22 - 07/17/22) === | ||
+ | * Started development of an elf-loader | ||
+ | - Created an elfhdr struct for storing relevant information of ELF object file | ||
+ | - Began writing a C program that can read an ELF file for input and store into elfhdr struct | ||
+ | - Began writing a program to mimic Linux readelf. | ||
+ | |||
+ | === Week 8 (07/17/22 - 07/24/22) === | ||
+ | * Formatted output for readelf program to match Linux output | ||
+ | * Researched data types for storing raw byte information (uchar, uint, ushort, ulong, etc.) | ||
+ | * Finalized elfhdr for ELF loader for 64-bit programs. | ||
+ | * Updated readelf program to extract Magic number, Class, Data, and Version. | ||
+ | * Updated readelf program to protect against bad data and non-ELF files | ||
+ | * Updated readelf program to extract ABI, type, machine, and version. | ||
+ | * Attended meeting on creating effective posters. | ||
+ | * Began creating final paper for project. | ||
+ | * Began creating poster for project. | ||
+ | |||
+ | === Week 9 (07/24/22 - 07/31/22) === | ||
+ | * Attended talk on attending graduate school. | ||
+ | * Began locating program header and section header information. | ||
+ | * Finalized readelf program | ||
+ | - Protected against unsupported file types (32-bit, big endian). Support will be added later when necessary. | ||
+ | - Converted output to human readable information | ||
+ | - Extracted entry address for program header table and section header table | ||
+ | - Extracted program entry size and number of entries | ||
+ | - Extracted section entry size and number of entries | ||
+ | - Stress-tested program for any errors | ||
+ | * Began reading about next steps to finalize ELF-loader now that all relevant information is properly extracted and stored. | ||
+ | * Finished poster on research this summer. | ||
+ | * Began work on final presentation. | ||
+ | |||
+ | === Week 10 (07/31/22 - 08/05/22) === | ||
+ | * Further reading on finalizing ELF-loader | ||
+ | * Finished final [https://docs.google.com/presentation/d/1vC6ermE8H4zcRVySbYQ__s09xRDpZbpSIjEXqiAAWEU/edit?usp=sharing presentation] on work. | ||
+ | * Gave final presentation. | ||
+ | * Presented poster at Marquette Engineering Hall. | ||
+ | * Finished research paper on progress made this summer. | ||
+ | |||
+ | == More Information== | ||
+ | For more information, including the final poster, please visit: [https://reu.cs.mu.edu/index.php/Porting_Embedded_XINU_to_Virgil Porting Embedded XINU to Virgil Programming Language] |
Revision as of 07:49, 6 August 2022
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)
- 2 More Information
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 and ran Xv6 on it.
- Researched ELF-loaders for multiple OS and architectures including Apple, Xv6, and smaller operating systems.
- Researched the format for ELF object files and how to interpret the data.
- Familiarized myself with Embedded Xinu. Tinkered with the developing RISC-V version, the MIPS version, and the ARM (hardware) version.
Week 7 (07/10/22 - 07/17/22)
- Started development of an elf-loader
- Created an elfhdr struct for storing relevant information of ELF object file - Began writing a C program that can read an ELF file for input and store into elfhdr struct - Began writing a program to mimic Linux readelf.
Week 8 (07/17/22 - 07/24/22)
- Formatted output for readelf program to match Linux output
- Researched data types for storing raw byte information (uchar, uint, ushort, ulong, etc.)
- Finalized elfhdr for ELF loader for 64-bit programs.
- Updated readelf program to extract Magic number, Class, Data, and Version.
- Updated readelf program to protect against bad data and non-ELF files
- Updated readelf program to extract ABI, type, machine, and version.
- Attended meeting on creating effective posters.
- Began creating final paper for project.
- Began creating poster for project.
Week 9 (07/24/22 - 07/31/22)
- Attended talk on attending graduate school.
- Began locating program header and section header information.
- Finalized readelf program
- Protected against unsupported file types (32-bit, big endian). Support will be added later when necessary. - Converted output to human readable information - Extracted entry address for program header table and section header table - Extracted program entry size and number of entries - Extracted section entry size and number of entries - Stress-tested program for any errors
- Began reading about next steps to finalize ELF-loader now that all relevant information is properly extracted and stored.
- Finished poster on research this summer.
- Began work on final presentation.
Week 10 (07/31/22 - 08/05/22)
- Further reading on finalizing ELF-loader
- Finished final presentation on work.
- Gave final presentation.
- Presented poster at Marquette Engineering Hall.
- Finished research paper on progress made this summer.
More Information
For more information, including the final poster, please visit: Porting Embedded XINU to Virgil Programming Language