黑马程序员技术交流社区

标题: C基础开发前奏个人笔记 仅供交流 [打印本页]

作者: muyan091115    时间: 2016-5-22 23:06
标题: C基础开发前奏个人笔记 仅供交流
Day01 笔记


1.计算机是由哪些硬件组成的?

   CPU:负责计算。
   内存:临时的存储数据。
   硬盘:永久的存储数据。
   显卡:输出视频信号的 输出图像的。
   声卡:输出声音信号。
   网卡:接受和发送网络数据的。
   主板:连接其他的硬件设备。
   。。。。。。

   在思考?
   一台计算机光有这些硬件可以不可以?是不可以的。
   还需要再买一个操作系统,将操作系统安装在硬件设备之上。

   操作系统:Operating System。
   首先它是一个软件,直接运行在计算机设备上。
   作用:
   ->用来管理计算机的硬件设备。
   ->用来协调计算机硬件设备之间相互和谐的工作。
        指挥每一个硬件设备在合适的时机做事情


2.继续深入操作系统

   计算机事来帮助人类做事情。
   人类如何让计算机做事情?
   
   比如:我们要为远在美国的凤姐发送一条消息。
   如果要让计算机按照我们的要求做事情,那我们就应该先把我们的需求告诉我们的计算机。
   我们要和计算机进行沟通个交流。我们该如何沟通呢?
   
   计算机设备能够明白的沟通方式是什么?要用计算机的方式告诉它。

   计算机能够听得懂什么样的沟通方式呢?计算机能够听得懂什么样的语言呢?
   
   从第一台计算机诞生至今。1946年。我们的计算机只能识别010110101101111
   这样的二进制语言,机器语言。

   如果我们要让计算机按照我们的要求做事情,
   那么就必须要使用计算机能够明白的机器语言和他说。
   
   网卡设备给凤姐发送一条消息:1010111101010110101

   计算机设备很听话的,只要能够听得懂的指令,不管这个指令是什么,
   它都会按照指令的要求去执行。

   但是,如果我们像这样和计算机进行沟通的话,那么将变得非常的复杂。

   所以,操作系统还提供了一个功能:将计算机底层的复杂的二进制操作,封装得更为简单。
   将复杂的二进制操作封装成了一个简单的借口。只要我们调用了这个接口,
   那么操作系统就会帮助我们向硬件设备发送复杂的二进制指令。
   对于我们而言,我们不需要去记得那些复杂的二进制操作,
   我们只要记得操作系统提供的接口就可以了。

   操作系统的作用:
   1),管理计算机硬件,协调各个硬件和谐的工作。
   2),将计算机底层复杂的二进制操作封装的更为简单,
           要执行一些操作的时候秩序调用操作系统提供的接口就可以了

   注意一点:不同的操作系统提供的借口是不一样的。


3.应用软件

   思考:要播放存储在硬盘上的歌曲的时候。

   1),应该将存储在硬盘上的歌曲文件拷贝到内存之中。
   2),让CPU来解析这份数据 音频解码 解析成音频信号。
   3),把音频信号发送给声卡,让声卡输出。

   这些调用操作系统的接口的操作,对于一般人而言也是相当复杂的。

   就有一个音乐软件,提供了一个按钮,只要用户一点击这个按钮。
   那么这个软件,就会去自动的调用操作系统的接口来播放音乐。
   对于用户而言,只需要简单的一按就可以了。

   应用软件:运行在操作系统之上,将操作系统提供的操作硬件的接口按照一定的顺序
                  在封装成为一个更为简单的接口,用户只需要一点击这个接口
                  那么这个应用软件就会去一次的调用操作系统提供的接口来完成一个功能。

   比如:要完成一个功能,登陆QQ。
   
   底层的操作:
   1),拿到QQ号码
   2),拿到QQ密码
   3),将QQ号码和QQ密码通过网卡设备发送给腾讯的服务器
   4),网卡等待腾讯服务器的回应。

   同样的,这些调用操作系统的接口,步骤繁多,复杂,一般人不会。
   QQ这个应用软件,提供了一个登录按钮,我们只要点一下这个登录按钮
   QQ这个软件就会自动的调用操作系统提供的接口来完成登录的功能。

   总结:
   操作系统是运行在计算机硬件之上,应用软件时运行在操作系统之上的。
   操作系统时将硬件的复杂的二进制封装为更为简单的接口操作。
   应用软件又将操作系统提供的接口封装为更为简单的接口操作。
  
   注意:不同的操作系统提供的接口是不一样的,为某一个操作系统设计的应用软件
            只能在这个操作系统下运行,不能再别的操作系统上运行,因为应用软件是
            利用操作系统提供的接口来完成功能的,而不同的操作系统提供的接口是不一样的。

   我们学习的软件开发,学习的是应用软件的开发。
   
   开发一个应用软件的步骤
   ->先确定你开发的这个应用软件时允许在哪一个操作系统之上。
   ->在确定操作系统提供的接口。
   ->将这些接口有序得组合起来 完成一个独立的功能。


