网站开发综合实训,软件工程专业学什么,设计类网站app,建协企业是什么公司Linux系统启动过程#xff1a; BIOS自检并加载引导程序。引导程序#xff08;如GRUB#xff09;加载Linux内核到内存。内核初始化硬件#xff0c;加载驱动#xff0c;建立内存管理。加载init进程#xff08;PID为1#xff09;#xff0c;通常是systemd或SysVinit。init…
Linux系统启动过程 BIOS自检并加载引导程序。引导程序如GRUB加载Linux内核到内存。内核初始化硬件加载驱动建立内存管理。加载init进程PID为1通常是systemd或SysVinit。init进程启动其他系统服务和守护进程。加载登录shell用户登录系统就绪。NAND Flash和NOR Flash的区别及坏块自检 NAND Flash写入和擦除速度快容量大但需要专门的读取和写入接口。自检坏块通常通过厂家提供的特定命令或机制完成。NOR Flash可以像内存一样直接寻址但写入和擦除速度较慢。坏块检测通常在出厂时完成使用时会避开这些坏块。线程和进程的差别 进程是资源分配的基本单位拥有独立的地址空间。线程是CPU调度的基本单位共享进程的资源如地址空间。线程间通信更快但同步和互斥更复杂进程间通信相对较慢但隔离性更好。进程间通信方法 包括管道、消息队列、共享内存、信号量、套接字等。评价不同方法各有优缺点需根据应用需求选择。多路IO中select的实现方法和评价 select通过监视文件描述符集合来实现多路IO。评价select在文件描述符较多时性能下降因为需要遍历整个集合。epoll与select的差别和评价 epoll使用事件驱动机制只需关注活跃的文件描述符。评价epoll在大量文件描述符时性能优于select但实现更复杂。Makefile编写 定义变量、目标、依赖关系和规则。使用命令来编译、链接源文件。可以包含条件判断、循环等控制结构。gcc编译过程 预处理处理#include和宏定义。编译将预处理后的文件转换成汇编代码。汇编将汇编代码转换成机器代码。链接将多个目标文件和其他库文件链接成可执行文件。gdb调试方法 设置断点、单步执行、查看变量值、调用栈等。使用gdb的命令行接口进行调试。trace跟踪 使用如strace、ltrace等工具进行系统调用或库函数调用的跟踪。跟踪可以帮助定位性能瓶颈或错误。TCP和UDP差别 TCP面向连接可靠传输有流量控制和拥塞控制适合大数据量传输。UDP无连接不可靠传输开销小适合实时性要求高的应用。TCP的三挥手和四次挥手 三挥手是建立连接的过程SYN-SYNACK-ACK。四次挥手是断开连接的过程FIN-ACK-FIN-ACK。项目开发中的困难及解决方法 困难可能包括代码调试、性能优化、团队协作等。解决方法包括使用调试工具、性能分析工具加强团队沟通和协作等。解决Linux系统开发中的段错误 使用gdb进行调试查看崩溃时的堆栈信息。检查指针操作是否正确是否访问了未初始化的指针或越界访问。使用编译器的内存检查选项如gcc的-g -o0和-fsanitizeaddress。