linux查看内核版本、系统版本、系统位数(32or64)

本文介绍了如何在Linux服务器上查看内核版本和系统版本的多种方法,包括使用`cat /proc/version`、`uname -a`、`lsb_release -a`、`cat /etc/issue`和`cat /etc/redhat-release`等命令,以及通过`rpm -q redhat-release`获取版本号的相关信息。同时,还提供了判断系统是64位还是32位的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址:http://apps.hi.baidu.com/share/detail/6363027

1. 查看内核版本命令:

1) [root@q1test01 ~]# cat /proc/version
   Linux version 2.6.9-22.ELsmp (bhcompile@crowe.devel.redhat.com) (gcc version 3.4.4 20050721

3.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 2005

2) [root@q1test01 ~]# uname -a
   Linux q1test01 2.6.9-22.ELsmp #1 SMP Mon Sep 19 18:00:54 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux

3) [root@q1test01 ~]# uname -r
   2.6.9-22.ELsmp

2. 查看linux版本:

1) 登录到服务器执行 lsb_release -a ,即可列出所有版本信息,例如:

   [root@3.5.5Biz-46 ~]# [root@q1test01 ~]# lsb_release -a
   LSB Version:    :core-3.0-amd64:core-3.0-ia32:core-3.0-noarch:graphics-3.0-amd64:graphics-3.0-

   ia32:graphics-3.0-noarch
   Distributor ID: RedHatEnterpriseAS
   Description:    Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
   Release:        4
   Codename:       NahantUpdate2
   注:这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。


2) 登录到linux执行cat /etc/issue,例如如下:

   [root@q1test01 ~]# cat /etc/issue
   Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
   Kernel \r on an \m

3) 登录到linux执行cat /etc/redhat-release ,例如如下:

   [root@q1test01 ~]# cat /etc/redhat-release
   Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
   注:这种方式下可以直接看到具体的版本号,比如 AS4 Update 1

4) 登录到linux执行rpm -q redhat-release ,例如如下:

   [root@q1test01 ~]# rpm -q redhat-release
   redhat-release-4AS-3
   注:这种方式下可看到一个所谓的release号,比如上边的例子是3
   这个release号和实际的版本之间存在一定的对应关系,如下:
   redhat-release-3AS-1 -> Redhat Enterprise Linux AS 3
   redhat-release-3AS-7.4 -> Redhat Enterprise Linux AS 3 Update 4
   redhat-release-4AS-2 -> Redhat Enterprise Linux AS 4
   redhat-release-4AS-2.4 -> Redhat Enterprise Linux AS 4 Update 1
   redhat-release-4AS-3 -> Redhat Enterprise Linux AS 4 Update 2
   redhat-release-4AS-4.1 -> Redhat Enterprise Linux AS 4 Update 3
   redhat-release-4AS-5.5 -> Redhat Enterprise Linux AS 4 Update 4
   另:第3)、4)两种方法只对Redhat Linux有效.


查看系统是64位还是32位:

1、getconf LONG_BIT or getconf WORD_BIT

2、file /bin/ls

3、lsb_release -a

### RK3588 实时内核串口编程概述 在嵌入式开发中,串口通信是一种常见的外设接口技术。对于基于 RK3588 的实时内核环境下的串口编程,通常涉及以下几个方面: #### 1. 配置串口设备 在 Linux 系统下,串口设备一般通过 `/dev/ttyS*` 或 `/dev/ttyUSB*` 进行访问。为了实现串口通信功能,需要先确认目标硬件对应的串口号及其配置参数。 ```bash ls /dev/tty* ``` 上述命令可以列出当前系统中的可用串口设备[^1]。 #### 2. 打开初始化串口 打开串口文件描述符后,需设置波特率、数据位数、停止位等基本参数。以下是 C 语言的一个简单示例代码片段用于初始化串口: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> /* File Control Definitions */ #include <errno.h> /* Error Number Definitions */ #include <termios.h> /* POSIX Terminal Control Definitions */ int setup_serial_port(const char *device, speed_t baud_rate) { int fd; struct termios options; // Open the serial port device. fd = open(device, O_RDWR | O_NOCTTY); if (fd == -1) { perror("open() failed"); return -1; } // Get current attributes of the port. tcgetattr(fd, &options); // Set input/output baud rate to desired value. cfsetispeed(&options, baud_rate); cfsetospeed(&options, baud_rate); // Configure other settings such as data bits, parity, stop bits etc. options.c_cflag &= ~PARENB; // No Parity bit options.c_cflag &= ~CSTOPB; // One Stop Bit options.c_cflag &= ~CSIZE; // Clear size mask options.c_cflag |= CS8; // Select 8 Data Bits // Enable receiver and set local mode. options.c_cflag |= (CLOCAL | CREAD); // Apply new configuration immediately without waiting for pending I/O operations. tcsetattr(fd, TCSANOW, &options); return fd; } ``` 此函数实现了对指定串口设备的基本配置操作[^2]。 #### 3. 数据读写处理 完成串口初始化之后,可以通过 `read()` 和 `write()` 函数分别执行数据接收与发送任务。下面展示了一个简单的循环过程来持续监听来自外部的数据输入情况: ```c void read_from_serial(int fd) { unsigned char buffer[256]; ssize_t bytes_read; while ((bytes_read = read(fd, buffer, sizeof(buffer))) > 0) { printf("Received %zd byte(s): ", bytes_read); fwrite(buffer, 1, bytes_read, stdout); putchar('\n'); } } // Example usage within main function or another thread context... if (serial_fd >= 0) { write(serial_fd, "Hello Serial Port!", strlen("Hello Serial Port!")); read_from_serial(serial_fd); } else { fprintf(stderr, "Failed to initialize serial communication.\n"); } ``` 以上部分展示了如何利用标准库 API 来管理实际的 IO 流程[^3]。 #### 4. 关闭资源释放 当不再需要使用某个特定端口时,请记得调用 close 方法关闭关联句柄以避免潜在泄漏风险: ```c close(serial_fd); ``` 这一步骤非常重要,在任何异常退出场景下都应妥善安排清理逻辑[^4]。 --- ### 注意事项 - **权限控制**: 访问某些特殊类型的字符型设备可能要求超级用户身份或者适当调整 SELinux 策略。 - **中断机制**: 如果希望获得更高效的响应速度,则考虑引入信号量或者其他同步原语配合异步通知模式工作。 - **错误检测**: 对于生产环境中部署的应用而言,完善的健壮性和容错设计必不可少。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值