Difference between revisions of "User:Mxberner"

From REU@MU
Jump to: navigation, search
(Summer 2023 Project:)
m (Week 4 (06/19/23 - 06/23/23))
Line 31: Line 31:
  
  
=== Week 4 (06/19/23 - 06/23/23) ===
+
=== Week 3 (06/19/23 - 06/23/23) ===
  
 
=== Week 5 (06/12/23 - 06/16/23) ===
 
=== Week 5 (06/12/23 - 06/16/23) ===

Revision as of 19:30, 12 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 make data more readable.
  • Bounded the map to reasonable latitude/longitude.
  • Found and implemented a custom zoom control to easily reset view
  • Created a customizable legend to describe choropleth data.
  • Created a dynamic information panel.
  • Created control to hover over regions and "highlight" them.
  • Created control to click on multiple different regions and "select" them.

The geoJSON file on school districts had "secondary" districts that were often multiple elementary school districts that unionized to form a single high school district. The result was overlapping geometries in these areas, which created confusion on the coloring (as the shapes were partially transparent, resulting on darker shaded regions in overlaps). Since most of the landscape report data was for the highschool level, I had to manually make all subdistricts transparent and unselectable in favor for their unionized joint district. For example, North Lakeland, Woodruff J1, Minocqua J1, and Lac du Flambeau #1 should all be under Lakeland UHS.

At the end of the week, the map had clean and acessible selection and display of the districts data. Going forward, I am planning on implementing a search functionality I found here. I will also be having all selected regions loaded into a separate table. I'm also researching ways to select entire regions (composed of many districts) easier.


Week 3 (06/19/23 - 06/23/23)

Week 5 (06/12/23 - 06/16/23)

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