我本身做为一名软件开发者,基于我自己的理解来回答您的这个问题。
什么是软件?依我的理解,通俗易懂的解释——一切运行在主控制芯片上,可供用户操作的程序都可称为软件。
主控制芯片主要包括以下两个大类:一、MCU(单片机):我们通常使用的消费级电子产品的主控制芯片都可称之为MCU。普通消费者能感受到的是我们在操作普通的电子产品上的每个按键的时候能够产生对应的动作。日常使用的家用电器、家用医疗器械、电子儿童玩具等,其内部都会有一个MCU(我称之为主控芯片)用于控制我们的每个操作的处理。
二、CUP(中央处理器):主要产品又分为运行在X86架构CUP上面的大型(超级计算机)和桌面级计算机(我们通常所说的电脑)、和arm架构CUP的可移动设备终端,包含我们家里的智能电视、智能音箱、以及每时每刻不离手的智能手机。
软件是如何能够运行于MCU或者CPU上面的?这里面就又涉及到CUP指令、内存管理、编译流程等方面的知识,这里不过多的解悉。这需要一本专业书的知识才能解签清楚哈。
大家知道的就是,其实就是将程序编译成CUP能够识别并进行处理的二进制文件。二进制文件就是0和1,对于CUP来说,就是开和关。就像我们平时在家里开关和关灯一样。由N多个0和1来让CPU执行相关指令。
举一个最简单的例子:我们家里的洗衣机,当你按下开关的时候,其实上是发出一个让洗衣机依次执行通电-->打开进行开关-->等待水位线达标-->启动电机,并根据预先已经设置好的指令进行来回的转动、振动来模拟人洗衣服的过程。
那么软件开发具体都有哪些呢?基于单片机运行的软件开发:目前通用的是C进行开发,主要是消费级电子产品,一些简单的控制,也可以称之为驱动程序开发。
基于消费级桌面计算机(电脑)的硬件的驱动程序开发:显卡驱动程序、声卡驱动程序等,接触电脑比较早且有一定计算机知识的同学应该了了解,在windows操作系统电脑上,有的时候如果我们不能正确安装驱动程序,可能会造成没有声音或者显示屏的显示异常的问题出现。
基于消费级桌机计算机(电脑)的操作系统开发
智能移动设备终端(最常见的就是智能手机)操作系统
运行消费级桌面计算机(电脑)的应用
后台管理系统:包含后台接品开发,web前端开发
移动App开发
以上是与我日常生活比较相关的一些软件开发内容。
当然还有一些专业领域的软件开发。比如自动化控制软件的开发、军事上面的武器控制系统的开发、人工智能领域机器学习库软件的开发、超级计算机操作系统及应用软件的开发、工业设计类软件开发等。
希望我的回答能够帮助到你,如果觉得涨知识,请点个赞。也可关注我,后续都会写一些关于计算机和编程以及一些科学知识的自我理解方面的文章。