Embedded : : Linux/: : Linux 13

Linux, 부팅, Swap, Dependency, Boosting

Linux, 부팅, swap, dependency, booting (tistory.com) Linux, 부팅, swap, dependency, bootingLinux 시스템이 너무 빨리 부팅되어 대부분의 출력이 너무 빨리 스크롤되어 콘솔로 전송된 텍스트(시작 중인 서비스 표시)를 읽을 수 없습니다. 따라서 부팅 문제/오류를 관찰하는 것은 우리에게flightsim.tistory.com     0.  Intro   Linux 시스템이 너무 빨리 부팅되어 대부분의 출력이 너무 빨리 스크롤되어 콘솔로 전송된 텍스트(시작 중인 서비스 표시) 를 읽을 수 없습니다. 따라서 부팅 문제 오류를 관찰하는 것은 우리에게 약간의 도전이 됩니다  이 기사에서는 Linux 시스템 부팅 프로세스의 여러 단계를 간략하게 설명한 다..

Partition 1 does not start on physical sector boundary.

노트북에서의 컴파일은 결국 한계를 느끼고,Main PC에 Ubuntu 20.04를 새로 설치하는 중 SSD에선 잘만 깔리더만PC Sub Hard drive는 파티션을 인식하지 못한다. Disk /dev/nvme0n1: 476.96 GiB, 512110190592 bytes, 1000215216 sectorsDisk model: Samsung SSD 970 PRO 512GB Units: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: gpt..

Linux - diff 명령어 사용법 (파일비교)

diff 명령어  : 리눅스에서 파일을 비교하는 명령어. file1과 file2를 비교하여 차이점을 찾아냄$diff [옵션] file1 file2   옵션  -b  : 연속된 공백 무시-i   : 대소문자를 구분하지 않음-t   : 출력 라인에 TAB 문자를 넣음-w  : 두 행의 비교 시 공백을 무시--brief : 파일 비교 후 결과 표시(같은지, 다른지)-d  : 세세한 차이까지 검색-H  : 큰 파일을 빠르게 처리할 때 사용-q  : 두 파일의 차이점만 출력-s   : 두 파일이 같은 지 확인-r   : 두 디렉토리의 차이점 출력-u  : undirectional new file 옵션으로 비교하는 파일/디렉토리가 빠져있을 경우 dummy로 처리해서 출력을 통일시킴-r   : recursive 하위..

리눅스 동적 정적 라이브러리

1.  동적 라이브러리   5.5.1  OCRAM protection 실행 시간에 라이브러리 파일을 찾아 코드를 포함하기 때문에 동적라이브러리라고 부릅니다.즉, 정적 라이브러리는 컴파일 시간에 코드를 결정하기 때문에 소스가 변경되면 새로 컴파일 해야하지만, 동적 라이브러리의 경우 라이브리만 교체하는 것으로도 변경이 가능합니다.$ gcc -c -fPIC test.c$ gcc -c app.c fPIC옵션은 Position-Independent Code의 약자이며 test.o파일을 동적라이브러리로 사용하도록 컴파일 하는 옵션입니다.이렇게 컴파일된 오브젝트 파일을 .so파일로 묶으면 됩니다.$ gcc -shared -fPIC -o libtest.so test.o컴파일은 아래와 같이 하면 됩니다.$ gcc -o ..

Linux C/C++ shared library 컴파일하기 fPIC 옵션 GOT, PLT

Linux C/C++ shared library 컴파일하기   C++   g++ -shared -fPIC -o g++ -shared fPIC -o lib.so code.cpp    C   gcc -shared [-fPIC] -o gcc -shared [-fPIC] -o lib.so code.c -fPIC 옵션은 생략이 가능하지만, 공유라이브러리를 만들 때는 -fPIC 옵션 사용을 권장합니다.(컴파일 종류에 따라서 -fPIC는 필수 옵션입니다.) fPIC를 사용하지 않을경우 재배치 기법을 사용하게 되는데,간략하게, 라이브러리의 주소를 현재 사용하려는 프로세스 주소에서 접근가능하게 재배치 한다는 개념입니다.    공유 라이브러리의 단점 1. 여러 프로세스가 공유라이브러리를 공유하게되면 각 프로세스가 로드 ..

