CS/System
[시스템 소프트웨어] 쓰레드(Thread)를 알아보자!! - 시스템의 핵심
* 본 글은 학부생의 입장에서 공부 내용을 정리하기 위해 작성되었습니다. 틀린 내용이 있으면 피드백 부탁드리며, 무분별한 비방 작성시 차단 될 수 있음을 알려드립니다. 글을 읽기 전 알아야 하는 내용 - 컴퓨터 구조 - 프로세스의 개념 : 현재 프로세스에 관련한 글은 작성하지 않아서 프로세스 관련 정보는 인터넷 찾아보시면 됩니다. - 프로세스 메모리 구조 안녕하세요 파일입니다. 오늘은 시스템 소프트웨어에서 가장 중요한 부분 중 하나인 쓰레드(Thread) 의 개념에 대해 알아보겠습니다. 읽기 전 주의 - 최대한 쉽게 설명하도록 글을 작성했으나 전공자의 눈높이에서 작성했으므로 컴퓨팅 관련 지식이 없으시면 읽기 조금 불편할 수 있습니다. 프로세스를 이용한 웹 서버 설계 현재 자신이 어떤 홈페이지의 관리자인데..
CS/System
[시스템 소프트웨어] 스택 프레임(Stack Frame) 이란 무엇인가? : 어셈블리 명령어로 알아보자
* 본 글은 학부생의 입장에서 공부 내용을 정리하기 위해 작성되었습니다. 틀린 내용이 있으면 피드백 부탁드리며, 무분별한 비방 작성시 차단 될 수 있음을 알려드립니다. 안녕하세요 파일입니다. 오늘은 컴퓨터에서 함수 호출 시 사용하는 개념인 스택 프레임(Stack Frame)에 대해 알아보겠습니다. 또한 스택 프레임 자체가 컴퓨터가 함수를 다루는 일종의 근간적 방법(?) 이므로 CPU에게 직접 명령을 내릴 수 있는 언어인 어셈블리어를 통하여 스택 프레임을 다루는 것을 보여드릴 겁니다. 물론 어셈블리어를 모르고 스택 프레임을 이해할 수 있긴한데 그러면 겉핥기식 이해 밖에 안되므로 어셈블리어 공부를 어느정도 하시고 이 글을 읽는걸 추천드립니다. 스택 프레임에 대한 간단한 설명들은 인터넷에도 많이 나와있으므로 ..
CS/System
[시스템 소프트웨어] 어셈블리어 개요 / 어셈블리어(Assembly)란?
* 본 글은 학부생의 입장에서 공부 내용을 정리하기 위해 작성되었습니다. 틀린 내용이 있으면 피드백 부탁드리며, 무분별한 비방 작성시 차단 될 수 있음을 알려드립니다. 이 글을 읽기 전에 알고 있으면 좋은 내용 - 디지털 논리(디지털 논리 회로) - 컴퓨팅 구조 - C/C++ 및 프로그래밍 언어에 대한 지식 안녕하세요 파일입니다. 프로그래밍을 한 번이라도 해보신 분들은 "어셈블리어" 에 대해 한 번 쯤은 들어보셨을 겁니다. 오늘은 이 어셈블리어가 뭔지 간략하게 알아봅시다. 우선 본 글은 인텔 32비트 컴퓨터를 기준으로 설명합니다. 보통 32비트 프로그램은 x86, 64비트 프로그램은 x64(또는 x86-64) 라는 이름으로 부릅니다. 즉, x86이 어쩌고 하면 32비트 컴퓨터에 대한 이야기를 하는것이다 ..
CS/System
[Unix] 시스템 소프트웨어 개요 / 시스템 프로그래밍이란 무엇인가? (OS, System Call)
* 본 글은 학부생의 입장에서 공부 내용을 정리하기 위해 작성되었습니다. 틀린 내용이 있으면 피드백 부탁드리며, 무분별한 비방 작성시 차단 될 수 있음을 알려드립니다. 안녕하세요 파일입니다. 이번에 UNIX 시스템 프로그래밍에 대해서 학습하게 됐는데 기억을 잊지 않고자 관련 내용을 정리하고자 합니다. 만약에 UNIX 기반 운영체제나, Linux 등을 잘 모른다면 해당 포스팅을 먼저 선행 학습하시고 해당 글을 읽는걸 추천드립니다. 기본적으로 전공자를 대상으로하며, 컴퓨팅 시스템의 대략적인 이해를 가지고 읽는걸 권장합니다. 우선 시스템 프로그래밍 (소프트웨어) 에 관한 내용을 알아보기 앞서 필요한 간단한 사전지식을 획득하고 넘어가 보겠습니다. 우리는 기본적으로 컴퓨터를 사용 시 HW를 직접 이용하진 않습니다..
CS/Linux
[Linux] 우분투 터미널 색깔 갑자기 날라갔을때 해결 방법
제 바보같은 실수 이후로 우분투 접속시 bash 쉘의 이쁜 색깔들이 전부 날라갔습니다 (...) 시스템 프로그래밍 중에 실수로 "~" 라는 이름의 폴더를 생성하게 됬는데 이것을 삭제하기 위해 습관적으로 sudo rm -r ~ 명령어를 입력했고 다음 명령어는 현재 디렉토리의 ~ 라는 이름의 폴더가 아닌 홈 디렉토리의 모든 파일을 삭제하는 명령어 였습니다. 입력하고 아차 싶었더니 결론적으로 제 홈디렉토리에 있던 파일이 전부 삭제되었고... ㅠㅠ.. 저렇게 터미널의 색깔이 날라간 이유는 바로 홈디렉토리의 bash 쉘 설정값을 저장하는 .bashrc 파일이 삭제되어서 그렇습니다. 결국 .bashrc 파일을 복구하고 프로파일 설정값을 수정하면 되는데 아래 명령어 두줄만 입력하면 복구할 수 있습니다. cp /etc..
CS/Linux
[WSL2] network is unreachable 인터넷 안됨 해결하기 (sudo apt-get, wget 등등 안될때)
느려터진 VMWare 를 사용하다가 이번에 처음으로 WSL2 + VSCode SSH 원격 실행을 통한 UNIX 시스템 프로그래밍 실습 환경을 도입했습니다. WSL2 설치 하는건 그렇게 어렵지 않았는데 설치하고 나니깐 인터넷이 안되는 문제가 발생합니다. sudo apt-get install 명령어는 고사하고 wget 명령어도 당연히 먹지 않습니다. 인터넷에 관련된 모든 명령어가 먹지 않더라구요? 처음엔 상당히 당황했는데 열심히 구글링한 결과 역시 어떤 선지자님이 솔루션을 제공하고 있었습니다. /etc/resolv.conf 간단하게 위 파일에 들어가서 WSL이 자동으로 설정하고 있는 DNS 서버 주소를 구글(8.8.8.8)이나 클라우드 플레어(1.1.1.1) 등의 것으로 바꿔주면 끝나는 것이였습니다. 기존에..
CS/Linux
[VMware] 가상머신 우분투 환경에서 복사-붙여넣기 쉽게 활성화 하기
VMware Workstation 16 Pro 버전을 사용중인데 사용중인 우분투 가상 환경과 Host PC의 윈도우 환경에서 복사 - 붙여넣기가 제대로 작동하지 않았습니다. 이를 해결하기 위해 여러 방법을 찾아보았는데 우분투를 가상머신으로 돌릴때 Ctrl C + V 를 가장 쉽게 사용할 수 있는 방법을 소개해드리겠습니다. 아래 있는 2가지 스탭만 진행하면 끝입니다. 1. 패키지 설치 2. 공유 폴더 설정 작동을 확인해본 환경 - Ubuntu 20.04.4_64bit(GUI) , Ubuntu 18.04_64bit(GUI) sudo apt-get update sudo apt-get install open-vm-tools-desktop 우선 해당 명령어를 입력해서 vm-tools 를 설치해서 Host PC와 ..
CS/Linux
[Linux] 학습 가이드 (입문 도우미) - 리눅스 OS는 어떻게 배워야 하는가?
대학교에서 이전 학기에 리눅스 수업을 수강하게 됬는데 UNIX 계열 OS에 대해선 시놀로지 NAS로 잠깐 접해본게 다였습니다. 실습 과목이라 조교가 수업하게 됐는데 개떡같은 강의력 + PPT 읽기로 인해 수업 듣기는 포기하고 혼자 독학해서 꾸역 꾸역 A+을 맞았습니다. (독학하는게 그나마 제 특기여서 다행이지, 아마 같이 수강한 사람들 대부분은 PPT 통짜암기를 하거나 제대로 이해하는걸 포기 했을 겁니다. 말그대로 학비 낭비 그자체;;) 이 글은 컴공과 학생인데 대학교에서 리눅스를 처음 배운다던가, 아니면 리눅스에 대해 배워보고 싶으신 분들에게 학습 가이드를 드리는 글입니다. Guide 리눅스를 처음 배우시는 분들은 분명 리눅스라고 했는데 우분투도 있고, 데비안도 있고... 또 UNIX 시스템? MAC ..
이모티콘창 닫기
울음
안녕
감사
당황
춤
피폐