분류 전체보기 138

서버와 클라이언트

클라이언트는 요청을 보내는 주체로 - 웹브라우저 - 모바일 앱 서버는 네트워크를 통해 클라이언트에 정보 혹은 서비스를 제공하는 컴퓨터 - 웹페이지, 웹사잍, 앱 등을 저장한 컴퓨터 웹 프로그래밍이란, HTTP 프로토콜로 통신하는 클라이언트와 서버를 개발하는 것 HTTP 요청 - Method 1. Get : Server로 부터 data를 받을 때 사용한다. 2. Post : Server로 요청을 수행하거나, file 을 송부할 때 사용한다.

web_fullstack 2022.08.20

netplan 고정 IP 설정시, 서브넷 마스크 작성법

snetmask 255.255.255.0 게 어떻게 24가 되는가? netmask 를 모두 2진수로 변경한 다음 , 왼쪽에서 부터 1이 모두 몇개인지 쓴다. 예) 255.255.255.0 = 11111111.11111111.11111111.00000000 = 8 + 8 + 8 + 0 = 24 255.255.254.0 = 11111111.11111111.11111110.0 = 8+8+7+0 = 23 ## 참조 ## netplan 설정하는 방법: https://blog.dalso.org/article/ubuntu-20-04-lts-nework Ubuntu 20.04 LTS 네트워크 연결하기.(고정IP 할당) - 달소씨의 하루 Connection failed Activation of network connec..

Linux_system 2022.08.19

User ID/Group ID

ls -l 로 출력 되는 항목을 보면 , 다음과 같이 카테고리를 나눌 수 있다. ben@ben-ubuntu-server:~/share/apue_github/apue/ben$ ls -l total 180 -rw-rw-r-- 1 ben ben 21 Jun 15 08:14 data -rwxrwxr-x 1 ben ben 17632 Jun 17 02:26 fig1_3 -rw-rw-r-- 1 ben ben 397 Jun 15 07:21 fig1_3.c 1) 파일 유형. '-' 는 일반파일, 'd'는 디렉토리, 'b' 는 블록 디바이스, 'c'는 문자 디바이스, 'I'는 링크를 뜻한다. 2) 허가권 'r' 은 read able , 'w' 는 write able , 'x' sms execute able 이다. 3자리씩..

Linux_system 2022.08.19

apue.3e 컴파일 하기

Advanced Programming in the UNIX Environment Thrd Edition 의 예제를 compile 하려면 다음과 같이 하면 된다. Source code download : https://github.com/vdpa4me/apue.git vdpa4me/apue Example of Advanced Programming in the UNIX Environment - vdpa4me/apue github.com /apue/apue.3e/lib 로 이동한다. Makefile 을 editor 로 열어서, 아래 부분을 수정한다. PLATFORM=$(shell $(ROOT)/systype.sh) 부분을 PLATFORM=linux 로 변경한다. (systype.sh 실행시 permission..

Linux_system 2022.08.19

Linux , caller (호출자) 가 누구인지 아는 방법

어떤 함수 a() 가 다양한 프로세스에 의에 빈번하게 호출 된다면, log 로 남길 때, 누가 본인을 호출 했는지 확인 하고자 하는 경우가 있다. 실험 환경은 Ubuntu Linux 5.3.1 계열의 x86_64 아키텍쳐 이다. backtrac 를 사용하는 예) #include #include #include #include int nptrs; void *buffer[BT_BUF_SIZE]; char **strings; nptrs = backtrace(buffer, BT_BUF_SIZE); rintf("backtrace() returned %d addresses\n", nptrs); strings = backtrace_symbols(buffer, nptrs); if (strings == NULL) { p..

Linux_system 2022.08.19

Linux 가상 메모리의 응용 #1 - file map

가상 메모리의 응용 파일 맵(file map) 일반적으로 프로세스가 파일에 접근할 때는 파일을 연 뒤에 'read()', 'write()', 'lseek()' 등의 시스템 콜을 사용한다. 뿐만 아니라 Linux에는 파일의 영역을 가상 주소 공간에 메모리 매핑하는 기능이 있다. mmap() 함수를 특정한 방법으로 호출하면 , 파일의 내용을 메모리에 읽어 들여 그 영역을 가상 주소 공간에 매핑할 수 있다. testfile 은 "hello" 라는 text를 담고 있는 file 이다. 다음 코드를 작성하고 실행하면 , 아래와 같이 file을 읽어 들이고 mmap() 함수를 통해 file mapping 을 하면, 파일의 내용을 메모리에 읽어 들여 그 영역을 가상 주소 공간에 매핑 할 수 있다. int fd; fd..

Linux_system 2022.08.19

Linux Memory 관리

>free free명령어 사용으로, 시스템의 총 메모리의 양과 , 사용 중인 메모리의 양을 알 수 있다. 모든 단위는 KB 임 total : 시스템에 탑재된 전체 메모리 용량임. 위 예시에서는 16GB 임 free : 표기상 이용하지 않는 메모리 buff/cache : 버퍼 캐시 또는 페이지 캐시가 이용하는 메모리. 시스템의 빈 메모리 (free) 가 부족하면 커널이 해제함 available : 실질적으로 사용 가능한 메모리. free 필드값의 메모리가 부족하면 해제되는 커널 내의 메모리 영역 사이즈를 더한 값이다. 해제될 수 있는 메모리에는 버퍼 캐시나 페이지 캐시의 대부분 혹은 다른 커널 내의 메모리 일부가 포함된다. >sar -r 1 1초 단위로 메모리에 관련된 통계 정보를 얻을 수 있다. free..

Linux_system 2022.08.19