Thông báo

Collapse
No announcement yet.

Các hệ điều hành thời gian thực, ứng dụng, phần cứng hỗ trợ

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Các hệ điều hành thời gian thực, ứng dụng, phần cứng hỗ trợ

    Chào anh bqviet và mọi người,

    Sorry đã hỏi anh quá nhiều nhé . Tài bởi vì em chỉ muốn hỏi ý kiến để biết cái tổng quan và định hướng nghiên cứu thôi. Lĩnh vực này mới với em và có lẽ là với nhiều người nên em nghĩ mình nên có cái định hướng này.

    Lần trước, em cũng đã chát với anh rồi mà do cài đặt lại nên quên không backup lại cái pidgin nên không còn lưu lại nữa.

    Em có một số vấn đề muốn tham khảo lại ý kiến của anh và của mọi người (có thể câu hỏi hơi chung chung nhưng em nghĩ rất thiết thực):
    1. Xu hướng RTOS có phải chia làm 2 hướng: một là commercial, hai là các bản free không ? Với người dùng thì nên chọn hướng nào và hệ điều hành nào là thích hợp cho mới nghiên cứu, cái nào được đánh giá là hard real time?
    2. Vấn đề hỗ trợ phần cứng cũng rất đáng quan tâm: vậy các RTOS được đánh giá tốt đó thì hỗ trợ tốt với phần cứng của hãng nào? (MontaVista, Advantech, ...) bởi vì liên quan đến vấn đề driver. Như lúc trước anh nói là nếu nó support thư viện của Comedi thì rất tốt.
    3. Với các bản RTOS này có "kén chọn" distro Linux mẹ không? (RTLinux có cài được trên Ubuntu không chẳng hạn, ... )

    Chúc mọi người thành công.
    Technical sale at WT Microelectronics S'pore
    Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
    Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

  • #2
    Vài chia xẻ xuất phát từ kinh nghiệm dùng

    Về mặt lịch sử, Linux vốn không phải là RTOS từ đầu, do nhu cầu sử dụng nên cả các hãng thương mại lẫn cộng đồng hacker phát triển thêm phần bổ sung RTOS cho Linux. Các bản thương mại có trước và nhiều tình năng hơn, sản phẩm của cộng đồng đi theo sau, ít tính năng hơn nhưng lại ổn định và hỗ trợ mạnh hơn. Ra đời đầu tiên trên thế giới là RTLinux (thương mại), đi ngay sau nó và cũng dùng cùng cách tiếp cận là RTAI (tự do). MontaVista (thương mại) đi theo hướng khác, Kurt Linux (tự do) đi theo sau...

    Về mặt kỹ thuật, có 2 cách tiếp cận để đạt được tính realtime trên Linux: micro-kernel và chỉnh sửa nhân Linux.
    • Micro-kernel là chạy một nhân hệ điều hành khác rất nhỏ bên dưới Linux để điều khiển phần cứng: cổng vào/ra, quản lý ngắt ... Nhân Linux lúc này đóng vai trò một ứng dụng bình thường đối với cái micro-kernel đó. RTLinux và RTAI sử dụng cách tiếp cận này. Kiểu này cho phép hệ điều hành đúng là hard realtime thực sự, và thời gian phản ứng đối với sự kiện bên ngoài chỉ cỡ vài us. Tuy nhiên nhiều hacker lại không thích kiểu coi Linux chỉ là ứng dụng trong cách tiếp cận này.
    • Chỉnh sửa nhân Linux là cách được MontaVista và Kurt Linux sử dụng. Bằng cách thay đổi các đoạn mã nguồn tốn nhiều thời gian phản ứng trong nhân Linux (ví dụ như tắt ngắt quá lâu), nhân Linux thông thường trở nên linh hoạt hơn, thời gian đáp ứng nhanh hơn và có tính tiền định cao hơn. Cách tiếp cận này được nhiều người coi là "chính thống" hơn nhưng thời gian phản ứng đối với sự kiện không thể nhanh như cách trên. RTAI ban đầu sử dụng cách tiếp cận đầu, sau đó bổ sung thêm cách thứ 2 và hiện thời hỗ trợ cả 2 kiểu.
    • Nhân Linux chính thống cũng đã gộp một số tính năng của RTAI từ phiên bản 2.6 trở đi nên ít nhiều cũng có tính realtime.


    Về mặt sử dụng, nói chung các bản RTOS Linux thương mại là một thế giới riêng: dùng nó và chỉ ở trong thế giới đó thì rất thoải mái, nhưng khi muốn dùng thêm một cái gì đó mà nó không hỗ trợ, bất kể phần cứng hay phần mềm, thì đều vất vả. Đó là lý do thực tế không nên dùng đám này, bên cạnh lý do về mặt lý tưởng nữa. Lựa chọn RTOS có tính độc lập tương đối đối với phần cứng - như đã nói, chỉ cần Comedi hỗ trợ là ngon, hoặc phần cứng đó có driver mã mở để mình tự do lập trình, nên tránh driver mã đóng như tránh tà.

    Nói qua lại dài dòng, cuối cùng chốt lại ở mấy điểm sau
    1. Nếu chỉ yêu cầu ở mức soft realtime hoặc firm realtime vừa phải, dùng nhân Linux 2.6 thông thường có ở bất kỳ hệ Linux nào là thừa đủ.
    2. Nếu yêu cầu ở mức firm realtime, dùng MontaVista hoặc RTAI ở chế độ user mode.
    3. Nếu yêu cầu ở mức hard realtime, dùng RTLinux hoặc RTAI ở chế độ micro-kernel.
    4. Nên tránh comercial distribution, không phải vì vấn đề tiền nong, mà là độ linh động và sự hỗ trợ của cộng đồng. RTAI hỗ trợ distro mẹ rất tốt, lại nhiều công cụ và có tính hard realtime mạnh (có 1 ví dụ dùng 1 chân cổng song song bitbang để thành ăng-ten RF, khiếp chưa ? )
    5. Bất kỳ phần cứng nào đủ tính năng, cứ có driver mã mở hoặc Comedi hỗ trợ là dùng được.
    Phần mềm tự do hoặc không dùng máy tính nữa !.

    Comment


    • #3
      Chào anh,

      Cảm ơn anh đã cho em cái nhìn tổng quát về bọn này.Theo em biết thì có 2 kiểu ứng dụng RTOS:
      1. Nhân RTOS được nạp vào trong các chip như ARM, PowerPC, ... Khi đó, để lập trình thì thằng này phải kết nối với Host Computer. Thằng host computer này có cài đặt các compiler để biên dịch các chương trình điều khiển thành ứng dụng thực thi và gửi xuống cho thằng RTOS kia chạy, bởi vì nó làm sao mà tự dịch được .
      2. PC(x86 hoặc x86_64) có cài đặt RealTime OS để điều khiển các card mở rộng như PCI, PCX, ... Khi đó thì việc triển khai ứng dụng sẽ đơn giản đi nhiều.

      Không biết em nhận xét có đúng không, xin anh cho ý kiến quả nữa.

      Hiện tại, em đang làm một Project, bước đầu sử dụng kit này có dùng con TMS320DM355 DaVinci™. Nó có 2 GB NAND Flash, được nạp sẵn hệ điều hành MontaVista Linux.

      Chạy các lệnh cấu hình như set biến môi trường, cấu hình boot và thực thi các lệnh được thực hiện qua cửa sổ console trên host computer. Em đã làm nạp lại được kernel của nó qua TFTP và cấu hình được cho boot từ nand và sử dụng file system trên Ubuntu nhưng có vấn đề là nó hiện dòng lệnh để login vào. Trong tất cả tài liệu nó chỉ bảo là login bằng root vào, mà em login mãi nó toàn báo là sai password.

      Anh có biết tài khoản mặc định của hệ điều hành này để login không a? Có phải là username: root, password rỗng không anh? Em đã tìm kiếm nhiều và có down cái manual về kernel của MontaVista mà vẫn chưa ra được câu trả lời.

      Chân thành cảm ơn anh.
      Technical sale at WT Microelectronics S'pore
      Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
      Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

      Comment


      • #4
        Nguyên văn bởi ngohaibac Xem bài viết
        [LIST=1]
        Thằng host computer này có cài đặt các compiler để biên dịch các chương trình điều khiển thành ứng dụng thực thi và gửi xuống cho thằng RTOS kia chạy, bởi vì nó làm sao mà tự dịch được .
        Cái này em nghĩ là không chính xác lắm. Trên target hoàn toàn có thể tự dịch được chương trình nếu nó có đủ tài nguyên( chỉ cần khoảng 1 GB storage, 128MB ram là okie. của bác có hẳn 2GB liền).

        Bác không vào được tài khoản root thì bác thử xem lại tài liệu xem nó có nói gì về mật khẩu không. Nếu không có thì ta hack root. Lấy filesystem của nó lên host computer, rồi mount filesystem này nào. sử file chứa password thường là file /etc/shadow. vào trong rồi thì ta đặt lại.

        chi tiết bác xem link bên dưới.
        http://linuxgazette.net/107/tomar.html
        chúc vui.

        Comment


        • #5
          Thông thường mật khẩu cho máy tính nhúng (tạm gọi như vậy) Linux là rỗng hoặc cũng là root, nói chung em cần xem lại tài liệu đi kèm máy. Cách mà cation_h đề cập chỉ dùng cho máy tính để bàn thôi, theo kiến thức hạn hẹp của bqviet, chưa bao giờ grub được dùng làm bootloader cho máy tính nhúng không phải x86 cả.

          Cách phân loại như em là đúng. Có điều kiện nên dùng máy tính nhúng độc lập thì hay hơn dùng card gắn trong máy tính thông thường. An toàn hơn (vì nếu sự cố chỉ hỏng cái máy tính nhúng), hiệu năng cao hơn (vì dùng nguyên 1 máy tính điều khiển), giá có khi lại rẻ hơn; nhược điểm duy nhất là máy tính nhúng ít khi dùng x86 - nhưng điều này ứng dụng Linux có khi lại là ưu điểm không chừng.

          Nếu được chọn, nên dùng dòng OMAP của TI sẽ thấy hay hơn dòng DaVinci.
          Phần mềm tự do hoặc không dùng máy tính nữa !.

          Comment


          • #6
            Nguyên văn bởi bqviet Xem bài viết
            Cách mà cation_h đề cập chỉ dùng cho máy tính để bàn thôi, theo kiến thức hạn hẹp của bqviet, chưa bao giờ grub được dùng làm bootloader cho máy tính nhúng không phải x86 cả.
            .
            bác bqviet hiểu nhầm về cái link em gửi rồi. Đúng là cái đó viết cho x86. như em đã nói ở trên chúng ta ko hack root qua bootloader như grub hay lilo mà hack thẳng bằng filesystem do nhà sản xuất cung cấp, hoặc filesystem trên board. Trong link em gửi nó không chỉ nó đến hack root bằng cách dùng bootloader mà còn cách khác đó là sửa file chứa thông tin về mật khẩu.
            CÁc hệ thống linux chuẩn đề chứ thông tin về user và mật khẩu ở 2 file /etc/passwd và /etc/shadow lợi dụng đặc điểm này có thể dùng để hack root. Trên embedded linux cũng phải có filesystem, và thông tin về người dùng theo chuẩn thường sẽ đặt ở các file này( thường thì các hệ thống linux tuân theo chuẩn như FHS ( filesystem Hierarchy standard ) và LBS (linux base standard) ). Một số hệ thống không cho đặt passwd là rỗng như ubuntu thì có thể hack root bằng cách add user của mình vào danh sách sudoer, hoặc là copy mật khẩu từ máy mình, dán đè lên mật khẩu cũ rồi lúc đấy thì thích làm gì thì làm.

            Nếu không thể lấy được filesystem lên máy host thì cũng có một cách đó là download kernel, filesystem do mình tự tạo vào ram, rồi boot vào hệ thống này ( có thể qua TFTP hoặc bootp, cái này cần bootloader hỗ trợ). sau đó mount filsystem của board vào rồi hack root.

            chúc vui.

            Comment


            • #7
              Cảm ơn anh bqviet rất nhiều,

              Trong hệ thống file của MontaVista hoàn toàn không có file /etc/shadow, điều này cũng dễ hiểu bởi vì nó không dùng grub làm bootloader khởi động cả.Em sẽ xem lại về cái tài khoản boot của thằng MontaVista này.

              Còn về máy tính nhúng, nếu mà dùng một con PC Core 2 dual có cài RTOS thì em nghĩ chắc là khủng lắm.

              Chúc anh mạnh khỏe.
              Technical sale at WT Microelectronics S'pore
              Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
              Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

              Comment


              • #8
                Nguyên văn bởi ngohaibac Xem bài viết
                Trong hệ thống file của MontaVista hoàn toàn không có file /etc/shadow, điều này cũng dễ hiểu bởi vì nó không dùng grub làm bootloader khởi động cả
                em chưa dùng MontaVista bao giờ nên em không biết filesystem của nó thế nào. Nhưng những file như /etc/passwd, /etc/group và /etc/shadow không phải là dùng cho bootloader đọc, mà nó dùng cho cách chương trình như bash shell, khi login thì nó cũng sẽ tra thông tin người dùng trong các file này, rồi quyền truy nhập v.v...
                thông tin chi tiết về 2 file này xin mời xem tại:
                http://www.cyberciti.biz/faq/underst...d-file-format/
                http://www.cyberciti.biz/faq/underst...tcshadow-file/
                Last edited by cation_h; 19-11-2008, 20:51.

                Comment


                • #9
                  Em đã fix xong. Có lẽ bởi vì cái filesystem của nó có vấn đề nhỏ hoặc là em không biết fix để tìm ra account login vào target system. Nhưng hôm nay đã tìm được một cách hay sau khi boot bằng ramdisk.gz thành công.

                  Nếu ai gặp vấn đề này thì xem tại mail list trong davinci mà em đã trao đổi. Cách đơn giản này chính là mount cái file RAM đó và copy toàn bộ filesystem vào thư mục filesys là được :d.

                  À, chỗ em hẻo lánh lắm, nên tiêu các thứ rẻ hơn chỗ anh Hiệp nhiều :d. Mà cũng ít tiêu vặt anh ạ. Toàn ngồi ở Lab dùng PC, tối đói thì 2 anh em Vietnam (anh Nguyễn Bá Hải nữa :d) gọi thịt gà về măm là đủ calo chiến cả đêm ngay hehe. À khoe với anh luôn, em mới đề suất và được giáo sư mua cho 2 thằng Vietnam 2 con PC xịn nhất Lab luôn: Intel Core 2 Quad, HDD 500G, Card màn hình k nhớ bao MB, RAM 4G he he, chạy đã lắm anh ạ, không phải nghĩ ngợi gì.

                  Chúc anh mạnh khỏe.
                  Technical sale at WT Microelectronics S'pore
                  Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
                  Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

                  Comment


                  • #10
                    [Montavista linux]

                    Cho hỏi Montavista linux là hệ điều hành gì. Nó là 1 real time OS? Bác nào có tài liệu có thể share cho mình không? Nếu tôi nghiên cứu về hệ điều hành này thì tôi có thể mua environment (board + OS) ở đâu để evaluate? Thế còn uITRON thì sao? Có bác nào nghiên cứu và evaluate trên bỏad chưa? Tôi đang làm về uITRON và chỉ biết nó. Còn Montavista linux nó có giống linux thông thường không?
                    Last edited by kero; 31-03-2009, 21:41. Lý do: updated some ideals

                    Comment


                    • #11
                      Tất cả những câu trên đều có thể trả lời bởi Google: gõ tên Montavista hoặc uITRON vào ô tìm kiếm là xong.
                      Phần mềm tự do hoặc không dùng máy tính nữa !.

                      Comment

                      Về tác giả

                      Collapse

                      ngohaibac Tìm hiểu thêm về ngohaibac

                      Bài viết mới nhất

                      Collapse

                      Đang tải...
                      X