引言¶
操作系统的历史¶
操作系统之旅从以真空管和穿孔卡为特征的第一代系统开始,到今天的先进系统。这一演变包括几代人,每一代人都以显著的技术进步和计算范式的变化为标志。
第一代操作系统¶
在早期,像EDVAC这样的计算机使用真空管,并用机器语言编程。当时没有操作系统,编程主要用于数值计算。
第二代系统¶
20世纪50年代和60年代引入了晶体管,导致了大型机和批处理系统的出现。汇编语言和FORTRAN占主导地位,批处理系统由读卡器、处理器和打印机组成。
第三代系统¶
从20世纪60年代到80年代,集成电路开始发挥作用。这一时期标志着机器映像/抽象和多道程序设计的开始,IBM System/360等系统发挥了重要作用。
第四代系统¶
从20世纪80年代到现在,微处理器的兴起和微型计算机时代的到来。在此期间,出现了像Unix和MS-DOS的早期版本这样的操作系统。
Windows NT/XP/Vista/7¶
本节详细介绍了Windows操作系统从OS/2的竞争对手Windows NT到各种版本(如Windows 2000、XP、Vista)到Windows 7的演变。每个版本都带来了新的改进,从Windows 2000中的虚拟内存支持和Active Directory到Windows 7中的主要UI改进和64位支持。
Linux¶
在MINIX的启发下,Linux操作系统从20世纪90年代初的0.x版本开始,到2.6版本的重大改进。这一演变包括硬件支持、性能和内核开发方面的改进,Linux成为服务器和桌面操作系统的强大参与者。
计算机系统的类型¶
本节探讨各种类型的计算机系统,包括批处理系统、个人/并行计算机、集群、网格计算机、分布式系统、游戏机、手持/平板计算机和智能手机,每个系统都有其独特的特征和用途。
个人电脑¶
个人计算机,通常被称为PC,是为个人使用而设计的。这些电脑在专业和个人环境中都很普遍,提供从文字处理和网络浏览到游戏和媒体消费的一系列功能。它们的多功能性、易用性和价格实惠使它们成为现代日常生活中的主食。
并行计算机¶
并行计算机被设计为通过将任务分配到多个处理器来执行复杂的计算。这些系统的特点是能够同时运行进程,显著提高了计算速度和效率。它们在科学研究、工程模拟和其他需要大量数据处理和计算的领域特别有用。
分布式系统¶
分布式系统涉及相互连接的计算机网络,这些计算机相互作用以实现共同的目标。这些系统跨多个节点分布处理和数据存储,提供弹性、可扩展性和资源共享,是跨多个网络环境要求可靠性的应用程序的理想之选。
批处理系统¶
批处理系统在没有连续用户交互的情况下成批地处理大量数据。这些系统在处理海量数据集的环境中是不可或缺的,例如金融交易处理或大规模数据分析。
集群¶
群集由多台连接在一起的计算机组成,它们作为单个系统一起工作,从而增强了性能并提供了高可用性。它们通常用于需要高度计算能力或资源高可用性的环境,如科学计算或Web服务。
云计算¶
云计算通过互联网(“云”)提供计算服务,包括服务器、存储、数据库、网络、软件、分析和智能。它提供更快的创新、灵活的资源和规模经济,通常只为使用的云服务付费。
网格计算¶
网格计算将通常分散在不同地理位置的不同计算机连接起来,以创建能够处理大规模处理任务的分布式计算系统。这种系统经常被用于科学研究中,其中大量的计算任务分布在网格中的各个节点上。
量子计算¶
量子计算代表着计算能力的重大飞跃,利用了量子力学的原理。与使用比特作为最小数据单位的经典计算机不同,量子计算机使用量子比特或量子比特,它们可以同时以多个状态存在。这使得量子计算机能够以传统计算系统无法达到的速度执行复杂的计算。量子计算在解决密码学、材料科学和复杂系统建模等领域的复杂问题方面具有巨大的潜力,这些领域超出了经典计算机的能力范围。
摘要¶
每种类型的计算系统都有其独特的特点和应用,为现代计算的多样化做出了贡献。如果需要进一步的细节或调整,请让我知道。
操作系统的类型¶
操作系统分为几种类型,如单程序/简单操作系统、实时操作系统、微内核、单片内核和分布式操作系统。每种类型都有不同的用途,适合特定的应用程序和硬件环境。
欢迎参加这门关于UNIXShell的速成课程,在这里我们将深入研究使用 /bin/bash ,这是最常用的Shell之一。Shell是一个强大的界面,允许用户通过各种命令与系统进行高效的交互。
基本壳牌操作¶
UNIXShell是通用的,允许您使用简单的命令执行各种操作。以下是一些基本操作:
显示文件内容¶
属性显示一个或多个文件的内容。 cat 指挥部。对于单个文件:
$ cat file
对于多个文件,请列出它们之一:
$ cat file1 file2 file3
或使用括号扩展:
$ cat {file1,file2,file3}
创建目录和文件¶
创建目录和文件是一项常见的任务。要创建目录,请执行以下操作:
$ mkdir foobar
对于嵌套目录:
$ mkdir -p foo/bar/baz
创建文件可能非常简单,只需:
$ touch file1
或一次创建多个文件:
$ touch file1 file2 file3
$ touch {file1,file2,file3}
正在创建空文件:
> filename.txt
请谨慎使用这些命令,因为如果使用不当,其中一些命令可能具有破坏性。
将文本打印到控制台¶
将文本打印到控制台:
$ echo "hello world"
$ echo -e "hello\t\t world\n"
阅读文件的内容,一次读取一个屏幕:
$ less file1.txt
在文件中搜索特定文本:
$ grep "hello world" file1.txt
$ grep -e "hello.* d" file1.txt
以上各节提供了有关UNIXShell命令的基础。以下各节将继续探讨更高级的操作和概念,如文件权限、组合命令、后台进程和C编程简介。我
打印工作目录(PWD)¶
这个 pwd 命令显示当前工作目录的绝对路径。它是在文件系统中定位自己并确保在执行操作之前位于正确目录中的基本命令。
$ pwd
列出文件和目录(%ls)¶
ls 是最常用的命令之一。它列出了当前目录中的文件和目录。具有如下选项 -l 查看详细的列表和 -a 为了包括隐藏文件,它提供了一种查看目录内容的通用方法。
$ ls
$ ls -l
$ ls -a
更改目录(CD)¶
导航文件系统是Shell中的一项基本任务,并且 cd 是让这一切成为可能的命令。它将当前目录更改为命令中指定的另一个目录。
$ cd /path/to/directory
$ cd ..
$ cd
复制文件和目录(Cp)¶
这个 cp 命令用于复制文件和目录。它对于复制数据、创建备份或移动数据至关重要。这个 -r 选项用于递归复制目录。
$ cp source_file destination_file
$ cp -r source_directory destination_directory
移动/重命名文件(MV)¶
mv 它有双重用途:它移动文件和目录,并对它们进行重命名。此命令在组织文件和目录或更改文件名时特别有用。
$ mv old_filename new_filename
$ mv file /path/to/new/location
删除文件和目录(RM)¶
rm 用于删除文件和目录。建议您谨慎使用此命令,尤其是使用 -r 递归删除选项,因为它会永久删除数据。
$ rm file
$ rm -r directory
查看文件内容(更少、更多、CAT)¶
命令,如 less , more ,以及 cat 用于查看文件的内容。 less 和 more 对于在较大的文件中导航尤其有用。
$ less file
$ more file
$ cat file
查找文件和目录(Find,Locate)¶
这个 find 和 locate 命令是搜索文件和目录的强大工具。他们可以根据不同的标准进行搜索,比如名称、大小或修改日期。
$ find /path -name "filename"
$ locate filename
文件权限和所有权(chmod、chown)¶
chmod 和 chown 对于管理文件权限和所有权至关重要。它们确保文件和目录的安全性和适当的访问控制。
$ chmod 755 file
$ chown user:group file
进程管理(PS、TOP、KILL)¶
管理进程是系统管理的一个关键方面。命令,如 ps , top ,以及 kill 允许用户查看活动进程,监视系统资源,并在必要时终止进程。
$ ps
$ top
$ kill PID