Set Up a VM

A local Linux VM:

  • The easiest way to do programming work is to have the development environment installed locally on your personal computer.
  • For Linux systems programming, Linux is our development environment.
  • Having it installed as your main OS is probably best.
  • But, for consistentency, the assignment is for everyone to install exactly Debian 10 64-bit in a VirtualBox virtual machine.
  • If you aren't developing on the VM and you run into weird problems later in the semester, use this VM to rule out configuration issues.

The CCIS server:

  • ssh ntuck@login.ccs.neu.edu

  • This is a shared Linux server.

  • This is a generally useful tool, and it will be possible to do some of your homework on this server.

  • Working directly on a remote server is a good reason to learn a command line editor like vim.

  • Show Putty, WinSCP web page

  • Show ssh and scp on Linux

  • Show Cyberduck page

Write Some Code

  • Download starter code.
  • Write some simple C and ASM code.
  • Make sure it compiles and runs.
  • Pack it back up and submit.

This assignment is mostly about structure, process, and getting annoyed at the autograder.

Keep in mind:

  • A C (or asm) program is a collection of functions.
  • These functions can be in one source file or in a bunch of different files.
  • C functions and ASM functions are the same thing. You can mix them together in the same program.
  • It's easiest if each file is all-C or all-ASM.

Object file example:

  • add1.c
  • add2.c
  • main.c
$ gcc -c -o add1.o add1.c
$ gcc -c -o add2.c add2.c
$ ...
$ gcc -o example add1.o add2.o main.o