임베디드 Linux 시스템이 uClinux를 실행하고 있는지 확인

임베디드 Linux 시스템이 uClinux를 실행하고 있는지 확인

커널 버전 2.4를 실행하는 ARM Linux 시스템이 있지만 프로세서에 메모리 관리 장치가 있는지 확실하지 않습니다. 그러면 시스템이 uClinux 커널을 실행하고 있는지 아니면 바닐라 Linux 커널을 실행하고 있는지 어떻게 알 수 있습니까? 시스템은 그렇지 않습니다 uname.

답변1

2.4가 지원한다고 생각합니다이름을 밝히다시스템 호출. 이 시도

/*
 * Author: NagaChaitanya Vellanki
 */
#include <sys/utsname.h>
#include <stdio.h>
#include <errno.h>

int main() {
  struct utsname buf;
  if(uname(&buf) != -1) {
    printf("Operating System name: %s\n", buf.sysname);
    printf("Node name: %s\n", buf.nodename);
    printf("Release: %s\n", buf.release);
    printf("Version: %s\n", buf.version);
    printf("Machine: %s\n", buf.machine);
  } else {
    printf("Error: %s\n", strerror(errno));
  }
  return 0;
}

엮다

  gcc -o uname uname.c

내 Raspberry Pi의 출력 예

./uname                                                                                                     
Operating System name: Linux
Node name: naga-playground
Release: 4.4.11-v7+
Version: #888 SMP Mon May 23 20:10:33 BST 2016
Machine: armv7l

매뉴얼 페이지에서 제안한 대로 사용 가능한 경우 다음을 시도하십시오.

cat /proc/sys/kernel/osrelease                                                                              
4.4.11-v7+

cat /proc/sys/kernel/ostype                                                                                 
Linux

cat /proc/sys/kernel/version                                                                                
#888 SMP Mon May 23 20:10:33 BST 2016

관련 정보