操作系统的五大功能:CPU管理、内存管理、文件管理、硬件管理和任务管理。
其中的任务管理包括2个功能,一是为用户提供计算机的操作界面(例如启动程序的开始菜单、资源管理器或我的电脑等),
二是为其它应用程序提供操作硬件的程序接口,即函数库(通常称为Kernel,即操作系统内核)。
例如,C++的系统函数(结构化程序设计)或系统类库(面向对象程序设计)都需要基于操作系统提供的函数库来编写,
所以说:操作系统是其它应用软件的基础。
程序员也可以基于操作系统提供的函数库来编写自己的函数库,但需要学习很多硬件相关的知识。
关于编程语言:开发Windows程序一般使用C++或C#语言,开发MacOS/iOS程序使用Objective-C(类似于C++),开发Android程序使用Java语言。
编程语言之所以不同,这是市场竞争造成的。大家可以从编程语言中看到其背后隐藏的微软、苹果和谷歌这3大巨头的身影。
尽管编程语言不同,所使用的程序库不同,但程序设计的原理是共同的。C++语言的知识体系最全,语法最多。学会C++后再学其它语言,大家会觉得很简单。
在1995年Sun公司推出Java语言之前,全世界绝大部分的程序员都在用C或C++编写程序,没觉得缺什么。
Java语言的最大特色是基于虚拟机技术实现跨不同操作系统平台的运行。
Sun公司(已被甲骨文Oracle公司收购)推出Java语言的动机是什么?
破除微软Windows的垄断。转向什么操作系统呢?转向了Linux。微软奋起反抗,推出C#语言,也号称跨平台,这样就可以与Java竞争。
目前Java和C#主要用于Web应用程序的开发,用这2种语言开发Web程序很方便(类似的语言还有PHP、Python等)。
而在底层系统级程序开发上,C/C++语言占绝对垄断地位,例如Python语言本身就是用C/C++语言开发出来的。
科研工作中常用的语言有Matlab和Python等。