Programming 68

리눅스의 프로세스와 쓰레드

아래 내용에서 잘못된 점은 꼭 알려주세요 [프로세스와 쓰레드] 먼저 프로세스와 쓰레드의 의미는 다음과 같습니다. 프로세스(Process)는 프로그램 하나가 실행될 때 쓰이는 단위입니다. OS로부터 메모리 공간을 할당받고, 스케쥴링 될 수 있습니다. 쓰레드(Thread)는 프로세스 안의 작은 작업 단위입니다. 따라서 프로세스는 작업을 위해 최소 하나 이상의 쓰레드가 있어야 합니다. 쓰레드는 여러개가 존재할 수 있고, 프로세스의 메모리 자원을 공유할 수 있으며, 때문에 하나의 자원에 여러 쓰레드가 달려들 때 일어날 수 있는 동기화 문제를 신경써야 합니다. 자기 자신만의 스택을 가질 수 있습니다. 다시 말해 프로세스는 그저 프로그램이 메모리에 로드되어 있고, 실행(스케쥴링)될 수 있다는 그 자체로 봅니다. 여..

Node.js 와 Android 사이 RSA, AES 암호화 예제

프로젝트를 하나 진행하는데.. 소켓 데이터 암호화가 필요한 시점이 왔었다. Node.js 에 npm 모듈로 socket.io 를 올린 서버와, socket.io 라이브러리를 사용하는 안드로이드 어플리케이션. 둘 사이에 JSON 데이터를 socket.io를 통해 주고 받는다. 이 데이터가 암호화되지 않은 평문이라면, 아마 와이어샤크 등으로 쉽게 모든 개인 정보가 보여졌을 것이다.처음엔 공개 키 암호화 방식으로 RSA 암호화만을 사용하려고 했었다. 아주 강력한 암호화 방식. RSA Key Pair(공개 키, 비밀 키 한 쌍)을 생성하고, 공개 키로 암호화한 건 비밀 키로만 복호화할 수 있는 방식이다. 하지만, RSA 암호화 방식은 적은 양의 데이터(평문 데이터 245byte 이하)만 암호화가 가능하다고 해,..

우분투 16.04 LTS 에서 이클립스 데스크탑 아이콘 먹통 고치기

안드로이드 악성코드 분석에 관심이 생겨 윈도에서 분석 해보다가,윈도에서 쓰이는 분석 툴(dex2jar, apktool, JD-GUI 등등)들이 전부 리눅스 환경에서도 이상없이 작동하는 것 뿐 아니라,어떤 툴 (droidbox)은 리눅스 환경에서만 작동한다는 걸 알고..기존에 사용 중인 우분투 16.04 LTS 로 이사했다 이번에 윈도우 10 1주년 업데이트(레드스톤 1) 에서 우분투 Bash 가 윈도우에 거의 네이티브하게 올라간다는 소식도 있지만,GUI 툴들은 아무래도 사용이 힘들 것이고.. 어차피 우분투 16.04 와 윈도 10을 듀얼부팅하고 있었으니 간단하게 이사를 했다 근데 소스 코드 분석을 위해 이클립스 네온을 설치했는데,얘를 실행시키려고 보니까 자동으로 생긴 Desktop entry 로는 죽어도..

Git 이란?

Git 은 소스 코드 관리 시스템 중 하나이다. 리눅스 토발즈가 포함된 개발 팀에서 리눅스 커널 개발 도중 더 나은 커널 개발 및 관리를 위해 만들어졌다. 분산 버전 관리 시스템(Distributed Version Control System, DVCS)이기도 하며, 이는 각 개발자가 중앙 서버에 접속하지 않고도 각자 코드 작업을 할 수 있다는 뜻이다. Git의 작업 폴더는 모두 전체 기록과 각 기록을 추적할 수 있는 정보를 포함하는 완전한 형태의 저장소(Repository)이다. 네트워크에 접속하거나, 중앙 서버에 의존하지 않는다. 이 말은 앞서 말한 분산 버전 관리 시스템이란 말과 같다. 즉, 각 개발자는 자신의 컴퓨터에 모든 파일을 다 받아서 작업을 진행한다. 만약 자신이 git에 올라온 리눅스 커널..

Programming/Git 2016.04.04

Node.js 와 npm 최신버전 설치 및 업데이트하기

170124 - 최신 버전으로 내용 업데이트 (Node.js v7.4.0, npm 4.0.5) 우분투 12.04 이상, 데비안 7 이상에서만 가능한 방법입니다.Node.js, npm 은 x86과 arm 시스템 모두 동일합니다. 오드로이드 XU4 등 arm 기반 보드에서도 아래 명령어를 통해 설치하시면 됩니다. 1. Node.js 최신버전 설치 curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash - sudo apt-get install -y nodejs Node.js 업데이트 sudo npm cache clean -f sudo npm install -g n sudo n stable 2. npm 최신버전 설치 sudo curl -L https://np..

올리디버거(OllyDBG) 1.10 기본 설정

올리디버거 사이트: http://www.ollydbg.de/올리디버거 단축키 모음 사이트: http://www.ollydbg.de/quickst.htmWin32 API 관련 Help File: https://tuts4you.com/download.php?view.258 올리디버거 압축을 푼 후Plugin과 UDD 폴더를 만든다. 그리고 BOOKMARK.DLL 과 Cmdline.dll 파일을 Plugin 폴더에 넣는다Win32 API 관련 Help 파일을 올리디버거의 디렉토리에 넣는다올리디버거를 실행해 Options - Appearance 에서 Directories 탭으로 간 후 UDD와 Plugin 폴더 설정Help - Select API help file 에서 다운받은 Help File 선택 올리디버거..

Ubuntu 에 Nginx, MariaDB 최신버전 설치하기

15.10 에서 확인됨 16.01.25 현재 Nginx 최신버전은 1.9.9 이고, MariaDB 최신 버전은 10.1.10 이다. Nginx - http://nginx.org/ MariaDB - https://downloads.mariadb.org/ 우분투 상에서 이들을 단순히 apt-get 으로 받으려면 좀 예전 버전이 받아진다. 따라서, 새로운 repository(저장소)를 추가해 최신 버전을 받을 수 있게 해야 한다 1) 먼저, /etc/apt/sources.list 에 해당하는 저장소들을 추가한다 물론 apt-get 을 만지는 거니까 root 권한이 있어야 한다 sudo vi /etc/apt/sources.list 후 맨 마지막 부분에 다음 스크립트 추가 # Nginx deb http://ngi..