集成电路
软件开发从过去的纸带打孔发展为面向对象编程、在集成开发环境中编写程序,这个过程离不开硬件的巨大进步。硬件的发展代表是集成电路(Intergrated Circuits,简称IC),用于制作微处理器。集成电路采用一定的工艺,把一个电路中所需的晶体管、电阻、电容和电感等元件及布线互连一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构;其中所有元件在结构上已组成一个整体,使电子元件向着微小型化、低功耗、智能化和高可靠性方面迈进了一大步。
操作系统
计算机曾经一次只能运行一个程序,需要外界放入纸带运行程序。后来放入纸带的速度过慢,我们需要一种方式让计算机自动运行——操作系统由此诞生。
操作系统(Operating System)是系统软件,具有控制硬件的权限。开机时操作系统时第一个启动的软件;其他所有程序,都由操作系统启动。
早期的程序员需要考虑程序与外部设备的交互——这是十分底层的东西,增加程序员无意义的精力消耗。
操作系统可以很好地解决这个问题。操作系统充当软件和硬件之间的媒介。操作系统的存在可以使多个程序同时进行,在单个CPU上共享时间,具有“多任务处理”的功能。
然而,多任务处理也会遇到问题。每个程序会占据一定的内存。当某个程序申请更多的内存时,操作系统分配给该系统的内存可能是不连续的!显然,这会给程序员造成困难。于是,操作系统使用了“虚拟内存”——操作系统隐藏,虚化了复杂的内存内容,使得程序的内存看起来是连续的——这依赖于操作系统自动处理虚拟内存与物理内存之间的映射关系。这种机制使得程序的内存大小可以灵活增减,称为“动态内存分配”。
内核
内核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
内存保护
防止其他的程序进入某个程序的内存当中改写其内存。具体可表现为阻止用户应用程序破坏操作系统使用的数据、阻止一个任务访问其他任务的数据区,从而隔离任务等等。