[Unix] 시스템 소프트웨어 개요 / 시스템 프로그래밍이란 무엇인가? (OS, System Call)

CS/System 2022. 11. 16. 22:54

* 본 글은 학부생의 입장에서 공부 내용을 정리하기 위해 작성되었습니다. 틀린 내용이 있으면 피드백 부탁드리며, 무분별한 비방 작성시 차단 될 수 있음을 알려드립니다. 안녕하세요 파일입니다. 이번에 UNIX 시스템 프로그래밍에 대해서 학습하게 됐는데 기억을 잊지 않고자 관련 내용을 정리하고자 합니다. 만약에 UNIX 기반 운영체제나, Linux 등을 잘 모른다면 해당 포스팅을 먼저 선행 학습하시고 해당 글을 읽는걸 추천드립니다. 기본적으로 전공자를 대상으로하며, 컴퓨팅 시스템의 대략적인 이해를 가지고 읽는걸 권장합니다. 우선 시스템 프로그래밍 (소프트웨어) 에 관한 내용을 알아보기 앞서 필요한 간단한 사전지식을 획득하고 넘어가 보겠습니다. 우리는 기본적으로 컴퓨터를 사용 시 HW를 직접 이용하진 않습니다..

Article Thumbnail
[Linux] 우분투 터미널 색깔 갑자기 날라갔을때 해결 방법

CS/Linux 2022. 11. 6. 22:37

제 바보같은 실수 이후로 우분투 접속시 bash 쉘의 이쁜 색깔들이 전부 날라갔습니다 (...) 시스템 프로그래밍 중에 실수로 "~" 라는 이름의 폴더를 생성하게 됬는데 이것을 삭제하기 위해 습관적으로 sudo rm -r ~ 명령어를 입력했고 다음 명령어는 현재 디렉토리의 ~ 라는 이름의 폴더가 아닌 홈 디렉토리의 모든 파일을 삭제하는 명령어 였습니다. 입력하고 아차 싶었더니 결론적으로 제 홈디렉토리에 있던 파일이 전부 삭제되었고... ㅠㅠ.. 저렇게 터미널의 색깔이 날라간 이유는 바로 홈디렉토리의 bash 쉘 설정값을 저장하는 .bashrc 파일이 삭제되어서 그렇습니다. 결국 .bashrc 파일을 복구하고 프로파일 설정값을 수정하면 되는데 아래 명령어 두줄만 입력하면 복구할 수 있습니다. cp /etc..

Article Thumbnail
[WSL2] network is unreachable 인터넷 안됨 해결하기 (sudo apt-get, wget 등등 안될때)

CS/Linux 2022. 10. 12. 03:29

느려터진 VMWare 를 사용하다가 이번에 처음으로 WSL2 + VSCode SSH 원격 실행을 통한 UNIX 시스템 프로그래밍 실습 환경을 도입했습니다. WSL2 설치 하는건 그렇게 어렵지 않았는데 설치하고 나니깐 인터넷이 안되는 문제가 발생합니다. sudo apt-get install 명령어는 고사하고 wget 명령어도 당연히 먹지 않습니다. 인터넷에 관련된 모든 명령어가 먹지 않더라구요? 처음엔 상당히 당황했는데 열심히 구글링한 결과 역시 어떤 선지자님이 솔루션을 제공하고 있었습니다. /etc/resolv.conf 간단하게 위 파일에 들어가서 WSL이 자동으로 설정하고 있는 DNS 서버 주소를 구글(8.8.8.8)이나 클라우드 플레어(1.1.1.1) 등의 것으로 바꿔주면 끝나는 것이였습니다. 기존에..

Article Thumbnail
[VMware] 가상머신 우분투 환경에서 복사-붙여넣기 쉽게 활성화 하기

CS/Linux 2022. 9. 8. 23:08

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와 ..

Article Thumbnail
[Linux] 학습 가이드 (입문 도우미) - 리눅스 OS는 어떻게 배워야 하는가?

CS/Linux 2022. 7. 18. 04:23

