42Seoul
-
[born2beroot] 리눅스(Debian) 시스템/서버 관련 개념42Seoul 2022. 10. 1. 23:52
본 과제에서는 리눅스 시스템 및 서버 관리에 대해 배우는 것이 학습 목표이다. Debian vs CenOS Debian 자유 소프트웨어 지원하는 아키텍쳐 다양 서버, 임베디드, 모바일, .... 모든 것을 타겟으로 함 업데이트 주기가 잦음 더 좋은 소프트웨어 지향하기 때문 패키지 관리가 편리 CentOS 상업용 소프트웨어 아키텍쳐로 x86-64 밖에 지원하지 않음 타겟 제한 업데이트 주기가 김 상업용 OS이기 때문 > 안정성 중요 Dist signature 디스크가 가지는 다른 디스크와 중복되지 않는 고유한 ID 운영체제와 특정 프로그램은 이를 통해 각각의 디스크 판별 .vdi file virtual disk image file VirtualBox 전용 디스크 이미지 포맷 Virtual Machine 물..
-
[Born2BeRoot] VDI, VHD, VMDK 포맷의 차이점, 디스크 이미지 파일42Seoul 2022. 9. 20. 10:15
VDI (Virtual Disk Image) VirtualBox에서만 구동 가능한 포맷 VHD (Virtual Hard Disk) VirtualBox, Hyper-V, Xen에서 구동 가능한 포맷 VMDK(Virtual Machine Disk) VirtualBox, VMware Player에서 구동 가능한 포맷 Disk Image File CD-ROM과 같은 광디스크, 플로피 디스크 혹은 HDD의 정보를 변환하여 만든 파일 본래 CD-ROM의 읽기 속도가 너무 느려서 이를 하드디스크에 카피하여 더 빠르게 실행하기 위해 개발됨 [꺼무위키]
-
[Born2BeRoot] 가상머신(Virtual Machine)42Seoul 2022. 9. 19. 16:13
가상머신이란? - 실제 하드웨어와 직접적 통신이 없는 가상 컴퓨터 - 컴퓨팅 환경을 소프트웨어로 구현한 것 - 물리적 컴퓨터 처럼 app과 OS 실행 - 그러나 가상머신은 물리적 컴퓨터에서 실행되는 파일 본 과제에서는 BirtualBox를 택하여 진행하였다. https://ko.wikipedia.org/wiki/%EB%B2%84%EC%B6%94%EC%96%BC%EB%B0%95%EC%8A%A4 버추얼박스 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 버추얼박스(영어: VirtualBox)는 본래 이노테크(InnoTek)가 개발한 뒤, 현재는 오라클이 개발 중인 상용, 사유 소프트웨어(제한된 GPL 버전)로, 리눅스, macOS, 솔라리스, ko.wikipedia.org
-
[42Seoul] ft_printf 구현의 이론적 배경42Seoul 2022. 8. 2. 00:06
printf의 기능을 카피한 함수를 만드는 과제이다. 이 과제의 주안점은 가변인자함수(variadic fuction)에 대한 이해이다. 가변인자함수란 함수가 받는 인자의 수가 정해져 있지 않은 함수를 말하며, 대표적으로 printf, scanf 가 있다. 가변인자함수는 고정인자, 가변인자로 이루어진다. 고정인자는 반드시 존재해야 하는데, 그 이유는 이 고정인자를 기준으로 가변인자가 배치되기 때문이다. 함수가 받은 인자들은 바이트패딩(byte padding)되어 가변인자 목록에 담긴다. 바이트패딩은 다음을 말한다. CPU는 레지스터의 사이즈 만큼 씩 데이터를 읽는데, CPU가 메모리에 접근을 최소화 할 수 있도록 레지스터의 사이즈에 맞추어 데이터를 배치시키는 것이다. 이에 따라 메모리의 낭비가 발생하나, ..
-
[42Seoul] ft_printf : va_arg(), 바이트패딩에 대한 약간의 고찰42Seoul 2022. 7. 30. 21:43
본 과제에서 익혀야 할 부분은 가변인자함수의 사용이다. 핵심은 stdargs.h 의 매크로함수들이 어떻게 동작하는 것인지 이해하는 것이라고 생각했다. mandatory만 구현하니까 생각보다 금방 했다. 라피신 때 만든 함수들을 활용하니 순식간에 완성했다. 이해가 어려웠던 부분은 매크로함수 중 하나인 va_arg()의 작동 방식이었다. 이 과제에 대해 적은 다른 블로그와 이 매크로 함수에 대한 글들을 찾아봤는데, 다소 두루뭉실하게 설명이 되어 있어 이해가 어려웠다. 특히, 바이트패딩이 왜 들어가야 하는지는 알겠는데, 그걸 누가 해 주는 것인지는 찾을 수 없었다. stdarg.h 의 매크로 함수가 해 주는 것인가? 사용자가 va_arg()에 입력한 타입에 따라 일어나게 되는 것인가? 그렇다고 보기에는, va..
-
[get_next_line] 배경지식(정적변수, 파일디스크립터)42Seoul 2022. 7. 14. 15:26
정적변수(static variable) 선언 방법은 앞에 static 이라는 수식어를 붙이면 된다. static int Number1; int main() { static int Number2; ... } 특징은 다음과 같다. 초기화하지 않아도 자동으로 0으로 초기화 프로그램이 시작될 때 할당, 끝날 때 파괴 > 함수 내에서 값 변화시키고 함수 종료 되어도 값 변화 X 전역으로 선언 시 소스파일 내 모든 함수에서 사용 가능(해당 소스파일 안에서만 사용 가능하니 정보은닉효과) 함수 내부에 선언 시(내부정적변수) 다른 함수에서는 참조 불가, 그러나 함수 시작이 아닌 프로그램 시작 시 할당되므로 함수 여러번 실행되어도 내부정적변수의 초기화는 한 번만 매개변수로 사용할 수 없음 이러한 특징은 정적변수는 메모리의..