![Arm 아키텍처: 트러스트존(TrustZone) [저자직강 3부-1]강의 썸네일](https://cdn.inflearn.com/public/courses/332739/cover/000c70cc-3a46-4f03-87f0-02f16dbf9b1e/332739.png?w=420)
Arm 아키텍처: 트러스트존(TrustZone) [저자직강 3부-1]
김동현 (Austin Kim)
시스템 소프트웨어의 기본 중의 기본, 최신 Arm 아키텍처(Armv8-A, Armv7-A)의 핵심인 트러스트존(TrustZone)을 "시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리"의 저자가 제대로 잡아드립니다!
초급
ARM Architecture, armv8, armv7
Yếu tố chủ chốt của phần mềm hệ thống, cốt lõi kiến trúc Arm mới nhất (Armv8-A, Armv7-A), sẽ được tác giả của "시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리" giải thích rõ!
359 học viên
Giới thiệu bộ xử lý Arm
Cách học kiến trúc Arm
thanh ghi
Lệnh Assembly
Armv7: Chế độ hoạt động
Armv8: Cấp độ ngoại lệ
Những điều cơ bản nhất của phần mềm hệ thống,
Trái tim của kiến trúc Arm mới nhất!
0. Phiếu giảm giá 30% được phát hành khi có 300 học sinh đăng ký
Để chào mừng 300 học viên (Phần 1 và 2), chúng tôi tặng phiếu giảm giá 30%. Xin cảm ơn. Dành cho 100 người đầu tiên.
Chúng tôi đã thêm các bài giảng sau đây để khám phá các tính năng kiến trúc Arm mới nhất và nội dung hữu ích có thể áp dụng trực tiếp vào các dự án thực tế.
Các bài giảng sẽ tiếp tục được đổi mới.
Bài giảng này, <Cấu trúc và nguyên tắc của kiến trúc Arm cho phát triển phần mềm hệ thống - Phần 1 Bài giảng trực tiếp của tác giả>, nằm trong lộ trình 'Arm dành cho nhà phát triển phần mềm hệ thống - Khóa học cơ bản' .
Nếu bạn muốn tìm hiểu kiến trúc Arm (Armv8-A, Armv7-A) một cách hệ thống, chúng tôi khuyên bạn nên sử dụng lộ trình (giảm giá 30% cho tất cả các bài giảng). Để tham khảo, lộ trình kiến trúc Arm (tất cả các bài giảng của tác giả) bao gồm hai khóa học: Khóa học Cơ bản và Khóa học Nâng cao .
Bộ xử lý Arm được sử dụng trong điện thoại thông minh, chất bán dẫn hệ thống SoC AI, xe điện (lái xe tự động, thông tin giải trí), máy chủ đám mây và MacBook đều là bộ xử lý Cortex-A 64-bit dựa trên Armv8-A (Cortex-A53, Cortex-A57, Cortex-A72, v.v.). Kiến trúc Armv8-A có thể được coi là kiến thức cơ bản cần thiết nhất trong ngành phần mềm hệ thống hiện nay.
Nhưng bạn có thấy kiến trúc Arm mới nhất, Armv8-A và Armv7-A, quá khó không?
Các nhà phát triển mới muốn phát triển năng lực của mình trong lĩnh vực phần mềm hệ thống, bao gồm hệ thống bán dẫn và xe điện (lái xe tự động, thông tin giải trí).
Những người tìm việc muốn phát triển phần mềm hệ thống trong các lĩnh vực như hệ thống bán dẫn và xe điện
Sinh viên đại học có mục tiêu học lên cao học trong lĩnh vực phần mềm hệ thống (bộ nhớ, hệ thống tệp, hệ điều hành)
Các nhà phát triển từ các lĩnh vực khác muốn chuyển đổi nghề nghiệp sang phần mềm hệ thống.
Nhiều nhà phát triển Linux nhúng học về kiến trúc máy tính và hệ điều hành. Họ cũng nghiên cứu lý thuyết hệ thống máy tính ở một mức độ nào đó. Gần đây, các nhà phát triển phần mềm hệ thống bán dẫn và xe điện đang nổi lên đã phân tích trình điều khiển thiết bị Linux, RTOS hoặc bộ nạp khởi động. Tuy nhiên, họ cảm thấy còn thiếu sót điều gì đó . Họ biết rằng mình phải nắm vững kiến trúc ARM để trở thành một nhà phát triển phần mềm hệ thống chuyên nghiệp, nhưng khi thực sự mở tài liệu đặc tả ARM, họ nhận ra rằng đó không phải là một con đường dễ dàng và việc tự học rất khó khăn.
Không ngoa khi nói rằng cốt lõi của phát triển phần mềm hệ thống chính là CPU và kiến trúc máy tính. Chúng tôi đã giải thích một cách dễ dàng lý thuyết cốt lõi của kiến trúc ARM mới nhất (Armv8-A, Armv7-A) , bộ xử lý CPU được ưa chuộng nhất trong ngành CNTT!
Lý do khiến kiến trúc ARM trở nên khó khăn là vì nó chỉ được học từ góc nhìn của bộ xử lý phần cứng. Bài giảng này giải thích cách nội dung của kiến trúc ARM thực sự được sử dụng thông qua phân tích mã và giới thiệu trường hợp cụ thể. Bài giảng này sẽ đóng vai trò then chốt trong việc giúp bạn trở thành một nhà phát triển phần mềm hệ thống có năng lực.
Cách nhanh nhất để học kiến trúc Arm là gì? Đó là thực hành bằng cách tự gỡ lỗi.
Khi tham gia khóa học này, bạn có thể tải xuống chương trình mô phỏng TRACE32 giáo dục từ 'Tài liệu bài giảng Inflearn' và sử dụng chương trình mô phỏng TRACE32 để gỡ lỗi bằng cách làm theo quy trình gỡ lỗi (bao gồm cả hướng dẫn lắp ráp) được giải thích trong khóa học. Các bài giảng gỡ lỗi liên quan trong chương trình giảng dạy như sau:
Bạn cũng có thể theo dõi quá trình gỡ lỗi liên quan đến chế độ hoạt động và mức độ ngoại lệ.
Ngoài nội dung của cuốn sách 『Cấu trúc và nguyên lý của kiến trúc Arm』 , cuốn sách còn giải thích cụ thể các phương pháp gỡ lỗi và nhiều trường hợp khác nhau của kiến trúc Arm không được đề cập trong sách.
Giới thiệu bộ xử lý Arm và kiến trúc Arm cùng với quy trình phát triển hệ thống bán dẫn. Mô tả cấu hình và họ bộ xử lý Arm.
Giới thiệu các thanh ghi của kiến trúc Armv7-A và giải thích các tính năng của chúng.
Phần này trình bày chi tiết về các thanh ghi được phân loại trong số các thanh ghi đa năng (Armv7-A). Phần này cũng giải thích chi tiết các trường chính tạo nên thanh ghi CPSR, chứa thông tin trạng thái của quy trình.
Giải thích chi tiết và dễ hiểu về các thanh ghi được định nghĩa trong kiến trúc Armv8-A.
Gỡ lỗi thanh ghi bằng chương trình TRACE32. Chúng tôi sẽ giải thích chi tiết cách thức hoạt động của thanh ghi bằng cách trực tiếp thay đổi giá trị của các thanh ghi được định nghĩa trong kiến trúc Armv7-A và Armv8-A. Tất nhiên, chúng tôi sẽ giải thích để sinh viên có thể theo dõi và gỡ lỗi.
Mô tả cấu trúc cơ bản của hướng dẫn lắp ráp và giải thích chi tiết từng hướng dẫn lắp ráp.
Tài liệu này không chỉ giải thích ngữ pháp của lệnh lắp ráp mà còn đi sâu vào cách sử dụng lệnh lắp ráp trong các dự án thực tế.
Tôi sẽ giải thích bằng cách gỡ lỗi trực tiếp các lệnh lắp ráp bằng chương trình TRACE32. Tôi sẽ hướng dẫn học viên cách gỡ lỗi cùng với các lệnh số học (ví dụ: MOV, ADD, SUB) cho đến các lệnh rẽ nhánh, lệnh thao tác bit và lệnh logic (AND, ORR, EOR).
Giới thiệu các chế độ hoạt động tạo nên nền tảng của Armv7-A và giải thích chi tiết các tính năng của từng chế độ. Giải thích phần mềm nào được thực thi trong mỗi chế độ hoạt động.
Chúng tôi mô tả các mức đặc quyền liên quan đến chế độ hoạt động và phân tích các trường bit trong thanh ghi CPSR để xác định chế độ hoạt động.
Chúng tôi sẽ trực tiếp debug các lệnh thay đổi chế độ hoạt động bằng chương trình TRACE32. Chúng tôi cũng sẽ trực tiếp thực thi các lệnh gây ra ngoại lệ và giải thích quá trình gây ra ngoại lệ thông qua quá trình debug. Chúng tôi sẽ giải thích để sinh viên có thể theo dõi và debug.
Bài viết này giải thích khái niệm về mức ngoại lệ, một trong những tính năng cốt lõi của kiến trúc Armv8-A, một cách dễ hiểu và chi tiết.
Thông qua việc phân tích tài liệu đặc tả, chúng tôi xem xét chi tiết các cấp độ ngoại lệ và mô tả ngăn xếp phần mềm được thực thi cho từng cấp độ ngoại lệ.
Chúng ta sẽ thực hành đọc mức ngoại lệ với chương trình TRACE32. Chúng tôi cũng sẽ giải thích quy trình thay đổi mức ngoại lệ bằng cách thực thi trực tiếp các lệnh SVC và HVC và gỡ lỗi chúng. Học viên có thể tải xuống chương trình TRACE32 và làm theo hướng dẫn để gỡ lỗi.
Một cách nhanh chóng để hiểu cách bộ xử lý Arm hoạt động là đọc và hiểu trực tiếp các tài liệu đặc tả của Arm.
Việc này không bao giờ dễ dàng với người mới bắt đầu. Dù nội dung có hữu ích đến đâu, việc hiểu nó vẫn rất khó khăn. Bài giảng này được thiết kế để giúp bạn tiếp cận các lý thuyết khó về kiến trúc Arm một cách dễ dàng hơn.
Vô song trong lĩnh vực phần mềm hệ thống nội địa! Tác giả của 'Arm Architecture (Armv8-A, Armv7-A)' và 'Linux Kernel' ( cả hai đều được Viện Hàn lâm Khoa học Hàn Quốc bình chọn là sách xuất sắc ) và là tác giả toàn cầu, người đã viết cuốn sách "Reverse Engineering Armv8-A Systems" (tiếng Anh) thông qua một nhà xuất bản nước ngoài (Packt) lần đầu tiên tại Hàn Quốc . Trên hết, ông là một nhà phát triển đang làm việc, am hiểu nhất về các xu hướng phần mềm hệ thống mới nhất (xe điện, chất bán dẫn hệ thống - phần mềm hệ thống). Ông cũng là một nhà giáo dục tích cực nhất trong việc phổ biến kiến thức trong lĩnh vực phần mềm hệ thống.
Tôi có thể tự tin khẳng định rằng tôi là nhà giáo dục có thể giải thích các tính năng chính của kiến trúc Arm (Armv8-A, Armv7-A) tốt hơn bất kỳ ai khác ở Hàn Quốc.
H. Có cần thiết phải học kiến trúc Arm để trở thành nhà phát triển phần mềm hệ thống không?
Vâng, bạn chắc chắn nên học nó. CPU được sử dụng rộng rãi nhất trong ngành CNTT là bộ xử lý ARM. Các nhà phát triển phần mềm hệ thống lập trình để điều khiển phần cứng thường cần hiểu rõ về kiến trúc ARM để giải quyết vấn đề. Nếu bạn không hiểu rõ về kiến trúc ARM, có thể bạn chỉ có thể thực hiện công việc cấu hình hệ thống đơn giản.
H. Tôi không phải là sinh viên chuyên ngành này. Tôi có thể học kiến trúc Arm không?
Ngay cả những người không chuyên ngành cũng có thể hiểu đầy đủ các nguyên tắc cơ bản của kiến trúc Arm bằng cách lắng nghe kỹ nội dung bài giảng này. Trong số những người đọc thử cuốn sách "Cấu trúc và Nguyên lý Kiến trúc Arm cho Phát triển Phần mềm Hệ thống", có rất nhiều người không chuyên ngành. Ban đầu, việc đọc và hiểu nội dung kiến trúc Arm khá khó khăn, nhưng sau khi đọc sách 2-3 lần, hầu hết đều đã hiểu kiến trúc Arm. Bài giảng này giải thích nội dung của cuốn sách chi tiết và cụ thể hơn, vì vậy ngay cả những người không chuyên ngành cũng có thể hiểu rõ kiến trúc Arm bằng cách lắng nghe bài giảng này .
H. Tôi có cần phải học khóa học này để trở thành nhà phát triển phần mềm bảo mật không?
Nếu bạn muốn phát triển phần mềm như V3, lý thuyết về kiến trúc CPU là điều cần thiết. Sau khi chuyển sang phát triển trình điều khiển kernel, bạn phải biết kiến trúc CPU như kiến trúc ARM. Nếu bạn muốn tìm hiểu cốt lõi của các kỹ thuật tấn công/phòng thủ khác nhau, bao gồm cả kỹ thuật đảo ngược, sẽ rất khó để thử nếu không nắm vững lý thuyết về kiến trúc ARM.
H. Tôi chỉ học ngôn ngữ C và cấu trúc dữ liệu. Tôi có thể học khóa học này không?
Có, bạn có thể. Bạn không cần bất kỳ kiến thức nền tảng đặc biệt nào để tham gia khóa học này. Thái độ sau đây có thể quan trọng hơn kiến thức nền tảng.
Tuy nhiên, nếu bạn đã có một số kiến thức về hệ điều hành hoặc RTOS, việc hiểu bài giảng này có thể hữu ích.
Khóa học này dành cho ai?
Lập trình viên junior muốn phát triển năng lực trong lĩnh vực phần mềm hệ thống, bao gồm bán dẫn hệ thống (Fabless) và lĩnh vực xe điện (tự lái, thông tin giải trí).
Lập trình viên từ lĩnh vực khác muốn chuyển sang phần mềm hệ thống
Ứng viên muốn phát triển phần mềm hệ thống trong mảng bán dẫn hệ thống (fabless) và xe điện.
Sinh viên đại học đặt mục tiêu theo học cao học về lĩnh vực phần mềm hệ thống (bộ nhớ, hệ thống tập tin, hệ điều hành).
Nhà phát triển phần mềm hệ thống (bán dẫn hệ thống, xe điện) muốn biết cách gỡ lỗi trong công việc thực tế bằng cách tận dụng các tính năng của kiến trúc Arm.
Nhà phát triển phần mềm hệ thống muốn biết cách bộ xử lý Arm dựa trên Armv8-A hoạt động trong bán dẫn hệ thống.
Sinh viên năm cuối đang chuẩn bị đề tài tốt nghiệp trên hệ thống dựa trên Arm.
Sinh viên cao học đang thực hiện dự án của phòng thí nghiệm trong môi trường bộ xử lý Arm.
Cần biết trước khi bắt đầu?
Kiến trúc máy tính
Hệ điều hành
5,430
Học viên
148
Đánh giá
84
Trả lời
4.9
Xếp hạng
21
Các khóa học
글로벌 저자 & 리눅스 시스템 소프트웨어 개발자 (Arm, RISC-V 아키텍처)
국내 시스템 소프트웨어 분야에서 전무후무한! 'Arm 아키텍처(Armv8-A, Armv7-A)'와 '리눅스 커널' 책을 쓴 저자(2권의 책 모두 대한민국 학술원 우수도서에 선정)이며, 국내 최초로 해외 출판사(Packt)를 통해 "Reverse Engineering Armv8-A Systems" 책(영어)을 집필한 글로벌 저자입니다. 무엇보다 최신 시스템 소프트웨어 트렌드(전기자동차, 시스템 반도체- 시스템 소프트웨어)를 가장 잘 알고 있는 현업 개발자입니다. 또한 시스템 소프트웨어 분야에서 가장 지식 전파 활동을 활발하게 하는 교육자입니다.
'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis' 책(영어) 저자, (Packt 출판사)
'시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리'(2024년, 대한민국 학술원 우수도서상) 저자
'디버깅을 통해 배우는 리눅스 커널의 구조와 원리' (2021년, 대한민국 학술원 우수도서상) 저자
'프로그래머스 데브 코스: 리눅스 시스템 및 커널 전문가' 메인 강사
2022년 6월, 한국컴퓨터종합학술대회 (KCC2022) - 튜토리얼 발표 [ftrace를 이용해 리눅스 커널 정복하기]
LG전자 '리눅스 커널' 및 'Armv8 아키텍처' 사내 강사(국내 및 해외 개발자 포함) - (2020년~현재)
국내에서 어느 누구보다 리눅스 커널과 Arm 아키텍처(Armv8-A, Armv7-A)를 잘 설명할 수 있는 교육자라고 자신있게 말씀드릴 수 있습니다.
강의문의 : austindh.kim@gmail.com
'시스템 소프트웨어 개발자를 위한 Arm - basic course'
Tất cả
165 bài giảng ∙ (22giờ 9phút)
Tài liệu khóa học:
Tất cả
21 đánh giá
5.0
21 đánh giá
Đánh giá 4
∙
Đánh giá trung bình 5.0
5
강의를 듣고 나니 머리가 맑아지고 무엇인가 체한게 내려간 듯한 느낌입니다. 그 동안 막연했던 ARM의 주요 개념이 명확히 정리된 것이 신기합니다. 강의를 듣고 달라진 제 모습이 조금 놀라웠습니다. ARM 스펙을 읽을 때 마다 새로웠는데, 이제는 ARM 스펙 문서를 술술 읽게 됐습니다. 프로젝트에 바로 적용할 만한 내용은 것도 신기해 주위 동료 개발자에게도 추천했습니다. 인생 강의를 듣게 되어 기쁘고 더 많은 강의가 업로드됐으면 좋겠습니다. 훌륭하고 유익한 강의 너무 감사합니다.
좋은 평가와 격려 감사합니다. 혹시 궁금한 점이 있으면 언제든지 Q/A로 남겨주세요. 앞으로 제 강의를 "정말 잘 들었다"라는 확신을 드리기 위해 계속 최선을 다하겠습니다.
Đánh giá 3
∙
Đánh giá trung bình 5.0
5
ARM 역사부터 시작해서, ARM instruction, 레지스터, exception level 까지, ARM 구조 이해의 꼭 필요한 기초 베이스를 아주 자세하면서 깊게 설명해 줘서 고맙습니다! 이런 내용의 서적은 최소 국내에서는 못 봤습니다. 리눅스 커널과 관련된 업무를 진행하거나 ARM 에 관심 있는 분들께 꼭 추천드리고 싶습니다!
좋은 평가와 격려 감사합니다. 혹시 궁금한 점이 있으면 언제든지 Q/A로 남겨주세요. 앞으로 제 강의를 "정말 잘 들었다"라는 확신을 드리기 위해 계속 최선을 다하겠습니다.
Đánh giá 4
∙
Đánh giá trung bình 5.0
5
TRACE32, 리눅스 커널 소스, XEN 하이퍼바이저 소스 등 실제로 적용된 예시들을 통해 ARM 아키텍처를 배우니 이론들이 머리에 더 오래 남아있고 흥미롭게 강의를 볼 수 있었습니다. 3부 강의도 얼렁 보고 싶고 이론뿐만 아니라 실제로 프로그래밍을 하는 실습 강의도 개설되었으면 좋겠습니다. 좋은 강의 감사합니다.
좋은 평가 감사합니다. 특히 시스템 소프트웨어의 다양한 분야에 활용될 수 있는 실습 예시가 많이 포함되어 있어 실무에 많은 도움이 될 것이라 예상됩니다. 나중에 실습으로 진행하는 강의를 제작할 예정입니다. 3부 강의는 1월달 초에 출간될 예정이니 참고하세요. 감사합니다. ^^
Đánh giá 2
∙
Đánh giá trung bình 5.0
Đánh giá 17
∙
Đánh giá trung bình 4.9
2.775.946 ₫
Hãy khám phá các khóa học khác của giảng viên!
Khám phá các khóa học khác trong cùng lĩnh vực!