우분투를 키면 DHCP 공유기로 자동으로 연결된 상태
ISP에서 인터넷 공인IP를 1개만 받아 공유해주는 기능을 하는 것이 공유기
무선으로 ip 할당하기 위해 허브/AP모드 사용
apt : 패키지를 관리해주는 서버
모든 패키지가 있는 것은 아니고 기본적인 것들이 들어있다.
root 권한이 있어야 한다
sudo : root 관리자 권한으로 하겠다는 뜻
sudo apt update를 통해 업데이트를 한 뒤!
그리고 고정 IP를 할당하기 위해 settings에 들어간다
IP : 10.10.15.61
리눅스 고정 ip는 10.10.15.81이다
세팅에서
톱니바퀴를 누르고
로 설정해준다
네트워크 : 외부와 연결을 하기 위한 프로토콜
모든 네트워크와 연결된 장치는 고유 주소를 통해 호스트가 될 수 있다 -> IP adress
서브넷마스크 : 255.255.255.0 -> C class (A : 255.0.0.0 / B : 255.255.0.0)
게이트웨이 : 10.10.15.254
255 = 11111111(2)
IP Address : 10.10.15.99인 경우(C class)
네트워크 주소(서브넷 마스크가 1들로(255) 이루어진 곳) / 호스트 주소 = 10.10.15 / 99
0번 / 255번 : 브로드캐스팅 주소 / Gateway 3개를 제외한 나머지는 사용 가능하다
포트 : 호스트 내에서 어떤 프로세스하고 연결할 것인지 결정
IP 주소는 4바이트
포트 번호는 16비트
DNS URL을 이용해서 네트워크 확인 가능
완료 후 on 시키고 ifconfig 하면
이렇게 뜬다
ssh 서버 설치를 위해
sudo apt update
sudo apt install openssh-server
를 입력한다
-> 우분투가 서버, 윈도우가 클라이언트 역할을 하게 됨
-> 윈도우즈에서는 putty(리눅스 원격 접속)를 설치해야한다
압축을 푼다
이 파일을 바탕화면에 두고
더블클릭해서 암호키 신뢰하면
이렇게 뜬다
id ubuntu / pw ubuntu 입력하면
이렇게 접속된다
samba : windows <-> linux 네트워크 공유 시스템
NFS(network file system)
삼바 설치를 위해
sudo apt install samba -y
sudo mkdir /srv/samba
sudo chmod 777 /srv/samba
디렉터리 읽기는 안의 목록을 읽을 권한
쓰기는 만드는 권한
실행은 디렉터리 진입 권한
sudo vi /etc/samba/smb.conf
맨 아래에
[samba]
comment = shared folder
path = /srv/samba
browseable = yes
writable = yes
valid users = ubuntu
public = yes
추가한다
윈도우즈 탐색기 실행창에서
\10.10.15.81
삼바서버 접속 가능!!
imager를 통해 실행하고
설정에서 비밀번호는 raspberry
나머지는 동일하게 설정해준다
라즈베리파이 putty 연결하기 위해 고정 ip를 받았다 - 기존 10.10.15.81 > 10.10.15.221
접속하기 전에 connection 해주고
pi / raspberry 로 접속한다
VNC, putty 모두 실행된 상태
현재 tiger VNC인데 REALVNC도 가능
윈도우 ip에 100을 더한 161번이 라즈베리파이 고정 ip이다
save 해도 안바뀌므로 다음 내용을 입력하고
변경된 것을 알 수 있다
id/pw remind / 주소
윈도우즈 : / 10.10.15.61
라즈베리파이 : pi/raspberry / 10.10.15.161
우분투20.04 : ubuntu/ubuntu / 10.10.15.81
네이티브 환경 : 자신의 컴퓨터에서 개발, 실행, 디버그 할 수 있는 것
교차 개발 환경 : 개발환경과 실행환경이 다름
윈도우에서 했던 것처럼 samba 서버를 다운한다
WinSCP에서 설정 후 접속이 가능하다
vi로 main.c를 만든 뒤
위와같이 만들고 명령어로 gcc main.c -o main을 하면 main 파일이 생성되고, 다시 명령어로 ./main을 입력하면 출력된다
gcc는 컴파일을 하는 것, ./를 통해 실행
릴리즈모드로 파일 크기를 줄일 수 있다
스택에 4바이트 데이터가 D0~D31까지 databus로 1:1 연결되어있다
주소 4개는 4바이트
little endian 은 LSB는 차이가 거의 없지만 MSB는 많이 바뀐다
long i = 0x12345678이라고 하면
little endian 방식으로 하면
stack |
---|
78 |
56 |
34 |
12 |
메모리에 저장하는 순서가
0 1 2 3 4...
78 56 34 12 로 저장된다
네트워크 프로토콜은 통일된 Little endian으로 된다
삼바로 직접 파일을 복사해서 옮겨도 되지만 불편하니까 명령을 통해 전송하려 한다
pi->ubuntu로 파일을 전송할 때는 위와 같이 명령하면 가지만, arm(라즈베리파이)과 x86(우분투)에서 쓰는 기계어가 다르기 때문에 직접 gcc로 컴파일을 다시 해줘야 실행이 가능하다
그 작업을 대신 하기 위해 설치하고
우분투에서 arm용으로 컴파일해서 보내면
바로 실행이 가능하다
이것이 바로 교차 개발 환경이다
그런데 이거마저 불편하면 "NFS"를 이용해서 더 편하게 할 수 있다
samba는 윈도우-리눅스였다면, NFS는 리눅스-리눅스 공유이다
NFS로 연결하면 다른 사람의 우분투와 나의 우분투를 공유할 수 있게 된다
위에 만든 nfs폴더와 연결한다
직접 개발환경에서 만들면 실행환경에서 확인할 수 있다.
근데 이 상황은 우분투가 서버이고 라즈베리파이가 클라이언트여서
우분투를 시작하기 전에 라즈베리파이를 키면 켜지지 않는다
라즈베리파이 폴더(10.10.15.161)에 nfs.sh 다운
mnt로 옮긴다
vi nfs.sh 명령 실행 후
#!/bin/bash
#vi ~/.profile
#if [ -f /mnt/nfs.sh ] ; then
# . /mnt/nfs.sh
#fi
SERVIP=10.10.15.81
if ! df | grep ubuntu_nfs > /dev/null ; then
ping -c 1 $SERVIP > /dev/null
if [ $? -eq 0 ] ; then
sudo mount -t nfs $SERVIP:/srv/nfs /mnt/ubuntu_nfs
df | grep ubuntu_nfs
fi
fi
lect로 되어있는 것을 ubuntu로 변경한다
3,4,5행의 내용을 복사하여
vi ~/.profile 실행 후
맨 마지막에 옮겨적는다
세션복제를 해서 다시 키면
df 했을 때 마운트 된 것을 확인할 수 있다
unmount하려면
vi ~/.profile
df
sudo umount /mnt/ubuntu_nfs
df
요즘은 하나의 시스템에 모든 것을 넣는게 아닌 분산환경시스템
엣지단에 분산환경시스템을 만든다