Giới thiệu về công việc Linux embedded ở Việt Nam

Cùng Nhau Học Linux Kernel
Cùng Nhau Học Linux Kernel
24 bài viết — 32 Người theo dõi |
0
2

Theo style vài ngày một topic ngẫu hứng. Chủ đề hôm nay mình muốn chia sẻ là về công việc Linux embedded ở Việt Nam - Hiện tại chúng ta đang làm gì, những thứ cần chuẩn bị đối với người mới muốn join vào lĩnh vực này.

Đây có lẽ là vấn đề cần tìm hiểu đầu tiên đối với người mới. Mình hiện tại là technical leader về mảng này do đó công việc chủ yếu của mình là tìm hiểu về các kiến thức mới trong Linux embedded, training, phỏng vấn ứng viên, hô hào cổ động tinh thần học hành của anh em trong dự án. Công việc của mình do được tiếp xúc với nhiều người trong lĩnh vực này ở các công ty khác nhau nên đâu đó mình cũng nắm được bức tranh về Linux embedded ở Việt Nam.

Những chia sẻ sau đây là từ view cá nhân của mình, nếu có điểm nào chưa hợp lý thì mọi người cứ góp ý nhé.

1. Linux embedded là gì? Đó là những hệ thống embedded mà người ta chạy hệ điều hành Linux lên đó. Linux embedded có những ưu điểm mà một hệ thống nhúng theo dạng code thuần vi điều khiển không có. Tính năng của nó đa dạng hơn rất nhiều, thời gian phát triển ứng dụng nhanh, được hỗ trợ nhiều từ các thư viện có sẵn trên mạng. Khả năng multi media mạnh, có khả năng tái sử dụng giữa các platform khác nhau.

2. Ở Việt Nam chúng ta đang làm gì về Linux embedded?
Nếu coi cả Việt Nam là một công xưởng sản xuất. Vậy chúng ta sẽ có những đơn vị chuyên làm về hardware. Có những đơn vị sau khi có hardware rồi thì sẽ lập trình các driver chạy trên Linux để điều khiển các hardware đó (nó giống với các bạn lập trình vi điều khiển nhưng ở đây code của các bạn phải chạy được trong hệ điều hành Linux), sau đó họ sẽ tích hợp các driver và chỉnh sửa 1 số thông số của hệ điều hành Linux để có thể chạy được trên hardware của họ. Cuối cùng chúng ta có những đơn vị lập trình các ứng dụng dựa trên hệ điều hành Linux kèm với hardware ở các bước trên. Cách phân chia ở trên là mình dựa chia theo view về kiến thức.

Đối với view về sản phẩm thì hiện tại mạnh nhất là làm Linux embedded cho các thiệt bị trên ô tô. Như mình biết thì có FGA của Fsoft và LG Việt Nam là 2 đơn vị lớn nhất làm về mảng này, ngoài ra còn có thêm 1 công ty nữa của Hàn Quốc có thể là Toshiba hoặc Panasonic gì đó mình cũng ko nhớ rõ nữa. Mạnh nhì là làm Linux embedded cho các thiết bị mạng - bao gồm wifi, switch. Mảng này thì có Viettel và một số công ty như Dasan Việt Nam, Bosh, Humax, Panasonic nếu mình nhớ ko nhầm và một số công ty nhỏ khác mình không kể tên ở đây. Ngoài ra còn có Android embedded cho các thiết bị gia dụng như tivi, tủ lạnh... Mảng này thì tập trung vào các công ty của Hàn Quốc đặt tại Việt Nam như Humax, Panasonic, Samsung, LG... Mình cho Android embedded vào đây vì 1 người có thể làm giữa 2 mảng Android và Linux embedded được mà không gặp nhiều bỡ ngỡ lắm.

Hiện tại ở Việt Nam mình ước tính có khoảng 1 đến 2 nghìn người làm về Linux embedded, nhưng phần lớn mọi người đều tập trung ở tầng application. Cái này do khả năng của chúng ta vẫn chưa đáp ứng được cho việc lập trình dưới tầng kernel. Số người có công việc chính là lập trình dưới tầng kernel chỉ khoảng 10% con số trên. Mục tiêu của group là để tăng con số 10% lên, do đó phần dưới mình sẽ nói về cách chuẩn bị kiến thức để join vào con số 10% này. Đối với các bạn đang làm ở tầng trên có thể post một bài mới để chúng ta thảo luận.

3. Những thứ cần chuẩn bị cho một bạn muốn join vào lĩnh vực Linux embedded? Trước tiên là bạn cần học tốt về C và một chút assembly. Sau đó là nắm chắc kiến thức về vi điều khiển. Bạn phải có khả năng đọc reference manual để lập trình driver cho một peripheral nào đó. Sau đó các bạn cần có kiến thức basic về hệ điều hành như file system, lập lịch, virtual memory... Sau đó là học lập trình Linux device driver basic. Đến đây thì các bạn đã có đủ kiến thức để trở thành 1 junior trong lĩnh vực này.

Cả quá trình trên sẽ kéo dài 1 - 2 năm để học từ đầu. Nếu bạn càng ở những nấc thang cuối thì thời gian cần thiết sẽ càng giảm đi. Nếu đã lập trình tốt vi điều khiển thì mình ước lượng sẽ mất khoảng 3 - 6 tháng để chuyển sang Linux embedded. Hiện tại hệ thống training trên group mình cũng đang xây dựng theo hướng này.

Đến đây là tất cả những gì mình biết. Cảm ơn mọi người đã đọc bài.

Các comment hay:

1. Quân Đậu Cảm ơn anh rất nhiều. Cho em hỏi có nên học cả lập trình tầng app và cả tầng kernel không ạ? Nếu học cả 2 thì khi đi làm có thể đc phát huy cả 2 không hay chỉ làm chuyên về một tầng thôi ạ?

Trả lời: Lập trình tầng app nếu ở dạng lập trình C thì là cần thiết. Vì kể cả sau này em lập trình thuần kernel thì vẫn cần lập trình app ở tầng user để tương tác với code dưới kernel. Còn nếu lập trình app dạng C++ hoặc java thì anh nghĩ ko cần thiết. Sau này nếu công việc cần thì ngồi mò làm sau cũng dc. Như anh đi làm 5 năm nhưng cũng chỉ code mỗi C thôi.

 

** Nếu bạn muốn viết các nội dung đặt biệt thì hãy làm theo hướng dẫn sau

Xem thêm 10 bình luận
Viết blog mới của bạn
Báo lỗi trang
Đang tải