Posts

Showing posts from January, 2018

SPO 600 - Lab 2

Image
In lab 2, I will be looking at how different compiler options would affect the executable. I will be using gcc in this lab, and this lab is running on x86_64 architecture. First, let's start with a simple C hello world program: #include <stdio.h>   int main () {  printf( "Hello World! \n " );  } Next, I'll compile it with the option: gcc -g -O0 -fno-builtin -o hello hello.c  (Note: -g enables the debugging option, -O0 stands for no optimization, and -fno-builtin stands for don't use built in function optimizations )  If I run the executable by entering ./hello , it should give me: Hello World! Using objdump --source hello, I can find the <main> section contains the code I wrote: And using objdump -s hello, I can also find where the string is stored (It's stored in .rodata, or read-only data segment): Right now I'll make a couple changes to see how the option would affect the executable. 1. Add the -static opti

SPO 600 - Lab 1

In this blog post, I will compare Visual Studio Code, a lightweight source code editor developed by Microsoft and Wine, a compatibility layer that allows Unix-like Operating Systems to run Windows programs. Visual Studio Code License: MIT  Procedure for accepting new code: Visual Studio Code uses a git repository on GitHub . The contributor would open an issue on the "Issues" section, then vscodebot would assign it to a Microsoft developer. After reviewing the issue, if the developer thinks it makes sense, he/she would add an "help wanted" label on the issue. When a contributor fixes the issue, he/she has to sign a Contributor License Agreement (CLA) if that hasn't been done before, performs a pull request and commit the changes, a developer from Microsoft would check the commit, and merge the commit to master if it is approved. Patch:  https://github.com/Microsoft/vscode/pull/41653 How many people are involved: 3, and one of them seems to work for