USTC-暑期补课 OS笔记1
- kernel内核:全时运行的一个程序
- 从不同的角度来看操作系统
- 操作系统是系统资源管理程序,它用于控制和管理计算机系统的硬件和软件资源;
- 从服务用户的观点――操作系统是用户与计算机硬件之间接口;
- 从软件分层、扩充机器的观点―― 操作系统是扩充裸机的第一层系统软件。
- 操作系统定义:操作系统是一组有效控制和管理计算机系统的硬件和软件资源、合理地组织计算机工作流程以及方便用户的程序集合。
- 并发:宏观上并行,微观上串行。
OS 作业1
题目:请调研5种常用操作系统,并描述其应用场景、特点(可从不同视角),每种操作系统描述字数要求100字以内。
- Mac OS:一款苹果公司开发的专为苹果自家电脑使用的图形用户界面操作系统,以Mach内核为基础,加入UNIX的BSD实现。从用户的角度来说,外观设计简洁美观,封闭源码使得其不容易感染病毒,自带的app store方便用户获取软件。
- Ubuntu:以桌面应用为主的Linux发行版,目前最多用户的Linux版本。Ubuntu所有的系统相关的任务都需要用Sudo指令,比传统的用系统管理员账号管理更为安全。Ubuntu计划强调易用性和国际化,以便能为尽可能多的人所用。
- Chrome OS:由Google设计基于Linux內核的操作系统,并使用Google Chrome浏览器作为其主要用户界面。主要支持Web应用程序,2016年开始兼容Andrid应用程序。
- Arch Linux:是一款基于x86-64架构的Linux发行版。系统主要由自由和开源软件组成,注重代码正确、优雅和极简主义,期待用户能够愿意去理解系统的操作。Arch Linux是针对特定处理器而优化过的,能够更好地利用CPU周期以提高性能。相比Debian/Ubuntu、SUSE、RedHat/Fedora等其他发行版,Arch Linux属于轻量级选手,其简单的设计让它容易被轻松扩展和配置成为任何想要的系统类型。
- Android:是一个基于Linux内核的开放源代码移动操作系统,使用JAVA作为编程语言。Android为了达到商业应用,必须移除被GNU GPL授权证所约束的部分,因此Android是执行于Linux kernel之上,但并不是GNU/Linux,在一般GNU/Linux里支持的功能,Android大都没有支持,除了核心之外,则是中介层、数据库元和用C/C++编写的API以及应用程序框架,应用程序通常以Java数据库元为基础编写,运行程序时,应用程序的代码会被即时转变为Dalvik dex-code(Dalvik Executable),然后Android操作系统通过使用即时编译的Dalvik虚拟机来将其运行。
OS 实验1
题目:熟悉Linux系统常用命令,可完成C源程序编译调测。
我的解答:先用sublime编辑一个helloworld.c,打开Terminal终端,输入gcc helloworld.c,可以看到在同一路径下生成了a.out文件,输入./a.out,可以看到终端中输出了helloworld。
Linux基本操作
- 切换目录 -cd:
- cd / 切换到根目录
- cd .. 切换到上一级目录
- cd ~ 切换到用户主目录
- 列出文件清单 -ls
- ls -a 显示所有文件名
- ls -l 详细信息
- 帮助命令 -man [命令] q退出
- 创建新目录 -mkdir 注意:mac下需要加上sudo
- mkdir -p 递归创建
- 显示文件内容 -cat [文件名]
- 复制 -cp [文件] [目的目录] -cp -r [目录名] [目的目录]
- 移动与更名 -mv [文件] [文件名1] -mv [文件] [ 目的目录]
- 文件的删除 -rm
- rm -r 删除目录
- rm -f 强制删除
- rm -i 删除前询问
- 文件搜索命令 find [搜索范围][匹配条件]
- 统计命令 wc [-clw][文件]
- wc -l 统计行数
- wc -w 统计字数
- wc -c 统计字节数
- 显示当前工作目录 pwd
- 关机 shutdown [-hr] [时间]
- shutdown -h 关机
- shutdown -r 重启