Linux 2.4.x IA-32初始化详解

需积分: 10 1 下载量 30 浏览量 更新于2024-08-01 收藏 248KB PDF 举报
"本文档详细介绍了Linux 2.4.x版本在IA-32架构上的初始化过程,包括早期设置、架构特定的初始化和独立于架构的初始化等关键步骤。" 在Linux操作系统中,启动过程是整个系统运行的基础,对于IA-32架构的Linux 2.4.x版本来说,这个过程尤为重要。以下是主要的知识点: 1. **概述** - 文档提供了对Linux 2.4.x在IA-32架构上启动过程的深入理解,涵盖了从内核加载到初始化完成的各个阶段。 2. **Linux初始化(ASCII艺术)** - 这部分可能包含了用ASCII字符表示的初始化流程图,帮助开发者可视化启动过程中涉及的各个组件和步骤。 3. **Linux早期设置** - IA-32内核设置:在启动过程中,内核会进行一系列的初始化操作,如设置段寄存器、视频配置等。 - 视频设置:确保系统的显示功能能够正常工作。 4. **Linux架构特定初始化** - `startup_32`:这是IA-32架构特有的初始化函数,它负责执行特定于32位环境的初始化任务。 - 设置段寄存器:初始化阶段,为了保证内存访问的正确性,需要将段寄存器设置为已知值。 - SMP BSP检查:在多处理器系统中,Bootstrap Processor(BSP)初始化其他处理器。 - 初始化页表:创建并加载页表,以实现地址转换。 - 启动分页:启用硬件分页机制,实现虚拟地址到物理地址的映射。 - 清除BSS:BSS段通常包含未初始化的全局变量,启动时会被清零。 - 32位设置:针对32位环境进行必要的配置。 - 移动引导参数和命令行:将这些信息移出初始化路径,以释放内存。 - 检查CPU类型:识别处理器型号,以提供最佳性能和兼容性。 - 计算此处理器:计数系统中的处理器数量。 - 加载描述符表指针寄存器:配置GDT和IDT(全局/中断描述符表)。 - 启动其他处理器:在SMP系统中,BSP启动剩余的处理器。 5. **Linux架构独立初始化** - `start_kernel`:这是内核初始化的主要入口点,执行许多通用的初始化任务。 - `setup_arch`:根据目标体系结构进行配置,如设备驱动、内存布局等。 - `init_thread`:初始化第一个用户空间线程。 - `do_basic_setup`:在初始化线程中执行基础设置,包括系统时钟、网络、设备驱动等。 6. **词汇表** - 提供了文档中使用的专业术语和缩写的解释,有助于理解内容。 7. **参考** - 列出了相关参考资料,可能包括内核源代码、文档和其他技术资料。 此文档对理解和开发针对IA-32架构的Linux 2.4.x内核有极大帮助,尤其对那些希望深入了解内核初始化过程的开发者来说,是宝贵的资源。

``` getenforce#查看SELinux 安全机制 setenforce 0#将 SELinux 的执行模式从强制模式(Enforcing)切换为宽松模式(Permissive) cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.old.service sed -i -e 's/^Type=.*/Type=simple/g' -e '/ExecStart=/{s/\/usr\/sbin\/sshd/\/usr\/local\/sbin\/sshd/g}' /usr/lib/systemd/system/sshd.service#将文件中以"Type="开头的行替换为"Type=simple";包含"ExecStart="的行中,将"/usr/sbin/sshd"替换为"/usr/local/sbin/sshd" sed -i "s/GSSAPIAuthentication/#GSSAPIAuthentication/" /etc/ssh/sshd_config#将/etc/ssh/sshd_config文件中的"GSSAPIAuthentication"替换为"#GSSAPIAuthentication" sed -i "s/GSSAPICleanupCredentials/#GSSAPICleanupCredentials/" /etc/ssh/sshd_config sed -i "s/#PermitRootLogin yes/PermitRootLogin yes/" /etc/ssh/sshd_config sed -i "s/#UsePAM yes/UsePAM yes/" /etc/ssh/sshd_config chmod 600 /etc/ssh/ssh_host_rsa_key chmod 600 /etc/ssh/ssh_host_ecdsa_key chmod 600 /etc/ssh/ssh_host_ed25519_key mv /usr/local/sbin/sshd /usr/local/sbin/sshd.old202211 mv /lib64/libcrypto.so.1.1 /lib64/libcrypto.so.1.1.old202211 mv /srv/libcrypto.so.1.1 /lib64/ mv /srv/sshd /usr/local/sbin/ chmod 755 /usr/local/sbin/sshd chmod 755 /lib64/libcrypto.so.1.1 systemctl daemon-reload systemctl restart sshd.service source /etc/profile sshd -V useradd secure echo 'Ofm#6%3%fm0IWH'|passwd --stdin secure echo "secure ALL=(ALL) ALL" >> /etc/sudoers sed -i "s/PermitRootLogin yes/PermitRootLogin no/" /etc/ssh/sshd_config service sshd restart systemctl daemon-reload systemctl restart sshd.service sed -i "s/secure ALL=(ALL) ALL/secure ALL=(ALL) NOPASSWD: ALL/" /etc/sudoers chage -M 99999 secure sleep 2 useradd aqassoc echo 'dAxgDt^7LT' | passwd --stdin aqassoc mkdir /batshell chown -R aqassoc:aqassoc /batshell echo 'aqassoc ALL=(ALL) NOPASSWD:ALL,!/bin/su,!/sbin/init,!/sbin/shutdown,!/sbin/halt,!/sbin/reboot,!/usr/sbin/visudo,!/usr/bin/passwd' >> /etc/sudoers sh /srv/script.sh sleep 2 tar -xvf /srv/ssl-1.1.1o* -C /srv/ mv /usr/bin/openssl /usr/bin/openssl.old mv /usr/include/openssl /usr/include/openssl.old cp /etc/ld.so.conf /etc/ld.so.conf.old ln -s /srv/ssl-1.1.1o/bin/openssl /usr/bin/openssl ln -s /srv/ssl-1.1.1o/include/openssl /usr/include/openssl srvlib=`cat /etc/ld.so.conf | grep '/srv/ssl-1.1.1o/lib/' | wc -l` if [ $srvlib -eq 0 ];then sed -i 's/\/srv/#\/srv/'g /etc/ld.so.conf echo '/srv/ssl-1.1.1o/lib/' >> /etc/ld.so.conf else echo 'ssl-1.1.1n is ok!' fi ldconfig -v |grep ssl openssl version rm -rf /srv/root_password.sh rm -rf /srv/ssl-1.1.1o_7.tar.gz curl --connect-timeout 10 -# http://133.64.86.246/iso/shell/initialization.sh -o /tmp/initialization.sh # 只有两个参数 dcn/dmz netbond/netskip baseline/baseskip sh /tmp/initialization.sh dcn netbond/netskip baseline/baseskip ```

2023-07-14 上传