19 – final thoughts - cs 2043: unix tools and scripting ... › courses › cs2043 › 2019sp ›...

16
19 – Final thoughts CS 2043: Unix Tools and Scripting, Spring 2019 [1] Matthew Milano March 8, 2019 Cornell University 1

Upload: others

Post on 27-Jun-2020

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 19 – Final thoughts - CS 2043: Unix Tools and Scripting ... › courses › cs2043 › 2019sp › _data › lectur… · Tilingwindowmanagers • Basicconcept:windowsdon’t“float”or“resize”;theyalways

19 – Final thoughtsCS 2043: Unix Tools and Scripting, Spring 2019 [1]

Matthew MilanoMarch 8, 2019

Cornell University

1

Page 2: 19 – Final thoughts - CS 2043: Unix Tools and Scripting ... › courses › cs2043 › 2019sp › _data › lectur… · Tilingwindowmanagers • Basicconcept:windowsdon’t“float”or“resize”;theyalways

Table of Contents

1. Back to desktop environments

2. Linux everywhere

3. Linux everywhere

2

Page 3: 19 – Final thoughts - CS 2043: Unix Tools and Scripting ... › courses › cs2043 › 2019sp › _data › lectur… · Tilingwindowmanagers • Basicconcept:windowsdon’t“float”or“resize”;theyalways

Back to desktop environments

Page 4: 19 – Final thoughts - CS 2043: Unix Tools and Scripting ... › courses › cs2043 › 2019sp › _data › lectur… · Tilingwindowmanagers • Basicconcept:windowsdon’t“float”or“resize”;theyalways

Option 1: KDE

Figure 1: KDE

3

Page 5: 19 – Final thoughts - CS 2043: Unix Tools and Scripting ... › courses › cs2043 › 2019sp › _data › lectur… · Tilingwindowmanagers • Basicconcept:windowsdon’t“float”or“resize”;theyalways

Option 2: GNOME

Figure 2: GNOME

4

Page 6: 19 – Final thoughts - CS 2043: Unix Tools and Scripting ... › courses › cs2043 › 2019sp › _data › lectur… · Tilingwindowmanagers • Basicconcept:windowsdon’t“float”or“resize”;theyalways

Option 3: XFCE4

Figure 3: XFCE4

5

Page 7: 19 – Final thoughts - CS 2043: Unix Tools and Scripting ... › courses › cs2043 › 2019sp › _data › lectur… · Tilingwindowmanagers • Basicconcept:windowsdon’t“float”or“resize”;theyalways

Tiling window managers

• Basic concept: windows don’t “float” or “resize”; they alwaystake 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 screenwith keyboard shortcuts

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

6

Page 8: 19 – Final thoughts - CS 2043: Unix Tools and Scripting ... › courses › cs2043 › 2019sp › _data › lectur… · Tilingwindowmanagers • Basicconcept:windowsdon’t“float”or“resize”;theyalways

XMonad

Figure 4: xmonad 7

Page 9: 19 – Final thoughts - CS 2043: Unix Tools and Scripting ... › courses › cs2043 › 2019sp › _data › lectur… · Tilingwindowmanagers • Basicconcept:windowsdon’t“float”or“resize”;theyalways

Awesome

Figure 5: Awesome

8

Page 10: 19 – Final thoughts - CS 2043: Unix Tools and Scripting ... › courses › cs2043 › 2019sp › _data › lectur… · Tilingwindowmanagers • Basicconcept:windowsdon’t“float”or“resize”;theyalways

Linux everywhere

Page 11: 19 – Final thoughts - CS 2043: Unix Tools and Scripting ... › courses › cs2043 › 2019sp › _data › lectur… · Tilingwindowmanagers • Basicconcept:windowsdon’t“float”or“resize”;theyalways

Linux on windows: the old

• Git Bash uses MinGW / Cygwin• Demo (I’m supposed to go to the cygwin website, and the gitbash installer, then install git bash)

9

Page 12: 19 – Final thoughts - CS 2043: Unix Tools and Scripting ... › courses › cs2043 › 2019sp › _data › lectur… · Tilingwindowmanagers • Basicconcept:windowsdon’t“float”or“resize”;theyalways

Linux on windows: the new

• A brief aside: Windows kernel is a federation of componentscalled 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 userspaceprograms 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

Page 13: 19 – Final thoughts - CS 2043: Unix Tools and Scripting ... › courses › cs2043 › 2019sp › _data › lectur… · Tilingwindowmanagers • Basicconcept:windowsdon’t“float”or“resize”;theyalways

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

Page 14: 19 – Final thoughts - CS 2043: Unix Tools and Scripting ... › courses › cs2043 › 2019sp › _data › lectur… · Tilingwindowmanagers • Basicconcept:windowsdon’t“float”or“resize”;theyalways

Linux everywhere

Page 15: 19 – Final thoughts - CS 2043: Unix Tools and Scripting ... › courses › cs2043 › 2019sp › _data › lectur… · Tilingwindowmanagers • Basicconcept:windowsdon’t“float”or“resize”;theyalways

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 atfirst

• probably best not to do this in the middle of the semester

• Using your OS’s built-in Linux/Unix/Posix functionality ofteneasier

• 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! Goodchoice.

• 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

Page 16: 19 – Final thoughts - CS 2043: Unix Tools and Scripting ... › courses › cs2043 › 2019sp › _data › lectur… · Tilingwindowmanagers • Basicconcept:windowsdon’t“float”or“resize”;theyalways

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