4.操作系统的分类

   运行在PC(个人计算机)机器上的操作系统:
   微软: 90%  Windows操作系统
   苹果: 7%  OS X操作系统,这个是运行在苹果计算机上的操作系统。
   Linux操作系统。 3%
   。。。。。

   运行在服务器(是一台电脑,稳定性高,功能强劲)上的操作系统。
   微软:Windows Server 操作系统  15%
   Linux: 85%
   。。。。。

   运行在移动设备(手机,平板,穿戴设备,智能手表。。)上的操作系统:
   谷歌:安卓 70%
   苹果:IOS 25%
   微软:Windows  5%
   。。。。。。
         

5.什么是IOS操作系统。
   
   IOS:是一个操作系统,是运行在苹果移动设备上的操作系统。
   OS:Operating System
   i是苹果命名产品的惯用前缀, iPhone iPad iTouch iPod
   这个操作系统只能运行在苹果的移动设备上。

   iPhone OS 最开始的时候这个操作系统是智能运行在iPhone上
   但是后来,这个操作系统还可以运行在iPad,iTouch,iPod。。。。
   就为这个操作系统修改了一个名字 iOS。

   iOS时一个闭源的操作系统,不开放源代码,也不允许其他的设备运行这个操作系统。

   iOS开发呢?
   开发运行在iOS平台上面的应用程序。
   开发运行在iPhone,iPad,iTouch 设备之上的软件

   iOS开发归类于 移动开发/手机开发
   从事iOS开发的人 我们叫做“iOS工程师”


6.应用软件开发的分类。
   
   1),桌面软件开发
      开发运行在(PC)桌面操作系统上的软件。带界面的。
      例如:QQ。

   2),Web开发
      做网站,应用程序是以网页的形式写出来的。打开浏览器就可以使用这个软件。
      QQ 分别为Windows,OS X,Linux 都写了对应版本的QQ。
      Web QQ。
      优点:真正意义上的跨平台。
      
   3),移动开发
      开发运行在移动设备上的应用软件。
      移动设备最主要的操作系统:安卓,iOS。

      我们学习的是移动开发,我们学习的是iOS开发。


7.为什么要选择移动开发?
  
   1),手持设备将是人类最离不开的设备之一。
   2),移动互联网发展十分迅猛,
   3),众多公司为了在移动互联网立足,纷纷推出自己的移动设备产品。
   4),需要大量的人才。


8.为什么要选择iOS开发而不是选择安卓开发?

   1),安全稳定
   2),不开源
   3),设备种类专一
   4),具有高消费水平的用户
   5),开发人员薪水相对较高


9.学习iOS开发的准备
   
   1),学习态度
   2),C语言 Objective-C swift
   3),Xcode(只能运行在OS X系统上)
   4),OS X 系统
   5),真机设备
   6),iOS证书:调试证书 发布证书


10,OS X的获取途径

   PC中安装虚拟机
   黑苹果
   苹果设备(iMac macbook mac mini)



作者: 梁木木    时间: 2016-5-23 21:39
希望以后继续发表,现在太基础的用处不是很大
作者: 15737977316    时间: 2016-5-23 21:53
点赞。。。写的不错哦
作者: 617808794    时间: 2016-5-23 22:37
多多发表啊   致辞




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2