분류 전체보기 268

Arm, 퀄컴에 칩 설계 라이선스 중단 통보…갈등 고조 [이데일리]

퀄컴, Arm 표준 기반 칩 설계 어려워져안드로이드폰 칩 판매 중단하거나 손해배상 청구 직면2022년 퀄컴 누비아 인수 이후 분쟁 이어가 [이데일리 양지윤 기자] 반도체 설계 원천 기술을 보유한 암(Arm)이 핵심 고객사인 퀄컴에 지적 재산 제공에 대한 계약 해지를 통보했다. 오랜 시간 유지했던 동맹의 균열로 정보통신(IT) 기기 시장은 물론 두 회사 모두 혼란에 빠뜨릴 것이라는 우려가 나온다.  23일(현지시간) 블룸버그통신에 따르면 영국 Arm은 퀄컴에 칩 설계 라이선스 계약을 취소한다고 통보했다.   퀄컴은 그간 Arm이 소유한 표준을 기반으로 자체 칩을 만들 수 있었으나 계약 파기가 시행되는 60일 이후부터는 칩 설계 라이선스를 이용할 수 없게 된다.   퀄컴은 안드로이드 스마트폰용 프로세서에 A..

커널 빌드 / 설치

1.  raspbian .config   1.1  make menuconfig커널 빌드시 각종 옵션을 지정할 수 있다. 이전엔 모두 pass하고 빌드해본 것. 디바이스 드라이버 개발시 체크 설정/해제하면서 테스트하며 개발    1.2  kernelsource/out/.config​ .config (bcm2712_defconfig) General SetupIRQ subsystemTimers subsystemBPF subsystemCPU/Task time and stats accountingRCU Subsystem 등 make Manuconfig 설정에서 본 내용들이 저장됨.     2.  Kernel Build / Install   2.1  Build Script를 이용하여 리눅스 커널 빌드​./build..

리눅스가 널리 채택된 요인들

0.  Intro   리눅스가 널리 보급된 이유는 뭘까? 그리고, 왜 TV처럼 단순한 것이 리눅스와 같은 것을 실행해야 할까?   TV는 이제 옛날의 아날로그 TV처럼 영상만 보여주지 않는다. Video Stream은 디지털이고, 암호화가 가능하며, 인터넷에 연결되어 스마트폰, 태블릿, 홈미디어 서버로부터 콘텐츠를 받을 수 있다.   대부분의 임베디드 디바이스의 심장부에는 하나 이상의 프로세서 코어를 포함하고 주메모리, 대량 저장공간, 여러 종류의 주변 기기와 연결되는 고도로 집적된 SoC가 있어 TV로 게임을 할 수 있는 등 활용의 폭이 넓다.   이정도로 복잡함을 다루려면 제대로 된 운영체제가 필요하다.    1.  리눅스가 널리 채택된 요인들    1.  리눅스는 필요한 기능을 갖고있다.  좋은 스..

Embedded : : Linux 2024.10.13

[shell script] "$*" 과 "$@"의 차이

흔히 $*와 $@를 구분 없이 많이 사용하고 있는데, 사실 약간은 다르다. 레퍼런스에 보면 아래와 같이 정의되어 있다."$*" All the positional parameters (as a single word) *"$@" All the positional parameters (as separate strings)무슨 뜻이냐면, $*는 모든 parameter를 하나의 단어로 취급한다는 의미고, $@는 별도의 문자로 취급한다는 의미다. (응?) 다시말해, $*는 입력되는 모든 parameter를 한개의 단어로 취급한다는 뜻. $@는 공백으로 구분된 별도의 문자열로 취급한다는 의미다. 아래와 같은 스크립트 코드가 있다.#!/bin/shecho "================="echo "\$@ sectio..

QEMU-KVM 기반의 안드로이드 x86 가상머신 생성(with SPICE)

안녕하세요. 이번 포스팅에서는 QEMU-KVM 기반의 안드로이드 x86 가상머신을 생성하고 SPICE 클라이언트를 통해 외부에서 GUI 기반으로 가상머신에 접속이 가능하도록 진행해보고자 합니다. 먼저 안드로이드 x86은 기존의 ARM 기반으로 많이 사용되던 안드로이드를 Intel 기반으로 포팅한 버전으로 프로젝트 명이기도 합니다. CPU 칩 자체가 틀리기 때문에 호환이 안되던 안드로이드를 Intel에서도 올릴 수 있도록 하였습니다. 따라서 이번 포스팅에서는 Ubuntu 환경에서 QEMU-KVM을 통해 가상머신을 생성하고 SPICE 서버를 통해 외부에서 가상머신을 원격 GUI 환경으로 사용할 수 있도록 하겠습니다.    1.  QEMU-KVM 기반의 안드로이드 x86 가상머신 생성(with SPICE)  ..

