19 Final thoughts CS 2043: Unix Tools and Scripting, Spring 2019 - - PowerPoint PPT Presentation

19 final thoughts
SMART_READER_LITE
LIVE PREVIEW

19 Final thoughts CS 2043: Unix Tools and Scripting, Spring 2019 - - PowerPoint PPT Presentation

19 Final thoughts CS 2043: Unix Tools and Scripting, Spring 2019 [1] Matthew Milano March 8, 2019 Cornell University 1 Table of Contents 1. Back to desktop environments 2. Linux everywhere 3. Linux everywhere 2 Back to desktop


slide-1
SLIDE 1

19 – Final thoughts

CS 2043: Unix Tools and Scripting, Spring 2019 [1]

Matthew Milano March 8, 2019

Cornell University 1

slide-2
SLIDE 2

Table of Contents

  • 1. Back to desktop environments
  • 2. Linux everywhere
  • 3. Linux everywhere

2

slide-3
SLIDE 3

Back to desktop environments

slide-4
SLIDE 4

Option 1: KDE

Figure 1: KDE

3

slide-5
SLIDE 5

Option 2: GNOME

Figure 2: GNOME

4

slide-6
SLIDE 6

Option 3: XFCE4

Figure 3: XFCE4

5

slide-7
SLIDE 7

Tiling window managers

  • Basic concept: windows don’t “float” or “resize”; they always

take all available area

  • Can sub-divide screen into smaller regions (in half, in quarters,

etc).

  • Applications automatically resize to snap to your new “grid”
  • don’t move things with the mouse; change “splits” your screen

with keyboard shortcuts

  • some developers swear by these
  • basically unused outside of serious developer circles.

6

slide-8
SLIDE 8

XMonad

Figure 4: xmonad

7

slide-9
SLIDE 9

Awesome

Figure 5: Awesome

8

slide-10
SLIDE 10

Linux everywhere

slide-11
SLIDE 11

Linux on windows: the old

  • Git Bash uses MinGW / Cygwin
  • Demo (I’m supposed to go to the cygwin website, and the git

bash installer, then install git bash)

9

slide-12
SLIDE 12

Linux on windows: the new

  • A brief aside: Windows kernel is a federation of components

called a hybrid kernel

  • Windows’ normal runtime is win32, built atop a core kernel layer
  • We won’t really get into what that means
  • The Windows Subsystem for Linux is magic
  • new subsystem like win32
  • provides commands/API calls/syscalls from the Linux Kernel
  • isn’t actually Linux, but is close enough for all your userspace

programs to not know the difference

  • You definitely want to install VcXsrv
  • Demo: let’s look at WSL.
  • There are lots and lots of guides to install online; google it!

10

slide-13
SLIDE 13

Package management on windows: what for?

  • You like automatic dependency management
  • You like unified “app store style” auto-updating apps
  • You want to install small, linux-like utilities or programs
  • Three programs for three roles
  • Normal applications: Chocolatey
  • Libraries for C/C++/.NET software development: VCPkg or NuGet
  • Source-based package manager (from the folks at KDE): Craft
  • Rapidly evolving space: there might be alternatives
  • google ’em!
  • Demo time, I hope

11

slide-14
SLIDE 14

Linux everywhere

slide-15
SLIDE 15

What level of Linux do you want?

  • Installing Linux on raw hardware best way to learn GNU/Linux
  • but easiest way to get stuck
  • simple things – like wifi, network, graphics – might not work at

first

  • probably best not to do this in the middle of the semester
  • Using your OS’s built-in Linux/Unix/Posix functionality often

easier

  • A good alternative unless you’re doing really esoteric stuff
  • WSL on Windows / Terminal on Mac
  • If you’re on ChomeOS, then you already have Linux! Good

choice.

  • Integrating your “daily driver” OS with your shell is essential
  • Automatic on Linux — in fact hard to avoid
  • Not automatic on Windows, but not hard to do for modern apps
  • Mostly automatic on Mac, but you have to want it.
  • VSCode demo on Windows.

12

slide-16
SLIDE 16

References

[1] Stephen McDowell, Bruno Abrahao, Hussam Abu-Libdeh, Nicolas Savva, David Slater, and others over the years. “Previous Cornell CS 2043 Course Slides”.

13