关于Linux和编程背景(第一、二章)
系统安全
-
CIA
- 机密性:不可见
- 完整性:不可改
- 可用性:可读
-
黄金法则
- 认证:你是谁?身份可认
- 授权:你干了什么?行为可信
- 审计:谁什么时候做了什么?可查
-
安全威胁
- 无知之错
- 无能之错
-
密码
- 国家密码管理局
- 标准化:密标委、全国信息安全标准化技术委员会
关于Linux和编程背景(第一、二章)
问题与解决思路(最有收获的内容)
-
这本书要解决什么问题?介绍了什么内容?
要搞清楚这个问题,就要对书本目录和导论进行系统梳理。
在关于编程的课上我们已经习得的有:基本语法、数据类型、简单的程序结构以及I/O库函数的使用。实际上,还需了解到软件工具、程序开发步骤和程序执行的运行时环境,书中对程序开发步骤有详细介绍。书中还探讨了动态数据结构的实际应用,进程的概念,并发编程,定时器和定时功能,进程间通信,文件系统,网络编程。
-
硬链接的实现?
读写时,inode(index node)索引节点,inode本质是一个结构体,存储着文件详细信息。
删除时,只是删除硬链接计数,当删到0时,再真正去删除inode。
-
关于openEuler几乎没有现成的教程?
虽然关于openEuler几乎没有现成的教程供参考学习,但常有一种观点称openEuler是centOS换了壳,足见两者间相似度较高。centOS的教程相对较成熟些,可供学习参考。
知识点归纳
-
清楚自己会的是什么,聚焦学习自己不会的东西,这是求知上进过程中最为基本的。
在课上我们所习得的有:基本语法、数据类型、简单的程序结构以及I/O库函数的使用。实际上,还需了解到软件工具、程序开发步骤和程序执行的运行时环境,书中对程序开发步骤有详细介绍。书中还探讨了动态数据结构的实际应用,进程的概念,并发编程,定时器和定时功能,进程间通信,文件系统,网络编程。
-
Linux的历史:Linux起源于Unix系统,是一个类Unix系统。
-
Linux采用二级启动。对于Ubuntu Linux,具有一些特性。
-
输入sudo command,完成口令验证,可以运行需要超级用户权限的命令
-
每次打开伪终端,sh都会先执行.bashrc文件来设置路径,以包含当前工作目录
-
在64位Linux下使用
gcc -m32 t.c # compile t.c into 32-bit code
可以产生32位代码
-
具有友好的GUI界面,不过sh要比其通用和强大得多
-
可连接到计算机网络
-
-
Linux文件系统采用树形组织结构。文件:所有能够存储或提供信息的事物。
- 该树型结构中,父节点也称作目录节点,其中可能包含其他目录和文件
- 树中的叶节点称作非目录文件,其中包括常规文件和特殊文件。
- 常规文件:要么包含普通文本,要么包含可执行的二进制代码。特别地,内容为其他文件的路径名的常规文件也称为符号链接文件。
- 特殊文件:是/dev目录中的条目。包括字符特殊文件(字符I/O),块特殊文件(块I/O),网络(套接字)特殊文件、命名管道等其他类型。
-
Linux系统管理。用户账户信息明态保存在/etc/passwd文件中。其中用户密码以密态保存在/etc/shadow文件中。
-
编程背景。
-
基于GUI的文本编辑器
书中介绍了vim,gedit,emacs。他们都支持直接输入、全屏模式下的文本编辑、关键词搜索替换。
其中,Emacs不仅是一款文本剪辑器,还提供了软件开发的IDE。
需要了解C语言中变量的分类。
-
程序开发的步骤和函数调用
-
创建源文件
-
用gcc把源文件转换成二进制可执行文件。gcc的转换包含三个步骤:编译,形成.s文件—汇编,形成.o文件—链接,将.o文件和必要的库函数组合成单一的二进制可执行文件a.out。
-
链接有两种。
静态链接:a.out文件完整、独立,但通常非常大
动态链接:共享库函数,减小每个a.out文件的大小
-
a.out文件包含文件头、代码段、数据段、符号表。
在执行过程中,堆栈大小通常是默认值,操作系统会试着处理运行期间可能出现的堆栈溢出。
程序的异常终止有错误导致的陷入、Ctrl+C产生的硬件中断、使用kill命令向通过pid识别的目标进程发送信号三种。
-
-
函数调用序列在堆栈中保持为一个链表。
-
-
emacs,makefile和gdb
makefile在简单应用上和sh命令的差别不大,但makefile的宏定义是较为特别的。makefile支持变量。
emacs通常通过makefile编译链接源代码。为了生成一个二进制可执行文件以便GDB进行调试,需要使用-g标记,否则GDB将无法调试生成的可执行文件。
程序开发的最佳方法是仔细设计程序的算法,然后根据算法编写程序代码,而不是依赖调试工具。这是因为在某些情况下,即便是GDB这样强大的调试工具用处也不大。
-
实践内容
-
openEuler的安装与使用
openEuler安装的大部分教程可参考:OpenEuler小白式安装教程
尤其需要注意,教程里没有的,在安装界面还需要配置的两个地方。
-
在软件选择中,选择最小安装后,还应该选择右侧的“标准、开发工具、系统工具”三项,方便进入终端之后,有一定的工具可以用
-
检查网络和主机名一项,看看网络是否连接,是否有IP地址,默认路由,和DNS,顺便改一下主机名;
-
这个截图一定要保留一下,如果后面网络出了问题,要用截图里的信息配置网络
关于网络果然出了问题
-
-
如果报Name or Service not known,请重点参考这篇博客
Centos7 ping不通baidu.com《亲测有效》,折磨两天
其中,
service network restart
这条命令是无法使用的,在openEuler里,应当使用
nmcli c reload
执行完之后,即可愉快ping通
-
openEuler的git安装与使用