리눅스(유닉스)의 파일 시스템

리눅스(유닉스)의  파일 시스템 살펴보고자 하는 파일시스템은 전통적인 유닉스의 파일시스템으로 리눅스에서도 이 파일시스템을 선택적으로 사용할 수 있다. 유닉스 시스템의 디스크를 논리적인 구조로 나타내면 아래 그림 과 같이 부트 블록, 수퍼 블록, inode 리스트 그리고 데이터 블록들로 나눌 수 있다.  - 부트 블록 : 운영체제를 주기억장치에 올리는 역할을 하는 프로그램이 들어 있는 영역으로, 윈도우의 부트 레코드와 유사하다.  - 수퍼 블록 : 디스크에 대한 다양한 정보를 저장하고 있는 곳으로, 전체 블록의 수, 블록의 크기, 사용 중인 블록의 수, 사용할 수 있는 블록의 번호, inode 리스트의 크기, 사용할 수 있는 inode의 번호 등의 정보를 저장한다.  - inode 리스트 :..

리눅스(Linux)의 디렉터리(Directory)

리눅스에서는 모든 것을 파일로 다룬다.  먼저, 데이터(ex. 문서, 이미지, 영상, 프로그램 등)들이 파일로 보존된다.또한, 리눅스에서는 디렉터리도 파일의 한 종류로 다루며, 심지어 시스템을 구성하는 장치들(ex. HDD, 키보드, 프린터 등) 조차도 파일로 취급한다.   리눅스에서의 파일 종류리눅스에서는 파일을 일반 파일과 특수 파일, 그리고 디렉터리로 구분한다.   일반 파일  텍스트파일, 실행 파일 등 텍스트나 바이너리 형태의 데이터를 저장하고 있는 파일   장치 파일  장치를 구동하는데 사용되며, 장치 관련 특수 파일을 다른 파일과 구분하여 장치 파일(device file)이라고도 한다. 디렉터리는 해당 디렉터리에 속한 파일을 관리하는 특별한 파일이다.    ..

유닉스(UNIX)와 리눅스(Linux)의 발전 과정

리눅스는 유닉스 표준에 기반하고 있으므로, 유닉스의 발전 과정과 관련 표준을 간략하게 살펴보자. 유닉스(UNIX)는 1969년에 미국의 통신 회사인 AT&T 산하의 벨 연구소에서 켄 톰슨(Ken Thompson)과 데니스 리치(Dennis Ritchie)가 개발한 운영체제이다. 처음엔 기존 운영체제처럼 어셈블리어로 개발하였으나, 데니스 리치가 개발한 C언어를 사용해 1973년에 다시 만들면서 고급 언어(High-Level Language)로 작성한 최초의 운영체제가 되었다. 유닉스는 초기에 소스 코드가 공개되어 대학교나 기업에서 쉽게 이용할 수 있었고, 이에 따라 다양한 기능이 추가되었다. 이 후에, AT&T의 상용 유닉스(시스템V)와 버클리 대학교(U.C.Berkeley)의 BSD(Berkele..

Raspberry Pi(라즈베리파이) IP 확인

라즈베리파이에서 직접 개발하기보다 개발환경에서 라즈베리파이를 연결할 때, IP를 확인해봅시다. 1. 라즈베리파이에 할당된 네트워크 정보 확인 - eth0 : 유선 네트워크 | wlan0 : 무선 네트워크 라즈베리파이 터미널에서 ip값 확인 pi@raspberrtpi:~ $ ifconfig 2. vi Editor를 이용하여 고정 IP로 변경 - 유동. IP환경이 불편하다면, 고정 IP로 바꿔보자 pi@raspberrtpi:~ $ sudo nano /etc/dhcpcd.conf 또는 pi@raspberrtpi:~ $ sudo vi /etc/dhcpcd.conf 입력 후, # Example static IP configuration: 부분에 주석 해제 후, 본인이 설정하고자 하는 고정 IP값 입력한다. 그 후..