• 20201320第一周学习笔记


    第一章 引言

    本章简单介绍了Unix的历史,包括贝尔实验室开发的Unix早期版本、AT&T System V以及Unix的其他版本,如BSD、HP UX、IBM AIX和Sun/SolarisUnix。此外,还介绍了Linux的开发及其各种发行版(包括Debian、 Ubuntu、 Mint、 RedHat和Slackware),列出了适用于Linux的各种硬件平台和虚拟机,并展示了如何将UbuntuLinux同时安装到Microsoft Windows中的VirtualBox虚拟机和VMware虚拟机上。

    系统编程

    系统编程是计算机科学和计算机工程教育不可或缺的一部分。计算机专业中的系统编程课程可以为学生打下扎实的专业基础,在操作系统、嵌入式系统、数据库系统、人工智能等方面有很重要的影响。

    • 1.1-1.11

    主要介绍了本书主要要介绍的内容,并介绍了Unix与Linux的相关内容与发展

    Unix 包含AT&T Unix、Berkeley Unix、HP Unix、IBM Unix、Sun Unix、Linux 包含Debian Linux、Ubuntu Linux、Linux Mint、基于RPM的Linux、Slackware Linux

    • 安装虚拟机

    image

    • 1.13使用Linux

    • linux内核映像

    Linux内核映像位于/boot目录中,一个可启动的Linux内核映像由三部分组成: |BOOT|SETUP|linux kernel|

    Linux的三个文件流:stdin、stdout和stderr
    • Linux启动

    加载BOOT+SETUP至实模式内存的0x90000处
    加载Linux内核至高端内存的1MB处

    • Unix/Linux文件系统组织
    Unix/Linux文件系统采用树形组织结构

    image

    • Unix/Linux命令
    • cd:更改目录
    • exit:退出
    • logout:注销
    • sudo apt install:安装应用程序
    • sudo:使用root权限执行
    • ls:lsdirname:列出CWD或目录的内容。
    • pwd:打印CWD的绝对路径名。
    • touch filename:更改文件名时间戳(如果文件不存在,则创建文件)。
    • cat filename:显示文件内容。
    • cp src dest:复制文件。
    • mv src dest:移动或重命名文件。
    • mkdir dirname:创建目录。
    • rmdir dirname:移除(空)目录。
    • rm filename:移除或删除文件。
    • find:搜素文件
    • grep:搜索文件中包含模式的行。
    • ssh:登录到远程主机
    • tar-zcvffile.tgz:从当前目录创建压缩tar文件。
    • tar-zxvffile.tgz:从tgz文件中解压文件。
    • man:显示在线手册页。
    • zip file.zip filenames:将文件压缩为.zip文件。
    • unzip file.zip:解压.zip文件。
    • history:查看历史命令。
    • !数字:执行第"数字"条命令。

    第二章 编程背景

    本章讲述了系统编程所需的背景信息;介绍了几种基于GUI的文本编辑器,比如vim、gedit和EMACS,可供读者编辑文件使用:展示了如何在命令和GUI模式下使用EMACS编辑器来编辑、编译和执行C语言程序;阐述了程序开发的步骤,这些编译链接步骤包括GCC、静态和动态链接、二进制可执行文件的格式和内容、程序执行和终止等;详细阐释了函数调用惯例和运行时堆栈的使用,包括参数传递、局部变量和栈帧。

    • Linux中的文本编辑器-
    https://blog.csdn.net/jisuanji198509/article/details/86690617/

    此网站包含具体的vim键位以及使用技巧等

    • 程序开发
    创建源文件>用gcc把源文件转换成二进制可执行文件>静态与动态链接库

    可执行文件格式

    二进制可执行平面文件
    a.out 可执行文件
    ELF可执行文件

    程序执行过程

    读取a.out文件头,以确定所需的总内存大小。
    sh从总大小中分配一个内存区给执行映像。
    sh放弃放弃旧映像,开始执行新映像。
    执行从crt0.o开始,调用main()。

    链接库

    链接库静态链接库和动态链接库。
    项目管理:
    头文件:/include *.h
    源文件:/src *.c
    库: /lib *.o
    二进制可执行: /bin *.out

    makefile

    makefile用来管理和编译项目。makefile是一个文件,在使用make命令时,会读取这个文件并对项目按照文件内容进行编译。make文件由一系列目标项、依赖项、规则组成。

    GDB调试工具

    GDB调试工具是一个交互式调试工具,可以调试用C、C++和其他几种语言编写的程序。
    GDB是一个功能强大的调试工具,使用非常简单,但应该注意,所有调试工具只能提供有限的帮助,在某些情况下用处不大,所以程序开发的最佳方法是仔细设计程序的算法,然后根据算法编写程序代码。

  • 相关阅读:
    hdu
    《Linux命令行与shell脚本编程大全》 第十四章 学习笔记
    zoj 3665 Yukari's Birthday(枚举+二分)
    ActiveMQ使用STOMP协议的一个错误问题:Unexpected ACK received for message-id
    Ubuntu下屏幕录像、后期处理不完全攻略
    find-all-numbers-disappeared-in-an-array
    find-right-interval
    non-overlapping-intervals
    cut命令如何截取以空格隔开的字段
    arranging-coins
  • 原文地址:https://www.cnblogs.com/sztsao/p/16652794.html
Copyright © 2020-2023  润新知