Difference between revisions of "User:Mxberner"

From REU@MU
Jump to: navigation, search
(Week 2 (06/05/23 - 06/09/23))
(Week 2 (06/05/23 - 06/09/23))
Line 18: Line 18:
 
=== Week 2 (06/05/23 - 06/09/23) ===
 
=== Week 2 (06/05/23 - 06/09/23) ===
 
* Worked on visualization of Wisconsin landscape report data.  
 
* Worked on visualization of Wisconsin landscape report data.  
  I found a openstreetmap overlay that is labelled but mainly monochromatic to have the choropleth data readable.  
+
~ I found a openstreetmap overlay that is labelled but mainly monochromatic to have the choropleth data readable.  
  Bounded the map to reasonable latitude/longitude values to ensure it can smoothly view Wisconsin (and not get lost)
+
~ Bounded the map to reasonable latitude/longitude values to ensure it can smoothly view Wisconsin (and not get lost)
  
 
==Summer 2022 Project:==
 
==Summer 2022 Project:==

Revision as of 22:14, 6 June 2023

Max Berner

Marquette REU Summer 2022, 2023

Advisor: Dr. Brylow

Summer 2023 Project:

Week 1 (05/30/23 - 06/02/23)

Reviewed potential subjects of research:

  • Developing a CS4WI dashboard. This project would create a centralized page to organize people passionate about and information surrounding CS education within K-12 grades. ECEP Alliance is a good resource that highlights the motivations behind joining ECEP and how other states went about joining this alliance. A significant portion of this website would be embedding data gathered from the ongoing WI landscape report and into a website to make it readable and accessible for all who would need it.
  • Embedded Xinu network stack. This project would focus on developing a functional TCP/IP networking stack for the most modern implementations of the OS Embedded-XINU (particularly, RISC-V, multicore ARM, and ARM architectures). The following papers here and here provided background on tangential projects that have been conducted before with outdated versions of XINU, which highlight the applications of creating a network stack. Notably, this would provide an affordable way to conduct in-depth and highly detailed labs in networking classrooms by utilizing XINU.
  • Splunk is an analytics framework that monitors activity on a system. The Marquette Systems Lab uses machines that are open to the global internet, and thus they are prone to constant and frequent cyber attacks. Most attacks are irrelevant and futile attempts by online bots trying to brute-force access, but the sheer number of them cloud the readability of logs and reduce awareness of genuine threats. Creating some sort of filtering process that emphasizes the more serious security threats would be a valuable and practical tool for campus security monitoring efforts.


I decided it would be best to focus more on the CS4WI dashboard and the Embedded Xinu network stack. After surveying some of the dashboards for other ECEP alliance states, I liked the sites that included a geographical visualization of the data such as the dashboard for Connecticut. I found geoJSON files for county lines and school districts lines, and built the framework for building an interactive choropleth of Wisconsin using leaflet. I plan on loading in data from the Wisconsin landscape report and find other helpful ways of displaying this data.

Week 2 (06/05/23 - 06/09/23)

  • Worked on visualization of Wisconsin landscape report data.

~ I found a openstreetmap overlay that is labelled but mainly monochromatic to have the choropleth data readable. ~ Bounded the map to reasonable latitude/longitude values to ensure it can smoothly view Wisconsin (and not get lost)

Summer 2022 Project:

https://reu.cs.mu.edu/index.php/Porting_Embedded_XINU_to_Virgil

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