목록 Computer Science (90)
ctags / cscope - ctags와 cscope를 이용하여 코드를 분석하는 방법과 유용했던 팁을 정리하였다. ctags - tj 명령어 뒤에 원하는 태그 이름을 입력하는 것으로 해당 함수나 변수가 선언된 위치로 점프할 수 있다. :tj "tags" - 명령어를 이용하지 않고 원하는 함수나 변수 위에 커서를 두고 점프하고 이전으로 돌아갈 수 있다. ctrl + ] ctrl + t cscope - cs type option keyword로 실행한다. type은 add / find / help / kill / reset / show 가 있고, find(f)와 아래 옵션을 통해 키워드를 검색한다. cscope commands[f] g : find the definitions s : search this ..
ctags / cscope - 리눅스에서 길고 복잡한 코드를 다룰때 유용한 유틸리티 두가지. ctags - 소스 코드의 태그(변수, 함수, 매크로 등의 선언 부분)들의 데이터 베이스 파일을 생성해 인덱스를 만들어 주어, 코드 분석 시 탐색할 수 있도록 하는 유틸리티이다. sudo apt-get install ctags - tags 파일을 생성하여 소스 코드의 태그를 데이터 베이스로 관리할 수 있다. ctags "Filename" ctags -R - 위 두 명령어처럼 ctags 다음에 파일 이름을 명시하는 것으로 해당 파일만 tags 파일을 만들거나, 아래 ctags -R처럼 현재 디렉토리의 모든 파일/ 하위 디렉토리의 모든 파일을 대상으로 tags 파일을 만들 수 있다. - vi 에디터에 tags 파일 ..
Shell / Shell script / Terminal, Console Shell - Shell은 운영체제 개념을 공부하면서 정리하였다. 쉘은 커널을 감싸서 사용자의 명령을 해석하여 커널에 전달한다. 쉽게 쉘은 사용자와 커널 사이의 인터페이스가 되는 프로그램이다. 쉘과 커널로 분리되어 쉘만 교체한다면 사용자가 직접 커널을 사용하는 인터페이스를 쉽게 선택할 수 있도록 한다. echo $SHELL 위 명령어를 터미널에 입력하는 것으로 현재 사용 중인 shell을 확인 할 수 있다. Shell script - 간단한 shell script 예제를 만들고 실행시켰다. 사용한 shell은 bash 이다. vi로 script 파일을 작성한다. #!/bin/bash 스크립트 상단에 #!/bin/bash 를 추가하고..
ens33 setting - CentOS 7에서 네트워크 인터페이스(en33)을 설정. Contents - ping 8.8.8.8을 입력하여 네트워크 사용 가능 여부를 파악한다. 사용 불가일 경우 ip addr로 사용 가능한 네트워크를 확인한다. 2: ens33을 확인하고 맞다면 ifup ens33을 입력한다. (만일 아무 출력이 없을 경우 ifdown ens33을 입력 후 다시 ifup ens33을 입력) 다시 ping 8.8.8.8을 입력하여 네트워크 사용 여부를 확인하고 잘 작동한다면, vi로 /etc/sysconfig/network-scripts/ifcfg-ens33을 열어 맨 마지막 줄 ONBOOT의 "no"를 "yes"로 변경 후 저장한다.
vi visual editor - vi는 리눅스의 에디터이다. Command line mode / Insert mode / Edit mode로 세가지 모드로 작동한다. vi로 진입 / a,i로 insert mode 진입 / esc로 edit mode 진입 - 기본적인 vi 명령어 기록 Command line mode :q 종료 :q! 저장없이 강제 종료 :wq 저장 후 종료 Edit mode - 커서 이동 / 검색 h cursor to left l cursor to right ctr+f next page ctr+b prev page / search n next b prev pragragh - 삭제 및 변경 x 커서 위 문자 삭제 dw 커서 뒤 단어 삭제 dd 커서 라인 삭제 r 커서 위 문자 변경 - 복..
User system commands - 기본적인 리눅스 시스템 기본 명령어를 공부하였다. option - 명령어 뒤에 -x, --x 이 붙어 부가 옵션을 주는 것을 "옵션 또는 파라미터를 주다"라고 표현한다. manual - man + (command) 를 이용하여 명령어의 디테일한 도움말을 확인할 수 있다. manual page에서는 방향키로 라인을 넘길 수 있고, b와 space키로 페이지를 전환한다. /(something) 을 입력시 페이지 내에서 검색하고자 하는 something을 탐색할 수 있다. n을 이용하여 다음 단어로 넘긴다. q로 페이지를 종료한다. - option으로 명령어 뒤에 -h, --help를 입력하는 것으로 도움말을 얻을 수 있다. autolisting - 명령어 사용시 ta..
Linux - 리눅스를 공부해보고 싶어 우분투를 설치하였다. 아직 잘 모르지만 기본 시스템 사용, 시스템 관리, 네트워크 서버 구축, 보안/ 해킹을 공부해보고자 한다. Ubuntu - 우분투는 리눅스의 여러 배포판 중 현재 가장 인기있는 것으로 서버 / 데스크탑 두 버젼이 존재한다. - 우분투 데스크탑을 선택하여 18.04 LTS를 설치하였다. LTS는 long term support의 약자로 장기 지원 버전을 의미한다. Ubuntu Ref - 아래 책과 강의를 참고하였다. 리눅스의 모든 것 -서자룡 Linux & Unix shell programming - David tansley
Segmentation - 앞서 설명한 페이징 기법은 가상 메모리를 페이지, 즉 물리적인 블록 단위로 분할하여 프로세스의 측면에서 메모리를 관리하는 방식이다. 이번에 공부한 segment 역시 메모리를 더 효율적으로 관리하기 위한 기법 중 하나이다. segment - segment는 가상 메모리를 서로 다른 크기의 논리적인 영역으로 분할하고 메모리를 할당한다. 페이징 기법의 페이지 테이블 처럼 Segment table을 이용하여 사용자가 가상 메모리를 사용한 주소를 실제 주소에 맵핑하는 정보를 저장한다. Process segments - 프로그램이 메모리에 올라갈 때 세그먼트로 나눠지는 구성을 이야기한다. -Allocate in compile Code segment : 프로그램 코드 자체를 저장. Dat..