일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 리뷰
- arm
- 우분투
- ubuntu
- 안드로이드
- NC 다이노스
- 문파문파
- 프로야구
- 문파문파 공략
- Linux
- 디자인 패턴
- 타이젠
- 야구
- Tizen
- 데이터베이스
- 단통법
- 뉴스타파
- ubuntu 12.04
- 애플
- mysql
- 태그를 입력해 주세요.
- python
- 김경문
- NC다이노스
- 블로그
- 인공지능
- 손민한
- 조세피난처
- 국정원
- 해외직구
- Today
- Total
목록IT/Linux (34)
꿈꾸는 사람.
리눅스 디바이스 드라이버는 특정한 하드웨어나 장치를 구동하는 커널의 일부로 동작하는 프로그램이다. 리눅스에는 디바이스 드라이버들의 초기화 코드를 호출하는 최적화된 체계가 있다. 이번 글은 리눅스의 내장(built-in) 디바이스 드라이버의 초기화 호출 체계를 분석한다.1. 디바이스 드라이버 작성 디바이스 드라이버는 커널 공간에 적재될 때 장치를 제어하는 기능을 하며 이를 위해 다음 함수를 만들어야 한다.module_init(my_func_init); module_exit(my_func_exit); my_func_init가 커널이 부팅될 때 어떻게 불리는지 찾아보자. 2. 디바이스 드라이버 호출 과정.my_func_init이 호출되는 함수 호출 과정은 아래 그림과 같다. do_one_initcall 함수의..
리눅스로 개발하다 보면 커널을 새로 받아서 빌드해야 할 경우가 있다. 이 글은 리눅스 소스를 새로 받아 컴파일하는 방법을 설명한다. 1. 최신의 안정된 커널 또는 원하는 커널 받기. kernel.org에서 원하는 안정된 커널을 받는다.$ cd /usr/src/ $ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.6.tar.gz 2. 커널 소스 압축 해제.kernel.org에서 받은 커널을 컴파일하기 위해 압축을 해제한다..$ tar -xvJf linux-3.16.6.tar.gz 3. 커널 구성.리눅스 커널을 공용으로 사용하기 위해 가장 공통된 하드웨어를 지원한다. 이런 구성을 수행하는 명령은 아래와 같고 이런 구성 없이 기본 설정을 사용할 수도..
1. 우분투 14.04 설치 후 화면 해상도 문제 이전 글[Ubuntu 14.04 LTS 설치....]로 우분투 14.40 설치하였다.설치 후 화면이 4:3 비율에 640 크기로 고정되는 문제가 발생한다. 2. 해상도 문제 해결을 위해 게스트 확장 설치 이 문제는 virtualbox 게스트 확장이 설치하지 않았거나 정상적으로 설치되지 않았기 때문이다.아래 처럼 게스트 확장을 설치하자.1) 설치할 패키지의 최신 버전 정보를 갱신한다.$ sudo apt-get update 2) virtualbox 게스트 확장 패키지를 설치한다.- 상세 설치 명령. (필요한 패키지만 설치)$ sudo apt-get install virtualbox-guest-dkms virtualbox-guest-utils virtualbo..
우분투도 버전에 따라 지원되는 기간이 있다. 10.04에서 처음 만난 우분투가 벌써 14.04까지 나왔다. 이번 글은 14.04를 무료 가상화 시스템인 VirtualBox에 설치하는 것이다. 1. Ubuntu 설치 이미지 다운로드 우분투 설치 이미지는 www.ubuntu.com에서 받을 수 있다. 접속 후 Unbuntu Desktop를 선택한다. 물리적 시스템 종류에 따라 32비트 혹은 64비트(기본)를 선택한다. 다운로드를 선택하여 설치 이미지를 받는다. 2. 무료 가상화 시스템 VirtualBox에서 새로 만들기 선택 VirtualBox를 실행하고 아래처럼 "새로 만들기"를 선택한다. "가상 머신 만들기" 대화창이 나타나면 새로 만들 운영체제의 이름과 버전을 선택한다. 메모리 크기 설정. 물리 시스템..
tomcat는 apache tomcat의 줄임말로 오픈소스 웹 서버와 서블릿 컨테이너이다. opengrok은 웹 브라우저 상 소스 검색을 할 수 있어 tomcat으로 서버를 운영하고 소스를 연결하면 클라이언트에서 이 서버를 통해 소스 검색을 할 수 있다. 1. tomcat 설치. tomcat7과 tomcat7-admin 두 개의 패키지를 설치한다. 설치하는 방법은 apt-get 명령을 사용하는 것과 사이트에서 binary 파일을 받아 압축을 풀고 설치하는 것이 있다. 이 글에서는 apt-get를 이용하여 설치한다. $ sudo apt-get install tomcat7 tomcat7-admin 2. tomcat 서버에 로그인 적용. tomcat-users.xml 파일을 수정하여 로그인 기능을 적용한다. ..
소스 검색을 위해 cscope, ctag를 사용하였으나 속도가 느린 문제가 있어 빠른 도구를 찾고 있었다. opengrok이란 것이 보다 빠르게 소스 검색을 지원하여 이를 설치하려 한다. java와 tomcat이 필수로 설치되어야 한다. 이번 글은 최신 java를 설치하는 것이다. 이전 java 1.7.0_45 설치와 삭제는 다음 링크를 참고하면 된다. [관련 링크: [JAVA] ubuntu 12.04에서 jdk1.7.0_45 설치, 삭제.] 1. Java SE Development Kit 8 다운로드 JDK8을 다운로드할 url로 [Java SE]를 선택한다. Java SE 8u11 버전 다운로드를 선택한다. 라이센스에 동의하면 다운로드 화면으로 갱신된다. 2. Java SE Development Ki..
리눅스는 PID (process id)로 process name을 찾는 API를 제공하지 않는다. 실행 중인 프로세스의 이름을 알 수 있는 명령어는 다음 명령으로 확인할 수 있다.1. pid로 process name 찾는 명령. $ ps -p 10 -o comm= rcu_sched $ ps -p 1 -o comm= init PID로 process name만 출력하는 명령이다. $ ps -p 10 -o comm= $ cat /proc/1/cmdline /sbin/init $ cat /proc/10/cmdline $ /proc 파일 시스템을 이용하여 프로세스 이름을 찾을 수 있다. 2. pid로 process name 찾는 getpname.c 프로그램 프로그램에서 프로세스 이름을 찾는 방법은 /proc/$P..
우분투를 사용하다 패스워드를 잊어버렸을 경우가 있다. 우분투 시스템을 힘들게 설치했는데 막상 사용하려니 패스워드가 생각나지 않을 때도 있다. 또는 가상 머신으로 여러 우분투를 사용하다 보니 패스워드가 맞지 않기도 한다. 가장 위험한 것은 많은 데이터를 가진 우분투를 설치한 컴퓨터의 패스워드를 잊어 버렸을 때다. 자, 우분투의 패스워드를 잊어버렸을 경우 초기화 하는 방법을 알아보자. 우분투 패스워드 초기화 방법. 요약. 1. 재 부팅하여 GRUB 부트 로더의 복구 모드(recovery mode)를 선택한다. 2. 복구 모드에서 root 항목을 선택한다. 3. 읽기 전용으로 설정된 파일 시스템을 '읽기쓰기' 상태로 전환한다. 4. 루트 계정의 패스워드를 초기화한다. 1. GRUB 부트 로더의 복구 모드 진입..
우분투 사용 중 System setting이 사라졌다. 아마도 여러 패키지 설치와 삭제를 하다 실수로 제거한 모양이다. 다시 System setting을 설치하는 방법을 간단히 알아보자.1. System settings 재설치 명령. $ sudo apt-get install --reinstall ubuntu-desktop 1 간단히 재 설치하고 런처에서 System Settings를 실행할 수 있다.
부트로더에서 커널이 로드되고 arch/arm/head.S/stext가 실행된다. stext에서 start_kernel를 호출하기까지 수행하는 작업을 이번 글에서 다루기로 한다. stext에서 start_kernel() 호출하는 개요. 커널이 시작할 진입점이 stext 레이블이다. stext 레이블이 실행될 때 요구되는 사항은 다음과 같다.MMU = off,D-cache = offr0 = 0r1 = machine numberr2 = atags pointer 1. IRQ를 비활성화하고 SVC mode로 설정한다. 2. coprocessor에서 프로세스 ID를 읽어 온다. 3. __lookup_processor_type 레이블에서 프로세서 정보를 찾아낸다. 4. __lookup_machine_type 레이블에..