리눅스에 대한 질문
1.Linux 시스템의 특징은 무엇입니까?
리눅스 배포는 리눅스 커널과 앱을 포장하는 것이다. 비교적 잘 알려진 것은 슬락웨어, 레드하트, 데빈, 만드락, SuSE, Xlinux, 터보 리눅스, 블루포인트, 레드플래그, Xterm 등이다.
RedHat Linux 는 가장 성숙한 Linux 배포판으로 판매량과 설치 기반 모두 시장의 선두주자입니다. 국내 거의 모든 오래된 리눅스 매니아는 레드하트의 사용자입니다. 시중에는 레드하트에 대한 많은 문장 들이 있다.
RedHat Linux 는 간단하고 간결하며 안정적이며 상용 어플리케이션과 Linux 학습을 위한 좋은 플랫폼입니다.
터보 리눅스는 미국 회사가 만든 릴리스입니다. 초기에 리눅스의 국제화에 주력했다. 그 중국어 버전은 가장 먼저 성숙한 중국어 Linux 릴리스이다. TurboLinux 는 특정 애플리케이션에 초점을 맞추고 있으며, 다양한 애플리케이션 개발 릴리스에 대한 국제적 영향력이 커지고 있습니다. 레드하트의 주요 경쟁자입니다.
BludePoint Linux 는 Devin, Samuel, hahalee 의 중국 커널 해커 3 명이 인터넷을 통해 합작한 걸작으로 중국 Linux 애호가들의 환영을 받고 있다. 그것의 주요 특징은 커널급 한화로 많은 것을 가지고 있다는 것이다.
Xterm 은 베이징 서핑사가 만든 리눅스 배포판으로 국내 최초의 리눅스 릴리스라고 할 수 있다. 가장 큰 특징은 사용자 인터페이스가 좋고 입문 문턱이 낮아 초보자가 Linux 를 시도하는 데 적합하다는 것이다.
RedFlag 는 중국과학원, 베이징대 창업자, 컴백사가 공동으로 개발한 레드하트 리눅스를 기반으로 한 개선된 중국어판이다. 개발 동력이 강하고 권위가 있어 시도해 볼 수 있다는 것이 특징이다.
상대적으로 SlackWare, RedHat, Debain 은 어느 정도 기초를 가지고 있거나 성능과 안정성을 강조하는 사람에게 더 적합하다. 레드하트를 사용하는 것이 좋습니다.
TurboLinux, BluePoint, RedFlag, Mandrake 는 상위 3 개보다 더 인간적이고 안정적이며, 그 중 터보, BulePoint, RedFlag 에는 중국어 지원이 내장되어 있어 Windows 에서 Linux 로 막 옮겨온 사람들에게 가장 적합한 선택이어야 합니다.
Xterm, Lenovo Happy 와 같은 사용자 인터페이스는 더 좋고, 중국어 지원이 내장되어 있으며, 더 많은 게임과 사무용 소프트웨어를 번들로 제공하며, Linux 테스터나 초보자에게 더 적합합니다.
2. 배우기를 좋아하십니까? 리눅스를 배우고 일하러 나가는 것이 유용합니까? 리눅스는 중국에서 발전 공간이 넓습니까? 발전 추세는 어떻습니까?
첫째, 리눅스의 탄생
리눅스의 부상은 인터넷 창조의 기적이라고 할 수 있다. 199 1 초 핀란드의 한 젊은 대학생인 Linus Torvalds 가 Linux 운영 체제를 설계하기 시작했을 때, 그의 목적은 Intel 386 스토리지 관리 하드웨어가 어떻게 작동하는지 보려고 한 것이었지만, 그는 이 행동이 컴퓨터 업계에 이렇게 큰 영향을 미칠 줄은 생각지도 못했다. 그의 디자인은 순조롭게 진행되었고, 불과 몇 달 만에 Intel 386 마이크로컴퓨터에서 유닉스 같은 운영 체제를 완성했는데, 이것은 Unix 의 가장 오래된 버전이다. 199 1 연말에 Linus Torvalds 는 Intel 386 아키텍처 기반 Linux 소스 코드를 인터넷에 처음 발표했습니다. 그 후로 기적이 일어나기 시작했다. 구조가 명확하고 기능이 간단하기 때문에 많은 대학생과 과학연구기관의 연구원들은 리눅스를 학습과 연구의 대상으로 삼고 있다. 이들은 기존 Linux 버전 오류를 수정하는 동시에 Linux 에 새로운 기능을 지속적으로 추가하고 있습니다. 많은 애호가들의 노력으로 Linux 는 안정적이고 안정적이며 모든 기능을 갖춘 운영 체제가 되었습니다. 레드모자, 인포메이징 등과 같은 일부 소프트웨어 회사들. 또한 각 버전의 Linux 기반 운영 체제를 출시하여 Linux 의 상업화를 크게 추진했습니다. 일부 대형 컴퓨터 회사의 지원을 받아 Linux 도 알파 APX, PowerPC, Mips, Sparc 등의 프로세서를 사용하는 시스템에 이식되었습니다. 리눅스는 점점 더 널리 사용되고 있으며, 영향력은 유닉스와 거의 같다.
Linux 의 성공은 다음 요인에 의해 이익을 얻습니다.
(1) 개방성이 우수합니다. Linux 및 생성 도구의 소스 코드는 인터넷을 통해 무료로 이용할 수 있으며, Linux 애호가들은 쉽게 Linux 개발 플랫폼을 구축할 수 있습니다.
(2) 인터넷의 보급으로 Linux 에 열중하는 개발자들이 효율적이고 빠르게 교류할 수 있게 되면서 Linux 를 위한 우수한 분산 개발 환경을 조성했다.
(3) Linux 는 적응성이 뛰어나 다양한 하드웨어 플랫폼에 적응할 수 있다.
리눅스 버전이 빠르게 업데이트됩니다. 단 7 년 만에 버전이 2. 1.x 로 올라간 이유는 X 값이 너무 빨리 바뀌어 그 값을 정확하게 찾기 어렵기 때문이다. 이는 또한 리눅스에 종사하는 연구자의 수를 측면에서 반영한 것이다. 그러나 가장 널리 사용되는 Linux 버전은 2.0.30 으로 많은 상용 운영 체제의 핵심이다.
둘째, 리눅스 주요 기능
Linux 는 운영 체제로서 오늘날의 Unix 운영 체제의 거의 모든 요구 사항을 충족하므로 Unix 운영 체제의 기본 기능을 갖추고 있습니다.
1. POSIX 1003. 1 표준을 준수합니다.
POSIX 1003. 1 표준은 모든 운영 체제가 Unix 프로그램을 실행할 수 있는 최소 Unix 운영 체제 인터페이스를 정의합니다. 유닉스는 응용 프로그램이 풍부하다는 점을 감안할 때, 오늘날 대부분의 운영 체제는 POSIX 1003. 1 표준을 준수하는 것을 목표로 하고 있으며, Linux 도 예외는 아닙니다. POSIX 1003. 1 표준을 완벽하게 지원합니다. 또한 Unix 시스템 V 와 BSD 의 프로그램이 Linux 에서 직접 실행되도록 하기 위해 Linux 는 시스템 V 와 BSD 사이에 시스템 인터페이스를 추가하여 Linux 를 완벽한 Unix 프로그램 개발 시스템으로 만들었습니다.
2. 다중 사용자 액세스 및 멀티 태스킹 프로그래밍 지원
Linux 는 여러 사용자가 서로 방해하지 않고 동시에 시스템에 액세스할 수 있도록 하는 다중 사용자 운영 체제입니다. 또한 Linux 는 사용자가 여러 프로세스를 만들어 사용자의 요구에 맞게 함께 작업할 수 있는 진정한 다중 사용자 프로그래밍을 지원합니다.
3. 페이지 기반 스토리지 관리를 사용합니다.
페이지 기반 스토리지 관리를 통해 Linux 는 물리적 스토리지 공간을 보다 효율적으로 활용할 수 있으며 페이지 스왑은 사용자에게 더 많은 스토리지 공간을 제공합니다.
4. 동적 링크 지원
사용자 프로그램의 실행은 종종 표준 라이브러리의 지원과 분리 될 수 없습니다. 일반적으로 시스템은 정적 링크를 자주 사용합니다. 즉, 사용자 프로그램과 표준 라이브러리는 어셈블리 단계에서 이미 연결되어 있습니다. 이렇게 하면 여러 프로세스가 실행될 때 라이브러리 코드에 메모리에 여러 복사본이 있고 스토리지 공간이 낭비되는 상황이 발생할 수 있습니다. Linux 는 동적 링크를 지원하며 라이브러리는 실행 시에만 연결됩니다. 필요한 라이브러리가 이미 다른 프로세스에 의해 메모리에 로드된 경우 다시 로드할 필요가 없습니다. 그렇지 않으면 라이브러리가 하드 드라이브에서 전송됩니다. 이렇게 하면 메모리의 라이브러리 프로그램 코드가 고유합니다.
5. 여러 파일 시스템 지원
Linux 는 다양한 파일 시스템을 지원할 수 있습니다. 현재 지원되는 파일 시스템은 EXT2, EXT, XIAFS, ISOFS, HPFS, MSDOS, UMSDOS, PROC, NFS, SYSV, MINIX, SMB, UFS 입니다 Linux 에서 가장 일반적으로 사용되는 파일 시스템은 EXT2 입니다. EXT2 는 파일 이름이 최대 255 자까지 가능하며 여러 가지 고유한 기능을 갖추고 있어 일반 Unix 파일 시스템보다 안전합니다.
6. TCP/IP, SLIP 및 PPP 를 지원합니다.
Linux 에서는 네트워크 파일 시스템, 원격 로그인 등 모든 네트워크 서비스를 사용할 수 있습니다. SLIP 와 PPP 는 직렬 회선에서 TCP/IP 프로토콜 사용을 지원할 수 있습니다. 즉, 고속 모뎀이 있는 전화선을 통해 인터넷에 연결할 수 있습니다.
위의 기본 기능 외에도 Linux 에는 고유한 기능이 있습니다.
하드 드라이브 및 MS 의 동적 캐시 기능을 지원합니까? DOS 아래의 스마트 드라이브도 비슷합니다. 단, Linux 는 현재 스토리지 사용에 맞게 사용 중인 캐시의 크기를 동적으로 조정할 수 있다는 점이 다릅니다. 어느 시점에서 더 많은 스토리지 공간을 사용할 수 없는 경우 캐시를 줄여 여유 스토리지 공간을 늘리고, 스토리지 공간이 더 이상 긴장하지 않으면 캐시 크기가 늘어납니다.
다양한 형식의 실행 파일을 지원하는 Linux 에는 다양한 형식의 대상 파일을 실행할 수 있는 다양한 시뮬레이터가 있습니다. 그 중 DOS 와 MS 는? Windows 가 개발 중이며 iBCS2 시뮬레이터는 SCO Unix 의 대상 프로그램을 실행할 수 있습니다. (iBCS2 에뮬레이터는 리눅스 표준 커널의 일부가 아니지만 ftp.informatik.hu 에서 다운로드할 수 있습니까? Berlin.de:/pub/OS/Linux 다운로드)
셋째, 리눅스 주요 구성 요소
Linux 는 주로 스토리지 관리, 프로세스 관리, 파일 시스템 및 프로세스간 통신으로 구성됩니다. 많은 알고리즘과 구현 전략에서 Linux 는 Unix 의 성공 경험을 차용했지만 고유한 특징을 가지고 있습니다.
1. 스토리지 관리
Linux 는 각 페이지의 크기가 프로세서 칩에 따라 달라지는 페이지 기반 스토리지 관리 메커니즘을 사용합니다. 예를 들어 인텔 386 프로세서의 페이지 크기는 4KB, 2MB, 알파 프로세서의 페이지 크기는 8KB,/Alpha-0/6kb, 32KB, 64KB 가 될 수 있습니다. 페이지 크기 선택은 주소 변환 알고리즘과 페이지 테이블 구조에 어느 정도 영향을 미칩니다. 예를 들어 알파의 가상 주소와 물리적 주소의 유효 길이는 페이지 크기에 따라 변경되며 이러한 변경 사항은 주소 변환 및 페이지 테이블 항목에 반영됩니다.
Linux 에서 각 프로세스에는 실제 물리적 공간보다 훨씬 큰 프로세스 가상 공간이 있습니다. 가상 공간과 물리적 공간 간의 매핑을 설정하기 위해 각 프로세스에는 프로세스 공간의 가상 주소를 물리적 주소로 변환하는 페이지 테이블도 저장됩니다. 페이지 테이블은 또한 물리적 페이지에 대한 액세스 권한, 읽기/쓰기 가능 페이지 및 읽기 전용 페이지를 정의합니다. 실제 상황 변환 중 Linux 는 페이지 테이블에 지정된 액세스 권한에 따라 프로세스의 물리적 주소에 대한 액세스가 합법적인지 여부를 판단하여 스토리지 보호 목적을 달성합니다.
Linux 스토리지 공간 할당은 실제로 필요한 경우가 아니면 물리적 공간을 할당하지 않는다는 원칙을 따릅니다. 로드가 실행될 때 Linux 는 가상 공간만 할당하고, 가상 주소에 액세스할 때 누락된 페이지가 중단되면 물리적 공간을 할당하므로 일부 프로그램이 완료된 후 일부 페이지가 메모리에 로드되지 않을 수 있습니다. 이러한 스토리지 할당 전략의 장점은 물리적 스토리지를 최대한 활용하기 때문에 분명합니다.
Linux 는 물리적 메모리 리소스를 매우 신중하게 사용하지만 물리적 메모리 리소스는 여전히 부족합니다. Linux 에는 페이지 변경을 담당하는 kswapd 라는 프로세스가 있습니다. 시스템의 사용 가능한 페이지 수가 일정 수보다 적으면 kswapd 는 특정 정련 알고리즘에 따라 일부 페이지를 선택하거나, 직접 버리거나 (페이지가 수정되지 않음) 하드 드라이브에 다시 씁니다 (페이지가 수정됨). 이 교체 방법은 한 프로세스의 모든 페이지를 하드 드라이브에 다시 쓰는 이전 Unix 의 교체 방법과는 다릅니다. 이에 비해 Linux 는 효율성이 더 높다.
2. 프로세스 관리
Linux 에서 프로세스는 자원 할당의 기본 단위이며 모든 자원은 프로세스에 따라 할당됩니다. 프로세스 수명 주기 동안 많은 시스템 자원을 사용하고, CPU 를 사용하여 명령을 실행하고, 해당 명령과 데이터를 메모리로 저장하고, 시스템의 물리적 장치를 직접 또는 간접적으로 사용하여 파일 시스템의 파일을 열고 사용합니다. 따라서 Linux 는 프로세스의 상태와 리소스 사용량을 정확하게 설명함으로써 시스템 리소스를 공정하고 효율적으로 사용할 수 있는 일련의 데이터 구조를 설계했습니다. Linux 의 스케줄링 알고리즘은 일부 프로세스가 시스템 자원을 과도하게 사용하지 않도록 하여 다른 프로세스가 끊임없이 대기하도록 합니다.
프로세스 생성은 매우 복잡한 프로세스입니다. 일반적으로 하위 프로세스에 물리적 공간을 재할당하고 상위 프로세스 공간의 내용을 하위 프로세스 공간에 복사해야 하는 것은 비용이 많이 듭니다. Linux 는 프로세스 생성 오버헤드를 줄이기 위해 Copy 를 사용합니까? 열어? 쓰기 기술은 상위 프로세스의 공간을 복사하지 않고 상위 프로세스의 페이지 테이블을 복사하여 상위 프로세스와 하위 프로세스 * * * 가 물리적 공간을 확보하고 이 * * * 공유 공간에 대한 액세스를 읽기 전용으로 설정하는 기술입니다. 상위 프로세스와 하위 프로세스 중 하나가 기록되면 Linux 는 잘못된 작업을 감지한 다음 쓸 페이지를 복사합니다. 이렇게 하면 읽기 전용 페이지의 복제가 제거되어 오버헤드가 줄어듭니다.
현재 Linux 는 사용자 수준 스레드를 제공하지 않지만 코어 수준 스레드를 제공합니다. 코어 스레드 생성은 생성된 하위 프로세스와 상위 프로세스가 가상 메모리 공간을 공유할 수 있도록 프로세스 생성을 기준으로 약간 수정됩니다. 이런 의미에서 핵심 스레드는 * * * * 프로세스 그룹과 더 비슷합니다.
3. 파일 시스템
Linux 의 가장 중요한 기능 중 하나는 다양한 파일 시스템을 지원한다는 것입니다. 앞서 살펴본 바와 같이 Linux 는 현재 10 개 이상의 파일 시스템을 지원하고 있으며 이 수치는 시간이 지남에 따라 증가하고 있습니다. Linux 에서 개별 파일 시스템은 드라이브 문자 또는 문자와 같은 디바이스 id 를 통해 액세스되지 않고 디렉토리를 통해 액세스되는 단일 디렉토리 트리 구조로 결합됩니다. 이는 Unix 와 매우 유사합니다. Linux 는 installation 명령을 사용하여 시스템의 단일 디렉토리 트리에 있는 디렉토리에 새 파일 시스템을 설치합니다. 설치가 성공하면 이 디렉토리의 모든 내용을 새로 설치된 파일 시스템으로 덮어씁니다. 파일 시스템이 마운트 해제되면 설치 디렉토리의 파일이 복구됩니다.
Linux 의 초기 파일 시스템은 Minix 입니다. 이 파일 시스템은 파일에 대한 제한이 너무 많고 성능이 낮습니다. 예를 들어 파일 이름은 14 자를 초과할 수 없고 파일 크기는 64MB 를 초과할 수 없습니다. 이러한 문제를 해결하기 위해 Linux 개발자는 Linux 전용 파일 시스템 EXT 를 설계했습니다. EXT 의 파일 요구 사항은 많이 완화되었지만 성능 변화는 크지 않아 다음과 같은 EXT2 파일 시스템이 있습니다. EXT2 파일 시스템은 EXT 파일 시스템보다 파일 제한과 성능 면에서 훨씬 우수한 매우 성공적인 파일 시스템입니다. 따라서 EXT2 는 출시 이후 Linux 에서 가장 일반적으로 사용되는 파일 시스템이었습니다.
다양한 파일 시스템을 지원하기 위해 Linux 는 가상 파일 시스템 (VFS) 이라는 인터페이스 계층을 사용하여 실제 파일 시스템을 운영 체제 및 시스템 서비스와 분리합니다. VFS 는 모든 파일 시스템이 운영 체제 및 사용자 프로그램과 동일하도록 파일 시스템 간의 차이를 가립니다. VFS 를 사용하면 서로 다른 여러 파일 시스템을 동시에 투명하게 마운트할 수 있습니다.
4. 프로세스 간 통신
Linux 는 신호와 파이프가 가장 기본적인 프로세스 간 통신 메커니즘을 제공합니다. 또한 Linux 는 메시지 큐, 신호량 및 * * * 공유 메모리를 포함한 시스템 V 의 프로세스간 통신 메커니즘을 제공합니다. Linux 는 서로 다른 시스템 간의 프로세스 통신을 지원하기 위해 BSD 의 소켓 메커니즘도 도입했습니다.
넷째, 리눅스 단점과 발전 추세
Linux 가 출현한 지 7 년밖에 되지 않았지만, 발전 속도는 놀라울 정도로 개방성과 뛰어난 성능과는 거리가 멀다. 그러나, 우리는 학생이 개발한 시스템으로서, Linux 에는 여전히 많은 고유의 결점이 있다는 것을 알아야 한다. 기존 운영 체제에 지나치게 집착하는 설계 아이디어는 오늘날 운영 체제의 발전 추세를 반영하지 않으며, 구체적으로 다음과 같은 측면에 반영됩니다.
마이크로 커널 운영 체제가 아닙니다.
분산 운영 체제입니다.
안전한 운영 체제가 아닙니다.
사용자 스레드가 없습니다.
실시간 처리는 지원되지 않습니다.
코드는 C++ 가 아닌 C 와 같은 현대 프로그래밍 언어로 작성되었습니다.
리눅스는 이런 단점이 있지만, 그 발전 잠재력은 과소평가할 수 없다. 그 발전은 전 세계 수많은 리눅스 애호가들에 의해 추진된다. 향후 Linux 는 사용자가 스레드를 만들고, 실시간 처리 기능을 추가하고, 멀티 프로세서 아키텍처에 적합한 버전을 개발할 수 있도록 하는 등 완벽한 기능 및 효율성을 갖춘 방향으로 발전할 것입니다. 우리는 리눅스, 유닉스, Unix 의 시대가 멀지 않을 것이라고 믿는다.
---
3. 리눅스를 배우고 일하러 나가는 것이 유용합니까?
관리자, 개발, 개발, 일반 c/c++, 임베디드 등 다양한 종류의 Linux 작업을 수행 할 수 있는지 확인하십시오. 관리는 또한 데이터베이스 관리 및 기타 응용 프로그램으로 나뉩니다.
장쑤 리눅스 기술 서비스