태스크 디스크립터: 프로세스 간 관계

1.  태스크 디스크립터: 프로세스 사이간의 관계   1.1  프로세스의 부모-자식 관계​유저 공간에서 생성한 모든 프로세스의 부모 프로세스는 init 이고 커널 공간에서 생성한 커널 스레드(프로세스)의 부모 프로세스는 kthreadd라고 했습니다. 태스크 디스크립터에서는 프로세스의 부모와 자식 관계를 상세히 알 수 있습니다. struct task_struct  *real_parent; 프로세스를 생성한 부모 프로세스의 태스크 디스크립터 주소를 저장합니다. struct task_struct *parent; 부모 프로세스를 의미합니다. real_parent 란 멤버는 해당 프로세스를 생성해준 프로세스를 의미합니다. 그런데 자식 프로세스 입장에서 부모 프로세스가 소멸된 경우 부모 프로세스를 다른 프로세스로 ..

커널 스레드

1.  커널 스레드   1.1  커널 스레드란?​커널 프로세스는 커널 공간에서만 실행하는 프로세스를 의미하며 대부분 커널 스레드 형태로 구동합니다. 커널 스레드는 리눅스 시스템 프로그래밍에서 데몬과 비슷한 일을 합니다. 데몬과 커널 스레드는 백그라운드 작업으로 실행하면서 시스템 메모리나 전원을 제어하는 역할을 수행합니다.  커널 스레드는 커널 내부에서 백그라운드로 구동하면서 커널 시스템에 도움을 주는 역할을 수행합니다. 데몬과 커널 스레드의 차이점은 보통 유저 영역와 시스템 콜을 받지 않고 동작한다는 점입니다. 리눅스 커널 개발자나 드라이버 개발자가 구현하는 경우가 많습니다.   커널 스레드의 3가지 특징    1. 커널 공간에서만 실행하며 유저 공간과 상호작용을 하지 않는다.    2. 실행, 휴면 등..

do_fork() 함수, 그리고 5.x 이후

1.  Intro    1.1  do_fork() 함수 소개​  리눅스에서 구동 중인 모든 프로세스는 _do_fork() 함수가 실행할 때 생성됩니다(kernel version 4.x까지). 프로세스는 누가 생성할까요? 리눅스 시스템에서 프로세스 생성을 전담하는 프로세스가 있습니다. 주인공은 init과 kthreadd 프로세스입니다.   유저레벨프로세스는 init 프로세스, 커널 레벨 프로세스(커널 스레드)는 kthreadd 프로세스가 생성합니다. 그런데 프로세스는 생성이 아니라 복제된다고 말할 수 있습니다.     1.2  프로세스 생성      "그러면 프로세스를 생성할 때 부모 프로세스를 복제하는 이유는 무엇일까?"    프로세스를 생성할 때 프로세스에게 필요한 리소스를 각각 할당 받으면 시간이 오..

커널과 모듈의 개념

커널(kernel)과 모듈(Module)을 간단히 파악해보면 커널이란? 커널이란 운영체제(Operating System)에서 가장 핵심적인 역할인 자원 (메모리, 프로세서등)을 관리하며 시스템이 원활히 돌아갈 수 있도록 제어해 준다. 현재 우리가 리눅스(OS)라고 하는것도 실제적으론 리눅스란 운영체제의 커널 이름을 말하는것인데 이것이 확장된 의미로 사용되어 현재의 '리눅스'란 OS를 지칭하게도 된것이다. 그러므로 Linux = kernel이란 등식이 성립한다. 초창기의 커널은 지원할 하드웨어가 그리 많지 않아서 커널에 하드웨어를 지원하는 코드를 모두 넣어 뒀다. 이후 운영체제가 무거워 지자 하드웨어를 제어하는 코드 중에서 필요할 때만 가끔식 사용하는 코드를 커널에 넣지 않고 별도로 보관했다가 필요할때 호..