深入操作系统设计原理(一)(操作系统是什么(学习操作系统到底是学什么?))

一、操作系统与项目开发有什么关系?

深入操作系统设计原理(一)(操作系统是什么(学习操作系统到底是学什么?))

文章图片
操作系统是什么?我们都知道Windows,Linux,Mac OS都是操作系统,它的英文是OS(Operation System),苹果的iOS直接表明了它是一个操作系统。在IT开发中都离不开操作系统,包括使用操作系统和开发操作系统,我们使用高级语言开发软件都是使用的操作系统,看似和一般的项目开发没什么关系,实际上简单的一行代码都离不开操作系统。
对于操作系统的内存管理,例如int number = 9,你如何理解这个语句?定义和声明了一个number变量?我们一般都可以这样理解,但是如果我们从内存上看会更加可靠。不管多么高级的语言,计算机技术开发都离不开对内存的理解,例如常常听到的堆栈,C语言基本就是面向堆栈编程,指针和普通变量并没什么区别,从内存的角度理解你会发现指针反而是必须的了,如果不从内存的角度编写代码,那你写代码的依据是什么呢?
操作系统也管理线程和进程,例如多线程开发,什么是并发什么是并行?什么是进程?如何理解多线程?除了对线程的管理,实际都少不了内存管理,不管是多线程还是进程都可以基于内存理解。很多开发都是基于操作系统的开发,理解操作系统的原理,你不但可以更容易掌握开发中的内容,而且对于更高级技术的学习自然也更顺手了。
另外,操作系统原理对于嵌入式linux开发也是一个特别重要的内容,linux操作系统并不是简单地使用命令,linux是一门艺术,实际上很多开发的东西中都可以看到unix/linux的踪影。
二、操作系统是什么?
深入操作系统设计原理(一)(操作系统是什么(学习操作系统到底是学什么?))

文章图片
如上图是一台计算机的完整结构,最上层是应用软件,例如常见的音乐软件、浏览器、游戏等,都属于应用软件。
用户通过应用软件使用操作系统,而操作系统则是使用了硬件设备。计算机硬件称为裸机,没有软件硬件是无法运行的。
那么操作系统究竟是什么呢?操作系统是一个软件,处于计算机硬件和应用软件之间,向上为应用软件提供服务,向下操作计算机硬件。我们要明白,计算机存在的价值是因为我们需要使用它的硬件,所以你可以看到操作系统的存在是为了更方便地使用硬件。
三、操作系统设计原理主要涉及什么技术?
深入操作系统设计原理(一)(操作系统是什么(学习操作系统到底是学什么?))

文章图片
操作系统原理技术主要涉及:CPU管理,内存管理,终端管理,磁盘管理,文件管理,网络管理,电源管理,多核管理。本系列课程不包含网络管理,网络技术也是其中一个重要的内容,涉及的内容也非常多,已经在srcmini另外分出了一系列教程。
在学操作系统前,我们可以结合学过的技术对操作系统进行理解,例如内存管理,看看CPU是如何工作的,进程和线程究竟是个什么东西,学习操作系统的设计原理最好有一定的IT技术基础,否则学起来会觉得晦涩难懂,不知道学什么,因为从中会涉及到系统源码的阅读和修改,如果你有一定的技术经验那么掌握操作系统的原理,无疑让你锦上添花,不管是上层的应用开发,还是嵌入式开发。
【深入操作系统设计原理(一)(操作系统是什么(学习操作系统到底是学什么?))】不过,学习操作系统的目的并不是单单为了编程开发,它对整个IT开发都有作用,所以我们的目标主要是理解操作系统的设计原理,以及修改和扩展操作系统。

    推荐阅读