(1)现在的计算机都是冯诺依曼结构:计算机由控制器、运算器、存储器、输入设备、输出设备五部分组成。
(2)内核主要有以下五种功能:
①系统内存管理;
②软件程序管理;
③硬件管理;
④文件系统管理;
⑤网络管理;
其最终目的就是通过内核链接硬件跟软件,而linux将硬件设备分为三种:
①字符(键盘或者鼠标)
②2.块(硬盘)
③网络(网卡)
(3)常见的linux发行商:
RedHat,
SUSE(也就是Novell),
Mandriva,
Ubuntu
......
常见的linux发行版本:Debian,Gentoo,Ubuntu,Damn Vulnerable Linux, 红帽企业级Linux,CentOS,Fedora,Kali Linux,Arch Linux,OpenSuse
详细关系可以看这个博客:
https://blog.csdn.net/carolzhang8406/article/details/51322241
(4)常见开源协议:
GPL( GNU General Public License ){常用的协议就是GPL协议}
1、确保软件自始至终都以开放源代码形式发布,保护开发成果不被窃取用作商业发售。
2、无论软件以何种形式发布,都必须同时附上源代码。
3、开发或维护遵循 GPL 协议开发的软件的公司或个人,可以对使用者收取一定的服务费用。
4、可以去掉所有原作的版权 信息,只要你保持开源,并且随源代码、二进制版附上 GPL 的许可证就行,让后人可以很明确地得知此软件的授权信息
LGPL( GNU Lesser General Public License )GPL的一个为主要为类库使用设计的开源协议
BSD开源协议( original BSD license 、 FreeBSD license 、 Original BSD license )
如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
不可以用开源代码的作者/机构名字和原来产品的名字做市场推广
Apache Licence 2.0( Apache License, Version 2.0 、Apache License, Version 1.1、Apache License, Version 1.0)
需要给代码的用户一份Apache Licence
如果你修改了代码,需要再被修改的文件中说明。
在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改
(5)linux思想
1、一切皆文件:
把几乎所有资源统统抽象为文件形式:包括硬件设备,甚至通信接口等open(), read(), write(), close(), delete(), create()
2 由众多功能单的程序组成: 一个程序只做一件事, 并且做好;组合小程序完成复杂任务;
3 尽量避免跟用户交互:
目标易于以编程的方式实现自动化任务:
4、使用文本文件保存配置信息;
(6)FHS
/(根目录)
/bin:所有用户可用的基本命令程序文件
/sbin:供系统管理使用的工具程序
/boot:引导加载器必须用到各静态文件
/dev:存储特殊文件或设备文件
/etc:系统程序的配置文件,只能为静态
/home:普通的家目录的集中位置
/root:管理员的家目录
/lib:为系统启动或者根文件系统上的应用程序,提供共享库
/lib64:lib的64位版本
/media:便携式设备的挂载点
/mnt:其他文件的临时挂载点
/opt:附加应用程序的安装位置,可选路径
/srv:当前主机位服务提供的数据
/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录
/usr:全局共享的制度数据路径
bin,sbin
lib,lib64