대학교에서 이전 학기에 리눅스 수업을 수강하게 됬는데 UNIX 계열 OS에 대해선 시놀로지 NAS로 잠깐 접해본게 다였습니다. 실습 과목이라 조교가 수업하게 됐는데 개떡같은 강의력 + PPT 읽기로 인해 수업 듣기는 포기하고 혼자 독학해서 꾸역 꾸역 A+을 맞았습니다. (독학하는게 그나마 제 특기여서 다행이지, 아마 같이 수강한 사람들 대부분은 PPT 통짜암기를 하거나 제대로 이해하는걸 포기 했을 겁니다. 말그대로 학비 낭비 그자체;;) 이 글은 컴공과 학생인데 대학교에서 리눅스를 처음 배운다던가, 아니면 리눅스에 대해 배워보고 싶으신 분들에게 학습 가이드를 드리는 글입니다. Guide 리눅스를 처음 배우시는 분들은 분명 리눅스라고 했는데 우분투도 있고, 데비안도 있고... 또 UNIX 시스템? MAC ..

Article Thumbnail
[Linux] VSCODE로 쉘 스크립트 프로그래밍 하기 (Window, Linux 무관)

CS/Linux 2022. 5. 19. 00:57

이번엔 특별히 프로젝트를 우분투에서 Bash와 쉘 스크립트를 이용해 진행하게 되었습니다. 가장 기본적인 방법으로는 *.sh 포맷으로 파일을 하나 만들어서 쉘 스크립트 문법으로 프로그래밍을 하면 됩니다. 그런데 우분투 안에서 VIM이라던가, Nano 같은걸로 프로그래밍을 하면 일단은 문법 오류 자체가 잡히지가 않아서 별로고.. 특히 띄어쓰기도 하나의 문법인 쉘 스크립트에선 이런 실수가 한번 들어가서 실행이 안되면 어디서 오류가 발생한건지 알 방법이 없어서 정말 골때릴때가 많습니다. 그리고 일반적으로 서버 컴퓨터 아니면 개인용 컴퓨터에서 윈도우 쓰지 게임도 안되는 리눅스를 컴퓨터에 깔아놓을일도 거의 없잖아요..? VMWare를 키고 그 느린 가상 환경에 들어가서 작은 터미널 하나 켜놓고 작업을 하려니 너무 ..

Article Thumbnail
[디지털 논리] 카르노맵을 통한 부울식 간소화(최적화, optimization)

CS/Digital Logic 2022. 5. 12. 18:37

* 본 글은 학부생의 눈높이에서 작성되었습니다. 잘못된 부분이 있을 수 있으며 발견시 댓글로 정정부탁드립니다. 또한 이유없는 비방은 삭제처리될 수 있으니 유의 바랍니다. What is K-maps? 오늘 알아볼 것은 카르노 맵입니다. 카르노 맵이란 한마디로 복잡한 부울식을 복잡한 식 계산 없이 그림으로 그려 쉽게 간소화 시켜주는 도구입니다. 여기서 간소화는 복잡한 식을 동일한 더 적은 글자수와 더 적은 항들로 나타낼 수 있다는 의미가 됩니다. 디지털 회로 설계를 할때 AND Gate, OR Gate 등 여러 Gate를 사용하게 되는데 이를 표현할때 위 사진과 같은 부울식을 사용하게 됩니다. 부울식을 통해 회로를 설계할것이기 때문에 부울식을 간소화하게 되면 동일한 기능을 하면서 더 적은 Gate, 간략화된..

Article Thumbnail
[디지털 논리] 마인크래프트에서 구현한 7 segment 출력 회로

CS/Digital Logic 2022. 5. 9. 01:57

여담 저는 잼민이 시절(초등학교 시절)에 마인크래프트란 게임을 알게 됬는데, 실제로 몇 달 전까지도 간간히 하던 제 인생게임중 하나 입니다. 이번에 전선과목으로 회로 설계에 대해 배우는 디지털 논리 회로 과목을 수강중인데 시험이 끝나고 여유가 생기니 갑자기 디지털 논리에서 배운 논리 회로가 실제로 마인크래프트에서도 구현이 가능한 사실이 번뜩 떠올랐습니다. 마인크래프트는 실제로 제공되는 레드스톤 도구를 이용해서 기본적인 논리 Gate인 AND, OR, Not 부터 시작해서 NOR, NAND, IMPLY 등 대부분의 Gate를 구현할 수 있습니다. (심지어 Clock Pulse도 생성 가능합니다.) 저는 이런 AND, OR, NOT 게이트를 초딩때 마인크래프트 회로 강좌에서 봤는데 사실 뭔지는 정확히 이해하..

Article Thumbnail