操作系统
我们的计算机是由很多种硬件设备组成的,比如 CPU、内存、硬盘、网卡、主板、声卡.......如果计算机只是仅仅有这些硬件设备,这样能不能正常使用?
CPU:负责计算、处理数据
内存:存储数据 (临时)
硬盘:存储数据 (永久)
网卡:接收、发送网络数据
声卡:输出声音信号
..........
但是,是谁让CPU去处理数据?是谁让内存去存储数据?所以计算机要正常使用必须要有一个“老大”(操作系统)来管理、协调计算机各种硬件之间和谐的工作。
计算机的作用:帮助人类做各种各样的事情。如何让计算机帮助我们做事情?我们必须要使用计算机能够明白的语言和方式去和它沟通交流,当它听懂以后,就会按照我们的要求做事情。计算机设备从诞生至今,只能听懂像 010101110010101
这样的二进制语言,也叫做机器语言。
操作系统的作用:是一个直接运行在计算机设备之上的软件,用来负责管理、协调计算机各个硬件的工作。并且将底层的复杂操作封装为了1个相对较为简单的操作(接口)。
应用软件
软件就是根据操作系统提供的接口,把这些接口按照一定的顺序组合起来完成1个特定的功能,这就是应用软件。操作系统他本身也是一个软件,不过是一个底层软件,因为它直接和硬件打交道。
计算机硬件设备、操作系统、应用软件之间的关系
最底层的是硬件设备,操作系统是允许运行在硬件设备之上的,应用软件是允许运行在操作系统之上的。
注意:
-
不同的操作系统封装的接口是不一样的。
-
同1个应用软件,是不可能允许运行在多个操作系统之上的。
开发应用软件的一般步骤:
1. 明白操作系统提供了哪些接口。
- 将这些功能有序的组合起来,完成我们特定的功能。
操作系统的分类和市场占有份额
运行在PC(个人电脑)上的操作系统
Windows:90%
Apple:OS X 7%
Linux:3%
......
运行在服务器上的操作系统
Windows Server:20%
Linux:80%
......
运行在移动设备上的操作系统
Google的Android:70%
Apple的iOS:25%
Windows:5%
......
iOS操作系统
iOS 是一个操作系统,只能运行在 iPhone、iPad 等苹果公司生产的设备上。OS(Operating System)也就是操作系统的意思,iOS 的 i
字母是苹果命名产品的惯用前缀,并且是小写。iOS 系统刚开始是叫 iPhone OS,不过到了后来,这个操作系统可以运行在其他的设备之上,所以才改名叫 iOS。
iOS开发就是开发运行在iOS系统之上的软件,所以iOS开发是属于移动开发。并且因为iOS是苹果移动设备专用的操作系统,iOS开发人员大家喜欢叫iOS攻城狮,大家觉得程序员听起来比较屌丝。
应用软件开发的分类
桌面软件开发:是1个独立的窗口程序。
Web开发:程序的运行要依赖于浏览器,Web应用程序开发,也就是做网站。
移动开发:开发基于移动设备的软件。
开发程序的语言
机器语言:就是 01010100101010
这样的二进制,能直接被计算机识别。
汇编语言:使用单词和助记符编程的程序,学习难度高,可移植性很差。
高级语言:使用人类的英文单词来编写程序,比如 if(xxxx)
这样的条件判断语句,学习起来相对来说比较容易。不过高级语言与硬件的直接交互不明显。
高级语言的一般编写步骤
-
使用单词来编写源代码。
-
使用编译器将源代码翻译为机器语言。
-
再将机器语言交给计算机运行。
终端的作用:可以设置系统,可以设置鼠标做不了的事情。并且某些程序的执行,必须要依赖于终端才可以。
UNIX常用命令
Macbook:~ jianfeng$ pwd
可以显示当前终端程序的工作路径。~
代表当前用户的家目录。直接输入 pwd
就能看到当前目录
Macbook:~ jianfeng$ ls
列出当前工作路径下的所有的文件与文件夹。直接输入 ls
显示当前目录下的目录和文件
Macbook:~ jianfeng$ ls -l
详细列出当前工作路径下的所有的文件与文件。直接输入 ls -l
就是列出当前目录下的目录和文件详细列表
Macbook:~ jianfeng$ cd
改变工作路径,默认情况下终端的工作路径是当前用户的家目录。例如 cd /
就是切换到根目录
Macbook:~ jianfeng$ touch
在终端创建文件,例如 touch test.c
,就是在当前目录创建 test.c
文件
如何开发一个C语言的程序
必须要熟悉 C 语言的语法规范,然后将一些单词、符号根据 C 语言的语法规范组合起来,再将 C 代码编译成可执行程序。编译的时候需要用到编译器,编译器实际上就是一个软件,下载下来安装就可以使用了。
编写C程序源文件
创建1个文件,这个文件的后缀名必须是 .c
,然后打开这个文件,在这个文件之中编写我们的 C 代码就可以了。
注意: C 语言是严格区分大小写的,不能搞错。除了双引号之间的内容,其他地方的代码必须使用英文输入法来输入(因为符号必须为半角符号,否则出错!)
比如我们在终端创建一个 test.c
文件
Macbook:~ jianfeng$ touch test.c
在文件里写入
int main(int argc,const char * argv[]){
printf("hello world!\n");
return 0;
}
编译C程序源文件
使用编译器将 C 源代码编译为二进制代码。
命令:cc -c C源文件的全名称
Macbook:~ jianfeng$ cc -c test.c
如果正常的情况下会生成1个 .o
的文件,这个文件我们叫做目标文件,目标文件之中,是 C 文件的二进制。
注意:在编译的时候, 会先去检查 C 源文件中的代码是否符合 C 的语法规范,如果符合规范才会生成 .o
目标文件。否则不会生成目标文件,并且会提示错误。
链接生成的目标文件
生成的目标文件 .o
不能直接交给 CPU 去执行,一个可以被 CPU 识别并执行的程序必须还要一些额外的代码,也就是启动代码。
链接:为目标文件添加启动代码,以让这个程序可以被 CPU 识别并执行。
命令:cc 目标文件名
Macbook:~ jianfeng$ cc test.o
一切正常的话 就会生成1个 a.out
程序 ,这个程序就可以被 CPU 识别并执行了。
执行C程序
在终端中输入以下命令即可执行我们编写的 C 程序了。
Macbook:~ jianfeng$ ./a.out