Course Content#
Stage Course Introduction#
What is Linux#
-
Linux Development: Unix→Mac→Windows→Linux
-
Typical Linux: Ubuntu, RHEL (Red Hat Enterprise), CentOS (Red Hat's guinea pig), Suse
-
PS: deepin under Debian
- What is it? Why use it?
Simple Use of Linux#
- How to use: Learning methods, general patterns
- How to check: man manual, tldr-Github (open source, concise)
man + [command to check]
- File and directory operations, system information retrieval, software configuration, system optimization
- ⭐Using Linux for programming, development, and building services
Common Commands#
- 50+
Delete database and run away: rm -rf /*
Shell Programming#
- What is a script, analogous to a movie script
- Essentially different from C programs, C processes data, Shell integrates many processes
- Compared to scripting languages like Python, Shell is a built-in interface for Linux, directly connected, can be called directly
- Master: variables, input/output, branches, loops, ⭐arrays
Introduction to Operating Systems#
What is an Operating System#
-
The interface between users and computers, computer hardware and other software, like a big butler
-
Linux system: The kernel is a shorthand for all operating systems based on Linux
-
-
Overall architecture
- Hardware level (tangible)
- Kernel level (file subsystem, process control subsystem, etc.)
- User level (C language library, etc.)
-
History of Linux#
【Operating System】
- 1941: The first computer was created
- 1965: The comprehensive Multics, several large company labs
- 1969: unics, Ken Thompson (for games, evolved from Multics)
- 1973: C language, rewrote Unix, Dennis Ritchie
- 1984: Minix, Andrew S. Tanenbaum
- 1991: Linux, Git, ⭐Linus Torvalds (for games, junior year)
- Tanenbaum and Linus still interact frequently
- Lines of code in the Linux kernel: 100,000 (1993)👉27.8 million (2020)
- Linux design principle: Satisfy a portion of users, different systems have different user preferences【Open Source】
- Linux/Unix's share of server operating systems in China: 86%, 2016
- Windows servers are commonly found in state-owned enterprises and public institutions, with code and systems possibly patched together from decades ago, as long as they are stable, they dare not change
[Hardware Development]
- Vacuum tube era 1950s
- Transistor era 1960s
- Small and medium scale integrated circuits 1960s, 70s
- Large scale, ultra-large scale integrated circuits 1970s to present
[Languages]
- C→C++→Python→Java→Go
- Python surprisingly predates Java
Why Learn Linux#
- Not necessarily learned in college, a plus
- Reading Linux kernel source code, learning thinking from experts [data structures, design patterns]
- The command richness of the Linux ecosystem is more efficient than Windows
- For example, batch processing files, analyzing data, Windows may require writing scripts, finding software
- Currently, mainstream computer positions and technologies are based on Linux
The Grievances Between Windows and Mac#
[Windows] Microsoft#
- Background: Gates' mother was an executive at IBM, bundling Microsoft's DOS system with IBM-PC, the launch of this system was actually a scam
- Highlights: Excel ousted Lotus, IE crushed Netscape, launched the most failed Vista, acquired GitHub
[Mac] Apple#
- Background: Steve Jobs
- Highlights: Jobs left and returned, iMac, iPod, iPhone, surpassed Microsoft in market value in 10 years, brand premium comes from quality
Connections#
- Inspiration came from Xerox's development of Alto - which had a hard drive, monitor, graphical interface, Ethernet, etc.
- Jobs first discovered Alto and asked Gates for help in developing Macintosh, while Gates was also developing Windows
- In 1984, Macintosh was released and became a sensation worldwide; in 1985, Windows 1.0 was released, very similar to Macintosh, which Jobs claimed was a copy of Apple's ideas
- The entanglement began
Additional Knowledge Points#
- Uses of cloud servers: building blogs, image hosting, writing services...
- Database knowledge needed: MySQL Essentials.pdf, Redis key-value storage database [Redis Command Reference]
Points for Reflection#
Tips#
- 【Recommended Books】
- The Linux Command Line by William Shotts→Verbose but detailed, beneficial for beginners
- ⭐apue[UNIX Advanced Programming] extraction code: df8j→suitable for non-beginners
- Avoid negative self-suggestions: Can I not do it?
- Good student traits: Love tinkering, striving...
- The invention of the router came from a university professor who couldn't communicate while at a different school, reference The Most Unfortunate Founder: Invented the Router but Missed a Billion Dollar Fortune Due to Lack of Funds
- The purpose of DevOps and testing development is to eliminate operations and testing
- Operations belong to sunset positions👈 with the popularity of cloud servers, someone helps you maintain